| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【四】相机与图像 -> 正文阅读 |
|
[人工智能]【四】相机与图像 |
针孔相机模型
Z
f
=
?
X
X
′
=
?
Y
Y
′
\frac{Z}{f}=-\frac{X}{X^{\prime}}=-\frac{Y}{Y^{\prime}}
fZ?=?X′X?=?Y′Y? 像素坐标系通常的定义方式是:原点
o
′
o'
o′位于图像的左上角,
u
u
u轴向右与
x
x
x轴平行,
v
v
v轴向下与
y
y
y轴平行。像素坐标系与成像平面之间,相差了一个缩放和一个原点的平移。我们设像素坐标在
u
u
u轴上缩放了
α
\alpha
α倍,在
v
v
v上缩放了
β
\beta
β倍。同时,原点平移了
[
c
x
,
c
y
]
T
[c_x,c_y]^T
[cx?,cy?]T。那么,
P
′
P'
P′的坐标与像素坐标
[
u
,
v
]
T
[u,v]^T
[u,v]T的关系为:
{
u
=
f
x
X
Z
+
c
x
v
=
f
y
Y
Z
+
c
y
\left\{\begin{array}{l} u=f_{x} \frac{X}{Z}+c_{x} \\v=f_{y} \frac{Y}{Z}+c_{y} \end{array}\right.
{u=fx?ZX?+cx?v=fy?ZY?+cy?? 按照习惯,将
Z
Z
Z挪到左侧: 除了内参之外,相机还有相对的外参。在上式中,我们使用的是
P
P
P在相机坐标系下的。由于相机在运动,所以
P
P
P的相机坐标应该是它的世界坐标(记为
P
w
P_w
Pw?),根据相机的当前位姿,变换到相机坐标系下的结果。(即P PP的坐标是相机坐标系下)。相机的位姿由它的旋转矩阵
R
R
R和平移向量
t
t
t来描述,那么有: 这里第三个等号左右两边利用了齐次坐标的转换。这个齐次坐标的转换描述里 P P P的世界坐标到像素坐标的投影关系。其中,相机的位姿 R , t R,t R,t又称为相机的外参数。相比于不变的内参,外参会随着相机运动发生改变,用是也是SLAM中待估计的目标,代表着机器人的轨迹。 投影过程还可以从另一个角度来看,上式表明,我们可以把一个世界坐标点先转转到相机坐标系,再除掉它最后一维的数值(即该点距离相机成像平面的深度),这相当于把最后一维进行归一化处理,得到点 P P P在相机归一化平面上的投影:
(
R
P
w
+
t
)
=
[
X
,
Y
,
Z
]
T
?
相机坐标?
→
[
X
/
Z
,
Y
/
Z
,
1
]
T
?
归一化坐标?
\left(R P_{\mathrm{w}}+t\right)=\underbrace{[X, Y, Z]^{\mathrm{T}}}_{\text {相机坐标 }} \rightarrow \underbrace{[X / Z, Y / Z, 1]^{\mathrm{T}}}_{\text {归一化坐标 }}
(RPw?+t)=相机坐标?
[X,Y,Z]T??→归一化坐标?
[X/Z,Y/Z,1]T??
畸变畸变是由透镜产生的,由透镜形状引起的畸变称为径向畸变,由透镜安装不与成像面严格平行产生的畸变为切向畸变。其中,径向畸变又分为桶形失真和枕形失真,如下图所示:
x
distorted
=
x
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
y
distorted
=
y
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
\begin{aligned} &x_{\text {distorted}}=x\left(1+k_{1} r^{2}+k_{2} r^{4}+k_{3} r^{6}\right) \\ &y_{\text {distorted}}=y\left(1+k_{1} r^{2}+k_{2} r^{4}+k_{3} r^{6}\right) \end{aligned}
?xdistorted?=x(1+k1?r2+k2?r4+k3?r6)ydistorted?=y(1+k1?r2+k2?r4+k3?r6)? 因此,联合上两式,对于相机坐标系中的一点
P
(
X
,
Y
,
Z
)
P(X,Y,Z)
P(X,Y,Z),我们能够通过五个畸变系数找到这个点在像素平面上的正确位置:
{
x
distorted?
=
x
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
+
2
p
1
x
y
+
p
2
(
r
2
+
2
x
2
)
y
distorted?
=
y
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
+
p
1
(
r
2
+
2
y
2
)
+
2
p
2
x
y
\left\{\begin{array}{l} x_{\text {distorted }}=x\left(1+k_{1} r^{2}+k_{2} r^{4}+k_{3} r^{6}\right)+2 p_{1} x y+p_{2}\left(r^{2}+2 x^{2}\right) \\ y_{\text {distorted }}=y\left(1+k_{1} r^{2}+k_{2} r^{4}+k_{3} r^{6}\right)+p_{1}\left(r^{2}+2 y^{2}\right)+2 p_{2} x y \end{array}\right.
{xdistorted??=x(1+k1?r2+k2?r4+k3?r6)+2p1?xy+p2?(r2+2x2)ydistorted??=y(1+k1?r2+k2?r4+k3?r6)+p1?(r2+2y2)+2p2?xy? { u = f x x distorted + c x v = f y y distorted + c y \left\{\begin{array}{l} u=f_{x} x_{\text {distorted}}+c_{x} \\ v=f_{y} y_{\text {distorted}}+c_{y} \end{array}\right. {u=fx?xdistorted?+cx?v=fy?ydistorted?+cy?? 在上面的纠正畸变的过程中,我们使用里五个畸变项。实际应用中,可以灵活选择纠正模型,比如只选择
k
1
,
p
1
,
p
2
k_1,p_1,p_2
k1?,p1?,p2?这三项等。
双目相机模型针孔相机模型描述里单目相机的成像模型,然而,该模型忽略里深度信息,也就无法确定这个空间点的具体位置的。而只有当
P
P
P的深度确定时,我们才能确切地指导它的空间位置。 z ? f z = b ? u L + u R b \frac{z-f}{z}=\frac{b-u_{L}+u_{R}}{b} zz?f?=bb?uL?+uR?? 稍作整理,得:
RGB-D相机模型RGB-D相机可以主动测量每个像素的深度,原理主要有两大类: 1.通过红外结构光来测量像素距离的。 无论是结构光还是 ToF, RGB-D 相机都需要向探测目标发射一束光线(通常是红外光)。在结构光原理中,相机根据返回的结构光图案,计算物体离自身的距离。而在 ToF中,相机向目标发射脉冲光,然后根据发送到返回之间的光束飞行时间,确定物体离自身的距离。 ToF 原理和激光传感器十分相似,不过激光是通过逐点扫描来获取距离,而 ToF相机则可以获得整个图像的像素深度,这也正是 RGB-D 相机的特点。所以,如果你把一个 RGB-D 相机拆开,通常会发现除了普通的摄像头之外,至少会有一个发射器和一个接收器。 在测量深度之后,RGB-D相机通常按照生产时的各个相机摆放位置,自己完成深度与彩色图像素之前的配对,输出一一对应的彩色图和深度图。我们可以在同一个图像位置,读取到色彩信息和距离信息,计算像素的3D相机坐标,生成点云。对RGB-D数据,既可以在图像层面进行处理,亦可在点云层面处理。 RGB-D相机能够实时地测量每个像素点的距离。但是,由于这种发射-接受的测量方式,使得它使用方面比较受限。用红外进行深度值测量的 RGB-D 相机,容易受到日光或其他传感器发射的红外光干扰,因此不能在室外使用,同时使用多个时也会相互干扰。对于透射材质的物体,因为接受不到反射光,所以无法测量这些点的位置。此外, RGB-D 相机在成本、功耗方面,都有一些劣势。
全部的代码在这里 参考 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 16:32:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |