2. 北京多维视通技术有限公司, 北京 100070;
3. 中国科学院自动化研究所, 北京 100190
2. Beijing Visystem Co., Ltd., Beijing 100070, China;
3. Institute of Automation, Chinese Academy of Sciences, Beijing 100190, China
开放科学(资源服务)标志码(OSID):
枪支种属识别是涉枪案件物证检验的基础,对涉枪案件的侦查和检验具有重要意义[1-2]。枪支种属识别以外形特征作为主要判定因素,长期以来,检验人员在进行识别时主要以工作经验为主,以查阅书籍、文献资料等为辅,导致查询效率较低。随着涉枪案件现场物证勘查勘验对时效性的要求越来越高,枪弹痕迹检验领域迫切需要一种快速且准确的枪支识别技术。
境外一些国家和地区的法庭科学机构曾对以图像识别为基础的枪种识别展开研究,多数通过传统图像识别技术进行枪支识别,且大多利用外形特征提取某个特征点,然后利用特征进行匹配以获取检索结果[3-5]。印度法庭科学实验室的MURTHY等[4]创建一个包含254张图像的9 mm手枪检索库,以枪支整体形状、握把、扳机等部位作为人工标定的特征点来进行检索和识别。中国台湾地区中央警校法庭科学部门的WEN等[5]对枪支图像进行外形轮廓特征提取和优化,计算枪支图像轮廓边缘到重心的距离分布,以前3个峰值点的位置作为对比特征,构建一个包含300支手枪库容量的检索库。目前,中国大陆较少有对以图像识别为基础的枪种识别展开研究,但有研究人员对枪支图像的特征提取与识别进行分析,大多利用传统图像匹配技术获取图像的特征值以进行枪支与非枪支识别,对于枪支集合下不同种类的枪支识别没有进一步研究。例如:冯艳平等[6]在太赫兹(THz)图像上进行阈值分割和边缘检测,计算枪的面积、长度、宽度以及枪管与枪托之间的夹角,以区分枪支与非枪支;和睿等[7]探索结合Canny特征和矩阵相似度理论的图像检索算法,并在手枪图像的检测和检索方面进行实验;张树江等[8]设计一套枪弹痕迹图像识别系统,通过利用基于小波直方图的图像检索方法在数据库中检索与目标图像最相似的样本图像,从而为枪弹检验人员提供参考。
上述研究主要采用传统的模式识别方法,通常包含特征提取和分类器设计2个步骤。其中,特征提取由人工设计特征,需要依靠设计者大量的先验知识,而对于枪支图像这类特殊的图像,先验知识难以挖掘;传统分类器大多结果较为简单,难以通过多个简单阈值完成复杂的图像识别任务。上述问题导致目前已有的枪支识别算法大多只能研究单一枪种,特征提取单一,数据库容量小,无法满足实际应用的需求。基于深度学习的方法[9]可以更好地处理图像分类任务,相比于传统机器学习,深度学习方法(如深度卷积神经网络[10])采用更深、更多层的卷积结构,利用大规模的训练数据集以端对端的方式来训练网络中的权重参数,从而实现目标特征的自动提取和分类,克服人工提取设计特征的缺陷,且更容易学习到深层次的语义特征[10-11]。
一般认为,网络层数越深,模型表达能力越强,但是深层网络也带来了许多问题,如模型过拟合、梯度消失等。残差网络(ResNet)[12]通过引入捷径连接,学习信息的差值并增加梯度传播,从而有效避免网络层数增加导致的训练误差增大、模型退化问题。残差网络被广泛应用于目标检测、姿态估计、图像识别等任务[13]。例如:文献[14]提出一种改进的残差网络,结合交叉熵损失函数与中心损失函数完成人脸识别,其在测试数据集上取得了97.46%的准确率;文献[15]提出一种基于RestNet101的头部姿态估计方法,其利用残差网络结合回归损失预测欧拉角以表示头部姿态;文献[16]采用152层残差网络架构,对花卉图像的特征进行自动提取,实现了一种基于迁移学习的花卉识别系统。
本文采用基于深度学习的方法,通过改进和优化深度残差网络模型的训练方式,使之适用于种类多、样本少的大规模枪支图像识别任务。
1 制式枪支数据集构建枪支数据集是枪支图像检索的基础,枪支图像的质量影响枪支图像检索算法的精度。因此,为了保证枪支图像数据集的图像质量,本文制定枪支图像数据集的图像采集和图像增强规范。
1.1 枪支图像采集为了保证枪支图像数据集的图像质量,本文参考《比例照相方法规则(GA/T 158-1996)》拍摄枪支物证照片的操作原则,制定图像采集规范如下:在拍摄前,解除枪支的附件或配件,如瞄准镜、消音器等,仅保留枪支本体,并且使枪支处于原始状态;在拍摄时,枪支主体与相机镜头角度垂直,枪支主体应位于图像的中心位置,枪管与水平面平行,枪支的外形特征清晰,光线均匀,背景为纯色;一般应拍摄左右两面的枪支照片,并且拍摄枪支标识等细目照片。
按照图像采集规范,本文通过实物拍摄、图册扫描、互联网查询下载等方式,采集到国内外54个国家和地区共7 364种枪支,38 156张枪支图像,其中,枪支整体图像数为21 128,枪支细目图像数为17 028,枪支种类包括手枪、步枪、猎枪、冲锋枪、机枪等,具体情况如表 1所示。部分枪支图像样本示例如图 1所示。
![]() |
下载CSV 表 1 枪支图像数据集信息 Table 1 Dataset information of firearms images |
![]() |
Download:
|
图 1 枪支图像数据集样本示例 Fig. 1 Sample example of the firearms images dataset |
由于枪支图像样本较少,为了获取足够多的数据量以学习枪支型号的鲁棒信息,本文使用深度学习中常用的数据增广方法来对枪支图像进行增强[11]:首先,将原始图像统一调整到256像素×256像素;然后,对图像进行裁剪,截取主要以中心裁剪为主,取大小为224像素×224像素,每张截取的图像都进行左右翻转、上下翻转,调整图像亮度,亮度调整因子设置为0.2。
2 深度网络模型设计及检索系统本文检索系统的开发目标是在自建的制式枪支图像数据集基础上,实现对涉案制式枪支图像中枪支种类信息的自动识别。一方面,由于制式枪支种类多,往往需要层数较深的卷积神经网络来实现分类;另一方面,由于每种枪支的图像样本数量非常有限,采用较深层的神经网络模型极易产生过拟合问题。相比于普通卷积神经网络,ResNet[13, 17]增加了捷径连接,捷径连接可以学习信号的差值,从而有效避免网络层数增加导致的训练误差增大、模型退化问题。因此,本文采用残差网络作为枪支图像识别的基准模型。
2.1 深度残差网络基本结构深度残差网络基本结构如图 2所示,右侧分支称作残差分支,左侧部分称作本体分支,
![]() |
Download:
|
图 2 深度残差网络基本结构 Fig. 2 Basic structure of depth residual network |
在深度残差网络中,为了保证网络的稳定性和准确性,每个残差单元都包含3个基本算子,分别为批归一化(Batch Normalization,BN)算子、激活算子、池化(Pooling)算子[18]。BN算子对激活函数的输入进行归一化,相当于增加一个约束,限定网络的配置空间,从而有效解决输入数据发生偏移和增大的问题,避免梯度消失和梯度爆炸现象。对于输入的一批(Batch)样本
$ {x}_{i}^{\text{'}}=\frac{{x}_{i}-{\mu }_{B}}{\sqrt[]{{\sigma }_{B}^{2}+\epsilon }} $ | (1) |
其中:
对于池化算子,针对枪支识别问题,本文在初始输入特征时采用最大池化(Max Pooling),可以更好地保留图像纹理特征;在最后一个卷积层的特征图上,采用全局平均池化(Average Pooling),这样更有利于保留整体数据信息,得到用于枪支检索的高级特征。
2.2 枪支图像识别网络模型设计枪支图像数据集中枪支类别多(上千种类别),每种枪支图像的样本又很少(每种类别的枪支图片平均只有2~3张),导致难以实现稳定的网络训练,网络训练非常容易过拟合。因此,本文构建一种新的多任务级联残差网络模型,该网络模型共包含4个任务,或称为4个阶段,从而实现由粗到细的枪支图像分级识别和检索:第一阶段实现枪支图像的左右朝向分类;第二阶段从枪族的概念出发,将从同一个枪族发展变种而来的枪支类型合并为一类,称为枪族类(IDFamily);第三阶段依据每个大类中枪支图像的外观,将较为相似的枪支和明显不相似的枪支再次进行合并和分类,称为相似类(IDSimilar);第四阶段则细分到具体型号的枪支类型,称为原始类(IDorigin)。网络模型中包含的这4个阶段均采用Softmax损失函数[19]输出其分值,如式(2)所示:
$ \mathrm{S}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x}\left({f}_{y}\right)=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\mathrm{ }\left({f}_{y}\right)}{\sum\limits _{i=1}^{K}\mathrm{e}\mathrm{x}\mathrm{p}\mathrm{ }\left({f}_{i}\right)} $ | (2) |
最后,整个网络模型通过融合这4个阶段Softmax损失函数的输出,共同约束需要查找的枪支图像和库中的枪支图像的相似度,训练深度网络模型参数,从而获取高级检索特征。
此外,针对基于深度残差网络的枪支图像识别任务,本文尝试18层残差网络(ResNet18)、50层残差网络(ResNet50)和101层残差网络(ResNet101),对比实验结果发现,ResNet18网络可以满足应用要求,并且由于其网络层数较少,模型不容易出现过拟合问题。
改进后的多任务级联残差网络整体结构如图 3所示,其中共包含4个阶段,每个阶段(StageN,N=1,2,3,4)中都包含一个2.1节所述的基础网络,该基础网络是一个包含BN、ReLU和Pooling的ResNet18。在每个Stage,信息传递有2条支路,右侧为残差分支,左侧为本体分支。1×1的卷积层加在残差分支,可以在改变输出通道数的同时提高非线性特性,进一步提升模型表现能力。
![]() |
Download:
|
图 3 枪支识别系统网络架构 Fig. 3 Firearms identification system network architecture |
整个枪支识别系统模型的步骤如下:
步骤1 创建一定数量的枪支图像样本,采用代码自动化处理及人工处理相结合的方式将枪支图像粗分为整枪、枪支部件和标记错误图像,并剔除无法识别的图像。
步骤2 对图像样本进行剪裁及翻转,再将样本按人工经验提取出部分数据,按所属类别进行分类,拆分成训练集和测试集。
步骤3 将处理好的图像输入进行7×7卷积、BN、ReLU激活及最大池化操作。
步骤4 瓶颈块结构如图 3中StageN模块所示,右侧为残差分支,左侧为本体分支。对于本体分支,首先对输入数据进行3×3卷积、BN及第一次ReLU非线性激活,接着将得到的特征送入下一层网络,再进行一次卷积和BN操作;对于残差分支,对输入数据进行1×1卷积、BN然后作为输出,与左侧分支特征图进行合并,进行第二次ReLU激活;随后将第二次ReLU非线性激活的输出结果作为输入,送入本体分支进行3×3卷积、BN及第三次ReLU非线性激活,进一步进行3×3卷积、BN处理得到相应的特征图。本体分支特征图与残差分支特征图相合并,进行第四次ReLU激活,整个过程构成网络的一个阶段(Stage)。
步骤5 枪支识别网络模型由依次相连的4个Stage组成,每一段网络结构类似。对第四阶段(Stage4)输出的枪支二维特征图,在池化层进行全局平均池化,然后接入全连接层,并通过Softmax层进行归一化处理,采用4个Softmax损失函数联合作用,约束枪支的左右朝向、枪族属性(IDFamily)、相似枪支类(IDSimilar)和精确的枪支型号(IDorigin)。
步骤6 将ImageNet[20]上预训练模型的权重加载到改进ResNet上对应的层,设置学习率、Batch大小、权重衰减正则项等参数。对训练数据进行迭代训练,保存多次训练中最高识别精度的模型权重,并在测试集上加载训练好的模型进行测试,从而验证模型精度。
2.3 枪支图像自动识别与检索系统根据枪支图像识别算法的应用需求,本文设计一种枪支图像检索系统,该系统基于B/S架构,部署于公安网,采用Java开发语言。系统以枪支图像数据集和枪支基础信息数据库数据作为支撑,以枪支图像检索算法为核心功能,通过上传枪支物证图像,为用户提供枪支图像自动识别和信息查询等服务。枪支图像检索系统架构如图 4所示。
![]() |
Download:
|
图 4 枪支图像检索系统架构 Fig. 4 Firearm images retrieval system architecture |
枪支图像检索系统包括图像上传、图像比对、信息查询3个功能模块。用户按照要求将图像上传到系统后,枪支图像检索算法自动提取所上传枪支图像的特征,并与系统中枪支图像数据集的图像特征进行比对,按照相似度由高到低依次排列识别到的枪支图像。用户可以选择枪支图像查阅枪支详情并进一步确认查询结果,如图 5所示。
![]() |
Download:
|
图 5 对比结果页面 Fig. 5 Comparison results pages |
本文所提制式枪支图像识别系统基于PyTorch深度学习框架构建,采用Java语言搭建实现前端业务系统。系统测试环境为Ubuntu16.04操作系统,Intel Core i7处理器,GTX1080Ti显卡,显存11 GB。模型训练采用Adam优化算法,批次大小(Batch size)设为32,初始学习率设为10-4,在经过30个轮次的训练后,学习率逐步衰减到10-6。评估指标主要包括:
1)前n位命中概率(Rank-n),即将待检索的图像输入识别网络提取特征后,计算其与数据库中各类枪种图像特征的欧式距离,以该距离作为相似度从而对检索结果进行排序,排序结果中最靠前的n张图像中有正确结果的概率。Rank-n具体计算如式(3)所示:
$ R\left(n\right)=\frac{\sum\limits _{i=1}^{N}A\left({n}_{i}\right)}{N} $ | (3) |
$ A\left({n}_{i}\right)=\left\{\begin{array}{l}1, \mathrm{前}n\mathrm{个}\mathrm{结}\mathrm{果}\mathrm{中}\mathrm{有}\mathrm{第}i\mathrm{张}\mathrm{图}\mathrm{像}\mathrm{所}\mathrm{属}\mathrm{类}\mathrm{别}\\ 0, \mathrm{前}n\mathrm{个}\mathrm{结}\mathrm{果}\mathrm{中}\mathrm{没}\mathrm{有}\mathrm{第}i\mathrm{张}\mathrm{图}\mathrm{像}\mathrm{所}\mathrm{属}\mathrm{类}\mathrm{别}\end{array}\right. $ |
其中:N为待检索的图像总数量。
2)模型推理速度,即每秒可以处理的图像帧数(Frame Per Second,FPS)。
测试样本从枪支测试数据集中选取,检索数据集为本文2.1节所述的自建枪支数据集,共包含7 364种类型的枪支。在枪种的挑选上,从实战应用的角度出发,用于测试的枪支图像涵盖了国内常见制式枪支,如51式7.62 mm手枪、54式7.62 mm手枪、56式7.62 mm冲锋枪、64式7.62 mm手枪、92式9 mm手枪、56式半自动手枪等,同时包括国外知名枪支,如格洛克17手枪、伯莱塔92F手枪、西格绍尔P229手枪、鲁格P85手枪等,共计874种枪支类型,1 018张枪支图像。
3.2 结果分析将3.1节所选取的1 018张测试枪支图像逐一输入本文所搭建的制式枪支图像检索系统,提取测试图像的深度特征,并与数据库中每类枪支图像的深度特征进行比较,计算其欧式距离,按照欧式距离的相似度对库中检索的每类枪支图像排序输出,记录排序结果,获取前n位命中的检索结果。同时,除了与经典残差网络(ResNet)模型[12]进行比较,还和近期主流分类网络模型EfficientNet[21]、专门用于细粒度图像分类的网络模型NTS-net[22]进行比较。表 2所示为采用本文模型、残差网络ResNet18、ResNet50、EfficientNet和NTS-net对相同样本进行训练后的测试结果,其中,检索库枪支种类数为7 364,检索库枪支图像数量为21 128,测试库图像数量为1 018。
![]() |
下载CSV 表 2 5种模型的测试结果 Table 2 Test results of five models % |
从表 2可以看出:采用ResNet50虽然在训练集中能够获得比ResNet18更好的准确率,但是在测试集中前20位命中概率比ResNet18略微下降,说明对于细粒度小样本分类问题,采用ResNet50会造成过学习;标准的EfficientNet模型结果优于ResNet;专门用于细粒度图像分类的NTS-net模型准确率优于EfficientNet,并且非常接近本文模型。图 6、图 7所示为2把枪支(64式7.62 mm手枪、格洛克17手枪)图像检索识别结果,从中可以看出,本文基于多任务级联残差网络模型可以准确识别出枪支的型号,并且将与之相似的枪支型号的图像均按照相似度进行排序展示。
![]() |
Download:
|
图 6 64式手枪检索结果 Fig. 6 Retrieval results of 64 pistol |
![]() |
Download:
|
图 7 格洛克17手枪检索结果 Fig. 7 Retrieval results of Glock 17 pistol |
表 3所示为不同模型的参数量大小以及推理平均帧率,从表 3可以看出:当批次大小为32时,本文模型的帧率虽然略微低于ResNet50,但基本也可满足实际需求,并且在本文所构建的枪支库中也能够实现秒级检索返回;EfficientNet虽然有较小的模型参数量,但是其推理速度并无太大优势,这主要是由于采用EfficientNet生成的特征向量维数较大。
![]() |
下载CSV 表 3 模型参数量及推理速度比较 Table 3 Comparison of model parameters and reasoning speed |
传统的枪支识别技术依赖检验人员的经验,查询速度慢且精度低。本文建立一种基于多任务级联深度残差网络的枪支图像识别模型,该模型以ResNet18为基本构建单元,通过对枪支图像从像素级特征到语义级特征的分级划分,并融合每个任务的损失函数,以共同训练网络参数,实现针对制式枪支图像的自动识别。在此基础上,采用Java语言构建一套枪支图像自动识别系统。实验结果表明,该模型对真实场景枪支图像的Rank-20识别准确率超过95%,并且具有较好的鲁棒性。下一步将对深度网络模型的轻量化进行研究,降低识别模型的参数量并提高模型的推理速度。此外,探索并实现针对非制式枪支图像的识别和检索系统也是今后的研究方向。
[1] |
李岳松, 罗亚平. 运用Evofinder枪弹自动识别系统对建档手枪弹头数字化建档的研究[J]. 刑事技术, 2018, 43(5): 363-368. LI Y S, LUO Y P. Digital filing into the registered-bullet imaging database by ballistic identification system Evofinder[J]. Forensic Science and Technology, 2018, 43(5): 363-368. (in Chinese) |
[2] |
周志飞, 李轶昳, 鲍立垠, 等. 非制式枪射击弹头痕迹自动识别系统及性能测试[J]. 刑事技术, 2016, 41(2): 99-102. ZHOU Z F, LI Y Y, BAO L Y, et al. Introduction to the automatic identification system of non-standard firearms' bullet marks and its performance[J]. Forensic Science and Technology, 2016, 41(2): 99-102. (in Chinese) |
[3] |
GERULES G, BHATIA S K, JACKSON D E. A survey of image processing techniques and statistics for ballistic specimens in forensic science[J]. Science & Justice, 2013, 53(2): 236-250. |
[4] |
MURTHY S S, MAZUMDAR C, RAO M C, et al. Intensity-based image matching for regular firearms[J]. International Journal of Imaging Systems and Technology, 2002, 12(2): 68-72. DOI:10.1002/ima.10011 |
[5] |
WEN C Y, YAO J Y. Pistol image retrieval by shape representation[J]. Forensic Science International, 2006, 155(1): 35-50. |
[6] |
冯艳平, 王徽. 基于阈值分割和边缘检测的枪支THz图像识别[J]. 红外, 2011, 32(12): 23-26. FENG Y P, WANG H. Feature recognition of pistol in THz image based on threshold segmentation and edge detection[J]. Infrared, 2011, 32(12): 23-26. (in Chinese) |
[7] |
和睿, 孙永奇. Canny特征在基于内容的图像检索中的应用[J]. 云南大学学报(自然科学版), 2011, 33(6): 651-657. HE R, SUN Y Q. A content-based image retrieval method based on Canny feature[J]. Journal of Yunan University(Natural Science Edition), 2011, 33(6): 651-657. (in Chinese) |
[8] |
张树江, 颜景龙, 邢慧. 一种基于图像检索的枪弹识别系统[J]. 兵工学报, 2008(4): 459-463. ZHANG S J, YAN J L, XING H. A cartridge identification system based on image retrieval[J]. Acta Armamentarii, 2008(4): 459-463. (in Chinese) |
[9] |
LECUN Y, BENGIO Y, HINTON G. Deep learning[J]. Nature, 2015, 521(7553): 436-444. DOI:10.1038/nature14539 |
[10] |
SZEGEDY C, WEI L, JIA Y, et al. Going deeper with convolutions[C]//Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2015: 1-9.
|
[11] |
SHORTEN C, KHOSHGOFTAAR T M. A survey on image data augmentation for deep learning[J]. Journal of Big Data, 2019, 6(1): 10-15. DOI:10.1186/s40537-019-0173-8 |
[12] |
HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 156-163.
|
[13] |
郭玥秀, 杨伟, 刘琦, 等. 残差网络研究综述[J]. 计算机应用研究, 2020, 37(5): 1292-1297. GUO Y X, YANG W, LIU Q, et al. Survey of residual network[J]. Application Research of Computers, 2020, 37(5): 1292-1297. (in Chinese) |
[14] |
张枫, 田联房, 杜启亮. 基于残差网络与中心损失的人脸识别[J]. 计算机工程与设计, 2019, 40(6): 1689-1695. ZHANG F, TIAN L F, DU Q L. Face recognition based on ResNet and center loss[J]. Computer Engineering and Design, 2019, 40(6): 1689-1695. (in Chinese) |
[15] |
齐永锋, 马中玉. 基于深度残差网络的多损失头部姿态估计[J]. 计算机工程, 2020, 46(12): 247-253. QI Y F, MA Z Y. Multi-loss head posture estimation based on deep residual network[J]. Computer Engineering, 2020, 46(12): 247-253. (in Chinese) |
[16] |
关胤. 基于残差网络迁移学习的花卉识别系统[J]. 计算机工程与应用, 2019, 55(1): 174-179. GUAN Y. Flower species recognition system based on residual network transfer learning[J]. Computer Engineering and Applications, 2019, 55(1): 174-179. (in Chinese) |
[17] |
倪志文, 马小虎, 孙霄, 等. 结合显式和隐式特征交互的深度融合模型[J]. 计算机工程, 2020, 46(3): 87-92, 98. NI Z W, MA X H, SUN X, et al. Deep fusion model combining explicit and implicit feature interactions[J]. Computer Engineering, 2020, 46(3): 87-92, 98. (in Chinese) |
[18] |
SERGEY I, CHRISTIAN S. Batch normalization: accelerating deep network training by reducing internal covariate shift[EB/OL]. [2020-09-05]. https://arxiv.org/pdf/1502.03167v2.pdf.
|
[19] |
FENG W, CHEN J, LIU W Y, et al. Additive margin Softmax for face verification[J]. IEEE Signal Processing Letters, 2018, 25(7): 926-930. DOI:10.1109/LSP.2018.2822810 |
[20] |
RUSSAKOVSKY O, DENG J, SU H, et al. ImageNet large scale visual recognition challenge[J]. International Journal of Computer Vision, 2015, 115(3): 211-252. DOI:10.1007/s11263-015-0816-y |
[21] |
TAN M, LE Q. EfficientNet: rethinking model scaling for convolutional neural networks[C]//Proceedings of the 36th International Conference on Machine Learning. Washington D.C., USA: IEEE Press, 2019: 6105-6114.
|
[22] |
YANG Z, LUO T, WANG D, et al. Learning to navigate for fine-grained classification[C]//Proceedings of European Conference on Computer Vision. Berlin, Germany: Springer, 2018: 438-454.
|