Files
insightface/recognition/tools
2021-03-04 17:52:51 +08:00
..
2020-11-06 13:59:21 +08:00
2020-11-30 14:31:52 +08:00
2021-02-21 20:48:35 +08:00
2021-02-21 20:48:35 +08:00
2021-03-04 17:52:51 +08:00

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
face +F mask mask
face +F mask mask
face +H mask mask

F means FULL while H means HALF.

Data Prepare

  • face3d library

    Please copy and install face3d library and put it under face3d/ directory. Then make sure you can import face3d in python env.

  • BFM models

    Please follow the tutorial of https://github.com/YadiraF/face3d/tree/master/examples/Data/BFM to generate BFM.mat and BFM_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])