APP下载

基于改进Hu矩算法的AGV字符识别研究

2020-06-06文生平冯泽锋洪培烽张施华

计算机测量与控制 2020年5期
关键词:移动机器人分类器灰度

文生平,冯泽锋,洪培烽,张施华

(1.华南理工大学 广东省高分子先进制造技术及装备重点实验室,广州 510640; 2.华南理工大学 聚合物成型加工工程教育部重点实验室,广州 510640)

0 引言

视觉导引AGV在运动过程中,需要在特定的工位完成不同运动状态的转换,如加速、减速、转弯、停车等。路径标识符以其制作简便、布置灵活、易于识别等优势,逐渐成为视觉导引机器人普遍应用的导引方式[1]。

字符识别是一门检测并分类字符的技术[2],是目前主要存在的两种标识符识别技术之一,另一类是控制标识符识别。控制标识符通常是各类几何形状,如矩形、圆形、梯形等,这类标识符的识别是检测出不同标识符水平截线段宽度的变化规律;字符标识符通常包括0~9和A~Z等字符,在不同工位上对其赋予不同含义以实现机器人的自动导引,在移动机器人视觉导引字符识别和智能交通的车牌识别中都得到了更广泛的应用[3]。

标识符的识别过程步骤主要包括:图像采集及预处理、感兴趣区域的选取、特征提取、标识符分类。

用特征提取算法对字符的变化规律进行检测,检测结果用特征向量表示。特征提取算法主要包括传统的模板匹配法、傅立叶描述子法、自回归模型法和不变矩法等,其中不变矩法应用最广。1962 年,M.K.Hu教授提出了几何不变Hu矩,理论推导证明了Hu矩具有比例不变性、旋转不变性和平移不变性[4]。

完成字符的特征提取后,进而对特征进行分类。基于机器学习的SVM[5-6]和KNN[7-8]分类算法是应用最广泛的分类器,其实用性已经得到了广泛的证明。

Hu矩算法具有提取特征快速但准确率低的特点,但其三个几何不变性具有很高的实际过程应用价值。为此,本文分析Hu矩算法原理,对其进行改进,结合SVM和KNN算法的快速分类,研究一种基于Hu矩的机器学习算法分类器。

1 AGV系统及图像预处理

1.1 AGV系统

移动机器人需要通过识别并跟踪导引线,以及识别标识符以获得控制指令来实现自主导航,本文的实验对象是广州市井源机电设备有限公司设计和制备的AGV,其实物图如图1 所示。

图1 移动机器人

移动机器人系统包括了机器人本体、驱动模块、车轮系统、控制模块、光源模块、视觉信息采集模块、图像处理单元、无线客户端、电源装置和安全防护装置等。移动机器人在导航行进的过程中在光源的辅助下由相机拍摄采集图像,图像经过处理后将提取到的图像信息转换为辅助决策信息,再输入到控制模块中以获得控制决策,将控制指令输出给驱动模块,改变驱动电机的转速,进而改变机器人驱动轮的状态,以控制机器人的移动速度、方向以及运行状态。

1.2 图像预处理

移动机器人通过识别并跟踪导航线可以实现指定轨迹的运动,但是光有导航线不足以实现指令下达与复杂任务分派。所以还需要在导航线上配置标识符,以标识符作为指令的载体,在机器人识别到特定的标识符时,能够按照标识符所代表的指令进行动作,实现更加复杂的功能。图像处理算法流程如图2所示。

图2 图像处理算法流程图

移动机器人实时采集到的图像为RGB三通道彩色图像,每个像素点的取值范围为256×256×256,数据量大,直接对其进行特征提取的处理速度慢,不利于实时检测的需求。由于应用场景的图像颜色需求低,因此对图像进行灰度化处理,在保留图像信息的同时,将三通道图像降为单通道。本文使用加权法灰度化,其根据人眼对红绿蓝的感光程度对图像降维,经过加权法灰度化后得到的图像亮度比较均匀,计算公式为:

Y=0.3*R+0.6*G+0.1*B

(1)

为消除采集图像上的噪声,需对其进行滤波处理。常用的滤波处理包括中值滤波、均值滤波、方框滤波和高斯滤波。中值滤波以像素点临域3×3区域的像素值的中值作为该点的像素值;均值滤波以像素点临域3×3区域的所有像素值的均值作为该点的像素值;方框滤波在均值滤波的基础上对每个像素点进行加权平均;高斯滤波相当于将图像与正态分布函数做卷积,其高斯核函数如下:

(2)

考虑到本研究场景中AGV的导航需要对导航带的边缘线和细节特征进行特征提取,因此对导航带图像的边缘信息和细节的完整性和清晰度有较高的要求。因此采用高斯滤波作为本研究的图像滤波方法。

为消除采集图像中存在的大量无用背景信息,需要对其进行阀值分割处理。阀值分割的思想是将图像上像素值大于给定阀值的像素点归类。以f(x,y)表示灰度图,最佳分割阀值为T,则分割结果如下:

(3)

AGV系统拍摄图像过程在光源的辅助下,使得目标部分和背景部分在稳定的光照下能够比较好地区分开,可以使用基于全局的阀值分割方法。本文采用OTSU阀值分割法[9],其基本思想是最大化类间方差,且能够自动确定阀值,可以很好的保留标识符部分的信息。

移动机器人运行过程采集的图片及其经过加权灰度化、高斯滤波、OTSU阀值分割的效果如图3所示。

图3 图像预处理

由于在整张图像中标识符占的比例较小,机器学习算法对小目标的处理精度存在不足。因此对标识符进行识别前,需要将标识符的位置大致定位且对其分割,再通过机器学习算法来实现分类识别。根据上述标识符图像的特点,利用Hough圆变换算法[10],以快速定位圆心位置,然后通过设置合适的偏移量获取包含标识符在内的矩形ROI(感兴趣区域),最后将其从整个图像中分割出来,其算法原理如图4所示。

图4 ROI区域选取

2 改进Hu矩算法简介

2.1 Hu矩[10]简介

灰度图像的分布可以用连续函数f(x,y)来表示,图像的(p+q)阶二维原点矩则表示为:

(4)

当图像的比例发生变化,矩不变;当图像进行旋转或者平移时,随之改变。图像矩心不受像素变化的影响,利用矩心构造出具有比例和平移不变性的中心矩。

(p+q)阶中心矩表示为:

(5)

对中心矩归一化处理,得到具有旋转不变性的矩:

(6)

M.K.Hu利用二阶和三阶的归一化中心矩构造了七个不变矩,证明在连续图像条件下得到的特征矩可以保持缩放、旋转和平移的不变性,七个不变矩公式如式(7)~(13)所示:

M1=η20+η02

(7)

M2= (η20-η02)2+ 4η112

(8)

M3=(η20-3η12)2+3(η21+η03)2

(9)

M4=(η30+η12)2+(η21+η03)2

(10)

M5=(η30-3η12)(η30+η12)[(η30+η12)2-

3(η21+η03)2]+(3η21-η03)(η21+η03)[3(η30+

η12)2-(η21+η03)2]

(11)

M6=(η20-η02)[(η30+η12)2-(η21+η03)2]+

4η11(η30+η12)(η21+η03)

(12)

M7=(3η21-η03)(η30+η12)[(η30+η12)2-

3(η21+η03)2]+(3η12-η30)(η21+η03)[3(η30+η12)2-

(η21+η03)2]

(13)

2.2 改进Hu矩算法

Hu矩提取标识符特征速度非常快,但是准确率不高。对Hu矩原理公式(7)~(13)进行分析,可以发现,M1~M4阶数低,M5~M7阶数高。由数学原理可知,阶数越高,数值的变化范围越大。为了观察M1~M7的变化情况,用如图5所示的9张背景、字体大小、形状和方向都不一样的数字1来测试。

图5 数字1的测试集

按以下步骤进行Hu矩测试实验:

1)读取图像;

2)对图像进行灰度化处理、高斯滤波去噪和OTSU分割处理;

3)使用Hough快速圆变换检测标识符的定位圆;

4)分割出举行ROI区域;

5)用Hu矩算法检测标识符的特征属性,得到特征向量

利用处理得到的特征向量数据生成对数图形,如图6所示是特征值曲线:

图6 特征参数图形

分析图6,发现9个样本的M1、M2基本相等,M3、M4虽然有点分散,也集中在一定范围。但是从第五个参数开始,跳动性大,有的数据已经不落在图形范围里,说明从第五个参数开始,参数不稳定。10组测试集的情况相似,可以得出的结论是,Hu矩前四个参数的可靠性好,后三个参数不稳定。研究7个参数,发现M1、M2的次幂较低,M3、M4的次幂次之,M5、M6、M7的次幂较高,根据数学原理,次幂越高,数据变化范围越大,所以猜测特征数值的跳动性与参数的次幂高低有直接的关系。基于此,对Hu矩进行改进,参考M1、M2公式的特点,改造M3、M4,旨在得到可靠性更好的特征参数。

反复试验,最后确定的特征参数如公式(14)~(17)所示。

M1*=η20+η02

(14)

M2* = (η20-η02)2+ 4η112

(15)

M3* = 3(η21+η03)2+ 4η112

(16)

M4*=(η30+η12)2+η20+η02

(17)

对上述测试集进行测试,得到的特征曲线如图7所示,四个特征值都更加稳定,特征数据的方差变小。

图7 改进的特征参数图形

3 改进Hu矩算法性能验证

3.1 离线运算速度测试

为了验证改进Hu矩算法的提取速度,对UCI机器学习数据库的2 520张图像进行测试,2 520张图像由0~9和A~Z的36个字符各70张组成。先后用原Hu矩算法和改进的Hu矩算法分别测试,计算时间如表1所示。

表1 特征提取算法处理结果

表1的实验结果表明,改进后的Hu矩算法明显比原Hu矩算法运算时间短,一张图像的处理时间几乎节省了一半,在大规模的图像样本中,改进后的算法提取速度更快。

3.2 离线提取精度测试

为了验证改进Hu矩算法的提取精度,用C-SVC和KNN分类算法对其提取后的特征进行分类。

考虑Hu矩的特征参数远少于样本数量,按照经验法,C-SVC分类算法的核函数选择高斯型。本文采用阎晓娜等人修正后的高斯核函数,如式(17)所示,此修正后的高斯核函数被证明可以很好地保留数据鲁棒性强的优点和弥补处理时间长的不足[11]。

(18)

式中,G是幅度调节参数,σ是带宽变量,γ是位移参数,λ是微调变量。

对于2 520个样本集,其中1 800个样本作为训练集,用于生成C-SVC分类器;360个样本作为验证集,对已经生成的C-SVC分类器反复调参,用于参数的调整,最终确定的高斯核函数参数是G=2.1,σ=0.3,γ=0.2,λ=0.75;剩下360个样本作为测试集,用于测试分类器性能,其测试结果如表2所示。

表2 C-SVC分类结果对比

KNN分类算法的关键是K值的选择,一般取小于18,没有固定理论指导最优K值的选择。多次取值,得到的测试结果如表3和表4所示。

表3 原Hu矩的KNN分类结果对比

表4 改进Hu矩的KNN分类结果对比

表2~4的实验结果表明,无论是用C-SVC分类还是KNN分类,改进后的Hu矩算法的检测准确率都明显比原Hu矩算法的高,说明改进后的Hu矩算法提取的特征值更有利于分类,其提取精度更高。

3.3 移动机器人实时在线测试

布置移动机器人的黑色导引带及标识符如图8所示,每个标识符之间相隔越2 m。移动机器人每次从数字0与字母Z这段导航带的中点开始运行,环绕引导带行进回到起点结束。

图8 导航路线布置示意图

特征提取算法先后采用Hu矩算法及改进的Hu矩算法,分类器先后采用C-SVC分类器和KNN分类器。分别让机器人以20 m/min、30 m/min、40 m/min、50 m/min的速度匀速行进。记录每次机器人进行过程中字符识别的情况,结果如表5~8所示。

表5 Hu矩的C-SVC标识符识别结果

表6 改进Hu矩的C-SVC标识符识别结果

表7 Hu矩的KNN标识符识别结果

表8 改进Hu矩的KNN标识符识别结果

由以上4个表的数据可知,移动机器人在不同的行进速度下,改进Hu矩算法对C-SVC分类器和KNN分类器的分类准确率比Hu矩算法都有所提升,在动态检测中,改进Hu矩算法具有更好的鲁棒性。

以上离线测试和在线测试结果表明,改进Hu算法处理的特征值更利于分类,算法是可行的;C-SVC分类器相较于KNN分类器更适合于本实验的机器人系统,其操作简单,分类准确率高,鲁棒性好。

4 结束语

为验证改进Hu矩算法的性能,首先通过对UCI图像数据库进行检测,实验结果显示,改进后的算法比原Hu矩算法具有更快的提取速度。其次利用机器学习分类算法C-SVC和KNN,对特征值进行分类,即分类标识符。最后对移动机器人进行实时在线实验测试。实验结果显示,改进后的Hu矩算法大大提高了C-SVC和KNN的分类准确率,说明改进后的算法提取的特征值精确度更高。以上研究结果显示,改进后的Hu矩算法可以更快更精确地提取标识符特征参数,有利于提高标识符识别的实时性和精度,对于智能移动机器人视觉导航字符识别具有较好的参考价值。

猜你喜欢

移动机器人分类器灰度
航空滤光片阵列多光谱图像条带灰度调整算法
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
采用改进导重法的拓扑结构灰度单元过滤技术
移动机器人自主动态避障方法
学贯中西(6):阐述ML分类器的工作流程
基于粒子滤波的欠驱动移动机器人多目标点跟踪控制
移动机器人路径规划算法综述
天津港智慧工作平台灰度发布系统和流程设计
基于朴素Bayes组合的简易集成分类器①
Arduino小车巡线程序的灰度阈值优化方案