I. CPP-Align
II. Face Mask Renderer
We provide a simple tool to add masks on face images automatically.
We can use this tool to do data augmentation while training our face recognition models.
| Face Image | OP | Mask Image | Out |
|---|---|---|---|
![]() |
+F | ![]() |
![]() |
![]() |
+F | ![]() |
![]() |
![]() |
+H | ![]() |
![]() |
F means FULL while H means HALF.
Data Prepare
-
face3d library
Please copy and install
face3dlibrary and put it underface3d/directory. Then make sure you canimport face3din python env. -
BFM models
Please follow the tutorial of https://github.com/YadiraF/face3d/tree/master/examples/Data/BFM to generate
BFM.matandBFM_UV.mat. -
3D68 model
Download our 3D68 pretrained model(if1k3d68-0000.params) from baiducloud(passwd:2zmz) or googledrive and put it under
assets_mask/. Please also put the above BFM data model into this directory. -
mask images
You can get example mask images by checking the image url from the table above.
Add Mask to Face Image
Please refer to make_renderer.py for detail example.
(1) init renderer:
tool = MaskRenderer('./assets_mask')
(2) load face and mask images
image = cv2.imread("../../deploy/Tom_Hanks_54745.png")
mask_image = cv2.imread("masks/mask2.jpg")
(3) build necessary params for face image, this can be done in offline.
params = tool.build_params(image)
(4) do mask render, it costs about 10ms on 224x224 UV size, CPU single thread.
mask_out = tool.render_mask(image, mask_image, params)
(5) do half mask render.
mask_half_out = tool.render_mask(image, mask_image, params, positions=[0.1, 0.5, 0.9, 0.7])






