APP下载

基于卷积神经网络的毫米波图像人体隐匿物检测

2018-09-12吴晓峰杨明辉孙晓玮

复旦学报(自然科学版) 2018年4期
关键词:滑动灰度卷积

骆 尚,吴晓峰,杨明辉,王 斌,孙晓玮

(1.复旦大学 电磁波信息科学教育部重点实验室,上海 200433; 2.复旦大学 信息学院智慧网络与系统研究中心,上海 200433; 3.中国科学院 上海微系统与信息技术研究所,上海 200050)

近年来,潜在的犯罪行为和恐怖活动使得机场、火车站等人流密集处的安防越来越受到重视,进而促进了武器、禁运品、爆炸物等人体安全检测系统的发展[1].自9·11事件之后,美国首先对毫米波成像系统进行了研究,并率先用于机场等公共场所的人体安检;而在国内,毫米波成像系统用于人体安检的产品尚为空白,所以研究以及开发毫米波成像的人体隐匿物检测系统对我国的安防领域具有重大意义[2].

毫米波图像中人体隐匿物的检测算法通常包括图像去噪和隐匿物检测两个步骤.图像去噪的目的在于提高图像的信噪比,常用的去噪方法有高斯平滑滤波[3]、非局部均值[4]、各向异性扩散[4]和形态学去噪[5]等.隐匿物检测方法基本可分为两类: 基于图像分割和基于目标检测.基于图像分割的方法着重于毫米波图像中隐匿物的纹理信息,如通过Otsu阈值法[6-7]或者基于灰度统计特征参数[8-10]来分割隐匿物,这类方法原理简单,速度较快,但丢失了物体的结构信息,依赖于隐匿物与背景、人体结构等灰度信息之间的差异性,不适用于隐匿物灰度值与背景、人体等灰度值相近的毫米波图像.基于目标检测的方法是将深度学习(Deep Learning, DL)框架卷积神经网络(Convolutional Neural Network, CNN)应用在毫米波图像的目标识别上,目前这类方法研究较少,文献[11]利用简单修改后的Lenet5[12]判别毫米波图像中是否含有隐匿物,虚警率较高且无法对隐匿物定位,但是将深度学习应用于毫米波图像的隐匿物检测具有一定的理论价值和应用前景.

深度学习源于人工神经网络(Artificial Neural Network, ANN),能通过组合简单直观的低层特征形成复杂的高层特征,从而实现对数据特征的自动提取[13].目前深度学习主要应用于自然图像,文献[14-18]等探讨了CNN在自然图像中目标检测任务的重要性和有效性.相较于自然图像,毫米波图像信噪比较低,并且隐匿物的纹理信息很可能与背景、人体结构等处差异较小,因此采用深度学习进行人体隐匿物检测也可能存在不小的困难.此外,深度学习的训练阶段需要大量的训练样本,数据库样本量过小易造成过拟合,从而使训练得到的网络泛化能力较差.由于毫米波成像系统研发的技术难度和使用成本问题,目前毫米波图像样本较少,因此采用文献[14-18]中的算法极有可能造成过拟合.

针对上述采用深度学习的毫米波图像中人体隐匿物的检测问题,本文提出一种基于CNN的人体隐匿物自动检测算法,主要分为4个步骤: 首先,基于IoU(Intersection over Union)指标对毫米波图像通过滑动窗进行正负样本选择,考虑到实际情况下人体携带隐匿物尺寸有限,因此滑动窗的大小来自于数据集中隐匿物尺寸的统计平均,这种基于先验知识的滑动窗样本选取方法可克服目前毫米波图像数据库训练集不足的问题,基本满足了深度学习对训练集数量的要求;其次,基于本文新提出的IoG(Intersection over Ground-truth)指标对候选正负样本进行进一步筛选,可扩大正负样本间的特征差别,使得训练得到的CNN模型泛化能力更强;然后,CNN模型对滑动窗截取的图像块提取多层特征并自动分类,若该区域属于可疑目标的概率大于所设定的阈值则将该区域标记为可疑区域;最后,综合所有的可疑区域叠加得到可疑目标热度图,进而确定可疑目标的位置.

1 模型构建

1.1 卷积神经网络

CNN是模仿生物的视觉机制而提出的一种局部连接的多层网络,它是根据1959年Hubel和Wiesel[19]发现的猫视觉神经系统从简单细胞到复杂细胞再到超复杂细胞的层级信息处理的过程,以及1980年Fukushima模仿生物视觉提出的神经认知机(neocognitron)[20]而构建的网络.CNN的具体结构可以各有不同,但是其基本组成模块相差无几,一般由卷积层(Convolution Layer),池化层(Pooling Layer)和全连接层(Full Connection Layer)组合而成.本文的CNN网络包括3个卷积层、3个池化层和2个全连接层,如图1所示.

图1 本文的CNN网络结构示意图Fig.1 CNN architecture of the proposed method

卷积层的作用是学习输入的特征表达,由图1可以看出,同其他神经网络不同的是,经过卷积层计算得到的特征图(Feature Map)上的神经元只和前一层的神经元进行局部连接.假设,卷积核窗口是大小为c的正方形,用n个卷积核对输入图像进行卷积操作可得到n个特征图,那么第m个卷积层的第k个特征图的输出为:

(1)

(2)

池化层通过下采样降低特征层的参数,通常将池化层放在2个卷积层之间,将池化操作记为ρ(·),则可得到池化后的特征图为

(3)

其中:Rij是卷积层的输出图在(i,j)位置上池化窗口的区域;通过池化降采样后得到的特征图上的位置记为(i*,j*).一般池化操作可采用最大池化法(Max Pooling)[21],最大池化是选取区域Rij中的最大值作为输出.

多个卷积层和池化层之后是一般神经网络中常见的全连接层.全连接层将前一层所有神经元的输出都与本层所有神经元的输入相连接以生成全局的语义信息(Semantic Information).最后一个全连接层的输出被送往输出层的输入,该层根据不同的任务可定义不同的操作,比如对于多分类(Multi-class Classification),通常使用softmax运算[22].

用θ表示CNN的网络结构参数,N为输入数据数量,CNN的输入数据、标签数据和输出表示为{(xn,tn,yn);n∈[1,2,…,N]},那么CNN网络的损失函数为

(4)

因此,CNN的训练可看作网络映射的优化问题,通过训练集中已知输入以及对应标签的数据,以最小化式(4)的损失函数为优化目标,使用梯度下降来寻找网络的最优参数θ[23].

1.2 模型设计

中科院上海微系统所[2]为我们提供数百张毫米波人体成像数据,其中隐匿物包含手枪、手机、皮带、小刀、肥皂、扳手、矿泉水瓶、钳子、榔头等多种类型.部分隐匿物示例如图2所示,其中白色方框表示隐匿物的标记位置(Ground Truth),可以看到以下信息: 人体的骨骼在图像中一般比较亮,而非骨骼的身体和背景通常很暗;隐匿物大小、位置等各不相同;图像信噪比较低,多张图片甚至人眼都难以观察到隐匿物的位置.

直接应用CNN进行人体隐匿物检测的难点主要概括如下: 仅有的数百张毫米波图像对于深度学习来说远远不够,若直接以此作为训练集则CNN模型易发生过拟合现象;部分隐匿物如榔头、扳手等与人体手臂结构较为类似,对图像局部的尺寸调整可能会导致CNN网络误把人体手臂检测为隐匿物;各种隐匿物尺寸大小不一,并且其所在区域像素灰度信息各不相同.

图2 毫米波成像的人体隐匿物示例Fig.2 Examples of concealed objects in millimeter wave images

针对以上问题,本文提出了基于CNN的毫米波图像中人体隐匿物检测方法,分为训练阶段和测试阶段两个部分,如图3所示.

图3 本文方法的框图Fig.3 Framework of the proposed method

本文方法训练阶段的步骤如下:

步骤1 从数据集的正样本图像(即含有隐匿物的图像)中抽取80%作为训练阶段的正负图像块样本的来源;

步骤2 对步骤1中的图像进行滑动窗截取操作,并基于IoU和IoG指标筛选得到正负样本图像块;

步骤3 由于步骤2中的负样本数量远多于正样本,因此从负样本中随机不放回地抽取与正样本同等数目的图像块,从而得到用于CNN训练的正负样本图像块;

步骤4 将步骤3中的正负样本图像块按照8∶1∶1的比例分配得到训练集、验证集和测试集,利用训练集和验证集对模型进行参数调整,利用测试集对CNN模型进行性能定量分析.

本文方法测试阶段的步骤如下:

步骤1 在输入图像上利用滑动窗截取图像块,并送入CNN模型进行测试,得到所有可疑区域;

步骤2 生成一个与输入图像等高等宽但像素值全为0的二维图像,若步骤1中局部图像块被判别为可疑区域,则将新二维图像中与此图像块对应区域的所有像素值加1,从而得到整幅图像的可疑目标热度图;

步骤3 若可疑目标热度图的最大值小于某个经过优化的既定阈值probthr(参见式(9)),则判决该输入图像不存在隐匿物,否则执行步骤4确定隐匿物位置;

步骤4 将可疑目标热度图中值较小的像素值置0,并进行八连通规则的区域划分,从而得到隐匿物的位置.

1.3 训练集的生成

图4 IoU和IoG的比较Fig.4 Comparison between IoU and IoG

首先对训练集中隐匿物的大小进行统计,在其均值附近进行滑动窗尺寸的筛选.其次,通过滑动窗口和隐匿物标记位置的重叠程度来选取训练集中的局部图像块作为图像块级别的正负样本.本文采用了两个评价指标来判别滑动窗口和标记位置的覆盖程度: 传统的IoU和文中提出的IoG.

若Rslide表示滑动窗的矩形区域,Rgt表示隐匿物标记位置的矩形区域,∩表示取交集,∪表示取并集,则IoU定义为:

(5)

在实际的毫米波图像中,人体携带的隐匿物尺寸有限,尽管IoU值较低,但滑动窗图像块仍然包含了隐匿物的大部分甚至全部信息.如图4所示,其中红色方框表示隐匿物的标记位置,黄色方框表示滑动窗的位置,可以看到,红色方框和黄色方框的IoU值虽然较低,但仍然可以将滑动窗所截取的图像块视为正样本.

基于此,本文提出了一个新指标IoG,定义为:

(6)

在IoU的基础上,通过IoG对正负样本进行更加精确地筛选,以此扩大正负样本间的特征差异. 具体做法为: 若局部图像块与标记位置的IoU高于阈值IoUthr,则将该局部图像块标记为正样本;若局部图像块与标记位置的IoU低于阈值IoUthr,但是IoG超过阈值IoGthr,亦将该局部图像块标记为正样本;反之,则标记为负样本. 因此,训练阶段滑动窗图像块正负样本的判定包含3种方式: 基于IoU指标以选定的滑动窗尺寸在整幅图像上自左向右、自上而下地滑动,滑动间隔为slideimg;基于IoU指标在隐匿物体标记位置的长和宽的1/2邻域内进行滑动,滑动间隔为slideimg;基于IoG指标在隐匿物体标记位置的长和宽的1/2邻域内滑动,滑动间隔为slidegt.

引入IoG指标的原因在于: 某些隐匿物的尺寸可能小于选定的滑动窗尺寸,导致隐匿物位置处IoU指标较低;榔头、扳手等类型的隐匿物,其部分区域的信息特征已足够表达其整体的主要信息特征.这样人工选择正负样本的好处是: 一方面,使得原有的数据集样本数量得到扩展,满足了深度学习对训练集样本数量的要求;另一方面,在特征空间上扩大了正负样本间的差异性,有利于神经网络的特征自动选取.

1.4 训练和测试过程

训练阶段,所有可调参数的初始值都采用随机生成,在已知正负训练样本的情况下,用式(1)和(2)计算卷积层的输出,用最大池化法计算池化层的输出,利用BP算法[23]优化式(4)最终获得能区分正负样本的所有参数.

测试阶段,输入毫米波人体图像全图后,首先初始化一个与输入图像等宽w等高h的二维矩阵Iprob,其每个像素值为:

Iprob(i,j)=0 ∀i∈{1,2,…,h}, ∀j∈{1,2,…,w}.

(7)

然后通过覆盖区域可重叠的滑动窗在输入图像上滑动截取得到局部图像块,每一个滑动窗截取的图像块通过已训练好的CNN网络计算输出,来判定该区域进行是否存在隐匿物,若其输出大于阈值softmaxthr则判为可疑区域,该区域中每个像素值加1,如下式所示:

(8)

其中:r代表滑动的局部图像块;(i,j)表示该滑动窗图像块的每一个像素位置;CNN(·)表示该滑动窗所截取的图像块通过CNN网络计算得到的存在隐匿物的概率.当滑动窗遍历整个输入图像后,采用式(8)将所有的可疑区域综合即可得到全图的可疑目标热度图.

若可疑目标热度图的最大值小于阈值probthr,则该输入图像没有隐匿物存在;反之,则该输入图像存在隐匿物携带.其中阈值probthr定义为:

(9)

若可疑目标热度图存在隐匿物,对其进行以下操作:

(10)

其中:Iprob(i,j)表示可疑目标热度图中的每一个像素点;Iprob_thr为常数,表示热度图对噪声的抗干扰程度.这样可以将可疑概率较小的区域去掉,同时可以区分开不同隐匿物,达到对多种隐匿物同时检测的目的.然后对再对Iprob进行八连通区域的划分,在每一个连通区内,将该连通区域内最大值的0.9倍以下的像素置0,剩下的区域为隐匿物的检测位置.

2 实验结果与分析

实验采用的计算机硬件配置为Intel(R) Core(TM) i7-6700K CPU@4.00HZ,内存为32GB,其软件运行环境为Windows 10操作系统,程序使用MATLAB R2015b编写,其中CNN模型由开源框架MatConvNet[24]训练得到.

2.1 实验数据

携带有隐匿物的人体毫米波图像视为正样本,反之不携带隐匿物的人体毫米波图像视为负样本.本文的实验数据来源于中科院上海微系统所[2]提供的728张人体毫米波图像,其中正样本680张(其中包含的隐匿物及其图像数目分别为: 手枪37、手机125、皮带8、小刀84、肥皂83、扳手109、水瓶90、钳子74、榔头70),负样本48张.该数据集由两部分组成: 一部分,正样本图像280张,负样本图像8张,大小均为380×127;另一部分,正样本图像400张,负样本图像40张,大小均为365×152.对680张已标记样本图像的隐匿物的尺寸进行统计,如表1所示.

如1.2节所述,将728张毫米波图像随机分为训练图像(544张正样本图像)和测试图像(136张正样本图像和48张负样本图像),以训练图像为基础,按1.3节所述的训练集生成方法,产生正负局部图像块样本,实验中滑动窗大小为30×30,阈值IoUthr取0.3,IoGthr取0.8,slideimg取4,slidegt取2,均由多次交叉实验给出.由于图像块正样本数量远远小于负样本数,实验中随机挑选等量的图像块负样本,从而构成平衡训练数据集并按照1.2节训练阶段操作对CNN进行训练,为了消除其随机性,对1.2节中训练阶段的步骤3和步骤4分别进行了10次独立的重复实验操作.

2.2 评判指标

在实验中,训练阶段采用的评判指标为查准率(Precision)、查全率(Recall)和F-Measure.查准率定义为:

(11)

查全率定义为:

(12)

根据查准率和查全率得到的F-Measure定义为:

(13)

其中:β是平衡查准率和查全率的参数;P是查准率;R是查全率.测试阶段采用的评价指标为检测率(True Positive Rate, TPR)和虚警率(False Positive Rate, FPR),其中检测率的定义与式(11)相同,虚警率的定义为:

(14)

2.3 算法分析

本文算法的训练阶段中基于IoU和IoG指标的滑动窗图像块的正负样本选取和测试阶段中可疑目标热度图的生成是两个比较关键的环节,本节将用实验说明这两部分的重要性.

2.3.1 训练阶段实验分析

本文按1.3节所述方法生成的局部图像块随机抽选10%组成的测试集上进行了10次独立重复实验,CNN网络的训练参数如下: 学习率为固定值0.001,mini-batch的大小取100(即每输入100张图像更新一次权值),训练循环次数(epoch)取30.本文训练阶段针对图像块的10次重复独立实验的检测结果如表2所示,可以看出,人工选择正负样本后得到扩充的数据集在CNN的框架下取得了较好的分类结果.

注: 均值(方差)分别为95.6(1.7),97.6(0.8).

表3 滑动窗操作以及去噪的分析

注: √表示对应的操作方法执行.

2.3.2 测试阶段实验分析

图5 测试阶段10次独立重复实验的检测率和虚警率Fig.5 TPR and TPR of ten independent experiments in test stage

将表2中10次实验的CNN模型分别应用于测试集整张毫米波图像的隐匿物检测,检测过程如图3所示,本文中参数softmaxthr取0.8,参数Iprob_thr取0.4.很明显,阈值probthr的变化影响着测试集的TPR和FPR,不同阈值下,2.3.1节中10次实验的CNN模型在测试集上的TPR和FPR如图5所示,其中上半部分表示TPR,下半部分表示FPR,同种颜色和标记的TPR和FPR表示同一次实验的检测结果.由图5可以看出,本文方法的检测结果中,10次独立重复实验的TPR较高,FPR较低,但是10次实验结果在同一阈值下的有一定的波动,这是因为正负样本的选取过程中,负样本的个数远大于正样本,随机选择不同负样本导致CNN网络学习到的特征略有差异.

为了平衡取值TPR和FPR,本文定义指标BoTF(Balance of TPR and FPR)表示TPR和FPR相对于理想情况(TPR=1,FPR=0)的距离,其定义式为:

(16)

则不同阈值probthr下BoTF的变化如图6(a)所示,因此本文取阈值probthr为27,此时TPR为88.5%,FPR为13.5%.不同阈值probthr下平均TPR与平均FPR的关系如图6(b)所示,可以看出平均TPR随着平均FPR的降低而降低,因此实际情况中可根据最终需求指标选择阈值probthr.

图6 阈值probthr的选择Fig.6 Selection of threshold parameter probthr

2.4 识别结果

测试集上隐匿物检测正确部分示例如图7所示,为了显示方便,将示例图样统一到相同尺寸(图8进行同样的处理),其中红色方框表示隐匿物标记位置位置,黄色方框表示本文算法检测的位置.实验表明,本文的算法对各种不同类型的隐匿物检测都具有较好的结果.受益于可疑目标热度图的设计,与扳手、钢管等物体类似的易被误判的手臂在可疑目标热度图上的亮度值很低,图7中均去除其对检测结果的影响.图7(a)和(b)中隐匿物和人体灰度值接近,因CNN模型学习到的隐匿物的结构信息,因此可将其准确定位;图7(c)和(d)中隐匿物均位于胸前,前者隐匿物相对于人体较亮而后者隐匿物相对于人体较暗,尽管定位精度不高,但是本文算法仍然检测出隐匿物的主体部分.图7(e)与图7(a)~(d)来源于不同的毫米波成像系统,本文算法依然准确检测出隐匿物位置.

图7 检测正确示例Fig.7 Examples for correct detection

图8 检测错误示例Fig.8 Example for wrong detection

图8给出了4个检测失败的案例,其中图8(a)和(b)图像中含有隐匿物,以红色方框标识,图8(c)和(d)中不含任何隐匿物,4个示例中黄色方框均表示本文算法检测到的隐匿物位置.图8(a)中隐匿物灰度值与人体接近,同时又缺乏明显结构信息,因此未能正确检出;将手部错误检出的原因在于手掌中心形成的空洞相对于手掌其他位置较暗,因此本文模型可能将手掌误识别为肥皂等物体;将膝盖处错误检出的原因在于膝盖下部与膝盖上部组合结构类似于手机等物体;将胯下错误检出可能因为胯下成像含有线形噪声,从而误识别为棍棒等物体.图8(b)未能检测出隐匿物,原因在于腰部两侧在滑动窗取样的过程中,一般会因两侧的背景丢失掉1/4的滑动位置,若隐匿物结构或灰度信息不够明显,本文算法很可能无法将其识别.图8(c)和(d)中图像均有较大散射噪声,叠加在人体之上,使得本文算法误将其识别为隐匿物.这些错误检测的实例需要在以后的工作中进一步改进.

2.5 与其他算法的对比

本文算法与文献[7-8,11]的算法在测试集(136张正样本图像和40张负样本图像)上的实验对比结果如表4所示,为了与2.3.2中本文实验结果进行对比,亦取文献[7-8,11]算法的10次独立重复试验的检测结果平均值.

从表4的比较结果可以看出,本文算法在TPR和FPR上均有明显优势.文献[7]和[8]虽然采用了不同的图像分割算法,但是都是从图像的灰度信息入手,虽然实现速度较快,但是丢失了隐匿物的结构信息等,从理论上讲只能检测灰度信息与人体差别比较明显的隐匿物,因此在我们含有不同材质的隐匿物的数据集上无法取得较好的结果.文献[11]采用以Lenet5为基础,将滤波器个数稍作修改以适应其训练数据,没有考虑毫米波图像与自然的差异性,另外,作为分类网络Lenet5只能用作分类任务,而无法对隐匿物进行定位.相比之下,本文算法在兼顾图像灰度信息的同时,可利用CNN学习到隐匿物的结构信息.同时,在训练阶段采用IoG指标来生成正负样本,扩大了正负样本间的特征距离,增强了CNN模型的泛化能力.

图9 隐匿物检测结果对比Fig.9 Comparison among detection results of different methods for concealed object detection

本文算法与文献[7]和[8](文献[11]无法输出隐匿物位置)的一些检测结果对比示例如图9所示,其中红色方框表示隐匿物的标记位置,黄色方框表示各算法检测的隐匿物位置.在2幅图像中,本文算法均能准确定位到隐匿物的位置.文献[7]和[8]均能检测出图像1中的隐匿物,但是两者均对其他如手部或腿部等位置得到误识别的检测结果;对于图像2,文献[7]和[8]均未检测出其中的隐匿物,同时在手部、腿部或腹部等位置也得到了误识别的检测结果.可以发现,仅仅依靠灰度信息的检测算法,无法对多种材质的隐匿物进行有效的检测,同时其他与隐匿物灰度值相近的位置易被误检,而CNN网络可学习到隐匿物的灰度和结构信息,因此得到了较好的检测结果,降低了干扰目标的误导性.

3 结 语

本文提出了一种基于卷积神经网络的人体隐匿物毫米波成像检测算法,该模型基于IoU指标筛选通过滑动窗截取的图像块,扩大了数据集样本的数量从而满足了CNN网络对训练集数目的要求,同时通过新提出的IoG指标扩大了所选正负样本间的特征差别,使得CNN模型泛化能力得到提高.测试时,综合可疑的局部图像块输出得到可疑目标热度图,进而提取出隐匿物的位置.本文结合CNN通过学习获得特征自动提取能力的优势,将对人体隐匿物的检测转化为隐匿物可疑目标热度图,经过参数调优之后,可对多种隐匿物进行有效的检测.当前方法的不足在于采用滑动窗的方式使得运行速度较慢,这也是以后模型改进的重点.

猜你喜欢

滑动灰度卷积
采用改进导重法的拓扑结构灰度单元过滤技术
基于3D-Winograd的快速卷积算法设计及FPGA实现
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
从滤波器理解卷积
一种新型滑动叉拉花键夹具
Big Little lies: No One Is Perfect
基于傅里叶域卷积表示的目标跟踪算法
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算
滑动供电系统在城市轨道交通中的应用