Beispiel #1
0
    new_jv = []
    ori_jv = []
    for i in range(len(j_list)):
        # make new joint verts
        for j in point_list[i]:
            new_jv.append(verts[j] + joint_para[i])
            ori_jv.append(verts[j])
    new_jv = np.array(new_jv)
    ori_jv = np.array(ori_jv)

    # joint deform
    fd_ja = fast_deform_dja(weight=10.0)
    ja_verts = fd_ja.deform(np.asarray(verts), new_jv)

    # make src_a
    proj_sil_j = my_renderer.silhouette(verts=ja_verts)
    src_sil_j = np.zeros((224, 224, 2))
    src_a = np.zeros((200, 4, 32, 32))

    # make anchor posi
    anchor_verts = np.zeros((200, 3))
    for i in range(achr_num):
        anchor_verts[i, :] = ja_verts[achr_id[i], :]
    achr_posi = get_anchor_posi(anchor_verts)

    for i in range(len(achr_posi)):
        crop_sil = center_crop(proj_sil_j, achr_posi[i], 32)
        crop_img = center_crop(src_img, achr_posi[i], 32)
        crop_img = crop_img.astype(np.int)
        crop_img = crop_img - crop_img[15, 15, :]
        crop_img = np.absolute(crop_img)
Beispiel #2
0
    # compute error
    avergedist_tgt, _, crsp_ind_tgt = knnsearch(verts_tgt_fit, verts_gt)
    avergedist_tgt_visi, _, _ = knnsearch(verts_tgt_visi_fit, verts_gt_visi)

    error_list.append(avergedist_tgt)
    error_list_visi.append(avergedist_tgt_visi)

    # read gt sil
    sil_gt = np.array(PIL.Image.open("./eval_data/%s_set/input/%03d_sil.png" \
                                     % (set_name, i)))
    sil_gt[sil_gt < 128] = 0
    sil_gt[sil_gt >= 128] = 255

    # render result_sil
    sil_result = my_renderer.silhouette(verts=verts_tgt)
    iou = sil_iou(sil_result, sil_gt)
    iou_list.append(iou)

    crsp_verts_tgt = np.array(
        [verts_tgt_fit[crsp_ind_tgt[j][0]] for j in range(len(crsp_ind_tgt))])

    diff_array_tgt = crsp_verts_tgt - verts_gt


print("mean %f %f %f\r\n" % \
            (np.mean(error_list),
             np.mean(error_list_visi),
             np.mean(iou_list)))

with open("./eval_report/%s_%s_report.txt" % (set_name, opt.tgt),
Beispiel #3
0
    #verts, cam, proc_para, std_img = hmr_pred.predict(src_img)
    with open ('./eval_data/%s_set/pred_save/pre_%03d.pkl' % \
               (opt.set, test_ind), 'rb') as fp:
        hmr_data = pickle.load(fp)
    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)