我有一些有关制作多相机跟踪程序的经验丰富的OPENCV用户的问题。因此,要快速提出一个问题,我想用多个摄像机跟踪多个对象。我想取得的结果或多或少是这样的:https://www.youtube.com/watch?v=7dy9co0mwy0
最终,我得出的结论是,我想使用Kalman过滤器进行跟踪。我想问的问题是:
- 是否有一种方法可以根据视频链接中的视频数据集校准多个摄像机?可以自动完成吗?我知道您可以使用棋盘(http://docs.opencv.org/3.3.0/dc/d43/tutorial_camera_calibration_calibration_square_chess.html)校准摄像头,但事实并非如此。还有类似的东西:http://docs.opencv.org/master/d2/d1c/tutorial_multi_camera_main_main.html,但我想它具有相同的缺点。
- 最有效的跟踪方法是什么?我应该在每个视图中使用Kalman滤波器,并尝试合并个人结果,或以某种方式尝试重建3D中的对象,然后应用过滤器?
任何建议都将受到欢迎。谢谢。
我目前正在研究排球比赛中使用的自动裁判系统(例如网球中的鹰眼系统),并且我内部实现了球跟踪。这样我就可以给你一些建议:
- 尝试使用OpenCV校准摄像机固有参数
- 使用场景中的特征点来确定相机姿势(SolvePNP可能对开始有益)
- 检测每个相机上的对象,不要应用任何过滤,近似和插值 - 它将降低测量的准确性
- 每个点的重施加3D坐标(使用摄像机内在的校准和计算的姿势)
- 对结果进行过滤。
如果您希望通过此跟踪实现良好的计量结果,那可能真的很困难。但这不会用于您发布的视频中显示的简单可视化。