乐趣区

关于人工智能:ADDSDepthNet基于域分离的全天图像自监督单目深度估计

残缺我的项目已在 AI Studio 开源,点击链接即可运行:
https://aistudio.baidu.com/aistudio/projectdetail/5387023

01 简介

无人驾驶车辆在路上行驶时,通常须要配置激光雷达取得高精度点云数据,从点云数据中获取主车与四周各个障碍物的间隔。然而,激光雷达的老本高,因而,很多学者尝试用相机来预计主车与四周各个障碍物的间隔,从而尽可能地降低成本。

用专业术语来说,深度预计就是通过图像采集安装采集物体的图像,利用物体的图像预计物体各点到图像采集安装的成像立体的垂直距离,该垂直距离即为该物体上对应点的深度信息。

目前有很多深度预计办法,如果依照应用的传感器来分,能够分为基于 TOF 相机、基于双目摄像头和基于单目摄像头的深度预计。本文探讨的是基于 单目摄像头的深度预计

图 1 单目深度预计算法发展史[1]

02 算法背景

近年来,自监督深度预计失去了宽泛的钻研,Monodepth 和 SFMLearner 是第一个采纳训练深度网络和独立位姿网络的自监督单目深度预计办法。一些办法在户外场景进行了改良,并在 KITTI 数据集和 Cityscape 数据集上进行了充沛的测试,但因为夜间的低能见度和不平均光照,所以在夜间的成果并不是特地好。因而,有学者开发了夜间场景的深度预计办法。然而,夜间深度预计比白天要难,多光谱迁徙网络 MTN 就应用额定的传感器来预计夜间深度预计,采纳热成像相机传感器来缩小夜间能见度低的影响,还通过肯定形式减少了激光传感器以进步额定信息。同时,也有一些办法采纳生成式反抗网络来进行夜间深度预计。

尽管夜间单目深度预计曾经获得了显著的停顿,但因为白天图像和夜间图像之间存在较大的差别,因而这些办法的性能无限。
为了缓解光照变动导致的性能升高问题,ADDS-DepthNet 算法采纳了一种域拆散的网络,将昼夜图像对的信息划分为两个互补的子空间:公有域和不变域。公有域蕴含昼夜图像的惟一信息(光照等),不变域蕴含必要的共享信息(纹理等)。同时,为了保障白天和夜晚图像蕴含雷同的信息,域拆散网络将白天图像和对应的夜间图像(应用 GAN 办法生成)作为输出,通过正交性和类似损失学习公有域和不变域的特征提取,从而减小域差距,取得更好的深度图。最初,利用重建和光度损失对互补信息和深度图进行无效地深度预计。

这里多说一句,所谓公有域,能够了解为特色的“共性”;而不变域就相似于特色的“共性”。

03 ADDS 算法架构

ADDS 算法提出了一种域拆散框架来打消烦扰的影响,该框架用 GAN 的思路产生的白天图像和相应的夜间图像作为网络为输出。

图 2 ADDS-Net 算法架构[2]

ADDS 算法架构包含三个局部:共享权重的深度网络(两头橙色区域粉色构造)、白天公有网络(上方蓝色区域黄色构造)和夜间公有网络(下方蓝色区域绿色构造)。

深度网络的输出是共享权重的白天和夜间图像。该网络首先提取不变特色,而后预计相应的深度图。同时,白天公有特征提取器和夜间公有特征提取器(蓝色区域)别离提取白天和夜晚的特色,这些公有特色受到正交性损失的束缚,以取得互补特色,并增加公有和不变特色来重建具备重建损失的原始输出图像。

Part-1 模型输出

对于雷同场景里白天和夜间图像,只管这些图像对的照明十分不同,但其深度信息应该是统一的。这意味着场景对应的白天图像和夜晚图像的根本信息应该是类似的。ADDS 算法别离将白天和夜间图像的信息分成两局部:白天和夜晚图像的不变信息(如街道近大远小的法则等),白天和夜间图像的公有信息(如照明等)。

场景的照明随着工夫的推移而不同,而场景的深度是恒定的,因而场景的照明重量在自监督深度预计中施展的作用较少。

此外,很难保障场景的真实世界白天和夜间图像蕴含除了公有信息(照明等)之外的雷同信息不变,因为在室外场景中总是有挪动的对象,这将误导网络获取图像的公有和不变信息。因而,ADDS 算法应用 CycleGAN 将白天图像转换为夜间图像,这样白天图像和相应生成的夜间图像被视为输出图像对,它确保了不变信息是统一的,并且所有对象都位于雷同的地位,从而缩小了在拆散公有信息的过程中重要信息的失落。留神,这里也能够应用其余 GAN 算法。

Part-2 特征提取器

域拆散框架将图像拆散为特色层中的两个互补子空间,并且将不变重量用于深度预计。

ADDS 算法应用两个网络分支别离在特色级别提取图像的公有和不变信息。给定输出的白天图像序列和相应生成的夜晚图像序列,对于输出的白天图像序列,用白天专用特征提取器提取图像的公有和不变信息;同理,对于输出的夜晚图像序列,也有一个专用的特征提取器用来提取图像的公有和不变信息。因为输出的白天和夜间图像蕴含雷同的根本信息,因而两个特征提取器中提取不变信息那局部是权重共享的。

Part-3 深度图的生成及图像的重建

基于上一步失去的特色重建白天和夜间图像的相应深度图。其中,红色解码器示意共享权重的深度网络的深度复原模块,黄色解码器和绿色解码器示意白天、夜间图像的重建分支。

Part-4 自监督信号

为了以自监督学习的形式取得全天图像的公有和不变特色并很好地预计深度信息,ADDS 算法利用了不同的损失,包含重建损失(Reconstruction Loss)、相似性损失(Similarity Loss)、正交性损失(Orthogonality Loss)和光度损失(Photometric Loss)。

网络的总训练损失为:

其中,λ1, λ2, λ3, λ4 是权重参数。在 ADDS 算法中,作者依据教训设置为 λ1=0.1, λ2=λ3=λ4=1。

04 基于 PaddleVideo 疾速体验 ADDS-DepthNet

PaddleVideo 是飞桨官网出品的视频模型开发套件,旨在帮忙开发者更好地进行视频畛域的学术研究和产业实际。上面将简要介绍疾速体验步骤。

装置 PaddleVideo

 # 下载 PaddleVideo 源码
%cd /home/aistudio/
!git clone https://gitee.com/PaddlePaddle/PaddleVideo.git
# 装置依赖库
!python -m pip install --upgrade pip
!pip install --upgrade -r requirements.txt

下载训练好的 ADDS 模型

PaddleVideo 提供了在 Oxford RobotCar dataset 数据集上训练好的 ADDS 模型,为了疾速体验模型成果的开发者能够间接下载。

 # 下载在 Oxford RobotCar dataset 数据集上训练好的模型参数
!wget https://videotag.bj.bcebos.com/PaddleVideo-release2.2/ADDS_car.pdparams
# 导出推理模型
%cd /home/aistudio/PaddleVideo
!python tools/export_model.py -c configs/estimation/adds/adds.yaml \
                              -p ADDS_car.pdparams \
                              -o inference/ADDS

导出的推理模型保留在

 /PaddleVideo/inference
└── ADDS
    ├── ADDS.pdiparams
    ├── ADDS.pdiparams.info
    └── ADDS.pdmodel

模型推理

应用 PaddleVideo/tools/predict.py 加载模型参数,并输出一张图片,其推理后果会默认以伪彩的形式保留下模型预计出的深度图。这里提供了两张测试图片,别离是白天和夜间拍摄的照片,拍摄设施是大疆 Osmo Action 灵眸静止相机。以下是测试图片和对应的预测深度图:

从测试后果来看,我集体感觉深度图的体现成果在白天绝对更好,在早晨则会弱一些,不过也有可能是早晨拍进去的图像品质较差,且环境较暗。但毕竟是基于自监督学习所作,所以后果还不错。

05 总结

论文最初展现了比拟有意思的量化后果,这里给大家展现一下:

图 3 模型卷积层特色图可视化[2]

这张图展现的是卷积层的特色图可视化。从上到下别离是:(a)白天公有特色;(b)夜间公有特色;(c)白天共有特色;(d)夜间共有特色。第一列显示了相应的输出图像,从左到右的其余列是蕴含更多信息的前 10 个特色图。首先看输出,这里展现的图像,不论是白天还是夜间拍摄的图像,都是比拟亮的。也就是说,在做深度预计时,图片肯定要清晰,上方演示测试的不完满后果可能就是图片不清晰导致的。另外,可视化特色图后,能够在肯定水平上看出模型的各个局部是怎么“分工”的。可视化后果里局部的彩色区域阐明了无效信息的缺失。有意思的是,对于白天公有特色和夜间公有特色,其浅层特色是比拟清晰的,越深越含糊,并且他们对路线两边的物体比拟敏感(比方停在路线两边的车辆或是从旁边通过的车辆);而对于白天共有特色和夜间共有特色,能够发现它们的可行驶边缘的两条线比拟亮,而路线两边的区域相对来说比拟暗。这也反映了公有特色和共有特色的确是互补的。

以上就是基于域拆散的全天图像自监督单目深度预计的论文初步解读,欢送大家来我的 AI Studio 页面互关交换
https://aistudio.baidu.com/aistudio/personalcenter/thirdview/…

此外,想摸索更多对于主动驾驶相干单目双目深度算法、3D 单目感知算法、3D 点云感知算法和 BEV 感知算法的问题,能够返回:

  • Paddle3D
    https://github.com/PaddlePaddle/Paddle3D
  • PaddleDepth
    https://github.com/PaddlePaddle/PaddleDepth

参考文献

[1] Xingshuai Dong, Matthew A. Garratt, Sreenatha G. Anavatti, & Hussein A. Abbass (2023). Towards Real-Time Monocular Depth Estimation for Robotics: A Survey**
[2] Lina Liu, Xibin Song, Mengmeng Wang, Yong Liu, & Liangjun Zhang (2021). Self-supervised Monocular Depth Estimation for All Day Images using Domain Separation.. international conference on computer vision.

退出移动版