APP下载

基于边界标记的形状上下文目标识别算法

2018-03-20刘砚菊李云功宋建辉

沈阳理工大学学报 2018年6期
关键词:边界点轮廓摩托车

刘砚菊,李云功,宋建辉,于 洋

(沈阳理工大学 自动化与电气工程学院,沈阳110159)

轮廓是一种高级的视觉信息,即使当图像失去颜色或纹理特征时,人眼仍能根据轮廓识别出目标的类别。形状上下文算法因为提取的特征点集为轮廓点集,点集性质好、改进余地大、抗干扰性强等优点广泛的应用于图像识别领域。李金屏等[1]使用距离函数作为角度的边界标记方法来解决移动物体的平移、缩放和旋转不变性,并判断物体是否会碰撞,但没有对目标进行识别。吴晓雨等[2]通过找到轮廓采样点最多的区间,并与库中图像对比,找到误差允许范围内的对应区间,两个区间相减得到旋转区间个数;经过旋转,使形状上下文算法具有旋转不变性,但此算法计算量大。范为等[3]通过对手指建模,基于改进型形状上下文描述符来进行手势识别。卜琰等[4]运用直方图结合Harris角点进行特征生成与匹配,以改进形状上下文特征检测算法,但Harris角点可能存在漏检和误检。

本文提出基于边界标记的形状上下文目标识别方法,使得形状上下文算法能用于物体旋转时的识别。

1 基于边界标记的形状上下文目标识别

首先提取出目标轮廓,消除轮廓细小片段,获得形状图;然后计算目标形状图的重心,计算重心点到轮廓边界各个点的距离,得到距离为弧长函数[5]的边界标记;最后运用形状上下文对目标物体进行识别,得到识别结果。

1.1 形状获取及重心计算

根据 Gestalt 视觉心理学[6],人类视觉在获得图像信息时,首先获得的是图像的特征区域,即明显的边缘部分,然后才是图像中的细节,可见图像的边缘特征对于目标识别具有更重要的意义[7]。轮廓检测是基于轮廓的目标检测方法的一个重要步骤,轮廓检测方法的好坏直接影响目标检测的结果。

虽然在利用形状信息的物体识别中,研究者采用了不同的边缘检测方法实现了较好的效果,但在边缘检测实现中没有较好的质量评估标准。目前用的较多的是Berkeley边缘检测方法及Canny边缘检测方法。Canny算法适用于不同的场合,其参数可根据不同实现的具体要求进行调整,从而达到良好的检测结果。为此本文首先对自然图像进行平滑,再用Canny算子提取轮廓。平滑后摩托车用Canny算子提取的轮廓如图1所示。

从图1可以看出,Canny算子初步提取出来的轮廓,其中有许多不重要或对识别有影响的细小片段,为此需要进一步处理,消除这些细小的片段。经过处理后的轮廓如图2所示。

重心可表示物体质量的中心,又可表示几何上的中心即物体为均质时的形心。重心的相对位置不会随着物体的平移、旋转、缩放的改变而改变,所以本文选用重心作为参考点来进行边界标记。摩托车形状图的重心计算结果如图3所示。

图1 Canny算子提取的摩托车轮廓

图2 进一步处理后的摩托车轮廓

图3 摩托车重心

1.2 边界标记

在表示边界的方法中,标记方法是边界的一维函数表达式。生成边界标记的方法有很多,但不管标记以哪种方式生成,基本思想都是通过不同的投影技术以1-D描述函数的形式来表达2-D的边界[5]。

边界的标记可从沿着边界的一点开始在目标周围逐渐进行。如果将每个边界点和目标重心之间的距离作为边界点序列的函数,此函数被称为距离为弧长的函数。首先从任一点开始计算重心到轮廓边界点的距离,然后找到重心到边界点的最远距离,记录此点,以此点为始点重新获得重心到轮廓边界点的距离图。图4为摩托车轮廓边界图。图5为归一化后的摩托车轮廓边界标记图。

图4 摩托车轮廓图

图5 归一化后摩托车轮廓边界标记图

图5中横坐标表示轮廓的序列点,纵坐标表示重心到轮廓边界点的距离。

设重心为(xm,ym),轮廓边界点为(x,y),则重心到边界点的距离d见式(1)。

(1)

1.3 平移、缩放和旋转不变性

显然,距离为弧长的边界标记方法对平移变换具有不变性。从物体边界到重心的距离将随着物体的缩放而在数值上改变,但在归一化数据后,可达到保留物体形状信息的效果;此时虽然距离发生了变化,但运用形状上下文算法进行识别,目标的缩放不会影响结果。图6为缩放0.5倍的边界标记图。

图6 缩放0.5倍的边界标记图

由图6可看出,横纵坐标都缩小了0.5倍,用1.2节提到的归一化方法处理后的边界标记如图7所示,与图5相比虽然横纵坐标都缩小了0.5倍,但形状非常相似。

图7 缩放0.5倍归一化后的边界标记图

物体旋转一定角度后,其重心发生了变化,但此时物体到轮廓边界点的相对距离没有变化,只是与原重心到轮廓点的距离相比角度发生了相应的变化。图8为旋转60°后的边界标记图。

为保证旋转不变性,首先从任一点开始计算重心到轮廓边界点的距离,从中找到重心到边界点的最远距离,记录此点,以此点为始点重新得到重心到轮廓边界点的距离图。图9为归一化后的边界标记图。

图8 旋转60°的边界标记图

图9 旋转60°归一化后的边界标记图

由图9可以看出,归一化后的标记图与图5不论大小还是形状都一样。

缩放和旋转经常同时发生,图10为摩托车轮廓在缩放0.5倍、旋转60°时的标记图。

与图8相比,横纵坐标缩小了0.5倍,形状没有发生变化。对轮廓边界点距离进行归一化处理后的边界标记图如图11所示,图11与图7相比形状与大小都没有发生变化。

1.4 相似性度量

形状上下文特征是一种常用的形状描述子,主要用于形状匹配和目标识别。其采用了一种基于形状轮廓的特征描述方法,利用直方图描述对数坐标系下的形状特征,可很好地反映轮廓上采样点的分布情况[8]。

图10 缩放0.5倍、旋转60°边界标记图

图11 缩放0.5倍、旋转60°归一化后边界标记图

形状上下文基于对物体轮廓采样点进行描述,预处理工作:边缘提取、均匀采样,得到一组物体形状点P={pi,i=1,2,…n},每个点的形状信息由所有其它点形成的相对矢量表示。在对数极坐标系中,与单个点相邻的点(在极坐标覆盖范围内)落入不同的小格子,表示不同的相对向量,成为点的形状上下文。

轮廓片段P的某点pi和轮廓片段Q的某点qj的匹配代价Cij如公式(2)所示。

(2)

式中,k={1,2,…K},K为小格子个数;hi(k)为目标P的点pi的形状直方图;hj(k)为目标Q的点qi的形状直方图。

在求得各点间的差异后,形成代价矩阵,然后运行最优匹配算法(匈牙利算法)找到使代价最小的最优匹配。最后,基于这种最佳匹配,可得到整个形状代价,该代价可用来衡量两种形状之间的差异。代价越小,形状越相似。形状代价如式(3)所示。

(3)

式中:π代表一个排列组合;C(pi,qπ(i))表示代价矩阵。

T用于衡量形状之间的变换,因此最终的形状距离可以通过如下的计算来表示。

(4)

式中Dsc(P,Q)为轮廓分段P和Q的形状上下文距离;n为轮廓分段P的点数;m为轮廓分段Q的点数。

最后,以形状距离为基础,对两种形状之间的差异进行衡量,并对目标识别进行进一步研究。

2 试验和分析

为验证边界标记的形状上下文算法的有效性,分别对物体的缩放、旋转、旋转加缩放进行实验。

摩托车缩放2倍并归一化的边界标记如图12所示。

图12 缩放2倍归一化边界标记图

图12与图5相比,横纵坐标都放大了两倍,形状没有变化。

摩托车在旋转30°、60°、90°情况下,归一化后的边界标记图并无差别,皆如图13所示。

图13 旋转30°归一化的边界标记图

摩托车在旋转30°缩放0.5倍、旋转90°缩放2倍的情况下,进行归一化后的边界标记图分别如图14、图15所示。

图14 旋转30°缩放0.5倍归一化的边界标记图

可以看出,图14、图15仅在横纵坐标上有差别,在形状上非常相似。

摩托车的轮廓边界经过边界标记并归一化处理后,运用形状上下文算法对目标进行识别,求得与原图的Dsc,如表1所示,表中SF代表缩放,XZ代表旋转;对表中每一种情况计算3次Dsc,以此验证本文算法的稳定性。

从表1可以看出,目标在旋转时,Dsc最小;在缩放和缩放加旋转的情况下,Dsc次之;与旋转相比波动幅度很小。本文算法在缩放、旋转、缩放加旋转的情况下保持了较好的识别。

图15 旋转90°缩放2倍归一化的边界标记图

实验方法DscSF0.5倍0.02970.02850.0312SF2倍0.03200.03160.0359XZ30°0.02280.02360.0236XZ60°0.02460.02320.0224XZ90°0.02500.02290.0204SF0.5倍 0.03440.03110.0353XZ30°SF2倍0.03270.03190.0307XZ90°

MPEG-7[9]数据库有70个类,每类又有20个形状,所以经常被用于测试形状识别。本文选择MPEG-7 Shape-1 Part-B数据库中的马、大象、骆驼分别进行测试,选择的测试图如图16所示。

图16 马、大象、骆驼测试图

将图16分别与马库、大象库、骆驼库里的图片比对,计算得到测试图与样本库图片的Dsc,根据实验数据得到的匹配结果如图17所示。

图17 马、大象、骆驼匹配结果

从图17的匹配可以看出,本文算法可以区别不同目标,用于不同类的识别。

3 结论

基于边界标记的形状上下文目标识别算法与传统形状上下文算法相比,解决了形状上下文没有旋转不变性的缺点,能更好的用于物体的平移、缩放和旋转。

猜你喜欢

边界点轮廓摩托车
开摩托车的闪电小鸡
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
大笨狗酷比多
区分平面中点集的内点、边界点、聚点、孤立点
高速公路主动发光轮廓标应用方案设计探讨
基于降维数据边界点曲率的变电站设备识别
多阈值提取平面点云边界点的方法
图侃天下
基于网格聚类中边界点的处理