哪种使用OpenCV进行对象检测的方法最适合不断变化的环境?

时间:2019-04-03 05:36:00

标签: opencv object detection

我正在尝试确定最佳的OpenCV方法和实现,以识别出现在实时摄影机供稿中的对象。该实现必须具有鲁棒性以适应不断变化的光照条件,并且理想情况下应能够适应背景中的轻微移动(树木/云朵移动),而不会产生过多的噪声。

到目前为止我尝试过的选项包括;

-识别空白背景框和当前框之间的绝对像素差(如果光线条件发生变化或相机抖动,则效果不佳)

-Background subtraction(有助于改变条件,但会产生过多的噪音)

-还考虑过使用边缘检测,该边缘检测不会受到光照条件变化的影响,并以某种方式比较对象形状以查看有什么新事物

理想情况下,我希望有一个输出,它允许我为框架中移动的任何对象生成一个边界框,背景参考随时间逐渐变化以适应变化的光照条件(或者可以对输入框架进行光照标准化)所以没有效果吗?)

您会推荐什么?我正在通过C ++通过Visual Studio 2017运行OpenCV

1 个答案:

答案 0 :(得分:0)

我正在做一个类似项目的课程项目。我使用了OpenCV库中的HSV / RGB阈值,累积差异图像和MOG等几种方法。

对于您的情况,我建议您使用与MOG非常相似的累积差异图像。基本上,您要彼此减去连续的帧(当前帧之前的帧),然后使用阈值转换为二进制图像。然后可以对二进制图像执行形态学运算以增强检测能力。

此方法相对适合您的情况,因为它对照明和相机运动的合理缓慢变化不敏感。但是不会检测到静止的物体。

为了消除噪声,您可能需要先腐蚀然后再扩张二进制图像(进行形态学操作)。

祝你好运!