Skip to content
This repository was archived by the owner on Nov 13, 2024. It is now read-only.

Commit 521a23f

Browse files
committed
fix scale factor in sample generation. added util --export-faceset-mask
1 parent 0d19d8e commit 521a23f

File tree

3 files changed

+37
-3
lines changed

3 files changed

+37
-3
lines changed

core/imagelib/warp.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def gen_warp_params (w, flip=False, rotation_range=[-10,10], scale_range=[-0.5,
115115
w = 64
116116

117117
rotation = rnd_state.uniform( rotation_range[0], rotation_range[1] )
118-
scale = rnd_state.uniform(1 +scale_range[0], 1 +scale_range[1])
118+
scale = rnd_state.uniform( 1/(1-scale_range[0]) , 1+scale_range[1] )
119119
tx = rnd_state.uniform( tx_range[0], tx_range[1] )
120120
ty = rnd_state.uniform( ty_range[0], ty_range[1] )
121121
p_flip = flip and rnd_state.randint(10) < 4

main.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ def process_util(arguments):
9898
io.log_info ("Performing faceset unpacking...\r\n")
9999
from samplelib import PackedFaceset
100100
PackedFaceset.unpack( Path(arguments.input_dir) )
101+
102+
if arguments.export_faceset_mask:
103+
io.log_info ("Exporting faceset mask..\r\n")
104+
Util.export_faceset_mask( Path(arguments.input_dir) )
101105

102106
p = subparsers.add_parser( "util", help="Utilities.")
103107
p.add_argument('--input-dir', required=True, action=fixPathAction, dest="input_dir", help="Input directory. A directory containing the files you wish to process.")
@@ -107,6 +111,7 @@ def process_util(arguments):
107111
p.add_argument('--restore-faceset-metadata', action="store_true", dest="restore_faceset_metadata", default=False, help="Restore faceset metadata to file. Image filenames must be the same as used with save.")
108112
p.add_argument('--pack-faceset', action="store_true", dest="pack_faceset", default=False, help="")
109113
p.add_argument('--unpack-faceset', action="store_true", dest="unpack_faceset", default=False, help="")
114+
p.add_argument('--export-faceset-mask', action="store_true", dest="export_faceset_mask", default=False, help="")
110115

111116
p.set_defaults (func=process_util)
112117

@@ -271,11 +276,11 @@ def process_faceset_resizer(arguments):
271276
from mainscripts import FacesetResizer
272277
FacesetResizer.process_folder ( Path(arguments.input_dir) )
273278
p.set_defaults(func=process_faceset_resizer)
274-
279+
275280
def process_dev_test(arguments):
276281
osex.set_process_lowest_prio()
277282
from mainscripts import dev_misc
278-
dev_misc.dev_test( arguments.input_dir )
283+
dev_misc.dev_gen_mask_files( arguments.input_dir )
279284

280285
p = subparsers.add_parser( "dev_test", help="")
281286
p.add_argument('--input-dir', required=True, action=fixPathAction, dest="input_dir")

mainscripts/Util.py

+29
Original file line numberDiff line numberDiff line change
@@ -159,3 +159,32 @@ def recover_original_aligned_filename(input_path):
159159
fs.rename (fd)
160160
except:
161161
io.log_err ('fail to rename %s' % (fs.name) )
162+
163+
def export_faceset_mask(input_dir):
164+
for filename in io.progress_bar_generator(pathex.get_image_paths (input_dir), "Processing"):
165+
filepath = Path(filename)
166+
167+
if '_mask' in filepath.stem:
168+
continue
169+
170+
mask_filepath = filepath.parent / (filepath.stem+'_mask'+filepath.suffix)
171+
172+
dflimg = DFLJPG.load(filepath)
173+
174+
H,W,C = dflimg.shape
175+
176+
seg_ie_polys = dflimg.get_seg_ie_polys()
177+
178+
if seg_ie_polys.has_polys():
179+
mask = np.zeros ((H,W,1), dtype=np.float32)
180+
seg_ie_polys.overlay_mask(mask)
181+
elif dflimg.has_xseg_mask():
182+
mask = dflimg.get_xseg_mask()
183+
mask[mask < 0.5] = 0.0
184+
mask[mask >= 0.5] = 1.0
185+
else:
186+
raise Exception(f'no mask in file {filepath}')
187+
188+
189+
cv2_imwrite(mask_filepath, (mask*255).astype(np.uint8), [int(cv2.IMWRITE_JPEG_QUALITY), 100] )
190+

0 commit comments

Comments
 (0)