ADDS-DepthNet: Estimativa de profundidade monocular auto-supervisionada baseada em separação de domínio a partir de imagens de todo o céu

O projeto completo tem código aberto no AI Studio, clique no link para executá-lo:
aistudio.baidu.com/aistudio/pr…

01 Introdução

Quando um veículo não tripulado está dirigindo na estrada, geralmente é necessário configurar o lidar para obter dados de nuvem de pontos de alta precisão e obter a distância entre o veículo principal e os obstáculos ao redor dos dados da nuvem de pontos. No entanto, o custo do lidar é alto, por isso muitos estudiosos tentam usar câmeras para estimar a distância entre o veículo principal e os obstáculos ao redor, de modo a reduzir o custo ao máximo.

Em termos técnicos, a estimativa de profundidade consiste em coletar a imagem do objeto por meio do dispositivo de aquisição de imagem e usar a imagem do objeto para estimar a distância vertical de cada ponto do objeto até o plano de imagem do dispositivo de aquisição de imagem. distância é a informação de profundidade do ponto correspondente no objeto.

Atualmente, existem muitos métodos de estimativa de profundidade.Se forem divididos de acordo com os sensores utilizados, podem ser divididos em estimativa de profundidade baseada em câmeras TOF, câmeras binoculares e câmeras monoculares. Este artigo discute a estimativa de profundidade com base em uma câmera monocular .

foto

Figura 1 A história do desenvolvimento do algoritmo de estimativa de profundidade monocular[1]

02 Plano de fundo do algoritmo

Nos últimos anos, a estimativa de profundidade auto-supervisionada tem sido extensivamente estudada, e o Monodepth e o SFMLearner são os primeiros métodos de estimativa de profundidade monocular auto-supervisionados usando redes profundas treinadas e redes de pose independentes. Alguns métodos são aprimorados em cenas externas e totalmente testados no conjunto de dados KITTI e no conjunto de dados Cityscape, mas o efeito não é particularmente bom à noite devido à baixa visibilidade e iluminação irregular à noite. Portanto, alguns estudiosos desenvolveram um método de estimativa de profundidade para cenas noturnas. No entanto, a estimativa de profundidade à noite é mais difícil do que durante o dia. A rede de migração multiespectral MTN usa sensores adicionais para estimar a profundidade noturna, usa sensores de câmera de imagem térmica para reduzir o impacto da baixa visibilidade à noite e adiciona sensores a laser em uma certa maneira de melhorar as informações adicionais. Enquanto isso, também existem alguns métodos que empregam redes adversárias generativas para estimativa de profundidade noturna.

Embora um progresso notável tenha sido feito na estimativa de profundidade monocular noturna, o desempenho desses métodos é limitado devido à grande discrepância entre as imagens diurnas e noturnas. Para aliviar o problema de degradação de desempenho causada por mudanças de iluminação, o algoritmo ADDS-DepthNet emprega uma rede separada por domínio que divide as informações dos pares de imagens dia-noite em dois subespaços complementares: um domínio privado e um domínio invariante. O domínio privado contém a informação única (iluminação, etc.) da imagem diurna, e o domínio invariante contém a informação compartilhada necessária (texturas, etc.). Ao mesmo tempo, para garantir que as imagens diurnas e noturnas contenham a mesma informação, a rede de separação de domínios recebe a imagem diurna e a imagem noturna correspondente (gerada usando o método GAN) como entrada e aprende a extração de recursos do domínio privado e o domínio invariante através da perda de ortogonalidade e similaridade, reduzindo assim a lacuna de domínio e obtendo um melhor mapa de profundidade. Por fim, as informações complementares e o mapa de profundidade são utilizados para estimativa eficiente de profundidade usando reconstrução e perda fotométrica.

Mais uma coisa a dizer aqui, o chamado domínio privado pode ser entendido como a "personalidade" do recurso; enquanto o domínio invariante é semelhante à "comunalidade" do recurso.

03 Arquitetura do Algoritmo ADDS

O algoritmo ADDS propõe um framework de separação de domínios para eliminar a influência de interferências, usando a imagem diurna e a correspondente imagem noturna gerada pela ideia GAN como entrada da rede.

foto

Figura 2 Arquitetura do algoritmo ADDS-Net [2]

A arquitetura do algoritmo ADDS inclui três partes: uma rede profunda com pesos compartilhados (estrutura rosa na área laranja no meio), uma rede privada durante o dia (estrutura amarela na área azul acima) e uma rede privada à noite (estrutura verde na área azul abaixo).

A entrada para a rede profunda são imagens diurnas e noturnas com pesos compartilhados. A rede primeiro extrai feições invariantes e então estima os mapas de profundidade correspondentes. Enquanto isso, o extrator de recursos privados diurnos e o extrator de recursos privados noturnos (área azul) extraem recursos diurnos e noturnos, respectivamente. Esses recursos privados são limitados pela perda de ortogonalidade para obter recursos complementares e adicionam recursos privados e invariantes à imagem de entrada original perda de reconstrução.

Entrada do modelo parte 1

Para imagens diurnas e noturnas da mesma cena, as informações de profundidade devem ser consistentes, mesmo que a iluminação desses pares de imagens seja muito diferente. Isso significa que as informações básicas da imagem diurna e da imagem noturna correspondente à cena devem ser semelhantes. O algoritmo ADDS divide as informações das imagens diurnas e noturnas em duas partes: as informações invariantes das imagens diurnas e noturnas (como a lei do tamanho da rua etc.) imagens (como iluminação, etc.).

A iluminação da cena varia ao longo do tempo, enquanto a profundidade da cena é constante, de modo que o componente de iluminação da cena desempenha menos papel na estimativa de profundidade auto-supervisionada.

此外,很难保证场景的真实世界白天和夜间图像包含除了私有信息(照明等)之外的相同信息不变,因为在室外场景中总是有移动的对象,这将误导网络获取图像的私有和不变信息。因此,ADDS算法使用CycleGAN将白天图像转换为夜间图像,这样白天图像和相应生成的夜间图像被视为输入图像对,它确保了不变信息是一致的,并且所有对象都位于相同的位置,从而减少了在分离私有信息的过程中重要信息的丢失。注意,这里也可以使用其他GAN算法。

Part-2 特征提取器

域分离框架将图像分离为特征层中的两个互补子空间,并且将不变分量用于深度估计。

ADDS算法使用两个网络分支分别在特征级别提取图像的私有和不变信息。给定输入的白天图像序列和相应生成的夜晚图像序列,对于输入的白天图像序列,用白天专用特征提取器提取图像的私有和不变信息;同理,对于输入的夜晚图像序列,也有一个专用的特征提取器用来提取图像的私有和不变信息。由于输入的白天和夜间图像包含相同的基本信息,因此两个特征提取器中提取不变信息那部分是权重共享的。

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

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

Part-4 自监督信号

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

网络的总训练损失为:

foto

其中,λ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灵眸运动相机。 以下是测试图片和对应的预测深度图:

foto

从测试结果来看,我个人觉得深度图的表现效果在白天相对更好,在晚上则会弱一些,不过也有可能是晚上拍出来的图像质量较差,且环境较暗。但毕竟是基于自监督学习所作,所以结果还不错。

05 总结

论文最后展示了比较有意思的量化结果,这里给大家展示一下:

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

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

以上就是基于域分离的全天图像自监督单目深度估计的论文初步解读,欢迎大家来我的AI Studio页面互关交流 aistudio.baidu.com/aistudio/pe…

此外,想探索更多关于自动驾驶相关单目双目深度算法、3D单目感知算法、3D点云感知算法和BEV感知算法的问题,可以前往:

参考文献

[1] Xingshuai Dong, Matthew A. Garratt, Sreenatha G. Anavatti e Hussein A. Abbass (2023). Rumo à estimativa de profundidade monocular em tempo real para robótica: uma pesquisa ** [2] Lina Liu, Xibin Song, Mengmeng Wang, Yong Liu e Liangjun Zhang (2021). Estimativa de profundidade monocular auto-supervisionada para imagens durante todo o dia usando separação de domínio.. conferência internacional sobre visão computacional.

Acho que você gosta

Origin juejin.im/post/7215100383609864247
Recomendado
Clasificación