Пример #1
0
# parse arguments
parser = argparse.ArgumentParser()
parser.add_argument('--num', type=int, default=150, help='data_num')
parser.add_argument('--tgt', type=str, required=True, help='recon or syn')
opt = parser.parse_args()

set_name = "recon"
assert opt.tgt in ["j", "a", "s", "hmr"], \
       "tgt must be in in [j, a, s, hmr]"

data_num = int(opt.num)
error_list = []
iou_list = []
error_list_visi = []

my_renderer = SMPLRenderer(face_path="../predef/smpl_faces.npy")
hf_list = get_hf_list()

tr = trange(data_num, desc='Bar desc', leave=True)
for i in tr:
    # read results and gt mesh
    mesh_gt = om.read_trimesh("./eval_data/%s_set/gt/%03d.obj" % (set_name, i))
    mesh_tgt = om.read_trimesh("./eval_data/%s_set/pred_save/%s_%03d.obj" \
                               % (set_name, opt.tgt, i))

    verts_gt = mesh_gt.points()
    verts_tgt = mesh_tgt.points()

    # pick visible verts
    _, visi_gt = render_depth(mesh_gt, require_visi=True)
    _, visi_tgt = render_depth(mesh_tgt, require_visi=True)
Пример #2
0
# parse arguments
parser = argparse.ArgumentParser()
parser.add_argument('--num', type=int, required=True, help='data_num')
parser.add_argument('--set', type=str, required=True, help='recon or syn')
opt = parser.parse_args()

assert opt.set in ["recon", "syn"], \
       "set must be one of [recon, syn]"

data_num = int(opt.num)

pdt_j = joint_predictor("../demo/pretrained_model/pretrained_joint.pth")
pdt_a = anchor_predictor("../demo/pretrained_model/pretrained_anchor.pth")

renderer = SMPLRenderer(face_path="../predef/smpl_faces.npy")

faces = np.load("../predef/smpl_faces.npy")

# make verts for joint deform
with open('../predef/mesh_joint_list.pkl', 'rb') as fp:
    item_dic = pickle.load(fp)
point_list = item_dic["point_list"]
index_map = item_dic["index_map"]

# make verts for anchor deform
with open('../predef/dsa_achr.pkl', 'rb') as fp:
    dic_achr = pickle.load(fp)
achr_id = dic_achr['achr_id']
achr_num = len(achr_id)
Пример #3
0
from mesh_edit import fast_deform_dja
from mesh_edit import fast_deform_dsa
from renderer import SMPLRenderer
from utility import sil_iou
from utility import show_img_arr
from utility import center_crop
from utility import get_anchor_posi
from utility import get_joint_posi

pdt_j = joint_predictor("../demo/pretrained_model/pretrained_joint.pth")
pdt_a = anchor_predictor("../demo/pretrained_model/pretrained_anchor.pth")

dataset = dataloader_pred(dataset_path="./eval_data/wild_set/",
                          train=False,
                          shuffle=False)
my_renderer = SMPLRenderer(face_path="../predef/smpl_faces.npy")

sta_num = 2699

# make verts for joint deform
with open('../predef/mesh_joint_list.pkl', 'rb') as fp:
    item_dic = pickle.load(fp)
point_list = item_dic["point_list"]
index_map = item_dic["index_map"]

# make verts for anchor deform
with open('../predef/dsa_achr.pkl', 'rb') as fp:
    dic_achr = pickle.load(fp)
achr_id = dic_achr['achr_id']
achr_num = len(achr_id)
ori_iou_list = []
Пример #4
0
if opt.crop_x != -1:
    if len(opt.crop_x) != 2:
        print("ERROR: crop_x must be a list with 2 elements")
    crop_img = crop_img[:, opt.crop_x[0]:-opt.crop_x[1]]
if opt.crop_y != -1:
    if len(opt.crop_y) != 2:
        print("ERROR: crop_y must be a list with 2 elements")
    crop_img = crop_img[opt.crop_y[0]:-opt.crop_y[1], :]
if opt.pad>0:
    crop_img = pad_arr(crop_img, 50)
std_img, proc_para = preproc_img(crop_img, img_size = 224, 
                                 margin = 30, normalize = True)

# initialize
hmr_pred = hmr_predictor()
renderer = SMPLRenderer()
faces = np.load("../predef/smpl_faces.npy")

# hmr predict
verts, cam, proc_para, std_img = hmr_pred.predict(std_img, normalize=False)

# build output folder if not exist
if not os.path.exists(opt.outf):
    os.makedirs(opt.outf)

# write results
result_mesh = make_trimesh(verts, faces)
om.write_mesh(opt.outf + "hmr_mesh.obj", result_mesh)

final_img = ((std_img.copy()+1)*127).astype(np.uint8)
PIL.Image.fromarray(final_img).save(opt.outf + "std_img.jpg")