3D-2D:PnP

发布时间:2022-12-03 3D SLAM

Perspective-n-Point 是求解3D到2D点对运动的方法。它描述了已知n个3D空间点及其投影位置时,如何估计相机的位姿。
2D-2D的对极几何方法需要8个或8个以上的点对(以八点法为例),且存在初始化、纯旋转和尺度的问题。然而,如果两张图像中的特征点的3D位置已知,那么最少只需3个点对(以及至少一个额外点验证结果)就可以估计相机运动。

直接线性变换

已知一组3D点的位置,以及它们在某个相机中的投影位置,求该相机的位姿。这个问题也可以用于求解给定地图和图像时的相机状态问题。如果把3D点看成在另一个相机坐标系的点的话,也可以用来求解两个相机的相对运动问题,如果把3D点看做目标物体自身坐标系中的点的话,也可以用来求解目标物体相对相机的位姿。

考虑某个空间点 P P P,它的齐次坐标为 P = ( X , Y , Z , 1 ) T \bm{P}=(X,Y,Z,1)^T P=(X,Y,Z,1)T。在图像 I 1 I_1 I1​中,投影到特征点 x 1 = ( x 1 , y 1 , 1 ) T \bm{x}_1=( {x}_1, {y}_1,1)^T x1​=(x1​,y1​,1)T(以归一化平面齐次坐标表示)。此时,相机的位姿 R , t \bm{R},\bm{t} R,t是未知的。与单应矩阵的求解类似,我们定义增广矩阵 [ R t ] \begin{array}{l|l}[\bm{R}&\bm{t}]\end{array} [R​t]​为一个 3 × 4 3\times4 3×4的矩阵,包含了旋转与平移信息。
s ( x 1 y 1 1 ) = [ R t ] P = ( t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 t 11 t 12 ) ( X Y Z 1 ) s\begin{pmatrix} {x}_1\\ {y}_1\\1\end{pmatrix}=\begin{array}{l|l}[\bm{R}&\bm{t}]\bm{P}\end{array} =\begin{pmatrix}t_1&t_2&t_3&t_4\\t_5&t_6&t_7&t_8\\t_9&t_{10}&t_{11}&t_{12}\end{pmatrix} \begin{pmatrix} X\\Y\\Z\\1 \end{pmatrix} s⎝⎛​x1​y1​1​⎠⎞​=[R​t]P​=⎝⎛​t1​t5​t9​​t2​t6​t10​​t3​t7​t11​​t4​t8​t12​​⎠⎞​⎝⎜⎜⎛​XYZ1​⎠⎟⎟⎞​
用最后一行把 s s s消去,得到两个约束:
u 1 = t 1 X + t 2 Y + t 3 Z + t 4 t 9 X + t 10 Y + t 11 Z + t 12 v 1 = t 5 X + t 6 Y + t 7 Z + t 8 t 9 X + t 10 Y + t 11 Z + t 12 u_1=\dfrac{t_1 X+t_2 Y+t_3 Z +t_4}{t_9X+t_{10}Y+t_{11}Z+t_{12}}\\ v_1=\dfrac{t_5 X+t_6 Y+t_7 Z +t_8}{t_9X+t_{10}Y+t_{11}Z+t_{12}} u1​=t9​X+t10​Y+t11​Z+t12​t1​X+t2​Y+t3​Z+t4​​v1​=t9​X+t10​Y+t11​Z+t12​t5​X+t6​Y+t7​Z+t8​​
为简化表示,定义 T \bm{T} T的行向量:
t 1 = ( t 1 , t 2 , t 3 , t 4 ) T t 2 = ( t 1 , t 2 , t 3 , t 4 ) T t 1 = ( t 1 , t 2 , t 3 , t 4 ) T \bm{t}_1=\begin{pmatrix}t_1,t_2,t_3,t_4\end{pmatrix}^T\\ \bm{t}_2=\begin{pmatrix}t_1,t_2,t_3,t_4\end{pmatrix}^T\\ \bm{t}_1=\begin{pmatrix}t_1,t_2,t_3,t_4\end{pmatrix}^T t1​=(t1​,t2​,t3​,t4​​)Tt2​=(t1​,t2​,t3​,t4​​)Tt1​=(t1​,t2​,t3​,t4​​)T
于是有
t 1 T P − t 3 T P u 1 = 0 t 2 T P − t 3 T P v 1 = 0 \bm{t}_1^T\bm{P}-\bm{t}_3^T\bm{P}u_1=0\\ \bm{t}_2^T\bm{P}-\bm{t}_3^T\bm{P}v_1=0 t1T​P−t3T​Pu1​=0t2T​P−t3T​Pv1​=0
注意 t \bm{t} t是待求的变量,每个特征点提供了两个关于 t t t的线性约束。假设一共有 N N N个特征点,则可以列出如下线性方程组:
( P 1 T 0 − u 1 P 1 T 0 P 1 T − v 1 P 1 T ⋮ ⋮ ⋮ P N T 0 − u N P N T 0 P N T − v N P N T ) ( t 1 t 2 t 3 ) = 0 \begin{pmatrix} \bm{P}_1^T&0&-u_1\bm{P}_1^T\\ 0&\bm{P}_1^T&-v_1\bm{P}_1^T\\ \vdots&\vdots&\vdots\\ \bm{P}_N^T&0&-u_N\bm{P}_N^T\\ 0&\bm{P}_N^T&-v_N\bm{P}_N^T \end{pmatrix} \begin{pmatrix} \bm{t}_1\\\bm{t}_2\\\bm{t}_3 \end{pmatrix} =0 ⎝⎜⎜⎜⎜⎜⎛​P1T​0⋮PNT​0​0P1T​⋮0PNT​​−u1​P1T​−v1​P1T​⋮−uN​PNT​−vN​PNT​​⎠⎟⎟⎟⎟⎟⎞​⎝⎛​t1​t2​t3​​⎠⎞​=0
t \bm{t} t一共有12维,因此最少通过6对匹配点即可实现矩阵T的线性求解,这种方法称为DLT。当匹配点大于6对时,也可以使用SVD等方法对超定方程求最小二乘解。
在DLT求解中我们直接将 T \bm{T} T矩阵看成了12个未知数,忽略了它们之间的联系。因为旋转矩阵 R ∈ S O ( 3 ) \bm{R}\in \rm SO(3) R∈SO(3),用DLT求出的解不一定满足该约束,它是一个一般矩阵。平移向量比较好办,它属于向量空间。对于旋转矩阵 R \bm{R} R,我们必须针对DLT估计的 T \bm{T} T左侧 3 × 3 3\times 3 3×3矩阵块,寻找一个最好的旋转矩阵对它进行近似。这可以由QR分解完成,也可以像这样来计算:
R ← ( R R T ) − 1 2 R \bm{R}\leftarrow (\bm{RR}^T)^{-\frac{1}{2}}\bm{R} R←(RRT)−21​R
在这里插入图片描述

最小化重投影误差求解PnP

前面说的线性方程,往往是先求相机位姿,再求空间点位置,非线性优化则是把它们看成优化变量,放在一起优化。
这是一种非常通用的求解方式,我可以用它对PnP和ICP给出的结果进行优化。这一类把相机和三维点放在一起进行最优化的问题,统称为Bundle Adjustment。

考虑n个三维空间点P及其投影p,我们希望计算相机的位姿 R , t \bm{R},\bm{t} R,t,它的李群表示为 T \bm{T} T 。假设某空间点坐标为 P i = [ X i , Y i , Z i ] T \bm{P}_i =[X_i ,Y_i ,Z_i ]^T Pi​=[Xi​,Yi​,Zi​]T ,其投影的像素坐标为 q i = [ u i , v i ] T \bm{q}_i =[u_i ,v_i ]^T qi​=[ui​,vi​]T 。
s i [ u i v i 1 ] = K T [ X i Y i Z i 1 ] s_i\begin{bmatrix}u_i\\v_i\\1\end{bmatrix} =\bm{KT}\begin{bmatrix}X_i\\Y_i\\Z_i\\1\end{bmatrix} si​⎣⎡​ui​vi​1​⎦⎤​=KT⎣⎢⎢⎡​Xi​Yi​Zi​1​⎦⎥⎥⎤​
写成矩阵形式:
s i q i = K T P i s_i\bm{q}_i=\bm{KTP}_i si​qi​=KTPi​
这个式子隐含了一次从齐次坐标到非齐次的转换,由于相机位姿未知及观测点的噪声,该等式存在一个误差。因此,我们把误差求和,构建最小二乘问题,然后寻找最好的相机位姿,使它最小化:
T ∗ = arg ⁡ min ⁡ T 1 2 ∑ i = 1 n ∥ u i − 1 s i K T P i ∥ 2 2 \bm{T}^{\ast }=\arg \min _{\bm{T}}\dfrac{1}{2}\sum ^{n}_{i=1}\left\| \bm{u}_{i}-\dfrac{1}{s_{i}}\bm{KTP}_{i}\right\| _{2}^{2} T∗=argTmin​21​i=1∑n​∥∥∥∥​ui​−si​1​KTPi​∥∥∥∥​22​
该问题的误差项,是将3D点的投影位置与观测位置作差,所以称为重投影误差。 用齐次坐标时,这个误差有3维。不过,由于 u \bm{u} u最后一维为1,该维度的误差一直为零, 因而我们更多时使用非齐次坐标,于是误差只有2维了。 我们通过特征匹配知道了 p 1 p_1 p1​ 和 p 2 p_2 p2​ 是同一个空间点 P P P的投影, 但是不知道相机的位姿。在初始值中, P P P的计算投影 p ^ 2 \hat{p}_2 p^​2​ 与实际的 p 2 p_2 p2​之间有一定的距离。于是我们调整相机的位姿,使得这个距离变小 。不过,由于这个调整需要考虑很多个点,所以最后追求的效果是整体误差的缩小,而每个点的误差通常不会精确为零。
在这里插入图片描述

我们需要知道每个误差项关于优化变量的导数,也就是线性化
e ( x + Δ x ) ≈ e ( x ) + J T Δ x \bm{e}\left( \bm{x}+\Delta \bm{x}\right) \approx \bm{e}\left( \bm{x}\right) +\bm{J}^{T}\Delta \bm{x} e(x+Δx)≈e(x)+JTΔx
当 e \bm{e} e为像素坐标误差(2维), x \bm{x} x为相机位姿(6维)时, J T \bm{J}^T JT将是一个 2 × 6 2\times 6 2×6的矩阵。
P ′ = ( T P ) 1 : 3 = [ X ′ , Y ′ , Z ′ ] T \bm{P}'=\left( \bm{TP}\right) _{1:3}=\left[ X',Y',Z'\right] ^{T} P′=(TP)1:3​=[X′,Y′,Z′]T
那么,相机投影模型相对于 P ′ \bm{P}' P′为
s q = K P ′ s\bm{q} =\bm{KP}' sq=KP′
展开:
[ s u s v s ] = [ f x 0 c x 0 f y c y 0 0 1 ] [ X ′ Y ′ Z ′ ] \begin{bmatrix} su \\ sv \\ s \end{bmatrix}=\begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} X' \\ Y' \\ Z' \end{bmatrix} ⎣⎡​susvs​⎦⎤​=⎣⎡​fx​00​0fy​0​cx​cy​1​⎦⎤​⎣⎡​X′Y′Z′​⎦⎤​
利用第三行消去 s s s(实际上就是 P ′ \bm{P}' P′的 Z ′ Z' Z′),得
u = f x X ′ Z ′ + c x v = f y Y ′ Z ′ + c y u=f_{x}\dfrac{X'}{Z'}+c_{x} \\ v=f_{y}\dfrac{Y'}{Z'}+c_{y} u=fx​Z′X′​+cx​v=fy​Z′Y′​+cy​
在定义了中间变量后,我们对 T \bm{T} T左乘扰动量 δ ξ \delta \bm{\xi} δξ,然后考虑 e e e的变化关于扰动量的导数。利用链式法则,可以列写如下:
∂ e ∂ δ ξ = lim ⁡ δ ξ → 0 e ( δ ξ ⊕ ξ ) − e ( ξ ) δ ξ = ∂ e ∂ P ′ ∂ P ′ ∂ δ ξ \dfrac{\partial \bm{e}}{\partial \delta \bm{\xi} }=\lim _{\delta \bm{\xi} \rightarrow 0}\dfrac{\bm{e}\left( \delta \bm{\xi} \oplus \bm{\xi} \right) -\bm{e}\left( \bm{\xi} \right) }{\delta \bm{\xi} }=\dfrac{\partial \bm{e}}{\partial \bm{P}'}\dfrac{\partial \bm{P}'}{\partial \delta \bm{\xi} } ∂δξ∂e​=δξ→0lim​δξe(δξ⊕ξ)−e(ξ)​=∂P′∂e​∂δξ∂P′​
这里的 ⊕ \oplus ⊕指李代数上的左乘扰动。第一项是误差关于投影点的导数, 已列出了变量之的关 ,易得:
∂ e ∂ P ′ = ∂ [ u − u , v − v ] T ∂ P ′ = [ ∂ u ∂ X ′ ∂ u ∂ Y ′ ∂ u ∂ Z ′ ∂ v ∂ X ′ ∂ v ∂ Y ′ ∂ v ∂ Z ′ ] = [ f x Z ′ 0 − f x X ′ Z ′ 2 0 f y Z ′ − f y Y ′ Z ′ 2 ] \dfrac{\partial \bm{e}}{\partial \bm{P}'}=\dfrac{\partial \left[ u- {u},v- {v}\right] ^{T}}{\partial \bm{P}'} =\begin{bmatrix} \dfrac{\partial u}{\partial X'} & \dfrac{\partial u}{\partial Y'} & \dfrac{\partial u}{\partial Z'} \\ \dfrac{\partial v}{\partial X'} & \dfrac{\partial v}{\partial Y'} & \dfrac{\partial v}{\partial Z'} \end{bmatrix} =\begin{bmatrix} \dfrac{f_{x}}{Z'} & 0 & -\dfrac{f_{x} X'}{Z'^{2}} \\ 0 & \dfrac{f_{y}}{Z'} & -\dfrac{f_{y}Y'}{Z'^{2}} \end{bmatrix} ∂P′∂e​=∂P′∂[u−u,v−v]T​=⎣⎢⎡​∂X′∂u​∂X′∂v​​∂Y′∂u​∂Y′∂v​​∂Z′∂u​∂Z′∂v​​⎦⎥⎤​=⎣⎢⎡​Z′fx​​0​0Z′fy​​​−Z′2fx​X′​−Z′2fy​Y′​​⎦⎥⎤​
而第二项为变换后的点关于李代数的导数 ,得:
∂ P ′ ∂ δ ξ = ∂ ( T P ) 1 : 3 ∂ δ ξ = ( T P ) 1 : 3 ⊙ = [ I − P ′ ∧ 0 T 0 T ] 1 : 3 = [ I − P ′ ∧ ] \dfrac{\partial \bm{P}'}{\partial \delta \bm{\xi} }=\dfrac{\partial \left( \bm{TP}\right)_{1:3} }{\partial \delta \bm{\xi} }=\left( \bm{TP}\right) ^{\odot}_{1:3}=\begin{bmatrix} \bm{I} & -\bm{P}'^{\wedge} \\ \bm{0}^{T} & \bm{0}^{T} \end{bmatrix}_{1:3}=\begin{bmatrix} \bm{I} & -\bm{P}'^{\wedge} \end{bmatrix} ∂δξ∂P′​=∂δξ∂(TP)1:3​​=(TP)1:3⊙​=[I0T​−P′∧0T​]1:3​=[I​−P′∧​]
这两项相乘,得 2 × 6 2\times 6 2×6的雅可比矩阵:
∂ e ∂ δ ξ = [ f x Z ′ 0 − f x X ′ Z ′ 2 − f x X ′ Y ′ Z ′ 2 f x + f x X ′ 2 Z ′ 2 − f x Y ′ Z ′ 0 f y Z ′ − f x Y ′ Z ′ 2 − f y − f y Y ′ 2 Z ′ 2 f x X ′ Y ′ Z ′ 2 f y X ′ Z ′ ] \dfrac{\partial \bm{e}}{\partial \delta \bm{\xi} }=\begin{bmatrix} \dfrac{f_{x}}{Z'} & 0 & -\dfrac{f_{x}X'}{Z'^2} & -\dfrac{f_{x}X'Y'}{Z'^2} & f_{x}+\dfrac{f_{x }X'^{2}}{Z'^{2}} & -\dfrac{f_x Y'}{Z'} \\ 0 & \dfrac{f_{y}}{Z'} & -\dfrac{f_x Y'}{Z'^2} & -f_{y}-\dfrac{f_{y}Y'^{2}}{Z'^2} & \dfrac{f_{x}X'Y'}{Z'^{2}} & \dfrac{f_{y}X'}{Z'} \end{bmatrix} ∂δξ∂e​=⎣⎢⎡​Z′fx​​0​0Z′fy​​​−Z′2fx​X′​−Z′2fx​Y′​​−Z′2fx​X′Y′​−fy​−Z′2fy​Y′2​​fx​+Z′2fx​X′2​Z′2fx​X′Y′​​−Z′fx​Y′​Z′fy​X′​​⎦⎥⎤​
这个雅可比矩阵描述了重投影误差关于相机位姿李代数的一阶变化关系 。
除了优化位姿,我们还希望优化特征点的空间位置。因此需要讨论 e \bm{e} e关于空间点 P \bm{P} P的导数。
使用链式法则,有
∂ e ∂ P = ∂ e ∂ P ′ ∂ P ′ ∂ P \dfrac{\partial \bm{e}}{\partial \bm{P}}=\dfrac{\partial \bm{e}}{\partial \bm{P}'}\dfrac{\partial \bm{P}'}{\partial \bm{P}} ∂P∂e​=∂P′∂e​∂P∂P′​
第一项在前面已经推导,关于第二项,按照定义
P ′ = ( T P ) 1 : 3 = R P + t \bm{P}'=\left( \bm{TP}\right) _{1:3}=\bm{RP+t} P′=(TP)1:3​=RP+t
P ′ \bm{P}' P′对 P \bm{P} P求导得 R \bm{R} R。于是:
∂ e ∂ P = [ f x Z ′ 0 − f x X ′ Z ′ 2 0 f y Z ′ − f y Y ′ Z ′ 2 ] R \dfrac{\partial \bm{e}}{\partial \bm{P}}=\begin{bmatrix} \dfrac{f_{x}}{Z'} & 0 & -\dfrac{f_x X'}{Z'^2} \\ 0 & \dfrac{f_y}{Z'} & -\dfrac{f_yY'}{Z'^2} \end{bmatrix}\bm{R} ∂P∂e​=⎣⎢⎡​Z′fx​​0​0Z′fy​​​−Z′2fx​X′​−Z′2fy​Y′​​⎦⎥⎤​R

我们推导出了观测相机方程关于相机位姿和特征点的两个Jacobian矩阵,它们能够子优化过程中提供迭代的方向,之后使用高斯-牛顿法或LM方法迭代求解最优解即可。

更多相关推荐


在“Extend the Omniverse”比赛中构建用于 3D 世界的工具

各个行业的开发人员正在构建3D工具和应用程序,以帮助团队在艺术、设计、制造等领域创建虚拟世界。NVIDIAOmniverse是一个可扩展平台,可以用来进行全保真设计、模拟以及开发基于USD的工作流程。该平台有一个不断扩大的开发者生态系统,其中的开发者们正在构建基于Python的扩展程序。NVIDIA过去曾发起过一个使用OmniverseCreate应用构建惊艳3D模拟的比赛。NVIDIA现已宣布举...

Datasets and Metrics for 3D object detection(自动驾驶领域的数据集)

主流多模态数据集的比较如下表:KITTI自动驾驶领域最早的数据集之一,该数据集提供立体彩色图像,激光雷达点云和GPS坐标。该数据集支持多种任务,包括立体匹配,视觉里程计,3D跟踪和3D目标检测等。该数据使用搭载64线激光雷达、4个相机和GPS/IMU组合系统的车进行收集数据。拥有包含城市、住宅和道路的超20个场景。KITTI标注了汽车”,“面包车”,“卡车”,“行人”,“人(坐着)”,“骑自行车的...

移动Web的3D空间转换、动画效果

发布时间:2022-10-06 动画 3D 前端 HTML
一.3D空间转换 1.绘制一个简单的3D立体小盒子<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=...

从零开始开始一起学SLAM(9)神奇的单应矩阵

发布时间:2019-06-26 SLAM
小白最近在看文献时总是碰到一个奇怪的词叫“homographymatrix”,查看了翻译,一般都称作“单应矩阵”,更迷糊了。正所谓:“每个字都认识,连在一块却不认识”就是小白的内心独白。查了一下书上的推导,总感觉有种“硬凑”的意味,于是又找到了师兄。。。神奇的单应矩阵小白:师兄~单应矩阵是什么鬼啊?我看书上的推导,每一步勉强能看懂,但还是不太理解其背后的物理意义,感觉不能转化为自己理解的方式啊师兄...

施努卡: 3D机器视觉为什么难普及?

发布时间:2021-12-06 人工智能 3D VR 机器视觉
著名心理学家赤瑞特拉(Treicher)曾经验证过一组数据,人类获取的信息83%来自视觉,11%来自听觉。显然,要实现机器智能,迈向智能化时代,视觉信息非常关键,特别是3D视觉。比如今年最火的元宇宙,要将现实世界在虚拟世界实现映射,需要与3D视觉密切相关的XR。VR在2015年迎来了投资热潮,随后的2016年,被称为“VR元年”。当时VR设备的眩晕感以及内容不够丰富等原因,让2016年没能成为“V...

废了,一开始学建模拥有这些资料就好了

很多年前入职游戏公司,最近在带建模小白,清楚大家需掌握什么在这里整理好了我上岸前用的全套且帮助很大的建模资料教程,虽已经用不上了,那就找小伙伴们继承这些资料!重点是🈚常不要💰❗️具体🈶:🖥软件安装包💾3dmax各个版本安装包💾Maya各个版本安装包💾Zbrush各个版本安装包等其他各类辅助软件📚电子书类:📃人体解剖雕塑学📃3Dmax快捷键操作📃Maya快捷键操作📃Zbrush快捷键操作📃行业模型就...

[转]Unity-UI-实现文本框内容自动滚动

发布时间:2022-11-18 UNITY 3D 游戏
Unity文本框内容自动滚动效果的实现-个人纪录用因为项目需求的问题,不需要手动滑动,这里就只展示自动滚动的效果一、通过GameObject-UI-Image新建一个图片组件 二、通过GameObject-UI-Legacy-Text新建一个文本组件并给它添加Mask组件 三、在Text里面加入自己想要的文本内容,并将文本框大小跟文本内容保证一致 四、将Text移到Image下面,此时文字只会显示...

视差和3D切割轮播图

发布时间:2019-05-07 轮播 3D
视差原理:在滚动的时候,内容和多层次的背景实现或不同速度或不同方向的运动<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><style>*{margin:0;padding:0;}div{width:100%;he...

HTML里关于空间转换3D和动画效果的实现

发布时间:2022-05-12 3D 前端 CSS3
一、3D坐标系一定要记住3个坐标轴取值的正反:X轴往右越大,是正值,否则反之Y轴往下越大,是正值,否则反之Z轴(指向我们)越大,是正值,否则反之3D位移动transform:translate3d(x,y,z);只不过在很多情况下,我们经常喜欢分开写:transform:translateX(100px);transform:translateY(100px);transform:translat...

3D空间转换

发布时间:2022-05-12 3D CSS3 CSS
一、空间转换3D3D坐标系3D坐标系比2D多了一个Z轴。一定要记住3个坐标轴取值的正反:X轴往右越大,是正值,否则反之Y轴往下越大,是正值,否则反之Z轴(指向我们)越大,是正值,否则反之3D位移有完整写法:transform:translate3d(x,y,z);只不过在很多情况下,我们经常喜欢分开写:transform:translateX(100px);transform:translateY...

CSS之transform 2D 与 3D 转换(十五)

发布时间:2022-10-24 WEB前端 3D CSS3 CSS
该文主要讲解了围绕transform属性展开的2D转换,3D转换等一系列相关属性的用法及注意事项。一、transform属性在CSS中,利用transform这个属性实现对元素进行旋转,缩放,倾斜或平移。transform属性的值可以是none或一个或多个css变换函数。transform的值不是none时,元素会创建自己的层叠上下文1.1、transform的2D变换函数属性值描述实例trans...

[新知速递02] 空间转换3D 动画

发布时间:2022-07-05 HTML CSS学习笔记 3D CSS3
一、空间转换3D3D坐标系3D坐标系比2D多了一个Z轴。一定要记住3个坐标轴取值的正反:X轴往右越大,是正值,否则反之Y轴往下越大,是正值,否则反之Z轴(指向我们)越大,是正值,否则反之3D位移有完整写法:transform:translate3d(x,y,z);只不过在很多情况下,我们经常喜欢分开写:transform:translateX(100px);transform:translateY...

3D和伪3D导航

发布时间:2022-05-27 3D HTML CSS
1.制作伪3D导航<!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title>伪3D</title> <style> /*清楚边距*/ *{ padding:0; margin:0; } /*设置整体导航的大小*/ ul{ ...

[论文阅读]SRVIO:Super Robust Visual Inertial Odometry for dynamic environments...

发布时间:2022-06-29 计算机视觉 文章阅读 SLAM
文章全名:SRVIO:SuperRobustVisualInertialOdometryfordynamicenvironmentsandchallengingLoop-closureconditions提出了一个基于“Vins-Mono”并结合了“DNN网络”的针对“动态场景”的“实时”SLAM系统。文章的主要贡献:1、最重要的贡献不是方法上的创新,而应该是给了一个好用的实时的完整的SLAM系统...

博维数孪CreateTwins—帮助文档—工具栏(3D辅助工具)

发布时间:2021-11-08 3D可视化 数据可视化 3D 数字孪生 WEBGL
3D辅助工具当选择3D对象时,可使用3D辅助工具进行对象的操作及编辑选择不同类型的3D对象时,可使用的辅助工具可能会发生改变3D辅助工具包含:平移旋转缩放自动适配相机类型的切换世界坐标系与局部坐标系切换相机模式切换渲染模式切换显示/隐藏3D网格显示/隐藏所有2D对象说明:当鼠标悬停在图标上时,会出现提示文字相机类型包含:透视正交默认为透视相机模式包含:目标:以对象为焦点自由:第一人称相机跟随:与对...

3D产品配置神器

随着自动化产业的飞速发展,客户对于供应商的要求也随之提高,工厂自动化行业产品设计选型选配如果还在依靠电话咨询、邮件咨询、选型手册这些传统的方式是存在许多弊端的,企业想要转型升级就要借助互联网思维的营销方式。•您是否也有以下困扰:二维数据无法快速准确完成产品选型;花大量金钱印刷纸质宣传册,频繁更新浪费大量人力物力;斥重金在网上平台进行推广,最后收获的数据不够精准,等等。没关系,我们来解决您的困扰,为...

博维数孪CreateTwins—帮助文档—3D(相机对象)

发布时间:2021-11-11 3D可视化 数据可视化 3D 数字孪生 WEBGL
相机对象在场景中存在两个相机,一个是用于自由编辑场景时的“上帝视角”-编辑相机一个是最终出片时看到的结果-预览相机3D对象列表中的相机对象,为预览相机编辑相机用户在编辑状态下,是在编辑相机的视角下进行观察使用编辑相机看到的画面称为编辑视角变更类型编辑视角可在”透视“和”正交”两种类型间切换正交:平行投影透视:近大远小默认为”透视“类型变更模式编辑视角可在”目标“,”自由“,”跟随“三种模式间切换目...

3D产品配置器持续迭代优化易用性

博维数孪(Bowell)的3D产品配置器是一个功能强大且直观的3D编辑器应用,设计师与艺术家们可以直接创建出基于网页的沉浸式3D互动体验。基于Bowell,您可以创作的应用类型有:3DH5展示页,3D产品目录,交互式动画,3D产品配置器,交互式演示文稿,在线商店,产品功能展示应用,3D互动课件,产品报价工具,网页虚拟现实与增强现实等等。​博维数孪的3D产品配置器恰恰就是这样的一个可扩展的平台,用于...

博维数孪CreateTwins—帮助文档—工具栏(创建3D对象)

发布时间:2021-11-04 3D可视化 数据可视化 3D 数字孪生 WEBGL
创建3D对象允许用户向场景中添加3D对象点击“3D对象”菜单,进入3D对象的创建和编辑基本几何体点击基本几何体图标,在列表中选择对应的类型,完成创建基本几何体包括:立方体球体圆锥体圆柱体圆环平面相关链接:几何体对象线框点击线框图标,在列表中选择对应的类型,完成创建线框包括:线条圆圈网格相关链接:线框对象灯光点击灯光图标,在列表中选择对应的类型,完成创建灯光包括:方向光点光源注意事项:在移动端,由于...

博维数孪CreateTwins—帮助文档—资源(视频材质资源)

发布时间:2021-11-09 3D可视化 数据可视化 3D 数字孪生 WEBGL
视频材质资源视频材质允许用户将视频附着在材质球上,让材质球出现动态的效果允许用户在资源池中创建视频材质球,并将其应用到其它模型对象上从菜单中选择材质选择”新建视频材质“用户创建视频材质后,会出现在资源池面板的资源列表中相关链接:新建资源视频材质资源属性...

博维数孪CreateTwins—帮助文档—资源(新建资源)

发布时间:2021-11-08 3D可视化 数据可视化 3D 数字孪生 WEBGL
新建资源用户除了从本地选择文件上传外,还可以创建四种系统预置的资源文件夹材质视频材质序列帧新建材质点击创建材质图标在列表中选择对应的类型,完成创建新建文件夹点击创建文件夹图标,完成创建新建序列帧点击创建序列帧图标,完成创建创建后的资源,会添加至当前资源面板的列表中相关链接:材质资源视频材质资源序列帧资源...

在3D世界中创建不同的相机模式——编写自定义内容导入器

发布时间:2010-10-23 自定义 3D
2.14编写自定义内容导入器问题你想通过内容管道将一个自定义格式的文件导入到XNA项目中。因为你的文件的扩展名和/或结构与XNA支持的文件格式不同,默认XNA内容管道无法知道如何导入并处理你的文件。解决方案你需要编写一个自定义内容导入器,它可以从磁盘中读取文件,将有用的数据格式化为一个对象,做好被内容处理器处理的准备。因此,这个教程假设你知道如何创建自己的内容处理器,可以参见教程3-9了解内容管道...

在3D世界中创建不同的相机模式——指定相机的目标

发布时间:2010-10-18 相机 3D
2.2指定相机的目标问题当定义View矩阵时,你需要指定Target向量作为参数,这个向量设置了相机的旋转。解决方案当选转相机时,相机的位置会保持不变。这意味着旋转取决于相机的Target点和Up向量的变化。你可以通过使用(0,0,-1)Forward向量并将旋转施加到这个向量上获取Target向量,这会产生一个新的Target点。你可以使用相同的方法获取Up向量。工作原理如教程2-1所示,一个相...

在3D世界中创建不同的相机模式——只绘制在相机视野中的物体:八叉树

发布时间:2010-10-23 相机 3D
2.9只绘制在相机视野中的物体:八叉树问题如果你使用教程2-5的方法检查相机视野中的每个模型,那么由于网格太多会极大地拖慢程序。你需要一个可扩展的方法决定场景的哪些部分需要被绘制。解决方案定义一个很大的立方体包含整个3D世界和所有模型。如果这个立方体包含太多模型,那么把这个立方体分割成小的子立方体。如果这些小的子立方体包含太多模型,那么再把这些立方体分割成更小的子立方体,直到立方体内包含的模型数量...

orbslam2(3)-优化

发布时间:2016-07-20 ORB-SLAM SLAM SLAM学习 ORB
转载声明:本文转载自  金木炎 的博客,仅供个人学习。感谢博主的无私分享,如有侵权,敬请告知。ORB-SLAM作为单目SLAM,其精度很大程度上决定于帧与帧之间的位姿优化的是否准确。因此优化(optimization)在ORB-SLAM里面扮演了很重要的角色。这一小节探讨一下ORB-SLAM里用到的优化。ORB-SLAM选用g2o作为图优化的方法,关于g2o可以参考http://www.cnblo...

mars3d自定义右键菜单

发布时间:2022-10-27 MARS3D APP VUE 3D
mars3d右键菜单官方示例:功能示例(Vue版)|Mars3D三维可视化平台|火星科技mars3d提供了bindContextMenu方法用于自定义右键菜单的样式,和功能,代码如下:import*asmars3dfrom"mars3d"exportletmap//mars3d.Map三维地图对象letgraphicLayer//矢量图层letgraphic//矢量数据/** *初始化地图业务,生...

Three.js中正交投影摄像机和透视投影摄像机

发布时间:2022-11-14 THREE.JS ECMASCRIPT JAVASCRIPT 3D 开发语言 前端
区别正交投影摄像机:所有物体被渲染出来的尺寸是一样的,没有近大远小之分。因为对象相对于摄像机的距离对渲染的结果是没有影响的。常用于二维游戏中。透视投影摄像机:透视试图,近大远小。更贴近真实世界。属性正交投影摄像机OrthographicCamera:构造函数:THREE.OrthographicCamera(left,right,top,bottom,near,far)参数描述left(左边界)可...

以数字孪生构建面向未来的中科院人造太阳涉密项目

今世界面临的诸多危机均源于能源问题,而寻找一种清洁、安全、可持续的能源也成为全球科学界的一项重大研究课题。参照太阳的核聚变反应,各国科学家从上世纪起开始探索如何利用地球上储量极其丰富的氘制造出“人造太阳”,为人类提供永续的清洁能源。来自35个国家/地区的代表正在合作建造世界上最大的托卡马克——一种又被称为“人造太阳”的磁聚变装置,以证明使用聚变作为大规模无碳能源的可行性。在这一进程中,中科院合肥研...

烟台数字孪生智能工厂,数字工厂智能车间建设,3d可视化工业建模,三维数据交互系统开发

烟台数字孪生智能工厂,数字工厂智能车间建设,3d可视化工业建模,三维数据交互系统开发。在“中国制造2025”大战略背景下,结合和使用新一代信息技术和人工智能技术,实现物理世界和信息世界互联互通与融合是智能制造得以实现的核心问题之一。针对这一问题,基于数字孪生理念,阐述了数字孪生与现代工厂的融合方法,整合了数字孪生与工厂融合后系统组成和它所具备的特点。通过精细化三维建模,对各类设备进行真实复现,并对...

数字孪生:物流数据可视化

随着电商行业的兴起,物流行业也相伴而起,各大物流公司也不断完善物流监管措施,但往往耗费大量人力物力。数据可视化目前在国内各个行业已经运用的相对成熟,并为物流监管带来极大便捷,今天就带大家了解一下物流数据可视化应用是怎样的。物流监测主要分为物流园区站点监测和物流信息监测两大部分,下面分别进行举例说明。一、物流信息监测可视化物流监测信息可视化可以具体到一个省的物流信息监测,将全省物流信息汇总通过数字孪...

新材料助力3D打印 制造超弹性泡沫极大提高负重能力

发布时间:2018-04-17 负重 3D
 2018年4月17日,据悉,克利夫兰开普西储大学的一个研究小组最近研究了一组有趣的3D打印新材料,这些材料可能有很多有用的应用。该项目是由RigobertoAdvincula教授与高分子科学与工程系的QiqiChen和Peng-FeiCao共同完成的。他们的工作在一篇名为“'MechanicallyRobust,UltraelasticHierarchicalFoamwithTunablePro...

久坐伤身,这个3D坐垫能让危害降到最低,办公自驾必备!

发布时间:2019-02-21 3D 伤身
程序君个人微信和我聊聊编程和创业的事加好友©程序员严选 丨为您甄选全球好物对于办公族和职业司机来说长时间坐着不动工作是家常便饭而长期久坐伤害不言而喻引发腰肌劳损、腰间盘突出等症状尤其对于男性来说,除了腰椎疾病以外久坐也很容易引起局部血液循环不通畅从而导致前列腺疾病的产生长期坐着不动已经对现代都市人造成了非常严重的危害今天一起君介绍个好东西一款能降低久坐危害,呵护健康的坐垫最大程度减缓久坐带来的伤害...

MVSNet-pytorch版本理解与使用

发布时间:2022-11-28 MVS-DEEPLEARNING PYTORCH 3D
0算法来源        GitHub-xy-guo/MVSNet_pytorch:PyTorchImplementationofMVSNet    小于8g的显存是跑不了的!!!连test都跑不了,过不了costvolume这一关。1算法理解    1.1宏观把握    输入:一些已知相机内参、外参的图片(往往这时候已经用colmap等做过一遍sfm,从而获取到了相机的内参和外参)    过程:...

十年经验3D建模师来说一下如何学游戏建模,自学到底靠不靠谱?这就为你解答

发布时间:2020-08-28 3D渲染 3D建模 3D游戏 3DSMAX ZBRUSH 3D
我是自学几个月后滚去培训班学了半年然后出来找工作的。觉得自学实在是太难,主要是哪些地方做错了或者哪里卡住了,可能花很长时间都不知道哪里做错了想解决问题也解决不了。。我觉得自学最纳闷就是这点,而且教程里也不一定会提到不知道有没有这样的小伙伴?没人带的话,就靠自学实在是太难了,,首先工作面试的时候你就发现自己不知道的太多了,没有系统的知识框架个人觉得自学,个人觉得实在还是难最大问题还是纠错【还有一点多...

GAEA沙丘地形创建

发布时间:2022-11-16 3D UE4
我们先创建一个斜坡澡波SlopeNoise在利用曲线curve调整他整体形态  我们想要它的风沙话的岩石 就要侵蚀Erosion和梯田Terrace相加  我们在给它添加冲击层 alluvium 让他堆积感觉更强在利用侵蚀 利用SurfTex 冲击层 Soil泥土层 rockmap岩石层 Flow流沙层这些遮罩图 来添加卫星图satmaps 最后把这些图混合叠加给地形上色  ...

西门子采用三井化学的UNISTOLE™作为3D打印医用级面罩的涂层剂

发布时间:2020-09-15 3D UNISTOLE
该面罩已在新加坡医院试用 东京--(美国商业资讯)--三井化学株式会社(MitsuiChemicals,Inc.,TOKYO:4183;总裁兼首席执行官:HASHIMOTOOsamu)今天宣布,其UNISTOLE™聚烯烃基液体胶合剂已被新加坡SiemensPteLtd用作新的医用级3D打印面罩支架的涂层剂。 此新闻稿包含多媒体内容。完整新闻稿可在以下网址查阅:https://www.busines...

Polygon Cruncher——3ds Max减面工具的使用方法

发布时间:2022-11-08 3D 基础操作 3DSMAX
        PolygonCruncher是一款三维模型多边形减面优化插件,它可以减少PolygonCruncher数量,而不会改变它们的外观。即使在高优化率下,也可以保留所有细节。        下面介绍该插件在3dsMax中的使用方法:1.下载并安装PolygonCruncher插件,网上有很多教程,此处不再赘述。2.打开3dsMax,导入模型,按下键盘上的“7”,查看顶点数和面片数:3....

vue-3d-model属性介绍

发布时间:2022-11-14 VUE.JS VUE JAVASCRIPT 3D
vue-3d-model是一个可以解析3d模型的组件,基于threeJS和webGL;这篇文章就不介绍具体怎么引入了,可以到官网查阅一下,这里主要是记录一下这个组件的属性,方便我自己和大家查阅使用,具体支持哪些文件,我放在文章最后:配置属性:width-宽度,和高度一起才生效height-高度,和宽度一起才生效src-3d文件路径,e.g.example/models/obj/LeePerrySm...

论文精读《OFT: Orthographic Feature Transform for Monocular 3D Object Detection》

OFT:OrthographicFeatureTransformforMonocular3DObjectDetection论文精读摘要(Abstract)研究现状从单目图像中进行3D目标检测已被证明是一项极具挑战性的任务,其系统性能甚至还达不到基于雷达对应系统性能的10%。对这种性能差距的一种解释是,现有的系统完全处于由于基于透视图像的表示,物体的外观和规模随着深度和距离的变化而急剧变化,因此很难...

【无标题】

发布时间:2022-11-18 动画 3D
阴影算法验证效果图,仅仅使用vs2008和grpahics中的putpixel函数,里面涉及的模型,光照,贴图全由本人自己写的代码!欢迎大家多赐教!...

Vins-Fusion初始化——三角化triangulate

继上一篇博文Vins-Fusion初始化位姿——3D-2D:PNP求解当前帧位姿,本文继续介绍Vins-Fusion双目初始化时,三角化triangulate。一、三角化triangulate三角化triangulate是根据特征点在多个相机下的投影恢复出特征点的3D位置。二、三角化求解流程1.遍历当前帧特征点,若该特征点深度为正,说明已经三角化了。//已经三角化过if(it_per_id.est...

Vins-Fusion初始化-初始化陀螺零偏Bgs

基本思想:在得到IMU-Camera外参旋转之后,将camera的旋转通过外参变换到IMU系下,理论上这个旋转应该与IMU系下对应的旋转一致,差为0,但是由于误差(角速度偏置目前还是个估计值)的存在,不会为0,那么构建最小二乘问题,最小化旋转差量,优化角速度偏置。一、零偏求解理论基础1.根据基本思想可将其转化为最小二乘问题,如下:根据预备知识,其高斯牛顿的解为:其中,f(x)为残差,J为残差对优化...