当前位置:网站首页>《Feature-metric Loss for Self-supervised Learning of Depth and Egomotion》论文笔记
《Feature-metric Loss for Self-supervised Learning of Depth and Egomotion》论文笔记
2022-06-21 10:26:00 【m_buddy】
参考代码:FeatDepth
1. 概述
介绍:在自监督深度估计中以光度重构误差作为损失函数,需要计算的是每个像素点的对应差异,但是在一些无/弱纹理或是存在多个最小值的低辨识度像素,区域光度重构误差就会产生错误匹配结果。对此,这篇文章提出了一种新的重建误差度量FeatureMetric loss,也就是在feature map的维度计算loss,从而去约束重建的过程。那么怎么去生成满足要求的feature map呢?一个自然的办法便是使用自编码网络去重建输入彩色图像(也是一个自监督任务),而且还需要在feature map上做一阶和二阶梯度约束使得其满足自监督深度估计收敛条件。
在自监督深度估计任务中是以光度重构误差作为损失,但是光度重构误差最小时却不一定代表真实深度误差最小,特别是在无纹理区域上,这样的约束经常导致错误的深度估计结果。同时为了减少深度预测错误带来的不连续问题,通常会引入平滑约束,这样会导致在一些深度平面交汇处出现模糊的情况。为了使得重构误差中的单个像素更加具有辨别能力,文章提出了feature metric loss,也就是在特征图的维度实现重建最小化。其中运用到的特征图提取网络来自于自监督的自编码器。除了自编码器使用的重建损失外,还使用了discriminative loss和convergent loss,分别用于生成更具分辨能力的单像素表达以及减少像素之间的方差。
下图展示了MonoDepth2和文章方法的比较,这篇文章的方法效果更好:
2. 方法设计
2.1 pipeline结构
文章的整体pipeline见下图所示:
在上图的左边是用于训练自编码器的网络,其编码器会用于后面单目自监督估计中特征图的抽取。右边就是标准的单目自监督深度估计的pipeline了。
2.2 自编码器
这里使用的自编码器训练是采取自监督的形式进行的,在其训练过程中包含3个部分的损失:图像重建损失、discriminative loss和convergent loss。
图像重建损失: 这部分是直接用于自编码器生成和原图一致的结果:
L r e c ∑ p ∣ I ( p ) − I r e c ( p ) ∣ 1 L_{rec}\sum_p|I(p)-I_{rec}(p)|_1 Lrecp∑∣I(p)−Irec(p)∣1
discriminative loss: 这部分用于激励每个像素生成更具判别能力的信息表达,特别是用于区分无纹理区域的像素,因而会激励网络在这些区域产生更多的梯度
L d i s = − ∑ p ∣ ∇ 1 ϕ ( p ) ∣ 1 L_{dis}=-\sum_p|\nabla^1\phi(p)|_1 Ldis=−p∑∣∇1ϕ(p)∣1
convergent loss: 该损失函数用于对特征图上的梯度平滑,因而保证特征图梯度的连续性和较大的收敛半径
L c v t = ∑ p ∣ ∇ 2 ϕ ( p ) ∣ 1 L_{cvt}=\sum_p|\nabla^2\phi(p)|_1 Lcvt=p∑∣∇2ϕ(p)∣1
对于上述中的 ∇ 1 = ∂ x + ∂ y , ∇ 2 = ∂ x x + 2 ∂ x y + ∂ y y \nabla^1=\partial_x+\partial_y,\nabla^2=\partial_{xx}+2\partial_{xy}+\partial_{yy} ∇1=∂x+∂y,∇2=∂xx+2∂xy+∂yy。则整体的自编码器自监督损失函数描述为:
L s = L r e c + α L d i s + β L c v t L_s=L_{rec}+\alpha L_{dis}+\beta L_{cvt} Ls=Lrec+αLdis+βLcvt
其中, α = β = 1 e − 3 \alpha=\beta=1e-3 α=β=1e−3。那么更进一步上述中的几个loss对网络的整体性能影响见下表:
2.3 深度估计约束
这里将自编码器中的编码器引入到深度估计网络中去,因而除了直接在图片维度进行光度重构误差,还在feature map的维度进行重构误差最小化。则深度自监督部分的损失函数描述为:
L s → t = ∑ p L f m ( ϕ s ( p ^ ) , ϕ t ( p ) ) + ∑ p L p h ( I s ( p ^ ) , I t ( p ) ) L_{s\rightarrow t}=\sum_pL_{fm}(\phi_s(\hat{p}),\phi_t(p))+\sum_pL_{ph}(I_s(\hat{p}),I_t(p)) Ls→t=p∑Lfm(ϕs(p^),ϕt(p))+p∑Lph(Is(p^),It(p))
其中,前面的一项便是feature map上的重构误差,后面一项就是光度重构误差。对于feature map上的重构误差这里用L1范数的形式进行表示:
L f m = ∣ ϕ s ( p ^ ) , ϕ ( I t ( p ) ) ∣ 1 L_{fm}=|\phi_s(\hat{p}),\phi(I_t(p))|_1 Lfm=∣ϕs(p^),ϕ(It(p))∣1
对于图像维度的光度重构误差描述为:
L p h = 0.15 ∑ p ∣ I s ( p ^ ) − I t ( p ) ∣ 1 + 0.85 1 − S S I M ( I s ( p ^ ) , I t ( p ) ) 2 L_{ph}=0.15\sum_p|I_s(\hat{p})-I_t(p)|_1+0.85\frac{1-SSIM(I_s(\hat{p}),I_t(p))}{2} Lph=0.15p∑∣Is(p^)−It(p)∣1+0.8521−SSIM(Is(p^),It(p))
而在实际运算过程中也会考虑遮挡的情况,这里跟Monodepth2中的处理机制一样,采取的是选择重构误差作为该点损失的形式:
L s → t ′ ∑ p min s ∈ V L s → t ( ϕ s ( p ^ ) , ϕ t ( p ) ) L_{s\rightarrow t}^{'}\sum_p\min_{s\in V}L_{s\rightarrow t}(\phi_s(\hat{p}),\phi_t(p)) Ls→t′p∑s∈VminLs→t(ϕs(p^),ϕt(p))
因而,结合上述中的自编码器损失,总体损失描述为:
L t o t a l = L s + L s → t L_{total}=L_s+L_{s\rightarrow t} Ltotal=Ls+Ls→t
则上述提到的损失对整体性能的影响见下表:
3. 实验结果

边栏推荐
- Esp8266/esp32 +1.3 "or 0.96" IIC OLED pointer clock
- Eureka's timedsupersortask class (periodic task with automatic interval adjustment)
- One line of code accelerates sklearn operations thousands of times
- Unity vuforia recommended equipment
- 送分题,ArrayList 的扩容机制了解吗?
- Stream programming: stream support, creation, intermediate operation and terminal operation
- Where is the cow in Shannon's information theory?
- 安全百强 中坚力量!美创科技入选《2022年中国数字安全百强报告》
- 如何将MindSpore模型转ONNX格式并使用OnnxRuntime推理---开发测试篇
- Do website from scratch 11- blog development
猜你喜欢

基因型填充前的质控条件简介

Starting a prairie fire, Alibaba cloud database "hundred cities gather together" to help small and medium-sized enterprises' digital intelligence transformation

性能優化——圖片壓縮、加載和格式選擇

WCF restful+jwt authentication

Haplotype analysis using shapeit

Prometheus Flask exporter使用示例
![触摸按键控制器TTP229-BSF使用心得[原创cnblogs.com/helesheng]](/img/2f/3594188c5e58d3501f76f4937a979c.png)
触摸按键控制器TTP229-BSF使用心得[原创cnblogs.com/helesheng]

China international e-commerce center and Analysys jointly released: the national online retail development index in the fourth quarter of 2021 increased by 0.6% year on year

程序員新人周一優化一行代碼,周三被勸退?
![FastAPI Web框架 [Pydantic]](/img/e1/290a8a6a978b9fb56a9c86f1734c45.png)
FastAPI Web框架 [Pydantic]
随机推荐
Unity vuforia recommended equipment
Performance optimization - image compression, loading and format selection
Inner class
国金证券开户安全吗?
Brief introduction of quality control conditions before genotype filling
Introduction to ground plane in unity
Mythical Games宣布与韩国领先游戏发行商Kakao Games合作,推动亚太区业务扩张
Prometheus Flask exporter使用示例
Financial institutions scramble for "digital employees"; Release of aging service evaluation framework for insurance app
Application configuration management, basic principle analysis
Xidian AI ranked higher than Qingbei in terms of AI major, and Nantah ranked first in China in terms of Software Science in 2022
Telecommuting Market Research Report
About Alipay - my savings plan - interest rate calculation instructions
One line of code accelerates sklearn operations thousands of times
ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针式时钟
equals 和 hashCode
还在直接用localStorage么?全网最细:本地存储二次封装(含加密、解密、过期处理)
abnormal
Mqtt of NLog custom target
Starting a prairie fire, Alibaba cloud database "hundred cities gather together" to help small and medium-sized enterprises' digital intelligence transformation