本发明属于图像识别技术领域,特别是一种条码识别装置及方法。
背景技术:
条码扫描设备,是用于读取条码所包含的信息的阅读设备,它利用光学原理,把条码的内容解码后传输到电脑或其他设备。条码阅读设备广泛应用于商业pos收银系统、快递、仓储、物流、图书、医药等多个领域。
现有部分企业已使用产品条码管理方式,将条码与各工位对应,各工位完成后的半成品在指定区域进行贴(喷)码并流入生产线供后续工序使用。多工位完成后,对指定区域的多个条码进行识别,将多个条码信息有选择地整合为一个条码并贴附(喷涂)在产品或外包装上,供内部其他部门、或者消费者使用。
当今的生产线上,现有的条码阅读设备大多是采用一个摄像头在一个方向对产品上的条码进行读取,当条码贴装在圆柱体侧面时,由于条码的变形与方向的不确定性,传统条码阅读设备无法有效读取全部条码信息。部分基于激光的全方位条码扫描设备需要将产品通过机械臂放置于特制容器内进行扫描,需要对现有生产流程进行修改,并且影响流水线速度。同时难以兼容多种不同码制。
技术实现要素:
本发明所解决的技术问题在于提供一种全方位条码识别装置及方法,以解决现有的条码扫描无法有效扫描产品侧面任意方向条码的问题。
实现本发明目的的技术解决方案为:
一种全方位条码识别装置,包括n个摄像头(n≥3)、图像采集与处理模块、数据传输模块、电源管理模块;所述摄像头均与图像采集与处理模块相连,图像采集与处理模块与数据传输模块相连;电源管理模块分别与上述摄像头、图像采集与处理模块、数据传输模块相连,用以对摄像头、图像采集与处理模块、数据传输模块进行供电;
摄像头用以对产品的不同方向进行拍摄,并将拍摄的n张侧面图像传输给图像采集与处理模块;
图像采集与处理模块同步采集n个摄像头拍摄到的不同方向的侧面图像,并对侧面图像进行预处理、图像校正处理、图像拼接处理和条码的解析处理;
数据传输模块用以将解析处理后得到的条码数据通过数据传输模块传输给应用设备。
一种条码识别方法,包括以下步骤:
步骤1、采集n(n≥3)个摄像头拍摄到的不同方向的侧面图像;
将n个摄像头等距的布置在圆柱形产品的一周,产品位于传送带上;摄像头对产品的一周进行全方位的拍摄;
步骤2、对图像进行预处理包括:核心区域提取、图像灰度化处理、图像去噪处理、图像二值化处理;
步骤3、对图像进行校正处理:在获得n张侧面图像之后,采用反透视变换算法进行图像校正;
步骤4、对图像进行拼接处理:首先根据图像同时在接缝处采用图像互补算法弥补图像校正处理时产生的信息缺失来源对图像进行顺序编号,采取循环拼接方式对摄像头拍摄的图像进行循环拼接;
步骤5、对条码进行解析处理:条码译码是条码编码的逆过程,即根据获取的条码识读其中所包含的信息;
步骤6、传输条码信息:将解析处理后得到的条码数据通过数据传输模块传输给应用设备。
本发明与现有技术相比,其显著优点:
(1)本发明通过多个摄像头的布置,可以通过软件将贴于产品侧面任意方向的条码信息快速、准确地读出;本发明基于arm处理器进行图像采集于处理,具有速度快、功耗低、准确率高及通用性好的特点。
(2)本发明不需要对已有生产线的生产流程进行修改,只需要在原生产线上一段空白直线处加装支架,就可以在不改变原生产流程的情况下获取每一个产品侧面的条码信息,安装使用方便。
(3)本发明是基于软件进行条码译码,所以可以通过改变图像采集与处理模块中的程序读取包括一维条码、二维条码等多种不同码制的条码,也可以通过软件升级兼容未来新的条码规则。
(4)本发明的数据输出模块可以根据用户需求,采用不同的方式将数据输出,满足用户不同终端的数据接口。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为本发明装置的各模块连接示意图。
图2为本发明摄像头安装示意图。
图3为位置探测图形扫描线。
图4为位置探测图形相对位置。
图5为本发明条码识别方法的流程图。
具体实施方式
为了便于理解本发明,下面结合附图对本发明进行更详细的说明。
结合图1、图2,本发明的一种全方位条码识别装置,包括n个摄像头(n≥3)、图像采集与处理模块、数据传输模块、电源管理模块;所述摄像头均与图像采集与处理模块相连,图像采集与处理模块与数据传输模块相连;电源管理模块分别与上述摄像头、图像采集与处理模块、数据传输模块相连,用以对摄像头、图像采集与处理模块、数据传输模块进行供电。
所述摄像头用以对产品的不同方向进行拍摄,并将拍摄的n张侧面图像传输给图像采集与处理模块;
结合图2、本发明的一个实施例中,采用3个摄像头对圆柱形产品进行拍摄,3个摄像头等距的布置在圆柱形产品的一周,产品位于传送带上;本发明的3个摄像头可对产品的一周进行全方位的拍摄,保证产品一周上图像均可在摄像头的拍摄范围内。在一些实施方式中,摄像头的数量可根据实际需要进行调整,以获得更好的拍摄效果。
图像采集与处理模块同步采集n个摄像头拍摄到的不同方向的侧面图像,并对侧面图像进行预处理、图像校正处理、图像拼接处理和条码的解析处理;图像采集与处理模块包括子模块:图像采集模块、图像进行预处理模块、图像校正处理模块、图像拼接处理模块和条码解析处理模块;
图像采集模块:采集n个摄像头拍摄到的不同方向的侧面图像;
图像进行预处理模块:对图像进行预处理,包括图像核心区域提取、图像灰度化处理、图像去噪处理、图像二值化处理。图像进行预处理模块包括各子单元:图像核心区域提取单元、图像灰度化处理单元、图像去噪处理单元、图像二值化处理单元。
图像核心区域提取单元:在提取到整幅的图像后,通过canny算子边缘检测算法提取出产品侧面部分,如圆柱体侧面的部分,将背景等无关部分去掉。
核心区域提取工作有助于通过去除多余信息,降低后续算法计算量,提高计算速度。canny算子是一种多级边缘检测算法,其适用范围广,并且其漏检与误检的概率都十分小,可靠性好。
其中,将摄像头获取到的图像中产品的部分定义为核心区域,背景等其余部分定义为边缘区域。
图像灰度化处理单元:采用线性加权的yuv灰度转换算法进行灰度化处理。
由于摄像头获取到的图像是彩色图像。彩色图像中包含的r,g,b三种信息,使得每一像素有1600万种变化,灰度图像中每一像素仅有256种变化。因此,图像的灰度化不仅能够缩减其后续处理的运算时间而且可以减少系统的内存开销。采用线性加权的yuv灰度转换算法,能够有效地保护图像的细节。
图像去噪处理单元:对图像进行降噪处理。
采用小波变换算法对采集到的图像进行滤波去噪,去噪时将信号中高于阈值的部分滤除。在小波变换算法中,阈值选取的好坏能直接影响去噪的效果,本实施例中采用经典的统一阈值法:
式中,σn表示零均值白噪声的标准差;n表示小波系数的总个数,tuniv表示降噪阈值。
图像二值化处理单元:根据阈值t对图像中的像素点进行分类,并设置图像灰度值为0或者255,使整幅图像转变为黑白图像;二值化计算公式如下:
其中f(x,y)是原始图像的灰度值,g(x,y)是二值化之后对应的灰度值,t是二值化阈值。本实施例中采用otsu算法计算动态阈值,使得可以应对不同光照强度,将图像准确二值化。
图像校正处理模块:在获得n张侧面图像之后,采用反透视变换算法进行图像校正。
图像校正处理模块将拍摄的多侧面产品,如圆柱体产品的侧面图片还原出较好的图像便于后续拼接处理。
图像拼接处理模块:首先根据图像来源对图像进行顺序编号,采取循环拼接方式对摄像头拍摄的图像进行拼接;即第一摄像头、第二摄像头……、第n摄像头拍摄的图像拼接顺序为a-b-…-n-a,进行循环拼接;同时在接缝处采用图像互补算法弥补图像校正处理时产生的信息缺失。图像互补算法是用两张相邻图片重叠部分的信息互相填补,以此获得质量较好的图像接缝。该处理步骤使本发明装置可以在拼接图像后尽可能提高整幅图像中包含的信息质量。
其中,图像互补算法,是指对于二值化的黑白图像,如果接缝处存在条码的规律黑白信息点,记录两条接缝处条码的黑白信息点顺序,并将二者进行互补处理。假设图像a的接缝处存在信息缺失,那么将会使用另一张图像b的同一位置处的条码信息去填补该接缝。
其中,a代表第一摄像头拍摄的图像,b代表第二摄像头拍摄的图像,n为第n摄像头的图像;
条码解析处理模块:根据获取的条码识读其中所包含的信息。
本发明的一个实施例中,条码解析处理模块采用qr码编码规则;解析通过处理得到的qr码符号,根据该符号中深浅模块的比例和排列顺序识读出实际信息。
译码过程如下:
1)从缓存中读取完成图像处理后的图像数据;
2)在图像中找到寻像图形的位置。对图像的预选区进行逐行扫描,当扫描到行的深浅模块比例为1:1:3:1:1时,计算出其中心像素点的位置xu和该区域的像素宽度w,结合图3所示。对列进行相同的操作,由此便能获得寻像图形的中心点坐标(xu,yu);
3)确定符号版本
结合图4,通过上述步骤2)能够分别得到该qr码上方的两个位置探测图形的中心点坐标及两个位置探测图形分别对应的像素宽度wul和wur,从而能够计算出两个位置探测图形中心点之间的相对距离d,因此,可以通过公式
确定qr码符号的版本;其中,yul,yur分别为上述两个位置探测图形中心点坐标的纵坐标,v为qr码版本号。
4)依据符号版本和纠错等级,将各个码字按照顺序重新排列;然后根据rs码译码算法对数据码字中的代替错误和拒读错误进行纠正;最后,将各个码字按顺序连接,构成位流信息;
5)按照qr码数据编码规则,对位流的各个分段进行译码,从而得到最终的qr码信息。
其中,如果条码信息全部包含在图像a中,基于拼接规则,此时将提取到两个完全相同的条码信息。所以在需要条码信息缓存中将重复的条码信息删除,保证后续输出的条码信息正确。
图像采集与处理模块采用arm处理器实现。
数据传输模块用以将解析处理后得到的条码数据通过数据传输模块传输给应用设备。数据传输模块采用物理电路实现,可以将图像采集与处理模块解析出的条码信息经过数据传输模块电路,以串口、网口或蓝牙等方式传出。本发明的一个实施例中,数据传输模块采用ch340芯片及物理电路实现,将arm处理器解析出的条码信息通过microusb接口串行输出。
为了保证系统安全稳定运行,电源模块在提供足够功率的电源输出的同时,还具有防雷击、防静电、防浪涌的安全保护功能,使得装置可以应对不同环境下的生产作业。
图3为本发明条码识别方法的流程图,在基于上述条码识别装置基础上,本发明的另一个实施例提出一种条码识别方法,具体包括以下步骤:
步骤1、采集n(n≥3)个摄像头拍摄到的不同方向的侧面图像;
将n个摄像头等距的布置在圆柱形产品的一周,产品位于传送带上;摄像头可对产品的一周进行全方位的拍摄,保证产品一周上图像均可在摄像头的拍摄范围内;摄像头的数量可根据实际需要进行调整,以获得更好的拍摄效果。
结合图2,以3个摄像头为例,三个摄像头与圆心连线的夹角分别呈120°。摄像头距离待测产品距离相同,实际安装时此距离r需要与摄像头焦距匹配,以待测产品在摄像头内占据尽可能多的视野为佳。
步骤2、对图像进行预处理包括:核心区域提取、图像灰度化处理、图像去噪处理、图像二值化处理;具体步骤如下:
2.1、核心区域提取:在提取到整幅的图像后,需要通过canny算子边缘检测算法提取出产品侧面部分,如圆柱体侧面的部分,将背景等无关部分去掉。核心区域提取工作有助于通过去除多余信息,降低后续算法计算量,提高计算速度。
2.2、图像灰度化处理:本实施例中采用线性加权的yuv灰度转换算法。
2.3、图像去噪处理:采用小波变换算法对采集到的图像进行滤波去噪,去噪时将信号中高于阈值的部分滤除;本实施例中采用经典的统一阈值法:
式中,σn表示零均值白噪声的标准差;n表示小波系数的总个数,tuniv表示降噪阈值。
2.4、图像二值化处理:在条码图像处理中,最后的译码是将图像看成是“0”和“1”的组合,根据阈值t对图像中的像素点进行分类,并设置图像灰度值为0或者255,使整幅图像转变为黑白图像;二值化计算公式如下:
其中f(x,y)是原始图像的灰度值,g(x,y)是二值化之后对应的灰度值,t是二值化阈值;本发明采用otsu算法计算动态阈值。
步骤3、对图像进行校正处理:在获得n张侧面图像之后,采用反透视变换算法进行图像校正。
步骤4、对图像进行拼接处理:首先根据图像同时在接缝处采用图像互补算法弥补图像校正处理时产生的信息缺失来源对图像进行顺序编号,采取循环拼接方式对摄像头拍摄的图像进行循环拼接;
步骤5、对条码进行解析处理:条码译码是条码编码的逆过程,即根据获取的条码识读其中所包含的信息。
本发明的一个实施例中,采用qr码编码规则;qr码译码算法主要是解析通过处理得到的qr码符号,根据该符号中深浅模块的比例和排列顺序识读出实际信息。
译码过程如下:
1)从缓存中读取完成图像处理后的图像数据;
2)在图像中找到寻像图形的位置。对图像的预选区进行逐行扫描,当扫描到行的深浅模块比例为1:1:3:1:1时,计算出其中心像素点的位置xu和该区域的像素宽度w,结合图3所示。对列进行相同的操作,由此便能获得寻像图形的中心点坐标(xu,yu);
3)确定符号版本
结合图4,通过上述步骤2)能够分别得到该qr码上方的两个位置探测图形的中心点坐标及两个位置探测图形分别对应的像素宽度wul和wur,从而能够计算出两个位置探测图形中心点之间的相对距离d,因此,可以通过公式
确定qr码符号的版本;其中,yul,yur分别为上述两个位置探测图形中心点坐标的纵坐标,v为qr码版本号。
4)依据符号版本和纠错等级,将各个码字按照顺序重新排列;然后根据rs码译码算法对数据码字中的代替错误和拒读错误进行纠正;最后,将各个码字按顺序连接,构成位流信息;
5)按照qr码数据编码规则,对位流的各个分段进行译码,从而得到最终的qr码信息。
其中,如果条码信息全部包含在图像a中,基于拼接规则,此时将提取到两个完全相同的条码信息。所以在需要条码信息缓存中将重复的条码信息删除,保证后续输出的条码信息正确。
步骤6、传输条码信息:将解析处理后得到的条码数据通过数据传输模块传输给应用设备。
本发明通过多个摄像头的布置,可以通过软件将贴于产品侧面任意方向的条码信息快速,准确地读出;本发明基于arm处理器进行图像采集于处理,具有速度快、功耗低、准确率高及通用性好的特点;不需要对已有生产线的生产流程进行修改,只需要在原生产线上一段空白直线处加装支架,就可以在不改变原生产流程的情况下获取每一个产品侧面的条码信息,安装使用方便。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。