diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2019-01-05 12:35:01 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2019-01-05 12:35:01 +0100 |
| commit | 374dc54d049766fce225ca84d31fdf51f40f292c (patch) | |
| tree | 915b4bf3ea6645a1a65c30c4aee51870d6f955e3 /megapixels/commands/cv/face_vector.py | |
| parent | 824c958a7f29ab1fe31d09035c04a150379aecea (diff) | |
| parent | bff4e1c50349b0ba7d8e5fab6ce697c0b856f13f (diff) | |
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'megapixels/commands/cv/face_vector.py')
| -rw-r--r-- | megapixels/commands/cv/face_vector.py | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/megapixels/commands/cv/face_vector.py b/megapixels/commands/cv/face_vector.py index 203f73eb..7c03205c 100644 --- a/megapixels/commands/cv/face_vector.py +++ b/megapixels/commands/cv/face_vector.py @@ -15,7 +15,7 @@ from app.settings import app_cfg as cfg help='Override enum media directory') @click.option('--data_store', 'opt_data_store', type=cfg.DataStoreVar, - default=click_utils.get_default(types.DataStore.SSD), + default=click_utils.get_default(types.DataStore.HDD), show_default=True, help=click_utils.show_help(types.Dataset)) @click.option('--dataset', 'opt_dataset', @@ -90,36 +90,28 @@ def cli(ctx, opt_fp_out, opt_dir_media, opt_data_store, opt_dataset, opt_size, log.debug('processing {:,} groups'.format(len(df_img_groups))) vecs = [] - - for image_index, df_img_group in tqdm(df_img_groups): + for record_index, df_img_group in tqdm(df_img_groups): # make fp - roi_index = df_img_group.index.values[0] - # log.debug(f'roi_index: {roi_index}, image_index: {image_index}') - ds_file = df_record.loc[roi_index] # locate image meta - #ds_file = df_record.loc['index', image_index] # locate image meta - - fp_im = data_store.face_image(str(ds_file.subdir), str(ds_file.fn), str(ds_file.ext)) + ds_record = df_record.iloc[record_index] + fp_im = data_store.face(ds_record.subdir, ds_record.fn, ds_record.ext) im = cv.imread(fp_im) - # get bbox - x = df_img_group.x.values[0] - y = df_img_group.y.values[0] - w = df_img_group.w.values[0] - h = df_img_group.h.values[0] - imw = df_img_group.image_width.values[0] - imh = df_img_group.image_height.values[0] - dim = im.shape[:2][::-1] - # get face vector - dim = (imw, imh) - bbox_dim = BBox.from_xywh(x, y, w, h).to_dim(dim) # convert to int real dimensions - # compute vec - # padding=opt_padding not yet implemented in 19.16 but merged in master - vec = facerec.vec(im, bbox_dim, jitters=opt_jitters) - vec_str = ','.join([repr(x) for x in vec]) # convert to string for CSV - vecs.append( {'roi_index': roi_index, 'image_index': image_index, 'vec': vec_str}) + for roi_index, df_img in df_img_group.iterrows(): + # get bbox + x, y, w, h = df_img.x, df_img.y, df_img.w, df_img.h + dim = (ds_record.width, ds_record.height) + #dim = im.shape[:2][::-1] + # get face vector + bbox_dim = BBox.from_xywh(x, y, w, h).to_dim(dim) # convert to int real dimensions + # compute vec + # padding=opt_padding not yet implemented in 19.16 but merged in master + vec = facerec.vec(im, bbox_dim, jitters=opt_jitters) + vec_str = ','.join([repr(x) for x in vec]) # convert to string for CSV + vecs.append( {'roi_index': roi_index, 'record_index': record_index, 'vec': vec_str}) - # save date + # create dataframe df = pd.DataFrame.from_dict(vecs) df.index.name = 'index' + # save CSV file_utils.mkdirs(fp_out) df.to_csv(fp_out)
\ No newline at end of file |
