diff --git a/merger/MergeMasked.py b/merger/MergeMasked.py index 126806a..e7c57df 100644 --- a/merger/MergeMasked.py +++ b/merger/MergeMasked.py @@ -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 diff --git a/merger/MergerConfig.py b/merger/MergerConfig.py index 8f59861..432bdf1 100644 --- a/merger/MergerConfig.py +++ b/merger/MergerConfig.py @@ -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' }