camshitf 人脸跟踪

*Haar特征

白色区域像素值的总和-黑色区域像素值的总和。

原始特征分为,1,边缘特征。2,线型特征。3,中心环绕特征。4,对角特征。

使用积分图计算Haar特征,将图像遍历一遍。可以求得任意点到图像坐标原点所组成的矩形框的像素值的和。即可求得图像中任意矩形框的像素值的和。(左上角与右下角相加减去另外两个点与原点组成的矩形框的像素的和)

* back projection

camshift的原理是根据roi区域的颜色(hue)直方图来进行跟踪的。back projection(直方图反向投影)即将roi投射到整幅图像上,得到直方图反向投影,或者说是颜色的概率分布图。具体步骤是:

1)、将原始RGB图像转换为HSV图像。(h: 色调、s:饱和度、v:明度)

2)、hsv图像中提取h分量 (灰度图像?)

3)、计算出roi区域的hue直方图,直方图表示不同H分量取值出现的概率,可以通过查找该直方图,H分量大小为某一特定值x出现的概率

4)、back projection过程——将图像中每个像素的值用其颜色出现的概率进行替换,由此得到颜色的概率分布图。

* meanshift

1)、设置初始化窗口。(由上得到图像的概率密度图)

2)、计算这个窗口的重心。(由中心点向ROI区域内的其他点做一个向量,然后求向量和,和向量的起始点即为前一帧的中心点,箭头所指的点即为下一帧的中心点。)

3)、将窗口的中心移动到重心上面去。

4)、一直重复,直到收敛。(重心与中心点重合)。(运动速度太快,可能也会丢失的。局部收敛)

* camshift

对于camshift的基本原理是对视频图像的所有帧作meanshift运行。并将上一帧的结果作为下一帧的初始化窗口,如此迭代就可以 跟踪了。

是有优化处理的: 1, 对于人脸检测,将检测到的人脸提取,然后再做肤色检测,对于误检区域,其肤色检测结果不通过。能够很大的排除误检。

2。 对于提高检测实时性,使用高斯背景建模,将运动的区域圈出来,只对运动区域做人脸检测。(对于相机固定的情况,该方法是可行的,但是相机运动的情况下,该方法是不可行的。)

(光流法可以针对运动相机?)

猜你喜欢

转载自blog.csdn.net/weixin_37703648/article/details/81945494