This commit is contained in:
Colombo 2019-12-22 21:44:28 +04:00
parent 7e609542db
commit 7174dc835a
5 changed files with 29 additions and 39 deletions

View file

@ -181,7 +181,6 @@ class DFLJPG(object):
source_landmarks=None, source_landmarks=None,
image_to_face_mat=None, image_to_face_mat=None,
fanseg_mask=None, fanseg_mask=None,
pitch_yaw_roll=None,
eyebrows_expand_mod=None, eyebrows_expand_mod=None,
relighted=None, relighted=None,
**kwargs **kwargs
@ -206,7 +205,6 @@ class DFLJPG(object):
'source_landmarks': source_landmarks, 'source_landmarks': source_landmarks,
'image_to_face_mat': image_to_face_mat, 'image_to_face_mat': image_to_face_mat,
'fanseg_mask' : fanseg_mask, 'fanseg_mask' : fanseg_mask,
'pitch_yaw_roll' : pitch_yaw_roll,
'eyebrows_expand_mod' : eyebrows_expand_mod, 'eyebrows_expand_mod' : eyebrows_expand_mod,
'relighted' : relighted 'relighted' : relighted
}) })
@ -219,7 +217,6 @@ class DFLJPG(object):
source_landmarks=None, source_landmarks=None,
image_to_face_mat=None, image_to_face_mat=None,
fanseg_mask=None, fanseg_mask=None,
pitch_yaw_roll=None,
eyebrows_expand_mod=None, eyebrows_expand_mod=None,
relighted=None, relighted=None,
**kwargs **kwargs
@ -232,7 +229,6 @@ class DFLJPG(object):
if source_landmarks is None: source_landmarks = self.get_source_landmarks() if source_landmarks is None: source_landmarks = self.get_source_landmarks()
if image_to_face_mat is None: image_to_face_mat = self.get_image_to_face_mat() if image_to_face_mat is None: image_to_face_mat = self.get_image_to_face_mat()
if fanseg_mask is None: fanseg_mask = self.get_fanseg_mask() if fanseg_mask is None: fanseg_mask = self.get_fanseg_mask()
if pitch_yaw_roll is None: pitch_yaw_roll = self.get_pitch_yaw_roll()
if eyebrows_expand_mod is None: eyebrows_expand_mod = self.get_eyebrows_expand_mod() if eyebrows_expand_mod is None: eyebrows_expand_mod = self.get_eyebrows_expand_mod()
if relighted is None: relighted = self.get_relighted() if relighted is None: relighted = self.get_relighted()
DFLJPG.embed_data (filename, face_type=face_type, DFLJPG.embed_data (filename, face_type=face_type,
@ -243,7 +239,6 @@ class DFLJPG(object):
source_landmarks=source_landmarks, source_landmarks=source_landmarks,
image_to_face_mat=image_to_face_mat, image_to_face_mat=image_to_face_mat,
fanseg_mask=fanseg_mask, fanseg_mask=fanseg_mask,
pitch_yaw_roll=pitch_yaw_roll,
relighted=relighted) relighted=relighted)
def remove_ie_polys(self): def remove_ie_polys(self):
@ -319,8 +314,6 @@ class DFLJPG(object):
if fanseg_mask is not None: if fanseg_mask is not None:
return np.clip ( np.array (fanseg_mask) / 255.0, 0.0, 1.0 )[...,np.newaxis] return np.clip ( np.array (fanseg_mask) / 255.0, 0.0, 1.0 )[...,np.newaxis]
return None return None
def get_pitch_yaw_roll(self):
return self.dfl_dict.get ('pitch_yaw_roll', None)
def get_eyebrows_expand_mod(self): def get_eyebrows_expand_mod(self):
return self.dfl_dict.get ('eyebrows_expand_mod', None) return self.dfl_dict.get ('eyebrows_expand_mod', None)
def get_relighted(self): def get_relighted(self):

View file

@ -297,7 +297,6 @@ class DFLPNG(object):
source_landmarks=None, source_landmarks=None,
image_to_face_mat=None, image_to_face_mat=None,
fanseg_mask=None, fanseg_mask=None,
pitch_yaw_roll=None,
eyebrows_expand_mod=None, eyebrows_expand_mod=None,
relighted=None, relighted=None,
**kwargs **kwargs
@ -322,7 +321,6 @@ class DFLPNG(object):
'source_landmarks': source_landmarks, 'source_landmarks': source_landmarks,
'image_to_face_mat':image_to_face_mat, 'image_to_face_mat':image_to_face_mat,
'fanseg_mask' : fanseg_mask, 'fanseg_mask' : fanseg_mask,
'pitch_yaw_roll' : pitch_yaw_roll,
'eyebrows_expand_mod' : eyebrows_expand_mod, 'eyebrows_expand_mod' : eyebrows_expand_mod,
'relighted' : relighted 'relighted' : relighted
}) })
@ -335,7 +333,6 @@ class DFLPNG(object):
source_landmarks=None, source_landmarks=None,
image_to_face_mat=None, image_to_face_mat=None,
fanseg_mask=None, fanseg_mask=None,
pitch_yaw_roll=None,
eyebrows_expand_mod=None, eyebrows_expand_mod=None,
relighted=None, relighted=None,
**kwargs **kwargs
@ -348,7 +345,6 @@ class DFLPNG(object):
if source_landmarks is None: source_landmarks = self.get_source_landmarks() if source_landmarks is None: source_landmarks = self.get_source_landmarks()
if image_to_face_mat is None: image_to_face_mat = self.get_image_to_face_mat() if image_to_face_mat is None: image_to_face_mat = self.get_image_to_face_mat()
if fanseg_mask is None: fanseg_mask = self.get_fanseg_mask() if fanseg_mask is None: fanseg_mask = self.get_fanseg_mask()
if pitch_yaw_roll is None: pitch_yaw_roll = self.get_pitch_yaw_roll()
if eyebrows_expand_mod is None: eyebrows_expand_mod = self.get_eyebrows_expand_mod() if eyebrows_expand_mod is None: eyebrows_expand_mod = self.get_eyebrows_expand_mod()
if relighted is None: relighted = self.get_relighted() if relighted is None: relighted = self.get_relighted()
@ -360,7 +356,6 @@ class DFLPNG(object):
source_landmarks=source_landmarks, source_landmarks=source_landmarks,
image_to_face_mat=image_to_face_mat, image_to_face_mat=image_to_face_mat,
fanseg_mask=fanseg_mask, fanseg_mask=fanseg_mask,
pitch_yaw_roll=pitch_yaw_roll,
eyebrows_expand_mod=eyebrows_expand_mod, eyebrows_expand_mod=eyebrows_expand_mod,
relighted=relighted) relighted=relighted)
@ -426,8 +421,6 @@ class DFLPNG(object):
if fanseg_mask is not None: if fanseg_mask is not None:
return np.clip ( np.array (fanseg_mask) / 255.0, 0.0, 1.0 )[...,np.newaxis] return np.clip ( np.array (fanseg_mask) / 255.0, 0.0, 1.0 )[...,np.newaxis]
return None return None
def get_pitch_yaw_roll(self):
return self.dfl_dict.get ('pitch_yaw_roll', None)
def get_eyebrows_expand_mod(self): def get_eyebrows_expand_mod(self):
return self.dfl_dict.get ('eyebrows_expand_mod', None) return self.dfl_dict.get ('eyebrows_expand_mod', None)
def get_relighted(self): def get_relighted(self):

View file

@ -26,13 +26,12 @@ DEBUG = False
class ExtractSubprocessor(Subprocessor): class ExtractSubprocessor(Subprocessor):
class Data(object): class Data(object):
def __init__(self, filename=None, rects=None, landmarks = None, landmarks_accurate=True, pitch_yaw_roll=None, force_output_path=None, final_output_files = None): def __init__(self, filename=None, rects=None, landmarks = None, landmarks_accurate=True, force_output_path=None, final_output_files = None):
self.filename = filename self.filename = filename
self.rects = rects or [] self.rects = rects or []
self.rects_rotation = 0 self.rects_rotation = 0
self.landmarks_accurate = landmarks_accurate self.landmarks_accurate = landmarks_accurate
self.landmarks = landmarks or [] self.landmarks = landmarks or []
self.pitch_yaw_roll = pitch_yaw_roll
self.force_output_path = force_output_path self.force_output_path = force_output_path
self.final_output_files = final_output_files or [] self.final_output_files = final_output_files or []
self.faces_detected = 0 self.faces_detected = 0
@ -266,8 +265,7 @@ class ExtractSubprocessor(Subprocessor):
source_filename=filename_path.name, source_filename=filename_path.name,
source_rect=rect, source_rect=rect,
source_landmarks=image_landmarks.tolist(), source_landmarks=image_landmarks.tolist(),
image_to_face_mat=image_to_face_mat, image_to_face_mat=image_to_face_mat
pitch_yaw_roll=data.pitch_yaw_roll
) )
data.final_output_files.append (output_file) data.final_output_files.append (output_file)

View file

@ -187,11 +187,7 @@ def sort_by_face_yaw(input_path):
trash_img_list.append ( [str(filepath)] ) trash_img_list.append ( [str(filepath)] )
continue continue
pitch_yaw_roll = dflimg.get_pitch_yaw_roll() pitch, yaw, roll = LandmarksProcessor.estimate_pitch_yaw_roll ( dflimg.get_landmarks() )
if pitch_yaw_roll is not None:
pitch, yaw, roll = pitch_yaw_roll
else:
pitch, yaw, roll = LandmarksProcessor.estimate_pitch_yaw_roll ( dflimg.get_landmarks() )
img_list.append( [str(filepath), yaw ] ) img_list.append( [str(filepath), yaw ] )
@ -214,11 +210,7 @@ def sort_by_face_pitch(input_path):
trash_img_list.append ( [str(filepath)] ) trash_img_list.append ( [str(filepath)] )
continue continue
pitch_yaw_roll = dflimg.get_pitch_yaw_roll() pitch, yaw, roll = LandmarksProcessor.estimate_pitch_yaw_roll ( dflimg.get_landmarks() )
if pitch_yaw_roll is not None:
pitch, yaw, roll = pitch_yaw_roll
else:
pitch, yaw, roll = LandmarksProcessor.estimate_pitch_yaw_roll ( dflimg.get_landmarks() )
img_list.append( [str(filepath), pitch ] ) img_list.append( [str(filepath), pitch ] )

View file

@ -85,16 +85,23 @@ class SampleHost:
result = FaceSamplesLoaderSubprocessor(image_paths).run() result = FaceSamplesLoaderSubprocessor(image_paths).run()
sample_list = [] sample_list = []
for filename,dflimg in io.progress_bar_generator(result, "Processing"): for filename, \
( face_type,
shape,
landmarks,
ie_polys,
eyebrows_expand_mod,
source_filename,
) in io.progress_bar_generator(result, "Processing"):
sample_list.append( Sample(filename=filename, sample_list.append( Sample(filename=filename,
sample_type=SampleType.FACE, sample_type=SampleType.FACE,
face_type=FaceType.fromString (dflimg.get_face_type()), face_type=FaceType.fromString (face_type),
shape=dflimg.get_shape(), shape=shape,
landmarks=dflimg.get_landmarks(), landmarks=landmarks,
ie_polys=dflimg.get_ie_polys(), ie_polys=ie_polys,
pitch_yaw_roll=dflimg.get_pitch_yaw_roll(), eyebrows_expand_mod=eyebrows_expand_mod,
eyebrows_expand_mod=dflimg.get_eyebrows_expand_mod(), source_filename=source_filename,
source_filename=dflimg.get_source_filename(),
)) ))
return sample_list return sample_list
@ -114,7 +121,6 @@ class SampleHost:
shape=dflimg.get_shape(), shape=dflimg.get_shape(),
landmarks=dflimg.get_landmarks(), landmarks=dflimg.get_landmarks(),
ie_polys=dflimg.get_ie_polys(), ie_polys=dflimg.get_ie_polys(),
pitch_yaw_roll=dflimg.get_pitch_yaw_roll(),
eyebrows_expand_mod=dflimg.get_eyebrows_expand_mod(), eyebrows_expand_mod=dflimg.get_eyebrows_expand_mod(),
source_filename=dflimg.get_source_filename(), source_filename=dflimg.get_source_filename(),
)) ))
@ -190,8 +196,16 @@ class FaceSamplesLoaderSubprocessor(Subprocessor):
if dflimg is None: if dflimg is None:
self.log_err (f"FaceSamplesLoader: {filename} is not a dfl image file.") self.log_err (f"FaceSamplesLoader: {filename} is not a dfl image file.")
data = None
else:
data = (dflimg.get_face_type(),
dflimg.get_shape(),
dflimg.get_landmarks(),
dflimg.get_ie_polys(),
dflimg.get_eyebrows_expand_mod(),
dflimg.get_source_filename() )
return idx, dflimg return idx, data
#override #override
def get_data_name (self, data): def get_data_name (self, data):