原渊
摘要:文章简单梳理在线监测及编码,分析应对畸变条码的定位识别方式,分别从系统设计与识别性能分析入手,并探析二值化算法对不同条码图像的识别,主要叙述亮度突变以及渐变、光照不均三种情况。
关键词:在线识别;定位;二值化;编码
中图分类号:TP311 文獻标识码:A
文章编号:1009-3044(2021)20-0115-02
1 绪论
在大数据背景下,数据信息规模成倍扩大,保存数据媒介中,条码是不能忽视的一类,其能保存极多的数据,且解码效率高,有基本的可靠性。近几年,科技高速完善,各市场主体也转变管理方向,依托人工录入及分类形式存在主观因素,且储存成本偏多等问题,无法适应在线识别的需要。所以提高采集速度及质量、识别准确度等,依然是需要考量的研究任务。
2 在线检测及编码
现如今,保存数据信息的载体接多元化,条码是其中使用频率及储存效果较好的一种,利用对条码的在线识别,获取其中储存的资料,完成对其的类型划分、数据保存和历史数据追溯等多项处理手段。目前,在对其的识别算法中,已然将识别时长降至[50ms]之下,实现在线完成一系列的数据处理环节。条码会在传送带上实现快速移动,通过系统内的相机完成数据提取,把得到的信息结果直接保存在云端。而后系统会把采集到的条码数据和背景数据进行对比,由此完成整个分类过程。条码背景具备复杂性、动态化以及噪声多等特征,借助高速的[CCD]相机,能清楚采集到条码快速变动期间的图像数据。条码的图形可分成功能及编码两个模块,外观上形成正方形的阵列,其包含编码部分、分隔符及校正图形等数个分区。在编码期间,基于识别效率固定不断,借助纠错模块实现数据纠正,确保精确识别条码的数据。例如,[QR]二维码,在伽罗华域内均能采取到[α],由此表示出非零元素。借助[GF]输出条码对应的纠错码,运用其内的元素构建出循环队列[1]。
在编码期间,编码模块会先明确对应的字符类型,继而选用版本数据与纠错级别,综合运用既定规则,把信息字符转变成位流,热后把其调整成码字,把纠错码字填入数据码字,基于特定规则,在条码的结构图形中,识别分隔符及校正图形等处理环节,根据设定规则进行数据排列,而后放置在条码的矩阵中。使用多个掩模图形,按照次序开展掩模识别,主要针对编码中的位图,而后形成版本数据与格式数据,二者共同组成条码的符号区域。在识别条码期间,充分发挥[CCD]相机优势,使数据采集识别速度至少达到每秒三十帧的效率。在相机完整提取到条码数据后,会直接进行识别同时给出码值。整个运转过程分成两个环节,一方面,识别格式数据中,先辨别条码的编码版本,而后去除其上面的掩模图形,继而得到信息以及纠错码字。另一方面,进一步辨别码字有无错误,如果没有错误信息,便能进入译码环节,而后生成并储存信息。但如果码字存在错误,需先经过纠正计算后,再开展后续的译码等处理。
3复杂畸变条码定位识别
3.1 识别系统结构设计
识别系统运用模块化的设计方式,其中包括图像取读及定位、校正、显示等部分。先把条码图像采集到系统内,而后根据图像的结构特点对其加以定位,但若未无法完成定位,识别程序会直接结束,同时显示定位失败,反之,会显示准确的位置数据。而后进入校正单元,把采集到的数据纠正,失败则会给出相应的提示,若完成校正,会来到数据识别单元,在此处理环节中,若未能识别,会显示失败提醒,若识别出来,会直接输出图像数据,把该系统植入到[Linux]系统中[2]。上述为条码识别的总体流程,下面针对每个模块进行详细阐述。
其一,取读图像。此模块的工作任务是采集条码图像信息。一般数据格式包括[GIF、BMP]等,其中的位图图像,保存信息未通过压缩运算,所以相同图像,在保存时需要占用相对更多的空间,但其也有优势,在处理信息图像期间,不必经过解码的过程,因此此种格式在此功能模块中的使用较多。在图像取读模块后需保存于信息结构体中,其内部需有关于图像信息的宽高以及位深、色彩等,为其余各模块提供处理数据。
其二,定位模块。该部分的功能任务是把完整读取的图像,识别出对应的位置信息。整个过程需预处理图像数据,提取出其中矩形块,同时聚类,完成起始符和结束符准确对应,继而保证定位识别的准确性。预处理步骤中涉及降噪与补偿光线等,而聚类则需经过边缘检测与矩形块提取等过程。符号对应识别是针对符号实施检测。在完成定位后,条码的位置数据共有图像的各个顶角以及图像中间其他部分的边缘直线数据。
其三,校正模块。其负责把出现畸形的图像纠正到正常状态。需前确定各顶角的具体类畸变类型,如果是线性及畸变,校正方式为透视变化以及双线性差值。但若是水平方向的[U]状非线性的情况,会选用常规的手段进行处理,而后以水平方向进行分块,针对各块实施校正,整合成正确的条码。若是纵向的[U]状畸变,需通过纵向分块,同样是逐个校正,合并起来组成条码。
其四,识别单元。在定位识别系统中,此模块是极为关键的部分,通过进一步划分,能分出行列切分与译码两个部分。前者可识别出条码各边界节点,把整个图像归纳到为独立码字。该部分落入经过校正的条码数据,输出内容则为码字。在行切分中,需识别条码的水平边缘,之后实行水平投影,确定峰值,借助等距检测确定条码图像的行边缘点。在列切分中,则需检测纵向的边缘数据,通过二值化算法,继续完成纵向投影,确定峰值后,通过等距检测得出列边界。后者的工作是把录入的符号进行解码,输出显示出数据。需先采集每个码字对应的条空比序列,部分码字若清晰度不高或存在污损的情况,无法有效提取条空比序列。为此需搜查码字表,把涉及的符号进行解译,经过纠错,若过程顺利会直接实施解码,否则译码失败。
其五,数据显示单元。其属于辅助性的模块,把经过识别解码处理后数据显示出来。经过解码后,直接输出图像的条数与具体的图像数据,并为各区域进行标号,使其和解码数据中的编号匹配。如果其中任何一个环节失败,会给出相应的提醒显示。