SLAM-相机与图像
相机模型
针孔相机模型
X′=fZX
Y′=fZY
相机模型
针孔相机模型
X′=fZX
Y′=fZY
![20240703203611.png]()
假设传感器像素屏幕坐标为o-u-v,从左上向游侠。此时像素平面上点P’的坐标为[u,v]T
如果传感器原点的平移为[Cx,Cy]T
{u=fxZX+Cxv=fyZY+Cy
⎣⎡uv1⎦⎤=⎣⎡fx/Z000fy/Z0cxcy1/Z⎦⎤⎣⎡XYZ⎦⎤=Z1KP
其中K为内参矩阵
对于世界坐标系W中的点PW,若相机位姿为R,t(外参),则有
zPUV=K(RPW+t)=KTPW
连线射线上的点都可以对应到同一个像素上,因此一般可以用归一化平面上的点进行处理。这也意味着点的深度在投影过程中被丢失了。
畸变的矫正
径向畸变
![20240703212738.png]()
切向畸变
![20240703212747.png]()
对于归一化平面上的任意一点p=[x,y]T,径向畸变可以看作坐标点与原点的距离发生变化,切向畸变可以看成坐标点沿切线方向发生变化(?)。
xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6)
上式的畸变以径向距离r为变量,描述了径向畸变。
xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+p1(r2+2y2)+2p2xy
该式添加了圆锥曲线方程?总之表示的是切向畸变(为什么)
- 将三维空间点投影到归一化平面[x,y]T
- 计算畸变
xdistorted=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ydistorted=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy
{u=fxxdistort+Cxv=fyydistort+Cy
对于实际探测而言,如果已经有像素平面上的坐标[u,v]T,可以逆推出实际点的位置。
[xy]=f([uv])
双目相机
解决景深的获取
b为基线
世界坐标系中的空间点P在左右相机各成一像PL,PR(位置是归一化平面,O才是像素平面)。(UR是负数)
bb−uL+uR=zz−f
z=uL−uRfb
代码实现
假设传感器像素屏幕坐标为o-u-v,从左上向游侠。此时像素平面上点P’的坐标为[u,v]T
如果传感器原点的平移为[Cx,Cy]T
{u=fxZX+Cxv=fyZY+Cy
⎣⎡uv1⎦⎤=⎣⎡fx/Z000fy/Z0cxcy1/Z⎦⎤⎣⎡XYZ⎦⎤=Z1KP
其中K为内参矩阵
对于世界坐标系W中的点PW,若相机位姿为R,t(外参),则有
zPUV=K(RPW+t)=KTPW
连线射线上的点都可以对应到同一个像素上,因此一般可以用归一化平面上的点进行处理。这也意味着点的深度在投影过程中被丢失了。
畸变的矫正
径向畸变
相机模型
针孔相机模型
X′=fZX
Y′=fZY
![20240703203611.png]()
假设传感器像素屏幕坐标为o-u-v,从左上向游侠。此时像素平面上点P’的坐标为[u,v]T
如果传感器原点的平移为[Cx,Cy]T
{u=fxZX+Cxv=fyZY+Cy
⎣⎡uv1⎦⎤=⎣⎡fx/Z000fy/Z0cxcy1/Z⎦⎤⎣⎡XYZ⎦⎤=Z1KP
其中K为内参矩阵
对于世界坐标系W中的点PW,若相机位姿为R,t(外参),则有
zPUV=K(RPW+t)=KTPW
连线射线上的点都可以对应到同一个像素上,因此一般可以用归一化平面上的点进行处理。这也意味着点的深度在投影过程中被丢失了。
畸变的矫正
径向畸变
![20240703212738.png]()
切向畸变
![20240703212747.png]()
对于归一化平面上的任意一点p=[x,y]T,径向畸变可以看作坐标点与原点的距离发生变化,切向畸变可以看成坐标点沿切线方向发生变化(?)。
xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6)
上式的畸变以径向距离r为变量,描述了径向畸变。
xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+p1(r2+2y2)+2p2xy
该式添加了圆锥曲线方程?总之表示的是切向畸变(为什么)
- 将三维空间点投影到归一化平面[x,y]T
- 计算畸变
xdistorted=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ydistorted=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy
{u=fxxdistort+Cxv=fyydistort+Cy
对于实际探测而言,如果已经有像素平面上的坐标[u,v]T,可以逆推出实际点的位置。
[xy]=f([uv])
双目相机
解决景深的获取
b为基线
世界坐标系中的空间点P在左右相机各成一像PL,PR(位置是归一化平面,O才是像素平面)。(UR是负数)
bb−uL+uR=zz−f
z=uL−uRfb
代码实现
切向畸变
相机模型
针孔相机模型
X′=fZX
Y′=fZY
![20240703203611.png]()
假设传感器像素屏幕坐标为o-u-v,从左上向游侠。此时像素平面上点P’的坐标为[u,v]T
如果传感器原点的平移为[Cx,Cy]T
{u=fxZX+Cxv=fyZY+Cy
⎣⎡uv1⎦⎤=⎣⎡fx/Z000fy/Z0cxcy1/Z⎦⎤⎣⎡XYZ⎦⎤=Z1KP
其中K为内参矩阵
对于世界坐标系W中的点PW,若相机位姿为R,t(外参),则有
zPUV=K(RPW+t)=KTPW
连线射线上的点都可以对应到同一个像素上,因此一般可以用归一化平面上的点进行处理。这也意味着点的深度在投影过程中被丢失了。
畸变的矫正
径向畸变
![20240703212738.png]()
切向畸变
![20240703212747.png]()
对于归一化平面上的任意一点p=[x,y]T,径向畸变可以看作坐标点与原点的距离发生变化,切向畸变可以看成坐标点沿切线方向发生变化(?)。
xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6)
上式的畸变以径向距离r为变量,描述了径向畸变。
xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+p1(r2+2y2)+2p2xy
该式添加了圆锥曲线方程?总之表示的是切向畸变(为什么)
- 将三维空间点投影到归一化平面[x,y]T
- 计算畸变
xdistorted=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ydistorted=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy
{u=fxxdistort+Cxv=fyydistort+Cy
对于实际探测而言,如果已经有像素平面上的坐标[u,v]T,可以逆推出实际点的位置。
[xy]=f([uv])
双目相机
解决景深的获取
b为基线
世界坐标系中的空间点P在左右相机各成一像PL,PR(位置是归一化平面,O才是像素平面)。(UR是负数)
bb−uL+uR=zz−f
z=uL−uRfb
代码实现
对于归一化平面上的任意一点p=[x,y]T,径向畸变可以看作坐标点与原点的距离发生变化,切向畸变可以看成坐标点沿切线方向发生变化(?)。
xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6)
上式的畸变以径向距离r为变量,描述了径向畸变。
xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+p1(r2+2y2)+2p2xy
该式添加了圆锥曲线方程?总之表示的是切向畸变(为什么)
- 将三维空间点投影到归一化平面[x,y]T
- 计算畸变
xdistorted=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ydistorted=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy
{u=fxxdistort+Cxv=fyydistort+Cy
对于实际探测而言,如果已经有像素平面上的坐标[u,v]T,可以逆推出实际点的位置。
[xy]=f([uv])
双目相机
解决景深的获取
相机模型
针孔相机模型
X′=fZX
Y′=fZY
![20240703203611.png]()
假设传感器像素屏幕坐标为o-u-v,从左上向游侠。此时像素平面上点P’的坐标为[u,v]T
如果传感器原点的平移为[Cx,Cy]T
{u=fxZX+Cxv=fyZY+Cy
⎣⎡uv1⎦⎤=⎣⎡fx/Z000fy/Z0cxcy1/Z⎦⎤⎣⎡XYZ⎦⎤=Z1KP
其中K为内参矩阵
对于世界坐标系W中的点PW,若相机位姿为R,t(外参),则有
zPUV=K(RPW+t)=KTPW
连线射线上的点都可以对应到同一个像素上,因此一般可以用归一化平面上的点进行处理。这也意味着点的深度在投影过程中被丢失了。
畸变的矫正
径向畸变
![20240703212738.png]()
切向畸变
![20240703212747.png]()
对于归一化平面上的任意一点p=[x,y]T,径向畸变可以看作坐标点与原点的距离发生变化,切向畸变可以看成坐标点沿切线方向发生变化(?)。
xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6)
上式的畸变以径向距离r为变量,描述了径向畸变。
xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+p1(r2+2y2)+2p2xy
该式添加了圆锥曲线方程?总之表示的是切向畸变(为什么)
- 将三维空间点投影到归一化平面[x,y]T
- 计算畸变
xdistorted=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ydistorted=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy
{u=fxxdistort+Cxv=fyydistort+Cy
对于实际探测而言,如果已经有像素平面上的坐标[u,v]T,可以逆推出实际点的位置。
[xy]=f([uv])
双目相机
解决景深的获取
b为基线
世界坐标系中的空间点P在左右相机各成一像PL,PR(位置是归一化平面,O才是像素平面)。(UR是负数)
bb−uL+uR=zz−f
z=uL−uRfb
代码实现
b为基线
世界坐标系中的空间点P在左右相机各成一像PL,PR(位置是归一化平面,O才是像素平面)。(UR是负数)
bb−uL+uR=zz−f
z=uL−uRfb
代码实现