2016-04-04 54 views
1

我是opencv的新手,我试图跟踪图像中的一些移动对象(例如汽车)。我计算了光流,并用它来实现kmeans并尝试类似于背景减法的东西,我的意思是从静止的单独的移动物体。然后我也用视频的强度作为信息。下面屏幕截图来自该流的结果和第k分别指分割:改进对象检测的建议

enter image description here

的效果不好,而且不坏。我从现在开始怎么办?我正在考虑尝试SURF特征提取和SURF探测器。任何想法都欢迎。

+0

阴影似乎会导致问题,您是否尝试过可以检测阴影的MOG2检测器?你想在哪里找到车辆?你有没有尝试级联分类器? –

+0

不,我没有使用这些建议。而且我甚至不知道该如何说实话。我想检测一般的运动。不计算汽车或类似的东西。只需检测运动,然后以特定颜色跟踪汽车。 –

+0

关于背景减法,请参阅[this](http://docs.opencv.org/3.1.0/db/d5c/tutorial_py_bg_subtraction.html#gsc.tab=0)。特征检测的问题在于它适用于查找单个匹配。我试图玩[这个问题](http://stackoverflow.com/questions/36363397/issue-training-sift-or-surf-for-car-detection-in-video-with-opencv- python),它证明有点棘手。 –

回答

1

看来你正在使用密集的光流。我会建议尝试一些特征检测(冲浪,快速,无论),然后进行稀疏光流跟踪(从我的经验来看,它比这项任务的特征匹配要好)。然后,一旦你有了一些帧的特征对应,你可以使用基本矩阵,三焦张量,平面+视差或其他方法来检测运动物体。稍后可以将移动对象聚类到代表不同对象的不同运动组中。

此外,它似乎是你的相机是固定的。在这种情况下,您可以放弃移动检测步骤,并只考虑具有足够位移的曲目,然后将其聚类到移动组中。

+0

谢谢你的回答!稍后我会尝试移动相机。我的第一个想法是使用findHomography来补偿相机的移动。它会起作用吗? –

+0

取决于“平坦”的实际背景。平面+视差遵循此路径,并且在单应性补偿之后,它们获得所谓的残差视差。你可以稍后检查一下,如果这些动作共享一个扩展焦点并按照这个标准分段 – alexisrozhkov

+0

你可以提供一些代码或教程吗?我会很感激 。 –