前言
这是一篇关于相机基本信息的介绍,其实主要是想记录一些东西,自己后面忘记的话还可以回顾;因本人知识有限,文中如有出错处,请不舍赐教;命名为:浅谈相机(1),万一后面我还想更新呢?斜眼笑
注:本文中,相机=摄像头
成像原理
在谈成像原理前呢,我们先聊聊相机的基本组成,相机是由以下几个部分组成的:
- 感光元器件
首先感光元器件是相机最重要的部分,感光元器件是把外界的光线信息映射到元器件上,所以因电子元器件的材质不同,通常分为CCD和CMOS,具体两种的区别我们在后面分类中再聊; - 镜头
上面说到,感光元器件可以直接感受外界光照信息,但是感光元器件很小,如果用它直接去成像,那么成像区域也很小,这时候就需要使用镜头(小学二年级学过的凸透镜成像原理)去扩大这个视野范围,当然,现在很多镜头都是变焦镜头,他们是一组镜头组成的,相应的焦距计算也是有公式的,感兴趣的话可以自己查一下(变焦镜头对焦时,内层控制焦距范围,外层通过微调的方式对准成像平面); - 电路
电路可能使我们谈相机的时候最容易忽略的一个部分;首先,在感光元器件接受的外界色彩信息是一个模拟的值,而数据之间通过设备传输必须是数字信号,这时候就需要感光元器件实现ADC功能(模拟信号通过采样转换成数字信号),从而通过数据线传输给其他设备; - (选)滤光片
滤光片不是相机必须的组成器件,但是在很多场景下(比如RM比赛中),使用者只需要捕捉特定的色彩信息,这时候就可以通过物理方法,在镜头外面增加一个滤光片过滤其他颜色;
具体成像原理
具体成像原理如上所示,很容易理解的,这里就不多说了,让我们看下面一幅图;
看上面一幅图,我们通过相机成像原理图可知,在这张图上,P点的像(直接通过透镜中心的点和其他通过透镜折射的点)是正好落在感光元器件上的,而P1和P2分别成像在感光元器件后和感光元器件前面,等等,这是不是说只有P点那一个(趋于0)的平面上的像是清晰的,其他都是模糊的???其实也可以怎么说,但是我们上面讲过了,从感光元器件接受外界光照信息到将信息通过数据线发送出去,这中间存在一步通过电路实现ADC采样的过程,ADC采样肯定不会(也做不到)全采样,因此可能P1和P2在感光元器件上成像的区域(应该能想象出来是一个椭圆吧)最后制裁杨了一点;这也就是景深的概念;
上面谈到了,相机的原理,即凸透镜成像,这种成像原路虽然简单,但是在工程上使用还是比较复杂的,在工程使用上,我们一般简化成上述针孔相机模型,其对真实相机的成像具有很好的拟合性;
相机分类
和很多事物一样,相机按照不同的分类方法有不同的类别,下面介绍几种最常见的分类方式:
-
按照感光元器件 可以分为CCD和CMOS
CCD的全称是电荷耦合器件,CMOS的全称是互补金属氧化物半导体,通俗点讲就是两者的元器件材料不同,而材料不同所带来的影响就是CCD精度高,但是价格更贵(一个至少2k);而CMOS价格更低廉,性价比比较高(穷人才看性价比,有钱人直接买最贵的),所以一般我们使用的相机基本上都是CMOS芯片的; -
按照类别可以分为单目、双目、深度、事件(Event)、鱼眼
单目:
单目是最简单的相机,具体原理就是上面的透镜成像原理,这里要说的就是,单目做的事情是获取3D世界到2D的投影,所以在这个过程中,自然而然的丢失了深度信息;(上面的图,你可能很肯定的说这不是真的,但是那是一种主观的感受)
双目:
上面说到,单目是丢失了深度信息的,但是很多情况我们是需要这个深度信息的,所以通过仿照人眼的原理,制作了双目相机,其原理如上图所示,还是很容易理解的,简单的说,双目相机就是通过视差计算深度。
RGB-D(深度)
想要计算深度信息,也可以通过物理的方法计算,深度相机就是在原来单目的基础上,通过结构光或TOF(飞行时间)原理来计算深度的;结构光的原理是,向物体发送结构光,结构光这接触的物体是会变形,摄像头通过接触这个信息探测具体深度;TOF(飞行时间)的原理类似于激光雷达的,所不同的是,激光雷达是向一个平面发射脉冲(其实是一点,通过旋转),而TOF深度相机是向一整个视野面发射脉冲激光;
如上图所示,RGB-D相机通常有一个彩色单目,和一个发射头一个接收头;
其实深度相机和单目相机是差不同的,两者最后的输出都是一幅RGB-D彩色图和一幅深度图像(双目输出深度图像前要根据其原理稍微计算一下),所以两者的功能用途也基本一致;
深度图如下:
下面看几个RGB-D相机的demo;
官方SDK demo.
场景重建.
事件相机(Event)
事件相机是一个新东西,目前国内使用的人很少,可能很大一方面是因为他的价格,据了解CeleX5_MP Event相机的售卖价格在18000+元左右;事件相机的原理是:在一个场景中,人对动态物体观察(信息量)比静态物体会更多;
具体原理可以参考下面这个关于用 事件相机做SLAM的公开课:
Towards Event-based SLAM.
鱼眼相机
鱼眼相机其实不算是一个单独的分类,因为它只是在镜头上使用了广角镜头,使其视野可以达到200°-250°,所以,它的畸变也是非常大的。
- 按照色彩 可以分为彩色相机和黑白相机
目前来说黑白相机用的很少了,但是彩色相机获取的图像是RGB三通道,而黑白相机获取的是单通道,黑白相机丢失相应的场景信息的同时,也意味着在同等器件工艺下,黑白相机能够达到很高的帧数; - 按照用途可以分类可以分为普通相机、工业相机
普通相机和工业相机的直观区别是,普通相机一般是免驱的,即插即用,而工业相机一般需要相应的软件或者SDK驱动才能打开使用;在具体参数上,工业相机一般拥有更高的帧率和分辨率等其他性能参数,其精度和其他参数更加标准;其实上面所聊到的CCD和CMOS,几乎只有工业相机才有这样的区别,普通USB相机几乎都是CMOS的; - 按照曝光方式 可以分为卷帘和全局
全局曝光指的是当光圈打开后,整个图像芯片同时曝光;卷帘曝光指的是:当光圈打开后,还存在具有一定间隔的卷帘来控制传感器的曝光时间;具体差别可以参看下面的文章;
聊聊快门:卷帘/全局快门与果冻效应. - 按照感光元器件感光方式 可以分为线阵和面阵
线阵
面阵
相机参数
相机参数可以分为:焦距、帧率、分辨率、视野(视场角)、曝光、gamma、畸变等等;
这里区别分类和参数的条件是一旦相机确定了,它的类别也就确定了,但是它的参数是可以修改的
1.焦距
可以从上面成像原理图上看出,焦距是 一个最直观的参数,我们也可以根据需求,选择合适焦距的镜头;
2.帧率
帧率是一个被影响的参数,因为当我们主动去调整其他参数达到一定极限时,帧率是一个被迫改变的值,通常能影响帧率的参数有曝光、分辨率等等,同时帧率在RM中是最重要的 一个指标,30FPS的视频我们人眼就认为是动态的,但是在机器使用时这个参数时越高越好的,因为上下位机传输一般是115200/96000,所以帧率没有真正意义上的电控极限,但是机械极限肯定是存在的;
3.分辨率
分辨率是基础参数之一,其最大数值能很高的反映相机性能;
4.视场角
因为图像时一个平面,我们相机不可能探测的180°环境(除了那种鱼眼),所以一般水平视角在40°-50°的样子,垂直视角在60°+,这就是视场角的概念;
了解到这里,我们就可以根据自己需求选择镜头了,具体镜头焦距计算方法见[5]
5.曝光
曝光就是光圈打开后,整个图像芯片暴露在光线下的时间,其效果如上图所示,从上到下曝光时间减少;拍摄能自主发光的物体时,降低曝光时间可以减少环境光的影响。在这RM比赛上时,很好用的,因为一方面降低曝光时间可以提高帧率,另一方面可以减少环境中其他环境干扰因素;
6.gamma
gamma参数效果如上图所示,输入数值较小时输出对数入的比值较大,由此可以提高图像暗处的亮度。
7.畸变
在上面说镜头的时候提到,镜头可以分为无畸变镜头、广角镜头等等,因为图像本身只是一个平面,所以我们如果想在图像上显示更多信息,那么一些地区势必要被压缩挤进去,如上图桶形失真,但是图像中间的区域几乎是不失真的,对于具体失真的强度大小,其实在相机模型中有另外一个参数描述:内参;
相机模型
在机器人应用中,我们强调一切信息 数学化,相机也是可以用具体的数学模型描述的;
首先是坐标系:为了很好的量化相机信息,我们一般选择下面四个坐标系
1、世界坐标系:世界坐标系是一个三维坐标系,是按照需求任取的,通常根据机器人整体情况选取;
2、相机坐标系:三维坐标系,以相机光心为原点;
3、图像坐标系:二维坐标系,单位mm,描述感光元器件上真实的成像尺寸;
4、像素坐标系:二维坐标系,单位pixol(像素点),描述图像在显示设备上显示的信息,通常opencv以左上角为原点;
坐标系和坐标系之间的变换可以参考上面图上的公式,其中,从世界坐标系到相机坐标系变化的参数,称为相机的外参;
这里其实是参考了[1]视觉slam十四讲和[8]沈航老哥的总结,感兴趣的同学可以去看看;
单目测距
上面我们说到,单目是无法测距的,但是真的没有办法 测吗?
看个视频放松一下.
单目测距的方法有以下几条:
1、找参照
上面那个视频其实就是通过找参照的方法,原理就是相似三角形,很多问题可以通过这种 找参照的方法解决;
2、PNP(最常用的P4P)
PNP是一种视图几何的方法,一般我们用的最多的还是P4P,具体算法细节,可以参看最下面 参考资料[1]视觉SLAM十四讲
3、相机移动
抛开人的主观感受,其实我们有一种最直接的认识,当我们移动时,远处的物体在我们视野中移动很小,而近处的物体在我们视野中移动很大,这也算是几何的一种方法,在SLAM中经常 用于特征点匹配;
先到这了,也乱七八糟的码了几千字,如有错处,请不舍指教‘’后续有时间再更…(咕咕咕?)
参考资料
[1]:视觉SLAM十四讲-相机模型部分
[2]: 光学
[3]:https://blog.csdn.net/u010750137/article/details/91344986
[4]:https://blog.csdn.net/qq_27923041/article/details/106858708
[5]:http://www.skcircle.com/?id=1187#cmt109
[6]:https://blog.csdn.net/whl970831/article/details/100713217
[7]:https://zhuanlan.zhihu.com/p/33920660
[8]:https://www.bilibili.com/video/BV1Rh411o7Jb
[9].https://blog.csdn.net/qq_40770527/article/details/104827855(工业相机选型)