APP下载

基于OpenCV和Tesseract的快递地址信息识别研究

2022-02-08肖铭涵邓定南林厚健陈俊波黄勇源

电子测试 2022年22期
关键词:处理结果字符识别灰度

肖铭涵,邓定南,林厚健,陈俊波,黄勇源

(嘉应学院 物理与电子工程学院 ,广东梅州,514015)

0 引言

近年来,我国电子商务的快速发展,促进了国内快递业务量的持续增长。国家邮政局公布了2022年上半年邮政行业运行情况,指出上半年全国快递服务企业业务量累计完成512.2亿件,业务收入累计完成4982.2亿元。快递行业的稳健发展离不开智慧物流系统的建设。快递自动分拣系统是智慧物流系统中重要一部分,一般由输入、智能识别、智能分流、输出等模块组成。智能识别模块可通过机器视觉技术和深度学习技术识别快递公司信息、快递条形码和三段码、客户地址和电话等信息。将识别的快递信息传输给计算机,通过智能硬件将快递分类,实现智能分流。因此,快递信息的准确识别是实现智能分流的关键。

基于机器视觉的快递信息识别方法主要是利用各种图像处理算法或软件,实现快递信息的自动定位和识别。邵妍等人提出一种概率统计模型,通过计算最小地址要素与收货点的对应概率分布,判断出对应快递的收货点地址,实现了快递地址的自动分类,自动分类准确率可达99%以上,分类耗时为0.43ms[1]。李毅荣等人基于Tesseract-OCR开发了安卓手机识别应用系统,实现了快递单手机号码数字的准确识别和快速拨号,可提高快递派送效率[2]。孙川等人通过手机号码区域定位、二值化、数字分割、数字结构特征识别等步骤,实现了快递单手机号码数字识别,准确率为98%,耗时为5.52ms[3]。曾志鸿等人提出一种基于HALCON的快递地址识别方法,利用HALCON软件对快递照片进行灰度化、图像增强、仿射变换、图像分割等预处理操作,并创建了字符识别分类器,实现了快递地址信息的准确识别[4]。朱贺开发了一种基于LabVIEW的快递单地址自动识别系统,实现了条形码和手写地址信息的准确识别,识别率分别为99.4%和92.7%[5]。王敏等人提出了一种基于数字图像处理的物流分拣方法,通过面单分割、区域定位、字符识别等步骤,实现了快递地址信息的识别,并开发了MATLAB数据处理系统,耗时在350ms左右[6]。王宁等人提出一种基于HSV空间的MSRCR增强算法,实现了高噪声环境下快递单条形码的快速定位识别[7]。

深度学习技术的发展,也广泛应用于快递目标信息检测。基于深度学习的快递信息识别方法主要是通过大量样本数据,搭建深度学习模型进行参数训练,最终实现快递信息的定位和识别。韩贵金等人利用YOLOv4算法建立快递面单Logo检测模型,实现快递面单三段码信息的检测,准确率可达96.1%以上,提高了快递分拣效率[8]。孙东通过引入多尺度检测结构和特征合并网络,优化了YOLOv3算法,并基于QT软件开发了快递包装信息采集识别系统,实现了不同程度遮挡、污染条形码的准确识别[9]。白文杰搭建了ResNet神经网络,实现了快递面单三段码信息的识别,三段码定位准确率为76%,定位准确的三段码信息识别准确率为99.13%[10]。周为鹏等人利用Yolov5深度学习目标检测模型实现快递条形码的定位,检测精度为93.6%[11]。

为了提高快递分拣效率,本文提出一种基于OpenCV和Tesseract-OCR的快递地址信息识别系统。搭建了快递单图像硬件采集系统。利用OpenCV对采集的快递单图像进行预处理,包括颜色识别、灰度化处理、阈值化处理、形态学处理等操作。将预处理后的快递单图像传入Tesseract-OCR识别引擎,实现了准确的快递地址信息识别。对简单快递地址信息和复杂快递地址信息进行了识别实验。实验结果表明,所提方法可实现准确的快递地址信息识别,可应用于快递分类,提高快递分拣效率。

1 实验方案

快递地址信息识别系统由硬件采集系统和软件处理系统组成。硬件采集系统示意图如图1所示。硬件采集系统包括相机、支架、传送带等。相机采用300万宽动态摄像头(KS3A244),分辨率为 2048*1536,像素大小为 2.2μm,镜头对焦方式为手动调焦,焦距为6mm。

图1 快递地址信息识别硬件采集系统示意图

软件处理系统主要包括预处理模块和识别模块。预处理模块主要对相机采集的快递照片进行预处理,提高后续地址信息识别的准确性。预处理模块利用OpenCV进行处理。OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,广泛应用于数字图像处理、机器学习、模式识别等领域。OpenCV用C++语言编写,它具有C++,Python,Java和MATLAB接口,并支持 Windows,Linux,Android和Mac OS,主要倾向于实时视觉应用。预处理模块流程示意图如图2所示。预处理模块包括颜色识别、灰度化处理、阈值化处理、形态学处理。颜色识别主要是将采集的快递单照片彩色RGB图像转为HSV图像,便于标记和分割快递单中目标区域。灰度化处理是将快递单彩色图像转化为灰度图像,可采用平均值法、加权平均法、最大值法等方法进行处理。阈值化处理的目的是区域分割,提取出快递单中的目标区域,可采用一般阈值法、全局阈值法、自适应阈值法等方法进行处理。形态学处理的目的是提取快递单中有用的图像分量,如边界、骨架等,可采用膨胀、腐蚀、开运算、闭运算等操作进行处理。

图2 预处理模块流程示意图

识别模块主要是提取预处理后快递单的文字、数字等信息,实现快递地址信息的识别。识别模块利用Tesseract-OCR 来实现。OCR(Optical Character Recognition)为光学字符识别,最早由德国科学家Tausheck于1929年提出。Tesseract早期由惠普实验室开发,现由谷歌维护,可支持汉字识别,是一种高精度和高灵活度的开源OCR识别引擎。Tesseract-OCR引擎使用了卷积神经网络(Convolutional Neural Networks,CNN)来获得文字图像中的特征,再以长短期记忆人工神经网络(Long Short-Term Memory,LSTM)来训练学习目标图像中的样本数据,并进而得到具有内在规律和表示层次的样本训练集,以用于文字识别。本实验训练库采用谷歌公司的汉字训练数据文件,Tesseract-OCR训练流程示意图如图3所示。识别的基本思路是引用训练好的深度学习文件,并输入已经处理好的图像,再建立一个存储空间来临时保存识别到的文字,并给予显示,最后释放内存,以空出资源,方便接下来的使用。

图3 识别模块训练流程示意图

2 实验结果及分析

2.1 简单快递地址信息识别

首先我们进行简单快递信息识别验证实验。图4是灰度化处理结果分析。图4(a)是相机采集到的原始快递单彩色照片,快递信息较为简单,只有“广东广州”四个汉字。在本实验中,因为快递信息较为简单,所以感兴趣目标区域就是采集区域,可省略颜色识别这一步骤。图4(b)是采用平均值法处理后的灰度图像。图4(c)采用加权平均值处理后的灰度图像,加权值分别取ωR=0.299、ωG=0.587、ωB=0.149。从图4(b)和 4(c)可看出,平均值法和加权平均值法效果相当。最大值法是将Red、Green、Blue三种颜色通道中最大像素值作为灰度化后的像素值。图4(d)是最大值法处理后的灰度图像,可看出最大值法处理后的图像亮度较高,便于后期的阈值化处理。因此,灰度化处理可采用最大值法。

图4 灰度化处理结果分析

对灰度化处理后的快递单图像进行阈值化处理,可以过滤字体多余的色彩,提高文字识别的准确性。图5为阈值化处理结果分析。图5(a)为采用自适应阈值法处理后的图像。虽然自适应阈值化处理去除了不需要的图像信息,但也有部分感兴趣区域没有分离出来。图5(b)是采用一般阈值法处理后的图像,人为设定的阈值为T=220。可看出,一般阈值法通过调整确定最优阈值,去除了噪声点,将文字信息成功分离出来。因此,阈值化处理可采用一般阈值法。

图5 阈值化处理结果分析

经过灰度化和阈值化处理后的图像字符所占像素点数量较多,相对来说字体较粗,可以考虑先以腐蚀操作除去细小噪声点,再以膨胀操作修复字体中因腐蚀操作而产生的断点。所以可选择先执行一次开运算操作,然后再进行一次膨胀操作,保证字体不会过于纤细,处理后图像如图6(a)所示。光学字符识别部分使用Tesseract-OCR库编写,识别库采用谷歌公司的汉字训练数据文件。输入预处理后的图像,引用训练好的深度学习文件,文字识别结果如图6(b)所示。实验结果表明,本文所提方法可实现快递地址信息的准确识别。

图6 (a)形态学处理结果 (b)文字识别处理结果

2.2 复杂快递地址信息识别

为了进一步验证所提方法的可行性和有效性,我们进行了复杂快递地址信息识别验证实验。图7(a)为日常生活中使用的快递单照片,具有较复杂的快递信息,包括姓名、电话、单号、地址等。为了获取蓝色框目标区域信息,需要将彩色RGB图像转换成HSV图像。颜色识别处理后的图像如图7(b)所示,可看出通过色彩空间变换后,不同颜色的区域明显不同。只需要对原图中蓝色框区域进行识别并定位,就能得到需要分割的坐标点,进而对原图进行区域分割处理,提取出感兴趣的蓝色框区域。

图7 (a)快递单RGB图像(b)HSV图像

对区域分割后的彩色图像执行灰度化处理、阈值化处理、形态学处理等操作,得到的图像如图8(a)所示。预处理后的图像信息比原图少了部分噪声,提高了光学字符识别的准确性。利用Tesseract-OCR进行光学字符识别后的结果如图 8(b)所示。图 8(b)的处理结果中也给出了图 7(a)中分割蓝色框目标区域的四个坐标,分别为(5,910)、(5,650)、(994,650)、(994,910)。实 验 结 果 表 明,利 用 OpevCV和Tesseract可实现准确的快递地址信息识别。

图8 (a)预处理后图像 (b)文字识别处理结果

3 总结

本文提出了一种基于OpenCV和Tesseract-OCR的快递地址信息识别方法。为实现快递地址信息的自动识别,使用开源计算机视觉库OpenCV对采集的快递单图像进行预处理,通过颜色识别定位识别区域,通过灰度化处理、阈值化处理、形态学处理等操作得到待识别区域图像信息。然后利用Google开源光学字符识别引擎Tesseract-OCR识别快递地址信息。验证实验结果表明,所提方法可以有效和准确识别快递地址信息,有利于提高快递分拣效率。下一步将继续优化算法,避免快递位置和光照变化造成的错误识别。

猜你喜欢

处理结果字符识别灰度
采用改进导重法的拓扑结构灰度单元过滤技术
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
会计账务的处理对成本核算结果的影响
间接正犯与教唆犯的异同
生猪屠宰检疫技术和处理结果的探讨
基于最大加权投影求解的彩色图像灰度化对比度保留算法
融合字符及字符排列特征的铭牌识别方法
一种基于OpenCV的车牌识别方法
基于MATLAB的图片中字符的分割与识别
基于像素重排比对的灰度图彩色化算法研究