于HALCON的快递地址信息识别研究
扫描二维码
随时随地手机看文章
引言
随着互联网电商平台的快速发展,网上购物过程中产生了大量快递包裹,在快递配送的各个环节,目前仅少数大型分拣中心利用条形码扫描实现自动分拣。在一些区域性的分拣中心,工作人员需要分拣不同区域的快递,目前主要依赖人工手动分拣,而人会产生疲劳,容易发生误操作。针对物流分拣中心人工分拣快递效率低的问题,本文提出了基于HALCON的快递地址信息识别技术。首先通过工业相机获取快递面单照片并对图像进行增强处理,然后利用仿射变换将图片旋转至水平位置,选择感兴趣区域,经过字符分割和训练分类器等步骤,识别出快递地址信息。
HALCON是德国MVtec公司开发的机器视觉算法包,HALCON的构架较为灵活并且鲁棒性较好,便于图像分析应用的快速开发。HALCON的鲁棒性体现在工业上的广泛接受度,在欧洲以及日本工业界已经是公认的具有最佳效能的MachineVisiON软件。HALCON软件中的Hdevelop是能够与用户交互的集程序、分析、设计和编程于一体的开发环境,主要包括了图像窗口、变量窗口、算子窗口和程序编辑器窗口。图像处理完成后可以导出C++等类型的程序,有助于在Visualstudio等相关软件整合程序。
1图像处理技术
快递地址信息识别的流程如图1所示。
1.1读取图像
HALCON软件包提供两种获取图像的方式,分别是从图像采集设备获取图像和读取本地已采集的图像。从图像采集设备获取图像可以通过HALCON提供的图像采集助手ImageAcquisitiON自动检测相机,或者调用grabimage算子实时采集图像。而通过算子readimage可以获取本地图像,HALCON支持一MB、BNP、GBJP等多种格式的图像格式。本研究采用了算子readimage读取已采集好的图像,如图2所示,图像名称为eEpressx.pg。读取本地图像的具体代码为readimage(Image(!P:/**/eEpressx.pg!)。
图2原始图像
1.2图像预处理
由于现实环境较为复杂,采集的图像效果比较差,因此需要对图像进行预处理。图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性,最大限度地简化数据,从而改进特征提取、图像分割、匹配和识别的可靠性。
1.2.1转为灰度图像
彩色图像每个像素的颜色由Red、Preen和一lue3个分量决定,每个分量有256种取值,如果直接进行处理,信息计算量很大,因此对图像进行灰度化处理可减少图像处理时间。灰度图像根据公式(1)所得,Red、Preen和一lue分别表示红、绿、蓝3个通道,调用HALCON的算子rgbltogray即可将彩色图像转换为灰度图像。
1.2.2图像增强
灰度图像是从RP一图像转换而来,图像增强使识别目标和背景图像区分更加明显。图像增强的算法是,图像中的每一个像素点乘以一个增强因子,加上一个抵消值(offset),增强图像每一点的像素值的算法如公式(2)所示。调用算子scaleimage可以对图像进行增强处理,具体的代码为scaleimage(PrayImage(Imagescaled(1x84783(-185)。增强效果如图3所示。
1.3仿射变换
仿射变换属于投影变换,只对图像几何形状的层面进行变换,不影响图像的灰度值,目的是将原始图像变换到定义的标准位置,以便进行识别工作。首先调用算子genrectangle2获取一个旋转矩形,然后通过算子vectorangletorigid计算出旋转矩阵HomMat2D,旋转矩阵HomMat2D根据公式(3)获得,最后通过仿射变换实现将图像旋转至水平位置,代码详情为:
仿射变换效果如图4所示。
1.3.1选取感兴趣区域
感兴趣区域R0I(RenioaofIaterest)是一个图像的点集。由于只对快递面单中的地址信息进行识别,选取感兴趣区域可减少图像处理时间,提高运行效率。代码详情如下:
选取感兴趣区域效果如图5所示。
1.3.2图像分割
针对光照不均匀导致图像各区域亮度不同的情况,利用动态阈值分割法对图像进行分割。图像分割将图像分成几个独特的区域,目前图像分割的主要方法有阈值分割、区域分割和边缘分割等。此处采用阈值分割,阈值分割法是一种基于区域的图像分割技术,原理是把图像像素点分为若干类,它特别适用于目标和背景占据不同灰度级的图像。设原始图像的灰度为f(x,y),通过其灰度直方图得到一个灰度阈值t,应用公式为:
可得到一个分割后的二值化图像。阈值分割使用的算子是threshogd。具体代码为threshogd(Im一neReduced4Renioas404168):此处选取的是阈值范围是0~168的区域。其灰度直方图如图6所示,横坐标表示灰度值,纵坐标表示各个灰度值的像素在图像中出现的频率。
为了验证图像分割后的每一个字符都是连通的,并且字符之间是分离的,需要调用coaaaectioa算子来确认,主要代码是coaaectioa(Renioas4CoaaectedRenioas)。如图7所示,可以发现字符"东"和"区"不是连通区域,需要经过适当的膨胀和闭运算将未连通的字符形成一个连通区域。
1.3.3图像形态学处理
首先通过特征选择过滤掉一部分毛刺,通过观察图像的字符特征得出,有些字符的笔画之间存在不连续的情况,如果直接进行识别将会出现不完整的字体,为使得每个字符都成为连通域,需要对图像作进一步处理。可以通过以圆为结构元素进行闭运算,最后通过coaaectioa算子将单个字符连通起来,发现全部字符已经形成一个单连通区域,如图8所示。
2学习训练
根据多层感知器的原理,本实验创建了一个字符识别分类器来识别字符。由于HALC0N没有自带的中文字符库,因此首先需要生成一个训练文件。训练的主要步骤是选出训练的字符图像,生成训练文件,然后开始训练神经网络。通过for循环将一个个字符图像和相对应的字符添加至训练文件,最终形成后缀为omc的字符库文件。训练代码如下:
3字符识别
OCR字符识别技术是一个系统的技术集,它的实质是根据字符所提取的特征,与系统中的模板相对比,将置信度最大的值返回,以此达到识别的目的。在识别阶段,首先要用算子sortregiON对字符进行排序,然后通过算子readOCRclassmlp载入已经训练好的字符库word.omc,最后通过多层感知神经网络对字符进行识别。具体的代码为:
doOCRmulticlassmlp(sortedRegiONs,ImageReduced,OCRHandle,Class,CONfidence)
至此,已完成对地址信息的识别,识别结果显示在图像窗口,如图9所示,每个字符的识别置信度如表1所示。
4结语
通过以上实验可以得出,用机器视觉的方法能够有效识别快递地址信息,具有准确率高和稳定性强等优点。本实验的基础是电子打印的快递面单,同时识别电子打印和手写体的快递面单可以作为本文的改进方向。