基于机器视觉的麻将包装识别系统设计
2016-11-23胡文文王财盛郑雅羽
胡文文,王财盛,朱 威,郑雅羽
(浙江工业大学信息工程学院,杭州 310023)
基于机器视觉的麻将包装识别系统设计
胡文文,王财盛,朱威,郑雅羽
(浙江工业大学信息工程学院,杭州310023)
针对麻将包装在实际产线上出现的麻将牌错位、缺失、牌面翻转等问题,基于机器视觉检测技术设计了一套以DM6437处理器为硬件平台的麻将包装识别处理系统;该系统的硬件部分由摄像头板、核心板和接口板3个模块组成,配合机械传动系统来进行识别前后麻将包装的传输;系统的软件部分采用平板Pad对麻将包装进行模板录入,并设计了一套适应于不同机箱内部环境变化的背景剔除方法来完成模板整体分割,以及通过中值计算实现单目标的分离,最后还提出了一种简单高效的混合搜索方式来进行基于SAD的模板匹配;测试结果表明,识别算法对于麻将间有缝隙、麻将整体倾斜、个别或整体麻将翻转、个别麻将位置错乱等问题均能准确判别,模板匹配算法稳定性和适应性较好,识别准确率达95%以上,能满足包装流水线上的缺陷检测。
机器视觉;麻将包装识别;模板录入;模板整体分割;模板匹配算法
0 引言
麻将包装是麻将牌出厂前生产线上的最后一道工序,目前国内厂商基本上都是以人工检测的方式完成这个环节。但是,通过人眼观察麻将包装整体排布,常常会由于个别麻将图案相似而漏检、错检,同时人工检测劳动强度大,检测速度慢,在一定程度上会拖慢生产线进度。与此同时,利用机器视觉技术来检测缺陷产品在国内外许多大型工厂已得到了广泛应用[3]。机器视觉技术的快速发展为麻将识别奠定了一定的基础,使得通过摄像头采集流水线上的实时麻将信息,实现麻将包装的缺陷检测成为了可能。目前,国内外有不少研究小组正在进行麻将识别的研究,使得其研究的价值进一步被认可。
其中,深圳的创科视觉最新研发了一款多功能简单易用的机器视觉系统,其中一项业务就是麻将识别,通过摄像头采集图像到计算机进行图像处理,其检测效率较高,但是设备占用空间大且界面操作繁琐;台湾的国立勤益科技大学在麻将图案识别上做了深入的研究,提出了基于傅立叶变换的麻将图像识别方案[4],对42种单颗麻将分别进行了图案识别,虽然对本文麻将包装的缺陷检测有一定的借鉴价值,但是其利用DFT变换来进行模板特征提取的方法较为复杂,与本文所要阐述的通过比较SAD值来进行麻将匹配计算量更大。
本文从流水线上麻将包装识别的实际需求,设计了一套针对生产线上麻将包装检测的智能识别系统。不同于创科视觉系统的是,本系统结合麻将生产线的实地考察,专门为麻将包装检测开发一套实时检测算法,且无需借助计算机来进行繁琐的参数设置,设备小且功能强大,以尽可能完全自动化的目标来设计,更加适合于文化素质低的流水线工人操作。系统的工作原理是,相机通过平板Pad对要检测的麻将模板录入学习,与流水线上待包装麻将进行模板匹配,来实现麻将包装的缺陷检测。
1 麻将识别系统硬件设计
根据麻将识别系统的设计需求,本文设计的系统框图如图1所示。
图1 麻将识别系统框图
本文将硬件系统分成摄像头板、核心板、接口板三部分来设计。其中摄像头板主要负责采集图像信息,核心板接收摄像头板的图像信息后进行算法处理,之后通过接口板实现与外界设备交互。另外,光源系统的设计对于整个系统来说有着至关重要的影响。
1.1摄像头板的设计
摄像头模块采用的是OV公司的CMOS摄像头OV2710,最大图像传输速率能达到1080p@30fps,有效阵列尺寸为1920×1080,并且采用rolling shutter的方式,通过sensor逐行曝光来实现。
此外,该摄像头对应的镜头选用了CCTV Lens百万像素变焦镜头,其接口类型为CS型,规格为1/3'',光圈大小为F1.4,焦距范围为2.8~12 mm。
1.2核心板的设计
核心板主要包括DSP模块、DDR2模块、Flash模块、电源模块、TV模块。
本系统选用的是TI公司开发的专门为视频应用开发的C64x+数字多媒体处理器DM6437,其主频可高达600 MHz[5],基本可以满足麻将图像处理的需求。
DDR2模块选用的是两片Hynix公司的H5PS5162F(L)LR,每片内存容量为64 MB。Flash模块选用的是MXIC公司的MX25L12835F,其存储容量达到16 MB,主要用来存储麻将模板。
本系统电源模块涉及到的电压有5 V、3.3 V、1.8 V、1.2 V、0.5 V。其中直流供电电源为5 V,电源电压需要遵循3.3 V→1.8 V→1.2 V的上电时序,3.3 V和1.8 V主要为DSP的I/O口、DDR2以及一些外设供电,DSP的Core电压为1.2 V,DSP芯片DAC_VREF电压为0.5 V。
TV模块视频输出采用的是复合式模拟信号CVBS,通过TI公司的视频放大器OPA360AIDCKR来实现模拟信号的放大[5]。
1.3接口板的设计
接口板主要包括串口通信电路、信号输出电路、信号输入电路。
串口通信电路选用的是USB转标准串口芯片PL2303 HXD,信号输出电路则利用三极管DTC114和晶体管IRLM6402设计了一个由DSP控制的5 V开关电路,信号输入电路选用了光耦合器TLP280-4对外部24 V信号进行采集。
1.4机械传动系统设计
机械传动系统主要由气泵、挡板和传送带等构成,负责完成麻将包装检测过程的传输,在整个过程中,主要分为两个步骤。首先麻将包装随着传送带运动到中心后,会碰到一个挡板,之后传送带停止,机械电气系统输出一个5 V的信号示意相机开始判别;相机进行算法识别后同样留有两个5 V的信号示意机械电气系统对该麻将包装进行下一步处理,如果接收到“麻将无缺陷”的信号,则挡板抬起,传送带继续往前运动,如果接收到“麻将有缺陷”的信号,则机械电气系统中的气泵控制挡板将麻将包装往垂直方向推掉。图2为该机械传动系统的简单示意图。
图2 机械传动系统示意图
2 麻将识别系统软件设计
基于DM6437硬件平台,相机软件需要完成各模块的驱动、摄像头的采集和显示、串口数据的检测和处理、模板录入及实时检测算法的实现、Flash模板存储。整个系统的运行流程如图3所示。
图3 系统运行流程
2.1串口协议
平板Pad和相机之间通过UART串口进行通信,在通信过程中,两者之间是存在大数据交互的,为了减小丢包率,因此采用分包传输数据,其交互数据协议格式如表1所示。
表1 串口通信协议格式(a)数据包(固定大小144 bytes)
在整个数据通信过程中,有大数据和小数据传输,通常小数据的传输数据内容不会超过一个包的长度,为了统一数据包长度,本系统设计的分包传输协议中,每个数据包固定大小144字节,不足的包就自动补零。这里串口波特率设置为115 200,如果数据连续传送,那么1 s能传送7 200字节。这对于小数据传输来说,128字节与8字节的传输时间相差并不明显,基本不会影响到传输效率。
2.2Pad软件
Pad界面上有两个主界面,一个实时检测的界面,包含查看识别结果、故障图片上传、实时图片上传等功能按键,另一个是模板录入的界面,包含多模板查看、单模板查看、模板录入、模板删除、背景设置等功能按键,另外,在系统设置里设预留有系统升级和参数设置等按键。
2.3Flash存储
本系统选用的Flash芯片存储容量为16 MB,可分成512个Blocks,每个Block大小为32KB,由8个Sectors组成,每个Sector大小为4KB。结合项目实际需求,需要将麻将模板的背景图、单模板以及多模板的编号存储下来进行下一步的模板匹配。
通过分析上述模板的大小特性,系统依次为背景模板(1088×672)的二值图、单模板(32×48)的二值图、多模板(12×12)的编号分配了合适大小的Blocks。其中,针对每种类型的麻将来说,背景模板是唯一的,单模板是以最大五十种麻将来设计的,一副麻将最多可以分为9个包装来进行录入。在模板录入过程中,经过算法分割处理的模板将存入对应分配的Block中。Flash存储空间分配如表2所示。
表2 Flash 存储空间分配
3 识别算法
在麻将识别系统算法中,核心算法主要由两部分组成:模板录入算法和实时检测算法。模板录入是将采集到的图像先后经过灰度化、二值化、多目标切割、单目标分割等多种操作提取最佳麻将模板进行存储,为下一步实时识别提供参考。实时检测算法是将分割出来的麻将与之前存储的模板进行对比,从而判定出最佳匹配度的模板。
3.1模板录入算法
模板录入是整个识别算法的基石,通过整体分割获得理想的模板是本算法研究的主要方向。其模板录入算法流程如图4所示。
图4 模板录入流程图
3.1.1图像预处理
图像预处理是对后续将要分割的图像进行一定的处理,如图像的灰度化、前景提取及二值化等,以便于减小存储大小,加快算法运行速度。
在麻将识别过程中,每个麻将模板特征各异,并不需要由颜色差异来区分,同时将彩色图像转变成灰度图像后计算量减小。根据YUV颜色空间,每个像素点的亮度就能反映出麻将的特征信息,本文中的灰度化处理就是取YUV颜色空间的Y值来进行图像灰度化[6]。
背景剔除的目的是为了适应麻将周围不断变化的环境,通过灰度图减去背景图来得到前景图,使得环境因素对模板分割造成的影响降低。在这里,为了减小存储大小,节约存储空间,通过图像裁剪来获得较低的分辨率,原始的图像分辨率为1 280×720,截取部分水平宽度为16的倍数,垂直高度为24的倍数,本文中前景图的分辨率为1 088×672。
考虑到后续需要对麻将进行目标分割,本文采取的策略是通过模板二值图计算来得到多模板的边界。麻将大多是白底或偏黄底,以及个别麻将是红字,其灰度化后Y值偏大,因此选取了160作为阈值。所有的灰度大于或等于阈值160的像素被判定为麻将的底色,其灰度值用255表示,其他不在此范围内的像素点被排除在底色以外,灰度值为0,表示环境的背景或麻将图案[7-8]。式(1)为模板图像二值化的参考式:
3.1.2图像分割
单模板的分离是先后通过整体分割、单模板分割来实现的。
由于模板的二值图中目标与背景差异明显、棱角分明[9],本文采用基于行列搜索的白点个数统计,方法简便且计算量小。由图像边缘从四周向中心进行判别,如果某一行或某一列白点个数大于100个就判定为目标模板的边界,否则判定为背景。根据判定得到的目标边界对前景图进行切割,得到多麻将模板。图5(a)为模板录入时“万”模板整体切割的结果。
图5 模板分割结果
目标的整体切割过程中可以得到目标整体的宽和高,本文中针对规格不同的麻将设定了不同的参数以求出单个目标的长和高,通过单目标的尺寸大小来确定每个单目标的中心,将单目标从多模板中分离出来。下式(2)、(3)是单目标中心的计算参考式:
其中,每一行的中心都是通过计算本行和上一行行尾的中值计算得到,每一列的中心都是通过计算本列和上一列列尾的中值计算得到。图5(b)是通过分割图5(a)的多模板得到的单麻将模板。
3.1.3单模板缩放
单模板缩放的目的是将分辨率统一都降低为32×48,并且确保其图像尽可能不失真。其中,图像水平和垂直的缩放比例参数hori、vert通过下式(4)、(5)计算得到:
其中:inhori、outhori分别为图像输入、输出的水平宽度,invert、outvert分别为图像输入、输出的垂直高度。在这里,图像输出的水平宽度outhori=32和垂直高度outvert=48是固定的,图像输入的水平宽度inhori和垂直高度invert与麻将整体占原始图像的比例大小有关。
3.1.4取最佳模板并存储
将具有相同id号的模板进行SAD匹配比较,存储最佳模板。这里利用大津算法获得自动阈值,大津算法也称最大类间方差法[10]。按图像的灰度特性来分,图像由背景和目标两部分构成,背景和目标之间的类间方差越大,说明构成图像的两部分差别越大,也意味着类间方差越大,错分的概率就越小。
对于图像I(x,y)来说,属于前景的像素点数占整副图像的比例记为ω0,其平均灰度记作μ0,属于目标的像素点数占整副图像的比例记为ω1,其平均灰度记作μ1,类间方差记作σ,使得类间方差最大的阈值记作最佳阈值T,OTSU算法的基本原理如下式(6)、(7)所示:
图6是先后经过缩放处理,相同模板比较得到的最佳单模板:
图6 单麻将模板
3.2实时检测算法
实时检测算法中,麻将分割方法与模板录入的方法相同,不同的是实时检测分割出来的麻将需与录入的模板进行SAD算法匹配。图7为实时检测算法的流程图:
图7 实时检测流程图
3.2.1搜索方式
考虑到模板图案信息基本都位于麻将中心矩形框内,很少分布到边缘,本文采用混合搜索的方式,先进行中心框内的35个点隔行隔列搜索,其次进行外框的18个点隔行隔列搜索,最后在最佳点附近进行3×3行列搜索。与常见的二维对数法、三步法、菱形等搜索方式相比,这种搜索方式更加适合于本系统麻将图案的匹配比较,经实验测试,其搜索效率与几种经典的搜索方式相比相差不大。
图8描述了本文所采取的混合搜索方式,灰点表示中心框内被搜索的点,红点表示外框被搜索的点,黑点表示中心框和外框搜索后SAD最小的点(局部最优点),还需要在这个点附近再进行3×3行列搜索,得到的SAD最小的点即为全局最优点。
图8 混合搜索方式
3.2.2SAD匹配
本文中提出的模板匹配是通过计算模板与图像之间的相似度来实现的[11],模板由一幅图像t(r,c)以及相应的感兴趣区域T指定。为了进行模板匹配,沿图像中所有点移动模板并在每个位置计算相似度量s[12-13]。最简单的计算相似度量的方法是计算模板与图像之间差值的绝对值的总和(SAD),其等式(8)为:
其中:n是模板感兴趣区域中点的数量,即n=|T|,t(u,v)为模板中各点的灰度值,f(r+u,c+v)为模板感兴趣区域移动到图像当前位置时感兴趣区域的灰度值。如果模板和图像相同的话,得到的相似度量为0,如果模板和图像不同的话,那么相似度量将大于0。模板与图像之间区别越大,相似度量的值也就越大。
4 系统测试
4.1性能测试
将一套麻将所有多模板依次录入以后,分别观察几个多模板进行算法识别需要的时间,得出进行一次4×9模板识别的时间为0.6 s左右,也就是说,识别一个单麻将需要的时间在0.017 s左右,这说明算法识别效率较高,基本达到了需求。表3列出了各模板进行算法识别所需的时间。
从表3中可以看出,“万”模板较其他三类模板来说模板识别所需时间更长,是因为“万”麻将下半部分图案相同,只凭借上半部分图案进行匹配出错率较高,因此增加了一项二次检测,以提高其准确度。
表3 各模板类别识别时间
4.2功能测试
在流水线测试过程中,麻将往往会出现摆放杂乱、错位,甚至外界环境干扰会对模板匹配造成一定的影响。本文中,我们对麻将间的缝隙、麻将整体倾斜、个别或整体麻将翻转等问题对算法精度的影响进行了测试。
麻将缝隙测试主要是针对个别麻将排列不整齐,导致麻将之间存在缝隙,而较大的缝隙往往会影响模板的检测。图9(a)中,个别麻将之间存在一定的缝隙,但是仍能成功识别;而图9(b)与(a)相比,麻将较为散乱,缝隙较大,麻将整体不整齐,边缘麻将在分割过程中必然会导致部分特征图案缺失,影响匹配结果。总体来说,识别算法对麻将间的缝隙承受能力较强,对测试结果造成的影响较小。
旋转角度测试主要是针对识别过程中麻将摆放角度不正对测试结果造成的影响。图9(c)中,虽然麻将摆放有一定的倾斜度,却仍然能够分割正确,但是当整体麻将再微微旋转一个小角度,如图9(d),识别结果就大不相同了。也就是说,图9(c)就相当于旋转角度的临界值,超过这个临界值的话就不在算法精度范围之内了。经过多次测试,当模板摆放较正,旋转角度在两度内均可检测正确,超出两度后稳定性较差,出错率较高。
在测试过程中发现,某些单麻将在反向放置后仍然可以检测正确,此时会发生一定程度的漏判。单个麻将反向测试的目的是确保图案上下不对称的麻将不会因为麻将放置方向的问题而识别错误。因此,东,南,西,北,中,發,一条,三条,七条,六筒,七筒都需要进一步的反向检测。图9(e)测试了六筒、七筒在反向放置的时候算法识别的准确度,结果显示,算法测试稳定性较高,图案不对称的麻将在正反向放置的时候基本能够判断正确,达到了一定的精度。
根据包装流水线上的实际反馈,包装麻将被检测为不合格常常是由于个别麻将位置错乱,或者单麻将数不准确造成的。图9(f)测试了筒板相邻麻将错位排布时算法识别的准确度,结果显示,算法基本能够准确判别发生错位的麻将,特别是对图案比较相似的麻将,比如识别结果易受光照影响的四筒和五筒,六筒和七筒,均能进行判别。图9(g)测试了筒板个别麻将数目不准确时算法识别的准确度,这里是将其中一个二筒替换成白麻将,结果显示,算法对麻将个数以及麻将对应编号判断的准确度较高,基本能达到工业检测的水平。
从图9(a)~(g)中可以观察到,二筒图案结构对称,但是颜色上下不对称,在包装流水线上必须将此类麻将检测出来,这就要求对此类麻将进行一项特殊的色度检测,然而对于不同型号的麻将,对色度的要求不仅仅局限于二筒,图9(h)中三筒和九筒也存在倒转检测出错的机会,且图9(h)中偏黑的绿色和黑色在输入图像中的灰度值差值仅为十几,对色度判别的精度要求较图(a)~(g)更高。目前在光源较好的情况下,二三九筒的颜色判别准确度能达95%以上,基本能够满足流水线上的包装检测。但是在光源较差的情况下,二三九筒的色度信息差异会被缩小,导致算法精度下降,因此后续仍将对光照不均匀图像进行校正后做进一步处理。
图9 筒板精度测试
表4为实际流水线上实时检测麻将包装发生错判的统计表,对每类模板反复连续地进行了1 000次判别测试,序号1 -4是以单种类模板4×9进行测试的,序号5~10是以多种类拼接8×9进行测试的。测试结果显示,就4×9包装模板而言,其识别准确度基本能控制在98%以上,出错的原因基本上是由于待包装麻将边缘与中心光照不均匀导致边缘麻将上有阴影,或者是包装麻将在流水线上传送过程中震动产生了比较大的缝隙。其中,比较容易判别错误的单麻将有一二三万、二三九筒、花色牌以及六九条。
表4 麻将包装错判统计表
5 结束语
本文结合麻将包装产线上的实际需求,设计了一套基于DSP平台的棋牌识别处理系统,先后介绍了该系统的硬件和软件系统,提出了基于图像分割的模板录入算法和基于SAD匹配的模板识别算法,并通过大量实验验证了该算法的精确度。系统测试结果表明,在正常情况下,模板匹配算法的准确率达95%以上,算法稳定性和适应性较好,基本能满足生产线上的缺陷检测。但是,算法对于光源的选择和打光方式仍有一定的局限性,后续会根据实际包装产线上的反馈,对光源的处理做一定的优化和改进。
[1]贺超英,张辉.基于机器视觉的罐盖质量检测系统设计[J].仪表技术与传感器,2011,28(2):85-87.
[2]代宁,刘知贵,李众立,等基于机器视觉的针织物智能拉密仪的设计[J].计算机测量与控制,2011,19(6):1504-1506.
[3]张晓琳,毛建旭,龚权华,等软袋组合盖质量视觉检测系统研究[J].计算机工程与应用,2015,51(2):236-240.
[4]Chen W,Kuo Do,Tung C. Mahjong image recognition scheme using Fourier transform technique[A].Industrial Electronics and Applications(ICIEA),2012 7th IEEE Conference on[C].IEEE,2012:1339-1342.
[5]龚泽挚,陈陇敏,颜洪胜,等可应用于动物实验的人工视觉系统[J].计算机工程与设计,2015,36(4):930-936.
[6]Zhu H,Lei J,Tian X.A pattern recognition system based on computer vision-The method of Chinese chess recognition[A].2008 IEEE International Conference on Granular Computing[C].2008:865-868.
[7]Chen W.Chinese-Chess Image Recognition by using Feature Comparison Techniques[J].Appl.Math,2014,8(5):2443-2453.
[8]Wu G,Tao J.Chinese chess recognition algorithm based on computer vision[A].Control and Decision Conference(2014 CCDC),The 26th Chinese[C].IEEE,2014:3375-3379.
[9]Wang H,Shi M. Recognizing chessboard and positioning chessboard in Chinese chess game system [A].Communication Systems and Network Technologies (CSNT),2014 Fourth International Conference on[C].IEEE,2014:1182-1186.
[10]党向盈,鲍蓉,姜代红 基于多方向梯度边缘预测器快速边缘检测算法[J].计算机应用,2013,33(3):674-676.
[11]Fang J.A Machine vision system for Chinese chess-playing robot Mechanical Engineering and Technology[M].Springer Berlin Heidelberg,2012:379-385.
[12]梁柱,李大海,王琼华,等 彩色像对的邻域边界差值模板匹配算法研究 [J].计算机工程与应用,2009,45(33):147-148.
[13]孙志华,常丹华,张余敬,等 基于方向性多模板的快速运动估计算法[J].计算机工程,2010,36(17):223-225.
Mahjong Package Recognition System Design Based on Machine Vision
Hu Wenwen,Wang Caisheng,Zhu Wei,Zheng Yayu
(College of Information Engineering,Zhejiang University of Technology,Hangzhou310023,China)
To resolve the problem of Mahjong Card misplacement,deficit,and reversal for Mahjong packaging production line,a visual processing system of Mahjong package recognition is designed based on machine vision and DM6437 processor.The hardware system contains the sensor board,DSP board and interface board,and coordinates with mechanical transmission system to transport the Mahjong package before and after the recognition.Meanwhile,the Pad is used to achieve the Mahjong package templates entering in the software system,and a background subtraction method adaptive to the environment changes of different mechanical systems is designed to complete the templates global segmentation.Besides,the separation of single objective is realized by median algorithm.Eventually,a simple and efficient mixed searching method is presented to achieve the template matching based on SAD.Experiment results on the recognition system show that the algorithm has a strong tolerability on the gaps between Mahjong cards,the tilt and reversal of Mahjong packages,and the misplacement of Mahjong cards.Furthermore,the stability and adaptability of the template matching algorithm are quite effective,and the accuracy of the identification achieves more than 95%,which can meet the detection quality on the packaging lines.
machine vision;Mahjong package recognition;templates entering;templates global segmentation;template matching algorithm
1671-4598(2016)05-0258-05
10.16526/j.cnki.11-4762/tp.2016.05.072
TP391
A
2015-11-06;
2015-12-08。
国家自然科学基金资助项目(61401398)。
胡文文(1991-),男,浙江宁波人,硕士研究生,主要从事嵌入式系统与应用方向的研究。
郑雅羽(1978-),男,浙江温州人,博士,副研究员,硕士生导师,主要从事视频编码和视频分析,嵌入式系统应用方向的研究。