CN111382761B - 一种基于cnn的检测器、图像检测方法及终端 - Google Patents

一种基于cnn的检测器、图像检测方法及终端 Download PDF

Info

Publication number
CN111382761B
CN111382761B CN201811628821.4A CN201811628821A CN111382761B CN 111382761 B CN111382761 B CN 111382761B CN 201811628821 A CN201811628821 A CN 201811628821A CN 111382761 B CN111382761 B CN 111382761B
Authority
CN
China
Prior art keywords
module
data
convolution
sub
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811628821.4A
Other languages
English (en)
Other versions
CN111382761A (zh
Inventor
刘阳
罗小伟
林福辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Communications Tianjin Co Ltd
Original Assignee
Spreadtrum Communications Tianjin Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Spreadtrum Communications Tianjin Co Ltd filed Critical Spreadtrum Communications Tianjin Co Ltd
Priority to CN201811628821.4A priority Critical patent/CN111382761B/zh
Publication of CN111382761A publication Critical patent/CN111382761A/zh
Application granted granted Critical
Publication of CN111382761B publication Critical patent/CN111382761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)

Abstract

一种基于CNN的检测器、图像检测方法及终端,所述检测器包括:基础网络;特征提取模块;其中,所述基础网络包括第一子网络以及第二子网络;所述第一子网络包括多组第一重复模块,且前一组第一重复模块的数据输出至后一组第一重复模块,每组第一重复子模块均包括用于串联运算的分离串联模块以及用于传递运算的第一传递模块,所述第一子网络输出第一路特征层数据至所述第二子网络;所述第二子网络包括多组第二重复模块,且前一组第二重复模块的数据输出至后一组第二重复模块,每组第二重复子模块均包括所述分离串联模块以及用于传递运算的第二传递模块。本发明方案可以提高特征提取精度,且更有机会适用于移动端或嵌入式设备。

Description

一种基于CNN的检测器、图像检测方法及终端
技术领域
本发明涉及检测技术领域,尤其涉及一种基于CNN的检测器、图像检测方法及终端。
背景技术
物体检测是对图像或视频数据进行分析,判断是否存在某些物体(如行人,汽车或各种商品等)并给出这些物体的具体位置。物体检测是计算机视觉领域的关键技术,广泛应用于安防监控、自动驾驶和智能硬件等领域,是后续的行为分析、语义解析等高阶任务的前提。
传统的物体检测方法里,影响力最大的是自提升级联模型(Ada-Boost CascadedModel)和基于部件的变形模型(Deformable Part-based Model,DPM)。前者主要适用于人脸检测,后者则成功应用于行人检测,但其检测精度和鲁棒性已被基于卷积神经网络(Convolutional Neural Network,CNN)的深度学习方法超越。
目前,基于CNN的深度学习方法被广泛应用在物体检测领域,可以分为两类:第一类是基于物体候选窗口的方法,典型代表是更快速基于区域的卷积神经网络(FasterRegions with CNN,Faster R-CNN)检测器,第二类则是候选窗口无关(Proposal Free)的方法,典型代表是实时目标(You Only Look Once,YOLO)检测器和单次多窗口检测器(Single Shot Multi-Box Detector,SSD)。
然而,物体检测精度很大程度上依赖于图像数据的特征提取。图像数据的特征提取方法依靠图像卷积提取显著特征。现有的图像卷积方法提取图像特征计算复杂度较高,耗时较长,难以适用于移动端或嵌入式设备。
发明内容
本发明解决的技术问题是提供一种基于CNN的检测器、图像检测方法及终端,可以提高特征提取精度,能够一次性训练,同时可以降低训练难度,并且在保证检测精度的基础上,设计出模型参数量更小的网络结构,更有机会适用于移动端或嵌入式设备。
为解决上述技术问题,本发明实施例提供一种基于CNN的检测器,包括:基础网络,用于对输入的图像进行特征提取,并输出至少一路特征层数据;特征提取模块,所述特征提取模块的输入端与所述基础网络的输出端耦接,包括至少一路卷积子模块,所述至少一路卷积子模块用于对所述至少一路特征层数据进行卷积运算后分别输出至预测层;其中,所述基础网络包括第一子网络以及第二子网络;所述第一子网络包括多组第一重复模块,且前一组第一重复模块的数据输出至后一组第一重复模块,每组第一重复子模块均包括用于串联运算的分离串联模块以及用于传递运算的第一传递模块,所述第一子网络输出第一路特征层数据至所述第二子网络;所述第二子网络包括多组第二重复模块,且前一组第二重复模块的数据输出至后一组第二重复模块,每组第二重复子模块均包括所述分离串联模块以及用于传递运算的第二传递模块,所述第二子网络输出第二路特征层数据。
可选的,所述分离串联模块包括多个分离串联子模块,且前一个分离串联子模块的数据输出至后一个分离串联子模块;其中,每个分离串联子模块包括:串联模块;连接的卷积模块以及分离卷积模块,所述卷积模块用于接收输入至所述分离串联子模块的数据,并进行卷积处理后输出至所述分离卷积模块,以使所述分离卷积模块进行分离卷积处理后输出待串联数据至所述串联模块;其中,所述串联模块对所述输入至所述分离串联子模块的数据和所述待串联数据进行串联处理后的输出数据作为所述分离串联子模块的输出数据,且最后一个分离串联子模块的输出数据作为所述分离串联模块的输出数据。
可选的,所述卷积模块具有原始输出通道数,所述分离卷积模块具有原始输入通道数以及原始输出通道数;采用预设尺度系数β与所述卷积模块的原始输出通道数相乘以得到所述卷积模块的实际输出通道数;采用预设尺度系数β分别与所述分离卷积模块的原始输入通道数以及原始输出通道数相乘,以分别得到所述分离卷积模块的实际输入通道数以及实际输出通道数。
可选的,所述卷积模块包括卷积层以及批处理归一化层;其中,采用下述公式确定所述批处理归一化层的输出数据:
Figure BDA0001927450750000031
其中,w为所述卷积层的权重参数,b为偏置参数,x为所述卷积层的输入,m为批处理归一化层的均值参数,δ为批处理归一化层的标准差参数,s为批处理归一化层的尺度参数,t为批处理归一化层的偏移参数,z为批处理归一化层的输出。
可选的,所述第一传递模块包括:连接的卷积模块以及池化模块,所述卷积模块用于接收输入至所述第一传递模块的数据,并进行卷积处理后输出至所述池化模块以进行池化处理;其中,所述池化模块的输出数据作为所述第一传递模块的输出数据。
可选的,所述第二传递模块包括:卷积模块,所述卷积模块用于接收输入至所述第二传递模块的数据,并进行卷积处理后,其输出数据作为所述第二传递模块的输出数据。
可选的,所述基础网络还包括:主干模块,所述主干模块的输入端用于接收所述输入的图像,所述主干模块的输出端与所述第一子网络连接,用于对所述输入的图像进行预处理后输出至所述第一子网络。
可选的,所述主干模块包括:多组主干子模块,且前一组主干子模块的数据输出至后一组主干子模块,每组主干子模块均包括连接的卷积模块与分离卷积模块,所述卷积模块用于接收输入至所述主干子模块的数据,并进行卷积处理后输出至所述分离卷积模块以进行分离卷积处理;滑动步长为预设步长的卷积模块,接收输入至所述主干模块的数据并进行卷积处理后,输出至第一组主干子模块;池化模块,接收来自最后一组主干子模块的数据并进行池化处理后,其输出数据作为所述主干模块的输出数据。
可选的,所述的基于CNN的检测器还包括:分离特征金字塔结构,所述分离特征金字塔结构的输入端与所述基础网络的输出端连接,所述分离特征金字塔结构的输出端与所述特征提取模块的输入端连接,所述分离特征金字塔结构用于从所述基础网络接收所述至少一路特征层数据,对所述至少一路特征层数据进行以下一种或多种数据处理后输出至所述特征提取模块:降采样处理、升采样处理、元素级相加处理。
可选的,所述特征提取模块包括至少N+1路卷积子模块,其中,N为正整数且大于2;所述分离特征金字塔结构包括:第1维度特征降采样模块至第N维度特征降采样模块,第1维度的维度值至第N维度的维度值逐级递减;第1维度特征升采样模块至第N维度特征升采样模块,第1维度的维度值至第N维度的维度值逐级递减;第1元素级相加模块至第N元素级相加模块;其中,所述第1维度特征降采样模块从所述基础网络的输出端接收所述第二路特征层数据,并进行降采样处理后,输出至第2维度特征降采样模块以及第2元素级相加模块;第n维度特征降采样模块从第n-1维度特征降采样模块接收降采样处理后的数据,并进行降采样处理后,输出至所述第n+1维度特征降采样模块以及第n+1元素级相加模块,其中,1<n<N;所述第N维度特征降采样模块从第N-1维度特征降采样模块接收降采样处理后的数据,并进行降采样处理后,输出至第N维度特征升采样模块以及所述特征提取模块的第N+1路卷积子模块;所述第N维度特征升采样模块从所述第N维度特征降采样模块接收降采样处理后的数据,并进行升采样处理后,输出至所述第N元素级相加模块;所述第n维度特征升采样模块从所述第n+1元素级相加模块接收数据,并进行升采样处理后,输出至所述第n元素级相加模块;所述第1维度特征升采样模块从所述第2元素级相加模块接收数据,并进行升采样处理后,输出至所述第1元素级相加模块;所述第N元素级相加模块对来自第N-1维度特征降采样模块的数据以及来自所述第N维度特征升采样模块的数据进行元素级相加处理后,输出至第N-1维度特征升采样模块以及所述特征提取模块的第N路卷积子模块;第n元素级相加模块对来自第n-1维度特征降采样模块的数据以及来自所述第n维度特征升采样模块的数据进行元素级相加处理后,输出至第n-1维度特征升采样模块以及所述特征提取模块的第n路卷积子模块;第1元素级相加模块对来自所述基础网络的所述第二路特征层数据以及来自所述第1维度特征升采样模块的数据进行元素级相加处理后,输出至所述特征提取模块的第1路卷积子模块。
可选的,所述特征提取模块包括N+2路卷积子模块;所述分离特征金字塔结构还包括第N+1维度特征升采样模块以及第N+1元素级相加模块:所述第N+1维度特征升采样模块从所述第1元素级相加模块接收数据,并进行升采样处理后,输出至所述第N+1元素级相加模块;所述第N+1元素级相加模块从所述基础网络的第一子网络接收所述第一路特征层数据,并对来自所述第N+1维度特征升采样模块的数据与所述第一路特征层数据进行元素级相加处理后,输出至第N+2路卷积子模块。
可选的,所述分离特征金字塔结构中的各个特征降采样模块包括:串联模块;连接的第一卷积模块以及分离卷积模块,所述第一卷积模块用于接收输入至所述特征降采样模块的数据,并进行卷积处理后输出至所述分离卷积模块,以使所述分离卷积模块进行分离卷积处理后输出第一待串联数据至所述串联模块;连接的池化模块以及第二卷积模块,所述池化模块用于接收输入至所述特征降采样模块的数据,并进行池化处理后输出至所述第二卷积模块,以使所述第二卷积模块进行卷积处理后输出第二待串联数据至所述串联模块;其中,所述串联模块对所述第一待串联数据和所述第二待串联数据进行串联处理后的输出数据作为所述特征降采样模块的输出数据。
可选的,所述分离特征金字塔结构中的各个特征升采样模块包括:连接的双线性插值模块以及分离卷积模块,所述双线性插值模块用于接收输入至所述特征升采样模块的数据,并进行双线性插值处理后输出至所述分离卷积模块以进行分离卷积处理;其中,所述分离卷积模块的输出数据作为所述特征升采样模块的输出数据。
为解决上述技术问题,本发明实施例提供一种基于上述基于CNN的检测器的图像检测方法,包括:基于所述检测器提取所述图像的特征信息;基于所述特征信息对预设锚点窗口进行预测,以得到预测结果;对所述预测结果进行非极值抑制处理,以得到各个检测目标。
为解决上述技术问题,本发明实施例提供一种终端,包括上述的基于CNN的检测器。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在本发明实施例中,通过采用包含有分离串联模块、第一传递模块以及第二传递模块的基础网络,可以使输入所述分离串联模块的数据被分离后串联处理,也即每一个特征层均会被后续的特征层复用,从而使模型参数具有更高的使用效率,提高特征提取精度,能够一次性训练,同时可以降低训练难度;进一步地,对比于同类网络(如Mobilenet-SSD),在本发明实施例中,模型参数数量更少,也即使用更少的参数数量就可以达到超过或类似的检测精度,从而有助于在保证检测精度的基础上,设计出模型参数量更小的网络结构,更有机会适用于移动端或嵌入式设备。
进一步,在本发明实施例中,通过设置预设尺度系数β,可以通过对该系数进行调整来进行检测精度与模型规模的权衡,例如通过设置数值较大的预设尺度系数β(例如大于1),获得较大的模型规模和较高的检测精度;或者通过设置数值较小的预设尺度系数β(例如小于1),获得较小模型规模和较低的检测精度。
进一步,在本发明实施例中,由于完成训练后,批处理归一化层的参数是固定值,因此通过采用公式确定所述批处理归一化层的输出数据,可以在前向推理时,对卷积层和批处理归一化层进行合并处理,从而提高对该批处理归一化层的参数的计算效率。
进一步,在本发明实施例中,通过使用分离特征金字塔结构,有助于提取更完备的多尺度信息进行物体检测,有助于提高检测精度。
附图说明
图1是现有技术中一种基于CNN的检测器的结构示意图;
图2是本发明实施例中一种基于CNN的检测器的结构示意图;
图3是图2中分离串联模块30的一种具体实施方式的结构示意图;
图4是图2中第一传递模块40的一种具体实施方式的结构示意图;
图5是图2中第二传递模块50的一种具体实施方式的结构示意图;
图6是本发明实施例中另一种基于CNN的检测器的主干模块的一种具体实施方式的结构示意图;
图7是本发明实施例中又一种基于CNN的检测器的结构示意图;
图8是图7中分离特征金字塔结构70中的各个特征降采样模块的一种具体实施方式的结构示意图;
图9是图7中分离特征金字塔结构70中的各个特征升采样模块的一种具体实施方式的结构示意图;
图10是本发明实施例中一种基于CNN的检测器的图像检测方法的流程图。
具体实施方式
如前所述,基于CNN的深度学习方法被广泛应用在物体检测领域,目前可以分为两类:
1.第一类是基于物体候选窗口的方法,典型代表是Faster R-CNN。主要原理是在共享的卷积特征层上,采用区域候选窗口网络(Region Proposal Network,RPN)计算出若干物体候选窗口;再对物体候选窗口内的特征信息进行分类和回归,获取物体类别信息和位置信息,从而完成物体检测任务。
2.第二类则是候选窗口无关的方法,典型代表是YOLO检测器和SSD。这类方法不需要额外去计算物体候选窗口,以及相应的特征重采样过程。而是直接在全图区域预设若干个不同尺度和横纵比的锚点窗口(Anchor Box)。在检测时只需前向传播整个网络,再针对每个锚点窗口计算出物体类别的置信度,同时在锚点窗口基础上调整偏移量来获取准确的物体位置和尺度。SSD相比YOLO,主要的差异在于SSD会提取更完备的多尺度卷积特征层的信息来进行预测,因此具备更高的检测精度。
本发明的发明人经过研究发现,现有的图像卷积方法提取图像特征计算复杂度较高,耗时较长,难以适用于移动端或嵌入式设备。
具体地,基于Faster R-CNN的检测器能获得很高的检测精度,但因为依赖于RPN来获取物体候选窗口,会影响检测器的速度。在实时性要求高的场合并不适用。
具体地,基于YOLO的检测器,依赖于少量的卷积特征层进行分类和回归。这种做法会丧失较多的信息,对小尺度物体的检测效果不好,对物体的定位精度不够。此外,YOLO检测器的计算复杂度较高,模型结构都是根据图形处理器(Graphics Processing Unit,GPU)的加速特性设计的。在需要使用中央处理器(Central Processing Unit,CPU)计算的场合,往往速度较慢。
具体地,基于SSD的检测器,因为使用多个卷积特征层进行分类和回归,相比YOLO而言,对小尺度物体的检测效果较好,物体的定位精度也有所提高。但经典SSD检测器使用VGG16分类网络作为基础网络,计算复杂度较高,并不适用于移动端或嵌入式设备。其他改进方案,如基于移动网络(Mobilenet)基础网络的SSD检测器,模型复杂度仍有进一步提升的空间。
此外,以上基于CNN的检测器都是在预训练模型基础上进行迁移学习(TransferLearning)。通常做法是先在ImageNet数据集上训练一个图像分类模型,如牛津大学的视觉几何组(Visual Geometry Group 16,VGG16)分类网络、谷歌网络(GoogleNet)分类网络、黑暗网络(Darknet)分类网络等。再对这些模型进行裁剪,添加新的结构。然后在目标检测的数据集如微软可可(Microsoft COCO)数据集、帕斯卡视觉竞赛(PASCAL VOC)数据集上进行微调(Fine Tuning)训练。这种方法的缺点可以归为以下三点:1.在庞大的图像网络(ImageNet)数据集上训练分类模型耗时耗力;2.数据集之间的差异性可能会导致迁移学习无法达到最优解;3.使用预训练模型限制了模型架构的设计自由度。
参照图1,图1是现有技术中一种基于CNN的检测器的结构示意图。所述基于CNN的检测器可以包括基础网络10以及特征提取模块12。
其中,所述基础网络10用于对输入的图像11进行特征提取,并输出至少一路特征层数据至所述特征提取模块12。
所述特征提取模块12的输入端与所述基础网络10的输出端耦接,用于对所述至少一路特征层数据进行特征提取运算(例如卷积运算)后分别输出至预测层13。
其中,所述基础网络10可以包括多组子网络101,且前一个子网络101的数据输出至后一个子网络101,每组子网络101可以包括连接的分离卷积模块以及卷积模块,所述分离卷积模块用于接收输入至子网络101的数据,并进行卷积处理后输出至所述卷积模块,以使所述卷积模块进行卷积处理后输出数据。
本发明的发明人经过进一步研究后发现,上述检测器需要在预训练模型基础上进行迁移学习,由于基础网络10仅采用分离卷积模块以及卷积模块,前一个特征层需要在分离卷积处理以及卷积处理之后进入后续步骤,也就难以被后续的特征层复用,使得模型参数的使用效率存在不足,且训练难度较大。
在本发明实施例中,提供一种基于CNN的检测器,包括:基础网络,用于对输入的图像进行特征提取,并输出至少一路特征层数据;特征提取模块,所述特征提取模块的输入端与所述基础网络的输出端耦接,包括至少一路卷积子模块,所述至少一路卷积子模块用于对所述至少一路特征层数据进行卷积运算后分别输出至预测层;其中,所述基础网络包括第一子网络以及第二子网络;所述第一子网络包括多组第一重复模块,且前一组第一重复模块的数据输出至后一组第一重复模块,每组第一重复子模块均包括用于串联运算的分离串联模块以及用于传递运算的第一传递模块,所述第一子网络输出第一路特征层数据至所述第二子网络;所述第二子网络包括多组第二重复模块,且前一组第二重复模块的数据输出至后一组第二重复模块,每组第二重复子模块均包括所述分离串联模块以及用于传递运算的第二传递模块,所述第二子网络输出第二路特征层数据。采用上述方案,通过采用包含有分离串联模块、第一传递模块以及第二传递模块的基础网络,可以使输入所述分离串联模块的数据被分离后串联处理,也即每一个特征层均会被后续的特征层复用,从而使模型参数具有更高的使用效率,提高特征提取精度,能够一次性训练,同时可以降低训练难度;进一步地,对比于同类网络(如Mobilenet-SSD),在本发明实施例中,模型参数数量更少,也即使用更少的参数数量就可以达到超过或类似的检测精度,从而有助于在保证检测精度的基础上,设计出模型参数量更小的网络结构,更有机会适用于移动端或嵌入式设备。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图2是本发明实施例中一种基于CNN的检测器的结构示意图。所述基于CNN的检测器可以包括基础网络20以及特征提取模块22。
其中,所述基础网络20用于对输入的图像21进行特征提取,并输出至少一路特征层数据。
所述特征提取模块22的输入端与所述基础网络20的输出端耦接,包括至少一路卷积子模块,所述至少一路卷积子模块用于对所述至少一路特征层数据进行卷积运算后分别输出至预测层23。
其中,所述基础网络20可以包括第一子网络201以及第二子网络202。
所述第一子网络201可以包括多组第一重复模块,且前一组第一重复模块的数据输出至后一组第一重复模块,每组第一重复子模块均包括用于串联运算的分离串联模块30以及用于传递运算的第一传递模块40,所述第一子网络201输出第一路特征层数据至所述第二子网络202。
所述第二子网络202可以包括多组第二重复模块,且前一组第二重复模块的数据输出至后一组第二重复模块,每组第二重复子模块均包括所述分离串联模块30以及用于传递运算的第二传递模块50,所述第二子网络202输出第二路特征层数据。
需要指出的是,在本发明实施例中,可以设置基础网络20仅输出第二路特征层数据,以减少后续处理的复杂性,以提高所述检测器的运算效率。
在本发明实施例中,还可以设置基础网络20输出第一路特征层数据以及第二路特征层数据,有助于通过输出多路特征层数据,对特征层的更多参数(例如尺寸和通道数)进行调节,以提高所述检测器的分辨率。
在本发明实施例中,通过采用包含有分离串联模块、第一传递模块以及第二传递模块的基础网络,可以使输入所述分离串联模块的数据被分离后串联处理,也即每一个特征层均会被后续的特征层复用,从而使模型参数具有更高的使用效率,提高特征提取精度,能够一次性训练,同时可以降低训练难度;进一步地,对比于同类网络(如Mobilenet-SSD),在本发明实施例中,模型参数数量更少,也即使用更少的参数数量就可以达到超过或类似的检测精度,从而有助于在保证检测精度的基础上,设计出模型参数量更小的网络结构,更有机会适用于移动端或嵌入式设备。
需要指出的是,本发明检测器采用SSD检测器作为基础框架。检测流程是在一个前向传播的卷积神经网络的基础上,选取多个卷积特征层的信息来对预设的锚点窗口进行预测,预测变量包括物体类别的置信度、物体位置的偏移量以及物体的尺度,再经过一些后处理如非极值抑制(Non Maximum Suppression,NMS)来获取最终的检测结果。
基于CNN的检测器,通常会选择一个裁剪后的分类网络作为特征提取器,也就是基础网络。现有的SSD检测器采用的是VGG16网络,模型复杂度较高,难以适合移动端部署。
在本发明实施例中,基于分离串联模块30和过渡模块,可以设计一个低容量的基础网络20,图2示出的基础网络20包括交替设置的四个分离串联模块30和四个过渡模块,需要指出的是,模块个数均可以根据具体任务进行调节。
参照图3,图3是图2中分离串联模块30的一种具体实施方式的结构示意图。
所述分离串联模块30可以包括多个分离串联子模块301,且前一个分离串联子模块301的数据输出至后一个分离串联子模块301。
其中,每个分离串联子模块301可以包括:串联模块3011;连接的卷积模块3012以及分离卷积模块3013,所述卷积模块3012用于接收输入至所述分离串联子模块301的数据,并进行卷积处理后输出至所述分离卷积模块3013,以使所述分离卷积模块3013进行分离卷积处理后输出待串联数据至所述串联模块3011;其中,所述串联模块3011对所述输入至所述分离串联子模块301的数据和所述待串联数据进行串联(Concatenate)处理后的输出数据作为所述分离串联子模块301的输出数据,且最后一个分离串联子模块301的输出数据作为所述分离串联模块30的输出数据。
其中,分离串联子模块301的具体个数可以根据具体情况进行调节。
需要指出的是,未特别说明时,一个卷积模块由一个卷积层、一个批处理归一化(Batch Normalization,BN)层和一个受限线性单元(Rectified Linear Unit,ReLU)层组成,分离卷积模块同理。BN层和ReLU层均为业界认可的通用技术,不再详述。分离卷积模块即为MobileNet所使用的深度卷积(DepthwiseConvolution)。相比标准的卷积模块,分离卷积模块的计算复杂度通常降低了一个数量级左右。在具体应用中,使用这种模块构建的卷积网络,仍然可以保持较高的精度。
本发明采用的卷积层为四维张量,数据维度是[K_h,K_w,m_in,m_out],维度数值分别是卷积层的高度、宽度、输入通道数和输出通道数。每个卷积层由m_out个卷积核组成,每个卷积核维度为[K_h,K_w,m_in]。如1×1卷积层代表K_h,K_w均等于1。3×3卷积-步长2代表K_h,K_w均等于3,滑动步长为2的卷积层。不做特别说明的卷积层滑动步长均为1。按照习惯,图中没有显式写出各卷积层的通道数,这些均可以根据具体任务需求进行调节。
在本发明实施例的一种优选方案中,所述卷积模块3012可以为1×1卷积模块,所述分离卷积模块3013可以为3×3分离卷积模块。
在本发明实施例中,通过采用分离串联模块30,可以使得每一个特征层都会被后续的特征层复用,这样的方式使得模型参数具有更高的使用效率,同时可以降低训练难度。
进一步地,所述卷积模块3012可以具有原始输出通道数,所述分离卷积模块3013可以具有原始输入通道数以及原始输出通道数;采用预设尺度系数β与所述卷积模块的原始输出通道数相乘以得到所述卷积模块的实际输出通道数;采用预设尺度系数β分别与所述分离卷积模块的原始输入通道数以及原始输出通道数相乘,以分别得到所述分离卷积模块的实际输入通道数以及实际输出通道数。
在本发明实施例中,通过设置预设尺度系数β,(β>0),可以对分离串联模块中的1×1卷积层的输出通道数、3×3分离卷积层的输入通道数和输出通道数均乘以该系数,即第i个分离串联模块中的1×1卷积层的数据维度为[K_h,K_w,n_i,g_i×β],第i个分离串联模块中的3×3分离卷积层的数据维度为[K_h,K_w,g_i×β,g_i×β],其中n_i为第i个分离串联模块中的1×1卷积层的输入通道数。按照分离串联模块的设计,n_i的数值会不断以g_i的数值的幅度逐步递增。β=1时,可视为普通情况。β变化时,分离串联模块的参数数量会随之变化,对应的计算量也会变化。这个参数的设定,可以用于模型参数数量和检测精度的权衡(trade-off)。
需要指出的是,K_h、K_w都是通指卷积核的高、宽。但区分时,1×1卷积层和3×3分离卷积层的维度值可以不使用相同的维度值。
在本发明实施例中,通过设置预设尺度系数β,可以通过对该系数进行调整来进行检测精度与模型规模的权衡,例如通过设置数值较大的预设尺度系数β(例如大于1),获得较大的模型规模和较高的检测精度;或者通过设置数值较小的预设尺度系数β(例如小于1),获得较小模型规模和较低的检测精度。
需要指出的是,所述预设尺度系数β的设置不仅仅适用于图3示出的分离串联模块30中的卷积模块3012以及分离卷积模块3013,还适用于检测器中其他采用了卷积模块或分离卷积模块的部分,例如还可以适用于第一传递模块40、第二传递模块50、特征提取模块22等。
进一步地,在本发明实施例中,还可以设定一组增长系数{g_i,i=1,…,I},I为模型使用的分离串联模块30的个数,即第i个分离串联模块30中的1×1卷积层的输出通道数m_out等于g_i,3×3分离卷积层的输入通道数m_in和输出通道数m_out均等于g_i。当使用多个分离串联模块30时,这种处理方式可以将计算量控制在较低范围内。
进一步地,所述卷积模块3012可以包括卷积层以及批处理归一化层;其中,可以采用下述公式确定所述批处理归一化层的输出数据:
Figure BDA0001927450750000131
其中,w为所述卷积层的权重参数,b为偏置参数,x为所述卷积层的输入,m为批处理归一化层的均值参数,δ为批处理归一化层的标准差参数,s为批处理归一化层的尺度参数,t为批处理归一化层的偏移参数,z为批处理归一化层的输出。
具体而言,检测器的模型里可以包含多个批处理归一化层,实现时需要一些乘法、除法操作,较为耗时。
更具体而言,卷积运算的公式可以为:
y=w·x+b
其中,y为所述卷积层的输出,其他参数详见前文。
批处理归一化运算的公式可以为:
Figure BDA0001927450750000141
由于完成训练后,批处理归一化层的参数是固定值。因此,在本发明实施例中,对批处理归一化层和对应的卷积层进行合并以得到下述公式:
Figure BDA0001927450750000142
在本发明实施例中,通过采用合并后的公式,可以在离线的情况下,计算出新的卷积层参数,即
Figure BDA0001927450750000143
在本发明实施例中,由于完成训练后,批处理归一化层的参数是固定值,因此通过采用公式确定所述批处理归一化层的输出数据,可以在前向推理时,对卷积层和批处理归一化层进行合并处理,从而提高对该批处理归一化层的参数的计算效率。
需要指出的是,所述采用公式确定所述批处理归一化层的输出数据的方式不仅仅适用于图3示出的分离串联模块30中的卷积模块3012,还适用于检测器中其他采用了卷积模块的部分,例如还可以适用于第一传递模块40、第二传递模块50、特征提取模块22等。
参照图4,图4是图2中第一传递模块40的一种具体实施方式的结构示意图。
所述第一传递模块40可以包括连接的卷积模块401以及池化模块402,所述卷积模块401用于接收输入至所述第一传递模块40的数据,并进行卷积处理后输出至所述池化模块402以进行池化处理;其中,所述池化模块402的输出数据作为所述第一传递模块40的输出数据。
在本发明实施例的一种优选方案中,所述卷积模块401可以为1×1卷积模块,所述池化模块402可以为3×3分离卷积模块。需要指出的是,所述卷积模块401还可以为3×3卷积模块,在本发明实施例中,对于各模块的维度值不做具体限制。
在本发明实施例中,通过采用包含有卷积模块401以及池化模块402的所述第一传递模块40,可以实现既调节特征层的尺寸,又调节特征层的通道数,有助于提高检测器的检测质量。
参照图5,图5是图2中第二传递模块50的一种具体实施方式的结构示意图。
所述第二传递模块50可以包括:卷积模块501,所述卷积模块501可以用于接收输入至所述第二传递模块50的数据,并进行卷积处理后,其输出数据作为所述第二传递模块50的输出数据。
在本发明实施例的一种优选方案中,所述卷积模块501可以为1×1卷积模块。需要指出的是,所述卷积模块501还可以为3×3卷积模块,在本发明实施例中,对于各模块的维度值不做具体限制。
在本发明实施例的另一种基于CNN的检测器中,所述基础网络还可以包括主干模块。
具体地,所述主干模块的输入端可以用于接收输入的图像,所述主干模块的输出端可以与所述基础网络的第一子网络连接,用于对所述输入的图像进行预处理后输出至所述第一子网络。
参照图6,图6是本发明实施例中另一种基于CNN的检测器的主干模块的一种具体实施方式的结构示意图;
所述主干模块60可以包括:多组主干子模块601,且前一组主干子模块601的数据输出至后一组主干子模块601,每组主干子模块601均包括连接的卷积模块6011与分离卷积模块6012,所述卷积模块6011用于接收输入至所述主干子模块601的数据,并进行卷积处理后输出至所述分离卷积模块6012以进行分离卷积处理;预设步长卷积模块602,接收输入至所述主干模块60的数据并进行卷积处理后,输出至第一组主干子模块601;池化模块603,接收来自最后一组主干子模块601的数据并进行池化处理后,其输出数据作为所述主干模块60的输出数据。
其中,所述预设步长卷积模块602即为滑动步长为预设步长的卷积模块。
在本发明实施例的一种优选方案中,所述预设步长卷积模块602可以为滑动步长为2的3×3卷积模块,所述卷积模块6011可以为1×1卷积模块,所述分离卷积模块6012可以为3×3分离卷积模块,所述池化模块603可以为2×2池化模块。在本发明实施例中,对于各模块的维度值不做具体限制。
需要指出的是,在本发明实施例中,采用的池化模块均可以为最大池化层,如池化模块603中的2×2池化模块即每2×2区域的数据求取最大值。
在本发明实施例中,通过采用主干模块60,可以在提取特征信息的同时缩小特征层的尺寸,提高检测器的品质。
参照图7,图7是本发明实施例中又一种基于CNN的检测器的结构示意图。
所述又一种基于CNN的检测器可以包括基础网络20以及特征提取模块22,还可以包括分离特征金字塔结构70。
其中,所述基础网络20用于对输入的图像21进行特征提取,并输出至少一路特征层数据。所述分离特征金字塔结构70的输入端与所述基础网络20的输出端连接。
所述分离特征金字塔结构70的输出端与所述特征提取模块22的输入端连接,所述特征提取模块22包括至少一路卷积子模块,所述至少一路卷积子模块用于对所述至少一路特征层数据进行卷积运算后分别输出至预测层23,进而采用非极值抑制处理模块24对所述预测层23输出的预测结果进行非极值抑制处理,以得到各个检测目标。
所述分离特征金字塔结构70用于从所述基础网络20接收所述至少一路特征层数据,对所述至少一路特征层数据进行以下一种或多种数据处理后输出至所述特征提取模块22:降采样处理、升采样处理、元素级相加处理。
参照图7示出的分离特征金字塔结构70,可以包括第1维度特征降采样模块711至第N维度特征降采样模块714,第1维度的维度值至第N维度的维度值逐级递减;第1维度特征升采样模块721至第N维度特征升采样模块724,第1维度的维度值至第N维度的维度值逐级递减;第1元素级相加模块731至第N元素级相加模块734。
在具体实施中,通过设置第1维度的维度值至第N维度的维度值逐级递减,可以实现金字塔式的结构,例如在一个非限制性的例子中,第1维度的维度值为10×10,第2维度的维度值为5×5,第3维度的维度值为3×3,第4维度的维度值为1×1。
在具体实施中,各个元素级相加模块可以对两组数据维度一致的特征进行对应位置的相加操作。
在所述分离特征金字塔结构70中,所述第1维度特征降采样模块711从所述基础网络20的输出端接收所述第二路特征层数据,并进行降采样处理后,可以输出至第2维度特征降采样模块712以及第2元素级相加模块732。
第n维度特征降采样模块从第n-1维度特征降采样模块接收降采样处理后的数据,并进行降采样处理后,输出至所述第n+1维度特征降采样模块以及第n+1元素级相加模块,其中,1<n<N。
所述第N维度特征降采样模块714从第N-1维度特征降采样模块713接收降采样处理后的数据,并进行降采样处理后,输出至第N维度特征升采样模块724以及所述特征提取模块的第N+1路卷积子模块225。
所述第N维度特征升采样模块724从所述第N维度特征降采样模块714接收降采样处理后的数据,并进行升采样处理后,输出至所述第N元素级相加模块734。
所述第n维度特征升采样模块从所述第n+1元素级相加模块接收数据,并进行升采样处理后,输出至所述第n元素级相加模块,例如,当N为4时,所述第N-1维度特征升采样模块723从所述第N元素级相加模块734接收数据,并进行升采样处理后,输出至所述第N-1元素级相加模块733;所述第2维度特征升采样模块722从所述第N-1元素级相加模块733接收数据,并进行升采样处理后,输出至所述第2元素级相加模块732。
所述第1维度特征升采样模块721从所述第2元素级相加模块732接收数据,并进行升采样处理后,输出至所述第1元素级相加模块731。
所述第N元素级相加模块734对来自第N-1维度特征降采样模块713的数据以及来自所述第N维度特征升采样模块724的数据进行元素级相加处理后,输出至第N-1维度特征升采样模块723以及所述特征提取模块的第N路卷积子模块224。
第n元素级相加模块对来自第n-1维度特征降采样模块的数据以及来自所述第n维度特征升采样模块的数据进行元素级相加处理后,输出至第n-1维度特征升采样模块以及所述特征提取模块的第n路卷积子模块,例如,当N为4时,第N-1元素级相加模块733对来自第2维度特征降采样模块712的数据以及来自所述第N-1维度特征升采样模块723的数据进行元素级相加处理后,输出至第2维度特征升采样模块722以及所述特征提取模块的第N-1路卷积子模块223;第2元素级相加模块732对来自第1维度特征降采样模块711的数据以及来自所述第2维度特征升采样模块722的数据进行元素级相加处理后,输出至第1维度特征升采样模块721以及所述特征提取模块的第2路卷积子模块222。
第1元素级相加模块731对来自所述基础网络20的所述第二路特征层数据以及来自所述第1维度特征升采样模块721的数据进行元素级相加处理后,输出至所述特征提取模块的第1路卷积子模块221。
在本发明实施例中,通过逐次使用N组特征降采样模块,这些特征降采样模块的维度值逐级递减,也即使得输出特征层的尺寸逐步减小,对应了N种尺度。其中,第N组特征降采样模块714的输出特征层可直接作为第N+1路卷积子模块225的卷积特征层。
同时,该特征层逐次经过N组特征升采样模块和N组元素级相加模块,在不断升采样的同时,和对应尺度的特征层进行元素级相加操作,生成对应的N路卷积子模块的卷积特征层。
在本发明实施例中,相比于现有的SSD检测器,通过采用分离特征金字塔结构可以使得每路卷积子模块的卷积特征层都包含了多尺度信息,即可以同时提取完备的初级特征和高级语义信息。
需要指出的是,基础网络20输出的两路特征层数据代表两种尺度。在所述分离特征金字塔结构70中,还可以通过增加第N+1维度特征升采样模块725以及第N+1元素级相加模块735,实现对基础网络20的第一子网络输出的第一路特征层数据进行采用。
在具体实施中,所述第N+1维度特征升采样模块725可以从所述第1元素级相加模块731接收数据,并进行升采样处理后,输出至所述第N+1元素级相加模块735;所述第N+1元素级相加模块735从所述基础网络20的第一子网络接收所述第一路特征层数据,并对来自所述第N+1维度特征升采样模块725的数据与所述第一路特征层数据进行元素级相加处理后,输出至第N+2路卷积子模块226。
在本发明实施例中,通过使用分离特征金字塔结构70,有助于提取更完备的多维度信息进行物体检测,有助于提高检测精度。进一步地,通过采用基础网络20的第一子网络输出的第一路特征层数据,有助于更好地利用第一路特征层数据中的卷积处理和池化处理后的结果,进一步提高数据处理精度。
进一步地,所述特征提取模块22可以包括多组卷积子模块,可以生成预测层23中的数据,包括物体类别的置信度和物体位置的偏移量。以下举例说明:对某一选择的卷积特征层Xi,数据维度是[Hi,Wi,Ci],维度数值分别是卷积特征层的高度、宽度和通道数;对应的卷积层为Fi,数据维度是[Kh,Kw,Ci,p+4],维度数值分别是卷积层的高度、宽度、输入通道数和输出通道数,其中p代表物体类别的数目,4对应的是物体的四个位置参数。如式(1)所示,可以生成预测数据Yi,数据维度是[Hi,Wi,p+4]。
Figure BDA0001927450750000191
其中
Figure BDA0001927450750000192
代表卷积操作。
由于实际场景中的物体具有不同的尺度和横纵比,对于上述选择的卷积特征层上的任一位置会生成若干锚点窗口。具体做法是根据选择的卷积特征层的索引k来计算一个专属的尺度参数s_k,如以下公式所示:
Figure BDA0001927450750000193
其中,smin是最小尺度,smax是最大尺度,m是选择的卷积特征层数量,sk是已选择的卷积特征层中第k层的物体尺度。
此外,还设定了一个横纵比的序列ar∈{1,2,3,1/2,1/3},则第k层卷积特征层的任一锚点窗口的宽和高即为
Figure BDA0001927450750000194
参照图8,图8是图7中分离特征金字塔结构70中的各个特征降采样模块的一种具体实施方式的结构示意图。
所述分离特征金字塔结构70中的各个特征降采样模块可以包括:串联模块805;连接的第一卷积模块801以及分离卷积模块802,所述第一卷积模块801用于接收输入至所述特征降采样模块80的数据,并进行卷积处理后输出至所述分离卷积模块802,以使所述分离卷积模块802进行分离卷积处理后输出第一待串联数据至所述串联模块805;连接的池化模块803以及第二卷积模块804,所述池化模块803用于接收输入至所述特征降采样模块80的数据,并进行池化处理后输出至所述第二卷积模块804,以使所述第二卷积模块804进行卷积处理后输出第二待串联数据至所述串联模块805;其中,所述串联模块805对所述第一待串联数据和所述第二待串联数据进行串联处理后的输出数据作为所述特征降采样模块80的输出数据。
在本发明实施例的一种优选方案中,所述第一卷积模块801可以为1×1卷积模块,所述分离卷积模块802可以为3×3分离卷积模块,所述池化模块803可以为2×2池化模块,所述第二卷积模块804可以为1×1卷积模块。在本发明实施例中,对于各模块的维度值不做具体限制。
需要指出的是,在本发明实施例中,采用的池化模块均可以为最大池化层,如池化模块803中的2×2池化模块即每2×2区域的数据求取最大值。
在本发明实施例中,两条支路的特征信息通过一个串联模块进行串联操作,即获得输出结果。输出相比输入,特征层的空间维度可以缩减,例如为缩减一半。
参照图9,图9是图7中分离特征金字塔结构70中的各个特征升采样模块的一种具体实施方式的结构示意图。
所述分离特征金字塔结构70中的各个特征升采样模块可以包括:连接的双线性插值模块901以及分离卷积模块902,所述双线性插值模块901用于接收输入至所述特征升采样模块90的数据,并进行双线性插值处理后输出至所述分离卷积模块902以进行分离卷积处理;其中,所述分离卷积模块902的输出数据作为所述特征升采样模块90的输出数据。
在本发明实施例的一种优选方案中,所述分离卷积模块902可以为3×3分离卷积模块。在本发明实施例中,对于各模块的维度值不做具体限制。
在本发明实施例中,通过双线性插值模块901实现了升采样操作。输出相比输入,特征层的空间维度可以增加,例如为增加一倍。
需要指出的是,在本发明实施例中,可以一次性训练出检测模型,是指这样训练的模型具备较高的精度,即具备可行性。而其他方案,如果也用这种方式,训练的模型精度较低。能够一次性训练,主要是本发明使用分离串联模组来构建基础网络,这样的方式使得模型参数具有更高的使用效率,同时可以降低训练难度。进一步地,所述模型参数数量更少,是指对比同类网络(比如mobilenet-ssd),使用更少的参数数量就可以达到超过或类似的检测精度。即在保证检测精度的基础上,本发明实施例的方案可以设计出模型参数量更小的网络结构。在移动终端或嵌入式设备,数据的读取和存储会消耗大部分时间,如果模型的参数量很大,读取模型参数时会受带宽限制,耗时较长,不适合实时场景的应用。此外,参数量大,往往意味着相应的计算复杂度也很大。
进一步地,可以基于本发明实施例中的基于CNN的检测器进行训练。
需要指出的是,本发明实施例中的基于CNN的检测器与现有的SSD检测器不同,完成模型设计和随机初始化之后,无需预训练分类模型,可以一次性训练出检测模型。而现有的经典SSD检测器,通常是先对分类网络进行预训练。完成预训练之后,裁剪出基础网络,再添加上检测器需要的附加结构进行第二部分的训练。
检测器的训练物体函数允许多个物体类别,因此能同时检测多个类别的物体。设定
Figure BDA0001927450750000211
为一个指示器,作为第i个锚点窗口和第j个物体类别为p的标注窗口的匹配结果。若两窗口的重叠率高于阈值To,则
Figure BDA0001927450750000212
为1,否则为0。匹配策略允许
Figure BDA0001927450750000213
这样多个锚点窗口可以和一个标注窗口匹配。训练的整体物体损失函数是置信度损失函数和定位损失函数的加权和,如下述公式所示:
Figure BDA0001927450750000214
其中,M是匹配上的窗口数目。若M为0,则物体损失为0。α是定位损失的权重系数。f代表指示器矢量,c代表置信度矢量,t代表预测窗口位置矢量,g代表物体标注窗口矢量。Lconf(f,c)是置信度损失函数,Lloc(f,t,g)是定位损失函数。
置信度损失函数可以是对多个类别的置信度计算归一化指数函数(Softmax)损失,如下述公式所示:
Figure BDA0001927450750000221
Figure BDA0001927450750000222
其中log是对数函数,exp是指数函数,
Figure BDA0001927450750000223
是第i个预测窗口属于物体类别p的置信度。Pos代表正样本集,Neg代表负样本集。某窗口与所有物体标注窗口的重叠率小于To时,便属于负样本。p=0代表背景类别,即负样本类别。
定位损失函数是对预测窗口和物体标注窗口之间差异的量化估计。计算损失函数之前,先使用锚点窗口对物体标注窗口进行编码,如下述公式所示:
Figure BDA0001927450750000224
Figure BDA0001927450750000225
Figure BDA0001927450750000226
Figure BDA0001927450750000227
其中,
Figure BDA0001927450750000228
是第i个锚点窗口的中心位置横坐标、纵坐标、宽度、高度;
Figure BDA0001927450750000229
是第j个物体标注窗口的中心位置横坐标、纵坐标、宽度、高度;
Figure BDA00019274507500002210
是第j个物体标注窗口编码后的中心位置横坐标、纵坐标、宽度、高度;
再使用平滑的一阶范数来计算定位损失函数,如下述公式所示:
Figure BDA00019274507500002211
其中m∈(cx,cy,w,h)即为窗口位置参数,分别是中心位置横坐标、纵坐标、宽度、高度。
Figure BDA0001927450750000231
是第i个预测窗口的第m个位置参数,
Figure BDA0001927450750000232
是第j个物体标注窗口编码后的第m个位置参数。平滑一阶范数HL1如下述公式所示:
Figure BDA0001927450750000233
检测器的训练过程是使用训练数据作为输入,对整个网络结构进行前向传播,并根据前述公式计算损失值。再反向传播,更新整个网络的模型参数。这个过程具体可以是使用随机梯度下降(Stochastic Gradient Descent,SGD)方法来进行迭代优化的。
参照图10,图10是本发明实施例中一种基于CNN的检测器的图像检测方法的流程图。所述基于CNN的检测器的图像检测方法可以包括步骤S101至步骤S103。
步骤S101:基于所述检测器提取所述图像的特征信息;
步骤S102:基于所述特征信息对预设锚点窗口进行预测,以得到预测结果;
步骤S103:对所述预测结果进行非极值抑制处理,以得到各个检测目标。
具体地,完成训练后,可以使用训练得到的模型参数对新的图像进行物体检测任务。具体做法是使用新图像作为输入,对模型进行前向传播。在预测层获得类别置信度
Figure BDA0001927450750000234
和位置预测值
Figure BDA0001927450750000235
然后如下述公式所示,解码预测的物体位置
Figure BDA0001927450750000236
m∈{cx,cy,w,h}:
Figure BDA0001927450750000237
Figure BDA0001927450750000238
Figure BDA0001927450750000239
Figure BDA00019274507500002310
进一步地,使用非极值抑制进行后处理,可以完成检测。
在本发明实施例的一种具体应用场景中,为了进行性能对比,参照Mobilenet-SSD检测器的做法,采用本发明实施例中的检测器在PASCAL VOC数据集上进行了训练和测试。
采用VOC2012trainval数据集和VOC2007trainval数据集合并,作为训练集;采用VOC2007test数据集作为测试集。参考Mobilenet-SSD检测器使用了尺寸为300像素的图像作为输入,本发明在基础网络中使用了四组分离串联模块和四组过渡模块,分离特征金字塔结构中使用了四组特征降采样模块、五组特征升采样模块和五组元素级相加模块,选择了两组尺度系数β={1,0.5}进行实验仿真。训练是在单块Titan X GPU上完成的。
VOC数据集有20类物体,评估检测性能的指标是平均精度均值(mean AveragePrecision,mAP),如下述公式所示:
Figure BDA0001927450750000241
Figure BDA0001927450750000242
Figure BDA0001927450750000243
其中,r指召回率(Recall),p(r)指对应于某一召回率的精度(Precision),pinterp(r)为召回率大于r时的最大精度,AP是在召回率为{0,0.1,…,1.0}等十一个级别上计算精度均值,mAP是指对多类物体计算精度均值的平均,使用VOC数据集时Q=20。
平均精度均值取值范围为[0-1],数值越大代表检测器性能越好。此外,本发明还比较了检测器的模型大小和运行速度。通常是希望模型尽量小,运行速度尽量快。
表1对本发明检测器和MobileNet-SSD检测器进行了性能对比,其中本发明检测器的β=1,本发明检测器(简化)的β=0.5。可以看到本发明检测器的平均精度均值高于MobileNet-SSD,但模型大小只有MobileNet-SSD检测器的百分之三十五左右。本发明检测器(简化)的平均精度均值与MobileNet-SSD类似,但模型大小只有MobileNet-SSD检测器的百分之三十左右。本发明分别在型号为i7 5930K的CPU和Titan X GPU上测试了速度,CPU速度与MobileNet-SSD检测器类似。GPU速度慢于MobileNet-SSD检测器,猜测是GPU架构没有针对串联操作的优化。综上,本发明检测器在保持更高或相似检测精度的前提下,模型大小只有MobileNet-SSD检测器的三分之一左右,更加适用于资源有限的场合如移动终端和嵌入式设备。实验证明,调整尺度系数可以进行检测精度和模型参数数量的权衡。
参照表1,表1是本发明实施例中的检测器与现有的MobileNet-SSD检测器的性能对比表。
表1.各检测器性能对比
Figure BDA0001927450750000251
在本发明实施例中,通过采用包含有分离串联模块、第一传递模块以及第二传递模块的基础网络,可以使输入所述分离串联模块的数据被分离后串联处理,也即每一个特征层均会被后续的特征层复用,从而使模型参数具有更高的使用效率,提高特征提取精度,能够一次性训练,同时可以降低训练难度;进一步地,对比于同类网络(如Mobilenet-SSD),在本发明实施例中,模型参数数量更少,也即使用更少的参数数量就可以达到超过或类似的检测精度,从而有助于在保证检测精度的基础上,设计出模型参数量更小的网络结构,更有机会适用于移动端或嵌入式设备。
本发明实施例还提供了一种终端,可以包括前文以及图2至图9示出的基于CNN的检测器。所述终端包括但不限于手机、计算机、平板电脑、服务器等终端设备。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (15)

1.一种基于CNN的检测器,其特征在于,包括:
基础网络,用于对输入的图像进行特征提取,并输出至少一路特征层数据;特征提取模块,所述特征提取模块的输入端与所述基础网络的输出端耦接,包括至少一路卷积子模块,所述至少一路卷积子模块用于对所述至少一路特征层数据进行卷积运算后分别输出至预测层;
其中,所述基础网络包括第一子网络以及第二子网络;
所述第一子网络包括多组第一重复模块,且前一组第一重复模块的数据输出至后一组第一重复模块,每组第一重复子模块均包括用于串联运算的分离串联模块以及用于传递运算的第一传递模块,所述第一子网络输出第一路特征层数据至所述第二子网络;
所述第二子网络包括多组第二重复模块,且前一组第二重复模块的数据输出至后一组第二重复模块,每组第二重复子模块均包括所述分离串联模块以及用于传递运算的第二传递模块,所述第二子网络输出第二路特征层数据;
其中,所述第一子网络的输出端以及所述第二子网络的输出端均与所述特征提取模块耦接。
2.根据权利要求1所述的基于CNN的检测器,其特征在于,所述分离串联模块包括多个分离串联子模块,且前一个分离串联子模块的数据输出至后一个分离串联子模块;
其中,每个分离串联子模块包括:
串联模块;
连接的卷积模块以及分离卷积模块,所述卷积模块用于接收输入至所述分离串联子模块的数据,并进行卷积处理后输出至所述分离卷积模块,以使所述分离卷积模块进行分离卷积处理后输出待串联数据至所述串联模块;其中,所述串联模块对所述输入至所述分离串联子模块的数据和所述待串联数据进行串联处理后的输出数据作为所述分离串联子模块的输出数据,且最后一个分离串联子模块的输出数据作为所述分离串联模块的输出数据。
3.根据权利要求2所述的基于CNN的检测器,其特征在于,所述卷积模块具有原始输出通道数,所述分离卷积模块具有原始输入通道数以及原始输出通道数;
采用预设尺度系数β与所述卷积模块的原始输出通道数相乘以得到所述卷积模块的实际输出通道数;
采用预设尺度系数β分别与所述分离卷积模块的原始输入通道数以及原始输出通道数相乘,以分别得到所述分离卷积模块的实际输入通道数以及实际输出通道数。
4.根据权利要求2所述的基于CNN的检测器,其特征在于,所述卷积模块包括卷积层以及批处理归一化层;
其中,采用下述公式确定所述批处理归一化层的输出数据:
Figure FDA0004037221750000021
其中,w为所述卷积层的权重参数,b为偏置参数,x为所述卷积层的输入,m为批处理归一化层的均值参数,δ为批处理归一化层的标准差参数,s为批处理归一化层的尺度参数,t为批处理归一化层的偏移参数,z为批处理归一化层的输出。
5.根据权利要求1所述的基于CNN的检测器,其特征在于,所述第一传递模块包括:
连接的卷积模块以及池化模块,所述卷积模块用于接收输入至所述第一传递模块的数据,并进行卷积处理后输出至所述池化模块以进行池化处理;
其中,所述池化模块的输出数据作为所述第一传递模块的输出数据。
6.根据权利要求1所述的基于CNN的检测器,其特征在于,所述第二传递模块包括:
卷积模块,所述卷积模块用于接收输入至所述第二传递模块的数据,并进行卷积处理后,其输出数据作为所述第二传递模块的输出数据。
7.根据权利要求1所述的基于CNN的检测器,其特征在于,所述基础网络还包括:
主干模块,所述主干模块的输入端用于接收所述输入的图像,所述主干模块的输出端与所述第一子网络连接,用于对所述输入的图像进行预处理后输出至所述第一子网络。
8.根据权利要求7所述的基于CNN的检测器,其特征在于,所述主干模块包括:
多组主干子模块,且前一组主干子模块的数据输出至后一组主干子模块,每组主干子模块均包括连接的卷积模块与分离卷积模块,所述卷积模块用于接收输入至所述主干子模块的数据,并进行卷积处理后输出至所述分离卷积模块以进行分离卷积处理;
滑动步长为预设步长的卷积模块,接收输入至所述主干模块的数据并进行卷积处理后,输出至第一组主干子模块;
池化模块,接收来自最后一组主干子模块的数据并进行池化处理后,其输出数据作为所述主干模块的输出数据。
9.根据权利要求1所述的基于CNN的检测器,其特征在于,还包括:
分离特征金字塔结构,所述分离特征金字塔结构的输入端与所述基础网络的输出端连接,所述分离特征金字塔结构的输出端与所述特征提取模块的输入端连接,所述分离特征金字塔结构用于从所述基础网络接收所述至少一路特征层数据,对所述至少一路特征层数据进行以下一种或多种数据处理后输出至所述特征提取模块:
降采样处理、升采样处理、元素级相加处理。
10.根据权利要求9所述的基于CNN的检测器,其特征在于,所述特征提取模块包括至少N+1路卷积子模块,其中,N为正整数且大于2;
所述分离特征金字塔结构包括:
第1维度特征降采样模块至第N维度特征降采样模块,第1维度的维度值至第N维度的维度值逐级递减;
第1维度特征升采样模块至第N维度特征升采样模块,第1维度的维度值至第N维度的维度值逐级递减;
第1元素级相加模块至第N元素级相加模块;
其中,所述第1维度特征降采样模块从所述基础网络的输出端接收所述第二路特征层数据,并进行降采样处理后,输出至第2维度特征降采样模块以及第2元素级相加模块;
第n维度特征降采样模块从第n-1维度特征降采样模块接收降采样处理后的数据,并进行降采样处理后,输出至第n+1维度特征降采样模块以及第n+1元素级相加模块,其中,1<n<N;
所述第N维度特征降采样模块从第N-1维度特征降采样模块接收降采样处理后的数据,并进行降采样处理后,输出至第N维度特征升采样模块以及所述特征提取模块的第N+1路卷积子模块;
所述第N维度特征升采样模块从所述第N维度特征降采样模块接收降采样处理后的数据,并进行升采样处理后,输出至所述第N元素级相加模块;第n维度特征升采样模块从所述第n+1元素级相加模块接收数据,并进行升采样处理后,输出至第n元素级相加模块;
所述第1维度特征升采样模块从所述第2元素级相加模块接收数据,并进行升采样处理后,输出至所述第1元素级相加模块;
所述第N元素级相加模块对来自第N-1维度特征降采样模块的数据以及来自所述第N维度特征升采样模块的数据进行元素级相加处理后,输出至第N-1维度特征升采样模块以及所述特征提取模块的第N路卷积子模块;
第n元素级相加模块对来自第n-1维度特征降采样模块的数据以及来自所述第n维度特征升采样模块的数据进行元素级相加处理后,输出至第n-1维度特征升采样模块以及所述特征提取模块的第n路卷积子模块;
第1元素级相加模块对来自所述基础网络的所述第二路特征层数据以及来自所述第1维度特征升采样模块的数据进行元素级相加处理后,输出至所述特征提取模块的第1路卷积子模块。
11.根据权利要求10所述的基于CNN的检测器,其特征在于,所述特征提取模块包括N+2路卷积子模块;
所述分离特征金字塔结构还包括第N+1维度特征升采样模块以及第N+1元素级相加模块:
所述第N+1维度特征升采样模块从所述第1元素级相加模块接收数据,并进行升采样处理后,输出至所述第N+1元素级相加模块;
所述第N+1元素级相加模块从所述基础网络的第一子网络接收所述第一路特征层数据,并对来自所述第N+1维度特征升采样模块的数据与所述第一路特征层数据进行元素级相加处理后,输出至第N+2路卷积子模块。
12.根据权利要求10所述的基于CNN的检测器,其特征在于,所述分离特征金字塔结构中的各个特征降采样模块包括:
串联模块;
连接的第一卷积模块以及分离卷积模块,所述第一卷积模块用于接收输入至所述特征降采样模块的数据,并进行卷积处理后输出至所述分离卷积模块,以使所述分离卷积模块进行分离卷积处理后输出第一待串联数据至所述串联模块;
连接的池化模块以及第二卷积模块,所述池化模块用于接收输入至所述特征降采样模块的数据,并进行池化处理后输出至所述第二卷积模块,以使所述第二卷积模块进行卷积处理后输出第二待串联数据至所述串联模块;其中,所述串联模块对所述第一待串联数据和所述第二待串联数据进行串联处理后的输出数据作为所述特征降采样模块的输出数据。
13.根据权利要求10所述的基于CNN的检测器,其特征在于,所述分离特征金字塔结构中的各个特征升采样模块包括:
连接的双线性插值模块以及分离卷积模块,所述双线性插值模块用于接收输入至所述特征升采样模块的数据,并进行双线性插值处理后输出至所述分离卷积模块以进行分离卷积处理;
其中,所述分离卷积模块的输出数据作为所述特征升采样模块的输出数据。
14.一种基于权利要求1至13任一项所述的基于CNN的检测器的图像检测方法,其特征在于,包括:
基于所述检测器提取所述图像的特征信息;
基于所述特征信息对预设锚点窗口进行预测,以得到预测结果;
对所述预测结果进行非极值抑制处理,以得到各个检测目标。
15.一种终端,其特征在于,包括权利要求1至13任一项所述的基于CNN的检测器。
CN201811628821.4A 2018-12-28 2018-12-28 一种基于cnn的检测器、图像检测方法及终端 Active CN111382761B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811628821.4A CN111382761B (zh) 2018-12-28 2018-12-28 一种基于cnn的检测器、图像检测方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811628821.4A CN111382761B (zh) 2018-12-28 2018-12-28 一种基于cnn的检测器、图像检测方法及终端

Publications (2)

Publication Number Publication Date
CN111382761A CN111382761A (zh) 2020-07-07
CN111382761B true CN111382761B (zh) 2023-04-07

Family

ID=71216465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811628821.4A Active CN111382761B (zh) 2018-12-28 2018-12-28 一种基于cnn的检测器、图像检测方法及终端

Country Status (1)

Country Link
CN (1) CN111382761B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099850A (zh) * 2020-09-10 2020-12-18 济南浪潮高新科技投资发展有限公司 一种多核Hourglass网络加速方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018005520A (ja) * 2016-06-30 2018-01-11 クラリオン株式会社 物体検出装置及び物体検出方法
CN108182456B (zh) * 2018-01-23 2022-03-18 哈工大机器人(合肥)国际创新研究院 一种基于深度学习的目标检测模型及其训练方法
CN108805874B (zh) * 2018-06-11 2022-04-22 中国电子科技集团公司第三研究所 一种基于卷积神经网络的多光谱图像语义切割方法
CN109063594A (zh) * 2018-07-13 2018-12-21 吉林大学 基于YOLOv2的遥感图像快速目标检测方法

Also Published As

Publication number Publication date
CN111382761A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
CN107564025B (zh) 一种基于深度神经网络的电力设备红外图像语义分割方法
CN111488985B (zh) 深度神经网络模型压缩训练方法、装置、设备、介质
CN111968150B (zh) 一种基于全卷积神经网络的弱监督视频目标分割方法
CN109902697B (zh) 多目标检测方法、装置及移动终端
CN107977683B (zh) 基于卷积特征提取和机器学习的联合sar目标识别方法
CN111507521A (zh) 台区电力负荷预测方法及预测装置
CN111368850B (zh) 图像的特征提取、目标检测方法及装置、卷积装置、cnn网络装置、终端
CN112560967B (zh) 一种多源遥感图像分类方法、存储介质及计算设备
CN113837308B (zh) 基于知识蒸馏的模型训练方法、装置、电子设备
CN113221787A (zh) 基于多元差异性融合的行人多目标跟踪方法
CN112183649A (zh) 一种用于对金字塔特征图进行预测的算法
CN113128478A (zh) 模型训练方法、行人分析方法、装置、设备及存储介质
CN114863229A (zh) 图像分类方法和图像分类模型的训练方法、装置
CN115393690A (zh) 一种轻量化神经网络的空对地观测多目标识别方法
CN114581789A (zh) 一种高光谱图像分类方法及系统
CN111382761B (zh) 一种基于cnn的检测器、图像检测方法及终端
CN117710744A (zh) 基于波段选择特征融合多注意力网络的高光谱图像分类方法
CN117636183A (zh) 一种基于自监督预训练的小样本遥感图像分类方法
CN115937565A (zh) 基于自适应l-bfgs算法的高光谱图像分类方法
Tanasa et al. U-Net Utilization on segmentation of Aerial Captured Images
CN113221993B (zh) 基于元学习和跨阶段沙漏的大视场小样本目标检测方法
CN114693950B (zh) 一种图像特征提取网络的训练方法、装置及电子设备
CN113744306B (zh) 基于时序内容感知注意力机制的视频目标分割方法
CN113469450B (zh) 一种数据分类方法、装置、计算机设备及存储介质
CN116343000A (zh) 图像处理模型的训练方法、图像处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant