杨平林, 李泽山, 郭改枝
(1.内蒙古师范大学 计算机科学技术学院,内蒙古 呼和浩特 010022; 2.国家林业和草原局 信息中心,北京 100010)
面对日益严重的环境问题,可以利用机器人对包装瓶进行识别分类,为将来的回收利用提供条件。目前,应用机器人进行识别分类得到广泛应用,如李菁川[1]使用HSR612工业机器人开发一套颜色识别分拣系统,验证了机器人应用在分类识别方面的可行性; 耿乾等[2]提出一种基于障碍物分类识别的方法,使果园机器人针对不同障碍物采用不同避障方法,实现机器人的自主避障功能; Baltanas等[3]基于图像识别研究了机器人的路径规划问题,并通过实验,验证在环境复杂的情况下,改进后的机器人对于路径规划的结果较为理想,但仍无法保证获得动态路径的最佳策略。AdaBoost算法一般用于人脸识别,梁武[4]通过优化AdaBoost 算法在人脸识别系统中特征冗余的缺点,提高了算法识别准确率; 王志磊等[5]基于S3C2440微处理器,结合卷积神经网络,设计Adaboost人脸检测算法,正确率达到87.1%,商用还需进一步提升准确率。由于包装瓶不易发生形变,相比人脸刚性更强,使用基于AdaBoost的识别算法可以得到理想的分类效果。据此,本文在机器人分类识别的基础上,改进AdaBoost算法提高识别准确率,引入积分图思想提升识别速度,在无线网络信号热点区域下使用手机App控制机器人,实现对不同包装瓶的准确分类。
该系统中,客户端是智能手机,服务器端是Raspberry Pi,使用路由器将两者相连。Raspberry Pi作为系统主控核心,通过WiFi与Ardunio连接,控制驱动设备,进而实现机器人的各项功能(图1)。在手机端App上可以根据需求进行编程,修改指令,机器人通过指令完成相应的操作,例如控制舵机可以实现机器人的行走、飞行操作,使用继电器实现探照灯的开启与关闭,或者安装FAM520人脸识别模块实现包装瓶的识别分类功能。本文针对机器人的识别分类功能,进行了研究与改进。
图1 系统总体框架图Fig.1 Overall framework of the system
本设计通过手机App改变树莓派GPIO电平,完成对机器人识别系统的远程控制。读取配置信息后,系统首先进行初始化操作,之后再对网络模块进行设置,将手机与树莓派配置在同一网络下。通过设定的指令,完成相应的操作任务[6]。系统物联网设备初次配置时,终端设备将通过串口转网络模块组建一个无线局域网网络,并将服务器的信息写入设备,完成远程设备登录。物联网终端设备配置流程如图2所示。
图2 设备配置流程图Fig.2 Device configuration flow chart
启动网络模块前,要先对网络模块进行连接测试。首先获取无线局域网的名称和密码(如名称为myyuying,密码为123456789),输入在网络模块配置页面。然后将树莓派与手机等终端设备连接至同一网络进行组网,之后即可在浏览器中启动网络模块。
Raspberry Pi运行环境基于Linux操作系统[7],通过烧写Linux镜像的Trans Flash闪存储器卡启动Raspberry Pi,之后使用Xshell与VNC软件远程访问Raspberry Pi。Xshell软件可以通过底层SSH协议控制终端设备,输入命令即可完成对应控制[8]。VNC是一款优秀的远程控制工具,方便对机器人的远程操作[9]。启动Raspberry Pi后,需要设计程序编写算法来进行包装瓶的识别。
算法流程如图3所示。从算法流程图可知,包装瓶检测的过程主要分为3个部分,Haar-like特征的提取、弱分类器的选择和使用AdaBoost算法的检测。
图3 包装瓶检测流程图 图4 Haar-like小波特征Fig.3 Flow chart of packaging bottle inspection Fig.4 Haar-like wavelet features
3.1.1 Haar-like特征与积分图计算 Haar-like分类特征如图4所示。图4中有明暗两个部分,其中明亮的部分代表“累加数据”,较暗部分表示“减去该部分的数据”。对应检测的边缘、线、中心环绕、对角特征可表达为
(1)
其中:f表示特征;ωi为矩形权值;矩形ri所围图像的灰度积分为RcetSun(ri);n是构成f的矩形个数。
计算Harr-like特征的特征值需遍历数次,计算量庞大[10]。为加快计算图像特征值的速度,本文引入积分图[11]的思想。利用积分图遍历一次即可得到图象中所有区域像素和。其定义为
(2)
其中图像(x′,y′)位置上的灰度像素值由I(x′,y′)表示,其对应点的积分图像值由Kset(x,Y)表示。
使用积分图计算Haar特征值,以特征模板(A)为例,对于图5所示的区域A、B两个区域,设
图5 特征值计算Fig.5 Eigenvalue calculation
TA=Kset(i1,j1),
TB=Kset(i2,j2)-Kset(i1,j1)。
(3)
其中:Kset(i1,j1)为矩形块A的像素和;Kset(i1,j1)为矩形块A和B 的像素和。它们分别是点(i1,j1)和(i2,j2)的积分图像值,其特征值为
TA-TB=2×Kset(i1,j1)-Kset(i2,j2)。
(4)
(5)
其中:n表示信息总的类别数;Pi表示信号分到第i类的概率。
当分到各类概率差别小时的信息熵较大,此时表现为信息不确定性,这时应赋予分类器较小权值。同理,当分各类概率差别大时,赋予分类器较大权值。本文对不同分类的权值计算所设计的分类器中,共t个基分类器的第i个基分类器加权系数ηfi可表示成
(6)
为了能准确反映测试样本的分类能力,本文定义一个以分类器标准为正确的加权系数。则ηgi加权系数在第i个基分类器时,可表达为:
(7)
其中:ri为样本第i个分类器的分类错误率;ηg表示分类器的能力;ηf表示对同一样本的分类效果。下文称此算法为WIE Real BP-AdaBoost算法。其加权步骤有两步,首先根据公式(7)求出基分类器的整体加权值ηgi,之后求解基分器对样本的个体加权值,得到
(8)
其中:i=1,2,…,m;j=1,2,…,n。公式(7)与公式(8)相乘得到的加权信息熵可以表示为ηi j=ηgi×ηfi j。
综上所述,整体算法流程共有三个步骤:
(9)
(10)
Step 3 循环结束后,得到最终的强分类器为
H(x)=sign(f(x))。
(11)
至此,完成构建改进的AdaBoost算法。其算法的软件可靠性预测如图6所示。
图6 WIE Real BP-AdaBoost算法可靠性示意图Fig.6 Schematic diagram of the reliability of WIE Real BP-AdaBoost algorith
系统中,包装瓶的识别程序分为颜色识别和形状识别两个子程序。
3.2.1 颜色识别程序 颜色识别程序的流程是首先读取对应图象,为确定像素的颜色域需要遍历图片中每一个像素,在遍历构成中,某一色域的像素比例达到一定阈值时,系统即将包装瓶的颜色判定完成,颜色识别程序的流程如图7所示。
图7 颜色识别程序流程图 图8 形状识别程序流程图Fig.7 Color recognition program flow chart Fig.8 Flow chart of shape recognition program
RGB颜色空间模型在进行识别时,周围环境光发生变化,颜色分量的数值随之产生较大的变动,并且其颜色模型属于三维立体模型,无法直接划定范围,本文使用HSV颜色空间模型进行颜色识别。利用HSV模型中的H分量可以简单的划分色域[13],方便对各种颜色进行描述,且当周围环境光照发生变化时,对H分量影响较小,使用HSV颜色空间模型对包装瓶的颜色识别拥有出色的抗干扰效果。
3.3.2 形状识别程序 Haar分类器在训练后可以准确识别刚性物体,一般用于汽车、人脸、交通标志等物体的识别[14]。包装瓶的刚性更强,使用Haar分类器识别算法可以得到准确的包装瓶分类结果。形状识别程序的流程如图8所示。
本实验中,机器人识别系统使用训练过程中的Haar-like特征来计算对应特征值,形成特征向量后,WIE Real BP-AdaBoost算法利用特征向量检测各种不同类型的包装瓶。首先进行训练样本的收集,之后将收集到的样本集放入设定好的文件夹中,同时建立索引文件。
训练样本之前,为了程序读取方便先把文件转换成vec格式。建立好vec文件后进行WIE Real BP-AdaBoost 分类器的训练,训练后,再利用瀑布(Cascade)算法[15]找到最优解。
使用智能手机与机器人通过局域网远程连接后,客户端通过用户功能界面进行包装瓶的识别分类任务。本文机器人识别系统使用HSV颜色空间模型,使颜色识别拥有良好的抗干扰性。在包装瓶颜色识别的实验中,对H分量划分范围后,通过实验验证了使用HSV模型可以很好地区别目标物颜色,达到了设计要求。
将雪碧瓶、绿茶瓶和激浪瓶作为形状识别的目标物,在形状识别实验中,分类器收集特征值计算出特征向量,WIE Real BP-AdaBoost算法利用得到的特征向量完成对包装瓶形状的识别。目前的工业识别,时间上要保证在1 s内,有良好的使用体验,如天际ME7 FACE ME人脸识别,识别时间在500 ms 左右就可以投入商用[16]。本实验每次任务的识别时间仅为5 ms左右,完全可以应用到工业生产中。
在识别准确率方面,图9展示了AdaBoost与WIE Real BP-AdaBoost两算法识别准确率与训练轮数的关系。从图9可以看到,随着训练轮数的增加,两算法准确率都得到提升,但本文算法在相同训练轮数下,提升更为明显。初始两算法准确率相差4%左右,训练到120轮左右到达峰值,此时两算法准确率相差达到8%,之后两种算法识别准确率趋于稳定。最终WIE Real BP-AdaBoost 准确率达到为92.86%左右,比传统AdaBoost 算法的识别准确率提升约9%,实用性得到提升。
图9 算法识别准确率与训练轮数的关系对比图Fig.9 Comparison chart of the relationship between algorithm recognition accuracy and the number of training rounds
依托树莓派设计一套机器人包装瓶识别分类系统,是人工智能与物联网结合的实例化。本文重点研究包装瓶识别分类问题,充分证明Haar-like特征与WIE Real BP-Adaboost算法融合的可行性。远程控制机器人是未来工业发展的新方向,使用远程机器人识别、分类、回收垃圾是解决环境问题的新思路,也是科技兴国中重要一环。随着国内企业科技创新的转型升级,它也可用于邮政快递的自动投放识别分拣方面,提高邮政速递物流智能化。