一种基于yolov3和CNN的盘头标识识别方法

文档序号:1490758 发布日期:2020-02-04 浏览:5次 >En<

阅读说明:本技术 一种基于yolov3和CNN的盘头标识识别方法 (Pan head identification method based on yolov3 and CNN ) 是由 宣琦 赵佳康 朱城超 翔云 于 2019-09-09 设计创作,主要内容包括:一种基于yolov3和CNN的盘头标识识别方法,包括以下步骤:1)盘头图片获取:在实际的生产环境下,通过摄像头采集数据;2)盘头图片处理:先切割出原图中完整的盘头标识,用yolov3模型训练盘头标识的切割;3)再根据切割出的盘头标识图片切割出单个字符图片;4)用CNN卷积神经网络训练盘头标识字符的识别;5)系统调试:将盘头标识切割、字符切割和字符识别整合成一个系统;6)配置树莓派4的环境,移植系统,最后在树莓派上测试。本发明检测速度快和精度高,能提高生产效率和降低成本,具有较高的实际应用价值。(A disc head identification recognition method based on yolov3 and CNN comprises the following steps: 1) pan head picture acquisition: acquiring data through a camera in an actual production environment; 2) pan head picture processing: firstly, cutting out a complete pan head mark in an original image, and training the cutting of the pan head mark by using a yolov3 model; 3) cutting out a single character picture according to the cut-out coiled hair identification picture; 4) training the identification of the pan head identification character by using a CNN convolutional neural network; 5) debugging the system: integrating the cutting of the coiled head mark, the cutting of characters and the recognition of the characters into a system; 6) and (4) configuring the environment of the raspberry pi 4, transplanting the system, and finally testing on the raspberry pi. The invention has the advantages of high detection speed and high precision, can improve the production efficiency and reduce the cost, and has higher practical application value.)

一种基于yolov3和CNN的盘头标识识别方法

技术领域

本发明涉及深度学习、计算机视觉、目标检测、文字识别、嵌入式系统,特别是一种基于yolov3和CNN的盘头标识识别方法。

背景技术

随着科学技术的快速发展,现代经编工业向高速生产、智能控制、多功能、简便使用、物联网设计等方向发展,在现代科技的推动下,经编产品的生产效率提高,产品质量也有提升。而经编机盘头是经编机上面很重要的一个零件,想要经编机高效率的工作,盘头的选择很重要。

由于纱线种类偏多,为方便管理提高生产效率,在每个盘头上都印刷上由大写英文字母和***数字组成的5字标识,可以通过识别盘头来区分不同种类的纱线。在实际工厂生产中盘头的识别还是通过人工来识别分类,存在的技术缺陷:准确率较低、生产效率较低。

发明内容

为了克服现有盘头通过人工来识别分类的准确率较低、生产效率较低的不足,本发明提供一种基于yolov3和CNN的盘头标识识别方法,在保证识别准确率的情况下,既能减少人工成本又可以有效地提高自动化生产效率。

本发明解决其技术问题所采用的技术方案如下:

一种基于yolov3和CNN的盘头标识识别方法,包括以下步骤:

S1:盘头图片获取:在实际的生产环境下,通过摄像头采集数据,分别采集在实际环境不同光线下印刷有红色标识的盘头;

S2:盘头图片处理:先切割出原图中完整的盘头标识,用yolov3模型训练盘头标识的切割;

S3:再根据切割出的盘头标识图片切割出单个字符图片;

S4:用CNN卷积神经网络训练盘头标识字符的识别;

S5:系统调试:将盘头标识切割、字符切割和字符识别整合成一个系统;

S6:配置树莓派4的环境,移植系统,最后在树莓派上调试。

进一步,所述步骤S1中,搭建实际的系统平台,固定摄像头位置,根据盘头滚过的触发指令让摄像头拍照,并保存为JPG格式。

再进一步,所述步骤S2包括以下步骤:

S2-1:首先制作训练用的数据集,收集包含盘头的图片,将部分图片作为训练集,通过人工标注软件Labelimg人工标注盘头标识的边框,标签类别标为“biaozhi”,每一张图片都有一个相应的名字生成对应xml文件,将图片和xml文件做成VOC数据集格式,并且需要生成训练测试时用的train.txt,val.txt,test.txt和trainval.txt文件;

S2-2:所述yolov3模型中,yolov3使用的特征提取网络是DarkNet53,这个网络由残差单元叠加而成,将盘头原图作为神经网络的输入,首先通过特征提取网络,输出N*N的卷积特征图,生成N*N个gird cell,再经过预测层anchor boxes输出目标的类别和坐标。Bounding box坐标(zx,zy,zw,zh)预测计算公式如下:

zx=σ(qx)+cx

zy=σ(qy)+cy

Figure BDA0002195962860000021

Figure BDA0002195962860000022

其中qx,qy,qw,qh为yolov3每个Bounding box预测的中心点坐标与预测框的宽、高,cx,cy为框的中心坐标所在grid cell网格的坐标偏移量,pw,ph为预测前anchor的宽高,首先确定groundtruth中的目标中心坐标落在哪个Grid cell,然后根据该Grid cell来预测目标,yolov3中每个grid cell有三个anchor,在计算预测坐标zx,zy,zw,zh的loss时,选择三个anchor中置信度最高的来计算groundtruth的loss;

目标类别损失Lcla(o,c)采用的是二值交叉熵损失,其中oij∈{0,1},表示预测目标边界框i是否存在目标,

Figure BDA0002195962860000023

表示网络预测目标边界框i内存在目标的sigmoid概率,计算公式如下所示:

最后对预测的目标进行NMS处理,最后保留目标概率最高的矩形框,并且输出其矩形框的顶点坐标;

S2-3:根据训练好的模型切割出盘头标识和输出的顶点坐标,通过盘头标志长宽比筛选目标图片,将筛选出来的图片通过OpenCV透视变换进行矫正,透视变换的计算公式如下:

Figure BDA0002195962860000031

式中src()是输入矫正前图片的顶点坐标,dst()是输出矫正后的顶点坐标,M是3*3的变换矩阵,应用OpenCV里的getPerspectiveTransform()函数计算变换矩阵M。

更进一步,所述步骤3包括以下步骤:

S3-1:首先将经过矫正的目标标识图片进行降噪处理;

S3-2:将去噪后的图片通过二值化和HSV红色提取进行叠加得到最后的二值化图片;

S3-3:将得到的二值化图片进行分割单个字符,图片是一个0-1矩阵,其中0是背景1是字符,根据每一列的0-1数来切割,将每一列的1和0的个数分别统计起来,根据每一列的0-1总和变换来切割字符,将分割好的5个字符依次添加到一个列表保证顺序不会乱。

再进一步,上述步骤4包括以下步骤:

S4-1:将切割好的单个字符,作为CNN字符识别模型训练的数据集,共有10个数字和24个大写字母34个类,不包括字母“O”和“I”;

S4-2:根据制作好的数据集训练CNN网络。

再进一步,所述步骤S5的过程如下:将获取盘头标识,切割标识单个字符和字符识别整合到一个系统,先根据训练好的yolov3模型获取原图中的盘头标识,通过筛选切割的标识的长宽比,保留最佳标识图片,将获取到的盘头标识切割出每个字符,取得单个字符切割后的顺序,再根据盘头文字顺序传入训练好的CNN模型,识别各个字符,得到完整的盘头标识输出。

所述步骤S6中,配置好树莓派4所需的Python3、Tensorflow和OpenCV等环境,将整合后的系统移植到树莓派上,在树莓派上调试。

本发明根据计算机技术设计了一套能自动识别盘头标识的嵌入式系统,这样既能降低人工成本又能提高自动化生产效率。该识别系统主要基于Tensorflow深度学***台树莓派4上运行。

本发明的有益效果为:在保证速度和准确率的情况下,yolov3能够适应光线的变化对盘头标志进行获取,这是明显优于传统图像处理方法的,CNN神经网络的分类在精度上也要比传统方法好,主要这整套系统能提高生产效率,降低生产成本。

附图说明

图1为本发明实施例的系统流程图;

图2为本发明实施例的yolov3的结构流程图;

图3为本发明实施例的CNN算法流程图。

具体实施方式

下面结合说明书附图对本发明的具体实施方式作进一步详细的描述。

参照图1-图3,一种基于yolov3和CNN的盘头标识识别方法,包括以下步骤:

S1:盘头图片获取:在实际的生产环境下,通过摄像头采集数据,分别采集在实际环境不同光线下印刷有红色标识的盘头;

S2:盘头图片处理:先切割出原图中完整的盘头标识,用yolov3模型训练盘头标识的切割;

S3:再根据切割出的盘头标识图片切割出单个字符图片;

S4:用CNN卷积神经网络训练盘头标识字符的识别;

S5:系统调试:将盘头标识切割、字符切割和字符识别整合成一个系统;

S6:配置树莓派4的环境,移植系统,最后在树莓派上调试。

进一步,所述步骤S1中,搭建实际的系统平台,固定摄像头位置,根据盘头滚过的触发指令让摄像头拍照,并保存为JPG格式。

再进一步,所述步骤S2包括以下步骤:

S2-1:首先制作训练用的数据集,收集包含盘头的图片,将部分图片作为训练集,通过人工标注软件Labelimg人工标注盘头标识的边框,标签类别标为“biaozhi”,每一张图片都有一个相应的名字生成对应xml文件,将图片和xml文件做成VOC数据集格式,并且需要生成训练测试时用的train.txt,val.txt,test.txt和trainval.txt文件;

S2-2:所述yolov3模型中,yolov3使用的特征提取网络是DarkNet53,这个网络由残差单元叠加而成。将盘头原图作为神经网络的输入,首先通过特征提取网络,输出N*N的卷积特征图,生成N*N个gird cell,再经过预测层anchor boxes输出目标的类别和坐标。Bounding box坐标(zx,zy,zw,zh)预测计算公式如下:

zx=σ(qx)+cx

zy=σ(qy)+cy

Figure BDA0002195962860000051

Figure BDA0002195962860000052

其中qx,qy,qw,qh为yolov3每个Bounding box预测的中心点坐标与预测框的宽、高,cx,cy为框的中心坐标所在grid cell网格的坐标偏移量,pw,ph为预测前anchor的宽高;首先确定groundtruth中的目标中心坐标落在哪个Grid cell,然后根据该Grid cell来预测目标,yolov3中每个grid cell有三个anchor,在计算预测坐标zx,zy,zw,zh的loss时,选择三个anchor中置信度最高的来计算groundtruth的loss;

目标类别损失Lcla(o,c)采用的是二值交叉熵损失,其中oij∈{0,1},表示预测目标边界框i是否存在目标,

Figure BDA0002195962860000053

表示网络预测目标边界框i内存在目标的sigmoid概率,计算公式如下所示:

Figure BDA0002195962860000054

Figure BDA0002195962860000055

最后对预测的目标进行NMS处理,最后保留目标概率最高的矩形框,并且输出其矩形框的顶点坐标;

S2-3:根据训练好的模型切割出盘头标识和输出的顶点坐标,可以通过盘头标志大致长宽比筛选目标图片,将筛选出来的图片通过OpenCV透视变换进行矫正,透视变换的计算公式如下:

Figure BDA0002195962860000061

式中src()是输入矫正前图片的顶点坐标,dst()是输出矫正后的顶点坐标,M是3*3的变换矩阵,应用OpenCV里的getPerspectiveTransform()函数计算变换矩阵M。

更进一步,所述步骤3包括以下步骤:

S3-1:首先将经过矫正的目标标识图片进行降噪处理;

S3-2:将去噪后的图片通过二值化和HSV红色提取进行叠加得到最后的二值化图片;

S3-3:将得到的二值化图片进行分割单个字符,图片是一个0-1矩阵,其中0是背景1是字符,根据每一列的0-1数来切割,将每一列的1和0的个数分别统计起来,根据每一列的0-1总和变换来切割字符,将分割好的5个字符依次添加到一个列表保证顺序不会乱。

再进一步,所述步骤4包括以下步骤:

S4-1:将切割好的单个字符,作为CNN字符识别模型训练的数据集,共有10个数字和24个大写英文字母,不包括字母“O”和“I”;

S4-2:根据制作好的数据集训练CNN网络。

再进一步,所述步骤5的过程如下:将获取盘头标识,切割标识单个字符和字符识别整合到一个系统,先根据训练好的yolov3模型获取原图中的盘头标识,通过筛选切割的标识的长宽比,保留最佳标识图片,将获取到的盘头标识切割出每个字符,取得单个字符切割后的顺序,再根据盘头文字顺序传入训练好的CNN模型,识别各个字符,得到完整的盘头标识输出。

所述步骤6中,配置好树莓派4所需的Python3、Tensorflow和OpenCV等环境,将整合后的系统移植到树莓派上,在树莓派上调试。

如上所述为本发明基于yolov3目标检测和应用神经网络的盘头标识识别的方法的实施例介绍,本发明通过训练yolov3模型和CNN模型来识别盘头标识,在保证速度和精度的情况下,大大的提高了生产效率,降低生产成本。

以上所述,仅为本发明专利较佳的实施例,对本发明而言仅仅是说明性,而非限制性,任何熟悉本技术领域的技术人员在本发明专科所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:发票印章识别的方法、装置、计算机设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!