array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 BA-Net论文笔记 - 爱码网

BA-Net: Dense Bundle Adjustment Network

BA-NET:稠密BA网络

 

论文链接:https://arxiv.org/pdf/1806.04807.pdf

代码地址:暂无代码

 

1.概述

提出一种网络体系结构,通过特征度量(特征图)BA,解决运动结构(SfM)问题

整个系统很好地结合了领域知识(即硬编码的多视图几何约束)和深度学习(即特征学习和基础深度图学习)以解决具有挑战性的密集SfM问题

网络根据输入图像生成若干基础深度图,并且通过特征度量BA将最终深度优化为这些基础深度图的线性组合。这个网络主要是学习两个内容:

  1. 一个是使BA问题更容易处理的合适特征
  2. 另一个是基础深度图的线性组合的系数。

2.个人理解

概述的内容比较抽象,说下自己的看法,要理解BA-NET,首先要了解以下基础知识:

  1. 神经网络(包括前向传播,反向传播,残差网络,卷积,反卷积,监督学习,损失函数)
  2. 视觉SLAM中直接法的求解
  3. 视觉SLAM中传统的BA优化问题

BA-NET主要是根据以上的前两点基础知识进行构造的,感觉BA-NET与传统的BA优化没有一点关系

 

视觉SLAM中传统的BA问题,详见另一篇博客:假装这个位置有个链接

视觉SLAM中直接法的求解,详见另一篇博客:https://blog.csdn.net/TFZ941214/article/details/90641493

 

直接法不像在特征点法中,通过匹配描述子,知道p1,p2的像素位置,可以计算重投影的位置。直接法由于没有特征匹配,无从知道哪一个p2与p1对应着同一个点。那就根据当前相机的位姿估计值,来寻找p2的位置。但若相机位姿不够好,p2的外观和p1会有明显差别。于是,为了减小这个差别,我们优化相机的位姿,来寻找与p1更相似的p2。这同样可以通过解一个优化问题,但此时最小化的不是重投影误差,而是光度误差(Photometric Error),也就是P的两个像的亮度误差:

BA-Net论文笔记

这里的BA-Net论文笔记代表在图像I1中像素BA-Net论文笔记的深度,BA-Net论文笔记为像素BA-Net论文笔记在世界坐标系下的位置。BA-Net论文笔记,直接法利用灰度不变性,利用优化的方式,不断的对Td增加一个小的T∆d寻找所有像素中最小的一个光度误差,得到最优的变换矩阵T以及像素的深度d。了解直接法,会更加深刻的理解BA-NET。

 

BA-NET就是在直接法的基础上进行修改的,BA-NET的约束方程(与直接法很类似)及网络框图如下:

BA-Net论文笔记

BA-Net论文笔记

图1:BA-Net结构概述,包括作为骨干网络的DRN-54(Yu等,2017),生成一组基础深度图的基础深度图生成器,特征金字塔构造函数构建多尺度特征图,以及通过新颖的可微LM算法优化深度图和相机姿势的BA层。

简单来说整个BA-NET的网络结构是这样的,将许多的图片送入网络,得到各个图像的特征图与第一帧图片的好多基础深度图。利用系数对基础深度图进行线性组合,形成深度图。将特征图与深度图送入BA-Layer层,与直接法类似利用BA-Net论文笔记通过优化的方式求解变换矩阵T以及像素的深度d这里的变换矩阵T以及像素的深度d是网络预测得到的。论文训练的数据集中是有真实的变换矩阵T以及像素的深度d的(参看论文5.1小节),预测的变换矩阵、深度与真实的变换矩阵、深度之间的误差就形成了loss损失函数。这样通过反向传播使网络学的更容易处理的合适特征以及基础深度图的线性组合的系数。

正如概述中的第二条:整个系统很好地结合了领域知识(即硬编码的多视图几何约束)和深度学习(即特征学习和基础深度图学习)。

更具体的BA-Layer参看论文原文4.3小节,深度图组合系数参看4.4小节,Loss损失函数构造参看4.5小节,数据集参看5.1小节。

相关文章: