APP下载

一种基于Shi-Tomasi和改进LBP的特征匹配及目标定位快速算法

2021-09-22张照崎朱留存刘济尘魏金占蔡旭航赵成龙

吉林大学学报(理学版) 2021年5期
关键词:定位精度尺度像素

张 震, 张照崎, 朱留存, 刘济尘, 魏金占, 蔡旭航, 赵成龙

(1. 北部湾大学 先端科学技术研究院, 广西 钦州 535001;2. 大连理工大学-立命馆大学国际信息与软件学院, 辽宁 大连 116085;3. 吉林大学 软件学院, 长春 130012)

0 引 言

图像局部特征点在不同的拍摄场景下具有不变性, 广泛应用于目标定位与识别[1-3]、 同时定位及导航(simultaneous localization and mapping, SLAM)[4-5]、 图像配准与图像拼接[6-8]等领域. 这类方法首先利用灰度图像的一阶或二阶导数检测特征点; 然后根据特征点描述子之间的相似度寻找匹配点对; 最后通过特征匹配关系估计图像间的变换矩阵[8-9]. Harris等[10]提出了经典的Harris特征点检测算法; Shi等[11]对Harris算法进行了优化改进, 取得了更好的检测效果, 对图像旋转、 光线变化、 噪声和视点变换不敏感. 上述算法主要研究特征点检测, 并未关注描述子的定义和匹配问题. 之后, 能适应尺度变化的特征检测算法被相继提出, 较经典的是尺度不变特征变换(SIFT)算法[12]和SURF算法[13], SURF是SIFT的改进算法. 这类算法需要用Gauss差分算子或Laplace 算子构建尺度空间, 适应性更好, 但增加了计算复杂度, 实时性较差. SIFT算法[12]先将以特征点为中心的16×16邻域划分为4×4个子区域, 再针对每个子区域计算8个方向梯度, 最终得到的128维向量定义为描述子. SURF[13]则以特征点为中心取一个具方向的正方形邻域, 先将其划分为16个子区域, 再针对每个子区域计算4个Haar小波特征, 最终得到64维向量作为描述子. 上述两个描述子信息丰富, 但运算代价高、 占用内存大. Calonder等[14]提出了BRIEF描述子, 其占用内存少, 得到广泛认可. Rublee等[15]对BRIEF描述子进行了改进, 提出了ORB算法[15], 该算法根据角度参数提取BRIEF描述子, 实时性好且具有更好的旋转不变性.

本文源于解决机器人视觉伺服抓取问题, 对定位精度和实时性均要求较高. 经典的SIFT,SURF算法定位精度高, 但实时性较差. ORB算法速度快, 但定位精度不满足要求. 因此, 本文算法在保证算法稳定性的前提下, 期望在实时性和定位精度间寻找平衡点. 首先, 选择Shi-Tomasi算法[11]提取特征点; 其次, 以特征点为中心截取局部子图像, 利用Gauss函数的两个偏导数计算特征方向, 再根据特征方向旋转局部图像, 提取旋转后标准局部图像的局部二值模式(local binary pattern, LBP)特征[16]作为描述子; 再次, 通过计算特征点描述子之间的Hamming距离确定相似度, 实现特征匹配; 最后, 根据匹配结果定位目标在场景中的位置. 算法流程如图1所示.

图1 本文算法流程Fig.1 Flow chart of proposed algorithm

1 Shi-Tomasi特征检测算法

Shi-Tomasi算法[11]思想: 以待检测点为中心加窗, 通过移动窗口, 计算移动前后窗口内像素强度差. 如果沿任意方向移动窗口, 强度差值都较大, 则待检测点为特征点.

根据上述算法思想, 强度差可抽象为

(1)

其中W(x,y)为采样窗口,I(x,y)为像素值,u,v为以待测点为中心的偏移量.

由Taylor公式, 有

I(x+u,y+v)=I(x,y)+Ixu+Iyv+O(u2,v2),

其中Ix,Iy为偏导数.于是

(2)

从而式(1)可近似为

(3)

1) 当λ1,λ2值都很小时, 待检测点落入图像平坦区域, 非特征点;

2) 当λ1≫λ2或λ1≪λ2时, 待检测点落在图像边缘上, 非特征点;

3) 当λ1,λ2值都很大时(较小值大于某阈值), 待检测点为特征点.

Shi-Tomasi算法特征检测结果如图2所示, 其中: (A)为标准图像; (B)为标准图像检出的特征点; (C)和(D)分别为(A)旋转10°,-10°后检出的特征. 实验中, 阈值选取为最大特征响应强度的0.1倍. 由图2可见, Shi-Tomasi特征检测算法具有良好的旋转不变性.

图2 Shi-Tomasi算法特征检测结果Fig.2 Feature detection results of Shi-Tomasi algorithm

2 基于LBP的特征描述子

特征描述子应具有较好的区分度, 且当图像发生平移、 旋转变化时, 具有不变性. 本文描述子定义方法充分利用了图像像素间位置、 大小关系以及数字图像的离散性特点, 尽可能简化描述子, 减小匹配代价, 并满足伺服定位抓取中的定位精度和实时性要求, 算法步骤如下.

1) 以特征点为中心截取局部图像I21×21. 取样窗口如图3(A)所示, 窗口尺寸为21×21, 局部图像如图3(B)和(C)中小图所示(为便于观察, 做了放大处理).

2) 获取7×7大尺度局部图像I7×7.将I21×21划分为7×7个区域, 区域尺寸为3×3, 如图3(A)中粗线所示, 对每个区域像素值求和, 作为大尺度图像的像素值, 得到大尺度局部图像I7×7, 本文采用积分图像法, 以提高运行速度.

3) 由大尺度局部图像I7×7, 利用Gauss函数的两个偏导数

(4)

设计方向滤波器, 确定特征点方向角θ.取σ=1, 得到两个方向滤波器fx,fy为

方向滤波器fx,fy边角位置取0, 目的是确定方向时削弱旋转产生的影响.将大尺度局部图像I7×7分别与fx,fy做卷积(滤波), 得到Gx,Gy, 则特征点方向角θ=arctan(Gy/Gx).特征方向确定结果如图3(B)和(C)中由各特征点引出的白线所示.

4) 由大尺度局部图像I7×7和方向角θ, 获取5×5标准化局部图像I5×5.将原坐标系xoy旋转θ角, 构建新坐标系x′oy′, 如图3(D)所示.在x′oy′坐标系下取5×5个整数位置点得到标准化局部图像I5×5, 则各点(x′,y′)在xoy坐标系下的位置(x,y)由

(5)

确定.显然, 点(x,y)通常落在xoy坐标系下的非整数点位置, 例如x′oy′坐标系下点(2,2)落在xoy坐标系下A,B,C,D四个整数位置点之间, 如图3(D)所示.本文采用双线性插值法, 确定I5×5中各点像素值.例如, 可根据xoy坐标系下A,B,C,D四点像素值求x′oy′坐标系下点(2,2)的像素值.

图3 描述子生成过程Fig.3 Generation process of descriptors

图4 LBP原理Fig.4 LBP principle

5) 提取标准化局部图像I5×5的LBP特征作为特征描述子. LBP特征以3×3图像块的中心像素灰度值作为阈值, 与8个相邻像素灰度值进行对比, 大于该阈值取1, 否则取0, 得到的8位二进制串作为LBP特征, 其原理[16]如图4所示. LBP特征较好地刻画了数字图像像素间位置及像素值大小的关系, 具有速度快、 不受光照变化影响的优点. 标准化局部图像I5×5可提取到3×3个8位二进制串作为特征点的描述子, 描述子提取结果如图3(B)和(C)中矩阵所示.

3 特征匹配及目标定位算法

特征匹配的依据是特征点描述子间的距离, 本文采用Hamming距离作为度量标准, 即待匹配的两个描述子间9个8位二进制串中(共72个二进制位)不相同位的个数. 特征匹配步骤如下:

1) 选定标准图像中任意一个描述子G[m];

2) 在场景图中寻找与其匹配的描述子G′[n], 使得d(G[m],G′[n])最小;

3) 若d(G[m],G′[n])<τ(τ为设定的阈值), 则判定标准图像特征点m与场景图像特征点n匹配.

特征匹配结果如图5所示, 其中各连线对应的两点表示匹配的特征点.目标定位过程如下:

1) 寻找两组匹配特征点对之间的变换矩阵, 即估计归一化单应性矩阵:

(6)

满足

(7)

2) 输入标准图像的4个顶点坐标, 利用式(7)计算出与之对应场景图像4个顶点的坐标, 定位目标位置.

目标定位效果如图5所示, 其中红色框圈定了标准图像在场景图像中的位置. 机器人伺服抓取时, 根据式(7)确定旋转量和平移量, 平移尺寸由像素距离和实际距离的比例关系确定.

图5 旋转10°(A)和170°(B)后特征匹配及目标定位结果Fig.5 Results of feature matching and target location after rotating 10° (A) and 170° (B)

4 实验结果分析

实验环境: 操作系统Win10 64位, 开发平台VSC++, 计算机CPU为3.6 GHz, 内存16 GB. 为验证本文算法的有效性, 选择经典算法SIFT[12],SURF[13]和ORB[15], 对算法的运行速度、 定位精度、 稳定性进行对比实验. 参与对比的SIFT,SURF和ORB算法通过调用Opencv库函数实现. 由于SIFT和SURF算法已申请专利, 不能在发布模式下运行, 因此为使实验结果具有可比性, 对比实验均在DEBUG模式下运行.

图6和图7分别为不同算法对Flower图像和Crowd图像的匹配及定位效果对比, 分别进行了旋转、 平移处理作为场景图像, 通过调整算法参数, 使4种算法特征匹配数量基本相当.

图6 不同算法对Flower图像的匹配及定位效果对比Fig.6 Comparison of Flower image matching and location effect by different algorithms

图7 不同算法对Crowd图像的匹配及定位效果对比Fig.7 Comparison of Crowd image matching and location effect by different algorithms

由图6和图7可见, 只有图7(C)定位偏差较大, 其他图片定位效果均较好, 差异不明显. 以图7中Crowd图像为例, 做实验数据量化对比. 在定位精度对比中, 由于机器人视觉伺服抓取过程中相机位置是固定的, 工件只会发生位置偏移和角度旋转, 不存在尺度和仿射变换, 因此本文重点对平移及旋转误差进行对比.

表1列出了图7中Crowd图像各角度下定位过程运行时间的对比结果. 由表1可见, 平均耗时分别为ORB算法37 ms, 本文算法144 ms, SURF算法380 ms, SIFT算法950 ms.

表1 不同算法的运行时间(ms)对比

平移误差定义为: 定位中估计的4个顶点坐标与场景中实际顶点坐标之间距离的最大值. 表2列出了Crowd图像定位过程在各旋转角度下平移误差的对比结果. 由表2可见: SIFT算法定位精度最高, 平移误差均值为0.52, 平移误差最大值为0.76; 本文算法平移误差均值为0.67, 平移误差最大值为1.51; SURF算法平移误差均值为0.68, 平移误差最大值为1.64; ORB算法定位精度最差, 平移误差的均值为3.93, 平移误差的最大值为12.73, 稳定性较差.

表2 不同算法的定位精度(像素)对比

旋转误差定义为: 定位中估计的4条边界线与场景实际边界线角度偏差绝对值的最大值. 表3列出了Crowd图像定位过程在各角度下旋转误差的对比结果. 由表3可见: SIFT算法定位精度最高, 旋转误差均值为0.01, 旋转误差最大值为0.02; 本文算法定位精度略差于SIFT算法, 旋转误差均值为0.06, 旋转误差最大值为0.11; SURF算法旋转误差均值为0.07, 旋转误差最大值为0.15; ORB算法旋转误差均值为0.31, 旋转误差最大值为0.86, 旋转定位精度最差.

表3 不同算法的定位精度(°)对比

综上所述, 本文在获取描述子过程中, 由21×21子图像获取7×7大尺度子图像, 并由7×7大尺度子图像确定特征方向, 提取标准子图像及描述子, 主要因为: 1) 由于提取的特征点坐标有偏差, 且该坐标由浮点数取整过程中还会累计误差, 将影响后期的特征匹配, 而采用大尺度方式, 会极大削弱这种影响, 使算法更稳定; 2) 大尺度方式下确定特征方向、 提取标准子图像及描述子时, 极大减少了参与运算点, 从而缩短了运算时间. 在确定特征方向时采用的两个方向滤波器中, 各点对方向贡献大小由其到中心点的距离决定更合理, 确定的方向也更准确. 在定义描述子阶段采用的LBP特征, 简单易行, 且Hamming距离计算速度快. 实验结果表明, 本文算法在定位精度上略差于SIFT算法, 与SRUF算法基本相当, 明显优于ORB算法; 在定位速度上, 本文算法明显慢于ORB算法, 但远好于SIFT和SURF算法, 能满足实时性要求; 本文算法的稳定性较好, 最大平移误差小于2个像素, 最大旋转误差小于0.2°. 因此, 本文算法综合性能更好.

猜你喜欢

定位精度尺度像素
像素前线之“幻影”2000
财产的五大尺度和五重应对
“像素”仙人掌
GPS定位精度研究
GPS定位精度研究
组合导航的AGV定位精度的改善
ÉVOLUTIONDIGAE Style de vie tactile
高分三号SAR卫星系统级几何定位精度初探
宇宙的尺度
高像素不是全部