一种基于图片蒸馏的通用物体检测框架及其实现方法与流程

文档序号:16883201发布日期:2019-02-15 22:23阅读:345来源:国知局
一种基于图片蒸馏的通用物体检测框架及其实现方法与流程

本发明涉及计算机视觉技术领域,特别是涉及一种基于图片蒸馏的通用物体检测框架及其实现方法。



背景技术:

通用物体检测是计算机视觉领域最基础的研究方向,它的具体任务是对给定图像,输出该图像包含的物体的边界框和类别。近年来,随着卷积神经网络的发展,通用物体检测已取得重大进展。目前基于cnn的通用物体检测方法主要分为两种:以rcnn,fastrcnn,fasterrcnn,maskrcnn为代表的基于分类的通用物体检测方法和以yolo系列、ssd为代表的基于回归的物体检测方法。基于分类的通用物体检测方法一般检测精度较高于基于回归的通用物体检测方法,应用较为广泛,但其检测速度相对较慢。

具体地说,rcnn提出应用候选框策略来解决检测问题,即先用传统方法对图片预测一系列可能含有物体的候选框,再对候选框进行分类和位置微调。rcnn需要提前保存图像的候选框且每个候选框要单独经过网络提取特征,占用内存大且检测时间长;fastrcnn采用roipooling对此进行改进,使得每张图片仅需经过网络一次,速度有所提高,但仍然偏慢,fasterrcnn在fastrcnn的基础上,提出了rpn(regionproposalnetwork)来提取候选框,速度较传统方法有明显提高,但仍远远不够,maskrcnn进一步改进fasterrcnn,添加了一个分支使用现有的检测对目标进行并行预测,提高了对小物体的检测精度,而且maskrcnn的检测速度在5fps,已经是速度比较快的基于分类的通用物体检测框架了,但这个速度离实时检测还有些遥远。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种基于图片蒸馏的通用物体检测框架及其实现方法,以提高基于分类的通用物体检测技术的检测速度。

为达上述及其它目的,本发明提出一种基于图片蒸馏的通用物体检测框架,包括:

fasterrcnn模型,用于构建fasterrcnn的网络结构,并进行训练,得到训练好的fasterrcnn模型;

waefasterrcnn检测模型,用于将输入图像分解成两个分辨率只有原图一半的子图,构建waefasterrcnn网络结构,利用waefasterrcnn网络结构分别对低频子图和高频子图进行物体检测,然后将两个子图的检测结果进行融合得到最终检测结果;

训练指导单元,用于对所述waefasterrcnn检测模型进行训练,并在所述waefasterrcnn检测模型训练时引入知识蒸馏机制,利用训练好的fasterrcnn模型的输出作为软目标来指导所述waefasterrcnn检测模型的训练。

优选地,所述waefasterrcnn检测模型包括:

图像分解单元,用于利用训练好的anto-encoder模型将输入图像分解成两个分辨率只有原图一半的子图,分别为低频子图和高频子图;

检测单元,用于构建所述waefasterrcnn网络结构,利用所述waefasterrcnn网络结构分别对低频子图和高频子图进行物体检测;

融合处理单元,用于对低频子图与高频子图的检测结果进行融合,得到融合后的检测结果。

优选地,所述图像分解单元采用类小波自动编码器wae进行图像分解,以将输入图像分解成分辨率只有原图一半的低频子图和高频子图,两个子图分别包含原图的低频信息和高频信息。

优选地,对于低频子图与高频子图,所述检测单元分别构建所述waefasterrcnn网络结构的低频子网络和高频子网络,该低频子网络的rpn和fastrcnn,采用完整版fasterrcnn的rpn和fastrcnn,该高频子网络的rpn和fastrcnn,采用轻量版fasterrcnn的rpn和fastrcnn。

优选地,所述轻量版fasterrcnn的部分卷积层通道数为所述完整版fasterrcnn的四分之一。

优选地,所述融合处理单元将低频子图的检测结果和高频子图的检测结果进行融合,作为最终的检测结果。

优选地,所述训练指导单元利用训练好的fasterrcnn模型的输出作为软目标对所述waefasterrcnn检测模型的fastrcnn部分的训练进行指导。

为达到上述目的,本发明还提供一种基于图片蒸馏的通用物体检测框架的实现方法,包括如下步骤:

步骤s1,构建fasterrcnn的网络结构,并进行训练,得到训练好的fasterrcnn模型;

步骤s2,将输入图像分解成两个分辨率只有原图一半的子图,构建waefasterrcnn网络结构,利用所述waefasterrcnn网络结构分别对低频子图和高频子图进行物体检测,然后将两个子图的检测结果进行融合得到最终检测结果;

步骤s3,对所述waefasterrcnn检测模型进行训练,并在waefasterrcnn检测模型训练时引入知识蒸馏机制,利用训练好的fasterrcnn模型的输出作为软目标来指导所述waefasterrcnn检测模型的训练。

优选地,步骤s2进一步包括;

步骤s201,利用训练好的分类模型将输入图像分解成两个分辨率只有原图一半的子图,分别为低频子图和高频子图;

步骤s202,构建waefasterrcnn网络结构,利用waefasterrcnn网络结构分别对低频子图和高频子图进行物体检测,对于低频子图与高频子图,分别构建所述waefasterrcnn网络结构的低频子网络和高频子网络,该低频子网络的rpn和fastrcnn,采用完整版fasterrcnn的rpn和fastrcnn,该高频子网络的rpn和fastrcnn,采用轻量版fasterrcnn的rpn和fastrcnn;

步骤s203,用于对低频子图与高频子图的检测结果进行融合,得到融合的检测结果。

优选地,于步骤s3中,利用所述fasterrcnn模型的fastrcnn得到的候选框得分指导所述waefasterrcnn检测模型的fastrcnn的候选框得分的训练,即在每次迭代时,先将当前处理的图片及对应的候选框输入到所述fasterrcnn模型,进行前向传播,得到fasterrcnn模型的候选框类别得分,将该得分除以温度参数t,再做softmax变换,得到软化的概率分布,即软目标st,再将同样的图片及候选框输入到waefasterrcnn检测模型的fastrcnn部分,进行前向传播,根据所述fasterrcnn模型得到的软目标softtarget与所述waefasterrcnn检测模型得到的软输出softoutput计算软损失softloss,并根据所述waefasterrcnn检测模型得到的硬输出hardoutput和真实标签hardtarget计算硬损失hardloss,得到总的分类部分的损失函数classifyloss=hardloss+λsoftloss,λ是权重。

与现有技术相比,本发明一种基于图片蒸馏的通用物体检测框架及其实现方法通过采用类小波自动编码器将输入图像分解成两个分辨率只有原图一半的子图,然后对两个子图进行后续检测步骤,最后将两个子图的检测结果进行平均得到最终检测结果,本发明由于仅采用分辨率只有原图一半的子图进行检测使得检测速度提高了两倍,但不可避免地会导致精度的下降,因此在训练时引入知识蒸馏的机制,用复杂的但是检测精度高的fasterrcnn模型的输出作为软目标来指导检测模型的训练,从而保证检测精度。

附图说明

图1为本发明一种基于图片蒸馏的通用物体检测框架的结构示意图;

图2为本发明具体实施例中基于图片蒸馏的通用物体检测框架的架构示意图;

图3为本发明具体实施例中fasterrcnn模型得到软目标的过程示意图;

图4为本发明具体实施例中waefasterrcnn检测模型的训练过程示意图;

图5为本发明一种基于图片蒸馏的通用物体检测框架的实现方法的步骤流程图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种基于图片蒸馏的通用物体检测框架的结构示意图。如图1所示,本发明一种基于图片蒸馏的通用物体检测框架,包括:

fasterrcnn模型10,用于构建fasterrcnn的网络结构,并进行训练,得到训练好的fasterrcnn模型。由于这里fasterrcnn模型的构建与训练采用的是现有技术,在此不予赘述。

waefasterrcnn检测模型20,用于将输入图像分解成两个分辨率只有原图一半的子图,构建waefasterrcnn网络结构,利用waefasterrcnn网络结构分别对低频子图和高频子图进行物体检测,然后将两个子图的检测结果进行融合得到最终检测结果。

训练指导单元30,用于对waefasterrcnn检测模型进行训练,并在waefasterrcnn检测模型训练时引入知识蒸馏机制,用复杂的但是检测精度高的训练好的fasterrcnn模型的输出作为软目标(softtarget)来指导waefasterrcnn检测模型的训练。

具体地,waefasterrcnn检测模型20进一步包括:

图像分解单元201,用于利用训练好的auto-encoder(自编码器)模型将输入图像分解成两个分辨率只有原图一半的子图,分别为低频子图和高频子图。在本发明具体实施例中,图像分解单元201应用了类小波自动编码器(wavelet-likeauto-encoder,简称wae)进行图像分解,以将输入图像分解成分辨率只有原图一半的低频子图和高频子图,两个子图分别包含原图的低频信息和高频信息。在本发明具体实施例中,图像分解的网络结构如表1所示:

表1

其中,含有“conv”的表示卷积层,括号内为卷积层参数,分别为卷积核个数、填充0个数、卷积核大小,步长,“relu”表示激活层,含“ca”的表示该层输出为低频子图,含“ch”的表示该层输出为高频子图,粗体表示该层的输出即为网络输出。

检测单元202,用于构建waefasterrcnn网络结构,利用waefasterrcnn网络结构分别对低频子图和高频子图进行物体检测。在本发明具体实施例中,对于低频子图与高频子图,分别构建低频子网络和高频子网络。waefasterrcnn网络的rpn(regionproposalnetwork)部分,低频子网络对低频子图应用完整版fasterrcnn的rpn,高频子网络对高频子图应用轻量版fasterrcnn的rpn,其中轻量版fasterrcnn的rpn部分卷积层通道数是完整版的四分之一。在本发明具体实施例中,waefasterrcnn网络的低频子网络和高频子网络的rpn部分结构如下表2所示:

表2

其中,包含“conv”的表示卷积层,括号内为卷积层参数,分别为卷积核个数、填充0个数、卷积核大小,步长。“relu”表示激活层,“batchnorm”表示批量归一化层,“maxpool”表示最大池化层,括号内为最大池化层参数,分别为卷积核大小和下采样步长,“eltwise”开头的表示eltwise层,括号内为eltwise层参数,表示对每对元素的操作,非斜体部分表示rpn与fastrcnn共享的网络结构,即主干网络,斜体部分表示rpn特有的网络结构,含“ca”的为低频子网络的部分,含“ch”的为高频子网络的部分,粗体表示该层的输出即为网络输出,表中断开的部分无特殊操作,只是为了方便表示,对断开部分上一行重新进行了排列。

waefasterrcnn网络的fastrcnn部分,对低频子图应用完整版fasterrcnn的fastrcnn,对高频子图应用轻量版fasterrcnn的fastrcnn,其中轻量版fasterrcnn网络的rpn部分卷积层通道数是完整版的四分之一,这里使用的fastrcnn不完全和fasterrcnn中的一致,主要是对全卷积层的神经元个数做了修改。waefasterrcnn网络结构的fastrcnn部分的具体网络结构如表3所示:

表3

其中,包含“conv”的表示卷积层,括号内为卷积层参数,分别为卷积核个数、填充0个数、卷积核大小,步长,表中“relu”表示激活层。“maxpool”表示最大池化层,括号内为最大池化层参数,分别为卷积核大小和下采样步长。“fc”开头的表示全连接层,括号内为全连接参数,为神经元个数。“roipooling”表示感兴趣区域池化层,括号内为感兴趣区域池化层的参数,分别为卷积核宽度、卷积核长度,空间缩放尺度(该层与输入图像相比缩小的倍数),“dropout”表示dropout层,括号内为dropout层参数,表示丢失率。“batchnorm”开头的表示批量归一化层。“concat”开头的表示连接层,括号内为连接层参数,表示按某一维度连接,“eltwise”开头的表示eltwise层,括号内为eltwise层参数,表示对每对元素的操作。非斜体部分表示rpn与fastrcnn共享的网络结构,即主干网络,斜体部分表示fastrcnn特有的网络结构。含“ca”的为低频子网络的部分,含“ch”或“fusion”的为高频子网络的部分,粗体表示该层的输出即为网络输出。

融合处理单元203,用于对低频子图与高频子图的检测结果进行融合,得到融合的检测结果。在本发明具体实施例中,融合处理单元203将低频子图与高频子图的检测结果进行平均,得到最终检测结果。

在本发明中,训练指导单元30采用fasterrcnn来指导waefasterrcnn检测模型的训练。经过实验发现,waefasterrcnn的rpn阶段生成的候选框与fasterrcnn的质量相当,差别只在于fastrcnn部分。因此,训练指导单元30只对fastrcnn部分的训练进行指导。具体的,训练指导单元30用fasterrcnn的fastrcnn得到的候选框得分指导waefasterrcnn检测模型的fastrcnn的候选框得分的训练,即在每次迭代时,先将当前处理的图片及对应的候选框输入到fasterrcnn模型,进行前向传播,得到fasterrcnn模型的候选框类别得分,将该得分除以温度参数t,再做softmax变换,得到软化的概率分布,即软目标st,再将同样的图片及候选框输入到waefasterrcnn检测模型的fastrcnn部分,进行前向传播,根据fasterrcnn模型得到的软目标softtarget与waefasterrcnn检测模型得到的软输出softoutput计算软损失softloss,并根据waefasterrcnn检测模型得到的硬输出hardoutput和真实标签hardtarget计算硬损失hardloss,这样总的分类部分的损失函数classifyloss=hardloss+λsoftloss,λ是权重。

图2为本发明具体实施例中基于图片蒸馏的通用物体检测框架的架构示意图。如图2所示,左边的teachermodel为复杂模型,即fasterrcnn模型,右边的studentmodel为waefasterrcnn检测模型,其参数需要训练,它以imagei作为输入,经过waeencodinglayer(即图像分解单元)将imagei分解成两个子图(左边是低频子图,右边是高频子图)。对于低频子图,应用复杂的模型(本发明采用如teachermodel的fasterrcnn模型,由于输入图片的分辨率减半,速度会比对原图应用teachermodel快),得到检测结果(studentmodel的左分支)。对于高频子图,应用简化的复杂模型(本发明将如teachermodel的fasterrcnn模型的通道数变为原来的四分之一),得到检测结果(studentmodel的右分支)。将两个分支的结果进行融合得到最终结果。

虽然studentmodel将输入图片变为原来的一半会加快检测速度,但无疑会带来精度的下降,所以在训练的时候要引入知识蒸馏来保证精度,知识蒸馏就是用训练好的复杂模型(即左边的teachermodel)的输出来指导简单模型(右边的studentmodel)的训练。

训练时,将相同的图片输入teachermodel和studentmodel,将teachermodel得到的软目标softtarget与studentmodel得到的软输出softoutput计算软损失softloss(这个过程就是知识蒸馏),同时将studentmodel得到的硬输出hardoutput和真实标签hardtarget计算硬损失hardloss,总的分类部分的损失函数classifyloss=hardloss+λsoftloss,λ是权重。

图3为本发明具体实施例中fasterrcnn模型得到软目标的过程示意图。具体地,输入图像,经过cnn,roipooling,nn得到分类结果teacher_cls和边界框位置teacher_bbox(到目前为止是fasterrcnn模型的fastrcnn检测物体的过程),对于分类结果teacher_cls,先除以一个温度系数t,再进过softmax变换,即得到软化的概率分布softtarget(软目标)st。

以下将配合图4来具体说明本发明具体实施例中waefasterrcnn检测模型的训练过程,在本发明具体实施例中,waefasterrcnn检测模型的训练过程包括如下四个阶段

第一阶段:训练waefasterrcnn检测模型的rpn部分。用训练好的wae分类网络进行waefasterrcnn模型的初始化。固定两个conv3_1之前的权值,只微调conv3_1之后的权值。rpn的低频子网络,高频子网络,两者输出的平均都有各自的损失函数,其损失函数类比原fasterrcnn的rpn损失函数得到。

第二阶段:训练waefasterrcnn检测模型的fastrcnn部分。用训练好的wae分类网络进行初始化,固定两个conv3_1之前的权值,只微调conv3_1之后的权值。在每次迭代时,先将当前处理的图片及对应的候选框输入到fasterrcnn,进行前向传播,得到原fasterrcnn的候选框类别得分teacher_cls,将该得分除以温度参数t,再做softmax变换,得到软化的概率分布,即软目标,图3中的st。将同样的图片及候选框输入到waefasterrcnn的fastrcnn部分,进行前向传播,该过程如图4所示。低频子网络输出候选框分数ca_cls和候选框位置ca_bbox,高频子网络输出候选框分数ch_cls和候选框位置ch_bbox。将ca_cls与ch_cls进行平均得到avg_cls,对ca_bbox和ch_bbox进行平均得到avg_bbox,对ca_cls进行两种操作:除以温度参数t并做softmax变换得到ca_cls_soft和直接做softmax变换得到ca_cls_hard。对ch_cls和avg_cls类似。对于低频子网络,分类损失有两部分组成:ca_cls_hard与真实值cls的交叉熵损失和ca_cls_soft与st的交叉熵损失,赋予第一个损失较小权重,定位损失为ca_bbox与真实值bbox的smoothl1损失。高频子网络和两个子网络平均之后计算的损失类似。

第三阶段:用第二阶段得到的权值初始化waefasterrcnn的rpn网络,固定conv5_1以及之前的层,只微调rpn特有的层。

第四阶段:用第三阶段得到的权值初始化waefasterrcnn的fastrcnn网络,固定conv5_1以及之前的层,只微调fastrcnn特有的层。

图5为本发明一种基于图片蒸馏的通用物体检测框架的实现方法的步骤流程图。如图5所示,本发明一种基于图片蒸馏的通用物体检测框架的实现方法,包括如下步骤:

步骤s1,构建fasterrcnn的网络结构,并进行训练,得到训练好的fasterrcnn模型。由于这里fasterrcnn模型的构建与训练采用的是现有技术,在此不予赘述。

步骤s2,将输入图像分解成两个分辨率只有原图一半的子图,构建waefasterrcnn网络结构,利用waefasterrcnn网络结构分别对低频子图和高频子图进行物体检测,然后将两个子图的检测结果进行融合得到最终检测结果。

步骤s3,对waefasterrcnn检测模型进行训练,并在waefasterrcnn检测模型训练时引入知识蒸馏机制,用复杂的但是检测精度高的训练好的fasterrcnn模型的输出作为软目标(softtarget)来指导waefasterrcnn检测模型的训练。

具体地,步骤s2进一步包括:

步骤s201,利用训练好的auto-encoder模型将输入图像分解成两个分辨率只有原图一半的子图,分别为低频子图和高频子图。在本发明具体实施例中,应用了类小波自动编码器(wavelet-likeauto-encoder,简称wae)进行图像分解,以将输入图像分解成分辨率只有原图一半的低频子图和高频子图,两个子图分别包含原图的低频信息和高频信息。

步骤s202,构建waefasterrcnn网络结构,利用waefasterrcnn网络结构分别对低频子图和高频子图进行物体检测。在本发明具体实施例中,对于低频子图与高频子图,分别构建低频子网络和高频子网络。waefasterrcnn网络的rpn(regionproposalnetwork)部分,低频子网络对低频子图应用完整版fasterrcnn的rpn,高频子网络对高频子图应用轻量版fasterrcnn的rpn,其中轻量版fasterrcnn的rpn部分卷积层通道数是完整版的四分之一。waefasterrcnn网络的fastrcnn部分,对低频子图应用完整版fasterrcnn的fastrcnn,对高频子图应用轻量版fasterrcnn的fastrcnn,其中轻量版fasterrcnn网络的rpn部分卷积层通道数是完整版的四分之一,这里使用的fastrcnn不完全和fasterrcnn模型中的一致,主要是对全卷积层的神经元个数做了修改。

步骤s203,用于对低频子图与高频子图的检测结果进行融合,得到融合的检测结果。在本发明具体实施例中,将低频子图与高频子图的检测结果进行平均,得到最终检测结果。

于步骤s3中,采用fasterrcnn模型的输出来指导waefasterrcnn检测模型的训练。经过实验发现,waefasterrcnn的rpn阶段生成的候选框与fasterrcnn的质量相当,差别只在于fastrcnn部分。因此,fasterrcnn模型的输出只对fastrcnn部分的训练进行指导。具体的,于步骤s3中,用fasterrcnn的fastrcnn得到的候选框得分指导waefasterrcnn检测模型的fastrcnn的候选框得分的训练,即在每次迭代时,先将当前处理的图片及对应的候选框输入到fasterrcnn模型,进行前向传播,得到fasterrcnn模型的候选框类别得分,将该得分除以温度参数t,再做softmax变换,得到软化的概率分布,即软目标st,再将同样的图片及候选框输入到waefasterrcnn检测模型的fastrcnn部分,进行前向传播,根据fasterrcnn模型得到的软目标softtarget与waefasterrcnn检测模型得到的软输出softoutput计算软损失softloss,并根据waefasterrcnn检测模型得到的硬输出hardoutput和真实标签hardtarget计算硬损失hardloss,这样总的分类部分的损失函数classifyloss=hardloss+λsoftloss,λ是权重。

综上所述,本发明一种基于图片蒸馏的通用物体检测框架及其实现方法通过采用类小波自动编码器将输入图像分解成两个分辨率只有原图一半的子图,然后对两个子图进行后续检测步骤,最后将两个子图的检测结果进行平均得到最终检测结果,本发明由于仅采用分辨率只有原图一半的子图进行检测使得检测速度提高了两倍,但不可避免地会导致精度的下降,因此在训练时引入知识蒸馏的机制,用复杂的但是检测精度高的fasterrcnn模型的输出作为软目标来指导检测模型的训练,从而保证检测精度。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

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