基于四元数的存在外点Wahba问题的可证明最优解

2023-05-16

在这里插入图片描述
论文地址
论文视频

文章导读

为什么这次要解读这篇文章?因为上次文章(详见 TEASER | 快速且可证明的点云配准算法和代码解读)旋转求解部分就是用本文中的方法,所以本文算是TEASER方法的前置工作。因此通过理解本文的内容,那么就会对TEASER旋转部分有更深入的理解。本文使用截断最小二乘将Wahba问题转化为优化问题,然后经过一系列操作产生了一个等价非凸二次约束二次规划问题,最终根据该问题的特性提出相应算子求解和证明,这是一个可证明最优性并且可同时处理高外点率的多项式时间方法。

摘要

Wahba问题,也称为旋转搜索,寻求最佳的旋转来对齐两组给定假定对应的向量观测值,它是许多计算机视觉和机器人应用中的一个基本例程。本文提出了第一个多项式时间可证明的最优方法来解决当大量的向量观测值是外点时的Wahba问题。我们的第一个贡献是利用截断最小二乘(TLS)代价来描述Wahba问题,该代价对大量的伪对应不敏感。第二个贡献是使用单位四元数重写问题,并且证明了TLS代价可以用二次约束二次规划(QCQP)来描述。因为上述产生的优化问题仍然是强烈非凸以及很难全局求解,因此我们的第三个贡献是开发一个凸半定规划(SDP)松弛方法。我们证明了尽管单纯的松弛方法通常表现不佳,但我们的松弛方法是紧的,甚至在大噪声和大量外点时仍然时紧的。我们在合成和真实数据集上验证提出的算法,该算法称为QUASAR(基于四元数的鲁棒对齐半定松弛算法),结果表明我们的算法超越了RANSAC,鲁棒局部优化方法,全局外点移除方法以及Branch-and-Bound方法。QUASAR甚至在95%的对应都是外点的情况下仍然能够计算可证明的最优解(即松弛是准确的)。

主要贡献

  1. 利用截断最小二乘(TLS)代价来描述Wahba问题,该代价对大量外点是鲁棒的,我们称这里产生的优化问题为(外点)鲁棒Wahba问题。
  2. 从旋转矩阵表示出发,用单位四元数重写鲁棒Wahba问题。此外,我们证明了使用添加的二值变量如何重写TLS代价函数,该二值变量可以决定一个测量是内点还是外点。最终,我们证明(包含一个四元数和N个二值变量的)混合整数规划可以重写为包含N+1个单位四元数的优化问题。这个重新参数化的序列,我们称之为二进制克隆(binary cloning),最终产生了一个非凸二次约束二次规划(QCQP)问题。
  3. 提供了QCQP问题的多项式时间可证明最优算子。因为QCQP是强烈非凸的以及难以全局求解,所以我们提出了一个经验上紧的半定规划(SDP)松弛方法。我们证明了虽然单纯的松弛方法不是紧的因此实际上表现不佳,但我们提出的方法能够保持紧度,甚至是在观测到95%外点的情况下。我们的方法是可证明最优的,因为它提供了一种检查结果解最优性的方法,并在实际问题中计算最优解。据我们所知,这是第一个解决拥有可证明最优性保证的鲁棒Wahba问题的多项式时间方法。

算法流程

1. Wahba问题数学模型

给定两组向量 a i , b i ∈ R 3 , i = 1 , . . . , N a_i, b_i \in\mathbb{R}^3, i=1,...,N ai,biR3,i=1,...,N,Wahba问题被建模为一个最小二乘问题
m i n R ∈ S O ( 3 ) ∑ i = 1 N w i 2 ∣ ∣ b i − R a i ∣ ∣ 2 \mathop{min}\limits_{R \in SO(3)}\sum\limits_{i=1}^N w_i^2||b_i-Ra_i||^2 RSO(3)mini=1Nwi2biRai2

2. 鲁棒Wahba问题数学模型

使用截断最小二乘(TLS)代价函数,则原始Wahba问题转换为鲁棒Wahba问题 m i n R ∈ S O ( 3 ) ∑ i = 1 N m i n ( 1 σ i 2 ∣ ∣ b i − R a i ∣ ∣ 2 , c ˉ 2 ) \mathop{min}\limits_{R \in SO(3)}\sum\limits_{i=1}^N min( \frac{1}{\sigma_i^2}||b_i-Ra_i||^2, \bar{c}^2) RSO(3)mini=1Nmin(σi21biRai2,cˉ2)

3. 四元数参数化的鲁棒Wahba问题

向量 a ∈ R 3 a\in\mathbb{R}^3 aR3 的旋转可以用单位四元数乘积来表示,即
[ R a 0 ] = q ⊗ a ^ ⊗ q − 1 \begin{bmatrix} Ra \\ 0 \end{bmatrix} = q\otimes\hat{a} \otimes q^{-1} [Ra0]=qa^q1其中齐次化 a ^ = [ a T 0 ] T \hat{a}=[a^T 0]^T a^=[aT0]T
使用单位四元数参数化旋转,基于四元数的鲁棒Wahba问题为
m i n q ∈ S 3 ∑ i = 1 N m i n ( 1 σ i 2 ∣ ∣ b i ^ − q ⊗ a ^ i ⊗ q − 1 ∣ ∣ 2 , c ˉ 2 ) \mathop{min}\limits_{q \in S^3}\sum\limits_{i=1}^N min( \frac{1}{\sigma_i^2}||\hat{b_i}-q\otimes\hat{a}_i \otimes q^{-1}||^2, \bar{c}^2) qS3mini=1Nmin(σi21bi^qa^iq12,cˉ2)其中定义 a ^ i ≐ [ a i T 0 ] T \hat{a}_i \doteq [a_i^T 0]^T a^i[aiT0]T b ^ i ≐ [ b i T 0 ] T \hat{b}_i \doteq [b_i^T 0]^T b^i[biT0]T

4. 混合整数规划问题

引入二值变量 θ i , i = 1 , . . . , N \theta_i, i=1,..., N θi,i=1,...,N,则基于四元数的鲁棒Wahba问题可以重写为一个混合整数规划问题
m i n q ∈ S 3 θ i = { ± 1 } ∑ i = 1 N 1 + θ i 2 ∣ ∣ b ^ i − q ⊗ a ^ i ⊗ q − 1 ∣ ∣ 2 σ i 2 + 1 − θ i 2 c ˉ 2 \mathop{min}\limits_{ q \in S^3 \atop \theta_i=\left \{ \pm1 \right \} }\sum\limits_{i=1}^N \frac{1+\theta_i}{2}\frac{||\hat{b}_i-q\otimes\hat{a}_i \otimes q^{-1}||^2}{\sigma_i^2} + \frac{1-\theta_i}{2}\bar{c}^2 θi={±1}qS3mini=1N21+θiσi2b^iqa^iq12+21θicˉ2这样就可以去掉TLS代价函数中的 “ m i n min min”,同时二值变量 { θ i } i = 1 N \left \{ \theta_i\right \}^N_{i=1} {θi}i=1N决定了测量值是内点还是外点,显然内点时 θ i = + 1 \theta_i=+1 θi=+1,外点时 θ i = − 1 \theta_i = -1 θi=1

5. N+1个四元数的优化问题

定义N个四元数 q i ≐ θ i q , i = 1 , . . . , N q_i\doteq\theta_i q, i=1,...,N qiθiq,i=1,...,N,则混合整数规划问题可以重写为 N+1 个四元数优化问题
m i n q ∈ S 3 q i = { ± q } ∑ i = 1 N ∣ ∣ b ^ i − q ⊗ a ^ i ⊗ q − 1 + q T q i b ^ i − q ⊗ a ^ i ⊗ q i − 1 ∣ ∣ 2 4 σ i 2 + 1 − q T q i 2 c ˉ 2 \mathop{min}\limits_{ q \in S^3 \atop q_i=\left \{ \pm q \right \} }\sum\limits_{i=1}^N \frac{||\hat{b}_i-q\otimes\hat{a}_i \otimes q^{-1}+q^Tq_i \hat{b}_i-q \otimes \hat{a}_i \otimes q_i^{-1}||^2}{4\sigma_i^2} + \frac{1-q^Tq_i}{2}\bar{c}^2 qi={±q}qS3mini=1N4σi2b^iqa^iq1+qTqib^iqa^iqi12+21qTqicˉ2该问题也可以称为 binary cloning,显然内点时 q i = q q_i=q qi=q,外点时 q i = − q q_i=-q qi=q

6. QCQP问题

将上述 N+1 个四元数堆叠起来,定义一个列向量 x = [ q T q 1 T . . . q N T ] T x=[q^T q_1^T ... q_N^T]^T x=[qTq1T...qNT]T,则 binary cloning 问题等价于一个二次约束二次规划问题
m i n x ∈ R 4 ( N + 1 ) q i = { ± q } ∑ i = 1 N x T Q i x \mathop{min}\limits_{ x \in \mathbb{R}^{4(N+1)} \atop q_i=\left \{ \pm q \right \} }\sum\limits_{i=1}^N x^TQ_ix qi={±q}xR4(N+1)mini=1NxTQix s u b j e c t    t o x q T x q = 1 subject \ \ to \quad x^T_qx_q=1 subject  toxqTxq=1 x q i x q i T = x q x q T , ∀ i = 1 , . . . , N x_{q_i}x^T_{q_i}=x_qx^T_q, \forall i=1, ..., N xqixqiT=xqxqT,i=1,...,N 其中 Q i ∈ R 4 ( N + 1 ) × 4 ( N + 1 ) ( i = 1 , . . . , N ) Q_i \in \mathbb{R}^{4(N+1) \times 4(N+1)} (i=1, ..., N) QiR4(N+1)×4(N+1)(i=1,...,N) 是依赖于3D向量 a i a_i ai b i b_i bi 的已知对称矩阵,可以通过推导得出 [ Q i ] u v = { Q i i i f    u = q i    a n d    v = q i Q 0 i i f    u = q    a n d    v = q i    o r    u = q i    a n d    v = q 0 4 × 4 o t h e r w i s e [Q_i]_{uv} = \left\{ \begin{array}{lcl} Q_{ii} \quad if \ \ u=q_i \ \ and \ \ v=q_i \\ Q_{0i} \quad if \ \ u=q \ \ and \ \ v=q_i \ \ or \ \ u=q_i \ \ and \ \ v=q \\ 0_{4 \times 4} \quad otherwise \end{array} \right. [Qi]uv=Qiiif  u=qi  and  v=qiQ0iif  u=q  and  v=qi  or  u=qi  and  v=q04×4otherwise其中 Q i i = ( ∣ ∣ b i ∣ ∣ 2 + ∣ ∣ a i ∣ ∣ 2 ) I 4 + 2 Ω 1 ( b ^ i ) Ω 2 ( a ^ i ) 2 σ i 2 + c ˉ 2 2 I 4 Q_{ii}=\frac{(||b_i||^2+||a_i||^2)I_4+2\Omega_1(\hat{b}_i)\Omega_2(\hat{a}_i)}{2\sigma^2_i}+\frac{\bar{c}^2}{2}I_4 Qii=2σi2(bi2+ai2)I4+2Ω1(b^i)Ω2(a^i)+2cˉ2I4 Q 0 i = ( ∣ ∣ b i ∣ ∣ 2 + ∣ ∣ a i ∣ ∣ 2 ) I 4 + 2 Ω 1 ( b ^ i ) Ω 2 ( a ^ i ) 4 σ i 2 − c ˉ 2 4 I 4 Q_{0i}=\frac{(||b_i||^2+||a_i||^2)I_4+2\Omega_1(\hat{b}_i)\Omega_2(\hat{a}_i)}{4\sigma^2_i}-\frac{\bar{c}^2}{4}I_4 Q0i=4σi2(bi2+ai2)I4+2Ω1(b^i)Ω2(a^i)4cˉ2I4,那么 ∑ i = 1 N q i T Q i i q i + 2 q T Q 0 i q i = ∑ i = 1 N x T Q i x \sum\limits_{i=1}^N q^T_iQ_{ii}q_i+2q^TQ_{0i}q_i = \sum\limits_{i=1}^N x^TQ_ix i=1NqiTQiiqi+2qTQ0iqi=i=1NxTQix

7. 半定松弛

因为二次等式约束是非凸的,所以上述 QCQP 问题仍然是非凸且NP-hard的,之后就需要对该问题开发一个凸半定规划松弛。
首先定义 Q ≐ ∑ i = 1 N Q i Q \doteq \sum\limits_{i=1}^N Q_i Qi=1NQi,然后定义 Z = x x T = [ q q T q q 1 T . . . q q N T ∗ q q 1 T . . . q q N T . . . . . . . . . . . . . . . . . . ∗ ∗ . . . q N q N T ] Z=xx^T=\begin{bmatrix} &qq^T & qq_1^T & ... & qq_N^T \\ &* &qq_1^T &... &qq_N^T \\ &. &. &... &. \\ &. &. &... &.\\ &. &. &... &.\\ &* &* &... &q_Nq_N^T\end{bmatrix} Z=xxT=qqT...qq1Tqq1T.....................qqNTqqNT...qNqNT可以得到 ∑ i = 1 N x T Q i x = x T Q x = t r ( Q x x T ) = t r ( Q Z ) \sum\limits_{i=1}^Nx^TQ_ix=x^TQx=tr(Qxx^T)=tr(QZ) i=1NxTQix=xTQx=tr(QxxT)=tr(QZ)那么QCQP问题就等价于以下的非凸规划 m i n Z ⪰ 0    t r ( Q Z ) \mathop{min}\limits_{ Z \succeq 0 } \ \ tr(QZ) Z0min  tr(QZ) s u b j e c t   t o    t r ( [ Z ] q q ) = 1 subject \ to \ \ tr([Z]_{qq})=1 subject to  tr([Z]qq)=1 [ Z ] q i q i = [ Z ] q q , ∀ i = 1 , . . . , N [Z]_{q_iq_i}=[Z]_{qq}, \forall i=1, ..., N [Z]qiqi=[Z]qq,i=1,...,N r a n k ( Z ) = 1 rank(Z)=1 rank(Z)=1上述非凸问题中的非凸性就显而易见了,因为唯一的非凸性就是秩1约束了,所以只需要将秩约束直接去掉就可以得到标准半定规划松弛
m i n Z ⪰ 0    t r ( Q Z ) \mathop{min}\limits_{ Z \succeq 0 } \ \ tr(QZ) Z0min  tr(QZ) s u b j e c t   t o    t r ( [ Z ] q q ) = 1 subject \ to \ \ tr([Z]_{qq})=1 subject to  tr([Z]qq)=1 [ Z ] q i q i = [ Z ] q q , ∀ i = 1 , . . . , N [Z]_{q_iq_i}=[Z]_{qq}, \forall i=1, ..., N [Z]qiqi=[Z]qq,i=1,...,N但是上述标准半定规划松弛对于存在外点的测量值并不能保持紧度,所以在此基础上增加冗余约束从而加强半定规划松弛的紧度,得到冗余约束半定规划松弛,这里称为 QUASAR 算法 m i n Z ⪰ 0    t r ( Q Z ) \mathop{min}\limits_{ Z \succeq 0 } \ \ tr(QZ) Z0min  tr(QZ) s u b j e c t   t o    t r ( [ Z ] q q ) = 1 subject \ to \ \ tr([Z]_{qq})=1 subject to  tr([Z]qq)=1 [ Z ] q i q i = [ Z ] q q , ∀ i = 1 , . . . , N [Z]_{q_iq_i}=[Z]_{qq}, \forall i=1, ..., N [Z]qiqi=[Z]qq,i=1,...,N [ Z ] q q i = [ Z ] q q i T , ∀ i = 1 , . . . , N [Z]_{qq_i}=[Z]_{qq_i}^T, \forall i=1, ..., N [Z]qqi=[Z]qqiT,i=1,...,N [ Z ] q i q j = [ Z ] q i q j T , ∀ 1 ≤ i ≤ j ≤ N [Z]_{q_iq_j}=[Z]_{q_iq_j}^T, \forall 1\le i \le j \le N [Z]qiqj=[Z]qiqjT,1ijN

8. 鲁棒性/紧度的认证

如果上述凸的半定规划松弛的最优解 Z ∗ Z^* Z 秩为1,那么 Z ∗ Z^* Z 可以分解为 Z ∗ = ( x ∗ ) ( x ∗ ) T Z^*=(x^*)(x^*)^T Z=(x)(x)T,且 x ≐ [ ( q ∗ ) T   ( q 1 ∗ ) T   . . .   ( q N ∗ ) T ] T x \doteq [(q^*)^T \ (q_1^*)^T \ ... \ (q_N^*)^T]^T x[(q)T (q1)T ... (qN)T]T 是非凸 QCQP 问题的全局最优解。

实验结果

1. 标准半定规划松弛和冗余约束半定规划松弛比较

在这里插入图片描述
从上面左图可以看出,在没有外点的时候,两种松弛都是紧的;但当测量值中包含越来越多外点时标准松弛变得越来越松散,并且在40%外点率时直接失效;相反,无论外点率为多大,QUASAR一直能够保持紧度。通过上面右图可以进一步确认紧松弛(也就是QUASAR)能够保持更精准旋转估计

2. Benchmark测试

QUASAR和闭式解(Wahba),RANSAC,FGR(Fast Global Registration)以及GORE(Guaranteed Outlier Removal)方法进行比较
外点率不同(0-90%),固定内点噪声为较低水平(0.01)的结果:
在这里插入图片描述
外点率不同(0-90%),固定内点噪声为较高水平(0.1)的结果:
在这里插入图片描述
极端外点率(91-96%)的结果
在这里插入图片描述

3. 应用:图像拼接

使用SURF特征描述子匹配和建立对应点关系,然后使用QUASAR计算两个相机帧之间的相对旋转 R R R,结果如下
在这里插入图片描述
可以看到,QUASAR在外点很多以及两张图像重叠区域较小时仍然能够进行精准拼接,效果不错。

总结

这个工作提出了一个多项式时间的可证实最优解的算法,用于Wahba问题的求解。虽然该方法很鲁棒,计算效率也比较理想(多项式时间),但还是有一些问题的,实验中的问题规模最大只是100,这里受限制的原因是通用的SDP算子在大规模问题上会计算很慢,可以预见该方法在大规模点云重定位上会表现不佳,所以有一个未来的研究方向:开发快速专用的SDP算子,可以参考 IJRR18 的经典论文"SE-Sync: a certifiably correct algorithm for synchronization over the Special Euclidean group."
之前介绍过该作者 TRO20 TEASER 的工作,里面的旋转估计框架就是这篇ICCV文章里的方法,所以该工作是 TEASER 的前置工作,并且 Supplementary Material 里有各种引理,定理的证明,包括如何利用四元数的转换推导,QCQP中二次目标和二次约束的构建,Lagrangian duality和Karush-Kuhn-Tucker (KKT) 的使用和证明,再一次说明作者一系列工作都很solid,非常值得学习和研究。之后将会为大家带来 TEASER 中另一个前置工作 RSS2019 “A Polynomial-time Solution for Robust Registration with Extreme Outlier Rates”,敬请期待。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于四元数的存在外点Wahba问题的可证明最优解 的相关文章

  • AI理论随笔-对称矩阵、正交矩阵与特征向量,特征值(2)

    一 如果 xff1a A A T 61 E AA T 61 E A A T 61 E
  • 英文过滤停用词

    span class token triple quoted string string 34 34 34 Created on Sun Nov 13 09 14 13 2016 64 author daxiong 34 34 34 spa
  • C语言随笔-去掉仅有\n的行

    include lt stdio h gt int main int argc const char argv char str 128 char linep strcpy str 34 12 35 56 n12 33 87 n n n n
  • python3.6-深入浅出视频

    课程收益 适合人群 python小白 xff0c 大数据和机器学习编程程序员 上机实践为主线 以最快的速度上手 快速入门 xff0c 还学到了python3的核心知识 https edu csdn net course detail 989
  • 数学之路(3)-机器学习(3)-机器学习算法-神经网络[11]

    多层感知器的代码 xff0c 需要一个比较复杂的调试过程 xff0c 不过也有一些方法来加快这一速度 xff0c 其中有几个地方要注意 xff1a 1 输入层 输出层 中间层的学习率和动量参数不能一样 xff0c 2 3个层的权值策略不能一
  • opencv中ArUco识别

    姿态估计 xff08 Pose estimation xff09 在 计算机视觉领域扮演着十分重要的角色 xff1a 机器人导航 增强现实以及其它 这一过程的基础是找到现实世界和图像投影之间的对应点 这通常是很困难的一步 xff0c 因此我
  • PID算法的EXCEL模拟实现

    增量式PID算法公式 xff1a 在表格里可以看见PID算法在目标值和实际值差异较大时 xff0c 控制量也很大 xff0c 主要是比例环节起到主要的调节作用 xff0c 在目标值和实际值相等时 xff0c 主要的控制量是积分环节 xff0
  • 三极管基本知识

    导通条件 NPN型三极管的导通条件是C点电位 gt B点电位 gt E点电位 xff0c 三极管饱和导通的条件是Ub gt Ue Ub gt Uc PNP型三极管的导通条件是E点电位 gt B点电位 gt C点电位 xff0c 三极管饱和导
  • 5.FreeRTOS学习笔记- 互斥量

    基本概念 互斥量又称互斥信号量 本质是信号量 是一种特殊的二值信号量 互斥量 支持互斥量所有权 递归访问以及防止优先级翻转的特性 用于实现对临界资源 如显示器 打印机 的独占式访问 任意时刻互斥量的状态只有两种 开锁或闭锁 持有该互斥量的任
  • could not stop cortex-m device 问题

    出现问题原因 xff1a 调试程序过程中mdk突然奔溃 xff0c 之后就再也下载程序失败 xff0c 但是读取swd IDCODE OK 下载程序就报错 个人觉得应该是单片机内部保护了 问题图 问题处理办法 先检查3 3v和GND是否短路
  • FreeRTOS系列|任务堆栈

    任务堆栈 运行freertos系统的大部分都是资源有限的MCU xff0c 所以对于RAM我们都要考虑尽量的节省 xff0c 避免资源浪费 下面将会基于Cortex M3内核的STM32F103型MCU来介绍FreeRTOS任务栈大小的确定
  • 9. GD32F103C8T6 定时器2的更新中断触发定时器0开始计时

    1 初始化定时器TIM0 span class token comment 定时器的基本初始化和打开更新中断 enable 是否使能定时器 span span class token keyword static span span cla
  • 4.GD32F103C8T6 串口中断方式接收数据和输出重定向

    1 串口基本初始化 span class token comment 基本初始化函数 span span class token keyword void span span class token function usart base
  • 5.GD32F103C8T6 串口DMA+IDLE方式接收数据

    1 串口的基本初始化 span class token keyword void span span class token function usart base init span span class token punctuatio
  • 26. GD32F103C8T6入门教程-CAN外设回环测试

    1 基础知识 相关stm32CAN外设 外设特征 3个发送邮箱 2个深度为3个邮箱的接收FIFO 自动重传 自动唤醒 发送 接收时间戳 最大速率1Mbps 3种工作模式 睡眠模式 可以检车总线状态自动唤醒 初始化工作模式 如果需要对 CAN
  • stm32 操作W25Q256 W25Q16 spi flash

    硬件连接 本函数库来自正点原子官方 xff0c 本人稍作修改和添加注释 W25Q16 2M Byte W25Q256 32M Byte spi 配置 2022 7 27 经过测试 华邦的 W25Q256JV 32M 字节 容量的spi fl
  • ESP32学习笔记20-dac

    20 DAC 20 1概述 ESP32 有两个 8 位数模转换器 DAC 通道 分别连接到 GPIO25 通道 1 和 GPIO26 通道 2 每个 DAC 通道可以将数字值 0 255 转换成模拟电压 0 Vref out voltage
  • ESP32学习笔记21-esp32启动流程

    24 esp32启动流程 第一 xff0c 第二阶段启动流程 第三阶段的详细流程
  • ESP32学习笔记22-TWAI-CAN

    22 TWAI CAN 22 1概述 22 1 1参考博客 ESP32 基于自带控制器实现CAN总线通信 上 知乎 zhihu com ESP32 基于自带控制器实现CAN总线通信 下 知乎 zhihu com 22 1 2 ESP32 T
  • Python str和bytes的相互转换

    str0 61 39 abc 39 a 61 bytes str0 39 utf 8 39 print type str0 str0 print type a a print 39 39 c 61 bytes 97 98 99 100 pr

随机推荐

  • wxpython 基本的控件 (按钮)

    在wxPython 中有很多不同类型的按钮 这一节 xff0c 我们将讨论文本按钮 位图按钮 开关按钮 xff08 toggle buttons xff09 和通用 xff08 generic xff09 按钮 如何生成一个按钮 xff1f
  • FreeRTOS系列|处理器利用率

    处理器利用率 1 处理器利用率统计的作用 处理器利用率其实就是系统运行的程序占用的CPU资源 xff0c 表示机器在某段时间程序运行的情况 xff0c 如果这段时间中 xff0c 程序一直在占用CPU的使用权 xff0c 那么可以认为CPU
  • QT 多线程使用QTcpSocket

    本人亲测使用moveToThread xff08 xff09 的方式可以 xff1b 不存在报错 xff0c 警告 include 34 widget h 34 include 34 ui widget h 34 Widget Widget
  • ESP8266天猫精灵接入流程

    Blinker天猫精灵接入流程 设备上线 设置接入的设备类型 设置接入设备的auth Key 设置SSID PSWD 或者选择 ESPTOUCH等配网方式 下载代码等待设备接入上线成功 authKey对应的设备若需要更换接入的设备类型 xf
  • 存储器的分类

    目录 01 ROM 02 非易失性RAM 2 1原理 2 2发展 2 3 摩尔定律 03 易失性RAM 3 1原理 3 2发展 3 3总结 04 总结 储器类型有很多 xff0c 常见的有ROM xff08 Read onlymemory只
  • RT - thread学习(一)

    目录 一 RT thread介绍 二 RT thread移植 首先我们先在官网获取 编辑 对无关的文件进行剪裁 剪裁后的内核文件移植到sdk文件 配置内核文件 一 RT thread介绍 rt thread是国产的一款开源的实时操作系统 这
  • 机器学习基本概念

    文章目录 深度学习和机器学习NLP xff08 Natural language processing xff09 Confusion Matrix 混淆矩阵ROC xff08 Receiver Operator Characteristi
  • ROS Kinetic中OpenCV使用

    ROS Kinetic中OpenCV使用 本文主要记录了ROS Kinetic中OpenCV的使用 xff0c Kinetic完全安装中本身自带了Opencv3 3 1 xff0c 因此在ROS中可以直接用ROS自带的Opencv3 3 1
  • ROS下gazebo不能加载willowgarage世界

    在打开gazebo ros打开williowgarage的时候 xff0c 能够找到willowgarage world的文件 xff0c 但是gazebo不能够加载这个模型 xff0c 主要原因是gazebo的model里面并没有mode
  • Mac OS下安装串口调试工具minicom

    最近在做一个Mac下的ssh调试工具 xff0c 但是出现了一点问题 后来发现居然Mac下有串口调试工具可以用 xff0c 所以果断换串口了 xff0c 是普通PL2303芯片的usb转串口线 接下来说下简单的安装步骤吧 我是勤劳的搬砖工
  • Eclipse等IDE配置Anaconda/Python3开发环境(win10_x64)

    分诊台 正所谓 洞庭揽物 xff0c 各有所怀 xff0c 博客点击 xff0c 也是各有所需 为了能让读者节约时间 xff0c 本小百姓 xff0c 写博客时尽力将博客内容各部分内容解耦 xff0c 但仍保持一定的连贯性 xff0c 并参
  • Linux(树莓派)系统中判断WiFi是否连接上路由器的方法

    之前 xff08 https blog csdn net u010299133 article details 105823339 xff09 介绍过在Linux系统中使用wpa supplicant连接到指定的WiFi路由器的方法 xff
  • FreeRTOS系列|任务相关API函数

    任务相关API函数 1 任务相关API函数 FreeRTOS中有很多与任务相关的API函数 xff0c 大多数是辅助函数 下表是这些与任务相关的API函数功能和描述简介 函数名功能描述uxTaskPriorityGet 查询某个任务的优先级
  • 无人机通信协议:MavLink协议使用

    mavlink的数据封装的结构体以及封装解析的函数都在mavlink代码库中的头文件中 主要的结构体 xff1a E mavlink mavlink include v1 0 mavlink types h MAVPACKED typede
  • 【计算机视觉】Lecture 16:平面单应变换

    动机 xff1a 在平面上的点 回顾 xff1a 正向投影 世界坐标系到相机坐标系的变换 透视矩阵方程 xff08 相机坐标系到成像坐标系 xff09 成像坐标系到像素坐标系 从成像坐标 xff08 x xff0c y xff09 到像素坐
  • 【计算机视觉】Lecture 20:八点法

    提醒 本质 基础矩阵 本质矩阵和基础矩阵都是 3x3 的矩阵 xff0c 用于 编码 两个视图的对极几何 动机 xff1a 给定一张图像中的一个点 xff0c 乘以本质 基础矩阵将告诉我们在第二个视图中沿着哪个极线搜索 本质 基础矩阵总结
  • 【计算机视觉】Lecture 23:光流估计

    流估计 主要概念 xff1a 亮度08好恒定方程 孔径问题 Lucas Kanade算法 回顾 xff1a 由于自身运动产生的场 流 xff08 Flow xff09 xff1a 旋转分量不依赖于场景结构 平移分量随场景 Z 值的变化而变化
  • 【计算机视觉】Lecture 24:视频变化检测

    视频基础 每秒30帧 每一幅图像的处理时间不会太多 因此 xff0c 实时算法往往非常简单 视频图像的主要特征之一是帧间的时间一致性 在1 30秒内帧间变化不大 xff01 检测移动的对象 假设 xff1a 移动的对象是非常重要的 xff0
  • Eigen中基本和常用函数

    Eigen 中矩阵的定义 span class token macro property span class token directive keyword include span span class token string lt
  • 基于四元数的存在外点Wahba问题的可证明最优解

    论文地址 论文视频 文章导读 为什么这次要解读这篇文章 xff1f 因为上次文章 xff08 详见 TEASER 快速且可证明的点云配准算法和代码解读 xff09 旋转求解部分就是用本文中的方法 xff0c 所以本文算是TEASER方法的前