NO.1 3D视觉前言

零蚀


  • 相机分类
    • 图像形成的原理,是由于光线在物体上,大部分被物体吸收,少部分不被吸收光线发生反射或者漫反射,从而使我们觉···得出现了不同的颜色。如果光线都被吸收了,则是黑色。而相机是通过将光信号转化为电信号,从而保存为数字信息,

    • 相机分为2D相机 和 3D相机,2D相机会产生 图像数据,其中包括 灰度图,彩色图,而3D相机会生成 图形数据 ,包括深度图,点云图。

    • 2D相机分为CCD 和 CMOS两种主流相机。CCD传感器在灵敏度、分辨率、噪声控制等方面都优于CMOS传感器,而CMOS传感器则具有低成本、低功耗、以及高整合度的特点。这两种相机的区别主要是读取数据的方式不同(读出结构)

      • CCD charge-coupled device 电荷耦合器件
      • CMDS complementary metal-oxide semiconductor 互补金属氧化物半导体。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f0BQVOSB-1609663237795)(media/16090481279428/16090570422632.jpg)]

      • 从这里的传感器只能采集光信息(强度),如果想产生彩色照片需要在传感器前面加上Bayer滤镜阵列。由于人眼对绿色比较敏感,所以绿色的像素占总素的1/2,而红色和蓝色各占1/4。这种情况会导致图像失真,所以会加失真滤光片。
    • 3D像机分为 TOF相机,双目相机,结构光相机,激光扫描仪etc,主流相机。TOF相机,可以获取深度信息,也可以获取灰度信息,它会发出光然后接收信息,常用于游戏,物流,或需要红外的需求;双目相机通过两个普通摄像头来获取图像的深度信息,在外界环境较差的情况下,接收信息的数据也会较差;结构光相机,通过红外发射器,发射人眼不可见的随机红外斑点,这些点具有一定的结构,根据斑点的大小形状来确定物体;激光扫描仪也是通过发送激光,通过两个摄像头来获取高频率的激光反射或折射,以进行测量和校准。


  • 相机模型
    • 感光元件在获取到源世界的东西的时候,我们的数据可能有旋转,有变形,所以我们要通过相机的模型来设置图像数据。这里的在计算图像的物体距离,需要将像素坐标系转为图像坐标系,从而得到像素转换的数据。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gpwSSPhw-1609663237798)(media/16090481279428/16095604680017.jpg)]


  • 图像旋转
    • 二维旋转计算:我们之前有用过矩阵的仿射计算来旋转图像,它的原理是通过矩阵计算,来计算得到旋转的每个点的坐标,如下。

      [ X ′ Y ′ ] [ c o s θ − s i n θ s i n θ c o s θ ] = [ X Y ] \begin{bmatrix} X' \\ Y'\end{bmatrix}\begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} = \begin{bmatrix} X \\ Y \end{bmatrix} [XY][cosθsinθsinθcosθ]=[XY]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JhXuL4BS-1609663237799)(media/16090481279428/16095831364261.jpg)]

    • 3维坐标系的旋转,如果旋转是按照z轴进行旋转,那么计算的公式我们可以用到之前的二维计算的方式得的

    { x ’ = x c o s θ − y s i n θ + z y ′ = x s i n θ + y c o s θ + z z ′ = 0 + 0 + z \begin{cases} x’ = xcos\theta - ysin\theta + z \\ y'= xsin\theta + ycos\theta + z \\ z' = 0 + 0 + z\end{cases} x=xcosθysinθ+zy=xsinθ+ycosθ+zz=0+0+z

    • 由此可得,绕z轴旋转的公式为

    R z    ⟹    [ x ′ y ′ z ′ ] [ c o s θ − s i n θ 0 s i n θ c o s θ 0 0 0 1 ] = [ x y z ] R_z \implies \begin{bmatrix} x' \\ y' \\ z' \end{bmatrix} \begin{bmatrix} cos\theta & -sin\theta & 0 \\ sin\theta & cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} x \\ y \\ z \end{bmatrix} Rzxyzcosθsinθ0sinθcosθ0001=xyz

    • 按照这种规律,如果按照某坐标轴旋转,就是将某平面上点按照二维平面的旋转规律进行旋转处理,可得以下公式,(按照Y轴旋转,和x轴旋转)。

    R y    ⟹    [ x ′ y ′ z ′ ] [ c o s θ 0 s i n θ 0 1 0 − s i n θ 0 c o s θ ] = [ x y z ] R_y \implies \begin{bmatrix} x' \\ y' \\ z' \end{bmatrix} \begin{bmatrix} cos\theta & 0 & sin\theta \\ 0 & 1 & 0 \\ -sin\theta & 0 & cos\theta \end{bmatrix} = \begin{bmatrix} x \\ y \\ z \end{bmatrix} Ryxyzcosθ0sinθ010sinθ0cosθ=xyz

    R x    ⟹    [ x ′ y ′ z ′ ] [ 1 0 0 0 c o s θ − s i n θ 0 s i n θ c o s θ ] = [ x y z ] R_x \implies \begin{bmatrix} x' \\ y' \\ z' \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & cos\theta & -sin\theta \\ 0 & sin\theta & cos\theta \end{bmatrix} = \begin{bmatrix} x \\ y \\ z \end{bmatrix} Rxxyz1000cosθsinθ0sinθcosθ=xyz

    • 而3维中的旋转,需要经过3个纬度依次的旋转,然后经过平移后得到新的坐标点。这里的R是上面旋转的综合,t为平移 [ R t O ⃗ 1 ] [ X w Y w Z w 1 ] \begin{bmatrix} R & t \\ \vec{O} & 1 \end{bmatrix} \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} [RO t1]XwYwZw1

    • 根据图像的坐标计算像素坐标,dx 表示像素的宽度,dy表示像素的高度。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZCoYtYAZ-1609663237800)(media/16090481279428/16095936381643.jpg)]

    u = x d x + u 0 u = \frac{x}{d_x} + u_0 u=dxx+u0
    v = y d y + v 0 v = \frac{y}{d_y} + v_0 v=dyy+v0

    • 可得

    [ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ x y 1 ] \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \frac{1}{d_x} & 0 & u_0 \\ 0 & \frac{1}{d_y} & v0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} uv1=dx1000dy10u0v01xy1


  • 畸变
    • 畸变是机器人视觉的最基本的知识。这要从小孔成像说起,小孔越小成像就越清晰,但是光线也越暗,为了避免减少光的减少,利用透镜将光线聚拢,但是镜头不可能是完美的,导致相机镜头总存在误差导致畸变,畸变参数系数 [ k 1 , k 2 , p 1 , p 2 , k 3 ] [k_1,k_2,p_1,p_2,k_3] [k1,k2,p1,p2,k3]。k表示径向畸变,p表示切向畸变。

    • 径向畸变,指的是光线离透镜边缘越近,离中心越远偏折越明显,偏折越大为枕型畸变,偏折越小为桶型畸变。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lOp6RCU6-1609663237801)(media/16090481279428/16096607029767.jpg)]

    • 切向畸变,这是由于制造上的缺陷,导致透镜本身和图像平面不平行而产生的,切向畸变使用 p 1 , p 2 p_1,p_2 p1,p2来表示,去切向畸变需要通过这两个参数去改变。

    • 相机的标定,在之前的内容中已知,相机的固有参数为 [ f x 0 c x 0 f y c y 0 0 1 ] \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y &c_y\\0 & 0& 1 \end{bmatrix} fx000fy0cxcy1以及相机的畸变参数 D i s t o r t i o n c o e f f i c i e n t s = ( k 1 , k 2 , p 1 , p 2 , k 3 ) Distortion_{coefficients}=(k_1,k_2,p_1,p_2,k_3) Distortioncoefficients=(k1,k2,p1,p2,k3) 决定这两个矩阵的过程,便是相机的标定(把相机对准一个有很多独立可是别的物体,通过不同的角度观察这个物体,可进一步计算每个图像来进行标定)。


🔗 前言
🔗 机器人视觉篇
🔗 NO.2 3D视觉 获取相机内参&畸变参数
🔗 NO.3 3D视觉 去畸变 & 3D绘制
🔗 NO.4 3D视觉 检测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零蚀zero eclipse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值