攀枝花建设网站,装饰设计培训,团购网站单页模板,阿里云建站后台一、参考资料
浅析自监督深度估计中的光度损失(Photometric Loss)
二、图像重构原理
设输入位姿估计网络的3帧连续单目序列为 I t − 1 , I t , I t 1 I_{t-1},I_{t},I_{t1} It−1,It,It1#xff0c;其中 t t t 为时间索引#xff0c;…一、参考资料
浅析自监督深度估计中的光度损失(Photometric Loss)
二、图像重构原理
设输入位姿估计网络的3帧连续单目序列为 I t − 1 , I t , I t 1 I_{t-1},I_{t},I_{t1} It−1,It,It1其中 t t t 为时间索引 t 0 t0 t0 。 I t I_{t} It 是目标帧而其余2帧是源视图 I s I t − 1 , I t 1 I_{s}I_{t-1},I_{t1} IsIt−1,It1。假设 p t p_{t} pt 为目标图像 I t I_{t} It 上某像素的齐次坐标 p t [ u t ν t 1 ] T p_t[u_t\quad\nu_t\quad1]^T pt[utνt1]T。结合深度图像 D t {D}_t Dt 和相机位姿变换矩阵 T t → s T_{t\to s} Tt→s可以将该像素还原为三维空间点同时计算出在源图像时刻的相机坐标系下该空间点的齐次坐标 p s c p_{sc} psc p s c [ x s c y s c z s c 1 ] T t → s D t ( p t ) K − 1 p t p_{sc}\begin{bmatrix}x_{sc}\\y_{sc}\\z_{sc}\\1\end{bmatrix}T_{t\to s}D_t(p_t)K^{-1}p_t psc xscysczsc1 Tt→sDt(pt)K−1pt 然后将该点投影回二维平面得到该像素在源图像 I s I_s Is 上的齐次坐标 p s p_s ps p s [ u s v s 1 ] 1 z s c K p s c p_s\begin{bmatrix}u_s\\v_s\\1\end{bmatrix}\frac{1}{z_{sc}}Kp_{sc} ps usvs1 zsc1Kpsc 根据上述两个公式可以建立 I t I_t It 的像素 p t p_t pt 与 I s I_s Is 的像素 p s p_s ps 的转换关系 p s ∼ K T t → s D t ( p t ) K − 1 p t p_{s}\sim KT_{t\to s}D_{t}\left(p_{t}\right.)K^{-1}p_{t} ps∼KTt→sDt(pt)K−1pt p t p_{t} pt 和 p s p_s ps 间的差异来源于相机自身的运动因此可得刚体运动光流 F t → s r F_{t\rightarrow s}^r Ft→sr F t → s r ( p t ) [ Δ u Δ v ] [ u s − u t v s − v t ] F_{t\to s}^r(p_t)\begin{bmatrix}\Delta u\\\Delta v\end{bmatrix}\begin{bmatrix}u_s-u_t\\v_s-v_t\end{bmatrix} Ft→sr(pt)[ΔuΔv][us−utvs−vt] 继而可以基于此光流和源图像 I s I_s Is 重构目标图像 I ^ t \hat{I}_t I^t I ^ t \hat{I}_t I^t 的像素值均可以从 I s I_s Is 中近似 I ^ t ( p t ) I s ( p s ) I s ( p t F t → s r ( p t ) ) \hat{I}_t(p_t)I_s(p_s)I_s(p_tF_{t\to s}^r(p_t)) I^t(pt)Is(ps)Is(ptFt→sr(pt)) 重构图像的过程中坐标 p s p_s ps 极有可能是所示的浮点数此时 I s ( p s ) I_s(p_s) Is(ps) 需要由最邻近的四个像素近的四个像素 I s ( p s l t ) 、 I s ( p s r t ) 、 I s ( p s l b ) 和 I s ( p s r b ) I_{s}(p_{s}^{lt})、I_{s}(p_{s}^{rt})、I_{s}(p_{s}^{lb})\text{和}I_{s}(p_{s}^{rb}) Is(pslt)、Is(psrt)、Is(pslb)和Is(psrb) 双线性插值[2]求得。
三、自监督单目深度估计原理
zhou等人[1]提出利用视图合成作为监督信号通过当前时刻捕获的视图目标帧并利用深度、位姿信息作为中间量对图像进行重建通过网络的不断迭代最终得到准确的深度和位姿信息。视图合成的原理是通过几何映射把当前时刻捕获的图像映射到另一相邻时刻的图像对其进行重建。该方法的思路来自于视觉里程计中的直接法。
既然是自监督那么就意味着输入的图像是没有深度标签的所以我们就无法利用ground truth这个标准答案”对输出的深度图进行优化。于是我们利用联合训练的方法通过输入相邻帧图像对相对位姿网络进行训练从而经过投影变换得到重建帧以目标帧与重建帧的差值作为训练信号达到自监督的效果。
几乎所有的自监督任务是利用深度估计和相机姿态估计两个模块联合进行的如下图所示
自监督深度估计的具体流程如下
将目标帧 I t I_t It 输入深度预测网络 Φ d \Phi_{d} Φd得到深度图 D t {D}_t Dt将目标帧 I t I_t It 和源帧 I s I_s Is 同时输入相对位姿估计网络 Φ d \Phi_{d} Φd得到相对位姿矩阵 T t → s T_{t\to s} Tt→s利用 p s ∼ K T t → s D t ( p t ) K − 1 p t p_{s}\sim KT_{t\to s}D_{t}\left(p_{t}\right.)K^{-1}p_{t} ps∼KTt→sDt(pt)K−1pt 这样的转换关系由 p t p_t pt 计算出 p s p_s ps由于 p s p_s ps 不一定为整数故利用双线性插值算法计算该点的像素值然后将该点采样到 I ^ t \hat{I}_t I^t 图像上的对应位置通过借助投影下采样填充最终实现利用 I s I_s Is 的像素信息重构出来 I ^ t \hat{I}_t I^t 利用 I t I_t It 和 I ^ t \hat{I}_t I^t 计算图像重构损失。
四、图像重构损失(reprojection loss)
将 L 1 L_1 L1 和 S S I M SSIM SSIM 两者组合作为图像重构损失来计算目标帧 I t I_t It 和重构帧 I ^ t \hat{I}_t I^t 之间的差异即 L p ( I t , I ^ t ) α ( 1 − S S I M ( I t , I ^ t ) ) 2 ( 1 − α ) ∣ I t − , I ^ t ∣ 1 \mathcal{L}_p(I_t,\hat{I}_t)\alpha\frac{(1-\mathrm{SSIM}(\mathrm{I}_t,\hat{\mathrm{I}}_t))}2(1-\alpha)|I_t-,\hat{I}_t|_1 Lp(It,I^t)α2(1−SSIM(It,I^t))(1−α)∣It−,I^t∣1 此函数由两部分相加而成前面用于计算结构相似度 S S I M SSIM SSIM 后面用于计算光度损失(photometric loss)。很多论文直接把整个函数叫光度损失(Photometric Loss)严格意义上不那么准确应该称作图像重构损失(reprojection loss)
五、参考文献
[1]Zhou T, Brown M, Snavely N, et al. Unsupervised learning of depth and ego-motion from video[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1851-1858. [2]Godard C, Mac Aodha O, Brostow G J. Unsupervised monocular depth estimation with left-right consistency[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 270-279.