Jinyu Li a personal journal

ORB 特征提取计时

在我的计算机上对 OpenCV 的 ORB 特征提取速度进行了测试。我首先对测试用数据集的所有图像进行 FAST 特征检测,然后对检测出的特征点进行 ORB 特征提取,测量仅包含了特征提取的时间。结果如下图:

$T(x) = ax+b$ 是对 ORB 时间开销与特征数目关系的线性拟合。 $a=1.55\times10^{-3} \mathrm{ms}$ , $b = 1.67 \mathrm{ms}$ 。

测试环境是 Intel i5-2320 3.00GHz, 8.0GB DDR3, Win 10 x64, VS 2015 U4, OpenCV 3.1.0

同样的测试对 FAST 特征检测就没什么意义了,FAST 检测需要对图像像素进行扫描,因此对图像大小更加敏感。结果的数量对 FAST 的影响比较小(见下图)。

$a = 3.56\times10^{-4} \mathrm{ms}$ ,$b = 0.527 \mathrm{ms}$ 。

从图上可以看出 FAST 检测的时间消耗基本在 5.5 ms 以内。我采用的测试图像大小均为 960x540 。 后面还需要进一步研究 ORB-SLAM 中采用的四叉树特征检测方式对 FAST 特征检测的速度影响。

Cholesky 分解(一)

当 $A$ 是对称正定阵,$L$ 是下三角矩阵,并且 $A = LL^T$,则称 $LL^T$ 是 $A$ 的 Cholesky 分解。此时,如果同时要求 $L$ 的对角元大于零,则这个分解是唯一的。下面我们从 2x2 分块矩阵推导一种 Cholesky 分解算法:

将 $A$ 沿最左和最上一列分块:

\[A = \begin{pmatrix} a_{11} & A_{21}^T \\ A_{21} & A_{22} \end{pmatrix}.\]

若按同样方式分块 $L$ ,即:

\[L = \begin{pmatrix} l_{11} & 0 \\ L_{21} & L_{22} \end{pmatrix}.\]

将 $LL^T = A$ 计算出来,便有:

\[\begin{pmatrix} l_{11}^2 & l_{11}L_{21}^T \\ l_{11}L_{21} & L_{21}L_{21}^T+L_{22}L_{22}^T \end{pmatrix} = \begin{pmatrix} a_{11} & A_{21}^T \\ A_{21} & A_{22} \end{pmatrix}.\]

于是可知,$l_{11} = \sqrt{a_{11}}$,$L_{21} = \frac{1}{l_{11}}A_{21}$ 。并且 $L_{22}$ 是矩阵 $A_{22}-L_{21}L_{21}^T$ 的 Cholesky 分解。

将这一过程从左上角不断向右下角进行,便可得到 $A$ 的 Cholesky 分解。

卡牌游戏

就算我内心再信仰 Bayesian

一旦玩起了卡牌游戏

立刻就变成了坚定不移的 Frequentist

“别骗人了这游戏根本就没有 SSR !”

Level Set Methods

上图是法线流,下图是曲率流。 加了曲率项,步长要保守好多好多啊……

如何治手贱

为什么禁止乘客拉动飞机的紧急逃生门把手?

五十万元一次,欢迎体验! (请联系空乘人员先付款后使用)