Spaces:
Runtime error
Runtime error
| import sys | |
| import os.path as osp | |
| import os | |
| import argparse | |
| sys.path.append(osp.dirname(osp.dirname(osp.abspath(__file__)))) | |
| from utils.cv import batch_load_masks | |
| import os.path as osp | |
| from utils.visualize import visualize_segs, visualize_segs_with_labels | |
| from live2d.scrap_model import VALID_BODY_PARTS_V2 | |
| from utils.io_utils import find_all_imgs, imglist2imgrid | |
| import numpy as np | |
| from tqdm import tqdm | |
| from PIL import Image | |
| src_dir = 'workspace/datasets/testcase' | |
| mask_dir = 'workspace/datasets/evalsam_iter0' | |
| VALID_BODY_PARTS_V1 = [ | |
| 'hair', 'headwear', 'face', 'eyes', 'eyewear', 'ears', 'earwear', 'nose', 'beard', 'mouth', 'neck', 'neckwear', | |
| 'skin', 'topwear', 'handwear', | |
| 'bottomwear', 'legwear', 'footwear', | |
| 'tail', 'wings' | |
| ] | |
| VALID_BODY_PARTS_V2 = [ | |
| 'hair', 'headwear', 'face', 'eyes', 'eyewear', 'ears', 'earwear', 'nose', 'mouth', | |
| 'neck', 'neckwear', 'topwear', 'handwear', 'bottomwear', 'legwear', 'footwear', | |
| 'tail', 'wings', 'objects' | |
| ] | |
| # mask_valid = [] | |
| # reind_mask = not mask_dir.endswith('_iter2') | |
| # for srcp in tqdm(find_all_imgs(src_dir, abs_path=True)): | |
| # maskp = osp.join(mask_dir, osp.basename(srcp) + '_masks.json') | |
| # masks = batch_load_masks(maskp) | |
| # if reind_mask: | |
| # mask_reind = [] | |
| # for t in VALID_BODY_PARTS_V2: | |
| # if t in VALID_BODY_PARTS_V1: | |
| # mask_reind.append(masks[VALID_BODY_PARTS_V1.index(t)]) | |
| # else: | |
| # mask_reind.append(np.zeros_like(masks[0])) | |
| # masks = mask_reind | |
| # masks[-4] = np.zeros_like(masks[-4]) | |
| # img = np.array(Image.open(srcp).convert('RGB')) | |
| # Image.fromarray(visualize_segs(masks, img, image_weight=0.2, )).save(osp.join(mask_dir, osp.basename(srcp) + '.png')) | |
| # compose_grid | |
| src_list = ['workspace/datasets/evalsam_iter0', 'workspace/datasets/evalsam_iter1', 'workspace/datasets/evalsam_iter2'] | |
| save_dir = 'workspace/datasets/sam_visual_comparison' | |
| os.makedirs(save_dir, exist_ok=True) | |
| imgw = 768 | |
| for imgn in tqdm(find_all_imgs(src_list[0])): | |
| img_list = [] | |
| for d in src_list: | |
| imgp = osp.join(d, imgn) | |
| img = Image.open(imgp).convert('RGB') | |
| w, h = img.width, img.height | |
| nh = int(round(imgw / w * h)) | |
| nsize = (imgw, nh) | |
| img = img.resize(nsize, Image.Resampling.LANCZOS) | |
| img_list.append(np.array(img)) | |
| img = np.concatenate(img_list, axis=1) | |
| savep = osp.join(save_dir, osp.splitext(imgn)[0] + '.png') | |
| Image.fromarray(img).save(savep) |