Beispiel #1
0
    )

    # get sil after anchor deform
    sa_sil = my_renderer.silhouette(verts=sa_verts)

    # compute IoU and compare
    ori_iou = sil_iou(proj_sil, gt_sil)
    ja_iou = sil_iou(proj_sil_j, gt_sil)
    sa_iou = sil_iou(sa_sil, gt_sil)

    ori_iou_list.append(ori_iou)
    ja_iou_list.append(ja_iou)
    sa_iou_list.append(sa_iou)

    # compute error of joint
    j_posi_sa = get_joint_posi(sa_verts)
    err_j_sa = np.mean(
        [np.linalg.norm(j_posi_sa[i] - j_posi_gt[i]) for i in range(10)])
    err_j_sa_list.append(err_j_sa)

    j_posi_ja = get_joint_posi(ja_verts)
    err_j_ja = np.mean(
        [np.linalg.norm(j_posi_ja[i] - j_posi_gt[i]) for i in range(10)])
    err_j_ja_list.append(err_j_ja)

    j_posi_hmr = get_joint_posi(verts)
    err_j_hmr = np.mean(
        [np.linalg.norm(j_posi_hmr[i] - j_posi_gt[i]) for i in range(10)])
    err_j_hmr_list.append(err_j_hmr)

# save eval values
Beispiel #2
0
cam_para = CamPara(K=np.array([[1000, 0, 224], [0, 1000, 224], [0, 0, 1]]))
with open('../predef/exempt_vert_list.pkl', 'rb') as fp:
    exempt_vert_list = pickle.load(fp)

# get image and parameters of HMR prediction
test_num = 0
src_img = np.array(PIL.Image.open(opt.outf + "std_img.jpg"))

hmr_mesh = om.read_trimesh(opt.outf + "hmr_mesh.obj")
hmr_mesh.request_vertex_normals()
hmr_mesh.update_normals()
verts = hmr_mesh.points()
vert_norms = hmr_mesh.vertex_normals()

# make input tensor for joint net
joint_posi = get_joint_posi(verts)
proj_sil = my_renderer.silhouette(verts=verts)
src_sil = np.expand_dims(proj_sil, 2)
src_j = np.zeros((10, 4, 64, 64))
for i in range(len(joint_posi)):
    crop_sil = center_crop(src_sil, joint_posi[i], 64)
    crop_img = center_crop(src_img, joint_posi[i], 64)
    crop_img = crop_img.astype(np.float)
    crop_img = crop_img - crop_img[31, 31, :]
    crop_img = np.absolute(crop_img)
    crop_img = crop_img / 255.0
    src_j[i, 0, :, :] = np.rollaxis(crop_sil, 2, 0)
    src_j[i, 1:4, :, :] = np.rollaxis(crop_img, 2, 0)

print("done")
Beispiel #3
0
    verts = hmr_data['verts']
    cam = hmr_data['cam']
    proc_para = hmr_data['proc_para']
    std_img = hmr_data['std_img']

    mesh = make_trimesh(verts, faces, compute_vn=True)
    vert_norms = mesh.vertex_normals()

    # get proj sil
    proj_sil = renderer.silhouette(verts=verts,
                                   cam=cam,
                                   img_size=src_img.shape,
                                   norm=True)

    # make joint posi
    joint_posi = get_joint_posi(verts, point_list)

    sil_j = np.expand_dims(proj_sil, 2)
    src_j = np.zeros((10, 4, 64, 64))
    for i in range(len(joint_posi)):
        crop_sil = center_crop(sil_j, joint_posi[i], 64)
        crop_img = center_crop(src_img, joint_posi[i], 64)
        crop_img = crop_img.astype(np.float)
        crop_img = crop_img - crop_img[31, 31, :]
        crop_img = np.absolute(crop_img)
        crop_img = crop_img / 255.0
        src_j[i, 0, :, :] = np.rollaxis(crop_sil, 2, 0)
        src_j[i, 1:4, :, :] = np.rollaxis(crop_img, 2, 0)

    # predict joint
    joint_tsr = pdt_j.predict_batch(src_j)