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

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

相关文章

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,