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

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通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和