欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

全面解读:轻松掌握事件相机工作原理系列篇

最编程 2024-07-23 09:28:12
...

0、前言

事件相机是一款新型传感器。不同于传统相机拍摄一幅完整的图像,事件相机拍摄的是“事件”,可以简单理解为“像素亮度的变化”,即事件相机输出的是像素亮度的变化情况。

事件相机英文名为:Event-based Camera,或简称为Event Camera,缩写为EB。有时也称作DVS(Dynamic Vision Sensor “动态视觉传感器”)、DAVIS(Dynamic and Active-Pixel Vision Sensor)等。

1、传统相机的缺点

传统相机,无论是CMOS传感器,还是CCD传感器,亦或是RGBD相机,都有一个参数:帧率。它们是以恒定的频率拍摄获取图像。这样,即使帧率能够达到1KHz,那也具有1ms的延时。所以传统相机存在一定的延迟问题。

除此之外,传统相机需要通过一定时间的曝光,使感光器件积累一定的光子,那么在曝光时间之内如果物体在高速运动,则会产生模糊,这也是传统相机的一个问题。

另外,传统相机的动态范围较低,具体表现为在光线极差或者亮度极高时,相机获取的信息有限。

(图:延迟,造成检测框滞后于行人;模糊,高速运动球杆拍摄不清;动态响应差,亮度很高时丢失信息)

以上三点,是由于相机自身硬件的限制,即使高性能相机能够一定程度减小这些问题,但由于相机原理,这些问题无法避免。这些问题极大地限制了一些应用场景。而事件相机完全不存在这些问题。

2、事件相机基本原理与优势

事件相机的最基本的原理,即:当某个像素的亮度变化累计达到一定阈值后,输出一个事件。这里强调几个概念:a) 亮度变化:说明事件相机的输出和变化有关,而与亮度的绝对值没有关系;b) 阈值:当亮度变化达到一定程度时,将输出数据,这个阈值是相机的固有参数。

下面重点解释什么是一个“事件”。事件具有三要素:时间戳、像素坐标与极性。一个事件表达的是“在什么时间,哪个像素点,发生了亮度的增加或减小”。

当场景中由物体运动或光照改变造成大量像素变化时,会产生一系列的事件,这些事件以事件流(Events stream)方式输出。事件流的数据量远小于传统相机传输的数据,且事件流没有最小时间单位,所以不像传统相机定时输出数据,具有低延迟特性。下面的动图揭示了事件相机与传统相机的成像的不同。

(动图:左侧为有一个黑色斑块的圆盘,匀速旋转时,右上方的传统相机会定时拍摄完整的图像,下方事件相机的输出会仅输出变化,即黑斑的运动。当圆盘不转时,传统相机依旧傻傻的拍摄图像,而事件相机不会产生任何输出)

下面这幅图展示了实际事件相机拍摄的数据,红色和蓝色分别表示当前像素亮度的增加或减小。这幅图是将一段时间内的事件流累积获得的一组事件。

由于事件相机的成像原理,我们可以发现只要亮度一有变化就会输出,且仅输出变化的数据占用了很小的带宽,同时由于事件相机更擅长捕捉亮度变化,所以在较暗和强光场景下也能输出有效数据。事件相机具有低延迟(<???)、高动态范围(?????)、极低功耗(???)等特性。

3、事件相机发展与研究现状

事件相机诞生于1990年,那个时间许多研究人员探讨动物感知环境的方式,发现对变化更为敏感,所以设计出了实验室用的事件相机。

2008年,诞生了第一款商用的事件相机。这么看来,事件相机从商用到现在也刚刚过了十来年。目前,许多商业公司致力于事件相机的发展,有韩国Samsung、法国prophesee、瑞士iniVation、中国CelePixel(芯仑科技)等。

在学术上,苏黎世联邦理工学院(ETH)的机器人与感知团队对事件相机有着系统深入的研究,其他高校例如帝国理工、慕尼黑大学等也开始相关研究。

事件相机,目前在在特征提取与跟踪、光流、三维重建、SLAM、模式识别、控制等方向正在不断进行着研究,具有广泛的应用前景。

4、扩展链接:

ETH维护的事件相机资料汇总:

https://github.com/uzh-rpg/event-based_vision_resources

本文作者目前从事于事件相机SLAM问题的研究,也是「3D视觉从入门到精通」星球的嘉宾,欢迎大家一起多多交流,也可以前往相关研究博客:

https://blog.****.net/tfb760/category_9511063.html,

或公众号后台回复「事件相机作者」,即可获得联系方式。

上述内容,如有侵犯版权,请联系作者,会自行删文。

推荐阅读