【综述研读】深度学习多模态图像语义分割前沿进展

原文链接:深度学习多模态图像语义分割前沿进展

摘要

图像语义分割旨在将视觉场景分解为不同的语义类别实体,实现对图像中每一个像素的类别预测。多模态图像语义分割通过联合利用不同模态图像(即通过基于不同成像机理的传感器获取的图像)间的互补特性,能够全面且准确地实现复杂场景信息的学习与推理。目前基于深度学习的多模态图像语义分割前沿成果较多,但缺少系统且全面的调研与分析。本文首先总结并分析了目前主流的基于深度学习的可见光—热红外(red-green-bluethermal,RGB-T)图像语义分割算法和可见光—深度(red-green-blue-depth,RGB-D)图像语义分割算法。依据算法侧重点不同,将基于深度学习的RGB-T图像语义分割算法划分为基于图像特征增强的方法、基于多模态图像特征融合的方法和基于多层级图像特征交互的方法;依据算法对深度信息的利用方式,将基于深度学习的RGB-D图像语义分割算法划分为基于深度信息提取的方法和基于深度信息引导的方法。然后,介绍了多模态图像语义分割算法常用的客观评测指标以及数据集,并在常用数据集上对上述算法进行对比。对于RGB-T图像语义分割,在MFNet(multi-spectral fusion network)数据集上,GMNet(graded-feature multilabel-learning network)和MFFENet(multiscale feature fusion and enhancement network)分别取得了最优的类平均交并比(mean intersection-over-union per class,mIoU)(57.3%)和类平均精度(mean accuracy per class,mAcc)(74.3%)值。在PST900(PENN subterranean thermal 900)数据集上,GMNet仍然取得了最优的mIoU(84.12%)值,而EGFNet取得了最优的mAcc(94.02%)值。对于RGB-D图像语义分割,在NYUD v2(New York University depth dataset v2)数据集上,GLPNet(global-local propagation network)的mIoU和mAcc分别达到了54.6%和66.6%,取得最优性能。而在SUN-RGBD(scene understanding-RGB-D)数据集上,Zig-Zag的mIoU为51.8%,GLPNet的mAcc为63.3%,均为最优性能。最后,本文还指出了多模态图像语义分割领域未来可能的发展方向。

前言

现有的基于深度学习的图像语义分割工作大多利用可见光(red-green-blue,RGB)图像实现场景内容感知,可见光相机对于场景光照变化的鲁棒性较差,且缺乏对烟、雾、霾、雨、雪的穿透功能。受限于其成像机理,可见光相机难以在不良光照条件以及恶劣天气情况下捕获足够有效的场景信息。此外,可见光相机还难以提供场景相关的空间结构信息以及三维布局信息,无法应对具有目标外观相似、场景区域多且变化大等特点的复杂场景。

热红外成像仪以及深度相机等图像传感器对比RGB图像虽然缺乏一定的颜色、纹理登细节信息,但是可以提供其他的更加精确的目标轮廓信息以及语义信息。通过联合利用不同模态图像间的互补特性,有助于更为全面、准确地实现场景信息的学习与推理。

1.深度学习RGB-T图像语义分割模型

RGB-T 图像 是结合了 可见光图像热成像图像 的图像数据。热成像图像能够在低光、雾霾、夜间等环境下提供更多的信息,因此可以弥补 RGB 图像在这些条件下的不足。

“编码器—解码器”结构:编码器用于提取图像特征,解码器则用于图像特征恢复以及分割结果预测。基于深度学习的RGB-T图像语义分割的处理过程:

已有的基于深度学习的RGB-T图像语义分割方法可以划分为3类:

  • 基于图像特征增强的方法
  • 基于多模态图像特征融合的方法
  • 基于多层级图像特征交互的方法

1.1基于图像特征增强的方法

基于图像特征增强的方法通常通过注意力机制以及辅助信息嵌入等方式,直接或间接地增强单模态图像特征或多模态图像融合特征。

1.1.1 PSTNet

PSTNet网络:

  1. 首先利用RGB图像的语义分割置信图作为一种辅助信息,通过将其与输入的RGB图像和热红外图像组合,以增强输入数据中所包含的有效信息。
  2. 通过预训练分类网络对增强后的输入数据进行特征提取。

 根据网络结构图,我们可以把整个流程看作是两个阶段:

    ### YOLO在多模态语义分割中的应用 YOLO系列作为目标检测领域的重要算法之一,其高效性和实用性使其成为许多计算机视觉任务的核心组件。然而,传统的YOLO模型受限于预定义类别集合,难以直接应用于开放词汇或多模态语义分割任务。为了克服这些限制,研究者们提出了多种改进方案。 #### 开放词汇对象检测与多模态融合 一种典型的解决方案是结合视觉语言模型(Vision-Language Model, VLM),这使得YOLO能够理解更广泛的对象类别并支持跨模态信息的集成[^2]。例如,YOLO-World通过引入RepVL-PAN网络结构和区域-文本对比损失函数,显著提升了对未见过类别的检测能力。这种方法不仅适用于单模态的目标检测,还为多模态语义分割提供了理论基础。 #### 多模态数据处理技术 对于涉及语音、图像以及深度传感器等多种输入源的任务,可以借鉴类似的研究成果来设计适合YOLO架构的多模态特征提取机制[^4]。具体来说: 1. **语音信号分析** 利用麦克风采集到的声音数据经过声学特征提取后转化为向量表示形式,再映射至统一的空间维度以便后续操作。 2. **场景解析** 基于RGB相机捕捉的画面执行初步的对象分类或者边缘轮廓描绘工作;与此同时,Kinect设备所提供的三维坐标系有助于构建更加精确的距离测量体系。 3. **手势追踪** 手部动作轨迹被记录下来并通过特定算法定位关键点位置关系,从而辅助判断用户的意图所在。 以上各部分单独完成之后即进入综合评判环节——即将来自不同感官渠道的结果按照一定权重比例加以组合形成最终决策依据。 以下是基于上述原理的一个简化版伪代码框架展示如何将传统YOLO扩展成具备多模态感知特性的新版本: ```python import torch from yolov5 import YOLOv5Model # Assume this is a pre-trained model. class MultimodalSemanticSegmentation(torch.nn.Module): def __init__(self, backbone='yolov5', num_classes=80): super(MultimodalSemanticSegmentation, self).__init__() # Load pretrained YOLO as base detector. self.detector = YOLOv5Model(pretrained=True) # Define additional branches for other modalities (e.g., audio or depth). self.audio_branch = AudioFeatureExtractor() self.depth_branch = DepthMapProcessor() # Fusion layer to integrate multi-modal features with visual detections. self.fusion_layer = FeatureFusionModule(num_channels=num_classes * 2) def forward(self, rgb_image, audio_signal=None, depth_map=None): # Perform object detection on RGB image using YOLO. bbox_preds, class_scores = self.detector(rgb_image) # Extract auxiliary information from non-visual sources if available. audio_features = None if audio_signal is not None: audio_features = self.audio_branch(audio_signal) depth_features = None if depth_map is not None: depth_features = self.depth_branch(depth_map) # Fuse all extracted features together before final prediction step. fused_output = self.fusion_layer(class_scores, audio_features, depth_features) return {'bboxes': bbox_preds, 'segmentations': fused_output} # Instantiate the multimodal segmentation network and test it out... model = MultimodalSemanticSegmentation(backbone="custom_yolo", num_classes=91).cuda() output = model(sample_rgb_img, sample_audio_clip, sample_depth_frame) ``` 此段脚本仅用于说明目的,并不代表实际可用的产品级实现方式。真实项目开发过程中还需要考虑更多细节问题比如性能优化策略等等因素的影响。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值