基于融合伽马变换全卷积神经网络的火星地貌分割方法
2023-03-15胡茄乾何超群龚翼飞温中凯于利夫
胡茄乾,何超群,龚翼飞,温中凯,于利夫,李 爽
(1.南京航空航天大学 航天学院,江苏 南京 211106;2.中国空间技术研究院,北京 100094)
0 引言
随着深空探测任务的发展,对火星等深空天体的地表探测任务受到了越来越多研究者的关注。其中如何利用巡视器有限的寿命探索更多有科学价值的区域,获得更高科学回报,甚至能够独立进行科学勘探是研究的重点方向。火星表面的环境自主分析,比如自主提取科学兴趣区域、检测行进障碍等是实现巡视器自主探测的基础。火星表面环境恶劣,许多区域虽然没有障碍,但是由于地质过软会导致巡视器下陷、有可滑动的石块会导致巡视器打滑等问题依然不适合通行,而这些区域无法用激光雷达等主动传感器分辨,只能依靠相机。但是火星表面的图像颜色单一且缺少纹理,传统的基于纹理和灰度梯度的图像处理方法无法适应这一环境。针对这一难题,本文利用全卷积神经网络(Fully Convolutional Networks,FCN),借助机器学习强大的分类能力,利用较小的样本,实现火星表面地貌的分割。
于1997 年7 月4 日着陆在火星表面的索杰纳号(Sojourner)是第一个承担科学勘探任务的火星巡视器[1],出于可靠性因素,它的运作由地面工作人员全权掌控,因此任务执行效率很低。美国国家航空航天局(NASA)、喷气推进实验室(JPL)等科学机构,分别建立了巡视器命令语言[2](Contingent Rover Language,CRL)系统、火星在线自主科学考察系统[3](Onboard Autonomous Science Investigation System,OASIS)等,旨在进一步提高“勇气号”与后续火星巡视器的自主性能。OASIS 通过利用Sober与Canny 算子[4]来检测导航相机所采集图像中的闭合轮廓,发展了岩石的快速识别技术;利用序列图像差分算法实时监测尘暴;利用边缘检测算法分割图像中天空与地面,并认为天空中局部梯度变化较大处为云层,发展了云层识别算法[5-7]。在执行火星“勇气号”任务后,科学家们一直认为应逐步增加自主分析与智能决策在远地天体探测任务中的分量,URBACH 等[8]围绕轨道器遥测数据,发展了火星表面陨石坑自主标定技术。随后,PINA 等[9]也利用相同数据源发展了火表沙丘地的检测与标定技术。PALAFOX 等[10]将深度神经网络应用至火表科学地貌勘探任务中,并验证了卷积神经网络(CNN)网络在检测不规则火山、波纹风脊这两类典型特征的优势[11]。ROTHROCK 等[12]于2016 年发布了火星土壤性质与对象分类(Soil Property and Object Classification,SPOC)框架,其核心是面向火星巡视器自主勘探任务,利用深度学习对复杂地形、地貌进行细致分类,SPOC 共建立了17 类火星地貌,并在AlexNet 基础上使用迁移学习(Transfer Learning)技术训练了地形分类网络,相关技术也将在火星“毅力号”得到验证,但其在部分地貌下准确率较低,不能满足全局分割要求。
火星地表场景复杂,包括其卫星在内,有大量不同于地球地表的地形[13],传统的基于灰度值不连续性和相似性的方法,例如语义纹理森林(Semantic Texton Forests,STF)[14]、马尔科夫随机场(Markov Random Fields,MRF)分割[15]等,不能满足火星场景应用的实时性、鲁棒性等需求,图像语义分割也向深度学习方向发展。CNN 一被提出,就凭借其强大的非线性泛化回归能力,成为深度学习图像处理的有力工具,然而受限于其全连接层的一维性,只能将一幅图片作为一个整体,对其分类进行预测。LONG[16]创造性地将CNN 结构末端的全连接层替换为卷积层,提出了FCN,使得其能够对不同分辨率图片上的每一个像素进行预测,得到其归属类型的概率分布,相对于像素区块的分割方法,准确性和快速性都得到了明显提高,奠定了后续深度学习语义分割的基础。卷积操作不可避免地缩小了输入图像的分辨率,导致即使将全连接层替换为卷积层,最后得到的像素概率分布的分辨率也是小于原图像,对于这个问题,FCN 引入反卷积(Transpose Convolution)对输出的概率分布进行处理,最终虽然得到了与原图像分辨率相同的结果,但是忽略了像素与像素之间的关系,一定程度上减少了图像信息。RONNEBERGER 等[17]提 出UNet,使用一个收缩通道(Contracting Path)来捕获像素之间上下文特征关系,再通过扩张通道(Expanding Path)来执行分辨率恢复操作,这两个通道在结构上呈U 形对称关系,采用Contact 方法进行特征融合,改进了FCN 会忽略特征信息的不足,但是增大了计算量,且对输入图像的分辨率有严格要求。BADRINARAYANAN 等[18]在FCN 的基础上提出使用编码器-解码器(Encoder-Decoder)结构的Seg-Net,分别取代了下采样/收缩通道和上采样/扩张通道,解码器网络采用最大池化层索引(Max-pooling Index)进行特征恢复,进一步减少了特征信息丢失,并提高了运算效率。CHEN 等[19]将空间金字塔池化(Spatial Pyramid Pooling)与编码器-解码器融合,提出了DeepLabV1,在下采样阶段提出空洞卷积(Atrous Convolutions),保持参数数量不变的情况下扩大了卷积核的感受野,避免了下采样过程过多的池化操作带来的分辨率缩小与信息丢失。空洞空间金字塔池化(Atrous Spatial Pyramidal Pooling,ASPP)通过不同空洞比率的卷积,提取了多尺度的特征信息,节省了时间与计算成本。该团队后续对DeepLabV1 网络不断改进,又提出了Deep-LabV2[20]、DeepLabV3[21]、DeepLabV3+[22]若干个改良版本,其中,DeepLabV3+网络使用了深度可分离卷积(Depthwise Separable Convolution),在不丢失分割性能的前提下,减少了参数量,降低了运算量,成为基础应用中运用最广泛的语义分割网络。SEDIQI[23]提出基于引导滤波器的密集卷积上采样方法,有效地保留了二维空间特征信息,实现了精确的对象边界分割,在ADE20K 和Pascal-Context基准数据集上分别达到了82.86%和81.62%的像素准确率,在Cityscapes 数据集上MIou 达到了83.3%。袁伟等[24]将色差信息输入到神经网络中,通过空间变换将其作为PSPNet 的输入,使分割结果在准确度上得到一定提高。
综上所述,深度学习方法在图像分割方面相比于传统方法具有较大的优势,而且目前已经拥有丰富的火星表面图像数据,用于驱动深度神经网络的训练,但是缺少公开的已标注数据,且全局分割能力不足。面对上述的火星图像自主分割难题,本文提出了基于FCN 的火星表面地貌分割方法,利用好奇号拍摄的大量火星表面图像构造可训练的数据集,并针对火星场景灰度值单一特点,采用自适应伽马变换(Adaptive Gamma Transformation,AGT)方法进行图像预处理,通过全卷积网络实现了火星表面高准确度的地貌分割,旨在火星表面巡视任务中巡视器能够自主实现对火星地貌的感知并进行可通过性的评价。
1 FCN 火星图像分割方法
1.1 DeepLabV3+神经网络结构介绍
经典的卷积神经网络在卷积层的末端会加入若干个全连接层,用来将卷积操作得到的特征图归一化,将三维的特征信息映射到一维向量,得到整个图像分类的概率分布。与经典的卷积神经网络不同,FCN 将经典卷积网络的全连接层,替换为1×1 的卷积处理,对之前卷积操作获得的特征图再次进行卷积计算,从而得到像素级分类概率。
由原始高分辨率图像获得低分辨率的像素分类概率图,这一过程被称为下采样(Downsample)。每一层卷积操作的计算公式如下:
式中:i、j为像素坐标;k为卷积核的尺寸;s为卷积步长;fks为卷积层的类型,包括矩阵相乘卷积、平均/最大池化、激活层等。
之后,再通过上采样(Upsample)计算,将像素概率图扩充为原图分辨率大小,即可得到原始每个像素所属类型的概率分布预测结果。
本文所使用的DeepLabV3+是2018 年推出的全卷积类型深度神经网络结构,它沿用了编码-解码(Encoder-Decoder)结构,如图1 所示。在编码阶段,首先使用若干层深度卷积网络(DCNN)对输入图像进行特征提取,得到深层信息特征图;接着对特征图进行1×1 卷积(Conv)、膨胀率(rate)分别为6、12、18 的空洞卷积和池化(Pooling)操作,将多个不同尺度的结果合并为多层特征图;最后再使用1×1 卷积进行特征压缩。在解码阶段,首先从编码器的初始卷积中获得低层特征信息,卷积处理后与4阶上采样计算过的高层特征图合并,然后通过卷积和上采样化,得到原始分辨率的预测图。Deep-LabV3+通过膨胀率可调的空洞卷积,扩大了感受野,可以任意控制编码器获得的特征的分辨率,获取不同尺度的上下文信息。
1.2 训练基准
在自建数据集数据量少,难以使FCN 得到充足训练的情况下,本文使用预训练模型来加速训练过程。预训练模型是其他科研人员使用相同的网络结构,在大量相同的任务、相似的数据集下训练得到的网络参数模型。本文提出的火星地貌分割FCN,骨干(backbone)网络采用可以快速、有效地提取图像特征的ResNet50 网络[25]。ResNet50 是常用的图像特征提取网络,其通过引入残差结构,减小了深层神经网络降低收敛速度和准确率的影响。ImageNet 则是分类任务中被广泛用于训练、验证、测试的数据集。ImageNet 包含1 400 万张图片,共1 000 个类别,需要在庞大的计算能力下才能进行完整的训练。目前,经过训练的ResNet50 网络模型已经开源供研究人员使用,将其预训练模型应用到本文的仿真中,可以大大加快训练速度,提高训练准确率,减小数据匮乏带来的弊端。基线网络(baseline)则使用1.1 节介绍的DeepLabV3+网络。
卷积神经网络的优化采用梯度下降优化算法,是神经网络反向传播的核心。梯度下降算法中,学习率决定了每次优化的学习步长,也决定了神经网络的参数优化效率。学习率如果设置得过高,会导致函数在最优值附近震荡,增加找到全局最优的时间甚至不收敛,如果设置得太小,会导致函数收敛速度变慢,训练时间加长,甚至无法进行学习。考虑到本文使用预训练模型进行训练,学习率不宜设置过大,根据训练经验,将学习率设置为0.000 1。由于小数据集在训练过程中极易出现过拟合现象,对损失函数采用L2 正则化处理,λ参数设置为0.001。
2 AGT 图像处理
火星表面常年受到风吹影响,其地形地貌以沙地和碎岩类型为主要构成,这决定了火星地形数据集图像多数为灰色,像素灰度变化范围小,图像整体过暗,对比度低。且火星大气层稀薄,自转速度快,导致其地表光照变化较快,加上常见的沙尘暴对相机视觉的干扰,不确定性因素相比地球遥感图像更多。因此使用原始图像作为直接输入,会给图像分割的实现带来困难[26]。为了解决上述问题,提出基于AGT 的火星地表图像预处理方法,降低灰度单一情况下火星图像的干扰因素影响,继而提高卷积神经网络对特征的提取能力,使深度神经网络更好地分辨地形边界等重要特征。
经典伽马变换(Gamma Transformation,GT)的基本形式如下:
式中:o为输出的灰度等级;r为输入的灰度等级;c为GT 的补偿系数;γ为伽马参数。
GT 需要人工手动设定变换参数,如图2 所示,不同的参数范围得到的增强效果也不同,导致对同一图像集批处理,会出现部分过饱和或欠饱和现象,降低了预期效果。
图2 伽马变换图像处理结果Fig.2 Results after GT
在文献[26]的基础上,改进现有的AGT 方法,依据不同图像的整体亮度平均值和标准偏差,计算确定每张图像的最佳伽马参数。根据火星图像整体处于低对比度的情况考虑,统一使用下式计算伽马参数:
式中:μ为图像整体亮度均值;σ为图像整体亮度标准偏差。
μ和σ通过原始RGB 格式图像转换为HSV 格式图像,再处理V 通道亮度信息得来,由此可以根据不同图像的对比度情况,自适应获得伽马参数,进行合适的伽马校正,如图3 所示。人工设置的伽马参数出现了欠饱和现象,而自适应伽马校正后的像素分布更加均匀,数据能够更好地适应深度学习处理任务。
图3 不同图像像素分布直方图Fig.3 Distribution histograms of image pixels
3 仿真与结果分析
3.1 火星地形地貌数据集制作
目前地形地貌分割工作的主要领域为对地遥感观测,用于识别并分割遥感卫星拍摄的地球表面不同的地貌,类型包括农田、河流、城市、山脉等。火星表面目前尚未发现河流、植被、有机生命生存环境等,只存在基础的土壤与岩石,但由于火星沙尘风暴天气的影响,地形地貌仍然复杂多样且难以区分。
本文的数据集以Mars32K 数据集为基础,Mars32K 数据集是NASA 发布的包含好奇号火星车在6 年时间里探索火星的盖尔撞击坑的过程中拍摄的3 万多张图像。根据基础地形分割经验,结合实际火星探测目标研究价值[12],本文将火星地貌分类为沙地、基岩、露出的粗糙的石头、露出的光滑的石头、履带痕、断层岩和碎石共7 种,其分类依据见表1。
表1 火星地貌类别和地貌定义Tab.1 Types and definitions of Mars terrain
从Mars32K 图像库中,挑选地貌特征丰富、不同地貌边界明显易于观察的447 张图片统一处理为256×256,使用Labelme 工具进行人工标注。在标注完成后,Labelme 生成了各幅图像一一对应的json数据,存储了标注目标的像素信息,再将其转换成图片格式,完成了数据集建立的初步工作,如图4 所示。
图4 火星地貌数据集建立Fig.4 Schematic diagram of the Mars terrain dataset
3.2 训练与测试结果
本试验以人工标注的火星地形地貌数据集为基础,经GT 处理后,输入FCN 进行训练、测试,仿真软件平台为Windows 10 专业版,仿真程序使用Python代码编写,硬件方面CPU 为I5-8400,主频2.8 GHz,显卡为NVIDIA 1050ti。训练参数方面,batch size为16,学习率为0.000 1,weight decay 为0.001。
以447 张图片输入到FCN 中训练一次为1 代(epoch),共训练100 个epochs,batch size 设置为16,训练和验证损失函数变化如图5 和图6 所示。
图5 训练损失函数值Fig.5 Training loss function values
图6 验证损失函数值Fig.6 Validating loss function values
由图5 和图6 可以看出,在训练过程中,训练损失函数值和验证损失函数值都处于整体稳定下降的状态,在训练进行到后期时,训练损失函数值仍具有继续下降的趋势,而验证损失函数值已经趋于平稳,且没有上升的趋势,证明了网络模型尚未出现严重的过拟合现象,保证了模型的拟合泛化能力。
以准确率(ACC)和平均交并比(MIou)作为评价指标,对比 SPOC、ResNet+FCN、GT+ResNet+FCN 方 法、GT+ResNet+DeepLabV3+方法和AGT+ResNet+DeepLabV3+方法,测试结果见表2。
表2 火星地貌分类测试结果Tab.2 Results of Mars terrain segmentation tests
由表2 可以看出,相对于网络模型较为陈旧的SPOC 方法,使用ResNet 作为骨干网络使得地形分割测试准确率提升了约10%,这是由特征提取性能更加强劲的主干网络带来的,而结合了GT 的ResNet+FCN 方法,虽然在准确率上仅提升了1.34%,但是GT 降低了干扰因素的影响,使各个分类之间区别更加明显,像素特征更容易互相区分,从而在平均交并比上提升了6.48%。将基线网络替换为DeepLabV3+结构,虽然在准确率上有微弱提升,但是其强劲的性能在分辨率较小、分类较少且在具有不均衡性的火星地貌数据集上未能得到完全发挥,平均交并比反而有所下降。可见,对于不同规模、类型的数据集,更先进的网络不一定能发挥更好的效果,这与数据和模型的适应性是息息相关的,而使用AGT 进行图像处理,两项指标相对于GT 均有所提升,验证了本文所提方法对火星图像深度学习效率提升的有效性。将预测结果可视化,其中一些地形分割结果如图7 所示。
图7 测试结果Fig.7 Graphical test results
从图7 可以看出,对于训练数据集中数据较丰富的沙地、基岩,网络的预测结果较为准确,能明显分割出这类地形与其他地形的边界,而对于断层岩、露出的岩石种类等数据类型较少的地形地貌,训练效果较差,导致在一些模糊地形中预测结果比较混乱。一方面这是实际火星环境下,沙尘风暴导致地形边界不明显,特征匮乏造成的;另一方面,标注数据集质量参差不齐,测试结果反而检测到了不同地形的模糊边界,导致其存在部分与人工标注真实基准(Ground Truth)不同。试验证明,本文提出的结合AGT 和FCN 的火星地貌分割方法,可以对火星地表图像进行适当处理,便于像素值邻近的各种地形的分割,提高了深度网络的准确性,卷积网络经过离线训练后,能够自主地对火星地貌图像进行特征提取与语义分割,实现多种类地貌的识别、分割,为火星车的无人行驶和自主勘测提供了技术支撑。
3.3 交叉验证试验
为了检验模型的过拟合程度,分析数据集质量和数据集划分对训练、测试结果的影响,进行10 折交叉验证试验。将数据集均分为10 份,其中每份约包含45 对数据,依次取其中1 份作为测试集,另外9 份作为训练集,进行10 次交叉验证试验,得到结果见表3。
表3 10 折交叉验证结果Tab.3 Results of 10-fold cross validation
由表3 可以看出,在10 折交叉验证试验中,测试准确率最低达到79.48%,最高达到87.50%,相差不超过10%,平均准确率为82.20%。交叉验证试验说明模型总体过拟合程度较低,具备可靠的信服力与一定的泛化能力,能有效地对火星地表图像进行语义分割。但是,在数据集的标注质量方面有一定不足,导致不同的数据集划分方式在一定程度上影响了模型训练的质量,且对不同批次完整训练结果的过拟合程度产生影响。
4 结束语
本文提出了一种基于FCN 的火星图像分割方法,用于火星巡视器自主分割、分类火星典型地形地貌。在人工标注自建火星地表图像数据集中,使用AGT 进行图像预处理,然后训练FCN,获得了较高的准确率。使用训练后的网络对测试图像进行预测,得到了较为准确的图像分割结果。结果表明:基于深度学习的地貌智能分割技术可以高效地实现对火星地貌的精确分割,有助于减少人工工作,提高火星巡视器的自主性,为火星巡视器地貌可通过性评估提供了依据。在后续的工作中,提升数据集质量的工作还需要继续进行,包括数据的扩充和各类别数据量的平衡等。同时还需要关注对火星表面高价值目标的主动识别、火星巡视日志撰写等提高巡视器自主性的工作,以提高火星巡视任务的科学产出。