【事件相机整理】硬件介绍、参数与性能指标

2024-03-26 16:18

本文主要是介绍【事件相机整理】硬件介绍、参数与性能指标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文仅用于自己学习整理,不保证内容的完整性和准确性,仅供其他朋友参考。转载请注明出处。

1. 总线与感光器件

1.1 总线:AER

AER 全称 Address-Event-Representation,是一种在生物启发芯片之间传输脉冲信号的通信协议。用于传输事件数据。
Standard address event representation (AER) protocol. The address of the spiking neuron is encoded as a unique binary address, which is broadcasted on a digital bus. The decoder on the receiver de- codes the address and directs the signal to the appropriate location.Standard address event representation (AER) protocol. The address of the spiking neuron is encoded as a unique binary address, which is broadcasted on a digital bus. The decoder on the receiver de- codes the address and directs the signal to the appropriate location.

1.2 传感器形式:ATIS, DAVIS, DVS

DVS: Dynamic Vision Sensor,最基本的感受器,当亮度发生一定变化时产生事件。并不提供绝对亮度。一般来说提到的“事件”指的就是“纯DVS”输出的数据;

ATIS: Asynchronous Time Based Image Sensor,稍微早一些的事件相机采用这种传感器,能够提供事件信息和绝对亮度。简单来说是把每个DVS做到一个像素中,用于触发输出图像绝对值(Absolute Intensity)。具体原理并不是很了解,但存在一些缺点:1. 像素面积较大(因为融入了DVS做触发),2. 在光线较暗情况下触发速度慢,容易在总线上发生数据冲突

DAVIS: Dynamic and Active Pixel Vision Sensor,能够提供事件信息和绝对亮度,现在大多数提供绝对亮度的事件相机是这种方式。原理是将传统动态像素传感器(Active Pixel Sensor)和DVS做到一个像素,由DVS进行触发。由于电路原理,所占用的面积仅增加了5%。优点是:1. APS可以设置恒定速度(帧率)触发,也可以由DVS触发;2. 面积较小。缺点是:APS的动态响应相对较弱(55dB)

一般而言,DVS常包括了ATIS和DAVIS,且“事件相机”这一词也不区分是否包含完整绝对值图像。

2. 重要参数

2.1 分辨率

分辨率是使用者最在意的一个参数,一般而言DVS的分辨率不高,但也在快速提升,目前最高的已经能达到 1280 × 960 1280\times960 1280×960。但大多数还是在1000以下。

2.2 变化阈值C (Contrast sensitivity)

每个像素是否产生事件,是这个像素对应的亮度变化是否达到了一定的阈值,这个阈值一般是10%~50%的当前亮度,且大多数可以自行设定。阈值是个相对值也造就了DVS在光线极强极弱的情况下仍能感受到变化的原因(140dB)。从原理上来说,类似于一个电路中的比较器,达到上下阈值时重置并产生事件。
在这里插入图片描述

2.3 Fill Factor (感光面积)

前面提到一个像素中只有一小部分是DVS,且DVS中只有一部分面积用于接收光子。Fill Factor表示整个芯片区域上,有多大的面积能够感受光子。一般现有的传感器在20%左右,即真实世界反射过来100个光子大概只有20%被接收到。这个参数我认为应该是越大越好,但其实影响不大。

2.4 Pixel Size (像素大小)

从使用者角度来说,并不在意一个像素的大小。但像素的大小决定了芯片的大小,进而极大地影响了芯片硅的成本。

2.4 其他一些参数

功耗:一般都是 m W mW mW 级,从十几到几百不等,但几乎不会达到 W W W
延迟:一般都是 μ s \mu s μs 级,从个位数到上百不等,但一般不会超过100 μ s \mu s μs
动态范围:一般在 120 d B 120dB 120dB以上,性能强的能达到 140 d B 140dB 140dB,弱的也在 50 d B 50dB 50dB以上达到普通相机水平
噪声强度:一般指 25 ° 25\degree 25°下平均每像素每秒产生的噪声数,一般在 0.03 − 0.2 0.03-0.2 0.030.2之间,即每个像素大概1s内有零点几个发生的事件是噪声导致。

3. 噪声模型

3.1 产生噪声的原因

目前学术界对噪声的产生原因并没有完整的研究,只能给出一些造成的产生原因。

自然场景反射光子的不稳定:即一个像素对应的自然场景反射的光子不均匀,导致传入感光器件的光子不稳定,造成事件的不稳定,这个没法避免

变化阈值C的不稳定:由于前面介绍,事件产生是变化达到了当前亮度的一定百分比的C,类似于一个比较电路,那么电路中电流的不稳定会造成阈值的不稳定。实际比较的阈值一般认为是以理论值C为期望的正态分布,标准差 σ \sigma σ一般在 2 % − 4 % 2\%-4\% 2%4%

固定模式噪声 (FPN):这类噪声是按空间分布的,一般是制造时产生的不一致性所引起的。更多查Wiki吧:https://en.wikipedia.org/wiki/Fixed-pattern_noise

总线冲突:运动速度较快时,大量数据在总线发生冲突,造成一定的错误。

3.2 噪声模型

既然学术界连产生原因都没分析透彻,那么噪声模型也只是不完善的。为何要考虑噪声模型?一是使用时可以根据噪声模型进行建模,取得一定抗扰性能的算法分析;二是有许多仿真器和模拟器,在生成数据时根据模型生成噪声从而更加真实。

常见的噪声模型用概率形式表示:例如一个事件观测到时,认为他是一个高斯分布和均匀分布的叠加,高斯分布的期望为真实值,而均匀分布代表没有事件时产生噪声的概率。

去噪声的方法:存在许多去噪声的方法,但核心是围绕保证快速实时性,因为数据到来很快且多,如果不是这种高速算法,那么就没有什么意义了。个人见到的去噪方法有:1.窗口抑制,即当一个事件发生后周围一个窗口(空间窗口,多为一圈即8个像素)内短时间内的事件认为是噪声;2.倔强时间法,refractory period,即认为当一个事件发生后,这个像素在短时间内产生的接下来的事件都是噪声,这种方式可以避免高速运动时同一个位置产生数据太密。

4. 综合评价

综合评价就根据之前的参数进行分析吧。列举一个表格,会给出参数,可以横向对比。以国产的CelePixel CeleX-V为例,我们发现它在分辨率和数据输出类型上吊打绝大多数DVS,但相应的噪声和功耗高一些、感光面积相对较小。
在这里插入图片描述当然对大多数人来说最重要的还是价格,附个人查询表格一张,仅供参考
在这里插入图片描述

这篇关于【事件相机整理】硬件介绍、参数与性能指标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/849089

相关文章

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或