CN108920992A - 一种基于深度学习的医药标签条码的定位与识别方法 - Google Patents
一种基于深度学习的医药标签条码的定位与识别方法 Download PDFInfo
- Publication number
- CN108920992A CN108920992A CN201810894904.1A CN201810894904A CN108920992A CN 108920992 A CN108920992 A CN 108920992A CN 201810894904 A CN201810894904 A CN 201810894904A CN 108920992 A CN108920992 A CN 108920992A
- Authority
- CN
- China
- Prior art keywords
- region
- image
- bar code
- code
- obtains
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1443—Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Toxicology (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于深度学习的医药标签条码的定位与识别方法,本发明解决了光照不均、扭曲变形等复杂情况下条码定位困难的问题。并在此基础上解决了线性畸变二维条码的校正难题,能够有效定位复杂情况下的条码位置,并进行畸变校正和细节处理,得到高质量的条码二值化图像,实现精确化识读,本发明中的识别对象包括Data Matrix二维码、商品条码(EAN‑13码)和药品电子监管码(Code‑128码)。
Description
技术领域
本发明属于自动识别领域,尤其涉及一种基于深度学习的医药标签条码的定位与识别方法。
背景技术
条码技术被广泛应用于医药行业,通过激光打码赋予药品唯一的编码,实现药品的序列化,构建全球性的药品追溯***,大大提高了医药卫生安全。例如,中国的药品电子监管码和欧美等国的Data Matrix二维码,都间接或者直接的提供了药品的生产日期、批次号和序列号等信息。条码因其自身的定位特征才能够被发现和读识。由于广泛使用,而导致了应用场景的复杂性。条码会出现扭曲、污损等情况。在丢失部分定位特征,或者弱化定位特征的情况下,还能准确的定位到条码,缺乏通用办法。其次对于操作性的要求,无论是手机扫码还是手持式扫码仪,都需要将相机对准条码,耗时又费力。最后对于实时性的要求,速度决定工厂效能,实时高效的解码过程是必备条件。因此,在流水线生产环境下迫切需要寻找一种有效的条码识别办法。
名词解释:
矩形膨胀处理:即膨胀运算或膨胀处理,图像处理中的专有名词,利用自定义大小的矩形,使目标区域向外部扩张,作用是可以用来填补目标区域中某些空洞以及消除包含在目标区域中的小颗粒噪声。
发明内容
本发明公开了一种基于深度学习的医药标签条码的定位与识别方法,本发明解决了光照不均、扭曲变形等复杂情况下条码定位困难的问题。并在此基础上解决了线性畸变二维条码的校正难题,能够有效定位复杂情况下的条码位置,并进行畸变校正和细节处理,得到高质量的条码二值化图像,实现精确识读,本发明中的识别对象包括Data Matrix二维码、EAN-13码和Code-128码。
为实现上述目的,本发明的技术方案如下:
一种基于深度学习的医药标签条码的定位与识别方法,包括以下步骤:
步骤一:采集位于生产线上的药盒标签条码图像,记作Image0;
步骤二:将图像Image0输入神经网络进行定位,得到含有条码定位框的图像Image1;
步骤三:利用定位框对条码区域进行粗裁剪,得到图像Image2,具体包含如下步骤:
步骤3.1:将3通道的图像Image1转换为3个具有相同定义域的单通道图像,分别为Imagechannel1、Imagechannel2和Imagechannel3;
步骤3.2:将定位框区域从图像Image1中分割出来,得到Regions1;设MinGray1为设定的灰度值下限,MaxGray1为设定的灰度值上限,Imagechannel1(x,y)为图像中(x,y)位置像素的灰度值;x表示图像Image1中像素的X轴向的坐标,y表示图像Image1中像素的Y轴方向坐标;
选择区域,选择的区域满足:
MinGray1<Imagechannel1(x,y)<MaxGray1;
步骤3.3:对得到的区域Regions1进行填充操作得到区域Regions_fill1;并对区域Regions1进行连通域搜索操作,寻找到最大的连通域区域Regions2;
步骤3.4:对区域Regions2进行区域形状变换,得到最大内接矩区域Regions3;
步骤3.5:图像Imagechannel1和区域Regions3作交集处理,得到只含有Regions3区域范围的图像Image3;
步骤四:对条码区域进行精确定位,去掉所有背景信息,精确提取出条码区域;包括如下步骤:
步骤4.1:利用均值滤波的方法对图像Image3进行滤波处理,得到图像ImageMean1;ImageMean1(x,y)为滤波后(x,y)位置的像素灰度值,f(x,y)为临近的M个像素的灰度值,则:
步骤4.2:利用局部阈值分割图像Image3,得区域RegionDynThresh1;其中Image3(x,y)为图像Image3在(x,y)像素的灰度值,T1为选择的偏移值;得到的区域灰度值满足公式:
Image3(x,y)≤ImageMean1(x,y)-T1;
步骤4.3:对区域RegionDynThresh1进行矩形膨胀处理,得到区域RegionDilation;
步骤4.4:对区域RegionDilation进行填充处理,得到Regions_fill2;并选择最大连通域Regions4;
步骤4.5:对区域Regions4进行区域变换:添补区域缺陷部分,并且规整区域Regions4边缘,得到区域Regions4的凸包Regions5;凸包Regions5和图像Image3作交集处理,得到条码的精确位置图像Image4;
得到条码精确位置后,会出现两种情况,一是对于线性畸变的二维码进行校正处理,二是对于有一定旋转角度倾斜的条码,进行旋转角度预测,得到水平图像;
对于线性畸变Data Matrix二维码执行以下步骤,校正图像;
步骤五:提取二维码的边界信息和角点信息;
步骤5.1:提取区域Regions5的封闭边界轮廓线Contours;
步骤5.2:将封闭轮廓线Contours分成4条轮廓线段;
步骤5.3:按照顺时针顺序对4条线段进行编号排序;
步骤5.4:对其中一个轮廓线均提取多个点进行基于加权的最小二乘法拟合成直线,并得到直线段端点坐标;其中,N是采集的轮廓线上点的个数,(xi,yi)是采集点的坐标,1≤i≤N,N≥3;
y′=ax′+b
x'表示依据轮廓线所拟合的直线在图像Image4中像素的X轴向的坐标,y'表示依据轮廓线所拟合的直线在图像Image4中像素的Y轴向的坐标;
重复步骤5.4,依次对四条轮廓线进行拟合,得到线段起始点坐标,并按照顺时针顺序排列,得到二维码角点坐标信息,用数组形式表示为Xcorners和Ycorners;
步骤六:计算利用仿射变换应用在线性畸变二维码图像Image4上的齐次变换矩阵Matrix,其中Px=Xcorners,Py=Ycorners,Pw=(1,1,1),Qx和Qy是变换后的自定义角点坐标,Qw=(1,1,1);
步骤七:对线性畸变二维码图像Image4应用仿射变换校正,得到规整的图像Image5;
对于非线性畸变的一维条码和二维条码计算其旋转角度α的步骤如下:
步骤八:对区域Regions5利用最小外接矩变换,得到最小外接矩形的角度,即为条码的旋转角度α;
步骤九:对图像Image4进行旋转操作,得到规整的图像Image5;
步骤十:利用均值滤波的方法对图像Image5进行滤波处理,得到图像ImageMean2;ImageMean2(x,y)为滤波后(x,y)位置的像素灰度值,f(x,y)为临近的M个像素的灰度值;
步骤十一:利用局部阈值分割图像Image5,得区域RegionDynThresh2;其中Image5(x,y)为图像Image5在(x,y)像素的灰度值,T2为选择的偏移值;得到的区域灰度值满足公式:
Image5(x,y)≤ImageMean2(x,y)-T2
步骤十二:对区域RegionDynThresh2进行腐蚀操作,消除目标中部分粘连区域,得到区域RegionErosion;
步骤十三:对区域RegionErosion进行矩形膨胀操作,补充部分缺失的部分,得到区域RegionDilation;
步骤十四、若标签条码为一维码则进行一维码的精确化处理;若标签条码为二维码则进行二维码的精确化处理;从而得到一维条码或二维条码精确的二值化图像BinImage;
步骤十五、对二值化图像BinImage解码,得到处理后的医药标签条码图像。
进一步的改进,所述步骤十四中,一维码的精确化处理包括如下步骤:
14.1:计算区域RegionDilation的连接域的连通分量,使一维条码的黑色小块彼此独立,便于单独处理;得到区域ConnectedRegions;
14.2:对区域ConnectedRegions进行区域变形,对每个独立的黑条区域使用最小外接矩的方式填充,得到规范化,精确化的一维条码区域RegionTrans;
14.3:将区域RegionTran转化成二值化图像,得到规范化的一维条码图像BinImage;
进一步的改进,所述步骤十四中,二维码的精确化处理包括如下步骤:将区域RegionDilation转化成二值化图像,得到规范化的二维条码图像BinImage;
进一步的改进,所述步骤十五中使用HALCON软件二值化图像BinImage解码。
进一步的改进,所述步骤二中,将采集到的图像Image0送入训练好的深度学习神经网络中,神经网络的训练按照以下步骤得到:
步骤1)建立医药标签条码的数据集:通过实物拍摄,***和百度搜索,建立了一个含有400张医药标签条码的数据集;
步骤2)对数据集中的图片进行标定:利用LabelImg工具,对每张图片中的目标进行分类标记,标记出目标区域信息和类别信息,对应设置两个类别:Bar Code、Datamatrix;
步骤3)将数据集随机分成两部分,其中280张图片用于训练,120张图片用于测试;
步骤4)神经网络训练,利用预训练的SSD网络进行多目标检测训练,在调整好相关参数,迭代40000次后,误差函数稳定在了1±0.3范围内,认为训练结束。
进一步的改进,所述步骤1中采用触发式的方式采集药盒标签条码图像。
与现有技术相比,本发明的优点体现在以下几点:
(1)本发明利用深度学习方法,解决了复杂情况下一维条码和二维条码定位困难的问题。能够有效的准确定位出条码区域。在定位基础上后续处理过程中,能够解决二维码线性畸变问题,并且能预测条码的旋转角度,得到一张精确二值化条码图片,极大提高了条码的识别率。整体算法简单、有效,识别速度和识别率都满足一般工业生产需求。
(2)本发明的识别对象可以在现有基础上方便添加,不需要对算法主体做过多改动,方法的环境适应性强,普适性高。
(3)与传统流水线条码检测技术相比,本发明提出的定位和处理方法受干扰程度更低,因为药盒采集受拍摄角度、环境、光照和背景的影响,导致图片质量不一。对不同流水线,不用药盒和不同环境下不能同时满足需求;而本方法几乎不受上述因素的影响,有更好的兼容性和稳定性。
(4)与手持式扫描仪或者手机扫描相比,本发明,不需要将相机对准条码。可以在相对较大图像范围和角度采集图像,识别条码信息,快速性更好。
附图说明
图1为本发明的流程图;
图2-1为利用深度学习网络对复杂情况下的一维条码定位效果图,其中,1(a)是一维条码在复杂背景下的定位效果图;1(b)是一维条码在光照不均情况下的定位效果图;1(c)是一维条码在扭曲变形情况下的定位效果图;1(d)是一维条码在部分遮挡情况下的定位效果图。
图2-2是为利用深度学习网络对复杂情况下的二维条码定位效果图,其中,2(a)是二维条码在复杂背景下的定位效果图;2(b)是二维条码在光照不均情况下的定位效果图;2(c)是二维条码在扭曲变形情况下的定位效果图;2(d)是二维条码在部分遮挡情况下的定位效果图。
图3-1为一维条码区域的粗定位过程图,其中1(a)是一维条码原图;1(b)是利用深度学习网络定位条码区域后的图;1(c)是将三通道转化成单通道的图;1(d)是提取定位框效果图;1(e)是填充定位框区域效果图;1(f)是利用最大内接矩粗选择的条码区域;1(g)条码区域粗裁剪。
图3-2为一维条码区域的粗定位过程图,2(a)是二维条码原图;2(b)是利用深度学习网络定位条码区域后的图;2(c)是将三通道转化成单通道的图;2(d)是提取定位框效果图;2(e)是填充定位框区域效果图;2(f)是利用最大内接矩粗选择的条码区域;2(g)条码区域粗裁剪。
图4-1为一维条码区域的精确定位过程图,其中,1(a)是一维条码均值滤波后的效果图;1(b)是一维条码局部阈值分割效果图;1(c)是进行区域膨胀效果;1(d)是连通域填充效果;1(e)是选择最大连通区域效果;1(f)对区域进行凸包围变形完善区域边缘;1(g)精确裁剪出一维条码图像。
图4-2为二维条码区域的精确定位过程图,其中,2(a)是二维条码均值滤波后的效果图;2(b)是二维条码局部阈值分割效果图;2(c)是进行区域膨胀效果;2(d)是连通域填充效果;2(e)是选择最大连通区域效果;2(f)对区域进行凸包围变形完善区域边缘;2(g)精确裁剪出二维条码图像;
图5为线性畸变二维码校正图,由于粗定位和精确定位过程于前述相同,因此不再做赘述。图(a)是精确提取的畸变二维码图像;图(b)是二维码边缘提取,并进行直线拟合;图(c)是得到二维码角点坐标效果;图(d)是进行仿射变换校正后的图像;
图6-1为一维条码的精确二值化处理过程,其中,1(a)是对一维条码进行腐蚀膨胀等预处理手段得到的图像;1(b)是拆分一维条码黑色条纹效果图;1(c)是对每个独立的条纹应用最小外接矩进行缺陷处理;1(d)是区域二值化输出的效果图。
图6-2为二条码的精确二值化处理过程,其中,2(a)是对二维条码进行腐蚀膨胀等预处理手段得到的图像;2(b)是区域二值化输出的效果图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。本发明以医药包装上的DataMatrix二维码、药监码(Code-128码)和商品条码(EAN-13码)为实例进行说明,但本发明并不限于此。
本实例中相机采用分辨率为1080*960的面阵千兆网CCD相机,镜头为6mm宽视角Computar镜头,光源为半径为10cm的环形LED光源;
如图1所示,一种基于深度学习的医药标签条码的定位与识别方法,包括以下步骤:
步骤1:采集位于高速生产线上的药盒标签条码图像,记作Image0,如图3-1和图3-2中1(a)、2(a)所示;
步骤2:将图像Image0输入神经网络进行定位,得到含有条码定位框的图像Image1,如图3-1和图3-2中1(b)、2(b)所示;
步骤3:利用定位框对条码区域进行粗裁剪,得图像Image2,如图3-1和图3-2中1(g)、2(g)所示;
步骤3.1:将3通道图像Image1转换为3个具有相同定义域的单通道图像,分别为Imagechannel1、Imagechannel2和Imagechannel3,如图3-1和图3-2中的1(c)、2(c)所示;
【为了增强对比度,定位框颜色选择的黄绿色。对比得到的3个单通道图像,图像Imagechannel1对定位框有最好的区分效果,在图像中显示纯白色。】
步骤3.2:将定位框区域从图像中分割出来,得到Regions1。MinGray1为设定的灰度值下限,MaxGray1为设定的灰度值上限,Imagechannel1(x,y)为图像中(x,y)位置像素的灰度值;
选择的区域满足:MinGray1<Imagechannel1(x,y)<MaxGray1,效果如图3-1和图3-2中的1(d)和2(d)所示;
【根据实验结果,当MinGray1=230,MaxGray1=255时,得到的定位框区域最好。】
步骤3.3:对得到的区域Regions1进行填充操作得到区域Regions_fill1。并对区域进行连通域搜索操作,寻找到最大的连通域区域Regions2,如图3-1和图3-2中的1(e)和2(e)所示;
步骤3.4:对区域Regions2进行区域形状变换,得到最大内接矩区域Regions3,如图3-1和图3-2中的1(f)和2(f)所示。
【定位框上部含有类别、置信度等信息,对于识别过程属于无用信息。所以,为确保条码尽可能少的受背景因素干扰,因此,选用最大内接矩的区域变换方法。既保留了条码的内容,又去掉了多余的干扰部分】
步骤3.5:图像Imagechannel1和区域Regions3作交集处理,得到只含有Regions3区域范围的图像Image3,如图3-1和图3-2中的1(g)和2(g)所示;
【至此,复杂背景情况下,条码就能够被准确定位出来,后续过程是对发生线性畸变的Data Matrix码进行校正,对未畸变的条码进行旋转。以此来提高解码率和解码的速度。】
步骤4:对条码区域进行精确定位,去掉所有背景信息,精确提取出条码区域,如图4-1和图4-2中的1(g)、2(g)所示;
步骤4.1:利用均值滤波的方法对图像Image3进行滤波处理,得到图像ImageMean1,如图4-1和图4-2中的1(a)、2(a)所示。
ImageMean1(x,y)为滤波后(x,y)位置的像素灰度值,f(x,y)为临近的M个像素的灰度值;
步骤4.2:利用局部阈值分割图像Image3,得区域RegionDynThresh1,如图4-1和图4-2中的1(b)、2(b)所示。其中Image3(x,y)为图像Image3在(x,y)像素的灰度值,T1为选择的偏移值。得到的区域灰度值满足公式:
Image3(x,y)≤ImageMean1(x,y)-T1
【步骤4.1和步骤4.2为自适应阈值方法,能较好的在不同环境,不同光照的情况下,完整提取出条码区域,适用于***在复杂背景下的要求。】
步骤4.3:对区域RegionDynThresh进行矩形膨胀处理,得到区域RegionDilation,如图4-1和图4-2中的1(c)、2(c)所示;
【对于二维码部分黑色小块彼此独立,对于一维码黑色小条都不连接。因此在求取最大连通域时容易使条码缺失部分信息。所以通过矩形膨胀处理,使条码中各个部分彼此连接。】
步骤4.4:对区域RegionDilation进行填充处理,得到Regions_fill2,如图4-1和图4-2中的1(d)、2(d)所示。并选择最大连通域Regions4,如图4-1和图4-2中的1(e)、2(e)所示;
步骤4.5:对区域Regions4进行区域变换:添补区域缺陷部分,并且规整区域Regions4边缘,得到区域Regions4的凸包Regions5;如图4-1和图4-2中的1(f)、2(f)所示,并和图像Image3作交集处理,得到条码的精确位置图像Image4,如图4-1和图4-2中的1(g)、2(g)所示;
得到条码精确位置后,会出现两种情况,一是对于线性畸变的二维码(情况A)进行校正处理,二是对于有一定旋转角度倾斜的条码(情况B),进行旋转角度预测,得到水平图像;
[情况A]对于线性畸变Data Matrix二维码执行以下步骤,校正图像;
步骤5:提取二维码的边界信息和角点信息;
步骤5.1:提取区域Regions5的封闭边界轮廓线Contours,如图5中的(b)所示;
步骤5.2:将封闭轮廓线Contours分成4条轮廓线段;
步骤5.3:按照顺时针顺序对4条线段进行编号排序;
步骤5.4:对轮廓线1提取多个点进行基于加权的最小二乘法拟合成直线,并得到直线段端点坐标。N是采集的轮廓线上点的个数,(xi,yi)是采集点的坐标,i从1到N;
y=ax+b
【由区域信息得到的轮廓线Contours,并不是由四条直线段构成,而是沿着区域形成的弯曲不断的曲线。为了精确得到角点信息,所以要用最小二乘法进行直线运算,得到的四条直线的交点坐标就是需求的交点坐标。】
重复步骤5.4,依次对四条线段进行拟合,得到线段起始点坐标,并按照顺时针顺序排列,得到二维码角点坐标信息,用数组形式表示为Xcorners和Ycorners,如图5中的(c)所示;
步骤6:计算应用在仿射变换上的齐次变换矩阵Matrix,其中Px=Xcorners,Py=Ycorners,Pw=(1,1,1),Qx和Qy是变换后的自定义角点坐标,Qw=(1,1,1);
步骤7:对线性畸变二维码图像Image4应用仿射变换校正,得到规整的图像Image5,如图5中的(d)所示;
[情况B]对于非线性畸变的一维条码和二维条码计算其旋转角度α;
步骤8:对区域Regions5利用最小外接矩变换,得到该最小外接矩形的角度,即为条码的旋转角度α;
步骤9:对图像Image4进行旋转操作,得到规整的Image5,如图4-1和图4-2的1(h)、2(h)所示;
【至此,无论是线性畸变的二维条码还是任意无畸变条码都被精确提取,并且都被旋转到水平方向。由于图像采集设备影响和图像在传输过程中噪声影响,条码的对比度和特征不是特别明显。为了加强特征,提高解码率,对得到的图像Image5作精细化处理,得到条码二值化图像】
步骤10:利用均值滤波的方法对图像Image5进行滤波处理,得到图像ImageMean2。ImageMean2(x,y)为滤波后(x,y)位置的像素灰度值,f(x,y)为临近的M个像素的灰度值;
步骤11:利用局部阈值分割图像Image5,得区域RegionDynThresh2。其中Image5(x,y)为图像Image5在(x,y)像素的灰度值,T2为选择的偏移值。得到的区域灰度值满足公式:
Image5(x,y)≤ImageMean2(x,y)-T2
【步骤10和步骤11为自适应阈值方法,能较好的在不同环境,不同光照的情况下,完整提取出条码区域,有利于后面对区域的精确化处理。】
步骤12:对区域RegionDynThresh2进行腐蚀操作,消除目标中部分粘连区域,得到区域RegionErosion;
步骤13:对区域RegionErosion进行矩形膨胀操作,补充部分缺失的部分,得到区域RegionDilation,如图6-1和图6-2中的1(a)、2(a)所示;
在上述两步过程对区域预处理后,由于一维条码和二维条码在结构上还是存在较大不同,因此,分为两种情况。一是一维码的精确化处理(情况一),二是二维码的精确化处理(情况二);
[情况一]对于一维条码的精确二值化处理;
步骤14:计算区域RegionDilation的连接域的连通分量,使一维条码的黑色小块彼此独立,便于单独处理。得到区域ConnectedRegions,如图6-1中的1(b)所示;
步骤15:对区域ConnectedRegions进行区域变形,对每个独立的黑条区域使用最小外接矩的方式填充。得到规范化,精确化的一维条码区域RegionTrans,如图6-1中的1(c)所示;
步骤16:将区域RegionTran转化成二值化图像,得到规范化的一维条码图像BinImage,如图6-1中的1(d)所示;
[情况二]对于二维条码的精确二值化处理;
步骤17:将区域RegionDilation转化成二值化图像,得到规范化的二维条码图像BinImage,如图6-2中的2(b)所示;
【至此,就得到了一维条码或二维条码精确的二值化图像,能够被精确快速识别】
步骤18;利用HALCON软件实现对二值化图像BinImage的解码;
【该方法能够解决复杂情况下的条码定位困难问题,提高条码解码率。方法速度快、稳定性较好。能够达到125ms/张的采集识别速度,识别率可以达到95%左右】
所述步骤2中,将采集到的图像送入训练好的深度学习神经网络中。神经网络的训练按照以下步骤得到:
步骤1)建立医药标签条码的数据集。通过实物拍摄,***和百度搜索,建立了一个含有400张医药标签条码的数据集。
步骤2)对数据集中的图片进行标定。利用LabelImg工具,对每张图片中的目标进行分类标记,标记出目标区域信息和类别信息。本方法中设置了两个类别:Bar Code、DataMatrix;
步骤3)将数据集随机分成两部分,其中280张图片用于训练,120张图片用于测试;
步骤4)神经网络训练,利用预训练的SSD网络进行多目标检测训练。在调整好相关参数,迭代40000次后,误差函数稳定在了1附近,认为训练结束;
所述步骤1中采用图像采集方式为触发式采集。
即当医药包装盒接近光电开关时,光电开关即刻触发工业CCD相机采集一帧图像。
光源为半径为10cm的环形LED环形光源。
虽然上面结合本发明的优选实施例对本发明的原理进行了详细的描述,本领域技术人员应该理解,上述实施例仅仅是对本发明的示意性实现方式的解释,并非对本发明包含范围的限定。实施例中的细节并不构成对本发明范围的限制,在不背离本发明的精神和范围的情况下,任何基于本发明技术方案的等效变换、简单替换等显而易见的改变,均落在本发明保护范围之内。
Claims (6)
1.一种基于深度学习的医药标签条码的定位与识别方法,其特征在于,包括以下步骤:
步骤一:采集位于生产线上的药盒标签条码图像,记作Image0;
步骤二:将图像Image0输入神经网络进行定位,得到含有条码定位框的图像Image1;
步骤三:利用定位框对条码区域进行粗裁剪,得到图像Image2,具体包含如下步骤:
步骤3.1:将3通道的图像Image1转换为3个具有相同定义域的单通道图像,分别为Imagechannel1、Imagechannel2和Imagechannel3;
步骤3.2:将定位框区域从图像Image1中分割出来,得到Regions1;设MinGray1为设定的灰度值下限,MaxGray1为设定的灰度值上限,Imagechannel1(x,y)为图像中(x,y)位置像素的灰度值;x表示图像Image1中像素的X轴向的坐标,y表示图像Image1中像素的Y轴方向坐标;
选择区域,选择的区域满足:
MinGray1<Imagechannel1(x,y)<MaxGray1;
步骤3.3:对得到的区域Regions1进行填充操作得到区域Regions_fill1;并对区域Regions1进行连通域搜索操作,寻找到最大的连通域区域Regions2;
步骤3.4:对区域Regions2进行区域形状变换,得到最大内接矩区域Regions3;
步骤3.5:图像Imagechannel1和区域Regions3作交集处理,得到只含有Regions3区域范围的图像Image3;
步骤四:对条码区域进行精确定位,去掉所有背景信息,精确提取出条码区域;包括如下步骤:
步骤4.1:利用均值滤波的方法对图像Image3进行滤波处理,得到图像ImageMean1;ImageMean1(x,y)为滤波后(x,y)位置的像素灰度值,f(x,y)为临近的M个像素的灰度值,则:
步骤4.2:利用局部阈值分割图像Image3,得区域RegionDynThresh1;其中Image3(x,y)为图像Image3在(x,y)像素的灰度值,T1为选择的偏移值;得到的区域灰度值满足公式:
Image3(x,y)≤ImageMean1(x,y)-T1;
步骤4.3:对区域RegionDynThresh1进行矩形膨胀处理,得到区域RegionDilation;
步骤4.4:对区域RegionDilation进行填充处理,得到Regions_fill2;并选择最大连通域Regions4;
步骤4.5:对区域Regions4进行区域变换:添补区域缺陷部分,并且规整区域Regions4边缘,得到区域Regions4的凸包Regions5;凸包Regions5和图像Image3作交集处理,得到条码的精确位置图像Image4;
得到条码精确位置后,会出现两种情况,一是对于线性畸变的二维码进行校正处理,二是对于有一定旋转角度倾斜的条码,进行旋转角度预测,得到水平图像;
对于线性畸变Data Matrix二维码执行以下步骤,校正图像;
步骤五:提取二维码的边界信息和角点信息;
步骤5.1:提取区域Regions5的封闭边界轮廓线Contours;
步骤5.2:将封闭轮廓线Contours分成4条轮廓线段;
步骤5.3:按照顺时针顺序对4条线段进行编号排序;
步骤5.4:对其中一个轮廓线均提取多个点进行基于加权的最小二乘法拟合成直线,并得到直线段端点坐标;其中,N是采集的轮廓线上点的个数,(xi,yi)是采集点的坐标,1≤i≤N,N≥3;
y′=ax′+b
x′表示依据轮廓线所拟合的直线在图像Image4中像素的X轴向的坐标,y′表示依据轮廓线所拟合的直线在图像Image4中像素的Y轴向的坐标;
重复步骤5.4,依次对四条轮廓线进行拟合,得到线段起始点坐标,并按照顺时针顺序排列,得到二维码角点坐标信息,用数组形式表示为Xcorners和Ycorners;
步骤六:计算利用仿射变换应用在线性畸变二维码图像Image4上的齐次变换矩阵Matrix,其中Px=Xcorners,Py=Ycorners,Pw=(1,1,1),Qx和Qy是变换后的自定义角点坐标,Qw=(1,1,1);
步骤七:对线性畸变二维码图像Image4应用仿射变换校正,得到规整的图像Image5;
对于非线性畸变的一维条码和二维条码计算其旋转角度α的步骤如下:
步骤八:对区域Regions5利用最小外接矩变换,得到最小外接矩形的角度,即为条码的旋转角度α;
步骤九:对图像Image4进行旋转操作,得到规整的图像Image5;
步骤十:利用均值滤波的方法对图像Image5进行滤波处理,得到图像ImageMean2;ImageMean2(x,y)为滤波后(x,y)位置的像素灰度值,f(x,y)为临近的M个像素的灰度值;
步骤十一:利用局部阈值分割图像Image5,得区域RegionDynThresh2;其中Image5(x,y)为图像Image5在(x,y)像素的灰度值,T2为选择的偏移值;得到的区域灰度值满足公式:
Image5(x,y)≤ImageMean2(x,y)-T2
步骤十二:对区域RegionDynThresh2进行腐蚀操作,消除目标中部分粘连区域,得到区域RegionErosion;
步骤十三:对区域RegionErosion进行矩形膨胀操作,补充部分缺失的部分,得到区域RegionDilation;
步骤十四、若标签条码为一维码则进行一维码的精确化处理;若标签条码为二维码则进行二维码的精确化处理;从而得到一维条码或二维条码精确的二值化图像BinImage;
步骤十五、对二值化图像BinImage解码,得到处理后的医药标签条码图像。
2.如权利要求1所述的基于深度学习的医药标签条码的定位与识别方法,其特征在于,所述步骤十四中,一维码的精确化处理包括如下步骤:
14.1:计算区域RegionDilation的连接域的连通分量,使一维条码的黑色小块彼此独立,便于单独处理;得到区域ConnectedRegions;
14.2:对区域ConnectedRegions进行区域变形,对每个独立的黑条区域使用最小外接矩的方式填充,得到规范化,精确化的一维条码区域RegionTrans;
14.3:将区域RegionTran转化成二值化图像,得到规范化的一维条码图像BinImage;
3.如权利要求1所述的基于深度学习的医药标签条码的定位与识别方法,其特征在于,所述步骤十四中,二维码的精确化处理包括如下步骤:将区域RegionDilation转化成二值化图像,得到规范化的二维条码图像BinImage;
4.如权利要求1所述的基于深度学习的医药标签条码的定位与识别方法,其特征在于,所述步骤十五中使用HALCON软件二值化图像BinImage解码。
5.如权利要求1所述的基于深度学习的医药标签条码的定位与识别方法,其特征在于,所述步骤二中,将采集到的图像Image0送入训练好的深度学习神经网络中,神经网络的训练按照以下步骤得到:
步骤1)建立医药标签条码的数据集:通过实物拍摄,***和百度搜索,建立了一个含有400张医药标签条码的数据集;
步骤2)对数据集中的图片进行标定:利用LabelImg工具,对每张图片中的目标进行分类标记,标记出目标区域信息和类别信息,对应设置两个类别:Bar Code、Data Matrix;
步骤3)将数据集随机分成两部分,其中280张图片用于训练,120张图片用于测试;
步骤4)神经网络训练,利用预训练的SSD网络进行多目标检测训练,在调整好相关参数,迭代40000次后,误差函数稳定在了1±0.3范围内,认为训练结束。
6.如权利要求1所述的基于深度学习的医药标签条码的定位与识别方法,其特征在于,所述步骤1中采用触发式的方式采集药盒标签条码图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810894904.1A CN108920992B (zh) | 2018-08-08 | 2018-08-08 | 一种基于深度学习的医药标签条码的定位与识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810894904.1A CN108920992B (zh) | 2018-08-08 | 2018-08-08 | 一种基于深度学习的医药标签条码的定位与识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108920992A true CN108920992A (zh) | 2018-11-30 |
CN108920992B CN108920992B (zh) | 2021-02-26 |
Family
ID=64397274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810894904.1A Active CN108920992B (zh) | 2018-08-08 | 2018-08-08 | 一种基于深度学习的医药标签条码的定位与识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920992B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886060A (zh) * | 2019-02-21 | 2019-06-14 | 苏州天准科技股份有限公司 | 一种基于深度学习的条码区域定位方法 |
CN110245539A (zh) * | 2019-07-09 | 2019-09-17 | 江苏安方电力科技有限公司 | 一种电力物资自动扫码*** |
CN110443118A (zh) * | 2019-06-24 | 2019-11-12 | 上海了物网络科技有限公司 | 基于人造特征的商品识别方法、***及介质 |
CN110532825A (zh) * | 2019-08-21 | 2019-12-03 | 厦门壹普智慧科技有限公司 | 一种基于人工智能目标检测的条码识别装置与方法 |
CN110532826A (zh) * | 2019-08-21 | 2019-12-03 | 厦门壹普智慧科技有限公司 | 一种基于人工智能语义分割的条码识别装置与方法 |
CN110827247A (zh) * | 2019-10-28 | 2020-02-21 | 上海悦易网络信息技术有限公司 | 一种识别标签的方法及设备 |
CN111222355A (zh) * | 2019-12-30 | 2020-06-02 | 新大陆数字技术股份有限公司 | Pcb板上的条码定位方法及*** |
CN111310509A (zh) * | 2020-03-12 | 2020-06-19 | 北京大学 | 基于物流运单的实时条码检测***及方法 |
CN111597846A (zh) * | 2019-02-20 | 2020-08-28 | 中科院微电子研究所昆山分所 | 一种褶皱二维码恢复方法、装置、设备及可读存储介质 |
CN111767754A (zh) * | 2020-06-30 | 2020-10-13 | 创新奇智(北京)科技有限公司 | 一种识别码的识别方法、装置、电子设备及存储介质 |
CN112949471A (zh) * | 2021-02-27 | 2021-06-11 | 浪潮云信息技术股份公司 | 基于国产cpu的电子公文识别复现方法及*** |
CN113313703A (zh) * | 2021-06-17 | 2021-08-27 | 上海红檀智能科技有限公司 | 基于深度学习图像识别的无人机输电线巡检方法 |
CN113610362A (zh) * | 2021-07-20 | 2021-11-05 | 苏州超集信息科技有限公司 | 一种基于深度学习流水线产品追溯方法及*** |
CN113688649A (zh) * | 2021-08-16 | 2021-11-23 | 江苏博赛孚医疗科技有限公司 | 一种快速的qr码定位方法 |
CN113869475A (zh) * | 2021-09-24 | 2021-12-31 | 大连理工大学 | 一种适用于水下通信二维码的设计方法及*** |
WO2022036482A1 (zh) * | 2020-08-17 | 2022-02-24 | 江苏瑞科科技有限公司 | 复杂背景下dpm码定位与识读技术 |
CN115147389A (zh) * | 2022-07-19 | 2022-10-04 | 歌尔股份有限公司 | 图像处理方法、设备以及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346850A (zh) * | 2011-10-13 | 2012-02-08 | 西北工业大学 | 复杂金属背景下DataMatrix条码区域定位方法 |
CN107341523A (zh) * | 2017-07-13 | 2017-11-10 | 浙江捷尚视觉科技股份有限公司 | 基于深度学习的快递单信息识别方法和*** |
CN107617573A (zh) * | 2017-09-30 | 2018-01-23 | 浙江瀚镪自动化设备股份有限公司 | 一种基于多任务深度学习的物流编码识别和分拣方法 |
-
2018
- 2018-08-08 CN CN201810894904.1A patent/CN108920992B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346850A (zh) * | 2011-10-13 | 2012-02-08 | 西北工业大学 | 复杂金属背景下DataMatrix条码区域定位方法 |
CN107341523A (zh) * | 2017-07-13 | 2017-11-10 | 浙江捷尚视觉科技股份有限公司 | 基于深度学习的快递单信息识别方法和*** |
CN107617573A (zh) * | 2017-09-30 | 2018-01-23 | 浙江瀚镪自动化设备股份有限公司 | 一种基于多任务深度学习的物流编码识别和分拣方法 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597846A (zh) * | 2019-02-20 | 2020-08-28 | 中科院微电子研究所昆山分所 | 一种褶皱二维码恢复方法、装置、设备及可读存储介质 |
CN109886060A (zh) * | 2019-02-21 | 2019-06-14 | 苏州天准科技股份有限公司 | 一种基于深度学习的条码区域定位方法 |
CN110443118A (zh) * | 2019-06-24 | 2019-11-12 | 上海了物网络科技有限公司 | 基于人造特征的商品识别方法、***及介质 |
CN110443118B (zh) * | 2019-06-24 | 2021-09-03 | 上海了物网络科技有限公司 | 基于人造特征的商品识别方法、***及介质 |
CN110245539A (zh) * | 2019-07-09 | 2019-09-17 | 江苏安方电力科技有限公司 | 一种电力物资自动扫码*** |
CN110532826B (zh) * | 2019-08-21 | 2022-09-30 | 厦门壹普智慧科技有限公司 | 一种基于人工智能语义分割的条码识别装置与方法 |
CN110532826A (zh) * | 2019-08-21 | 2019-12-03 | 厦门壹普智慧科技有限公司 | 一种基于人工智能语义分割的条码识别装置与方法 |
CN110532825A (zh) * | 2019-08-21 | 2019-12-03 | 厦门壹普智慧科技有限公司 | 一种基于人工智能目标检测的条码识别装置与方法 |
CN110532825B (zh) * | 2019-08-21 | 2022-09-30 | 厦门壹普智慧科技有限公司 | 一种基于人工智能目标检测的条码识别装置与方法 |
CN110827247A (zh) * | 2019-10-28 | 2020-02-21 | 上海悦易网络信息技术有限公司 | 一种识别标签的方法及设备 |
CN110827247B (zh) * | 2019-10-28 | 2024-03-15 | 上海万物新生环保科技集团有限公司 | 一种识别标签的方法及设备 |
CN111222355A (zh) * | 2019-12-30 | 2020-06-02 | 新大陆数字技术股份有限公司 | Pcb板上的条码定位方法及*** |
CN111310509A (zh) * | 2020-03-12 | 2020-06-19 | 北京大学 | 基于物流运单的实时条码检测***及方法 |
CN111767754A (zh) * | 2020-06-30 | 2020-10-13 | 创新奇智(北京)科技有限公司 | 一种识别码的识别方法、装置、电子设备及存储介质 |
CN111767754B (zh) * | 2020-06-30 | 2024-05-07 | 创新奇智(北京)科技有限公司 | 一种识别码的识别方法、装置、电子设备及存储介质 |
WO2022036482A1 (zh) * | 2020-08-17 | 2022-02-24 | 江苏瑞科科技有限公司 | 复杂背景下dpm码定位与识读技术 |
CN112949471A (zh) * | 2021-02-27 | 2021-06-11 | 浪潮云信息技术股份公司 | 基于国产cpu的电子公文识别复现方法及*** |
CN113313703A (zh) * | 2021-06-17 | 2021-08-27 | 上海红檀智能科技有限公司 | 基于深度学习图像识别的无人机输电线巡检方法 |
CN113313703B (zh) * | 2021-06-17 | 2024-05-24 | 上海红檀智能科技有限公司 | 基于深度学习图像识别的无人机输电线巡检方法 |
CN113610362B (zh) * | 2021-07-20 | 2023-08-08 | 苏州超集信息科技有限公司 | 一种基于深度学习流水线产品追溯方法及*** |
CN113610362A (zh) * | 2021-07-20 | 2021-11-05 | 苏州超集信息科技有限公司 | 一种基于深度学习流水线产品追溯方法及*** |
CN113688649A (zh) * | 2021-08-16 | 2021-11-23 | 江苏博赛孚医疗科技有限公司 | 一种快速的qr码定位方法 |
CN113869475A (zh) * | 2021-09-24 | 2021-12-31 | 大连理工大学 | 一种适用于水下通信二维码的设计方法及*** |
CN115147389A (zh) * | 2022-07-19 | 2022-10-04 | 歌尔股份有限公司 | 图像处理方法、设备以及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108920992B (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920992A (zh) | 一种基于深度学习的医药标签条码的定位与识别方法 | |
CN104361353B (zh) | 一种感兴趣区域的定位方法在仪表监控识别中的应用 | |
CN108133216B (zh) | 基于机器视觉的可实现小数点读取的数码管读数识别方法 | |
EP3740897A1 (en) | License plate reader using optical character recognition on plural detected regions | |
CN1450796A (zh) | 检测和/或追踪图像或图像序列中颜色区域的方法和装置 | |
CN102156868A (zh) | 图像二值化方法和装置 | |
CN112085024A (zh) | 一种罐表面字符识别方法 | |
CN111721259A (zh) | 基于双目视觉的水下机器人回收定位方法 | |
CN113724231A (zh) | 一种基于语义分割和目标检测融合模型的工业缺陷检测方法 | |
CN108009538A (zh) | 一种汽车发动机缸体序列号智能识别方法 | |
CN109190742B (zh) | 一种基于灰度特征的编码特征点的解码方法 | |
CN109146859A (zh) | 一种基于机器视觉的路面裂缝检测*** | |
CN108197521A (zh) | 一种多相位二维码获取识别装置及方法 | |
CN109409378A (zh) | 一种纳西东巴经书的数字化处理方法 | |
CN108038482A (zh) | 一种汽车发动机缸体序列号视觉智能识别*** | |
CN116704516B (zh) | 一种用于水溶肥料包装的视觉检测方法 | |
CN113903024A (zh) | 一种手写票据数值信息识别方法、***、介质及装置 | |
CN112686265A (zh) | 一种基于层级轮廓提取的象形文字分割方法 | |
CN115953550A (zh) | 针对线结构光扫描的点云离群点剔除***及方法 | |
CN110503051A (zh) | 一种基于图像识别技术的珍贵木材识别***及方法 | |
CN112686872B (zh) | 基于深度学习的木材计数方法 | |
CN113505629A (zh) | 一种基于轻量网络的智能仓储物件识别装置 | |
CN110751690B (zh) | 铣床刀头视觉定位方法 | |
CN111160147A (zh) | 一种书法作品图像的裁剪和识别方法 | |
CN114332629B (zh) | 基于高速视觉耦合轮廓特征提取的多农药雾滴撞击叶面延迟性的测量方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |