行星陨石坑检测算法研究综述
2020-10-31张翰墨
胡 涛,贺 亮,曹 涛,韩 宇,张翰墨
(1. 上海航天控制技术研究所,上海201109; 2. 上海市空间智能控制技术重点实验室,上海201109)
1 引言
随着航天技术的发展,行星探测已经逐渐成为国际航天领域的热点,其中行星陨石坑检测一直是其中重要的研究方向之一。 许多小天体被认为保存有宇宙形成初期的古老物质,研究行星陨石坑是确定太阳系中行星体地质年代信息,了解宇宙起源的重要途径。 行星陨石坑检测可应用于行星着陆、行星地质研究、行星未知领域探索以及探测器视觉导航等诸多领域。
行星陨石坑检测的重点在于陨石坑生命周期中的侵蚀、掩埋、覆盖和转化问题。 由于弹坑的复杂性,其形状、大小、重叠和退化都有很大的变化,使得陨石坑检测算法(Crater Detection Algorithms,CDAs)的设计非常困难。 然而随着人工智能神经网络的兴起,机器学习在数据分析、图像分类与识别以及目标检测等方面大放异彩[1],特别是深度学习在陨石坑检测中的应用,大大提高了检测效率。
目前陨石坑检测方法可分为3 类:利用地形和光谱数据进行地质信息分析、传统视觉处理算法和机器学习方法。 Ye 等[2]得到陨石坑位置和直径信息,利用光谱图像对陨石坑附件的岩石地质元素进行分析,剔除判断错误的陨石坑,并将正确的陨石坑分类为简单型和复杂型。 由于陨石坑的地质元素变化较大,存在不确定性,不利于陨石坑的自动检测,应用较少。 目前应用较多的方法是传统视觉处理算法和机器学习算法,本文针对这2 种方法展开详细论述,调研现有的针对月球、火星等行星陨石坑的检测方法,将传统视觉的陨石坑检测算法分为基于边缘、阴影和区域3 个方面进行阐述;从数据集、网络结构和评价指标的角度,重点分析了深度学习陨石坑检测算法。 此外,根据目前陨石坑检测算法存在的问题,提出深度学习在陨石坑检测中未来的发展方向。
2 传统视觉检测算法
陨石坑的形状、轮廓等特征对传统视觉检测算法的效果至关重要,大多数陨石坑是由流星撞击形成的,陨石坑形成的第一步是行星之间几乎瞬间的碰撞。 最简单的陨石坑是碗状的,有一对新月状的高亮和阴影区域,边缘呈向外喷射状,地形剖面大致呈二次型。 陨石坑越大,凹陷底部就越平坦(图1(a));当流星质量很重或速度很快时,压缩阶段后的反弹效应在陨石坑中形成一个中心峰,构成一个复杂的陨石坑(图1(b));当坑很大时,地震效应和土壤的水平松弛可以造成多个边缘(图1(c))。
图1 不同陨石坑种类Fig.1 Different types of craters
对于传统图像处理陨石坑检测方法主要分为基于边缘、基于阴影和基于区域3 种,分类具体如下:
1)基于边缘的方法利用陨石坑形状较简单,一般呈圆形或椭圆形的特点,对其进行轮廓拟合,重建典型的陨石坑形状。 Johnson 等[3]在NEAR任务的陨石坑检测中应用Hough 变换的椭圆检测,能够取得80%的准确率。 Hough 变换是从图像空间到参数空间的一种方法,称为Hough 空间。 变换的目的是寻找最佳的参数,以适合一个选定的几何解析公式。 Hough 空间的维数与搜索参数的数目一样多。 对于圆,有3 个维度( x、y 位置和r 半径);而椭圆参数的数目是5 个,将陨石坑边缘拟合为典型形状,复杂度随着参数的增加而急剧增加。 Leroy 等[4]提出一种基于投票机制的多尺度椭圆拟合方法,将图像中检测到的陨石坑与从三维模型中投射出的陨石坑进行匹配,得到两者之间的最佳变换,该方法在陨石坑密集的区域能够取得较好的效果。 Cheng 等[5]利用Canny 算子分段检测陨石坑边缘曲线,并将属于同一陨石坑的边缘划分到一组,再进行椭圆拟合,能够获得90%的准确率。
2)基于阴影的陨石坑检测方法是在太阳高度角和光照强度的影响下,陨石坑边缘会出现不同程度的阴影区域,虽然陨石坑的一部分边缘信息会被遮挡,造成视觉模糊,但相同的阴影和陨石坑出现了一一对应的关系,因此可以通过检测图像中的阴影区域达到陨石坑检测的目的。 郭烈等[6]首先采用了阈值分割方法对地面环境的陨石坑阴影进行阈值分割,然后结合形态学滤波算法和阈值面积消除法滤除一些噪声,最后对所得到的二值图像进行轮廓提取。 Kaufmann 等[7]使用gamma 校正后阈值分割出阴影区域,并赋予阴影质心二进制描述符,再与三维高程数据进行匹配,实现飞行器的图像导航。
3)根据陨石坑的特征,在太阳照射的阳面将出现亮区域,在未照到的阴面将出现阴影区域,暗区域的外边缘呈现圆弧[8],导致陨石坑通常亮区域和暗区域成对存在,故基于区域的检测方法可以利用亮暗区域成对存在来检测陨石坑。 Urbach等[9]同时处理图像的高光和阴暗特征,目标是消除所有与陨石坑无关的特征,剩下的高光和阴暗特征相互匹配,以标记可能是陨石坑的区域,最终能达到70%的检出率。 丁萌等[10]利用区域生长分别提取陨石坑亮、暗两区域,取得了较好的效果。
通过视觉领域的特征提取算法从行星表面的灰度图像中提取与陨石坑相关的特征(比如边缘、斑点、角点和纹理等)来表征,该方法虽然取得了很好的效果,但是由行星着陆或地质工作而进行的研究同时需要探测直径1 km 以下级别的许多小型陨石坑,当小尺寸的陨石坑和大尺寸的陨石坑在一起探测时,传统视觉方法缺乏适用性。
3 机器学习检测算法
机器学习可以在陨石坑检测计数流程的不同步骤(从获取包含陨石坑的图像到输出陨石坑位置)上使用,包括支持向量机(Support Vector Machine,SVM)、决策树、特征提取增强算法、主成分分析法和深度学习方法,如图2 所示。
图2 机器学习陨石坑检测算法Fig.2 Machine learning crater detection algorithm
近年来出现了以YOLO[11](You Only Look Once)、SSD[12](Single Shot MultiBox Detector)为代表的one-stage 深度学习框架和以R-CNN[13]、Fast-RCNN[14]、Faster-RCNN[15]、Mask RCNN[16]为代表的two-stage 深度学习框架。 因此利用卷积神经网络(Convolutional Neural Networks,CNN)和循环神经网络(Rerrent Neural Network,RNN)等深层神经网络已成为从所有可用数据中确定复杂决策函数的首选方法。 CNN 设计自己的表示特征,减轻了人类开发复杂预处理算法和人工输入特征的需要,这些网络结构能够成功地将出现在多个尺度上的物体分类并识别[17]。 郑磊等[18]采用CNN 网络结合非极大值抑制算法对月面大型陨石坑进行识别。 利用机器学习来进行检测包括陨石坑分类和陨石坑分割定位。 分类只是将每个候选陨石坑提交给网络进行评价,而分割定位的输入为包含多个陨石坑的图像,每个像素被分类为是否属于陨石坑边缘。 陨石坑的边缘像素会形成粗略的圆形或椭圆形,然后可以用于检测定位,如图3 所示。
图3 机器学习中陨石坑分类和分割的对比图[19]Fig.3 Comparison of classification and segmentation with machine learning[19]
3.1 深度学习陨石坑检测方法
卷积神经网络是目前深度学习技术领域中非常具有代表性的神经网络之一,在图像分析和处理领域取得了众多突破性的进展。 卷积神经网络是一种多层的监督学习神经网络,隐含层的卷积层和池化层是实现卷积神经网络特征提取功能的核心模块。 通过采用梯度下降法最小化损失函数对网络中的权重参数逐层反向调节,通过频繁的迭代训练提高网络的精度。 紧接着全连接层的输入是由卷积层和池化层进行特征提取得到的特征图像。 最后一层输出层是一个分类器,可以采用逻辑回归、Softmax 回归甚至是支持向量机对输入的陨石坑图像进行分类。
利用深度学习卷积神经网络进行模型训练首先是陨石坑数据集的输入,这是非常重要的环节[20],目前的常用行星陨石坑数据集如表1 所示,数据集的类型有可见光数据、数字高程模型(Digital Elevation Model,DEM)、数字地形模型(Digital Terrain Model,DTM)和红外数据,如图4所示。 使用可见光数据进行陨石坑检测的主要缺点是光照条件的多样性,太阳高度角和光照强度的不同可能使赤道附近的陨石坑与两极附近的陨石坑看起来非常不同,这样会造成数据集之间的光照出现显著的变化;数字高程模型和数字地形模型数据不需要考虑光的角度;而红外数据,如火星THEMIS 日间红外图像集部分解决了光照条件问题。 Silburt 等[27]利用数字高程模型和数字地形模型数据,此数据类型不存在阴影问题,因为仅有每个像素的高程数据。 由于陨石坑圆形的规则性和对称性,这种类型数据在探测陨石坑方面非常有效,Yamamoto 等[28]也在非CNN 方法中利用了这种对称性,这类数据的最大缺点是分辨率的限制,并且不适用于所有行星体。
表1 行星体陨石坑位置数据库Table 1 Planetary crater location databases
图4 DEM、红外和可见光陨石坑数据[20]Fig.4 Examples of DEM, infrared, and visible light images of craters[20]
在分类方法中,首先对候选陨石坑区域进行预处理,然后将每个候选陨石坑提交给网络进行评价。 Palafox 等[29]将5 个卷积层架构并行运行组成MarsNet,并在HiRISE 数据集上和SVM 进行比较,取得的效果比SVM 更加优越。 在分割+定位方法中,输入整个图像,算法将图像分割成块,不考虑陨石坑的位置,然后识别候选陨石坑,对候选陨石坑进行后处理并标出位置,再利用传统的计算机视觉方法,如模板匹配,可以识别圆形形状并输出位置和半径。 DeLatte 等[30]和Silburt等[27]都使用了进行U-Net 的分割网络(图5),后者还使用迁移学习将模型应用到水星陨石坑的检测当中。 利用分割陨石坑检测,计数图像在输入网络之前不需要经过预处理成较小的候选陨石坑区域,可以实现自动定位。
图5 基于UNET 的网络结构[31]Fig. 5 Convolutional neural network architecture based on UNET[31]
Emami 等[31]采用Faster R-CNN 来进行月球陨石坑的检测,Faster R-CNN 中的区域候选网络(Region Proposal Network,RPN)以最后一个卷积层的特征映射为输入,输出一组对象可能位置的区域。 RPN 首先通过在输入的不同位置上覆盖一个小窗口,并将这些区域反馈到回归层和分类层中,以获得对象分数和优化的对象位置,从而生成候选区域;然后目标区域层将目标得分较高的区域方案转化为固定大小的特征图,由目标检测网络进行分类;最终该网络输出分类标签和目标边界框位置,并在测试图像上可以获得90%以上的准确率。
3.2 其他的机器学习检测方法
其他的机器学习方法也被应用于陨石坑的检测中,包括支持向量机和决策树[32]。 SVM 的基本思想是找到一个超平面,该超平面以最佳方式将正负样本分开,其中最优性由平面距离的大小来定义,即当映射到超平面的法向量上时,正负样本之间的最小距离。 这些和其他早期的机器学习研究都属于手动设计的特征。
在大多数方法中,候选陨石坑必须在运行机器学习算法之前进行定位。 因此这些位置是先验的,但陨石坑或非陨石坑的标签不是先验的。 Urbach 等[9]使用C4.5 算法构建决策树分类器来识别候选区域中的陨石坑,如图6 所示。 C4.5 算法用信息增益率选择特征,在树的构造过程中会进行剪枝操作优化,能够自动完成对连续属性的离散化处理,在选择分割属性的时候选择信息增益率最大的属性[32]。
图6 利用决策树算法进行分类[9]Fig.6 Classification with decision tree algorithm[9]
Wang 等[33]使用Haar-like 特征描述样本,采用自适应增强方法对有用特征进行选择和组合,使用级联结构提高处理效率。 增强方法只需在陨石坑训练集的不同随机子集上训练多个分类器,对其决策进行平均或多数投票,然后进行组合生成复合分类器,提高了分类的准确性和可靠性。Machado 等[34]使用Haar 纹理特征和支持向量机检测月球的陨石坑数据。 Wetzler 等[35]使用支持向量机对火星上的陨石坑进行检测定位,并与Hough 变换、人工检测进行了比较,实验显示支持向量机效果最好。
3.3 评价指标
陨石坑检测中常用查准率P 和查全率R 作为评估检测效果的重要指标[36],为了平衡查准率和查全率,一个常用的指标就是查准率和查全率的调和平均数,记为F1[37-38],具体见式(1)。
式中,Tp为人工注释集与网络生成的列表之间的正确匹配, Fn为标签列表中未找到的陨石坑,Fp为已识别但与标注列表不匹配的陨石坑。
由于光照和陨石坑阴影的影响,样本数据集可能会出现不同程度的噪声,这种干扰会使模型过分记住特征,而忽略了真实的输入输出间的关系,造成过拟合。 在这种情况下,可以使用交叉验证来减少模型的过拟合[39],即将陨石坑数据样本切割成较小子集,先将一个子集作为训练集训练,其它子集做测试集,用来验证CDA 的性能。 这样重复运用随机产生的子样本进行训练和验证,每次随机验证一次,不仅可以减少过拟合,还可以克服数据集较少的缺点。
为了评估分类性能,根据学者们陨石坑检测结果的查全率和查准率,图7 给出了VGGNet[40]、GoogleNet[41]和ResNet[42]3 种卷积神经网络在陨石坑测试集上的分类结果。 这3 个分类器在测试集上都表现得很好。 虽然3 个网络正确地分类了大多数阳性样本,但VGGNet 的召回率略高于其他2 个网络,召回率为99.23%。 表2 为传统图像陨石坑检测与深度学习卷积神经网络在各自的数据集进行的测试,评价方法存在差异,难以归一化,但是仍可以看出传统视觉检测在精度方面大大落后于深度学习网络检测方法,而各个训练网络模型之间的精度却相差不大,都能达到近似90%的精度。
图7 卷积神经网络在数据集上的分类表现[31]Fig.7 Classification performance of deep CNNs on crater detection test set[31]
表2 传统图像检测与深度学习检测对比Table 2 Comparison of traditional image detection and deep learning detection
4 对深度学习检测陨石坑的技术展望
1)扩大数据集的种类和范围,可以使用红外图像数据和DEM 数据结合可见光图像数据,增加数据集的范围,采集包括行星高低纬度、不同经度、各种地貌条件下的陨石坑数据。 一般的深度学习训练网络都是以陨石坑正负样本训练集进行二分类,使用附加的注释数据集,添加更多的标签种类,可以使用这些技术检测更多的对象,如岩石、山坡等其他障碍(图8),对于载人登月、行星着陆探测自主障碍检测规避具有非常重要的意义。
图8 月球表面障碍[30]Fig.8 Obstacles on lunar surface[30]
2)生成性对抗网络[45](Generative Adversarial Networks,GAN),利用零和博弈的思想,从一段随机数中生成逼真的图像,用于产生额外的训练数据,以避免过度拟合,而且GAN 有助于改善不同地形环境之间的特征变换。
3)迁移学习是深度学习中的一个重要趋势,如果缺乏更广泛的陨石坑数据集,可以使用机器学习中的迁移学习,通过使用在其他大型数据集上预训练好的网络作为基础,在对陨石坑进行额外的训练,并且随着在新的数据集上进行训练而改进。 例如,Norman 等[46]使用在ImageNet 数据集预先训练的GoogleNet-OverFeat 探测火星上的陨石坑。 从头开始的训练需要更多的参数调整,通过使用预先训练或部分预先训练的网络,可以减少训练时间,并且可以使用更多类型的网络体系结构。
4)二阶梯度优化。 目前,无论是从理论还是应用层面来说,机器学习中的优化都是以随机梯度下降等一阶梯度方法为主,常见的一阶最优化器,有Adam、AdaGrad 以及SGD +Momentum。 而二阶梯度,相当于梯度的梯度,加快了收敛速度,Anil 等[47]提出的二阶梯度优化方法Shampoo,大大加快了模型的训练速度,若能应用于陨石坑检测的深度学习模型中,会提高其检测速度,节省大量时间。
5)云计算提供了一个与这些大数据集合作的机会,特别是对于那些无法访问超级计算机的研究人员,先进的深度学习网络框架可以同时访问这些远程资源并执行。
5 小结
传统视觉检测方法较简单,利用灰度和纹理等特征进行一系列像素操作,可以为深度学习网络的预处理提供支持,从而通过混合的方法来处理陨石坑数据,这样既可以降低网络对功耗、内存和训练工作方面的要求,还能提高运行速度。
行星地质学者和机器学习学者之间进行合作,将有助于促进陨石坑探测方式的重大研究和改进,特别是在进行联合跨学科项目时,一些学者正在使用卷积神经网络等技术来允许算法发展自己的特性。 随着深度学习领域的论文数量和研究方法呈指数增长,陨石坑检测识别可以从新的研究中受益。 经过适当训练的深度神经网络可以很好地识别出变量环境(行星的高低纬、不同的分辨率或不同的太阳光照角),更加灵活可靠,这是传统方法无法做到的,它也优于那些需要事先手动设置检测相关属性,而后才能训练为可以检测陨石坑的传统机器学习方法。
未来需要在月球上建造基础设施和基站,可与在现场供应建筑材料和能源的地区相连接,通过检测识别月球表面的陨石坑,预先探测并收集其几何拓扑信息,而卷积神经网络提供了一个很好的机会,可以直接从带注释的图像中自动收集相关的科学信息,而不需要手动检测。 因此基于深度学习的检测方法是陨石坑检测算法研究中的重要方向。