未爆子弹药图像数据集构建方法及其关键技术研究
作者: 闫小伟 陈栋
摘 要:随着计算机技术和机器视觉技术的迅速发展与应用, 探索基于“人工智能+”模型的未爆子弹药搜寻技术受到了广泛关注。 但是, 由于未爆子弹药具有一定的危险性和受军事应用的特殊性影响, 数据集构建是目前亟待解决的瓶颈问题。 本文由此出发, 分别论述了真实实物图像数据集和利用实物图片进行三维重建数据集的构建方法及流程, 重点分析了两种数据集构建过程中的相关关键技术及其优缺点, 并给出了一种利用多目相机采集目标图像和地理坐标信息, 然后利用深度学习算法进行目标特征提取、 生成三维点云和融合三维图像。 试验结果表明, 采用该方法构建的三维数据集可以有效解决未爆子弹药现有数据集数据量不足的问题, 最后展望了数据集构建方法的未来发展方向。
关键词:未爆子弹药; 图像数据集; 深度学习; 三维重建; 图像处理
中图分类号:TJ760
文献标识码: A
文章编号:1673-5048(2024)04-0021-12
DOI: 10.12132/ISSN.1673-5048.2023.0233
0 引 言
从世界上近几场局部冲突中, 可以发现子母弹已经被各军事强国研发并使用, 由此必将产生大量的未爆子弹药。 地表未爆子弹药是未爆弹药的一种, 由于其在下降过程中的稳定性且有降落伞、 飘带等装置进行增阻、 减旋, 使其在战斗部飞越过弹道顶点后缓慢降落, 落在地面上未发生爆炸且暴露在地球表面。 如果这些未爆子弹药未及时被发现和处理, 将对该地域内的人员安全造成极大的威胁。
随着人工智能技术迅猛发展, 深度学习网络在各个领域的应用日益广泛, 尤其在机器视觉领域, 已经取得了显著的进展。 在检测未爆炸物方面, 采用基于深度学习网络的无人机载平台对地面目标图像进行识别的方法是当前研究的热点。 胡聪等[1]利用基于Faster R-CNN网络结构的计算机视觉算法与无人车结合, 提出了排爆无人车自主检测未爆弹的预想。 单成之等[2]提出了一种基于关键点的未爆弹图像目标检测算法与机器人相结合的解决方案, 该方案对未爆弹图像进行初步特征提取, 尔后再利用特定网络进行特征增强, 最后采用头部预测模型对热力图、 中心点及尺寸大小分别进行预测, 检测结果较好。 曾俊等[3]设计了一种融合了无人机自主导航、 深度学习和YOLOv5目标检测算法的空基智能排爆系统, 提高了区域范围内整体的检测速度。 采取“无人+智能”的方法无需操作人员与未爆子弹药接触, 因此被认为是目前最安全、 最有效的检测方法。 然而图像识别的过程必然需要构建含有多种类型未爆子弹药在不同环境条件下的数据集, 为深度学习网络提供数据支撑。 图像数据集的来源主要包括基于真实实物的图像采集数据集、 基于实物图片的三维重建数据集和基于虚拟仿真的虚拟数据集, 由于虚拟数据集必然存在域偏移问题[4], 因此在构建数据集时通常优先考虑采集大量真实实物图片或者利用少量实物图片进行三维重建, 图像数据集构建流程如图1所示。
1 真实实物数据集的构建方法及关键技术
由于真实实物能够全面反映目标的形状、 颜色、 结构等外观状态, 使用真实实物数据集进行预测或者目标识别效果较好, 也一直广受学者的青睐。 而由于自然环
境的影响, 对真实实物进行图像采集或者从开源数据中进行挖掘, 图像中必然会掺杂一些背景噪声或其他影响因素, 并且很多时候难以穷尽目标可能处在的环境或状态, 因此在构建真实实物数据集的过程中往往会使用一些图像处理的相关技术。 如图2所示, 真实实物数据集构建的一般过程主要包括图像数据采集、 图像数据清洗、 图像数据预处理、 图像数据标注和图像数据划分等, 其中图像数据清洗和图像数据预处理是完成数据集构建的关键技术。 1.1 图像数据清洗技术
从广阔的互联网上抓取数据[5]或者在真实实物图像采集的过程中由于录入错误、 背景变化、 物体遮挡等原因将使得初始数据集中存在同一事物的图像多次出现、 同一事物的图像被标注为不同的名称、 不同事物图像不完整等问题, 影响数据可靠性。 简而言之, 数据清洗就是采用人工或技术手段将数据集中的“脏数据”清洗为“干净数据”的过程[6]。
1.1.1 重复数据清洗
数据清洗的关键环节是对重复数据进行清洗, 其主要采取“排序-合并”的思想, 常用的方法有排序邻居方法、 优先权队列方法和哈希清洗方法[7]。
(1) 排序邻居方法(Sorted Neighborhood Method, SNM)是一种常用的重复数据清洗算法[8], 首先采用近邻排序算法, 根据选择的属性作为关键字进行全排序; 其次, 使用固定大小的滑动窗口进行聚类以识别相似或重复的数据。 该方法在时间复杂度上进行了优化, 经过实验表明, 改进的排序邻居方法在相同召回率的情况下, 其时间复杂度优于传统的算法, 且清洗后的数据更符合实际情况, 能够提高数据集的准确性和可靠性, 还能节省时间和资源; 但是该方法对参数较为敏感, 不同的参数可能会导致不同的清洗结果, 由于是基于局部信息进行判断, 可能会误删某些非重复数据, 并且该方法不适合处理数据量较大的数据集。
(2) 优先权队列方法(Priority Queue Strategy, PQS)是Monge等[9]提出的一种基于Union-Find数据结构的重复数据清洗算法, 其基本思想主要是基于优先级队列的数据结构, 优先队列是一种特殊的队列, 每个元素都有一个优先权, 其不同于先进先出队列, 每次从队列中取出的是具有最高优先权的元素。 其清洗过程主要有三步: 第一步, 初始化一个空的优先队列; 第二步, 遍历数据集的所有数据, 将每个数据元素添加到优先队列中; 第三步, 依次从优先队列中取出元素, 即完成了数据的清洗。 该方法时间复杂度较小, 排序比较稳定, 其算法思想比较简单易于编写, 并且能够有效降低作业的平均等待时间, 从而可以提高系统的吞吐量; 但是该方法也存在对长作业不利, 可能会导致长作业的等待时间过长, 其需要对所有数据进行遍历, 未考虑作业的紧迫程度, 可能导致某些紧迫作业延迟。
(3) 哈希清洗方法是利用哈希算法的特性来检测和处理数据中的重复项, 该方法将数据集的每个元素都转换为一个唯一的哈希值, 然后将这些哈希值用来检测, 如果两张图像的哈希值相同或在设定的阈值内, 就认为这两张图像为重复图像, 将会被清除掉[10]。 该方法能够将数据运用哈希值高效表达, 可以快速检测和分类数据, 同时其可以将多个不同的数据映射到同一个哈希值上, 从而减少存储空间的占用, 且准确性高; 但是该方法也存在不同数据映射到同一个哈希值会出现冲突问题, 且需要计算哈希值, 从而增加计算时间。
1.1.2 缺失数据填充
因为数据未被记录、 遗漏或丢失, 以及数据采集过程中采集设备故障、 存储介质、 传输媒体故障等因素可能造成数据丢失, 在对缺失数据处理前, 了解数据缺失的机制和形式是十分必要的, 常用的数据填充方法有逻辑回归填充方法、 KNN填充方法和均值填充方法等。
(1) 逻辑回归填充方法。 对缺失数据进行预测, 并利用现有完整数据建立回归算法, 从而确定不同类别的分界线, 并根据该分界填充缺失的数据。 该逻辑回归模型是一种经典的分类模型, 可用于二分类和多分类任务[11]。 该方法计算简单, 且易于实施并行化计算; 但是该方法过于依赖完整数据, 并且只能用于数值填充。
(2) K最近邻方法(K-Nearest Neighbor, KNN)是一种经典的机器学习分类算法[12], KNN是根据“物以类聚”的思想进行分类填充的算法, 其原理是利用样本集中的训练数据对特征空间进行有监督学习的划分, 而后计算预测数据与样本集不同特征值之间的距离, 距离越小, 代表他们之间的差别越小, 属于同一簇类的概率越大, 选择距离缺失元最近的同簇数据对其进行填充[13]。 常用的距离量度方式有闵可夫斯基距离、 欧式距离、 曼哈顿距离等。 该方法简单直观, 无需估计参数, 训练时间较短, 其次, 其既可以处理分类问题, 也可以处理回归问题, 甚至适合对稀有事件进行分类; 但是该方法计算量大, 尤其是对于特征数非常多的数据, 再者当样本不平衡的时候, 对稀有类别的预测准确率较低。
(3) 均值填充方法[14]是一种比较常用的缺失数据填充方法, 其基本原理是用数据集的列或行的均值来填充该列或行中的空值。 例如, 如果某一列中存在空值, 那么可以用该列所有非空值的平均值来填充这些空值。 该方法不但实现简单、 计算高效和容易理解, 而且其不仅可以用于填充数值型数据, 还可以用于填充非数值型数据, 但其缺点也比较突出, 首先, 其对异常值比较敏感, 如果数据集中存在极端值或离群点, 使用均值填充可能会引入偏差, 其次, 其可能会改变原始数据的分布和信息, 最后, 其可能会导致估计出的平均值偏离真实值, 从而影响后续的数据分析和建模。 如图3~5所示, 采用均值填充法对地表未爆子弹药图像进行降噪、 去雾和填充处理, 效果较好。
1.1.3 基于深度学习网络的图像数据清洗
图像数据清洗中常用的深度学习网络主要有AlexNet网络和GoogLeNet网络两种。
(1) 基于AlexNet的图像数据清洗[15]。 AlexNet是由Hinton教授及其团队在2012年的ImageNet大规模图像
识别挑战赛(ILSVRC)上提出的一种卷积神经网络结构, 在图像分类任务中一骑绝尘, 以超过第二名非深度学习方法10%+的成绩震惊了整个业界。 其清洗步骤是: 第一步, 获取目标标签的至少一个标准图像; 第二步, 确定所述至少一个标准图像的聚类中心; 第三步, 提取多个待清洗图像中每一个待清洗图像的特征; 第四步, 在提取了特征之后, 根据这些特征和聚类中心, 确定每一个待清洗图像与所述至少一个标准图像的相似度值; 第五步, 基于所确定的相似度值, 从所述多个待清洗图像中选取若干个待清洗图像以形成所述目标标签的图像集。 在AlexNet模型中, 共有5个卷积层和3个全连接, 选择ReLU作为激活函数, 可以加速网络收敛, 有助于在大型数据集上训练大型模型, 综合采用重叠的池化和dropout的方法将随机神经元置零, 可以一定程度上减少了过拟合的发生。
(2) 基于GoogLeNet的图像数据清洗。 GoogLeNet[16]是谷歌团队为了参加2014年ILSVRC比赛而精心准备的卷积神经网络结构, 也是该挑战赛冠军。 其主要思想是通过构建密集的块结构来近似最优的稀疏结构, 从而达到提高性能而又不大量增加计算量的目的, 其进行图像清洗的步骤与AlexNet相同。 在GoogLeNet模型中, 共有22 层, 但没有全连接层, 其参数个数可以达到6 000万个, 是AlexNet模型的12倍, 且采用Inception模块的创新结构, 可以有效地减少参数数量, 降低过拟合的风险, 同时也能保持网络的深度和宽度。
1.1.4 小 结
数据清洗要根据数据形式及其类型(各种清洗方法及其优缺点如表1所示), 综合分析后选择一种或多种数据清洗方法对数据集中的缺陷数据进行处理使其变成规范的干净数据, 从而消除缺陷的过程, 其目的主要是为了提高数据质量, 使其更适合做挖掘、 展示、 分析等后续工作。
1.2 图像数据预处理
图像数据清洗后得到的数据集相较于原始图像数据更加规整有序, 但是仍会存在图像分辨率有大有小、 图像格式不统一、 图像变形等问题, 此时还需对数据集中的数据进行预处理, 使其质量进一步提高。
1.2.1 数据标准化
图像数据标准化是指为了获取的图像数据能够满足实际应用需求, 对不同程度差异的图像数据进行灰度校正、 滤波去噪、 格式转换和几何变换等, 以提高图像数据的质量, 得到符合规定要求的图像数据[17]。 通过互联网开源数据爬虫抓取到的图像数据格式多种多样, 图像像素大小也五花八门, 而通过实物成像采集到的数据往往是.JPG格式, 同一成像设备采集的图像像素相对固定, 为了便于数据集的处理, 首先要将数据集中的数据进行标准化处理, 其主要由三步来完成: