Advertisement

Deep Multi-view Stereo for Dense 3D Reconstruction from Monocular Endoscopic Video

阅读量:

Deep Multi-view Stereo for Dense 3D Reconstruction from Monocular Endoscopic Video

用于单目内窥镜视频稠密三维重建的深度多视角立体成像技术

作者:Gwangbin Bae(ck.yeung@nisi.hk,facebook关注), Ignas Budvytis, etc al. 剑桥大学。

– 2020. MICCAI会议( Medical Image Computing and Computer Assisted Intervention)

文献链接springer

Location: Citavi-- 20200114 access references

Abstract 摘要

单目内窥镜图像的三维重建是一项具有挑战性的任务。

Possible Applications: Lesion Size Estimation(病灶尺寸估计), Assisted Control(辅助操纵), Coverage Estimation(覆盖表面估计)…

最先进的基于图像patch相似性的多视角立体(MVS)算法往往不能从纹理较弱 的内镜图像中获得稠密重建 。在本文中,我们提出了一种新的基于深度学习的MVS算法,可以从单目内窥镜图像序列中产生稠密和准确的三维重建。我们的方法包括三个关键步骤。

首先,根据预先训练好的CNN所做的深度预测 ,抽取一些深度候选样本

其次,每个候选图像被投影到序列中的其他图像中,并使用一个patch嵌入网络 将每个图像patch映射成一个稠密的嵌入点 来测量匹配得分。

最后,为每个像素选择得分最高 的候选对象。

结肠镜检查视频实验证明我们的patch嵌入网络优于zero-normalized互相关最先进的立体匹配网络 的匹配精度,我们的MVS算法产生数度*度级 比比较的方法来重建相同的过滤精度。

–相关概念MVS

MVS多视角立体视觉/多视图三维重建
avatar
MVS with Deep Learning-知乎

MVS Github工程

–Algorithm Innovation

Traditional Algorithm

复制代码
    for each pixel p do
    sample depth candidates d_min < d < d_max
    for each depth d do
        for each image j do
            p_j(d) = projection of d to j
            s(p, p_j(d)) = similarity between p and p_j(d)
                            (zero normalized cross correlation)
        s(d) = max_j s(p, p_j(d))
    \alpha_p = arg max_d s(d)

Proposed Algorithm

复制代码
    for each pixel p do
    sample depth candidates 0.9*d_pred < d < 1.1*d_pred
    for each depth d do
        for each image j do
            p_j(d) = projection of d to j
            s(p, p_j(d)) = similarity between p and p_j(d)
                            (dot product between embedding vectors--light cnn)
        s(d) = min_j s(p, p_j(d))
    \alpha_p = arg max_d s(d)

Introduction

已有表面估计方法需要设备修正:Structured Light,Photometric Stereo(光度立体视觉-当相机、光源和目标物体相对位置固定不变时,使用不同方向的光源照射同一目标物体,相机可以拍摄到目标物体带有不同明暗分布的图像,再通过求解基于朗伯反射原理的反射方程组,求解目标表面的法向分布或者深度地图。)-----Limitations:1\ Increase size and cost of the endoscope; 2\ Difficult to test on human patient

–> only use monocular image or video as input —> SfM是其中一个可能的解决方法(确定帧之间的稀疏对应点–联合优化3D坐标和相机位姿(BA))–准确度高,因为是几何计算验证的,但就是稀疏(由于算法仅优化有限的选出的点)。

现有研究gap:已有对稀疏sfm重建进行深度神经网(Encoder-Decoder)训练,来预测稠密像素级深度图;

但缺乏精确度,因为——it is generated from a single image, and is not validated from other viewpoints.
单视图深度预测会受动态模糊(motion blur)、光斑(light speckles)、非刚体/流体(fluids)影响。

故采用多视图三维重建MVS算法。但其也有缺陷————较大的搜索空间+较差的匹配精确度。

例:

1) 较大搜索空间:

PatchMatch stereo [1]----在均匀分布范围dmax到dmin之间随机选择一个初始值,将匹配分数最高的深度传递到临像素;

BruteForce stereo [2]----在选择深度范围从dmin到dmax的每个像素遍历,选择分数最高的一个。

以上,当dmax到dmin范围较大时预测出正确深度是一个挑战(比较困难)。

2)较差匹配精确度:

典型的匹配函数是ZNCC ,但随着patch尺寸的增大,计算量平方级增大。patch一般选择7*7大小。但是小patch会导致模糊匹配,在弱纹理图片中尤其如此。

本文提出的patch embedding network能显著提高精确度,而且和ZNCC和其他匹配网络相比,计算量要小很多。通过加强多视图的一致性可以提高重建质量。以结肠镜视频为研究对象,也可扩展到其他部位单目腹腔镜。

2. Method

复制代码
    graph LR
    A(Images)-->B(SFM: Sparse Depth+Camera Pose)
    A-->C(Deep-net Depth Prediction: Dense Depth)
    A-->D(Deep-net Patch Prediction: Pixel-wise Embedding)
    B-->E(Deep MVS)
    C-->E(Deep MVS)
    D-->E(Deep MVS)
    E-->F(3D Reconstruction)

Deep MVS :

  1. Sample depths around predicted depth; 在预测深度附近取样
  2. Measure matching score via dot product between pixel-wise embedding vectors;通过像素级嵌入向量之间的点积测量匹配得分
  3. Choose depth that maximizes score; 选择深度,使得分最大化
  4. Depth clening via view consistency check. 通过视图一致性检查,清洗深度数据

2.1 Sparse Depth and Camera Pose Estimation via SfM

为了克服非刚性表面形变 ,视频被分成短序列,由间隔0.08秒的8个连续帧组成。

OpenSFM[9]做稀疏重建。在优化3D特征点坐标和相机位姿时,只有同时出现在8帧中的特征才选择进行优化。这样确保了相机位姿被所有特征点支持,因此保证了准确率。

2.2 Dense Depth Prediction via CNN

通过SFM获得的稀疏重建结果接下来被用于训练单目深度估计网络。由于SFM固有的尺度模糊特性,将预测的尺度与ground truth的尺度匹配后计算训练损失。

----ground truth来自于SFM的稀疏重建结果

损失函数表示为:

复制代码
    L = min_{s \in S} \sum_{p}I(d^{true}_p>0)(d^{true}_p-s \times d^{pred}_p)^2

S为尺度因子的离散数据集(0.5-2.0),I是二值量,当真实深度对p(u,v)可用时取1,若深度不适合则取0.

通过应用这种尺度不变损失,网络能够学习相对深度(即像素深度之间的比率)。

使用U-Net网络[12]进行训练,只有一个输出通道。
conv 7* 7–>conv 3 *3–>conv 3 *3–>conv 3 *3

2.3 Pixel-Wise Embedding via Patch Embedding Network

目的:为了将每个像素周围的图像patch映射为嵌入向量f。这样两个向量之间的点积可以用来衡量它们的patch相似性。

Layer Output
$7 \times 7$ Convolution, stride=7 $7 \times 7 \times 64$
$3 \times 3$ Convolution $5 \times 5 \times 64$
$3 \times 3$ Convolution $3 \times 3 \times 64$
$3 \times 3$ Convolution $1 \times 1 \times 64$

根据SIFT特征描符[6],将49*49的感受野(Receptive Field)划分成尺寸相同的7 *7的单元。这样7 *7的卷积层就有64个输出通道,可以用来识别每个单元中低级特征。这样就产生了尺寸为7 *7 * 64的特征图。一组3 * 3核的卷积层将feature map映射为一个64维向量。这个网络也可以使用 空洞卷积(dilated convolution)应用于整个图像(适当填充)。

每个卷积层之后是一个批归一化(batch normalization)和一个矫正线性单元(Rectified linear unit, ReLU)。

在最后一层使用线性激活来保存负值的信息。

传统patch嵌入网络使用小尺寸的重复卷积层,我们的网络结构可以结合更大的视觉环境/语境,同时有更少的参数。

最终输出的vector向量(向量映射尺寸为H * W * 64)被归一化,这样输出的vector和目标图像中每个像素的embedding vector的点积可以控制在-1到1之间。这将生成一个像素级的分数分布。

理想情况下,分数最高的点一定在真实值附近。设计软对比损失(soft contrastive loss):

复制代码
    L_{p,q^{true}} =\sum_{q}max(w_q,0)(1-f^{ref}_p\times f^{target}_q)+\sum_{q}max(-w_q,0)max(f^{ref}_p\times f^{target}_q-\alpha,0)

其中

复制代码
    w_q =
    \begin{cases}
    cos \frac{||q-q^{true}||\pi}{5}, & {if||q-q^{true}||\leq5} \ 
    -1, & \text {otherwise}
    \end{cases}

以上,当q距真实值2.5像素以内,分数最大化,否则会超过门限$\alpha$使分数最小。根据经验我们设置$\alpha$为0.7.

2.4 Deep Multi-view Stereo Reconstruction

1、在$0.9 \times d_{pred}$$1.1 \times d_{pred}$之间均匀采样50个点,$d_{pred}$是预计深度。每个候选点被投影到序列中的其他(49个)图像中并计算其分数,即得到$N_{image}-1$个分数,$N_{image}$是每个序列中图像帧数。

选择分数最小点分配到深度候选值,一旦分数被分配到每个候选点,那么得分最高点就被选中了。即:

复制代码
    \hat{d}_p^i = arg\max_{d \in D}[\min_j(f^i_p\cdot f^i_{{P^j}(d)})]

D是候选深度集合,$P^j(d)$是第j帧候选深度d的投影。

生成的深度图然后进行视图一致性检验。在这一步中,$\hat{d}^i_p$被投影到同一序列的不同帧图像中,来估计投影像素的深度值。如果两点深度值的差异度小于1%,则被认为一致;如果再一个序列中7帧图像都满足,则$\hat{d}^i_p$被融合到最终重建深度中。最终选出的所有像素点,被用于后续重建精度的定量测试中。

3. Experiments

3.1 Setup

数据集 :来自不同患者的51个 结肠镜检查视频,均在20分钟以内。包括201814序列 被提取,34868个 被成功用于SfM重建。
(其中40个视频用于训练、验证和测试patch embeding网络,11个视频用于测试MVS流程pipeline。)

对于patch Embedding网络的训练和测试,使用SfM重构后幸存的SIFT[6]特征建立ground truth matching

工具:PyTorch

网络:80 epochs ,batch size of 32,Adam optimizer($\beta_1=0.9, \beta_2=0.999$)。学习率learning rate 设置为0.001, 每 20 epochs 降一次,分别为0.0007, 00003, 0.0001

3.2 Accuracy of the Patch Embedding Network

目的:定量评估 patching embeding 网络的准确度。

1、将为参考像素生成的嵌入向量(embedding vector)与目标图像中的所有嵌入向量进行卷积。

2、目标图像中使分数最大化的像素(即点积)被选择为$q^{pred}$

3、定义误差为$||q^{pred}-q^{true}||$. 列表记录中位数误差以及误差大于3、5和10像素的匹配百分比。并记录每个评分法的重建时间。

Table 1 ,ZNCC,[7], proposed; Patch size, Params, Median error, >3px, >5px, >10px, runtime)

小的patch包含的信息不够充分,而大的patch包含周围的像素,其外观是高度依赖于视觉的。————这就解释了zncc爱29*29的patch时,重建准确度达到峰值。与此相比,基于深度学习的方法在大patch下重建准确度到达最大。我们提出的方法包含更少的参数,有更大的感受野,并且在3px时获得了更高的精度。由于patch embedding网络将每个patch编码为一个简洁的表示,匹配需要的计算量比ZNCC更少,显著减少了重建时间。

分数分布图在 FIG.4 中显示。ZNCC用小patch时会造成模糊匹配,大patch会导致过于平滑的分数分布。我们的方法比[7]在准确点附近的分数更高。这主要是由于我们的soft 对比损失 在非准确点惩罚大分数(非准确点分数急剧下降)。

3.3 Evaluation of the MVS Reconstruction

目的:比较MVS pipeline与其他方法的准确度。

由于Ground Truth密集重建不可用,我们使用幸存于视图一致性检查(见2.4节)的像素数作为精度的定量度量,列于 Table 2 (BruteForce, PatchMatch, Proposed; Search space, Matching function, Score Selection, Average, Median)。本文方法产生了比BruteForce, PatchMatch还高几个数量级的稠密重建。见 Fig.5

Fig.6 展示了新增两组实验的结果。

1、实验一:每个深度候选得分(the score for each depth candidate)是通过对匹配分数的不同n次最佳选择(different n-th best selection)来计算的。BruteForce, PatchMatch选择最大值,我们选择最小值。结果表明,选择第7位最佳的深度候选视图可以使所有可用视图都支持该深度候选视图,从而抑制了模糊匹配的得分。这种表现在使用我们的patch embedding网络时可以得到最好的观察。

2、实验二:第二个实验展示了一致视图的最小数量(用于深度清洗,depth
cleaning)与存活像素(survived pixels)的数量之间的关系。通过减小该参数,可以在牺牲精度的同时获得更密集的重建。

4. Conclusion

本文提出了一种基于深度学习的多视角立体重建(multi-view stereo reconstruction)方法,能够从一系列单目内窥镜图像中产生稠密而准确的三维重建。

1、预先训练(pre-trained)的深度估计网络可以约束搜索空间(constrain the search space),提高重建精度。

2、提出的patch embedding网络优于ZNCC,是最先进的立体匹配网络。

对于视图一致性方面的固定约束,该方法比现有方法产生了几个程度的量级(several degrees of magnitude denser
reconstruction)的更稠密重建。

PPT节选

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

References

------>深度学习项目论文+Code

[1]. Patchmatch stereo-stereo matching with slanted support windows. 2011. || 论文及代码解析

[2]. Sensor-based guidance control of a continuum robot for a semi-autonomous colonoscopy. 2009.

[3]. A Compact Active Stereovision System with Dynamic Reconfiguration for Endoscopy or Colonoscopy Applications. 2014. MICCAI

[5]. Xingtong Liu. Self-supervised Learning for Dense Depth Estimation in Monocular Endoscopy. 2019.2 || 基于深度学习的单目图像深度估计$ \cdot$ 知乎 || 将传统的多视角几何融合到神经网络当中,实现了部分监督的效果去训练图像,缺陷:并有真正使用到相邻帧的几何关系,实际更多依赖的是来自SFM的三维点的监督。

[7]. Efficient deep learning for stereo matching.2016. || 论文解析

[8]. Realtime 3D reconstruction of colonoscopic surfaces for determining missing regions.

[9]. OpenSfM–Github. 2017

[10]. Photometric stereo endoscopy.2013

全部评论 (0)

还没有任何评论哟~