参考博客:
0 基础知识
接上一篇MOSSE相关滤波跟踪算法
-
线性滤波与卷积的基本概念
线性滤波过程:使用一个二维的滤波器矩阵(卷积核)在一副二维图像上滑动,对图像上每一个像素点,计算它的领域像素和滤波器矩阵上对应元素的乘积,然后加起来,作为输出图像该像素位置上的值;
-
卷积和协相关的差别:卷积需要先将滤波矩阵进行180°的翻转;
-
因为卷积和协相关都是线性,而且具有平移不变性(图像的每个位置都执行相同的操作);
-
2D卷积需要4个嵌套循环4-double loop,速度并不是很快,除非使用很小的卷积核,3×3或者5×5;
a. 滤波器大小应该是奇数,这样才有中心,才有半径对称;
b. 滤波器矩阵所有元素之和应该等于1,这是为了保证滤波前后图像的亮度保持不变;
c. 如果滤波器矩阵所有元素之后大于1,滤波后的图像就会比原图像更亮,反之,如果小于1,那么图像就会变暗;如果和为0,图像不会变黑,但是会非常安;
d.滤波后的结构,可能会出现负数或者大于255的数值。对这种情况,需要截断0和255之间即可,对负数也可以取绝对值。
1.锐化滤波操作:实际上是计算当前点和周围点的差别,然后将这个差别加到原来的位置上。另外,中间点的权值要比所有的权值和大于1,意味着这个像素要保持原来的值
2. 边缘检测:相当于求导的离散版本,将当前的像素值减去前一个像素值,得到这两个位置的差别或者斜率。在实际使用的过程中,尽量将矩阵中所有的值加起来为0。
3.浮雕滤波:将中心一边的像素减去另一边的像素,像素值可能是负数,负数就当阴影,正数为光。
4.均值值滤波:当前像素和其四领域的像素一起取平均,然后除以5,或者直接在滤波器的地方取0.2的值即可。
5.高斯滤波:利用高斯模型,建立滤波矩阵,优点就是很平滑。
1 MOSSE算法步骤
回归正题,相关滤波的检测原理就是使用一个相关核与图像进行相关,得到响应图峰值所在的位置,即当前帧目标的预测位置。为了得到响应图,需要求出滤波器模板频域的表示值即可。
Step1. 预处理
a. FFT卷积算法需要将图像和滤波器映射到拓扑结构上,边界采用循环图像的方式填充,即将图像的左边缘连接到右侧边缘,将顶部连接到底部;
b. 周期卷积会对输入数据进行周期填补,引入一些artifacts;
c. 采用点乘余弦窗处理,使图像边缘慢慢变成零。
Step2. MOSSE滤波
a. 求解目标图像和相关滤波核 的 最小二乘法求解:
b. 经过一系列推导,找到MOSSE滤波器的一个封闭解:
c. 更新MOSSE滤波器:
整个 MOSSE算法的研究到此,接下来就是代码实践了!