我一直在努力寻找一种被广泛引用的方法。从本质上讲,我正在尝试不同的背景减除算法,但是当有明显的照明变化时(例如,从场景中的窗口在特定时间得到明显的眩光),似乎没有一个算法能很好地执行。
问题很简单(相对而言):在光照突然变化的情况下,最先进的背景减法方法是什么?我的场景是监控摄像头。
我一直在努力寻找一种被广泛引用的方法。从本质上讲,我正在尝试不同的背景减除算法,但是当有明显的照明变化时(例如,从场景中的窗口在特定时间得到明显的眩光),似乎没有一个算法能很好地执行。
问题很简单(相对而言):在光照突然变化的情况下,最先进的背景减法方法是什么?我的场景是监控摄像头。
标准方法是使用混合高斯模型来模拟控制像素强度的各种定律。在这种方法中,可以为一个像素分配多个正态定律(具有不同的均值和方差),每个正态定律将在不同条件下对其值进行建模。当然,一次只需要激活 1 个 Gaussian。
虽然混合中的最大高斯数是一个(固定的)参数,但每个高斯的参数都是在线学习的。您可以在OpenCV库中找到示例实现。
几年前,有人(对不起,我找不到名字了)提出了一种有趣的替代方法:使用图像梯度方向的变化而不是光强度的变化。梯度方向具有对比度不变的优点,使其对光照变化更加鲁棒。直观地说,它之所以有效,是因为渐变方向与图像中的形状相关,而不是与它们的颜色或亮度相关。
在任何情况下,这都不是一种“被广泛引用”的方法或最先进的背景减法。但是,您的第二句话说您正在尝试不同的方法,所以我认为我要说的仍然有一些价值。
我提出的是一种对比度不变的图像表示,称为形状树或水平线树(不幸的是,它们还没有确定一个普遍接受的名称)。
该提议的应用程序的总体思想是建立几个图像的对比度不变表示和,然后寻找差异。优点是你可以得到,作为输出,存在于但不在(反之亦然)与大多数简单的图像比较相反,结果是所有的差异,即所有存在于其中一个图像而不是另一个图像中的东西。
如果您的应用程序是安全摄像头,那么我想您可以在良好的条件下(均匀照明、低遮挡)获得一些真实图像。然后,您可以从地面实况图像构建形状树,然后使用它来检测当前图像中存在的新对象。树应该是相似的,因为它们不是基于像素的全局灰度级,而是基于“局部对比度”:驱动树构建过程的主要问题是它比周围环境更亮/更暗,而不是多亮/暗是吗。
与您的特定应用相关的是本文的最后几页:
P. Monasse, F. Guichard:对比度不变图像表示的快速计算 (2000)
(相关论文及应用实例)
您可以在我的答案中找到一些相关的参考资料,但在我看来,我为该答案所做的简短概述还远未完成。
该特定论文的作者还在 LNM 系列中出版了一本关于该特定树的小册子:
V. Caselles, P. Monasse:作为地形图的图像的几何描述(2010 年)
(包含大量细节的小册子)
最后,直到几天前,这些方法还只是理论而不是实际,因为最坏情况下的构建时间是图像像素数量的二次方。就在昨天,提出了一种准线性算法,最终使形状树可用于各种应用: