一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于模型参数映射的自适应目标检测模型构建方法与流程

2022-04-30 08:51:06 来源:中国专利 TAG:


1.本发明涉及目标检测模型设计及优化技术,特别涉及一种基于模型参数映射的自适应目标检测模型构建方法。


背景技术:

2.深度神经网络在计算机视觉任务中取得了十分优秀的表现。其中,目标检测任务在各种现实场景中有十分广泛的应用,如自动驾驶,人脸关键点检测、全场景智能监控系统等。目前,主流的基于深度学习的目标检测算法主要有两步:首先通过主干网络结构从输入的图像中提取关键的特征信息,之后根据提取的特征信息生成检测框,通过对目标检测模型的训练,使得检测框尽可能贴合待检测目标。因为,主干网络的特征提取能力至关重要,对目标检测模型的性能有着极大的影响。目前先进的目标检测模型通常使用由人类专家设计的图像分类模型作为主干网络。
3.然而,图像分类模型通常是针对图像分类任务定制设计。由于图像分类任务更加倾向于判断图片中的信息是什么,关注全局信息,其输入为一张图像,输出为一个标签/类别,代表着这张图的分类,因此分类任务的输出是结构化的,有且仅有一个标签。目标检测的输出是图像中的所有目标,包括图像中的目标类别信息和目标的位置信息,且图像中到底有多少个目标是不确定的。因此,直接使用图像分类模型作为主干网络可能对于目标检测任务来说并非最优解。
4.最近,神经网络架构搜索技术(neural architecture search,nas)的出现为目标检测模型的设计提供了新的思路。nas技术将神经网络模型的设计建模为一个组合优化问题,可以基于任务数据集,利用优化算法自动设计神经网络模型。该方法已经在图像分类、分割、目标检测、跟踪等领域取得了显著的成果。然而,为了使得整个模型更加的容易的收敛,目标检测模型的主干网络结构通常需要在imagenet数据集上预训练。这为整个面向目标检测的nas算法设计带来了沉重的计算负担,极大的阻碍了算法的推广。


技术实现要素:

5.有鉴于此,本发明的目的在于提出一种基于模型参数映射的自适应目标检测模型构建方法,利用基于进化算法的nas算法,自适应设计目标检测模型。通过模型参数映射,将种子网络的预训练权值参数映射至种群中的新个体,使得新个体获得预训练权值,避免了其在imagenet上预训练,进而使得每个个体在预评估时可以获得更加准确的适应度值,解决了面向目标检测神经网络架构搜索算法搜索效率低,搜索到的模型性能不足的问题。
6.为解决上述问题本发明提供如下技术方案:
7.本技术提供了一种基于模型参数映射的自适应目标检测模型构建方法,包括以下步骤:
8.步骤s1,给定带有标签的目标检测数据集,将该数据集划分为训练数据集d
train
,验证数据集d
val
和测试数据集d
test
,将训练数据集d
train
,平均随机分为两份,分别为:d
train1
,dtrain2

9.步骤s2,定义种子目标检测网络,定义搜索空间和编码方案:
10.步骤s2-1,选择mobilenet v2作为种子网络,并使用imagenet数据集对种子网络预训练,直至种子网络收敛。
11.步骤s2-2,将mobilenet v2种子网络作为retinanet目标检测框架的主干网络,并基于训练集d
train1
进行训练,直至收敛,得到种子目标检测网络mobilenet v2-retinanet。
12.步骤s2-3,使用mobilenet v2网络作为模板神经网络架构,利用进化算法重新设计mobilenet v2的bottleneck-2、bottleneck-3、bottleneck-4、bottleneck-5、bottleneck-6五个模块的结构,其中包括bottleneck中的卷积层的卷积核(k)大小,共包含3个可选值k={3,5,7}和bottleneck结构的通道扩展倍率t,共包含3个可选值t={1,4,6}。因此,扩展率参数t和卷积核参数k共有9种组合,分别由整数1,2,3,4,5,6,7,8,9编码表示。此外,每个bottleneck模块需重复堆叠m次,且m为整数,取值为2≤m≤4,bottleneck-2模块组为子网络模块1,bottleneck-3组为子网络模块2,bottleneck-4组为子网络模块3,bottleneck-5组为子网络模块4,bottleneck-6组为子网络模块5。每个子网络模块需使用4位整数编码,skip层表示跳过连接,由整数0编码。一个mobilenet v2主干网络结构可以编码为20位整数基因序列。
13.步骤s3,构建基于目标检测的进化神经网络架构搜索算法:
14.步骤s3-1,算法初始化,定于初始化种群规模m、交叉概率pc、变异概率pm、最大进化代数g。
15.步骤s3-2,基于步骤s2-3定义的编码方案,初始化m条染色体,作为初始种群。
16.步骤s3-3,将m条染色体解码为m个神经网络架构,并作为retinanet目标检测框架的主干网络,得到m个候选retinanet目标检测模型。
17.步骤s3-4,将步骤s2-2得到的种子目标检测网络mobilenet v2-retinanet预训练模型参数w
seed
映射分别至步骤s3-3中的m个候选retinanet目标检测模型,作为每个候选retinanet目标检测模型的初始参数w
ini
,模型参数映射过程如下:
18.1)模型深度的参数映射:
19.以子网络模块为单位进行参数映射。mobilenet v2-retinanet的子网络模块中包含有i个bottleneck结构(2≤i≤4),待映射的候选retinanet目标检测模型中包含1个bottleneck结构(2≤l≤4)。每个bottleneck的参数映射公式为:
20.f(i)=min(i,l),
[0021][0022]
2)模型宽度参数映射:
[0023]
以bottleneck模块为单位执行映射。mobilenet v2-retinanet中的bottleneck模块中的宽度参数为待映射的候选retinanet目标检测模型中的bottleneck的宽度参数为其中,参数out和参数in表示该bottleneck输入和输出的通道,h,w,hi和wi为特征图的空间尺寸,则宽度映射公式为:
[0024]
若:r≤p:
[0025][0026]
若r>p:
[0027][0028]
3)卷积核参数映射
[0029]
以bottleneck模块为单位执行映射。mobilenet v2-retinanet中的bottleneck模块中的宽度参数为待映射的候选retinanet目标检测模型中的bottleneck的宽度参数为其中,k和k1为卷积核的大小。则卷积核映射的公式为:
[0030][0031][0032]
步骤s3-5,将步骤s3-4中完成模型参数映射的个体基于训练数据集d
train2
进行训练,并在验证数据集d
val
上计算每个个体的loss值,作为该个体的适应度值。
[0033]
步骤s3-6,采用轮盘赌选择数个个体,组成父代种群;
[0034]
步骤s3-7,采用单点交叉算子对父代种群中的个体进行两两交叉,得到m个新个体,组成子代种群;
[0035]
步骤s3-8,采用整数型多项式变异对子代种群中的每个个体执行变异操作;
[0036]
步骤s3-9,采用步骤s3-4的步骤中给出的模型参数映射方法,将mobilenet v2-retinanet的预训练参数映射至子代种群中的每个个体。
[0037]
步骤s3-10,基于验证数据集d
val
,计算子代种群中每个个体的适应度值;
[0038]
步骤s3-11,将子代种群和父代种群中的个体合并,根据个体的适应度值,利用环境选择,选出m个新个体,组成下一代种群,并反馈至步骤s3-6,直到达到预设的进化代数,并输出适应度值最优的个体,作为最优的主干网络结构。
[0039]
步骤s4,将步骤s3中输出的最优个体,解码为对应的神经网络,作为retinanet的主干网络,得到目标检测模型retinanet-nas,基于数据集d
train
对该网络结构进行完整训练直至模型收敛。
[0040]
与现有技术相比,上述申请具有如下优点或者有益效果:
[0041]
本发明首先通过模型参数映射方法,将预训练好的种子神经网络模型的模型参数直接映射至新种群中的个体,作为新个体的预训练权值,提高了每个个体的收敛速度,进而提高了整个神经网络架构搜索算法的搜索效率。其次,本发明开发了一种进化神经网络架构搜索算法,可以基于给定的任务目标检测数据集,定制主干网络模型结构,进而自适应的设计目标检测模型,有效的提高了主干网络的特征提取能力,进而提高目标检测模型的检测能力。
附图说明
[0042]
图1是本发明的候选目标检测模型示意图;
[0043]
图2是本发明的算法流程图;
[0044]
图3是本发明模型参数映射示意图;
[0045]
图4是本发明的种子目标检测网络mobilenet v2-retinanet训练收敛状态示意图;
[0046]
图5是本发明的进化神经网络架构搜索算法搜索示意图;
[0047]
图6是本发明的最优个体完整训练示意图。
具体实施方式
[0048]
下面结合附图对本实施例作进一步的说明:
[0049]
步骤s1,给定带有标签的目标检测数据集,将该数据集划分为训练数据集d
val
和测试数据集d
test
,将训练数据集d
train
平均随机分为两份,分别为:d
train1
,d
train2

[0050]
步骤s2,定义种子目标检测网络,定义搜索空间和编码方案:
[0051]
步骤s2-1,选择mobilenet v2作为种子网络,并使用imagenet数据集对种子网络预训练,直至种子网络收敛。
[0052]
步骤s2-2,将mobilenet v2种子网络作为retinanet目标检测框架的主干网络,并基于训练集d
train1
进行训练,直至收敛,得到种子目标检测网络mobilenet v2-retinanet。种子目标检测网络mobilenet v2-retinanet的训练过程如图4所示。
[0053]
骤s2-3,使用mobilenet v2网络作为模板神经网络架构,利用进化算法重新设计mobilenet v2的bottleneck-2、bottleneck-3、bottleneck-4、bottleneck-5、bottleneck-6五个模块的结构,其中包括bottleneck中的卷积层的卷积核(k)大小,共包含3个可选值k={3,5,7}和bottleneck结构的通道扩展倍率t,共包含3个可选值t={1,4,6}。因此,扩展率参数t和卷积核参数k共有9种组合,分别由整数1,2,3,4,5,6,7,8,9编码表示。此外,每个bottleneck模块需重复堆叠m次,且m为整数,取值为2≤m≤4。bottleneck-2模块组为子网络模块1,bottleneck-3组为子网络模块2,bottleneck-4组为子网络模块3,bottleneck-5组为子网络模块4,bottleneck-6组为子网络模块5。每个子网络模块需使用4位整数编码,skip层表示跳过连接,由整数0编码。一个mobilenet v2主干网络结构可以编码为20位整数基因序列。本实施例中,由进化神经网络架构搜索算法重新设计的子网络模块由表1所示,bottleneck结构编码如表2所示
[0054]
表1由进化神经网络架构搜素算法重新设计的子网络模块
[0055][0056]
表2编码信息
[0057]
bottleneck配置编码k=3,t=11k=5,t=42k=7,t=63k=3,t=14k=5,t=45k=7,t=66k=3,t=17k=5,t=48k=7,t=69skip0
[0058]
步骤s3,构建基于目标检测的进化神经网络架构搜索算法,算法流程图如图2所示:
[0059]
步骤s3-1,算法初始化,定于初始化种群规模m=40、交叉概率pc=0.95、变异概率pm=0.2、最大进化代数g=30。
[0060]
步骤s3-2,基于步骤s2-3定义的编码方案,初始化m条染色体,作为初始种群。
[0061]
步骤s3-3,将m条染色体解码为m个神经网络架构,并作为retinanet目标检测框架的主干网络,得到m个候选retinanet目标检测模型。
[0062]
步骤s3-4,如图3所示,将步骤s2-2得到的种子目标检测网络mobilenet v2-retinanet预训练模型参数w
seed
,映射分别至步骤s3-3中的m个候选retinanet目标检测模型,作为每个候选retinanet目标检测模型的初始参数w
ini
,映射后的候选retinanet目标检测模型结构图如图1所示。在图3中,模型参数映射顺序由卷积层2d开始依次完成参数映射,映射顺序为:卷积层2d,bottleneck,子网络1,子网络2,子网络3,子网络4,子网络5,bottleneck,卷积层,fpn模型。模型参数映射过程如下:
[0063]
1)模型深度的参数映射:
[0064]
以子网络模块为单位进行参数映射。mobilenetv2-retinanet的子网络模块中包含有i个bottleneck结构(2≤i≤4),待映射的候选retinanet目标检测模型中包含1个bottleneck结构(2≤l≤4)。每个bottleneck的参数映射公式为:
[0065]
f(i)=min(i,l),
[0066][0067]
2)模型宽度参数映射:
[0068]
以bottleneck模块为单位执行映射。mobilenet v2-retinanet中的bottleneck模块中的宽度参数为待映射的候选retinanet目标检测模型中的bottleneck的宽度参数为其中,参数out和参数in表示该bottleneck输入和输出的通道,h,w,hi和wi为特征图的空间尺寸,则宽度映射公式为:
[0069]
若:r≤p:
[0070][0071]
若r>p:
[0072][0073]
3)卷积核参数映射
[0074]
以bottleneck模块为单位执行映射。mobilenet v2-retinanet中的bottleneck模块中的宽度参数为待映射的候选retinanet目标检测模型中的bottleneck的宽度参数为其中,k和k1为卷积核的大小。则卷积核映射的公式为:
[0075][0076][0077]
步骤s3-5,将步骤s3-4中完成模型参数映射的个体基于训练数据集d
train2
进行训练,并在验证数据集d
val
上计算每个个体的loss值,作为该个体的适应度值。
[0078]
步骤s3-6,采用轮盘赌选择数个个体,组成父代种群;
[0079]
步骤s3-7,采用单点交叉算子对父代种群中的个体进行两两交叉,得到m个新个体,组成子代种群;
[0080]
步骤s3-8,采用整数型多项式变异对子代种群中的每个个体执行变异操作;
[0081]
步骤s3-9,采用步骤s3-4的步骤中给出的模型参数映射方法,将mobilenet v2-retinanet的预训练参数映射至子代种群中的每个个体。
[0082]
步骤s3-10,基于验证数据集d
val
,计算子代种群中每个个体的适应度值;
[0083]
步骤s3-11,将子代种群和父代种群中的个体合并,根据个体的适应度值,利用环境选择,选出m个新个体,组成下一代种群,并反馈至步骤s3-6,直到达到预设的进化代数,
并输出适应度值最优的个体,作为最优的主干网络结构。
[0084]
步骤s4,将步骤s3中输出的最优个体,解码为对应的神经网络,作为retinanet的主干网络,得到目标检测模型retinanet-nas,基于数据集d
train
对该网络结构进行完整训练直至模型收敛。
[0085]
为了验证本发明的优势,特进行以下对比:
[0086]
本发明使用microsoft coco数据集,训练集图片数为118287张,测试集图片为5000张。本发明随机从训练集中抽取了5000张图片作为验证集,以此来验证进化出来的神经网络架构的效果。其中,进化神经网络架构搜索的优化搜索过程如图5所示。进化神经网络架构搜索算法输出的最优个体在全部训练集进行一次完整的训练。最优个体的完整训练过程如图6所示。训练完成之后,该个体在microsoft coco数据集的测试集上测试其检测能力,以iou=0.5∶0.95时的maap值作为评价指标,并与目前研究较为普遍的集中方法做对比,其具体实验结果如下:
[0087]
表3具体实验结果
[0088][0089]
从表3的结果中,可以看出,经过本发明算法优化后的主干网络模型mobilenet v2-nas,map值不仅超过了mobilenet v2模型,还超过了另外两种神经网络架构搜索算法detnas,fna。因此,本发明提出的算法与现有技术相比具有较为显著的进步,在目标检测领域有着较好的实用价值和推广价值。
[0090]
上述虽然对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献