Differentiable Optimization 工作整理
在深度学习中,可微(Differentiable)是一个很重要的环节,可微意味着能够进行训练。在 SLAM 和很多 3D 系统中,后端往往伴随着大量的在线优化(Optimization)算法,这些算法对于整个 pipeline 很重要,如果要进行 End-to-end 学习的话,如果随意用回归之类的方法代替优化,往往不能取得满意的效果。一个比较简单直接的思想也就是把优化部分进行可微化,这样就可以比较容易地进行替换。
目前基于将优化算法可微化的论文和开源工作感觉还比较有限,这里就看到的一些进行整理,大家如果有相关工作欢迎留言补充。...
SNPE 安装与环境配置
0 系统环境
Ubuntu 18.04
Python 3.6
Anaconda 3
SNPE 1.59.0
1 SNPE (Snapdragon Neural Processing Engine SDK) 简介骁龙神经处理引擎(Neural Processing Engine, NPE)软件框架让开发者可为实现所需的用户体验,选择最适宜的骁龙内核,包括 Hexagon 向量处理器、Adreno GPU 和 Kryo CPU,并加速其终端侧人工智能用户体验的实现。骁龙神经处理引擎支持 PyTorch、Tensorflow、Caffe 和 Caffe2...
论文笔记:Deep ChArUco: Dark ChArUco Marker Pose Estimation
ChArUco 在相机标定中比较常用,同时在一些 AR 应用中也有涉及。这篇文章是针对 ChArUcho 这个矩阵二维码使用 Deep Learning 方法进行姿态估计,取得了比传统方法更佳鲁棒的结果(似乎可以为标志检测之类)。
文章主要贡献在于:
1、两个网络 ChArUcoNet 和 RefineNet:前者用于定位 ChArUco 的角点坐标,后者用于对角点坐标进行亚像素修正
2、使用仿真数据进行自动标注与训练的方式
1 传统方法
ChArUcho 示意图如下:ChArUco 就是棋盘格和 ArUco 码的结合,整体是一个 5x5 的期盼形状,总共有 16 个 ArUco 码代替了棋盘格中的白色方格,其中的...
论文笔记:Deep Closest Point: Learning Representations for Point Cloud Registration
DCP 是一篇基于 Deep Learning 来解决 ICP 问题的,其中 Deep Learning 部分主要用于做匹配,后端仍然沿用 SVD 的方法。比很多 MLP 直接出 Pose 的合理,也取得了更好的效果。在与传统方法例如 Go-ICP 以及深度学习方法 PointNetLK 的对比中,都取得了一定的优势。1 经典 ICP 问题
这一部分在之前的论文笔记中已经有了比较详细的阐述,参见:使用 SVD 方法求解...
论文笔记:Dynamic Graph CNN for Learning on Point Clouds
DGCNN 是对 PointNet 的改进,PointNet 网络每个点单独提取特征缺乏局部关联。DGCNN 提出了 EdgeConv 就是对它的改进。
1 网络结构
DGCNN 网络结构如下图所示,可以看出其整体架构和 PointNet 是基本一致的,主要区别就是将其中的 MLP 替换成了 EdgeConv。2 EdgeConv
2.1 EdgeConv 结构上图是 EdgeConv 的示意图。假设一个F维点云 其中 F 表示每个点的维度,最简单的可能是 x,...
EM估计(Expectation Maximization Algorithm)
这篇文章实际上是Ng在CS229上一个课程讲座。因为EM估计也很常用,特别是语义SLAM里面,这里根据一些粗浅的理解做一个总结备忘。
EM算法1是分为E(期望)和M(极大)的两步迭代优化算法,主要用于解决数据缺失情况下的概率估计问题。这个数据缺失其实不太好理解,有一个男女生身高的经典例子比较形象2,可以从ML到EM估计分别理解下。
1、极大似然估计(ML)
我们需要调查我们学校的男生和女生的身高分布。 假设你在校园里随便找了100个男生和100个女生。他们共200个人。将他们按照性别划分为两组,然后先统计抽样得到的100个男生的身高。假设他们的身高是服从正态分布的。但是这个分布的均值 和方差 我们不知道,这两个参数就是我们要估计的。记作 。 这是一个典型的极大似然估计问题,我们知道100个男生,100个女生和他们的身高,我们想要估计男生的身高分布均值方差,女生的身高分布均值方差,都可以用极大似然估计来解决。
我们已知的有两个:样本服从的分布模型、随机抽取的样本;我们未知的有一个:模型的参数。根据已知条件,通过极大似然估计,求出未知参数。总的来说:极大似然估计就是用来估计模型参数的统计学方法。
因为我们知道哪个样本是男生哪个样本是女生,所以这一问题就分解成分别估计男生和女生的即可。那么以男生为例,设样本集 ,其中 ,概率密度函数 ,首先写出似然函数也就是所有男生概率的乘积:
通常转为求解对数似然函数:
极大似然估计就是求似然函数最大值(或者对数似然函数最小值):
这个极值自然就是通过求导得到:
特别的,对于正态分布样本 ,其似然函数为:
对数为:
求导得方程组:
则似然方程的唯一解为:
这个就是它的最大值点。也就是通过极大似然估计给出的符合当前样本的参数估计。
2、Jensen不等式
对于一个凸函数 (凸函数的定义为:对于X为实变量,,对于X为向量,),其中X是随机变量则有如下不等式成立:
其中等号成立的条件当且仅当,也就是随机变量为一个常数c:。
Jensen不等式直观理解可以参见下图:图中,实线f是凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。(就像掷硬币一样)。X的期望值就是a和b的中值了,图中可以看到 成立。
对于f是凹函数的情况,则正相反:。
3、最大期望估计(EM)
对比极大似然估计,EM估计理解起来非常简单,例如对于上述男女生的例子,我们现在有200个男女生的样本,但是我们不知道哪个样本属于男生哪个样本属于女生(信息缺失)。
3.1 EM估计公式推导
样本集 ,包含 m 个独立的样本;每个样本 对应的类别 是未知的(即上文中每个样本属于哪个分布是未知的);我们需要估计概率模型 的参数...
论文笔记:NetVLAD: CNN architecture for weakly supervised place recognition
NetVLAD1是一个较早的使用 CNN 来进行图像检索或者视频检索的工作,后续在此工作的基础上陆续出了很多例如 NetRVLAD、NetFV、NetDBoW 等等的论文,思想都是大同小异。一、图像检索VLAD 和 BoW、Fisher Vector 等都是图像检索领域的经典方法,这里仅简介下图像检索和 VLAD 的基本思想。
图像检索(实例搜索)是这样的一个经典问题:
1、我们有一个图像数据库 通过函数可以得到每一个图像的特征 ;
2、我们有一个待查询图像 通过函数得到它的特征 ;
3、则我们获得的欧氏距离 应该满足越相近的图像 越小。
二、VLAD (Vector of Locally Aggregated Descriptors)
而 VLAD...
Tensorflow C API 从训练到部署:使用 C API 进行预测和部署
前述博文 Tensorflow C++ 从训练到部署(2):简单图的保存、读取与 CMake 编译 和 Tensorflow C++ 从训练到部署(3):使用 Keras 训练和部署 CNN 使用 Tensorflow/Keras 的 Python API 进行训练,并使用 C++ API 进行了预测。由于 C++ API 需要编译...
[TX2] Tensorflow 1.12.0 在 Jetson TX2 上的编译
系统环境
Ubuntu 16.04
Jetpack 3.2.1 on TX2 [Link](with CUDA 9.0 cuDNN 7.0.5)
1、编译准备
1)配置环境
Shell
export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
1
export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH2)安装依赖
Java
Shell
sudo apt-get install openjdk-8-jdk
1
sudo apt-get install openjdk-8-jdkBazel (Tensorflow 使用 Bazel 0.15 编译,因此这里下载 0.15.2 版本,详情参见这里)
Shell
cd...
线性规划 (Linear Programming)
1 概念
在数学中,线性规划(Linear Programming,简称 LP)特指目标函数和约束条件皆为线性的最优化问题。
通常线性规划问题包含:
1)一个需要极大化的线性目标函数 (表示为 个决策变量 的加权和):
2)线性形式的问题约束,表示为 个决策变量满足 个方程约束或不等式约束:
3)决策变量非负,表示为:
2 标准型
描述线性规划问题最直观的形式就是标准型,通常表示为:
可以证明:任意线性规划的一般形式,都可以通过对目标函数取负、添加松弛变量等操作,化成标准形式。
3 对偶问题
下述例子来自维基百科,整体解释比较清晰:
一个线性规划问题(“原问题”)的对偶线性规划问题(“对偶问题”)是另一个线性规划问题,由原问题以一定方式派生而来:原问题中的每个变量都变为对偶问题中的一个限制条件;
原问题中的每个限制条件都变为对偶问题中的一个变量;
原问题若是求目标函数的最大值,则对偶问题是求最小值,反之亦然。3.1 对偶问题的构建
对于以下形式的两个线性规划问题:问题甲
问题乙最大化目标函数最小化目标函数n个变量n个限制条件第i个限制条件为
第j个限制条件为
第k个限制条件为m个限制条件第i个限制条件为
第j个限制条件为
第k个限制条件为m个变量...