在视频上进行光流(lk)之后,根据这些数据找到对象并跟踪它们的最佳方法是什么?
这可能听起来非常苛刻,但我希望能够在物体周围定义清晰的轮廓,所以如果它是一个奇怪形状的瓶子或能够检测到边缘的东西.
san*_*iso 11
我不确定LK是最好的算法,因为它计算一组稀疏角点的运动,并且跟踪通常在密集的光流结果(例如Farneback或Horn Schunck)中表现更好.计算流程后,作为第一步,您可以对其规范进行一些阈值处理(以保留运动部件),并尝试从此结果中提取连接区域.但要注意,如果您没有要跟踪的对象模型,那么您的任务并不容易.
另一方面,如果您主要对跟踪感兴趣并且可以接受一些交互性,则可以查看camshift示例代码,以了解如何根据图像区域的外观选择和跟踪图像区域.
---编辑---
如果您的相机是静态的,请改用背景减法.使用OpenCV 2.4 beta,您必须在视频模块文档中查找类BackgroundSubtractor及其子类.
还要注意,光流可以是实时的(或不是很远),具有良好的参数选择,也可以是GPU实现.在Windows上,您可以使用TU Graz/Gpu4Vision组的flowlib.OpenCV也有一些GPU密集的光流,例如类gpu :: BroxOpticalFlow.
---编辑2 ---
将单像素检测连接到大对象是一项称为连接组件标记的任务.在OpenCV中实现了一种快速算法.所以这给你一个管道,它是:
但我们必须停在这里,因为我们很快就会超出你最初问题的范围;-)
| 归档时间: |
|
| 查看次数: |
7404 次 |
| 最近记录: |