ROMP icon indicating copy to clipboard operation
ROMP copied to clipboard

如何确定每帧视频中人物的对应关系

Open yuchen-ji opened this issue 2 years ago • 8 comments

感谢您之前的指导,我已经可以根据单人视频的参数在unity中驱动单人模型了~ 对于人数不变的视频,我发现single_batch_results每帧输出的人物的参数的数组是对应的,第一帧的single_batch_results[0]和第二帧的single_batch_results[0]是同一个人。 但是对于人数变化的视频,请问我应该怎么知道每帧视频中人物是如何对应的呢~

yuchen-ji avatar Apr 29 '22 15:04 yuchen-ji

simple-romp中的romp有简单的tracking功能,可以获取视频中每个人物的运动序列。 加上 --temporal_optimize --smooth_coeff=3. 可以实现追踪+时域优化

Arthur151 avatar Apr 30 '22 02:04 Arthur151

simple-romp中的romp有简单的tracking功能,可以获取视频中每个人物的运动序列。 加上 --temporal_optimize --smooth_coeff=3. 可以实现追踪+时域优化

simple-romp应该是打包好的程序吧,我希望能对代码进行修改所以采用的是romp-v1.1的版本,请问1.1的版本里有将每帧人物对应的功能嘛,或者我如果自己增加,应该如何增加比较好呢~

yuchen-ji avatar Apr 30 '22 08:04 yuchen-ji

1.simple-romp只是可以通过pip安装,更方便的作为库调用使用而已。simple-romp的代码更精简,可以实现的功能也不少,每次改完simple_romp内的代码,在simple_romp文件夹里重新安装一下python setup.py install就可以使用自己写的代码了。

2.romp-v1.1也具有这个功能,在这里设置 https://github.com/Arthur151/ROMP/blob/653a0c9de13c7e242bc304147ae6559d1c6ff283/configs/webcam.yml#L18

Arthur151 avatar Apr 30 '22 09:04 Arthur151

ple-romp只是可以通过pip安装,更方便的作为库

好的,明白啦,大神讲的太细致了,我这就去试一下~

yuchen-ji avatar Apr 30 '22 09:04 yuchen-ji

1.simple-romp只是可以通过pip安装,更方便的作为库调用使用而已。simple-romp的代码更精简,可以实现的功能也不少,每次改完simple_romp内的代码,在simple_romp文件夹里重新安装一下python setup.py install就可以使用自己写的代码了。

2.romp-v1.1也具有这个功能,在这里设置

https://github.com/Arthur151/ROMP/blob/653a0c9de13c7e242bc304147ae6559d1c6ff283/configs/webcam.yml#L18

非常感谢您的回答,我尝试了一下,还有一些问题想向您请教一下:

  1. 我发现跟踪的时候抖动的情况比较频繁,经常会出现有些人物无法识别的情况,如果不启用temporal_optimization的时候情况就会好很多
  2. 我发现您采用了norfair的跟踪器,不太清楚如果视频中新出现了一个人物,他是如何根据前几帧跟踪的呢
  3. 您是采用的center的跟踪方式,然后我发现您还写了一个用2dkeypoint来进行跟踪,请问一下这个pj2d_org是pelvis节点对齐的嘛~

yuchen-ji avatar May 06 '22 09:05 yuchen-ji

  1. ROMP目前只推出了单帧版本,时域处理方面的实现比较简陋。目前主要精力就是着手优化这一点。
  2. norfair我也没有细研究。
  3. pj2d_org是原图中的2D关键点坐标,就是估计的3D关键点投影到原图的位置。

Arthur151 avatar May 06 '22 10:05 Arthur151

您好,想请问一个视频中人物对应关系的问题。我有一个两人运动的视频。我设置了ROMP的模式为settings.mode='video',然后用cv2.VideoCapture依次读取视频中的每一帧frame,再用romp_model(frame, signal_ID = frameNum)估计人体的SMPL,我发现得到output中的参数0和1对应的人物会变化,并不是始终对应同一个人,这是为什么呢? 如何采用python库函数调用的方式,对video进行检测,可以保证输出结果参数的序号与任务始终保持一致呢?

sycamore27 avatar Jul 11 '22 12:07 sycamore27

@sycamore27 如果要使用tracking功能,需要设置 temporal_optimize=True

Arthur151 avatar Jul 11 '22 13:07 Arthur151