一种基于迁移学习的小样本二维码标识识别方法
未命名
09-24
阅读:65
评论:0
1.本发明涉及agv调度领域,具体为一种基于迁移学习的小样本二维码标识识别方法。
背景技术:
2.agv调度系统,是一个能同时对多部agv实行中央监管、控制和调度的系统,主要用于agv数量比较多、运输路线较多、且运输较频繁复杂的应用场景,可配合agv叫料系统使用,也可独立使用,使物料运输系统更加人性化、自动化、无人化。agv调度系统的主要功能包括:agv任务调度、路径规划、交通管制、与设备对接、与mes或erp对接等。
3.二维码是一种具有大容量信息和容错的光学符号,已经广泛应用在芯片生产,3c数码制造上面。它具有编码可控,数据存储容量大,成本低廉的优势。随着agv行业的兴起,agv二维码导航成为agv行业的新兴技术。将成熟的二维码技术应用在agv导航上,将大大节省agv的制造成本和运营成本。那么它是怎么实现的呢?我们常用在agv导航上的二维码是指qr和dm两种编码。理论上2种编码都可以应用在agv行业,特别是仓储应用的agv车的导航。qr码和dm码都具有制造成本低,抗纠错能力强的优势。agv车在实际运营时,只需要使用特定的材料打印对应的二维码即可。
4.具体工作流程为
5.1.传感器读取到二维码时,输出传感器中心与二维码中心的距离和偏转角度
6.2.通过控制根据二维码传感器的扫描获取到地面铺设的二维码图像坐标系中的位置,把采集到的二维码图像的位置坐标信息传送给agv控制器
7.3.控制器计算图像传感器提供的坐标数据,确定图像在地图上的位置;调度系统发送给agv小车导航路径指令
8.4.agv小车根据接收到的路径指令,建立局部导航坐标系并计算初始位置
9.5.agv控制器通过编码器信息反馈量控制轮子转动圈数,使得agv小车依次行驶至导航路径指令序列中的每个二维码图像标签,以完成导航路径指令
10.6.到达目的地时扫描目的地二维码确认到达
11.由于成本低廉,实施方便的优势使得目前agv二维码导航成为agv行业最为常用的解决方案之一。但是二维码的识别精度和速度目前依然有可以提升的方向。为了解决二维码数据量不足,识别精准度低,识别速度慢等问题。
技术实现要素:
12.本发明的目的是提供一种基于迁移学习的小样本二维码标识识别方法,基于alexnet卷积神经网路和迁移学习的二维码标识方法用于为agv二维码导航识别提供技术支持。
13.本发明为实现上述目的所采用的技术方案是:
14.一种基于迁移学习的小样本二维码标识识别方法,包括以下步骤:
15.采集不同情况下的agv二维码图像,构建agv二维码图像数据集,并将数据集分为训练集和测试集;
16.构建agv二维码图像识别卷积神经网络;
17.通过训练集中的数据对卷积神经网络进行训练;
18.将实时采集的agv二维码图像输入到训练好的卷积神经网络中,完成agv二维码的识别。
19.所述不同情况包括:正常agv二维码图像、破损agv二维码图像、污渍agv二维码图像、左侧旋agv二维码图像以及右侧旋agv二维码图像。
20.使用小波变换方法对训练集和测试集进行去噪处理。
21.所述agv二维码图像识别卷积神经网络为alexnet网络结构。
22.所述通过训练集中的数据对卷积神经网络进行训练,包括以下步骤:
23.优化卷积神经网络的卷积核大小;
24.优化卷积神经网络的激活函数;
25.优化卷积神经网络的卷积层层数;
26.使用迁移学习方法对卷积神经网络进行优化。
27.所述优化卷积神经网络的卷积核大小,具体为:
28.在原始alexnet网络结构上修改卷积核的不同大小,使用训练集和测试集数据分别输入到不同大小卷积核的卷积神经网络,并将每个卷积神经网络输出进行对比验证,选择准确率最高的卷积神经网络使用的卷积核大小作为优化后的卷积神经网络的卷积核大小。
29.所述优化卷积神经网络的激活函数,具体为:
30.在确定了卷积神经网络的卷积核后,修改不同的激活函数,使用训练集和测试集数据分别输入到不同激活函数的卷积神经网络,并将每个卷积神经网络输出进行对比验证,选择准确率最高的卷积神经网络使用的激活函数作为优化后的卷积神经网络的激活函数。
31.所述优化卷积神经网络的卷积层层数,具体为:
32.在确定了卷积神经网络的卷积核和激活函数后,修改卷积层层数,使用训练集和测试集数据分别输入到不同卷积层层数的卷积神经网络,并将每个卷积神经网络输出进行对比验证,选择准确率最高的卷积神经网络使用的卷积层层数作为优化后的卷积神经网络的卷积层层数。
33.所述使用迁移学习方法对卷积神经网络进行优化,具体为:
34.保持已经训练好的卷积神经网络的卷积层的结构不变,向卷积层载入权重与参数;
35.使用设定好节点数的全连接层替换原本的全连接层,使其与卷积层构成新的卷积神经网络,并对其进行训练,所述节点数与待识别agv二维码图像的种类数量相同。
36.对新的卷积神经网络进行训练包括两种训练方式,一种方式为冻结卷积层,只训练全连接层,另一种方式为训练卷积神经网络的卷积层和全连接层。
37.本发明具有以下有益效果及优点:
38.1.本发明可以大幅提升二维码识别的准确性。
39.2.本发明可以大幅提升二维码识别的速度。
40.3.本发明可以解决目前二维码数据量小导致识别效果不好的问题。
附图说明
41.图1为本发明的流程图;
42.图2为alexnet卷积神经网络结构图;
43.图3为sigmoid激活函数图;
44.图4为relu激活函数图;
45.图5为tanh激活函数图;
46.图6为两个7*7卷积核代替一个11*11卷积核在训练集和测试集上面的准确率示意图;
47.图7为激活函数为relu时在训练集和测试集上面的准确率示意图;
48.图8为卷积层层数为六层时在训练集和测试集上面的准确率示意图;
49.图9为new-tl-alexnet网络模型在训练集和测试集上面的准确率示意图。
具体实施方式
50.下面结合附图及实施例对本发明做进一步的详细说明。
51.本发明包括如下步骤:
52.步骤一、采集agv二维码导航识别技术中常见的二维码图像,每种agv二维码图像至少100张,其中破损agv二维码图像至少100张,其中有污渍二维码图像至少100张,其中左侧旋agv二维码图像至少100张,其中右侧旋agv二维码图像至少100张。
53.步骤二、建立数据库;
54.选择每种不同种类agv二维码图像100张,建立小型数据样本;共分为四类,每一类至少100张图片,共计至少400张agv二维码图像,并将每种agv二维码图像分别进行标签标记,标签名称分别依次为0、1、2、3;另选择正常agv二维码图像100张进行数据集扩充,扩充后的无病害图像总量达到至少500张,并对正常agv二维码图像进行标签标注,标签名称为5,最终建立完善agv二维码图像数据集,命名该数据集为agv-qrcode-500;
55.步骤三、去除agv二维码图像噪声
56.小波变换去噪方法;信噪比snr(signal-to-noise ratio)表示信号被噪声污染的程度,当snr较小时,实际信号被淹没在噪声中,造成实际有用信号识别困难,这时,必须先使用有效的信噪分离技术进行去噪,才能进行后续的分析工作。使用小波变换进行去噪,其效果比传统的去噪技术有很大的优势,对agv二维码图像进行小波变换去噪,可以使其去除一部分由于污渍而导致的识别错误等问题出现,大大提升了识别的准确率。
57.步骤四、建立用于agv二维码图像识别的卷积神经网络
58.alexnet网络结构;alexnet网络结构在整体上类似于lenet,都是先卷积然后在全连接。但在细节上有很大不同。alexnet更为复杂。alexnet有60million个参数和65000个神经元,五层卷积,三层全连接网络,最终的输出层是1000通道的softmax。alexnet利用了两块gpu进行计算,大大提高了运算效率。
59.4.1、第一层:卷积层1,输入为224*224*3的图像,卷积核的数量为96,两个gpu分别
有48个卷积核;卷积核的大小为11*11*3;stride=4,stride表示的是步长,pad=0,表示不扩充边缘;卷积后的图形大小为
60.wide=(224+2*padding-kernel_size)/stride+1=54
61.height=(224+2*padding-kernel_size)/stride+1=54
62.然后进行lrn归一化处理,后面跟着池化pool_size=(3,3),stride=2,pad=0最终获得第一层卷积的feature map;
63.4.2、第二层:卷积层2,输入为上一层卷积的feature map,卷积的个数为256个,两个gpu分别有128个卷积核。卷积核的大小为:5*5*48;pad=2,stride=1;然后做lrn归一化处理,最后max_pooling,pool_size=(3,3),stride=2;
64.4.3、第三层:卷积3,输入为第二层的输出,卷积核个数为384,kernel_size=(3*3*256),padding=1,第三层没有做lrn归一化处理和pool池化;
65.4.4、第四层:卷积4,输入为第三层的输出,卷积核个数为384,kernel_size=(3*3),padding=1,和第三层一样,没有lrn归一化处理和pool池化;
66.4.5、第五层:卷积5,输入为第四层的输出,卷积核个数为256,kernel_size=(3*3),padding=1。然后直接进行max_pooling,pool_size=(3,3),stride=2;
67.4.6、第6,7,8层是全连接层,每一层的神经元的个数为4096,最终输出softmax为1000,因为上面介绍过,imagenet这个比赛的分类个数为1000。全连接层中使用了relu和dropout。
68.步骤五、引入迁移学习思想解决agv二维码图像样本数量小的问题
69.迁移学习思想;迁移学习是把一个领域(即源领域)的知识,迁移到另外一个领域(即目标领域),使得目标领域能够取得更好的学习效果。通常,源领域数据量充足,而目标领域数据量较小,迁移学习需要将在数据量充足的情况下学习到的知识,迁移到数据量小的新环境中,迁移学习思想可以完美解决agv二维码图像样本数量小的问题,同时大幅提升识别的速度和准确率,提升模型的泛化能力,去除了过拟合现象的发生。
70.本发明以图1所示的整体框架流程图为基础,提出了一个基于迁移学习+优化alexnet卷积神经网络结构的agv二维码图像识别方法。
71.由于在数据采集过程中复杂的环境因素影响,本发明得到agv二维码图像存在图片失真、对比度不够等问题。同时由于数据集过小容易造成模型过拟合。为了解决上述问题,首先对图像进行数据增强和图片预处理;同时用玉米叶片病虫害数据集训练一个alexnet卷积神经网络结构,然后对其进行迁移学习;将迁移学习得到的权重导入新构建的改进的alexnet卷积神经网络结构中,冻结其中用于特征提取的结构,再用agv二维码图像数据集(agv-qrcode-500)对其进行训练。
72.本发明实施例中的迁移学习的小样本二维码标识的识别方法,该方法包括以下步骤:
73.步骤一、采集agv二维码导航识别技术中常见的二维码图像
74.实地采集地上的agv二维码图像,使用iphone进行拍摄,采用不同的拍摄角度,保留破损的有污渍的agv二维码图像,这一步的目的是:保证agv在二维码图像位置出现偏移或者二维码图像有污渍和有破损的情况下依然可以识别前进路径。
75.步骤二、建立数据库;
76.命名该数据集为agv-qrcode-500,共计500张图片,包含:正常agv二维码图像、破损agv二维码图像、污渍agv二维码图像、左侧旋agv二维码图像、右侧旋agv二维码图像;该数据集如表1分布
77.表1:agv-qrcode-500数据分布表
78.agv二维码图像种类数量编号正常agv二维码图像1000破损agv二维码图像1001污渍agv二维码图像1002左侧旋agv二维码图像1003右侧旋agv二维码图像1004
79.对源数据集的尺度变换及划分,在已经保证筛选出的源类与目标类数据集具备一定局部相似性的情况下,将源类每一个类别的目标数据均进行尺度变换,使得源数据集的尺寸与目标数据集尺寸相匹配。对源数据集的尺度变换及划分,同时为了要保证训练集有充足的样本,因此训练集与测试集的比例设为7:3。
80.对目标类数据集的划分,所述目标类训练集的数量要少,且是新的不同于源数据集的类别,因此训练集与测试集的比例设为3:7。
81.步骤三、去除agv二维码图像噪声
82.小波变换方式去噪一般分为下面三个步骤:
83.步骤1:信号的小波分解。选择一个小波并确定一个小波分解的层次n,然后对信号进行n层小波分解计算。
84.步骤2:小波分解高频系数的阈值量化。对第1层到第n层的每一层高频系数(三个方向),选择一个阈值进行阈值量化处理.这一步是最关键的一步,主要体现在阈值的选择与量化处理的过程,在每层阈值的选择有很多自适应的方法,量化处理方法主要有硬阈值量化与软阈值量化,采用两种不同的方法,达到的效果是,硬阈值方法可以很好地保留信号边缘等局部特征,软阈值处理相对要平滑,但会造成边缘模糊等失真现象。
85.步骤3:信号的小波重构。根据小波分解的第n层的低频系数和经过量化处理后的第1层到第n层的高频系数,进行信号的小波重构。
86.该方法可以对agv二维码图像进行小波变换去噪,可以使其去除一部分由于污渍而导致的识别错误等问题出现,大大提升了识别的准确率。
87.步骤四、建立用于agv二维码图像识别的卷积神经网络
88.如图2所示,alexnet网络结构;alexnet网络结构在整体上类似于lenet,alexnet网络结构是在lenet网络结构的基础上加深了网络的结构,学习更丰富更高维的图像特征。alexnet网络结构的优势体现在1.更深的网络结构;2.使用层叠的卷积层,即卷积层+卷积层+池化层来提取图像的特征;3.使用dropout抑制过拟合;4.使用数据增强data augmentation抑制过拟合;5.使用relu替换之前的sigmoid的作为激活函数;6.多gpu训练。因为上述优势本发明采用alexnet卷积神经网络结构为基础进行标识的识别,将agv二维码图像数据集(agv-qrcode-500)的图像输入进alexnet卷积神经网络结构中的输入层中去。
89.优化alexnet卷积神经网络结构,主要步骤为:
90.步骤1:优化alexnet卷积神经网络结构的卷积核大小
91.卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核
92.具体实现为:在原始alexnet网络结构上改进卷积核大小,并进行对比验证。本文选择卷积核大小为四个3*3大小,三个5*5大小,两个7*7和一个11*11大小。
93.原始alexnet网络结构中卷积核大小为11*11,但是在实际实验中发现,卷积核大小为两个7*7卷积核代替一个11*11卷积核时识别准确率最高,迭代500次后,其在训练集和测试集上面的准确率达到了100%和90.58%,从图6中看出小卷积核的堆叠可以表达出输入数据中更多强力特征,参数减少的同时准确率提升。
94.步骤2:优化alexnet卷积神经网络结构的激活函数
95.主要的激活函数为relu激活函数,tanh激活函数,sigmoid激活函数;
96.其中sigmoid激活函数,其表达式为绘制出来的函数图像如图3所示,其中横坐标为x轴,纵坐标为y轴。sigmoid激活函数是使用范围最广的一类激活函数,具有指数函数形状,它在物理意义上最为接近生物神经元。此外,(0,1)的输出还可以被表示作概率,或用于输入的归一化,代表性的如sigmoid交叉熵损失函数。可以看出,sigmoid激活函数连续,光滑,严格单调,以(0,0.5)中心对称,是一个非常良好的阈值函数。
97.其中relu激活函数,其表达式为relu=max(0,x)。绘制出来的函数图像如图4所示,其中横坐标为x轴,纵坐标为y轴。从图中可以看到,当x《0时,relu硬饱和,而当x》0时,则不存在饱和问题。所以,relu能够在x》0时保持梯度不衰减,从而缓解梯度消失问题。该函数可以直接以监督的方式训练深度神经网络,而无需依赖无监督的逐层预训练。然而,随着训练的推进,部分输入会落入硬饱和区,导致对应权重无法更新。这种现象被称为“神经元死亡”。与sigmoid类似,relu的输出均值也大于0,偏移现象和神经元死亡会共同影响网络的收敛性。
98.tanh激活函数,其表达式为绘制出来的函数图像如图5所示,其中横坐标为x轴,纵坐标为y轴。tanh也是一种非常常见的激活函数。与sigmoid相比,它的输出均值是0,使得其收敛速度要比sigmoid快,减少迭代次数。然而,从图5中可以看出,tanh一样具有软饱和性,从而造成梯度消失。
99.在确定了使用卷两个积核大小为7*7的卷积核后,修改其激活函数,常见的激活函数包括:relu激活函数,tanh激活函数,sigmoid激活函数等。本文对比了几种常见的激活函数应用在alexnet网络结构中对于agv二维码图像识别数据集的敏感度,当激活函数为relu激活函数时准确率最高,迭代500次后,其在训练集和测试集上面的准确率达到了100%和93.61%,从图7可以看出不同的激活函数对整体网络的影响很大,优秀的激活函数可以大幅提升训练准确率。
100.步骤3:优化alexnet卷积神经网络结构的卷积层层数
101.本文对比不同卷积层层数选出最适合本文研究内容的卷积层层数。由于alexnet网络结构本身有八层结构,其中卷积层层数有五层。所以这里只对比卷积层层数为四层,五层和六层。当卷积层层数为六层时,迭代500次后,训练集和测试集的准确率达到最高,分别为100%和94.94%,从图8可以看出对于alexnet网络结构进行网络层数的改进并不会获得比较好的效果,所以这里依然选择原始alexnet网络结构的五层卷积层作为实验基础。
102.步骤五、引入迁移学习思想解决agv二维码图像样本数量小的问题
103.迁移学习是将一个任务上训练好的卷积神经网络模型通过简单的调整使其适用于一个新的任务。训练好的卷积神经网络的卷积层可以对图像进行特征提取,提取到的特征向量再输入结构简单的全连接层就可以实现较好的识别分类,所以经过卷积层提取的特征向量可以作为图像的一个更加精简且表达能力更强的向量。于是,训练好的卷积层加上适合新任务的全连接层将组成新的网络模型,对新的网络模型稍加训练就可以处理新的分类识别任务。
104.迁移学习首先保持模型卷积层的结构不变,接着向卷积层载入训练好的权重与参数。然后设计适用于新任务的全连接层,接着用新设计的全连接层代替原本的全连接层,并与先前的卷积层组成新的卷积网络模型。最后用新图像数据集训练新模型,训练新模型有两种方式,一种方式为冻结卷积层,只训练全连接层,另一种方式为训练网络的全部层。
105.本发明使用的迁移学习所迁移的数据集为:imagenet数据集,原始数据集有上百万张图片。使用这上百万张图片训练好的alexnet卷积神经网络结构可以更加适合解决agv二维码图像样本数量小的问题,同时可以大幅提升训练所需的时间而且提升识别的准确率,迭代500次后,从图9中可以看出引入迁移学习方式的训练集和测试集的准确率达到最高,分别为100%和99.34%,几乎可以适应各种情况下的agv二维码图像识别,而且识别的速度也有着大幅提升。
技术特征:
1.一种基于迁移学习的小样本二维码标识识别方法,其特征在于,包括以下步骤:采集不同情况下的agv二维码图像,构建agv二维码图像数据集,并将数据集分为训练集和测试集;构建agv二维码图像识别卷积神经网络;通过训练集中的数据对卷积神经网络进行训练;将实时采集的agv二维码图像输入到训练好的卷积神经网络中,完成agv二维码的识别。2.根据权利要求1所述的一种基于迁移学习的小样本二维码标识识别方法,其特征在于,所述不同情况包括:正常agv二维码图像、破损agv二维码图像、污渍agv二维码图像、左侧旋agv二维码图像以及右侧旋agv二维码图像。3.根据权利要求1所述的一种基于迁移学习的小样本二维码标识识别方法,其特征在于,使用小波变换方法对训练集和测试集进行去噪处理。4.根据权利要求1所述的一种基于迁移学习的小样本二维码标识识别方法,其特征在于,所述agv二维码图像识别卷积神经网络为alexnet网络结构。5.根据权利要求1所述的一种基于迁移学习的小样本二维码标识识别方法,其特征在于,所述通过训练集中的数据对卷积神经网络进行训练,包括以下步骤:优化卷积神经网络的卷积核大小;优化卷积神经网络的激活函数;优化卷积神经网络的卷积层层数;使用迁移学习方法对卷积神经网络进行优化。6.根据权利要求5所述的一种基于迁移学习的小样本二维码标识识别方法,其特征在于,所述优化卷积神经网络的卷积核大小,具体为:在原始alexnet网络结构上修改卷积核的不同大小,使用训练集和测试集数据分别输入到不同大小卷积核的卷积神经网络,并将每个卷积神经网络输出进行对比验证,选择准确率最高的卷积神经网络使用的卷积核大小作为优化后的卷积神经网络的卷积核大小。7.根据权利要求5所述的一种基于迁移学习的小样本二维码标识识别方法,其特征在于,所述优化卷积神经网络的激活函数,具体为:在确定了卷积神经网络的卷积核后,修改不同的激活函数,使用训练集和测试集数据分别输入到不同激活函数的卷积神经网络,并将每个卷积神经网络输出进行对比验证,选择准确率最高的卷积神经网络使用的激活函数作为优化后的卷积神经网络的激活函数。8.根据权利要求5所述的一种基于迁移学习的小样本二维码标识识别方法,其特征在于,所述优化卷积神经网络的卷积层层数,具体为:在确定了卷积神经网络的卷积核和激活函数后,修改卷积层层数,使用训练集和测试集数据分别输入到不同卷积层层数的卷积神经网络,并将每个卷积神经网络输出进行对比验证,选择准确率最高的卷积神经网络使用的卷积层层数作为优化后的卷积神经网络的卷积层层数。9.根据权利要求5所述的一种基于迁移学习的小样本二维码标识识别方法,其特征在于,所述使用迁移学习方法对卷积神经网络进行优化,具体为:保持已经训练好的卷积神经网络的卷积层的结构不变,向卷积层载入权重与参数;
使用设定好节点数的全连接层替换原本的全连接层,使其与卷积层构成新的卷积神经网络,并对其进行训练,所述节点数与待识别agv二维码图像的种类数量相同。10.根据权利要求9所述的一种基于迁移学习的小样本二维码标识识别方法,其特征在于,对新的卷积神经网络进行训练包括两种训练方式,一种方式为冻结卷积层,只训练全连接层,另一种方式为训练卷积神经网络的卷积层和全连接层。
技术总结
本发明提出的是一种基于迁移学习的小样本二维码标识的识别方法,它包括建立用于识别二维码图像的数据集AGV-QRCode-500;使用迁移学习和卷积神经网络结合的方式建立NEW-TL-AlexNet网络结构,本发明可以解决二维码图像较少导致检测效果不理想的问题,同时提高模型识别精度和泛化性能。识别精度和泛化性能。识别精度和泛化性能。
技术研发人员:李泽熙 刘意杨 唐川宁 王智凝 杨仁枫 于思骞 白洪飞
受保护的技术使用者:中国科学院沈阳自动化研究所
技术研发日:2022.03.14
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/