CN108960340B - 卷积神经网络压缩方法及人脸检测方法 - Google Patents
卷积神经网络压缩方法及人脸检测方法 Download PDFInfo
- Publication number
- CN108960340B CN108960340B CN201810812355.9A CN201810812355A CN108960340B CN 108960340 B CN108960340 B CN 108960340B CN 201810812355 A CN201810812355 A CN 201810812355A CN 108960340 B CN108960340 B CN 108960340B
- Authority
- CN
- China
- Prior art keywords
- convolution
- layer
- neural network
- network
- size
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Evolutionary Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了卷积神经网络压缩方法,包括以下步骤:S1:对卷积神经网络结构中各卷积层的权值集中度进行统计;S2:将权值集中度超过阈值的网络进行二值化;S3:重新训练神经网络至收敛。本发明还公开了人脸检测方法。本发明卷积神经网络压缩方法及人脸检测方法,在网络中使用混合精度推理,即一个完整的网络结构中,浮点卷积和异或卷积同时存在,选择权值集中度更高的层次进行二值压缩,保留权值较为分散的层次,从而使得网络的精度能够更大程度地保留,通过引入基于IOU的置信度惩罚来实现软化的非极大值抑制,对于密集目标的检测场景有一定正面影响。
Description
技术领域
本发明涉及计算机视觉领域,具体涉及卷积神经网络压缩方法及人脸检测方法。
背景技术
随着计算能力的发展和可用数据集的扩充,深度卷积神经网络在计算机视觉、语音识别、自然语言处理等领域获得了广泛的应用,但是深度卷积神经网络通常具有大量的参数,复杂的计算和存储压力限制了深度学习的应用和发展。为了解决这个问题,除了对硬件性能的提升外,还可以从算法层面上考虑实现对网络模型本身的压缩,从而达到减少计算和存储成本的目的。
近年来,人脸识别技术在安防领域越来越流行,而人脸检测技术作为人脸识别等一系列工作的前置任务,如何在拍摄环境复杂、目标尺度多变的情况下实现对人脸的实时检测是很值得研究的问题。目前基于卷积神经网络的检测算法基本已经能够在高端GPU上实现实时的高精度人脸检测。
下面简要介绍和本发明相关的两个背景技术:人脸检测问题和卷积网络压缩。
人脸检测属于目标检测的又一细分领域,因此人脸检测算法可以基于通用目标检测框架展开,其与通用的目标检测方案不同之处在于:特征简单——早期的Haar特征就可以作为人脸分类器的特征,而通用目标检测却需要使用复杂的HOG特征;尺度变化大——这点在监控场景较为明显,行人在镜头下由远及近地走过,其脸部面积在整个视频帧中的占比也会由小变大;目标尺寸小且密集——这同样也是监控场景下人脸检测要面对的主要问题,例如假日的街头天网摄像监控、下班高峰期的地铁监控等等,在这些场景中,单个1080P视频帧可能包含上百个目标,而大部分人脸目标都在50像素长宽的范围内。总而言之,在设计人脸检测方案时,我们可以利用其特征简单的特点对特征提取器进行适当的裁剪和压缩,同时也需要克服尺度变化大、目标尺寸小、目标密集的困难。
深度学习检测算法按候选区域生成方式的不同可以分为一阶段检测算法和二阶段检测算法,两类算法最大的不同在于,一阶段检测算法通过卷积计算本身的滑窗过程产生候选区域,二阶段检测算法通过别的方式(例如RPN)产生候选区域。SSD是典型的一阶段检测算法。
另一方面,深度卷积网络具有大量的参数,而这些参数实际可能存在大量的冗余,这样的冗余通常会造成计算和存储上的浪费,因此神经网络的压缩算法也是近几年的研究热点。这些算法可以根据执行压缩的对象不同而分为两大类:第一类是基于结构的压缩算法——通过直接改动神经网络的结构以实现压缩的目的;第二类是基于数值的压缩算法——神经网络通常都是运行在32-bit的单精度浮点下,用16-bit的半精度浮点数存储网络权值即可将网络运行时的内存消耗极大地减少,更进一步的压缩就会有8-bit、4-bit,最激进的压缩就是1-bit二值化压缩——这是本发明压缩方案研究的重点。
二值压缩,是将模型中原本使用的单精度浮点表示的权值和输入使用{0,1}二值表示,即将原本32-bit的信息用1-bit来表示,这样表示参数有两点好处:
1.极大减小了模型在磁盘和内存中的空间消耗;
2.可以用xor(或xnor)运算符和popcnt指令替代浮点数的乘法运算。
特别说明一下第二点,以向量相乘为例:设列向量A,B∈{-1,1}N(在实际存储时用0表示-1,因为1-bit没有符号位),那么:
ATB=N-2×popcnt(xor(A,B))
假设我们能够成功将数据存储压缩到1-bit,那么整个网络中复杂的浮点运算开销将被简单的位运算和popcnt所替代。不过从32-bit到1-bit信息量的损失很大,将整个卷积网络中所有的参数都二值化会对网络的容量造成很大影响,进而又会影响到网络的泛化性能。
卷积网络巨大的计算需求限制了这项技术应用的场合。高端GPU上的实时高精度人脸检测可以提供类似数据中心模式的检测识别云平台,面向天网等监控视频服务。但是在公共安全、警用装备领域除了天网,还有对便携式装备的需求,例如执法记录仪等。为了满足这样的需求,我们迫切地需要对模型的压缩和计算的精简。
发明内容
本发明所要解决的技术问题是在公共安全、警用装备领域除了天网,还有对便携式装备的需求,例如执法记录仪等。为了满足这样的需求,我们迫切地需要对模型的压缩和计算的精简,目的在于提供卷积神经网络压缩方法及人脸检测方法,解决上述问题。
本发明通过下述技术方案实现:
卷积神经网络压缩方法,包括以下步骤:S1:对卷积神经网络结构中各卷积层的权值集中度进行统计;S2:将权值集中度超过阈值的网络进行二值化;S3:重新训练神经网络至收敛。
现有技术中,卷积网络巨大的计算需求限制了这项技术应用的场合。高端GPU上的实时高精度人脸检测可以提供类似数据中心模式的检测识别云平台,面向天网等监控视频服务。但是在公共安全、警用装备领域除了天网,还有对便携式装备的需求,例如执法记录仪等。为了满足这样的需求,我们迫切地需要对模型的压缩和计算的精简。
本发明应用时,如果对整个网络使用二值化卷积,会不可避免地造成精度损失。因此本发明提出混合精度压缩方案,考虑对网络结构中的卷积进行选择性地二值化,这样在一个完整的结构中浮点卷积和异或卷积并存。对神经网络结构中各卷积层的权值集中度进行统计,不同的层次,数值的相对分布也不同,可以用数值的方差来衡量这种集中度,数值方差越小,说明权重数值更集中;数值方差越大,说明权重数值波动大。因此,可以统计已训练好的浮点卷积网络的卷积层集中度,选择集中度大的网络进行二值化。本发明在网络中使用混合精度推理,即一个完整的网络结构中,浮点卷积和异或卷积同时存在,选择权值集中度更高的层次进行二值压缩,保留权值较为分散的层次,从而使得网络的精度能够更大程度地保留。
进一步的,步骤S1还包括以下子步骤:卷积层中第i层的权重集中度Ci根据下式得到:
式中,Wi为该卷积层的权重向量;N为该卷积层权重的个数。
本发明应用时,定义C表示一个卷积层的数值集中度,W是该层卷积的权重向量,N是该卷积层权重的个数(权重向量的维度)。C越大,数值方差越小,说明权重数值更集中;C越小,数值方差越大,说明权重数值波动大。
进一步的,步骤S2包括以下子步骤:所述对网络进行二值化包括对卷积核权值进行二值化和对卷积层输入特征的二值化。
本发明应用时,对一个卷积层而言,主要处理两类数据:卷积核的权值以及卷积层的输入特征。
进一步的,对卷积核权值进行二值化包括以下步骤:将卷积核权值中32-bit的信息用1-bit来表示;对用1-bit表示后的二值卷积使用异或运算和popcnt指令近似原本的卷积运算。
进一步的,对卷积层输入特征进行二值化包括以下步骤:将卷积层输入特征进行逐通道的归一化;将归一化后的卷积层输入特征用1-bit来表示;对用1-bit表示后的二值卷积使用异或运算和popcnt指令近似原本的卷积运算。
本发明应用时,对卷积层输入特征进行二值近似,如果只是单纯优化目标求解极值点,那依然无法完全摆脱浮点数的卷积运算,所以本发明中考虑再对卷积层的输入做一个特殊处理:逐通道的归一化(Normalization),在输入特征图I中每个通道的特征图上分别做归一化,再完成卷积层输入的二值化;不过这里改变了输入特征的分布,因此必须重新训练整个网络才能减少精度的损失。在单个卷积层的运算中,完全使用异或卷积替代浮点卷积。早期二值压缩还需要保留一部分浮点卷积计算,用以求出输入数据的缩放系数。本发明的方案使用了一种逐通道的归一化方法,使得缩放系数近似为1,从而避免浮点卷积运算。
人脸检测方法,包括以下步骤:S1:由剪切后的VGG网络产生卷积特征;S2:在指定的特征层上使用卷积预测器预测人脸目标的置信度和人脸目标框的位置;S3:将每一层得到的结果集中到一起,通过置信度筛选、非极大值抑制得到预测结果。
本发明应用时,Zface Pro总共使用了包括conv4_3、fc7、conv6_2、conv7_2、conv8_2、conv9_2在内六层卷积特征,分别对应了尺寸为63×63,32×32,16×16,8×8,6×6,4×4的特征。每一层特征都对应了一个独立的卷积预测器,这个卷积预测器由两个并行的卷积层构成,分别是输出通道数为2(人脸和非人脸)的目标分类卷积层和输出通道数等于4倍先验目标框(bbox)种类(对应先验目标框的两点坐标的偏移量)的坐标回归卷积层。本发明通过减少VGG16中网络层的特征通道数以及替换更小的基础网络来实现结构层面的压缩,通过引入基于IOU的置信度惩罚来实现软化的非极大值抑制,对于密集目标的检测场景有一定正面影响。
进一步的,步骤S2包括以下子步骤:在特征图上设置预设框作为先验框,所述先验框采用正方形;卷积预测器基于先验框给出人脸目标的置信度并回归人脸目标框的位置。
本发明应用时,通用目标检测为了应对不同目标的不同形态,往往会设定多个不同长宽比的先验框,本发明认为在人脸检测中,只需要正方形作为先验框——尽管人脸并不一定都是正方形的,但通常是非常接近正方形形态的,因此一个正方形的先验就足以使神经网络收敛。先验框的种类少就意味着每次推断产生的候选框数量少,候选框数量少意味着需要处理的数据少,这是本发明比原始SSD更快的直接原因。
进一步的,步骤S2还包括以下子步骤:根据目标在原图中的占比和特征所对应的感受野尺寸得出先验框尺寸;所述感受野尺寸以VGG作为基础特征提取器得出。
本发明应用时,先验框的设置除了考虑长宽比之外,还需要考虑其尺寸。原始SSD仅仅根据经验设置先验框尺寸,取输入尺寸的0.2~0.95按比例分配到几个不同的卷积特征层上,本设计方案考虑从目标在原图中的占比和特征所对应的感受野大小两个方面入手。值得注意的是,除了前置摄像头等少数场景外,在大多数场景中,单个人脸目标面积在视频帧中的占比是非常小的,因此大可不必按照输入图片尺寸的0.95这样大的比例去设置先验框。另外,本发明使用了VGG作为基础特征提取器,可以计算出某一层卷积特征的感受野,即某一特征cell所对应的原图上的尺寸——我们可以根据这个尺寸来估算该层特征cell所能表示的人脸尺寸,然后将先验框设置为这个尺寸,有效提高了人脸检测效率。
进一步的,还包括以下步骤:使用随机尺寸的正方形框在原始图像上截取训练数据;对截取后的图像进行缩放;当进行图像放大时,只保留原尺寸区域的内容,舍去超出原尺寸区域的部分;当进行图像缩小时,使用0值填充图像周围,保持原图的尺寸不变。
本发明应用时,除了适合人脸检测的网络结构之外,本人脸检测方案还提出了一种更适应于人脸形态的数据扩充方法。YOLO提出的随机裁剪(Random Crop)是最流行的检测数据扩充方法,这个方法是指用随机尺寸和长宽比在原始图片上截取矩形区域,保留包含目标(部分或者全部目标)的矩形图片作为送入网络的训练数据。这种方法能极大地增强数据集的多样性,但是考虑到送入网络的数据还要缩放到固定大小的正方形,这种方法也有很大的可能性会扭曲目标的形态——这种扭曲可能会增强网络在多种类型目标检测中的鲁棒性,但是对于单一类型目标反而可能产生更多的误检。为了更符合人脸的形态,本发明只使用随机尺寸的正方形框在原始图像上截取训练数据。另外,为了增加样本尺度的多样性,本发明也会对截取后的图像进行缩放——与传统的缩放不同,本发明所使用的缩放会保留原图的尺寸,而缩放属于原图的内容:放大的时候只保留原尺寸区域的内容,舍去超出原尺寸区域的部分;缩小的时候使用0值填充图像周围,保持原图的尺寸不变,通过这种方式能产生尺度(目标在图像中的占比)更多样的训练数据。
进一步的,所述特征提取层采用TensorRT进行软件加速;步骤S3采用Caffe进行训练。
本发明应用时,TensorRT是Nvidia推出的深度学习推理解决方案,相对于通用的训练框架例如Caffe、TensorFlow等,精简的TensorRT更适用于网络的部署。假设Zface使用Caffe进行训练,考虑到特征提取层可以由TensorRT进行软件加速,因此可以在推理运行时使用TensorRT+Caffe的方式。本发明通过替换计算引擎、优化内存分配等工程上的手段可以极大地提升算法的运行速度并减小算法的资源消耗。
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明卷积神经网络压缩方法,在网络中使用混合精度推理,即一个完整的网络结构中,浮点卷积和异或卷积同时存在,选择权值集中度更高的层次进行二值压缩,保留权值较为分散的层次,从而使得网络的精度能够更大程度地保留;
2、本发明人脸检测方法,通过减少VGG16中网络层的特征通道数以及替换更小的基础网络来实现结构层面的压缩,通过引入基于IOU的置信度惩罚来实现软化的非极大值抑制,对于密集目标的检测场景有一定正面影响。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明实施例示意图;
图2为本发明实施例示意图;
图3为本发明实施例示意图;
图4为本发明实施例示意图;
图5为本发明实施例示意图;
图6为本发明实施例示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
本发明卷积神经网络压缩方法,包括以下步骤:S1:对卷积神经网络结构中各卷积层的权值集中度进行统计;S2:将权值集中度超过阈值的网络进行二值化;S3:重新训练神经网络至收敛。
本实施例实施时,如果对整个网络使用二值化卷积,会不可避免地造成精度损失。因此本发明提出混合精度压缩方案,考虑对网络结构中的卷积进行选择性地二值化,这样在一个完整的结构中浮点卷积和异或卷积并存。对神经网络结构中各卷积层的权值集中度进行统计,不同的层次,数值的相对分布也不同,可以用数值的方差来衡量这种集中度,数值方差越小,说明权重数值更集中;数值方差越大,说明权重数值波动大。因此,可以统计已训练好的浮点卷积网络的卷积层集中度,选择集中度大的网络进行二值化。本发明在网络中使用混合精度推理,即一个完整的网络结构中,浮点卷积和异或卷积同时存在,选择权值集中度更高的层次进行二值压缩,保留权值较为分散的层次,从而使得网络的精度能够更大程度地保留。
不同的层次,数值的相对分布也不同,可以用数值的方差来衡量这种集中度,卷积层中第i层的权重集中度Ci根据下式得到:
式中,Wi为该层卷积的权重向量;N为该卷积层权重的个数。
定义C表示一个卷积层的数值集中度,W是该层卷积的权重向量,N是该卷积层权重的个数(权重向量的维度)。C越大,数值方差越小,说明权重数值更集中;C越小,数值方差越大,说明权重数值波动大。因此,可以统计已训练好的浮点卷积网络的卷积层集中度,选择集中度大的网络进行二值化。
具体计算算法流程如下:
Net是一个已经训练好的浮点参数卷积神经,具有N层卷积层和浮点参数W,Ci是第i层权值的集中度,K是指定压缩的层数,压缩后网络的近似参数为Wb(包含缩方系数α和二值向量B)。
1、统计Net各卷积层的权值集中度Ci
2、对Ci排序,选出Top K,其对应的卷积层作为二值压缩的候选层;
3、替换Net中候选卷积层的浮点卷积单元为训练二值卷积单元(训练二值卷积单元包含一份浮点权重W和一份二值权重Wb);
4、重新训练神经网络Net直到收敛;
5、替换Net中的训练二值卷积单元为推理二值单元(推理二值单元只做前向计算,仅包含一份二值权重Wb)。
步骤S2包括以下子步骤:所述对网络进行二值化包括对卷积核权值进行二值化和对卷积层输入特征的二值化。对一个卷积层而言,主要处理两类数据:卷积核的权值以及卷积层的输入特征。
对卷积核权值进行二值化包括以下步骤:将卷积核权值中32-bit的信息用1-bit来表示;对用1-bit表示后的二值卷积使用异或运算和popcnt指令近似原本的卷积运算。
对卷积层输入特征进行二值化包括以下步骤:将卷积层输入特征进行逐通道的归一化;将归一化后的卷积层输入特征用1-bit来表示;对用1-bit表示后的二值卷积使用异或运算和popcnt指令近似原本的卷积运算。
对卷积层输入特征进行二值近似,如果只是单纯优化目标求解极值点,那依然无法完全摆脱浮点数的卷积运算,所以本发明中考虑再对卷积层的输入做一个特殊处理:逐通道的归一化(Normalization),在输入特征图I中每个通道的特征图上分别做归一化,再完成卷积层输入的二值化;不过这里改变了输入特征的分布,因此必须重新训练整个网络才能减少精度的损失。在单个卷积层的运算中,完全使用异或卷积替代浮点卷积。早期二值压缩还需要保留一部分浮点卷积计算,用以求出输入数据的缩放系数。本发明的方案使用了一种逐通道的归一化方法,使得缩放系数近似为1,从而避免浮点卷积运算。
卷积核权值的二值化通过下面算法实现:设W表示一个卷积层的权值,该卷积层卷积核大小为K×K,输入通道数为Cin,输出通道数为Cout,那么令Wi表示W中第i个输出通道对应的权值组成的列向量,显然有考虑二值先验:令用带入式(1)得到求解αi,Bi的优化目标:
ATB=N-2×popcnt(xor(A,B))(1)
直接将J展开得到:
s.t.Xj∈{-1,1}N,βj∈R+
式(8)计算||Ij||l1本质上是对卷积的输入层提前计算一个输出通道为1的卷积,如图1所示。
很容易可以得出这个特殊中间卷积的卷积核大小为K×K,输入通道为Cin,且卷积核中任意的参数都等于即如果用式(8)求解那依然无法完全摆脱浮点数的卷积运算。所以本发明中考虑再对卷积层的输入做一个特殊处理——逐通道的归一化(Normalization)。在输入特征图I中每个通道的特征图上分别做归一化,使得||Ij||l1≈N,则那么就可以只用式(9)的结果来完成卷积层输入的二值化——不过这里改变了输入特征的分布,因此必须重新训练整个网络才能减少精度的损失。
得到二值卷积的量化方式后,就可以使用异或运算XNOR和popcnt指令近似原本的卷积运算:
I*W≈(sign(I)*sign(W))⊙α(10)
式(10)中第一个*表示包含乘法和加法的浮点数卷积,第二个*表示由XNOR和popcnt组成的卷积;⊙表示一种按位的乘法,把α的每一位,即每个输出通道的权值缩放系数乘到对应的特征图上。再加上输入数据的归一化层和Sign函数,就构成了一个基本的二值化卷积层,如图2所示。
实施例2
本发明人脸检测方法,包括以下步骤:S1:由剪切后的VGG网络产生卷积特征;S2:在指定的特征层上使用卷积预测器预测人脸目标的置信度和人脸目标框的位置;S3:将每一层得到的结果集中到一起,通过置信度筛选、非极大值抑制得到预测结果。
本实施例实施时,Zface Pro总共使用了包括conv4_3、fc7、conv6_2、conv7_2、conv8_2、conv9_2在内六层卷积特征,分别对应了尺寸为63×63,32×32,16×16,8×8,6×6,4×4的特征。每一层特征都对应了一个独立的卷积预测器,这个卷积预测器由两个并行的卷积层构成,分别是输出通道数为2(人脸和非人脸)的目标分类卷积层和输出通道数等于4倍先验目标框(bbox)种类(对应先验目标框的两点坐标的偏移量)的坐标回归卷积层。本发明通过减少VGG16中网络层的特征通道数以及替换更小的基础网络来实现结构层面的压缩,通过引入基于IOU的置信度惩罚来实现软化的非极大值抑制,对于密集目标的检测场景有一定正面影响,工作流程如图3所示,
步骤S2包括以下子步骤:在特征图上设置预设框作为先验框,所述先验框采用正方形;卷积预测器基于先验框给出人脸目标的置信度并回归人脸目标框的位置。
通用目标检测为了应对不同目标的不同形态,往往会设定多个不同长宽比的先验框,本发明认为在人脸检测中,只需要正方形作为先验框——尽管人脸并不一定都是正方形的,但通常是非常接近正方形形态的,因此一个正方形的先验就足以使神经网络收敛。先验框的种类少就意味着每次推断产生的候选框数量少,候选框数量少意味着需要处理的数据少,这是本发明比原始SSD更快的直接原因。
步骤S2还包括以下子步骤:根据目标在原图中的占比和特征所对应的感受野尺寸得出先验框尺寸;所述感受野尺寸以VGG作为基础特征提取器得出。
先验框的设置除了考虑长宽比之外,还需要考虑其尺寸。原始SSD仅仅根据经验设置先验框尺寸,取输入尺寸的0.2~0.95按比例分配到几个不同的卷积特征层上,本设计方案考虑从目标在原图中的占比和特征所对应的感受野大小两个方面入手。值得注意的是,除了前置摄像头等少数场景外,在大多数场景中,单个人脸目标面积在视频帧中的占比是非常小的,因此大可不必按照输入图片尺寸的0.95这样大的比例去设置先验框。另外,本发明使用了VGG作为基础特征提取器,可以计算出某一层卷积特征的感受野,即某一特征cell所对应的原图上的尺寸——我们可以根据这个尺寸来估算该层特征cell所能表示的人脸尺寸,然后将先验框设置为这个尺寸,有效提高了人脸检测效率,先验框设置如下表1所示:
表1各卷积特征层的先验框设置
特征层名 | 先验框尺寸 | 感受野尺寸 |
conv4_3 | 30 | 92 |
fc7 | 120 | 416 |
conv6_2 | 150 | 452 |
conv7_2 | 180 | 516 |
conv8_2 | 210 | 644 |
conv9_2 | 240 | 772 |
同样的设置另一种检测方式,如图4所示,基础特征提取层是一个有24层卷积并包含8个残差单元(Residual Block)的神经网络。使用了conv3、conv4、conv5、conv6、conv7等5层卷积特征,这5层特征都是包含不同感受野特征线性叠加的残差单元输出,因此我们不能通过类似的分析得到符合目标占比及感受野大小的先验尺寸,所以这里的先验框设置同原始SSD一样。
还包括以下步骤:使用随机尺寸的正方形框在原始图像上截取训练数据;对截取后的图像进行缩放;当进行图像放大时,只保留原尺寸区域的内容,舍去超出原尺寸区域的部分;当进行图像缩小时,使用0值填充图像周围,保持原图的尺寸不变。
除了适合人脸检测的网络结构之外,本人脸检测方案还提出了一种在网络的训练过程中更适应于人脸形态的数据扩充方法,因为数据扩充是针对网络训练的,并不应用在实际检测时,但描述人脸检测方法都会指出训练和检测两部分的一些内容。在这里这样加指明数据扩充是训练时的。YOLO提出的随机裁剪(Random Crop)是最流行的检测数据扩充方法,这个方法是指用随机尺寸和长宽比在原始图片上截取矩形区域,保留包含目标(部分或者全部目标)的矩形图片作为送入网络的训练数据。这种方法能极大地增强数据集的多样性,但是考虑到送入网络的数据还要缩放到固定大小的正方形,这种方法也有很大的可能性会扭曲目标的形态——这种扭曲可能会增强网络在多种类型目标检测中的鲁棒性,但是对于单一类型目标反而可能产生更多的误检。为了更符合人脸的形态,本发明只使用随机尺寸的正方形框在原始图像上截取训练数据。另外,为了增加样本尺度的多样性,本发明也会对截取后的图像进行缩放——与传统的缩放不同,本发明所使用的缩放会保留原图的尺寸,而缩放属于原图的内容:放大的时候只保留原尺寸区域的内容,舍去超出原尺寸区域的部分;缩小的时候使用0值填充图像周围,保持原图的尺寸不变,通过这种方式能产生尺度(目标在图像中的占比)更多样的训练数据,如图5所示。
所述特征提取层采用TensorRT进行软件加速;步骤S3采用Caffe进行训练。
本发明应用时,TensorRT是Nvidia推出的深度学习推理解决方案,相对于通用的训练框架例如Caffe、TensorFlow等,精简的TensorRT更适用于网络的部署。假设Zface使用Caffe进行训练,考虑到特征提取层可以由TensorRT进行软件加速,因此可以在推理运行时使用TensorRT+Caffe的方式。本发明通过替换计算引擎、优化内存分配等工程上的手段可以极大地提升算法的运行速度并减小算法的资源消耗,图6展示了TensorRT和Caffe的分工。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.使用卷积神经网络压缩方法的人脸检测方法,其特征在于,包括以下步骤:
S1:由剪切后的VGG网络产生卷积特征;
S2:在指定的特征层上使用卷积预测器预测人脸目标的置信度和人脸目标框的位置;
S3:将每一层得到的结果集中到一起,通过置信度筛选、非极大值抑制得到预测结果;
其中,在S1的VGG网络中使用卷积神经网络压缩方法,包括以下子步骤:
S11:对VGG网络结构中各卷积层的权值集中度进行统计;
卷积层中第i层的权重集中度Ci根据下式得到:
式中,Wi为该卷积层的权重向量;N为该卷积层权重的个数;
S12:将权值集中度超过阈值的网络进行二值化;
对网络进行二值化包括对卷积核权值进行二值化和对卷积层输入特征的二值化;
对卷积核权值进行二值化包括以下步骤:
将卷积核权值中32-bit的信息用1-bit来表示;
对用1-bit表示后的二值卷积使用异或运算和popcnt指令近似原本的卷积运算;
对卷积层输入特征进行二值化包括以下步骤:
将卷积层输入特征进行逐通道的归一化;
将归一化后的卷积层输入特征用1-bit来表示;
对用1-bit表示后的二值卷积使用异或运算和popcnt指令近似原本的卷积运算;
S13:重新训练神经网络至收敛。
2.根据权利要求1所述的使用卷积神经网络压缩方法的人脸检测方法,其特征在于,步骤S2包括以下子步骤:
在特征图上设置预设框作为先验框,所述先验框采用正方形;
卷积预测器基于先验框给出人脸目标的置信度并回归人脸目标框的位置。
3.根据权利要求2所述的使用卷积神经网络压缩方法的人脸检测方法,其特征在于,步骤S2还包括以下子步骤:
根据目标在原图中的占比和特征所对应的感受野尺寸得出先验框尺寸;
所述感受野尺寸以VGG作为基础特征提取器得出。
4.根据权利要求1所述的使用卷积神经网络压缩方法的人脸检测方法,其特征在于,还包括以下步骤:
使用随机尺寸的正方形框在原始图像上截取训练数据;
对截取后的图像进行缩放;
当进行图像放大时,只保留原尺寸区域的内容,舍去超出原尺寸区域的部分;
当进行图像缩小时,使用0值填充图像周围,保持原图的尺寸不变。
5.根据权利要求1所述的使用卷积神经网络压缩方法的人脸检测方法,其特征在于,所述特征提取层采用TensorRT进行软件加速;步骤S3采用Caffe进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810812355.9A CN108960340B (zh) | 2018-07-23 | 2018-07-23 | 卷积神经网络压缩方法及人脸检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810812355.9A CN108960340B (zh) | 2018-07-23 | 2018-07-23 | 卷积神经网络压缩方法及人脸检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108960340A CN108960340A (zh) | 2018-12-07 |
CN108960340B true CN108960340B (zh) | 2021-08-31 |
Family
ID=64464451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810812355.9A Active CN108960340B (zh) | 2018-07-23 | 2018-07-23 | 卷积神经网络压缩方法及人脸检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108960340B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109978144B (zh) * | 2019-03-29 | 2021-04-13 | 联想(北京)有限公司 | 一种模型压缩方法和系统 |
CN110427912A (zh) * | 2019-08-12 | 2019-11-08 | 深圳市捷顺科技实业股份有限公司 | 一种基于深度学习的人脸检测方法及其相关装置 |
CN110659622A (zh) * | 2019-09-27 | 2020-01-07 | 北京文安智能技术股份有限公司 | 一种倾倒垃圾检测方法、装置及系统 |
CN111027493B (zh) * | 2019-12-13 | 2022-05-20 | 电子科技大学 | 一种基于深度学习多网络软融合的行人检测方法 |
CN111414825B (zh) * | 2020-03-13 | 2023-09-08 | 玉林师范学院 | 一种安全帽佩戴检测方法 |
CN111401276B (zh) * | 2020-03-20 | 2024-05-17 | 广东光速智能设备有限公司 | 一种安全帽佩戴识别方法及系统 |
CN111814827B (zh) * | 2020-06-08 | 2024-06-11 | 湖南腓腓动漫有限责任公司 | 基于yolo的关键点目标检测方法 |
CN112200295B (zh) * | 2020-07-31 | 2023-07-18 | 星宸科技股份有限公司 | 稀疏化卷积神经网络的排序方法、运算方法、装置及设备 |
CN112115789A (zh) * | 2020-08-18 | 2020-12-22 | 北京嘀嘀无限科技发展有限公司 | 人脸检测模型的确定方法、装置及电子设备 |
CN113705791B (zh) * | 2021-08-31 | 2023-12-19 | 上海阵量智能科技有限公司 | 神经网络推理量化的方法、装置、电子设备及存储介质 |
CN114611666B (zh) * | 2022-03-08 | 2024-05-31 | 安谋科技(中国)有限公司 | 一种nms函数的量化方法、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991408A (zh) * | 2017-04-14 | 2017-07-28 | 电子科技大学 | 一种候选框生成网络的生成方法及人脸检测方法 |
CN107895192A (zh) * | 2017-12-06 | 2018-04-10 | 广州华多网络科技有限公司 | 深度卷积网络压缩方法、存储介质和终端 |
CN108280453A (zh) * | 2018-01-08 | 2018-07-13 | 西安电子科技大学 | 基于深度学习的低功耗快速检测图像目标方法 |
CN108304786A (zh) * | 2018-01-17 | 2018-07-20 | 东南大学 | 一种基于二值化卷积神经网络的行人检测方法 |
-
2018
- 2018-07-23 CN CN201810812355.9A patent/CN108960340B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991408A (zh) * | 2017-04-14 | 2017-07-28 | 电子科技大学 | 一种候选框生成网络的生成方法及人脸检测方法 |
CN107895192A (zh) * | 2017-12-06 | 2018-04-10 | 广州华多网络科技有限公司 | 深度卷积网络压缩方法、存储介质和终端 |
CN108280453A (zh) * | 2018-01-08 | 2018-07-13 | 西安电子科技大学 | 基于深度学习的低功耗快速检测图像目标方法 |
CN108304786A (zh) * | 2018-01-17 | 2018-07-20 | 东南大学 | 一种基于二值化卷积神经网络的行人检测方法 |
Non-Patent Citations (5)
Title |
---|
A lightweight YOLOv2: A binarized CNN with a parallel support vector regression for an FPGA;Hiroki Nakahara等;《Proceedings of the 2018 ACM/SIGDA international symposium on field-programmable gate arrays》;20180215;31-40页 * |
Deep compression: Compressing deep neural networks with pruning trained quantization and Huffman coding;Song Han等;《ICLR 2016》;20160215;1-14页 * |
XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks;Mohammad Rastegari等;《European Conference on Computer Vision》;20160917;525-542页 * |
基于BING与卷积神经网络的人脸检测算法;程春玲等;《南京邮电大学学报(自然科学版)》;20171229;第37卷(第6期);68-74页 * |
目标检测网络SSD的区域候选框的设置问题研究;翁昕;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180415(第4期);I138-3308页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108960340A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108960340B (zh) | 卷积神经网络压缩方法及人脸检测方法 | |
Wu et al. | Edge computing driven low-light image dynamic enhancement for object detection | |
CN112733749B (zh) | 融合注意力机制的实时行人检测方法 | |
US11600059B2 (en) | Systems and methods for providing an image classifier | |
EP4080416A1 (en) | Adaptive search method and apparatus for neural network | |
CN112949673A (zh) | 一种基于全局注意力的特征融合目标检测与识别方法 | |
CN113326930B (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
CN110533022B (zh) | 一种目标检测方法、系统、装置及存储介质 | |
CN110163239A (zh) | 一种基于超像素和条件随机场的弱监督图像语义分割方法 | |
CN111861925A (zh) | 一种基于注意力机制与门控循环单元的图像去雨方法 | |
CN111985597B (zh) | 模型压缩方法及装置 | |
CN112633477A (zh) | 一种基于现场可编程阵列的量化神经网络加速方法 | |
US20110182497A1 (en) | Cascade structure for classifying objects in an image | |
CN111783996A (zh) | 一种数据处理方法、装置及设备 | |
CN115294563A (zh) | 一种基于Transformer的增强了局部语义学习能力的3D点云分析方法及装置 | |
CN114698395A (zh) | 神经网络模型的量化方法和装置、数据处理的方法和装置 | |
CN112288084B (zh) | 基于特征图通道重要性的深度学习目标检测网络压缩方法 | |
US20230143985A1 (en) | Data feature extraction method and related apparatus | |
Zhu et al. | Multi-scale region-based saliency detection using W 2 distance on N-dimensional normal distributions | |
CN112132207A (zh) | 基于多分支特征映射目标检测神经网络构建方法 | |
Lee et al. | MPQ-YOLACT: Mixed-Precision Quantization for Lightweight YOLACT | |
CN112487927B (zh) | 一种基于物体关联注意力的室内场景识别实现方法及系统 | |
CN116453033A (zh) | 一种视频监控场景下高精度低算量的人群密度估计方法 | |
Zhang et al. | A review of small target detection based on deep learning | |
CN116957045B (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 |