邵 巍,郗洪良,王光泽,肖 扬,马广飞,姚文龙
(青岛科技大学自动化与电子工程学院,青岛 266061)
小天体探测有助于人类了解太阳系的形成和演化,探索地球生命和水的起源,是当前及未来主要航天国家深空探测任务的重点研究问题之一[1-2]。陨石坑作为天体表面最为常见的地形特征之一,常被用作探测器着陆过程中的导航陆标及障碍规避的主要对象[3-5]。
近年来,国内外研究学者们对陨石坑检测开展了诸多相关研究工作。Cheng等[6]结合光照方向与陨石坑边缘信息,通过定位点检测与边缘分组来选取椭圆弧,最终利用椭圆拟合实现陨石坑的检测;Kim等[7]构造了陨石坑模板,并利用模板匹配的方法完成陨石坑的检测;陈建清等[8]提出了基于图像灰度值特征的陨石坑自主检测方法,通过兴趣区快速确定陨石坑边缘分布,进而实现陨石坑检测。以上算法都属于传统的基于形态特征及图像处理的陨石坑检测算法,在复杂地形中检测能力有限。随着人工智能的发展,陨石坑检测越来越趋向于深度学习方面的自动识别领域[9]。Xin等[10]结合暗区提取与AdaBoost机器学习算法,在火星图像的陨石坑检测率达到84.5%;Emami等[11]采用Faster R-CNN(Faster-Region Convolutional Neural Network)网络实现了对月球勘测轨道器拍摄图像上陨石坑的自动识别;Silburt等[12]利用U-NET模型在月球的数字高程图像上实现陨石坑的检测,并迁移学习到水星的数字高程图像上。这些基于深度学习的检测方法相比于传统方法检测率有一定提高。但由于小天体环境暗弱,存在自旋等特性,国内外鲜有对其陨石坑检测的研究。同时,现有的小天体陨石坑图像较少,难以满足深度学习网络模型的训练,相较于月球、火星等大天体检测难度更大。
针对上述问题,本文提出了一种暗弱环境下小天体陨石坑智能检测算法,具体安排如下:第一部分利用局部方差均衡算法增强暗弱环境下陨石坑特征,并加入图像空间多视角重投影等数据增强方法扩充数据集,构建小天体陨石坑基准数据集;第二部分提出YOLOv4结合自学习的网络架构及检测图像切分方法来进一步提高陨石坑检测率;第三部分与现有5种主流目标检测算法进行对比实验,并给出实验结果及分析;最后给出本文结论及未来研究方向。
世界各国积极开展多次小天体探测任务,如美国的“近地小行星交会”(NEAR)任务[13]、“黎明号”(Dawn)任务[14],欧洲空间局“罗塞塔”(Rosetta)任务[15]以及日本“隼鸟2号”(Hayabussa 2)任务[16]。但总体探测任务数量较少,且其中有些小天体由于体积、质量小,星体表面基本没有陨石坑存在,可以用于标注的小天体陨石坑图像实际上是有限的。针对以上问题,收集爱达、爱神星及灶神星等4个小天体带有的陨石坑图像作为原始数据集,并按照图1形式人工标注陨石坑,各个小天体图像数量见表1。
表1 原始数据集数量统计Table 1 Statistics of original dataset
图1 小天体陨石坑标注Fig.1 Small body craters annotation
小天体目标环境暗弱,导致图像整体对比度偏低,许多陨石坑特征不明显,影响后续网络模型的训练。针对以上问题,采用一种基于局部方差均衡的图像增强算法。该算法相对于传统的基于直方图均衡化图像增强方法来说,能够有效增强整幅图像的对比度,在突出陨石坑边缘信息的同时,避免出现过增强的现象。
定义以像素点P(i,j)为中心,大小为(2k+1)×(2k+1)的滑动窗口。
(1)
式中:m(i,j)、σ2(i,j)分别为基于窗口中心像素点P(i,j)的局部均值及方差;f(x,y)表示窗口中心像素点(i,j)所对应的灰度值。
利用式(2)来对暗弱环境下的小天体图像进行相应的增强,q(i,j)为增强后的滑动窗口中心(i,j)的灰度值。
(2)
选择大小合适的滑动窗口对图像进行逐像素位置移动,用增强后的灰度值代替原窗口中心的灰度值。实验表明,选择3×3大小的滑动窗口增强效果最佳,增强前后效果对比如图2所示。
图2 局部方差均衡化增强对比Fig.2 Comparison of local variance equalization enhancement
初步收集的小天体带有陨石坑图像共730张,数量难以满足深度学习网络模型的训练,容易产生过拟合现象。同时,考虑到小天体自旋特性及探测器着陆过程中存在相机视角变化,采用图像空间多视角重投影来生成新的数据。
如图3所示,设相机绕其光心Q做旋转运动,相机的初始相机坐标系与世界坐标系重合,P为空间场景中的一点。假设同一场景下,相机在初始位置和绕光心Q旋转之后拍摄的两幅图像分别为A和B,P点在图像A、B中的投影点分别为ua、ub,根据相机成像原理:
图3 相机绕光心旋转Fig.3 The camera rotates around the optical center
ua=[K|0]P
(3)
ub=[KR|0]P
(4)
式中:K为相机内部参数矩阵;R为旋转矩阵。
结合式(3)和式(4),则:
ub=KRK-1ua
(5)
取旋转矩阵R三轴旋转角度区间为[-45°,+45°],每个轴在此区间间隔10°取样,总共得到1000个旋转矩阵用来模拟小天体自旋及相机在不同视角下拍摄的图像。
除此之外,加入高斯噪声、镜像、剪裁、旋转多种传统数据增强方法来进一步扩充数据集。将图像预处理后的小天体图像按照表2数据增强方法扩充到3730张,部分增强效果如图4所示。
表2 各类数据增强样本数量Table 2 Number of data augmentation
图4 图像数据增强Fig.4 Image data augmentation
由于小天体形状不规则且表面陨石坑尺度差异大,在构建小天体陨石坑数据集时,存在陨石坑漏标或标注错误的情况。针对该问题,加入自学习算法,利用已有标注信息来预测未标记的数据,并自动生成新的注释信息,更新数据集,用于后续网络模型训练。同时,YOLOv4利用空间金字塔池化以及路径聚合网络使得对于小陨石坑的检测得到了相应加强;在训练过程中,通过随机的遮挡、抹除一部分图像来增强模型泛化能力,一定程度上解决了陨石坑受侵蚀风化导致形状不规则的问题。因此采用YOLOv4结合自学习的网络来实现陨石坑检测模型的训练。
YOLOv4结合自学习的网络结构如图5所示,具体训练步骤如下:首先利用数据集训练YOLOv4网络,获得初始陨石坑检测模型。然后,通过该模型对数据集图像进行陨石坑检测,并根据检测结果对数据集标注信息进行更新。对于数据集标注信息中没有的检测结果,若其置信度大于所设高阈值,则将其添加到标注信息中。对于数据集标注信息中存在,而检测结果中不存在或置信度小于所设低阈值的目标,将其相应标注信息删除。最后,重复上述两个步骤,使用更新后的数据集重新训练模型并不断更新数据集,直至数据集标注信息不再更新,此时的数据集为最终数据集,并用于后续的网络训练。
图5 YOLOv4结合自学习网络Fig.5 YOLOv4 combined with self-learning network
本文特征提取网络包括53个卷积层、23个残差单元,在主干网络中使用了Mish激活函数,网络中的其他部分使用了Leaky_relu激活函数,并且使用Dropblock正则化方式随机删除神经元的数量,简化网络整体结构,防止训练过程中出现过拟合。在3×3卷积核作用下,采用的网络输入尺寸应该为32的倍数,输入图像尺寸越大,数据信息越丰富,特征提取网络越深,但是训练和检测速度就会越慢。然而,输入图像调整统一尺寸过小,会导致模型无法学习小陨石坑的显著特征,对于模型的性能会产生负面影响。同时,由于所做实验GPU使用的是NVIDIA GTX 2080Ti,对于尺寸过大的图像,训练过程中会出现显存不足问题,导致训练无法进行。通过图6可以看出,分辨率越小,检测率越低,到416×416 pixel时,检测率趋于稳定,但是分辨率越高,训练时间越长,因此将输入图像输入前调整为统一尺寸大小416×416 pixel最有利于小天体陨石坑检测。
图6 图像分辨率与检测率曲线Fig.6 Image resolution and detection rate curve
为验证该算法对于陨石坑漏标或标注错误的有效性,我们将一组标注70%的数据集用于自学习训练。如图7所示,在迭代25次左右,数据集标注占比逐渐稳定于95%左右。
图7 迭代次数与标注占比曲线Fig.7 Number of iterations and labeling percentage curve
针对小天体图像中小陨石坑漏检问题,将图像增强后的预测图片自适应切分成若干个有重叠区域的子图像送入检测网络,并将预测结果合并显示在预测图像中。
为保证最大陨石坑至少出现在任意一块切分子图像中,切分子图像间应该保留一定的重叠区域。假设已知小天体最大陨石坑直径为R,检测图像为相机在高度H处拍摄,相机焦距为f,则:
(6)
式中:t为最大陨石坑直径在图像中所占像素大小,令其为切分子图像间重叠区域宽度。
利用式(7)对图像进行切分,黑色区域补齐其边缘部分,切分示意图如图8所示。
图8 图像切分示意图Fig.8 Schematic diagram of image segmentation
(7)
式中:L×W为预测图像的分辨率大小;C×D为切分子图像的分辨率大小;m,n为图像水平方向、竖直方向切分的子图像块数;ΔL,ΔM为水平方向、竖直方向补全的像素数。
本文所做实验是在Windows系统下的pytorch框架中进行,GPU使用NVIDIA GTX 2080Ti。按照7∶2∶1的比例,随机将数据集划分为训练集、测试集与验证集,具体训练参数见表3。
表3 训练参数Table 3 Training parameters
如图9所示,随着训练代数增加,损失函数不断减小,经过2000代左右,损失函数大小逐渐稳定于0.18,表明网络模型训练效果良好。
图9 训练损失函数曲线Fig.9 Training loss function curve
为验证本文算法有效性,分别与YOLOv4网络[17]、SSD网络[18]、Faster R-CNN网络[19]、EfficientNet网络[20]及CenterNet网络[21]进行对比实验。
由图10检测结果可以看出:1)SSD网络与Faster R-CNN网络对于陨石坑重叠、密集的区域以及小陨石坑检测效果差,存在较多漏检;2)EfficientNet网络、CenterNet网络及YOLOv4网络属于近两年新型目标检测网络,能够检测到更多的陨石坑,其中YOLOV4网络检测效果最好,但是依旧存在小陨石坑漏检问题;3)本文算法由于加入图像空间多视角重投影及切分等改进方法,对于图像中各视角下的陨石坑与小陨石坑检测效果更佳,相较于其他5种主流目标检测算法检测出的数量最多。
图10 小天体陨石坑检测结果Fig.10 Results of small bodies craters detection
引入图像平均检测精确率P与检测率R作为评价性能指标。
(8)
式中:TP,FP,FN分别为检测到的正确陨石坑数目、检测到的非陨石坑数目、未检测到的陨石坑数目。
表4表明本文算法的精确率及检测率最高,该算法优于现有主流目标检测算法,相比于YOLOv4网络检测结果提高了10.97%,能够更好地完成小天体陨石坑检测任务。
表4 6种算法性能指标对比Table 4 Comparison of six algorithm performance indicators
本文针对小天体环境暗弱、存在自旋情况下,陨石坑难以检测的问题,提出了一种暗弱环境下小天体陨石坑智能检测算法。通过局部方差均衡算法解决小天体环境暗弱的问题,并加入图像空间多视角重投影模拟小天体自旋及相机视角变化带来的图像变换;采用YOLOv4结合自学习网络解决标注过程中陨石坑漏标及标注错误的问题;对于小陨石坑漏检问题,提出一种切分图像检测方法。实验结果表明,该算法能够更好地完成小天体陨石坑检测任务,检测率达到86.75%。
但由于可见光图像抗干扰能力较弱,在外界光线条件差时,图像所获取信息较为局限,因此后续计划结合激光雷达获取的信息来进一步提高陨石坑检测效果。