mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-07-06 13:02:15 -07:00
Merger: added mask mode ‘learned-prd + learned-dst’ – produces largest area of both dst and predicted masks
This commit is contained in:
parent
d1af3b51cd
commit
2cc0e64572
2 changed files with 14 additions and 11 deletions
|
@ -66,27 +66,29 @@ def MergeMaskedFace (predictor_func, predictor_input_shape,
|
|||
wrk_face_mask_a_0 = prd_face_dst_mask_a_0
|
||||
elif cfg.mask_mode == 4: #learned-prd*learned-dst
|
||||
wrk_face_mask_a_0 = prd_face_mask_a_0*prd_face_dst_mask_a_0
|
||||
elif cfg.mask_mode >= 5 and cfg.mask_mode <= 8: #XSeg modes
|
||||
if cfg.mask_mode == 5 or cfg.mask_mode == 7 or cfg.mask_mode == 8:
|
||||
elif cfg.mask_mode == 5: #learned-prd+learned-dst
|
||||
wrk_face_mask_a_0 = np.clip( prd_face_mask_a_0+prd_face_dst_mask_a_0, 0, 1)
|
||||
elif cfg.mask_mode >= 6 and cfg.mask_mode <= 9: #XSeg modes
|
||||
if cfg.mask_mode == 6 or cfg.mask_mode == 8 or cfg.mask_mode == 9:
|
||||
# obtain XSeg-prd
|
||||
prd_face_xseg_bgr = cv2.resize (prd_face_bgr, (xseg_input_size,)*2, cv2.INTER_CUBIC)
|
||||
prd_face_xseg_mask = xseg_256_extract_func(prd_face_xseg_bgr)
|
||||
X_prd_face_mask_a_0 = cv2.resize ( prd_face_xseg_mask, (output_size, output_size), cv2.INTER_CUBIC)
|
||||
|
||||
if cfg.mask_mode >= 6 and cfg.mask_mode <= 8:
|
||||
if cfg.mask_mode >= 7 and cfg.mask_mode <= 9:
|
||||
# obtain XSeg-dst
|
||||
xseg_mat = LandmarksProcessor.get_transform_mat (img_face_landmarks, xseg_input_size, face_type=cfg.face_type)
|
||||
dst_face_xseg_bgr = cv2.warpAffine(img_bgr, xseg_mat, (xseg_input_size,)*2, flags=cv2.INTER_CUBIC )
|
||||
dst_face_xseg_mask = xseg_256_extract_func(dst_face_xseg_bgr)
|
||||
X_dst_face_mask_a_0 = cv2.resize (dst_face_xseg_mask, (output_size,output_size), cv2.INTER_CUBIC)
|
||||
|
||||
if cfg.mask_mode == 5: #'XSeg-prd'
|
||||
if cfg.mask_mode == 6: #'XSeg-prd'
|
||||
wrk_face_mask_a_0 = X_prd_face_mask_a_0
|
||||
elif cfg.mask_mode == 6: #'XSeg-dst'
|
||||
elif cfg.mask_mode == 7: #'XSeg-dst'
|
||||
wrk_face_mask_a_0 = X_dst_face_mask_a_0
|
||||
elif cfg.mask_mode == 7: #'XSeg-prd*XSeg-dst'
|
||||
elif cfg.mask_mode == 8: #'XSeg-prd*XSeg-dst'
|
||||
wrk_face_mask_a_0 = X_prd_face_mask_a_0 * X_dst_face_mask_a_0
|
||||
elif cfg.mask_mode == 8: #learned-prd*learned-dst*XSeg-prd*XSeg-dst
|
||||
elif cfg.mask_mode == 9: #learned-prd*learned-dst*XSeg-prd*XSeg-dst
|
||||
wrk_face_mask_a_0 = prd_face_mask_a_0 * prd_face_dst_mask_a_0 * X_prd_face_mask_a_0 * X_dst_face_mask_a_0
|
||||
|
||||
wrk_face_mask_a_0[ wrk_face_mask_a_0 < (1.0/255.0) ] = 0.0 # get rid of noise
|
||||
|
|
|
@ -85,10 +85,11 @@ mask_mode_dict = {1:'dst',
|
|||
2:'learned-prd',
|
||||
3:'learned-dst',
|
||||
4:'learned-prd*learned-dst',
|
||||
5:'XSeg-prd',
|
||||
6:'XSeg-dst',
|
||||
7:'XSeg-prd*XSeg-dst',
|
||||
8:'learned-prd*learned-dst*XSeg-prd*XSeg-dst'
|
||||
5:'learned-prd+learned-dst',
|
||||
6:'XSeg-prd',
|
||||
7:'XSeg-dst',
|
||||
8:'XSeg-prd*XSeg-dst',
|
||||
9:'learned-prd*learned-dst*XSeg-prd*XSeg-dst'
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue