您的位置:首页 > 其它

图像目标检测与跟踪学习笔记(四)

2017-12-04 15:36 736 查看
课堂小结

这节课首先对Hog算法进行了补充,然后小组分别详细展示了SIFT算法、SURF算法和距离度量方法。

1. Hog算法补充

    在进行特征计算之前先要对图片进行预处理,使得行列的像素个数(m, n)能被cell的边长(设为8)整除。每个cell feature的个数为9,那每个Block的feature为4*9=36,那整个图片的feature个数为:(m/8-1)*(n/8-1)*36

2. SIFT(尺度不变特征变换匹配算法)

sift算法的大致流程如下:



首先可以通过在原图上用高斯函数模板进行滑窗处理(卷积运算),得到模糊化的图像,高斯函数为:



式中,(x, y)是模板的元素,(m, n)是模板的大小,sigma选值越大,处理后的图片也就更模糊,效果如下:





而后按照此方法,选择不同倍数的sigma(sigma、k*segma、k^sigma...)构造第一阶高斯金字塔,这里我们构建五层,然后选取第一阶的第三层,对其隔点采样作为为第二阶的第一层,再构建第二阶金字塔,后面同理,如下所示:



将高斯金字塔每一层减去它下面一层,得到差分金字塔(DOG):



检测DOG中一点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较:



如果它比周围26个点都大或者都小,则该点将作为一个局部极值点, 我们称之为关键点记录,关键点尺度公式为:



对于在DOG金字塔中检测出的关键点,采集其所在高斯金字塔图像3sigma领域窗口内像素的梯度和方向分布特征,用直方图进行统计(与梯度直方图类似,将0-360°范围分为八个区间,每个区间45°):



然后统计关键点附近16×16像素的梯度方向分布与幅值(4×4为一个单元进行统计);



将样本与待检测目标的关键点特征进行匹配,即可实现目标检测。

SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。但由于其处理的数据较多,实时性不够好,并且对于边缘光滑目标的特征点提取能力较弱。后面的SURF算法针对这一问题做出了改进。

3. SURF(Speeded Up Robust Features)

    针对上文中SIFT算法存在的问题,SURF算法改进了特征的提取和描述方式,用一种更为高效的方式完成特征的提取和描述。具体实现流程如下:

1. 构建Hessian(黑塞矩阵),生成所有的兴趣点,用于特征的提取;
2. 构建尺度空间
3. 特征点定位
4. 特征点主方向分配
5. 生成特征点描述子
6. 特征点匹配

每个像素点可以求得一个Hessian矩阵(Hessian矩阵描述了函数的局部曲率)



其判别式为:



当判别式取得局部最大/小值时,判定当前点比周围领域的点更亮/暗,由此来确定关键点的位置。

由于我们的特征点需要具备尺度无关性,所以在进行Hessian矩阵构造前,需要对其进行滤波,由于高斯核是服从正态分布的,从中心点往外,系数越来越低,为了提高运算速度,Surf使用了盒式滤波器来近似替代高斯滤波器,提高运算速度。

每个像素的Hessian矩阵行列式的近似值:(在Dxy上乘了一个加权系数0.9,目的是为了平衡因使用盒式滤波器近似所带来的误差)



同Sift一样,Surf的尺度空间也是由O组L层组成,不同的是,Sift中下一组图像的尺寸是上一组的一半,同一组间图像尺寸一样,但是所使用的高斯模糊系数逐渐增大;而在Surf中,不同组间图像的尺寸都是一致的,但不同组间使用的盒式滤波器的模板尺寸逐渐增大,同一组间不同层间使用相同尺寸的滤波器,但是滤波器的模糊系数逐渐增大。



        特征点的定位过程Surf和Sift保持一致。

        Sift特征点方向分配是采用在特征点邻域内统计其梯度直方图,而在Surf中,采用的是统计特征点圆形邻域内的harr小波特征。在特征点的圆形邻域内,统计60度扇形内所有点的水平、垂直harr小波特征总和,然后扇形以一定间隔进行旋转并再次统计该区域内harr小波特征值之后,最后将值最大的那个扇形的方向作为该特征点的主方向。



surf算法在特征点周围取一个4*4的矩形区域块,但是所取得矩形区域方向是沿着特征点的主方向。每个子区域统计25个像素的水平方向和垂直方向的haar小波特征,这里的水平和垂直方向都是相对主方向而言的。该haar小波特征为水平方向值之后、垂直方向值之后、水平方向绝对值之后以及垂直方向绝对值之和4个方向。



把这4个值作为每个子块区域的特征向量,与Sif算法相比,特征的描述子减少了一半。

    与Sift特征点匹配类似,Surf也是通过计算两个特征点间的欧式距离来确定匹配度,欧氏距离越短,代表两个特征点的匹配度越好。

4.距离度量方法

1). 欧氏距离

    最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中。

二维平面上两点a(x1,y1),b(x2,y2)之间的欧式距离公式:



同理,n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的欧式距离公式:



也可以表示成向量运算的形式:



1).曼哈顿距离 
    定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和
    二维平面上两点a(x1,x2),b(y1,y2)之间的曼哈顿距离公式:



同理,n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的曼哈顿距离公式:



1).切比雪夫距离
    各对应坐标数值差的最大值。若二个向量或二个点p 、q,其坐标分别为pi及qi ,则两者之间的切比雪夫距离定义如下:



这个公式的另一种等价形式是 :



4). 闵可夫斯基距离
    闵氏距离不是一种距离,而是一组距离的定义。n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的闵可夫斯基距离定义为:



其中p是一个变参数。

当p=1时,就是曼哈顿距离

当p=2时,就是欧氏距离

当p→∞时,就是切比雪夫距离

根据变参数的不同,闵氏距离可以表示一类的距离。

5). 标准化欧氏距离

    标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。样本集的标准化过程(standardization)用公式描述就是:



经过简单的推导就可以得到两个n维向量a(x1,x2……..xn)与 b(y1,y2……..yn)间的标准化欧氏距离的公式:



6). 马式距离

    有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到μ的马氏距离表示为:



而其中向量Xi与Xj之间的马氏距离定义为:



马氏距离的优缺点:量纲无关,排除变量之间的相关性的干扰。

7). 巴氏距离

    在统计中,巴氏距离测量两个离散或连续概率分布的相似性。它与衡量两个统计样品或种群之间的重叠量的巴氏系数密切相关。巴氏距离的定义:在同一定义域 X中,对于离散概率分布 p和q,它被定义为:



其中BC(p, q)是巴氏系数:



对于连续概率分布,巴氏系数被定义为:



当:0<BC<1, 0<DB<∞,巴氏距离DB均不满足三角不等式:

8). 汉明距离

    两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数,即两个字符串对应位置的不同字符的个数。

    如:

1011101与 1001001 之间的汉明距离是2  

 

2143896与 2233796 之间的汉明距离是3  

 

irie与 rise之间的汉明距离是 3

9). 夹角余弦

    几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异,可以把两点看成是空间中的两个向量,通过衡量两向量之间的相似性来衡量样本之间的相似性。

二维平面上两向量a(x1,y1),b(x2,y2)之间的夹角余弦公式:



n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的夹角余弦公式:



夹角余弦取值范围为[-1,1]。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐