syguan96/DynaBOA

Results on internet videos

Closed this issue · 5 comments

嗨,作者您好,感谢您所做的工作。
我按照您给的步骤测试internet video,效果不对,有点疑问,希望您能提供帮助。

我的步骤如下:

  1. 原视频:
    internet_video.zip

  2. 视频对应的图像如下:
    vd_demo02.zip

  3. 通过openpose_body25获取得到2Dkeypoints, python process_data.py --dataset internet 处理后得到文件如下:
    vd_demo02_json_npz.zip

其中,我修改了utils/kp_utils.py, 添加了openpose25对应的关键点位和关节点的连接关系:
`def get_openpose25_joint_names():
return [
'OP Nose', # 0
'OP Neck', # 1
'OP RShoulder', # 2
'OP RElbow', # 3
'OP RWrist', # 4
'OP LShoulder', # 5
'OP LElbow', # 6
'OP LWrist', # 7
'OP MidHip', # 8
'OP RHip', # 9
'OP RKnee', # 10
'OP RAnkle', # 11
'OP LHip', # 12
'OP LKnee', # 13
'OP LAnkle', # 14
'OP REye', # 15
'OP LEye', # 16
'OP REar', # 17
'OP LEar', # 18
'OP LBigToe', # 19
'OP LSmallToe', # 20
'OP LHeel', # 21
'OP RBigToe', # 22
'OP RSmallToe', # 23
'OP RHeel', # 24
]

def get_openpose25_skeleton():
return np.array(
[
[1, 8],
[1, 2],
[1, 5],
[2, 3],
[3, 4],
[5, 6],
[6, 7],
[8, 9],
[9, 10],
[10, 11],
[8, 12],
[12, 13],
[13, 14],
[1, 0],
[0, 15],
[15, 17],
[0, 16],
[16, 18],
[14, 19],
[19, 20],
[14, 21],
[11, 22],
[22, 23],
[11, 24],
]
)
`

  1. h36m 和 internet videos 一起测试
    (1) 下载了h36m数据集的images,它对应的属性信息是存放在data/retrieval_res中的吧
    (2) ckpt:data/basemodel.pt
    (3)测试时打印的信息:
    (p_366) lina@lina-MS-7C82:~/lxh_3D_pose_estimate/DynaBOA-main$ bash run_on_internet.sh
    ---> seed has been set
    ---> model and optimizer have been set
    1
    75
    LEN: 75
    Adapt: 0%| | 0/75 [00:00<?, ?it/s]
    imgname: imageFiles/h36m_s1/images/S7_Sitting_1.60457274_004151.jpg
    imgname: imageFiles/h36m_s1/images/S8_Sitting_1.60457274_001016.jpg
    imgname: imageFiles/h36m_s1/images/S8_Sitting.60457274_001986.jpg
    imgname: imageFiles/h36m_s1/images/S5_Phoning_1.58860488_000841.jpg
    imgname: imageFiles/h36m_s1/images/S5_Discussion_2.55011271_001061.jpg
    imgname: imageFiles/h36m_s1/images/S7_Discussion_1.55011271_004621.jpg
    imgname: imageFiles/h36m_s1/images/S7_Directions_1.60457274_001211.jpg
    imgname: imageFiles/h36m_s1/images/S6_Waiting_3.55011271_001331.jpg
    imgname: imageFiles/h36m_s1/images/S6_Photo_1.60457274_001266.jpg
    Adapt: 1%|█▊ | 1/75 [00:06<08:08, 6.60s/it]
    imgname: imageFiles/h36m_s1/images/S8_Greeting.60457274_000686.jpg
    imgname: imageFiles/h36m_s1/images/S1_Posing.55011271_000126.jpg
    imgname: imageFiles/h36m_s1/images/S8_Discussion.60457274_000446.jpg
    imgname: imageFiles/h36m_s1/images/S6_Greeting_1.60457274_001291.jpg
    imgname: imageFiles/h36m_s1/images/S6_Waiting_3.60457274_000211.jpg
    imgname: imageFiles/h36m_s1/images/S1_Posing_1.60457274_000516.jpg
    imgname: imageFiles/h36m_s1/images/S8_WalkTogether_1.55011271_001301.jpg
    imgname: imageFiles/h36m_s1/images/S6_WalkTogether_1.60457274_001466.jpg
    imgname: imageFiles/h36m_s1/images/S1_Posing.55011271_000106.jpg
    Adapt: 3%|███▋ | 2/75 [00:08<04:41,
    ...
    ...
    Adapt: 99%|███████████████████████████████████████████████████▏ | 74/75 [02:32<00:02, 2.25s/it]
    imgname: imageFiles/h36m_s1/images/S1_Waiting.55011271_001686.jpg
    imgname: imageFiles/h36m_s1/images/S7_Directions.55011271_001891.jpg
    imgname: imageFiles/h36m_s1/images/S5_Purchases_1.55011271_000126.jpg
    imgname: imageFiles/h36m_s1/images/S5_Photo_2.55011271_002106.jpg
    imgname: imageFiles/h36m_s1/images/S6_Waiting_3.55011271_001941.jpg
    imgname: imageFiles/h36m_s1/images/S5_Waiting_2.55011271_000751.jpg
    imgname: imageFiles/h36m_s1/images/S5_Photo.55011271_003156.jpg
    imgname: imageFiles/h36m_s1/images/S5_Walking_1.60457274_002091.jpg
    imgname: imageFiles/h36m_s1/images/S8_Eating_1.55011271_002041.jpg
    Adapt:100%|█████████████████████████████████████████████████████| 75/75 [02:34<00:00, 2.06s/it]

(4)最终重建效果:(效果不理想)
video_result.zip

想请问您,

  1. 效果不好是否是我的步骤或者处理数据有问题?
  2. 只使用Internet video测试时75张images耗时1m30s左右,效果同上,速度是否正常?有提升方式么?

感谢您耐心看完,希望能解答我的疑问,谢谢~

如果是Openpose的话,确认一下算kp2d loss的时候点是不是match的。

@emojiLee
70几帧确实有点短,我的测试数据一般几百到几千帧,所以超参可能要调一下。 但是效果应该不会这么差,因为我观察下来,dynaboa能很快收敛。

看这个效果模型像是完全没有adapted。SPIN的格式有25+24个点,我的代码里用的是后24个点,前25个点没有用。如果没有改这块的代码,算kp2d loss时, gt kp2d应该是0,所以效果不好。

我建议你装一下alphapose再测一下。

@emojiLee 70几帧确实有点短,我的测试数据一般几百到几千帧,所以超参可能要调一下。 但是效果应该不会这么差,因为我观察下来,dynaboa能很快收敛。

看这个效果模型像是完全没有adapted。SPIN的格式有25+24个点,我的代码里用的是后24个点,前25个点没有用。如果没有改这块的代码,算kp2d loss时, gt kp2d应该是0,所以效果不好。

我建议你装一下alphapose再测一下。

好的,我再试试,谢谢您~~

效果ok了,和您说的一样没有adapted,使用openpose的话base_adaptor.py里改为使用前25个kp2d就好,新效果如下:

new_video_results.zip

Happy to hear that. I will add support to OpenPose estimation results later.