一种基于卷积神经网络对图像中的铅笔进行精确计数的方法与流程

文档序号:21369122发布日期:2020-07-04 04:45阅读:362来源:国知局
一种基于卷积神经网络对图像中的铅笔进行精确计数的方法与流程

本发明属于批量物品制造领域,尤其涉及一种基于卷积神经网络对图像中的铅笔进行精确计数的方法。



背景技术:

铅笔是是一种用来书写以及绘画素描专用的笔类,历史悠久。铅笔制造行业在当今制造业高度发达的时代也已屡见不鲜。针对市场需要,很多铅笔制造厂可以生产出不同外观、颜色、用途以及型号的铅笔,并且生产量巨大,高达上千万甚至数亿。经过机器生产的铅笔外观上完全相同,由于生产的数量级巨大,精确统计生产的铅笔数目成为生产厂家的一大困难。单一的利用传送带计数不够精确,依赖人工进行铅笔计数又十分耗费精力,并且效率极低。同时,由于铅笔的类型众多,不同类型的铅笔外观也大大不同,传统的图像处理方法针对某一类别的铅笔可能效果很好,但是无法做到通用。而精确、高效的统计出产品的数目对厂家十分重要,是厂家做出适合发展和销售的合理预测和规划的重要数据支持。



技术实现要素:

发明目的:针对上述现有方法存在的问题和不足,本发明旨在提供一种基于卷积神经网络对图像中的铅笔进行精确计数的方法,通过该方法可以利用卷积神经网络模型实现对多种不同类型的铅笔进行计数,同时提高计数的精度和速度。

技术方案:为实现本发明的目的,本发明所采用的技术方案如下:一种基于卷积神经网络对图像中的铅笔进行精确计数的方法,该方法包括以下步骤:

(1)搭建yolo神经网络模型;

(2)对生产线上俯拍采集获得的铅笔图片进行预处理;

(3)对神经网络结构参数进行设定和训练参数初始化;

(4)将多种不同类型的铅笔图像作为一类数据进行数据增强;

(5)对获取的铅笔图像进行数据训练,得到网络权重和偏置;

(6)将待计数的铅笔图像输入神经网络模型,得到铅笔的精确数目。

其中,在步骤(1)中,所述搭建yolo神经网络模型的结构如下:

第一层为卷积层,首先进行批量归一化,经过卷积核提取特征后,输出依次经过leakyrelu函数、2×2最大池化层;

第二层为卷积层,首先进行批量归一化,经过卷积核提取特征后,输出依次经过leakyrelu函数、2×2最大池化层;

第三层为卷积层,首先进行批量归一化,经过卷积核提取特征后,输出依次经过leakyrelu函数、2×2最大池化层;

第四层为卷积层,首先进行批量归一化,经过卷积核提取特征后,输出依次经过leakyrelu函数、2×2最大池化层;

第五层为卷积层,首先进行批量归一化,经过卷积核提取特征后,输出依次经过leakyrelu函数、2×2最大池化层;

第六层为卷积层,首先进行批量归一化,经过卷积核提取特征后,输出依次经过leakyrelu函数、2×2最大池化层;

第七层为卷积层,首先进行批量归一化,经过卷积核提取特征后,输出经过leakyrelu函数;

第八层为卷积层,首先进行批量归一化,经过卷积核提取特征后,输出经过leakyrelu函数;

第九层为卷积层,首先进行批量归一化,经过卷积核提取特征后,输出经过leakyrelu函数;

第十层为卷积层,经过卷积核提取特征后,输出经过linear函数;

第十一层为yolo层,使用6个anchor,进行数据增强和多尺度训练,最终得到目标的数目。

其中,在步骤(2)中,对生产线上俯拍采集获得的铅笔图片进行预处理方法如下:

(2.1)将铅笔所在的区域从原始图像中裁剪出来;

(2.2)由于铅笔图像的尺寸较大,直接作为网络的输入不仅会导致内存溢出,而且数据量较少。因此对(2.1)中裁剪得到的铅笔图像进行二次裁剪,裁剪为符合神经网络模型输入大小的图像作为网络的输入,不仅可以有效地加大训练集的数量,同时,由于裁剪会导致边缘部分的铅笔轮廓不再完整,一定程度上也增强了数据,可以提高模型的泛化能力。

其中,在步骤(3)中,所述yolo网络结构参数设定和训练参数初始化如下:

(3.1)网络的输入图像大小为576*576*3,训练的batch大小设置为1,max_batches的大小设置为500200;

(3.2)网络中第一层、第二层和第六层的卷积层和最大池化层的步长设置为1,卷积层采用边缘补0的方式保持图像尺寸不变;

(3.3)网络中第三层、第四层和第五层的卷积层步长为1,最大池化层的步长为2,卷积层采用边缘补0的方式保持图像尺寸不变;

(3.4)初始学习率为1×e^(-3),调整学习率的策略为迭代固定的次数之后以一定的比例降低学习率,具体为20000次迭代后将学习率调整为1×e^(-4),450000次迭代后将学习率调整为1×e^(-5)。

其中,在步骤(4)中,所述对输入图像数据进行图像增强方法如下:

(4.1)采用对输入铅笔图像进行翻转和附加高斯噪声进行图像增强;

(4.2)采用将多种不同类型的铅笔图像作为输入进行图像增强;

其中,图像增强是为了增加训练的数据量,提高模型的泛化能力和鲁棒性。

其中,所述多种不同类型的铅笔指的是俯视视角下,铅笔笔芯为红色、绿色、蓝色、黄色、黑色等多种颜色、铅笔形状为六边形或圆形、笔芯形状为圆形或三角形的多种类别的铅笔。

其中,在步骤(5)中,所述对获取的铅笔图像进行数据训练的过程如下:

(5.1)在训练前,首先将搭建的神经网络在公开数据集voc2007和voc2012上进行预训练;

(5.2)将进行数据增强的铅笔图像作为神经网络的输入;

(5.3)损失函数由定位误差、置信误差和分类误差组成,对不同的部分采用了不同的权重值。

其中,定位误差指的是:

(1)预测的铅笔的中心点位置和真实的铅笔的中心点位置之间的误差;

(2)预测的铅笔的边框的大小和真实的铅笔边框的大小之间的误差。

其中,置信误差指的是:

(1)预测图像中存在铅笔的情况下,预测的铅笔的置信度和真实的铅笔的置信度的之间的误差;

(2)预测图像中不存在铅笔的情况下,预测的铅笔的置信度和真实的铅笔的置信度之间的误差。

其中,分类误差指的是预测的铅笔数量和真实的铅笔数量之间的误差。

其中,不同的权重指的是定位误差、置信误差和分类误差的不同的系数,具体的系数大小即为网络的超参数值,需要经过调试得到最优解。

(5.4)通过训练和交叉验证,得到网络的超参数值;将网络的超参数值进行重新设置,设置为学习得到的最优值,再次训练得到最终的神经网络模型。

其中,在步骤(6)中,所述得到铅笔的精确数目的方法如下:

(6.1)将待计数的铅笔图像经过步骤(2)中所述的预处理过程后作为模型的输入;

(6.2)该模型将对图像中的铅笔位置进行预测并得出概率,当概率大于一定值的时候认定为铅笔并进行计数;

(6.3)将所有预处理后的图像中铅笔数目进行累加,即为输入的铅笔原始图像的铅笔总数目,作为网络最后的输出。

有益效果:与现有技术相比,本发明的技术方案具有以下有益技术效果:

1、本发明利用yolo神经网络模型进行铅笔计数,能够对密集的、多种类型的铅笔图像进行计数,同时具有很高的计数精度以及良好的实时性效果;

2、本发明通过对图像进行翻转和附加高斯噪声的图像增强方法,对多种类型的铅笔进行训练,提高了卷积神经网络模型的泛化能力,提高了计数的准确率和模型的适用性;

3、本发明为铅笔制造厂提供了生产数字化,代替了人工计数,适用于多种类型的铅笔,便于生产规划分析,大幅提高了生产效率。

附图说明

图1是本发明的一种基于卷积神经网络对图像中的铅笔进行精确计数的方法的流程图;

图2是本发明采用的卷积神经网络结构图;

图3是本发明的常规情况铅笔图像;

图4是本发明的常规情况经过处理后的最终图像。

具体实施方式

下面结合附图和具体实施例,对本发明做进一步说明。

本发明公开的一种基于卷积神经网络对图像中的铅笔进行精确计数的方法,其流程如图1所示,该方法的步骤为:

(1)搭建卷积神经网络模型

图2展示的是本发明采用的yolo神经网络结构图,首先针对不同类型的密集铅笔图像,本发明搭建的yolo神经网络结构如下:

第一层为卷积层,首先进行批量归一化,卷积核大小为3*3,步长为1,输入大小为576*576*3,输出依次经过leakyrelu函数、2×2最大池化层,步长为1,输出大小为576*576*16;

第二层为卷积层,首先进行批量归一化,卷积核大小为3*3,步长为1,输入大小为576*576*16,输出依次经过leakyrelu函数、2×2最大池化层,步长为1,输出大小为576*576*16;

第三层为卷积层,首先进行批量归一化,卷积核大小为3*3,步长为1,输入大小为576*576*16,输出依次经过leakyrelu函数、2×2最大池化层,步长为2,输出大小为288*288*16;

第四层为卷积层,首先进行批量归一化,卷积核大小为3*3,步长为1,输入大小为288*288*16,输出依次经过leakyrelu函数、2×2最大池化层,步长为2,输出大小为144*144*32;

第五层为卷积层,首先进行批量归一化,卷积核大小为3*3,步长为1,输入大小为144*144*32,输出依次经过leakyrelu函数、2×2最大池化层,步长为2,输出大小为72*72*64;

第六层为卷积层,首先进行批量归一化,卷积核大小为3*3,步长为1,输入大小为72*72*64,输出依次经过leakyrelu函数、2×2最大池化层,步长为1,输出大小为72*72*128;

第七层为卷积层,首先进行批量归一化,卷积核大小为3*3,步长为1,输入大小为72*72*128,输出经过leakyrelu函数,输出大小为72*72*256;

第八层为卷积层,首先进行批量归一化,卷积核大小为1*1,步长为1,输入大小为72*72*256,输出经过leakyrelu函数,输出大小为72*72*256;

第九层为卷积层,首先进行批量归一化,卷积核大小为3*3,步长为1,输入大小为72*72*256,输出经过leakyrelu函数,输出大小为72*72*256;

第十层为卷积层,卷积核大小为1*1,步长为1,输入大小为72*72*256,输出经过linear函数,输出大小为72*72*36;

第十一层为yolo层,使用6个anchor,通过抖动增加噪声来抑制过拟合,进行多尺度训练,最终得到目标的数目。

(2)训练数据获取

在生产线上俯拍采集获得的铅笔图片用于模型训练之前,首先需要对采集到的图像进行预处理,图像预处理的方法包括以下步骤:

(2.1)将铅笔所在的区域从原始图像中裁剪出来;

(2.2)由于铅笔图像的尺寸较大,直接作为网络的输入不仅会导致内存溢出,而且数据量较少。因此对(2.1)中裁剪得到的铅笔图像进行二次裁剪,裁剪为符合神经网络模型输入大小的图像作为网络的输入,不仅可以有效地加大训练集的数量,同时,由于裁剪会导致边缘部分的铅笔轮廓不再完整,一定程度上也增强了数据,可以提高模型的泛化能力。

(3)网络结构参数设定和训练参数初始化,本发明中网络结构参数的设定和训练参数初始化如下:

(3.1)网络的输入图像大小为576*576*3,训练的batch大小设置为1,max_batches的大小设置为500200;

(3.2)网络中第一层、第二层和第六层的卷积层和最大池化层的步长设置为1,卷积层采用边缘补0的方式保持图像尺寸不变;

(3.3)网络中第三层、第四层和第五层的卷积层步长为1,最大池化层的步长为2,卷积层采用边缘补0的方式保持图像尺寸不变;

(3.4)初始学习率为1×e^(-3),调整学习率的策略为迭代固定的次数之后以一定的比例降低学习率,具体为20000次迭代后将学习率调整为1×e^(-4),450000次迭代后将学习率调整为1×e^(-5);momentum值设置为0.9,权重衰减正则项decay设置为0.0005,防止过拟合。

(4)图像增强

(4.1)采用对输入铅笔图像进行翻转和附加高斯噪声进行图像增强;

(4.2)采用将多种不同类型的铅笔图像作为输入进行图像增强;

其中,图像增强是为了增加训练的数据量,提高模型的泛化能力和鲁棒性。

其中,所述多种不同类型的铅笔指的是俯视视角下,铅笔笔芯为红色、绿色、蓝色、黄色、黑色等多种颜色、铅笔形状为六边形或圆形、笔芯形状为圆形或三角形的多种类别的铅笔。

(5)模型训练

(5.1)在训练前,首先将搭建的神经网络在公开数据集voc2007和voc2012上进行预训练;

(5.2)将进行数据增强的铅笔图像作为神经网络的输入;

(5.3)损失函数由定位误差、置信误差和分类误差组成,对不同的部分采用了不同的权重值。

其中,定位误差指的是:

(1)预测的铅笔的中心点位置和真实的铅笔的中心点位置之间的误差;

(2)预测的铅笔的边框的大小和真实的铅笔边框的大小之间的误差。

其中,置信误差指的是:

(1)预测图像中存在铅笔的情况下,预测的铅笔的置信度和真实的铅笔的置信度的之间的误差;

(2)预测图像中不存在铅笔的情况下,预测的铅笔的置信度和真实的铅笔的置信度之间的误差。

其中,分类误差指的是预测的铅笔数量和真实的铅笔数量之间的误差。

其中,不同的权重指的是定位误差、置信误差和分类误差的不同的系数,具体的系数大小即为网络的超参数值,需要经过调试得到最优解。

(5.4)通过训练和交叉验证,得到网络的超参数值;将网络的超参数值进行重新设置,设置为学习得到的最优值,再次训练得到最终的神经网络模型。

(6)铅笔计数

(6.1)将待计数的铅笔图像经过步骤(2)中所述的预处理过程后作为模型的输入;

(6.2)该模型将对图像中的铅笔位置进行预测并得出概率,当概率大于一定值的时候认定为铅笔并进行计数;

(6.3)将所有预处理后的图像中铅笔数目进行累加,即为输入的铅笔原始图像的铅笔总数目,作为网络最后的输出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1