基于ORB的目标识别与角度测量方法

2019-12-24 09:21陈春梅
传感器与微系统 2019年12期
关键词:逆时针物体角度

徐 洪, 吴 斌, 陈春梅

(西南科技大学 信息工程学院,四川 绵阳 621010)

0 引 言

随着机器视觉理论的发展,机器视觉在工业中的应用越来越广泛[1]。在基于视觉的机器人工件分拣技术环节中,目标的识别定位是实现分拣和其他任务的前提。而在目标定位过程中最重要的就是快速准确的计算物体的旋转角度[2]。

基于图像的物体旋转角度测量方法在实际应用中已经被广泛采用,主要有基于图像的几何特征法[3,4]、通过计算物体位姿间接测量角度法[5]以及局部特征法[6~9]三类方法。文献[3]使用霍夫变换提取指针与零刻度线的夹角,从而确定偏转角度。文献[4]通过得到的目标中心线与设定的工作基准线之间的偏角,以识别目标的偏转角度。基于图像的几何特征法对形状规则的目标有较好的角度测量效果,若目标形状不规则或是目标被遮挡,则会导致测量误差较大甚至不能实现角度的测量。文献[5]通过计算物体位姿间接测量角度。该方法在实际应用中,需要设立标志点,容易导致测量误差,且算法时间复杂度较大。SIFT[10]特征、SURF[11]特征具有旋转、尺度、亮度不变性,因此也有许多研究人员使用SIFT算法、SURF算法计算目标旋转角度。文献[6~8]使用SIFT特征点的方向信息计算目标的旋转角度。文献[9]使用SURF算法通过计算匹配点的旋转矩阵测量目标旋转角度。基于SIFT、SURF局部特征计算目标旋转角度的方法由于算法本身时间复杂度较高,导致在实际运用中不能应用于实时性应用。

ORB特征[12]结合了FAST[13]特征检测和BRIEF[14]特征描述的速度优势,是一种比SIFT、SURF更高效的图像局部特征。在实际应用中,其实时性比浮点型特征描述符更高[15]。

针对工业生产中利用传统算法测量物体旋转角度精度较低而且时间复杂度较高的问题,本文利用ORB特征的旋转不变性,提出了基于ORB的快速角度测量方法。使ORB算法在特征匹配的同时可测量出目标的旋转角度,扩展了ORB特征的应用。该方法不需要额外设置标志点,也不要求目标外形具有规则的形状,且具有较高的实时性,在任何图像特征匹配中皆可使用。

1 ORB特征

ORB算法是结合FAST特征点检测与BRIEF特征点描述算法进行改进的。算法首先利用oFAST(FAST Keypoint Orientation)方法在图像金字塔中检测特征点,然后采用rBRIEF(Rotation-Aware BRIEF)方法计算二进制局部特征描述符,最后采用汉明距离进行特征匹配。

1.1 特征提取

FAST特征提取的核心思想是:基于加速分割测试特性。可以通过以下函数来判断一个FAST特征点

(1)

式中I(x)为特征点邻域边缘任一点的灰度值;I(p)为当前特征点处的灰度值;εd为阈值。

FAST特征不具有方向信息,ORB算法采用灰度质心法进行具有方向信息的FAST特征的检测:计算特征点领域的灰度质心,则特征点到质心的连线与横坐标轴的夹角即为特征点的主方向。特征点领域图像的矩定义为

(2)

θ=arctan(m01,m10)

(3)

这样就得到了具有方向信息的FAST特征,即oFAST特征。oFAST检测子不产生多尺度特征,ORB算法采用图像尺度金字塔,然后在每层金字塔检测oFAST尺度特征。

1.2 特征描述

ORB特征使用rBRIEF方法即旋转的BRIEF描述子计算特征点描述符。BRIEF描述子是由图像特征点的一组二进制测试所形成的比特字符串描述符。特征点领域P的二进制测试被定义如下

(4)

式中p(x),p(y)分别为点x,y的灰度。选择n个(xi,yi)点对,采用二进制测试准则生成的二进制特征描述子

(5)

式中n可取值128,256,512等。

式(5)中的描述符不具有方向信息,因此,通过特征点的主方向来旋转BRIEF描述符,使其具有旋转不变性。利用特征点的主方向信息θ、对应的旋转矩阵Rθ以及在位置(xi,yi)的任何n个二进制测试的准则集S,可得到一个旋转后的矩阵Sθ

(6)

结合式(5),旋转的BRIEF描述符即rBRIEF描述符可表示为

gn(p,θ)=fn(p)|(xi,yi)∈Sθ

(7)

式中 ORB算法采用贪婪搜索,选择n个相关性最低的像素块作为最终地描述子,n的取值一般为256。

1.3 特征匹配

由于ORB特征描述子为二进制码串形式,因此,ORB算法采用汉明距离进行特征匹配,选取距离最小的特征点作为匹配点。

2 目标识别与定位

采用ORB算法进行特征描述以及特征匹配时会存在一定误差,因此需要改进特征匹配算法以去除误匹配点。本文采用RANSAC算法对原始匹配对求解单应性矩阵,然后通过迭代反解坐标对应关系去除错误匹配对。求取出单应性矩阵之后,通过计算透视变换以实现目标定位。

模板图片与目标图片对应点之间的坐标变换关系

(8)

式中x和y为模板图像中特征点的坐标位置;xx′和yx′为目标图像中点的坐标位置;H为一个3×3的透视变换矩阵。

3 角度测量原理

3.1 测量原理

基于ORB特征的旋转不变性,利用匹配的特征点的方向信息计算目标的旋转角度。如图1所示,ORB算法在计算特征点描述符时,对特征点领域的角度坐标按照特征点主方向角度进行旋转。因此当图像目标旋转时,每个特征点的描述子并不会改变,保证了ORB特征的旋转不变性。

图1 特征点主方向示意

当图像目标存在旋转变化时,特征点领域像素的拓扑结构并未发生变化,所以特征点的主方向也会旋转同样的角度,从而可以通过匹配特征点的主方向角度计算图像目标相对于模板旋转的角度。根据式(3)得到的特征点主方向,利用ORB特征的旋转不变性,将每对匹配点的主方向角度θj,θi相减,得到匹配特征点的旋转角度Δr,Δr=θj-θi。

3.2 物体旋转角度

由于模板与目标图像之间的匹配点有很多,其旋转角度数据之间存在着较大差异,且经过RANSAC算法过后仍然可能存在误匹配点,因此不能用单一匹配对的旋转角度作为目标旋转的角度。经过大量的实验分析,在旋转角度计算过程中,每一个误匹配点的旋转角度都会对最终旋转角度的准确性产生较大的影响,所以,需要对特征点的旋转角度数据进一步分析处理才能作为目标的最终旋转角度。

3.2.1 聚类分析

迭代自组织聚类(ISODATA)算法能够依据初始化参数调整聚类数目,因此,本文采用ISODATA算法分析处理匹配点的旋转角度,以提高角度测量算法的鲁棒性。

ISODATA算法需要预先设置各个参数指标:期望的聚类数目K、每一类中最少样本数θN、类中样本距离分布的标准差θS、两类中心的最小距离θC、一次迭代计算中可以合并的聚类中心的最多对数L、迭代计算的次数I。

ISODATA算法按照以下原则进行工作:1)样本数太少的类则取消;2)距离近的类则合并;3)类内离散太大的类则拆分。

3.2.2 角度计算

经过实验发现,匹配点的旋转角度数据总体分为两类:按顺时针旋转方向的角度和按逆时针旋转方向的角度。因此,本文中预设的期望聚类数目设为3类,最小聚类数目设为1类,θN=1,θS=15,θC=20,L=2,I=15。期望的3类聚类分别为:顺时针旋转角度数据、逆时针旋转角度数据以及错误的旋转角度数据。

通过聚类实验分析,采用RANSAC方法提纯匹配点后,误匹配点只占到所有匹配点中极少的一部分。因此,本文首先在聚类结果中找出正确的顺时针旋转角度数据和逆时针旋转角度数据,通过剔除离群点,以进一步剔除错误旋转角度数据。然后将顺时针方向旋转角度数据整理到逆时针方向。最后以所有逆时针方向的旋转角度数据的均值uaver作为目标最终的旋转角度θangle,θangle=uaver。

4 实验与分析

4.1 程序设计

本文实验采用VS2013软件结合OpenCV开源视觉库进行开发,CPU为AMD A6—5400K,内存为2.6 GHz,4 G。图2为本文算法的工作流程。

图2 程序流程图

4.2 图片角度测量实验

为检验算法识别目标及测量目标旋转角度的性能,首先采用不同尺度、旋转的图片进行实验。图3中,图(a)中左边为模板图片,右边为目标图片,图(b)、(c)、(d)分别为对目标图片进行缩放旋转后的特征匹配图。图(b)为模板与目标图像的特征匹配图,图(c)为将目标逆时针旋转180°并缩小2倍的特征匹配图,图(d)为将目标逆时针旋转90°并放大2倍的特征匹配图。

图3 特征匹配图

从图中可以看出,本文算法能够正确识别并定位图像中的目标。表1中为模板与各目标图片的尺寸大小、特征点数以及匹配点数。

表1 特征点数目

表2为测试图片聚类分析及旋转角度的计算结果。从图3与表2中可以看出使用静态图片进行测试时算法能正确识别定位目标并同时计算旋转角度,且角度测量误差不超过0.3°。在不同尺度、旋转的情况下测试图片,测量精度依然很高,体现了本文方法良好的鲁棒性。

表2 聚类分析及角度测量结果

目标旋转角度的计算精度与ORB特征匹配的准确率直接相关。当存在误匹配点对时,会导致角度测量结果存在较大误差。本文通过RANSAC算法以及ISODATA聚类分析两次去除误匹配特征点数据,可以得到正确的匹配点,能够准确计算目标物体的旋转角度。

表3为算法的时间复杂度分析表。从表中可以看出,算法中耗时最多的是特征提取与匹配,占到了整个算法的80 %以上,且图片越大对应的时间复杂度越高。而角度测量部分的时间只占到算法总时间的16 %左右,且算法整体所需时间都在0.65 s以内。

表3 算法时间分析

本文算法与文献[3]算法(算法1)、文献[6]算法(算法2)的角度测量对比。算法1基于目标的几何特征,利用外接矩形计算目标物体的旋转角度,算法2基于物体的局部SIFT特征,利用特征点的主方向信息计算物体的旋转角度。本文方法在角度测量误差0.3°优于算法1的0.7°和算法2的3.0°,在算法时间方面,本文方法为0.6 s要差于算法1的0.2 s,优于算法2的4.3 s。但算法1要求目标物体具有规则的形状,不具有通用性。

从以上实验及分析可以看出,本文算法不需要目标物体具有规则的形状,具有较高的角度测量精度,可用于任何的图像特征匹配,且具有较高的实时性,基本可以满足实际应用的要求。

4.3 物体角度测量实验

4.3.1 不同尺度下角度测量实验

图4为分别使用书籍、鼠标、眼镜盒作为试验目标物品。拍摄模板及目标图片过程中,目标物体位置和方向均保持不变,将相机沿固定并标定准确的刻度进行旋转。在相机旋转及之后图片的尺度调整过程中,目标图像产生了一定程度的畸变。图4中图(a)为各个模板图片,图(b)为书籍放大2倍并逆时针180°的特征匹配图,图(c)为鼠标缩小0.75倍并同时逆时针旋转90°的特征匹配图,图(d)为眼镜盒放大1.5倍并逆时针旋转270°的特征匹配图。

图4 不同尺度物体旋转测试匹配图

从图4中可以看出,本文算法能够正确识别并定位图像中的目标。表4为图4中图片多次实验后的角度测量的结果。

表4 不同尺度下角度测量结果

从图4及表4的测试结果可以看出,在不同尺度下,本文算法能够正确识别书籍、鼠标及眼镜盒,且角度测量精度很高,误差均在0.3°以内。

4.3.2 局部遮挡下角度测量实验

图5对图4中的目标物体进行了局部遮挡。图5(a)为模板图像,图5(b)为书籍局部遮挡并逆时针旋转270°的特征匹配图,图5(c)为将鼠标部分遮挡并逆时针旋转90°的特征匹配图,图5(d)为眼镜盒遮挡并逆时针旋转180°的匹配图。

图5 局部遮挡下物体旋转测试匹配结果

ORB特征是图像的局部特征,因此只要目标的部分特征点得到正确匹配,本文算法就可以准确地识别目标并测量目标的旋转角度。表5为对一些常见目标物体进行局部遮挡情况下的旋转角度测量结果。从图5和表5中可以看出,在目标局部遮挡的情况下,算法能够正确识别图像中的书籍、鼠标、眼镜盒目标,且旋转角度测量精度依然保持在0.3°以内。

表5 部分遮挡下角度测量结果 (°)

分析上述实验可知,通过改进ORB算法,是可以在特征匹配识别目标的同时,测量目标旋转角度的。当图像中目标受到遮挡,或者发生尺度变化时,测量精度并没有受到影响,依然能够正确识别目标并实现目标旋转角度的准确测量,体现了本文方法的鲁棒性。

5 结 论

对旋转后的图片、生活中的常见的物体、局部遮挡情况下的物体进行实验,本文方法能够准确识别定位目标,角度测量误差在0.3°以内,且时间消耗在0.6 s左右。在测量精度及时间复杂度方面,本文方法能够满足一般项目要求。本文方法不需要相机标定、额外设置标志点,也不需要目标物体具有规则的形状,且具有较高的实时性,可用于任何的图像特征匹配,同时也扩展了ORB特征的应用方向。

猜你喜欢
逆时针物体角度
神奇的角度
逆时针旋转的水
深刻理解物体的平衡
我们是怎样看到物体的
一个涉及角度和的几何不等式链的改进
角度不同
人啊
心情不好
逆时针跑,还是顺时针跑?
逆时针跑,还是顺时针跑?