2019-07-22 22:41:50 weixin_41680639 阅读数 330

视觉SLAM论文研读【1】

写在前面

本人作为本科即将毕业学生,导师已安排视觉SLAM方向作为我的研究方向。研究得初期离不开大量论文论文的阅读,特开此栏,1为监督自己,2为方便互相交流,谢谢。

阅读论文: Stability-based Scale Estimation for Monocular SLAM------from ICRA2019

论文出发点

  1. 利用单目SLAM的无尺度状态反馈进行控制会导致系统不稳定
  2. SLAM系统的绝对尺度与产生这种不稳定的控制增益之间存在独特的线性关系。
    因此我们可以根据求取其增益来达到估计slam尺度的目的。

单目SLAM缺点

单目SLAM的主要缺点是重建场景和摄像机运动的绝对度量尺度本身是不可观测的。

传统方法解决

使用额外的度量传感器,如惯性测量单元或声纳高度来估计度量尺度

论文方法解决

受前人工作的启发,利用悬停控制中自激振荡的性质来估计尺度

模型部分

第一部分 分析了无尺度反馈控制的不稳定性

速度控制离散模型

这个就是输入输出的定义,按照论文定义来没问题。后面用到了零阶保持器离散化处理了(没想到本科计算机控制的这个知识还真用到了emmm),然后按照推导得到了临界的增益(这个增益是无噪声无延迟的)。我感觉这个模型搭建的环境本身比较简单,因此得到的一个理想化的推导,所以此处不做太多讲述。

包括空气阻力(Drag)和延迟

这里文章只做了一个函数关系的说明。emmm并没有推导

临界增益和尺度的关系更新

我感觉这部分是文章比较重要的一个点,可以说前面在求取临界增益为此打基础。
给定了这样的关系
首先定义了他们之间的关系
在这里插入图片描述
文章表明在一定范围内增益与尺度可拟合出线性关系。(此关系通过距离摄像头改变提前获取的)

在这里插入图片描述

接着通过定义的关系,分子由后面的自适应算法得到,分子可有线性拟合关系估计到,因此就可以求取估计的尺度。

第二部分 尺度估计的自适应算法

这一部分的重点在与以下流程设计
在这里插入图片描述
在这个单目SLAM框架中,它其实用到了两个控制器,将速度和位置两种无尺度的信号分别输入到两组控制其中,速度控制器可以实现K的自适应更新,而这个参数也用到了上一个部分的计算中。最后再将估计好的尺度和位置控制器的输出做差作为输出。可以理解为,速度控制器帮助位置控制器完成了一次参数矫正。

本人水平有限,如有错误,欢迎指正。

2014-11-17 19:58:56 u010922186 阅读数 661

作者:胡哲-微软亚洲研究院实习生,本科毕业于浙江大学,目前在加州大学Merced分校攻读博士。曾在Adobe创新科技实验室实习,研究方向为计算机视觉和图像处理。在CVPR, ECCV, BMVC等知名国际会议上发表论文7篇(oral 2篇)(本次cvpr入选3篇),并担任多家期刊及会议的审稿人,如TIP, ECCV, ACCV等。

计算机视觉(Computer Vision)是近十几年来计算机科学中最热门的方向之一,而国际计算机视觉与模式识别大会(Conference on Computer Vision and Pattern Recognition,简称CVPR)绝对是计算机视觉会议中的翘楚。


一、繁荣的深度学习

 

深度学习(Deep Learning)是当下最热门的方向之一,今年的论文中标题带deep字眼的论文就有16篇(其中oral presentation 4篇——在CVPR等大型会议中,由于论文数量众多,大部分的论文都是以海报的形式作讲演。而大会的委员会在所有其中挑选少量出色的工作(占所有投稿的5%)面对所有研究者演讲)。深度学习热潮爆发以来,诸多研究者都在不懈地努力着,希望能够把它应用于解决计算机视觉的各种任务上,从高层次(high-level)的识别(recognition),分类(classification)到低层次(low-level)的去噪(denoising)。让人不禁联想起当年的稀疏表达(sparse representation)的热潮,而深度学习如今的风靡程度看上去是有过之而无不及。深度学习也有横扫high-level问题的趋势,high-level的很多方向都在被其不断刷新着数据。以往的改进都是1,2个点的增长,如今使用深度学习轻松刷出5,6点,这给很多非深度学习方法研究者巨大的压力。虽说深度学习是大热方向,可计算机视觉界的研究者对深度学习的态度也是很鲜明的两派——支持与观望,也给其他研究趋势带来了一些影响(原因接下来说)。作为强大的特征(feature)学习工具,获得大量的支持与推广自然不必说,很多原本观望的研究者们在目睹深度学习的优秀表现后也都开始投身于此。持观望态度的人们一部分可能仍并不了解深度学习的机理,另外一大部分相信是对深度学习将给计算机视觉带来的贡献持保守态度。虽然笔者赞叹于深度学习的强大能力,可对此也是持保守态度。诚然深度学习作为一个工具异常强大。在给定足够多的训练集的情况下,它可以帮助用户学习到这个任务下的具有很强分辨能力的特征。可是这个训练过程近乎黑箱,学习出的系统也很难给解决的问题带来更深刻的理解。

二、为基础模型研究正名

 

也许因为如此,我认为本次的评奖有些指引方向的感觉。本次大会的最佳论文颁给了研究camera motion和shape recovery关系的文章What Camera Motion Reveals About Shape with Unknown BRDF(singleauthor!), Honorable mention给了利用structured light研究shape的论文3D Shape and Indirect Appearance by Structured Light Transport。这两篇论文都可以算是研究3D几何模型的。不仅评奖如此,计算机视觉领域的前辈也亲自站出来力挺一下基础模型的研究,其中Jean Ponce亲自写了一篇论文(oral)来继续探讨trinocular geometry的传统假设不成立时如何保证三个相机visual rays相交的情况。这些论文无一不是对计算机视觉基础问题和基础模型的深入研究,考虑前人没有研究过的问题的系统分析。这些文章的获奖也是鼓励我们年轻研究人员静下心来做基础问题的研究,不轻易追赶当下热潮。做追赶浪潮的弄潮儿容易,可是怎么样保证研究工作不会轻易被遗忘在时间里,或者说怎么做对领域有贡献的研究工作,绝对是我们研究者们需要思考的问题。另外,并不要认为已经写入教科书的内容就已经板上钉钉没有研究价值了。有一些理论也是建立在理想的假设满足的前提下,所以它们仍然可以在质疑的眼光下去进行深造。

三、尚未被深度学习渗透的Low-level Vision

 

计算机视觉的问题可以根据他们的研究对象和目标分成三大类,low-level,mid-level, 和high-level。Low-level问题主要是针对图像本身及其内在属性的分析及处理,比如判断图片拍摄时所接受的光照,反射影响以及光线方向,进一步推断拍摄物体的几何结构;再如图片修复,如何去除图片拍摄中所遇到的抖动和噪声等不良影响。High-level问题主要是针对图像内容的理解和认知层面的,比如说识别与跟踪图像中的特定物体与其行为;根据已识别物体的深入推断,比如预测物体所处的场景和即将要进行的行为。Mid-level是介于以上两者之间的一个层面,个人理解是着重于特征表示,比如说如何描述high-level问题中的目标物体,使得这种描述有别于其他的物体。可以大致认为,low-level的内容可以服务于mid-level的问题,而mid-level的内容可以服务于high-level的问题。由于这种分类不是很严格,所以也会出现交叉的情况。深度学习在计算机视觉界主要是作为一种特征学习的工具,可以姑且认为是mid-level的。所以之前提到的high-level的问题受深度学习的影响很大就是这个原因。相比较而言low-level问题受到深度学习的冲击会小很多,当然也有深度学习用于去噪(denoise)和去模糊(deblur)等low-level问题的研究。对于受到深度学习良好表现困扰的年轻研究者们,也不妨来探寻low-level很多有意思的研究。这些年,MIT的Bill Freeman组就做了一些很有趣的low-level问题,比如放大视频中出现的肉眼难以察觉的细小变化(Eulerian Video Magnification for Revealing Subtle Changes in the World),还有这次CVPR的文章Camouflaging an Object from Many Viewpoints就是讲如何在自然环境中放置和涂染一个立方体,让其产生变色龙般的隐藏效果。诸如此类的研究也让研究这件事变得有趣和好玩。

笔者目前也正专注于low-level中去模糊(deblur)的研究。去模糊的意思是借助某种方法将拍照中出现的模糊图像恢复成清晰图像。这个问题是一个已经被研究了很多年的问题——去卷积(deconvolution),自上世纪5,60年代起,就有很多知名研究工作出现。这方面研究到近十年取得了很多突破,在处理相机抖动引起的模糊中出现了不少有影响力的的工作。而Adobe公司2013年将这方面的算法作为一个重要特征放进了Photoshop中,更是成了鼓舞该领域的研究动力。美国FBI就有利用Photoshop的去模糊功能修复图片并帮助破案的例子,笔者去年在Adobe实习期间看到了FBI发来的感谢信。

这次笔者被CVPR 2014录取的三篇文章都是关于去模糊的研究。一篇是针对模糊图像的一个主要来源——暗光照情况下的图像,设计的一个基于光斑(light streak)的去模糊算法(Deblurring Low-light Images with Light Streaks)。 

这个算法自动检测暗光情况下常见的光斑,并利用光斑作为模糊核(blur kernel)的约束。它对解决暗光下模糊图片非常有效,而且光斑这一现象不仅出现在低光下,在普通的模糊图像中也会出现,只需要场景中有与周边环境有颜色差别的小型物体出现。读者可以在我的个人主页上下载代码进行尝试。还有一篇是说从一张模糊图像中,我们不仅可以估计相机的抖动,还可以发掘出场景的深度(Joint Depth Estimation and Camera Shake Removal from Single)。这乍听上去像是不可能完成的任务,可实际上图像的模糊是同时包含了相机抖动和场景深度信息的。读者也可以这样认为,我们拍摄模糊图像的过程也可以看作是拍摄一小段video的过程,这样的话我们相当于拥有了一个多角度立体(stereo)的输入!第三篇是针对文字模糊图片设计的一个简单有效的算法,可以用于文字识别前的预处理(Deblurring Text Image via L0-Regularized Intensity and Gradient Prior)。

四、Depth Sensor(深度传感器)及深度图像相关

 

近几年来从Depth Sensor得到的深度图像的相关研究一直是学术界以及工业界重点关注的问题。特别是工业界,很多Depth Sensor相关的创业公司如雨后春笋般在业界涌现,他们也获得了广泛的关注和不菲的投资,这次赞助CVPR的就有多家这样的创业公司。不仅如此,很多大公司也都积极的投身于做自己的Depth Sensor,或者嵌入到自己的产品中。Depth Sensor为何有如此大的影响力,大家肯定早已有诸多见解。它作为一种新的输入数据,给了传统输入数据(2D)一个新的像素级别的维度——深度。这不仅给研究者们开拓了以RGBD输入数据为核心的旧问题新方向,而且由于深度图像的帮助下也让很多算法更加实用。这也让CV研究离工业界的产品更紧密了。Depth Sensor的成熟以及CV领域相关研究的发展,也提供给增强现实(Augmented Reality)这个未来科技感十足的方向一个重要的接口。所有的这些都昭示着Depth Sensor是一个非常有价值而且在一段时间内还将是非常热门的方向。

微软亚洲研究院在这个方向上也有一篇利用depth sensor做手部跟踪的oral论文(Realtime and Robust Hand Tracking from Depth)。通过重新定义手的模型和能量方程,这个工作将手部跟踪做到了实时并且算法也很鲁棒。在PC上不用GPU也达到了25FPS(每秒显示帧数),而平均误差在测试数据上降低到10mm,相比其他方法提升50%左右。对手势的准确识别是现在很流行的一个问题。因为技术的进步已经让传统的输入方式(比如鼠标)处于更新换代的边缘了,如今通过depth sensor与手势来实现人机的实时交互将可能带来下一个输入方式的革命。所以这个工作是很有价值与深远影响的,也因此而获得了oral演讲的资格。

 

另外,微软亚洲研究院在今年的CVPR发表的另外一篇oral论文也是应用很广的一个问题——人脸对准(Face Alignment at 3000 FPS via Regressing Local Binary Features)。 

通过采用局部学习的准则降低随机森林(random forest)的任务难度,以得到更好的局部特征(local feature)。同时,整体上的结构学习帮助算法更加鲁棒。这个项目实现了快速的人脸对准以及人脸跟踪。在相同精度下,它比以往的方法快了数十倍,在PC上单核3000FPS,手机上单核300FPS。这个结果很令人振奋,因为手机及移动设备已经很大程度的改变人们的生活方式,可是相比PC,手机的处理能力有限,那么就需要更加快速稳定的算法。这个工作就为在手机及移动设备对人脸的实时处理提供了坚实的基础。

2018-08-04 23:25:16 Fire_to_cheat_ 阅读数 71

今天下午泪目啊,,,,终于有导师回我的邮件了,我以为发出去的邮件终究会是石沉大海,没想到还是有大佬级别的人物回亲自接见学生。被华科的大佬约见,是跟计算机视觉方向的老师,我好想也只投了计算机视觉跟机器学习,orz。。。。。8号下午就要去网友见面,有点紧张,毕竟只学过七周的计算机视觉本科课程,入门小白都不算,所以准备在集训空余时间整理一下自己的本科生涯,再整理一下今年CVPR的论文集,如果可能的话。
下周的训练计划,明天再写,有点累了,晚安。

2018-04-26 00:00:00 c9Yv2cf9I06K2A9E 阅读数 26222

作者丨李光睿

学校丨重庆大学本科在读

研究方向丨计算机视觉


640?wxfrom=5&wx_lazy=1



640?wxfrom=5&wx_lazy=1

Unsupervised Person Image Synthesis in Arbitrary Poses

#Image Synthesis

CVPR 2018 Spotlight 论文,ReID + GAN 换 pose。

本文用了较多的篇幅讲 loss function,pose 的提取用的是 OpenPose 这个库。 

其 loss 分为三部分: 

1. Image Adversarial Loss:即传统 GAN 的 loss;

2. Pose Loss:pose 差异,生成后的图片再用 OpenPose 提取 pose 信息做差值;

3. Identity Loss:此为关键,又分为两部分,分别是 content 和 style loss,其中 content 用于保证生成图和原图在某 pretrain model 生成的 feature map 一致, style 则是利用 Gram matrix 生成某种 feature map,然后作比对。

论文链接

https://www.paperweekly.site/papers/1864

笔记链接

https://zhuanlan.zhihu.com/p/35626886

640?

Person Transfer GAN to Bridge Domain Gap for Person Re-Identification

#Person ReID

CVPR 2018 RE-ID Spotlight 一篇,这篇文章主要 contribution 有以下两点: 

1. 提出了一个新的更大的数据集,更为细致:考虑到了视角,光照等更为细致的因素,具体参数可以直接看文章;

2. 多个数据集间的差异,即 domain-gap,通过 GAN 来生成和模仿,类似文章:Camera Style Adaptation for Person Re-identification,个人认为创意是有的,可以作为 data augmentation 的一个方法,但实现难度上并没有很大。

论文链接

https://www.paperweekly.site/papers/1557


代码链接

https://github.com/JoinWei-PKU/PTGAN


数据集链接

http://www.pkuvmc.com/publications/msmt17.html


笔记链接

https://zhuanlan.zhihu.com/p/35626478


640?

Disentangled Person Image Generation

#Image Generation

在 NIPS 2017 上,该团队已经为我们贡献了 Pose Guided Person Image Generation 这篇非常棒的文章,在 CVPR 2018 中,他们推出的更新的这篇文章不仅仅解决了换 pose 问题,还实现了”随心所欲“的换装换 pose,入选今年的 Spotlight 

在这里提到的前一篇文章可复现度很高,可以尝试。

640


该模型分为三个分支:


1. 运用 OpenPose 这个库,生成 pose 的 18 个 dots,并将这 concat 进 decoder 之前的 feature map 中;


2. 在经过卷积运算后的 feature map 上,运用 mask 将前后景分离,背景的 feature map 也是直接 concat 进最后的 feature map 中;


3. 核心是前景的处理上,用 7 个 ROI 进一步将前景解开,然后用公用的 encoder 生成前景的 feature map。


论文链接

https://www.paperweekly.site/papers/1865


笔记链接

https://zhuanlan.zhihu.com/p/35626735



640?

Practical Block-wise Neural Network Architecture Generation

#Network Generation

CVPR 2018 Oral 一篇,本文主要提出了通过封装模块(block-wise)的方法,运用增强学习设计生成网络架构的方法。 

封装模块思路:

640

作者本人对增强学习和动态规划理解有限,模块生成的总体思路是 Q-Learning 及动态规划,其中提到了运用 reward shaping 优化设计过程,当是本文亮点之一

设计完网络后,生成对应任务的准确率,作为 q-value(即 reward),然后再次重新生成网络。 

此外,文章还提到了部分 trick: 

  • 在 reward 中将复杂度和计算复杂度纳入;

  • early-stopping

论文链接

https://www.paperweekly.site/papers/1866


笔记链接

https://zhuanlan.zhihu.com/p/35639635



640?

Deep Layer Aggregation

#Convolutional Neural Networks

CVPR 2018 Oral,topic:网络设计模块化。

如名所示,提出了 aggregation 的具体思路,并在层融合上提出了具体方式。

论文链接

https://www.paperweekly.site/papers/1867


笔记链接

https://zhuanlan.zhihu.com/p/35641068



640

Learning Face Age Progression: A Pyramid Architecture of GANs

#Face Age Progression

CVPR 2018 Oral,intro 和 related works 主要讲了现有方案大多将年龄信息优先而 identity 信息次之,换句话说,就是生成不同年龄的同时,identity 信息不能很好保留。

640

Generator 部分不做介绍,无亮点,本文亮点在 loss 部分。

文中提出了特征提取器用于提出特定特征,原因是作者认为相同年龄段的不同人脸有着相同的的纹理等特定信息,而这个提取器就是提取出这些特征。此外,该分类器是经过 age 分类任务预训练好了的

640

文中和今年很多思路一样,考虑到了 low-level 和 high-level 信息,将第 2、4、7 等层信息 concat 起来,作为 d 的输入。

identity 信息的保留和上一个 extractor 类似,在人脸分类数据集上预训练,然后拿来直接当 extractor。

论文链接

https://www.paperweekly.site/papers/1868


笔记链接

https://zhuanlan.zhihu.com/p/35661176



640

Convolutional Neural Networks with Alternately Updated Clique

#Convolutional Neural Network

北大团队提出的新的 block 设计,achieves the performance of the state of the art with less parameters. 

640

block 内部更新的核心思路可以直接看这个公式,每一层更新时的输入是比他低的层的更新后的输出加上比他高的层更新前的输出。

640

由于 block 内任意两层互连,故实现了 top-bottom refinement,也就实现了 attention 机制。

640

还提到了部分 technique: 

1. channel-wise attention mechanism 

2. Bottleneck and compression

论文链接

https://www.paperweekly.site/papers/1713


代码链接

https://github.com/iboing/CliqueNet


笔记链接

https://zhuanlan.zhihu.com/p/35661397



640

Unsupervised Discovery of Object Landmarks as Structural Representations

#Object Detection

CVPR 2018 Oral, 今年 CVPR Landmark 和 Attention 这两个词出现的频率很高

640

Landmark Detector 

本文采用的是名为 hourglass 的网络构架,以图片作为输出,该网络输出 k+1 个 channel,含有 k 个 landmark 和背景。对不同 landmark 用 softmax 生成 confidence。

640

在如图公式中,Dk(u,v) 意思是第 k channel 中坐标为 (u,v) 的值,Dk 是 weight map,与对应坐标相乘,再除以总的权重和坐标乘积的和,从而生成该 channel 的 landmark 的 normalized 坐标。 

Soft Constrain 

为了保证我们生成的诸 landmark 及其坐标是表达的我们想要的 landmark 而非其他 latent repre,文章提出了几个 soft constrain:

1. Concentration Constrain:

640

计算两个坐标轴上坐标的方差,设计如图示 loss 是为了使方差尽可能小。

640

这里做了一个近似,使之转换成了 Gau dis,更低的熵值意味着 peak 处更多的分布,换句话说,就是使 landmark 尽可能地突出出来。 

2. Separation Constrain:

640

由于刚刚开始训练时候的输入时纯 random distribution,故可能导致提取出的 landmark 聚集在中心,可能会导致 separation 效果不好,因此而落入 local optima,故设计了该 loss。 

这个 loss 也不难理解,将不同 channel 间的坐标做差值,使得不同 landmark 尽可能不重叠。 

3. Equivariance Constrain

这个比较好理解,就是某一个 landmark 在另一个 image 中变换坐标时应该仍能够很好地定位,在这里,作者介绍了他们实现 landmark 变换坐标的几个trick。 

4. Cross-object Correspondence

640

本文模型认为不能保证同一 object 在不同情况检测时绝对的 correspondence,文章认为这应该主要依赖于该特定 pattern 能够在网络生成的激活值展现一定的共性。

Local Latent Descriptors 

这个 des 的目的是解决一个 delimma:除了我们定义的 landmark,可能还有一些 latent representation,要复原一个 image,仅仅 landmarks 是绝对不够的,所以需要一些其他的信息作为一个补充,但表达他们又有可能影响 landmark 的表达。

640

在这里,文章又用了另一个 hourglass network,如图中左下角的 F,就在我们之前提到的 concentration costrain 中,用一个高斯分布来将该 channel 对应的 landmark 突出出来。

在这里,文章将他当做 soft mask 来用,用 mask 提取后再用一个 linear operator 来讲这些 feature map 映射到一个更低维的空间,至此,local latent descriptor 就被生成了。

Landmark-based Decoder

640

第一步,Raw score map.

640

第二步,normalize.

640

第三步,生成最终图像。

在这里,wk 是 landmark-specific operator。 

简言之,Dk 是我们提出的 landmark 位置信息,fk 是对应 landmark 的 descriptor。 

这里又提到了一个 dilemma:在用 mask 的时候,越多的 pixel 被纳入是最理想的,但纳入太多又使得边缘的锐利不能体现,因为该文用了多个不同的超参数来尝试。

论文链接

https://www.paperweekly.site/papers/1869

笔记链接

https://zhuanlan.zhihu.com/p/35693735



640

An Analysis of Scale Invariance in Object Detection - SNIP

#Object Detection

CVPR 2018 Oral,如下图,文章主要解决网络处理不同 scale 图片的网络策略

640

▲ 读图中配字,理解文章针对的问题

640

▲ 图2

640

▲ 图3

如上面两个图示,三种网络的训练方式和效果一目了然。 

结论是:当我们要检测小的物体时,在输入是大的 scale 的网络上预训练、在高分辨率作为输入的网络上预训练、在upsample后的图片作为输入的网路上预训练,对检测小物体有益。 

第 4 部分讲了用了 DeformableRFCN 模型,第 5 部分主要讨论了在不同分辨率下训练,在同样的高分辨率 test 的结果及其分析:

640

1. 在中分辨率下训练的模型比在高分辨率下训练的模型效果差,原因很简单,因为后者训练测试的分辨率相同,但并没有拉开很大的差距,为什么呢?因为中高 scale 的 object 被变得太大以致不能被检测到;

2. 作者随后在高分辨率下训练了只针对 80pixel 下 Object 检测的模型,但结果比在中分辨率下的效果差了很多,为什么呢?因为忽视中高 scale 的 Object 对训练影响非常大;

3. 作者又用多分辨率训练模型(MST),但仍因为过小或过大的 Object 影响,效果仍不理想。 

Scale Normalization for Image Pyramids 

第 6 部分,作者提出了最终的模型。该模型的输入分辨率最低 480*800,最高 1400*2000,对于训练中过大或者过小 scale 的 Object,模型选择直接忽略,训练只针对在 scale 的一个范围内的 Object。 

后面就是训练细节和 trick,详情可以翻看论文。

论文链接

https://www.paperweekly.site/papers/1870


笔记链接

https://zhuanlan.zhihu.com/p/35697040



640?

Wasserstein Introspective Neural Networks

#Introspective Neural Networks

CVPR 2018 Oral,同时也是目前为止个人印象最深刻的一篇文章。 

文章主要做的事情就是提出了基于 Wasserstein 的 INN,该组已经在 ICCV,NIPS 等多次提出并改进该模型,该模型主要做的就是将 GAN 中的 G 和 D 结合起来。 

文章最开始给了一下最基本的 notation,然后介绍了如何将 INN 与 Wasserstein 结合起来并给出了必要的数学证明。

640

▲ 算法

640

上图为分类过程 loss 的设计,图中两个公式,前者是目标函数,很容易理解,后者则是正则项,正则项是以随机的 a 来生成真数据(x+)与生成的假数据(x-)的 mixture。

合成部分

640

合成部分的公式中,简言之,就是以生成图与原图的相似度作为衡量标准。

图中引用的 21,29 是作者的前面两篇文章,分别是 NIPS 2017 和 ICCV 2017,作者在这篇文章中并未给出任何证明,后期本人应该会补上这两篇的笔记。

论文链接

https://www.paperweekly.site/papers/1871

代码链接

https://github.com/kjunelee/WINN


笔记链接

https://zhuanlan.zhihu.com/p/35699851



640?

Im2Flow: Motion Hallucination from Static Images for Action Recognition

#Action Recognition

CVPR 2018 Oral,本文思路很清晰且已读,具体细节可以看文章,这里仅仅把总体思路讲一下。

640

用 u-net 训练一个模型:输入是一个静态的帧,输出的预测的五帧光流信息,模型在 YouTube 数据集上训练。

该模型 loss 分两部分,一部分是将生成的五帧光流信息与 YouTube 数据集的 groundtruch 对比,另一部分是将生成的光流信息与真实的光流信息送进某网络(在 ucf101 上预训练过的 resent)计算欧式距离;前者是要求准确,后者是为了更好保留 high-level 的动作信息。

最终将 rgb 和预测的光流作为标准 two-stream 模型的输入进行预测。

论文链接

https://www.paperweekly.site/papers/1872


笔记链接

https://zhuanlan.zhihu.com/p/35702085



640

What have we learned from deep representations for action recognition?

#Deep Spatiotemporal Representations

CVPR 2018 Zisserman 的新论文,这篇文章就是 two-stream 模型中间层的可视化方法,换句话说,就是探寻 two-stream 模型学到了怎样的时空信息。

640

生成总共分为两个步骤,详情如上图:计算出输入的偏导,将计算出来的梯度用学习率 scale 并加到当前输入上。

Activation Maximization

640

本文还提到了两个正则方法:

1. 防止过大的值

640

2. 限制低频信息

640


论文链接

https://www.paperweekly.site/papers/1873

笔记链接

https://zhuanlan.zhihu.com/p/35703892



640

Squeeze-and-Excitation Networks

#Neural Networks

今年的 Oral,令人印象深刻的一篇文章,网上解读很多,相当于在 channels 上加了一个 attention 机制,给不同的 channel 不同的权重

这篇文章行文思路清晰,哪怕学习写论文也要看一看。

640

Squeeze

简言之就是全局平均池化,是因为低层的感受野太小导致效果差。

640

Excitation 

这个环节主要是搞清 channels 之间的关系及重要性。这里作者提出了两个要求:

1. 灵活,作者解释:能够学习 channels 间非线性的关系; 

2. 必须学习一个非互斥关系,因为设计的 block 是为了强调多个 channels 而非一个。

640

这里设计了两个全连接层,一个降维,一个升回原来的维度。对于降维再升维,作者给出的解释是为了降低计算复杂度和协助泛化。

论文链接

https://www.paperweekly.site/papers/1725

代码链接

https://github.com/hujie-frank/SENet


笔记链接

https://zhuanlan.zhihu.com/p/35704334



640

Actor and Action Video Segmentation from a Sentence

#Video Object Segmentation

CVPR 2018 Oral,本文定义了一个新的任务:给出一个句子,根据该句子分割视频中的 actor 及其 action

640

主要有三大部分: 

1. Textual Encoder:使用 word2vec 的预训练模型,句子中的每个词被编码成 1x300 的 vector,一个句子则声称 nx300 的 matrix,通过 padding 使句子们 size 统一,网络构造详情见文章;

2. Video Encoder: encode the actor and its action. 网络构型采用 state of the art 的运用 3d filte r的 I3D model,后面又提到 follow 了 two stream 模型,未做很多解释,只说同时学习 RGB 和光流信息;

3. Decoding with dynamic filters:这里又提到了 dynamic conv filters,这是我第二次见到这个,感觉还是有必要读一下,若网上解读不多,会后期发出笔记。

640

为了保持同样的分辨率,使用了 deconv,deconv 的应用上有一些创新和 trick,详情请翻读论文。

模型的训练 

训练时模型的输入:视频片段,sentence,segmentation mask。

640


▲ loss function


640

公式中的 r 表达的是不同的分辨率,作者解释是将多个分辨率纳入考虑,形成一种类似 skip-connnection 的效果。

论文链接

https://www.paperweekly.site/papers/1875


笔记链接

https://zhuanlan.zhihu.com/p/35718996



640

Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering

#Visual Question Answering

CVPR 2018 Oral,主题是 attention+VQA,这是笔者作者读的第一篇关于这个领域的问题,可能难免会有讲得不够透彻的地方,欢迎批评指正和讨论。 

本文的主要思路是用 faster-rcnn 提取出 proposal,然后用其做 image captioning 或者 VQA,该方法取得了 2017 VQA Challenge 的第一名。

640

Bottom-Up Attention Model 

简言之,该部分就是直接复用了 faster-rcnn,提取出超过特定阈值的区域,并提取出其平均池化特征。 

Captioning Model 

在这里作者提到,该文的 captioning 系统即便在没有基于 faster rcnn 的前提下,也有着相当好的体现,具体效果可以看 experiment 部分。 

该部分作者未能讲得非常透彻,主要是对 NLP 理解相当有限,后面会更新这部分的讲解,这部分主要做的事情是用两层 lstm,以 faster rcnn 生成的 feature 和 sentence 做输入,生成对应 features 的 attention weights。

该部分由两层 LSTM 组成:

640

▲ h的右上标的12分别代表attention,language lstm的输出

1. 第一层 LSTM:top-down attention 

在这里直接将 faster-rcnn 阶段生成的 region feature 称为 V,该层的输入时将:平均池化后的 v,上一时刻 language LSTM 的输出,之前生成的 words,concat 起来。 

对于某一个时刻 attention lstm 的输出,生成一个 normalized attention weight,如下图:

640

2. 第二层 LSTM:language 

该层将 faster-rcnn 阶段生成的 region feature 与 attention LSTM 的输出 concat 起来作为这一层的输入。

640

▲ 很容易理解,不做解释

3. Objectives 

该部分作者只是引用并复用了已有方法。 

VQA Model 

先将问题用 GRU encode 成 the hidden state q,这个 q 又当做 top-down 系统的输入,即上面提到的两层 lstm,生成 attention weight。

论文链接

https://www.paperweekly.site/papers/754


代码链接

https://github.com/peteanderson80/bottom-up-attention


笔记链接

https://zhuanlan.zhihu.com/p/35778768



640

Embodied Question Answering

#Visual Question Answering

CVPR 2018 Schedule 上的第一篇 Oral,这篇文章主要定义了一个新的 task 并给出了一个数据集。

任务定义:将一个 agent 随机丢进一个房间,向他提出一个问题,这个 agent 需要自己导航并回答问题。

640


640


▲ 问题类型,大家可以大致理解下

数据集问题,场景的生成都是用已经存在的 method 生成的,详情可以翻阅论文。

这个 task 总体来说对于 agent 提出了四个要求:vision,language,navigation,question answering,文章还给出了各个部分的具体结构,很容易理解。

640

▲ 训练策略

论文链接

https://www.paperweekly.site/papers/1268


笔记链接

https://zhuanlan.zhihu.com/p/35791145



640

Taskonomy: Disentangling Task Transfer Learning

#Transfer Learning

CVPR 2018 Oral,本文定义了一个新的任务,针对在视觉内的迁移学习,并提出了一个蛮大的数据库,然后还有 Malik,Savarese 两位大牛挂名,感觉很值得关注。 

定义的任务是这样的:vision task 类目很多,只针对某个问题来解决的话,会需要很大的标注的数据集,但我们不难想到的是,一个视觉任务的解决应该能够一定程度的解决另一个视觉任务,毕竟一个成熟模型的构建意味着对该 image 的一定的理解,而这部分的理解的一部分或许对另一个 task 有助益,例,物体 relation 的理解对深度信息的学习毫无疑问是有着助益的。

640

首先做一个 notation 说明:source task 是指我们已经有着足够标注数据集或者信息,能够解决的问题,target task 则是指待解决,希望通过前者的迁移学习来解决的问题。 

有三个阶段:

640

Step I: Task-Specific Modeling 

encoder-decoder 结构,不需过多解释。

Step II: Transfer Modeling

640

这里的 transfer function 就是一个 decoder,他的输入时多个 source task encoder 的 encoder 的输出。 

这里作者提出了设计时应当考虑到的因素: 

1. accessibility首先,应该含有潜在的能够解决 target task 的信息,因此文章设计了一个小结构,用其基于小规模数据测试 accessibility;

2. higher-order transfers:多输入,过滤掉有着更低 contribution 的 representation 的 filter 策略;

3. transitive transfers

640

Step III: Ordinal Normalization using Analytic Hierarchy Process (AHP) 

简言之,就是计算不同的 source 对一个 target task 的贡献度。 

Step IV: Computing the Global Taxonomy 

计算全局的一个 contribution graph。

论文链接

https://www.paperweekly.site/papers/1876


代码链接

https://github.com/StanfordVL/taskonomy


笔记链接

https://zhuanlan.zhihu.com/p/35833517



640

Detail-Preserving Pooling in Deep Networks

#Convolutional Neural Networks

CVPR 2018 Oral,顾名思义,提出了保留 detail 的池化方法。 

max/avg pooling 一个只选取最大而忽略与周围像素的关联性,一个重视关联性却又直接抹平,并且在实际梯度计算中也有一些 drawback,所以该文提出了这个新方法,一句话概括,就是在池化过程中学了一个动态的 weight。

Notation:在此,我们以 I& 代替文章中出现的640,ID 代指640

Detail-Preserving Image Downscaling

640

▲ I是原图,O是output,[]表示取对应坐标像素值

640

▲ 如图所示,ID是用近似高斯分布的filtersmooth后的图像

640

作者总结:DPID 计算的是 weighted average of the input,周围的像素中,越近或者 difference 越大的值能够给最终的 output 更高的 contribution。

以上这一部分是一个铺垫。 

Detail-Preserving Pooling 

作者这部分就是将上一部分提出的 downscale 思想转化成文章的 DPP(如 title) 简言之,就是将上部分中的 L2 NORM 替换成一个可学习的 generic scalar reward function。

640

首先给出 weight 的表示:

640

▲ α和λ就是我们要学习的参数

这里用了 constrain 来保证两个参数为非负。 

这里给出了两种 reward function:

640

640

▲ 这里为了简洁,将λ省略掉了

可以看到,相对而言,后者更倾向与给比中心像素高的像素更高权重,前者则是给差距大的更高权重。 

后面,作者又补充了 I& 的生成:

640


论文链接

https://www.paperweekly.site/papers/1877


代码链接

https://github.com/visinf/dpp


笔记链接

https://zhuanlan.zhihu.com/p/35938826



640

High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs

#Image Synthesis

CVPR 2018 Oral,本文解决了 GAN 生成高分辨率突破的问题,分辨率达到了 2048*1024,方法精细,值得深入来看。

先来看 Generator:

640

如图所示,中间部分的 G1 在低分辨率情况下训练,然后在前后又分别加上 G2,注意左边部分的 G2 的输出和 G1 的输出 concat 之后,作为右边 G2 的输入。 

再来看 D:这里的 discriminator 是 multi-scale,有着三个针对不同尺寸的 D,三个尺寸分别是原尺寸,二分之一,四分之一。 放缩尺寸的理由不难理解,receptive field 大小的问题。

640

▲ objective中,三个D都纳入考虑

Improved Adversarial Loss 

一句话概括:在 D 的中间多个层抽取 feature map,作为分类和训练依据。 

Using Instance Map

个人认为是本文最 inspiring 的一点,先放对比图。

640

图胜千言,boundary map 一方面更加精细,也对边缘的处理上给出了看起来很理想的解决方案。具体的对比解释可以去文中寻找。 

b map 的提取不难理解,主要是基于 semantic labels。 

Learning an Instance-level Feature Embedding 

这部分是基于前面提到的 instance level 信息,做一个精细化的 embedding。在 generator 的输入中,除了 ori img,boundary map 之外,还有 low-dimensional feature。 

为了生成这些 low-dim feature,作者又设计了一个标准的 encoder-decoder 来生成。在这个 encoder 训练好之后,还用生成的特征做了一个聚类,从而可以控制生成图片的 style。

论文链接

https://www.paperweekly.site/papers/1278


代码链接

https://github.com/NVIDIA/pix2pixHD


笔记链接

https://zhuanlan.zhihu.com/p/35955531



640

Feature Space Transfer for Data Augmentation

#Data Augmentation

CVPR 2018 Oral简言之,就是用 GAN 生成新数据

640

结构没太多新意,也不会很难理解,就是在 appearance 和 pose 上分离。

在网络设计上,作者提到了三点: 

1. 为了避免网络只是单纯的 match feature pairs,如上图所示,只是学习 the residual;

640

▲ 即source和target的feature vector的差

2. appearance 和 pose 分开训练,pose 的学习便可以全监督训练学习;

3. appearance 和 pose 分开训练,能够使对这两个属性的学习上更加 balance。

论文链接

https://www.paperweekly.site/papers/1878


笔记链接

https://zhuanlan.zhihu.com/p/35956505



640

StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation

#GAN

CVPR 2018 Oral,首先要解释一下 domain 的定义:

这里的 domain 是指针对数据集中的 attribute,根据 attribute 来划分的,比如就性别这个 attri 而言,男是一个 domain,女是一个,相对于发色而言,金发是一个 domain,黑发是一个 domain。 

随后作者提出,如果要 cross domain 来训练 GAN,太麻烦了,n  个 domain 需要 n(n-1) 个 translator,作者在本文提出了一个可以解决 multiple domain translation 的 translator

640

▲ 整个网络结构,下面文字讲得很清楚了

Adversarial Loss:这部分设计无太多新意。 

Domain Classification Loss:简言之,分成了两个部分,第一个部分负责在 D 讲 real img classify 到正确 domain label,第二个部分,则是负责激励 G 将 fake img 向 target domain label 靠近。 

Reconstruction Loss:简言之,就是 cycleGAN 采用的那种 loss,具体请参见 cycleGAN,是为了保证 cross-domain 过程中只更改我们想要更改的部分。

论文链接

https://www.paperweekly.site/papers/1227


代码链接

https://github.com/yunjey/StarGAN


笔记链接

https://zhuanlan.zhihu.com/p/35967629



640

Discriminative Learning of Latent Features for Zero-Shot Recognition

#Zero-Shot Learning

CVPR 2018 Oral,Zero-Shot Learning 就是寻求将学习到的特征映射到另一个空间中,从而 map 到 seen 及 unseen 的属性或者 label 上。

这篇文章的主要亮点在于学习了已定义label的同时,学习了latent attribute(隐含属性)。 

已有方案的 drawbacks: 

1. 在映射前,应当抽取 image 的 feature,传统的用 pretrain model 等仍不是针对 zero-shot learning (ZSL) 特定抽取特征的最优解;

2. 现有的都是学习 user-defined attribute,而忽略了 latent representation;

3. low-level 信息和的空间是分离训练的,没有大一统的 framework。

本文便是对应着解决了以上问题。

640

Notation: 

FNet:抽取 img 的 feature; 

ZNet: 定位最 discriminative 的区域并将其放大;

ENet:将 img feature 映射到另一个空间。

下面我们先介绍各个子网络 :

FNet (The Image Feature Network)

这部分直接借用了已有的 VGG19、GoogleNet,不细讲。

ZNet (The Zoom Network)

这里的目的是定位到能够增强我们提取的特征的辨识度的r egion,这个 region 同时也要与某一个我们已经定义好了的 attribute 对应。 

ZNet 的输入是 FNet 最后一个卷积层的输出。在这里运用某个已有的激活函数方法,将我们定位好了的 region 提取出来,即将 crop 操作在网络中直接实现。 

然后,将 ZNet 的输出与 original img 做 element-wise 的乘法,最后,将 region zoom 到与 original img 相同的尺寸。 

如图,再讲该输出输入到另一个 FNet(第一个 Fnet 的 copy)。

ENet (The Embedding Network)

这里作者提出了一个 score 用于衡量 img feature 和 attribute space 的相似性(兼容性)。

640

640

ENeT 将 img feature 映射到 2k dim 的空间中,1k 是对应于已经定义了的 label,并用 softmax loss。另 1k 则是对应潜藏属性,为了使这些特征 discriminative,作者使用了 triplet loss。

论文链接

https://www.paperweekly.site/papers/1879


笔记链接

https://zhuanlan.zhihu.com/p/36030705



640

Relation Networks for Object Detection

#Object Detection

CVPR 2018 Oral,本文设计了一个考虑 relation 的 module,来增强 object detection 的性能。 

对于每一个 object,都将其余所有 object 的 appearance 和坐标纳入考虑,增加在已有的 feature 上。 

文中以倒推的方式给出表达,首先是最终表达(n-th Object 的 relation feature):

640

▲ fA的上标m是指第m个


640

▲ 式子左边的值是其余objects对这个Object的影响


640

▲ 本式的更具体解释清翻看论文

再一点就是 fG 的处理:

640

这里有两步,首先将两个物体的 fG 映射到高维表示,即 εG。

第二步则是将该特征用 wG 映射到 scalar weight,max 的使用起到了类似 RELU 的作用,对几何关系表示的权重做了一个限制。 

再一个就是为了保证几何特征在变换中的不变性(invariant to translation and scale transformations),做了如下变换:

640

再将上图特征做了一个映射,映射过程未做过多解释,只是做了一个引用。该文与其他类似方法最大的区别便是将几何信息纳入考虑。

最终的表示不难理解:

640

就是将某一物体原有的 appearance feature 和其余所有 Object 与该物体的 realation feature 加起来,为了保证维度一直,在 relation feature 生成时就已经将 feature 维度压缩,从而 concat 之后的 relation feature 与 fA 对应。 

随后给出了证明,该 module 输入输出维度一致。 

总得来说,这篇笔记还不够透彻,后面会更新更补充,核心思想就是将文中引用的 scaled dot product attention 做了一个应用。

论文链接

https://www.paperweekly.site/papers/1880


笔记链接

https://zhuanlan.zhihu.com/p/36033824



640

Semi-parametric Image Synthesis

#Image Synthesis

CVPR 2018 Oral,来自 CUHK,这里设计的模型以 semantic layout 输入,输出真实的相片般的图片

640

▲ 最上面一排是输入,下面是输出

640

模型的训练基于是由 layout 和 color img 组成的 pair,用这样的 pair 生成 memory bank。

Notation:我们用 M 表示 memory bank。

test 的时候,对于一个 semantic label map,我们的模型将其 segment,并从 M 中基于形状等信息找到对应的component。match 的块的填充将要被填充到一个 canvas 上,由一个网络完成;为了预防重叠,设计了另一个网络来设计填充的顺序。 

canvas 和 input layout 作为 synthesis network 的输入,生成最终的输出。 

M 的表示 

所谓的 memo bank 就是 segments 的一个 bank,基于 semantic label map 生成。 

每一个 segment 定义了三个属性,颜色,binary mask,semantic map(该 segment 周围的 context,并在一个 bounding box 范围内)。

Retrieval 

对于一个新的 semantic layout,对于每一个 segment,计算出上面提到的三个属性,基于下面的 score 计算方法, 从 M 选出最 match 的块:

640

▲ 两个iou分别衡量的是segment本身shape,该segment周围context

Transformation

在本阶段,通过旋转,放缩等变换,将选取的 segment 变得更加 match。

640

▲ objective

test 的时候 segment 之间不是完美契合的,所以训练的时候我们的训练数据也应当是不完全契合的,故直接用 mask 来做 map 是不行的,这里作者用 random affine transformation。

640

Canvas 

这一阶段则是将 transform 后的 segment 放到一个 canvas 上,为了解决重叠问题,设计了一个 ordering network,这里的思路挺让人耳目一新的,为了训练这样一个网络,使用了深度信息,对于没有深度信息的数据集,则是使用预测 depth 信息的网络生成。

Image Synthesis 

The image synthesis network f takes as input the semantic layout L, the canvas C, the target semantic layout and a binary mask that indicates missing pixels in the canvas.

640


论文链接

https://www.paperweekly.site/papers/1881


笔记链接

https://zhuanlan.zhihu.com/p/36073450



640

Synthesizing Images of Humans in Unseen Poses

#Action Recognition

CVPR 2018 Oral,Pose 合成。

网络的输入是 original img,original pose,target pose,并预设 original img 和 target img 背景一样,人是同一个。 首先前后景分离,然后针对前景(即人),针对身体的不同部分做细致的 segment。

640

Pose Representation 

人身体的 pose 用 14 个 dots 表示,在 dots 处还加入了高斯噪声,有利于 regularization,且有利于网络更快学习到这个特征。 

Source Image Segmentation 

分前后景,前景又对应着已经定义好了的身体部分(10 个)。采用 u-net,输入是 original img 和 pose 的 concat,输出是各个部分的 mask。

640

Foreground Spatial Transformation 

这一过程则是将分割后的 segment 和 target pose 一一对应起来,并作相应的旋转,放缩等。 

Foreground Synthesis 

前一阶段我们已经根据 target pose 将各个 segment 位置变换好了,简言之,就是把人的是个部分拆开来,然后根据目标姿势重新组合,这一步则是将其彻底的合成,使其具备和真实照片一眼的一致性。 

也是用的 u-net,输入为 target pose 和已经 segments,输出时 foreground 和 target mask。 

Background Synthesis 

这部分则是处理新的 target 之间的孔洞,无新意。 

Loss Function 

两部分组成 VGG LOSS:将 VGG19 的前 16 层的输出 concat 并计算 L1 距离。传统的 GAN loss。

论文链接

https://www.paperweekly.site/papers/1882


笔记链接

https://zhuanlan.zhihu.com/p/36076119


640?


点击标题查看更多论文解读: 




640?

▲ 戳我查看招聘详情


640?#岗 位 推 荐#


平安人寿AI研发团队2018社会招聘、校园招聘全面启动!




关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。


640?


▽ 点击 | 阅读原文 | 访问作者知乎专栏

2020-01-11 21:25:07 ayayayayo 阅读数 442

开头的话

一直很想通过博客记录自己的学习生活,一眨眼已经是大四狗了,趁着本科的尾巴,记录一下自己做毕业设计的过程(大概是填坑吧~)。本人毕业设计选题为三维重建方向,同时还需要做一点点模型匹配的工作,主要是足部重建并生成鞋楦,这个课题是一年前的大创,拖到现在,鬼知道我当时为什么要跟导师做这个题目啊!完全是给自己挖坑!因为研究生将要学习的方向是计算机视觉,所以就…那就继续做这个课题吧,暴风哭泣,还是要保持微笑呀(年轻人自我安慰式动力源泉:我可以,我能行!)

记录综述

之前有对三维重建相关的知识进行一些了解,比如相机成像原理、相机标定、SFM、ORB-SLAM等,但是这些知识目前在我的脑海中是零碎的,不构成一个完整的知识系统,所以这次打算从论文学习开始,毕业设计大致的过程如下:

  • 对课题背景进行研究
  • 对自己所做的系统进行初步整体规划:功能、开发平台、相关技术、交互等
  • 找出技术关键,分阶段实现
  • 完整系统的搭建
  • 测试与完善
  • 论文的撰写

开题的时候已经对整个课题进行了背景研究,完成了系统整体规划,现在进入正式的制作阶段,所以接下来的笔记是对相关技术的研究,先阅读论文再着手敲代码。英语六级踩线过水平,因此论文阅读从中文论文开始,再阅读外文文献进行补充,那么我们现在开始吧!

中文文献

  • 一种基于智能手机成像的三维重建方法
    照片拍摄:手机+定焦
    相机标定方式:张正友标定法
    图像处理(可参考):中值滤波(降低脉冲噪声)+特征增强(减少外界光影响)
    特征提取方式:Harris+SURF
    特征匹配方式:计算欧氏距离+k邻近+RANSAC去除错误匹配
    解算点云:sfm过程

  • 融合手机惯性测量数据的三维重建系统研究
    三点创新:

    1. 融合IMU进行三维重建,在BA过程加入数据处理得到的旋转矩阵约束
    2. 三维点云去噪:去除环境噪声(判断是否在圆柱体内)+去除地面噪声(计算向量几何)+去除离群噪点(区域生长算法)

    照片拍摄:手机+IMU数据(可参考)
    IMU数据处理:基于李代数对IMU进行处理得到旋转矩阵
    解算点云:同sfm(改进了BA,加入了去噪)

  • 基于智能手机的三维重建方法
    该论文拍摄时使用了手机闪光灯,利用光度立体视觉算法能重建出布料、硬币等的纹理,虽然重建结果较为精细,但是环境光对结果的影响较大,不考虑此方法。

  • 基于单目相机序列图像的双层过滤三维重建
    创新点:

    1. 改进了sfm,使用五点法估计本质矩阵
    2. 提出了双层过滤算法(可考虑):离群点过滤、泊松重建后三角面片过滤

    离群点过滤算法:(两次迭代)第一次迭代计算每个点的平均邻近点距离mi ,求mi的平均值和方差以确定阈值;第二次迭代:根据阈值删除点

    三角面片过滤:先用与离群点过滤算法同样的方式删除点,再删除对应的面。

    重建过程:稀疏点云重建(改进sfm)→稠密重建(CMVS+PMVS2)→离群点过滤→泊松表面重建→三角面片过滤→结果

  • 一种面向三维重建的改进SIFT图像匹配算法
    拟采用opencv提供的SIFT算法(与sfm一致),不考虑。

  • 基于图像序列的稠密三维重建关键技术研究
    创新点:

    1. 改进了SIFT算法(双线性像素插值法来增加纹理稀疏区域特征点数目,挺有趣的,但不考虑)
    2. 优化了PMVS中的初始匹配,解决失真问题,不考虑。

    重建过程:同一般三维重建。稀疏重建–稠密重建–表面重建

  • 基于图像特征点的稠密点云三维重建
    创新点:

    1. 优化匹配过程:只匹配相近图像,从而大大加快了重建速度。
    2. 开发的系统可进行冗余点云交互式删除,点云网格化(可考虑),空洞修补等可视化工具,并提供开放接口作为研究平台。

外文文献

  • 3DCapture: 3D Reconstruction for a Smartphone
    创新点:

    1. 相机位姿预测模块分为在线和离线两个部分,且两部分不相互依赖,大大提高了工作效率。
    2. 实时特征点追踪与IMU数据整合双线程同时在线工作,该部分比SLAM少了一些模块,较为轻量。
    3. 在BA阶段使用IMU处理的数据结果

    重建过程见下图:
    在这里插入图片描述

总结

通过以上论文阅读找到了基本解决思路,在经典SFM的基础之上可以考虑加入图片的预处理、融合IMU数据、双层过滤以及交互式冗余点删除,这些可以使重建效果更优,也丰富了我的系统。接下来的工作是先进行经典sfm的研究与实现,再对sfm进行优化。(ps:那篇外文文献是三星公司发表的,真的挺厉害了,好像已经投入使用了,不过我就不对自己要求那么高了,这篇文章仅供学习之用啦~)

没有更多推荐了,返回首页