DVS科普系列篇(一)——DVS的历史
前言:近些年,尽管DVS技术在国内普及程度越来越高,不过笔者在和行业相关人士交流时,发现许多人对于DVS仍然存在认知不足或误解,常见的问题比如DVS为什么仿生?DVS是不是CMOS传感器?DVS为什么有三大优势?作为从业者,笔者认为有责任也有义务和公众们科普些DVS的相关知识,以期更好地推动DVS在国内学界的研究和工业界的落地。本系列不定期更新。
作为科普系列的第一篇,本文将首先从DVS的历史谈起。
DVS全称为Dynamic Vision Sensor,也叫做动态视觉传感器。现在大家可能也会听到的一些类似EVS (Event-based Vision Sensor,事件型视觉传感器),其实源头都是来源于DVS。最早的一款可商用的DVS是由来自苏黎世联邦理工学院(后文简称ETH)的Institute of Neuroinfomartics(后文简称INI)的Tobi Delbruck教授发明设计,型号是DVS128。当然在这之前,其实有很多的工作已经完成,本文将主要讨论DVS的一些历史发展过程。
DVS是Neuromorphic Engineering的一个重要成果,Neuromorphic 这个词在中文好像没有对应的,有时候就直接翻译为神经拟态。这个词语最早由Tobi的博士导师Carver Mead教授提出的。Caver Mead任职于加州理工学院,也是大规模集成电路设计的先驱之一。摩尔定律我们现在都耳熟能详,而且也知道它是由Intel的创始人Gordon Moore提出。不过很多人不知道的是,首次使用摩尔定律来命名这个定律的人正是Carver Mead。
Carver在20世纪80年代左右提出Neuromorphic Engineering的概念,当时提出的背景是他认识到,工业实践正走在一条问题重重的道路上:在推出新产品代的竞赛中,将旧设计缩小到更小的特征尺寸比在架构级别进行创新要快。他认为解决这个问题的方法应该是向人脑学习,提倡使用模拟电子技术模拟大脑的神经处理机制。通过模仿大脑的工作原理,人类可以开发出既节能又高效的计算系统。
Misha Mohowald和Carver Mead在加州理工学院实验室(Rodney拍摄)
最先开始使用硅电路来模仿的就是视觉部分。视觉是人类和各种动物大脑的主要信息来源,而且在神经生物学上已经有了不少的研究成果。视觉还有一个额外的优点,即提供来自现实世界的实时信息,而不是存储在计算机内存中的死数据。特别是视网膜,实际上是大脑进入眼球的延伸。它的功能是从视觉场景中提取对动物有用的信息,并以高效编码的形式将这些压缩信息传递给更高层次。20世纪90年代的时候,Carver实验室已经有了一个原型的仿生类眼芯片。这个芯片由Carver当时的博士生Misha Mahowald(1963-1996)设计。Misha是神经拟态工程领域的一个天才科学家,在领域内做出了许多杰出的贡献。不过由于抑郁症,她33岁的时候以自杀的方式结束了自己的一生。为了纪念她,2016年,Tobi和INI的Rodney等人以她的名字设立了Misha Mahowald奖,用以奖励每年在这个领域内有重大发现的实验室或者个人。
Misha的硅眼芯片像素结构及其成像结果
Misha设计的“硅眼”芯片里使用了一个带有log功能的感光器,感光器产生的电流再通过跨导放大器连接到一个六边形的电阻网络,这个电阻网络是用来模仿视网膜中的水平细胞,水平细胞可以横向调整感光细胞的强度,起到一个横向抑制的作用。电阻网络的每个节点电压也是受到其他各个节点的控制,这一点上和水平细胞功能类似。如果电阻网络中的每个电阻采用相同阻值,整个网络将起到一个类似求取平均值的作用。电阻网络的输出和感光器的输出进行差分放大得到最后的输出。这个电路结构的效果就是如果整个场景没有光强的改变,那么输出就是由电阻网络决定,所有像素节点的值会一致,而且是整个的平均值。不过如果在某些像素上有较强或者较弱的特征产生,那么这个和均值的差异就会通过放大器进行放大,从而产生输出。Misha设计的这个电路奠定了后续DVS的基础,DVS参考和借鉴了其中不少的设计,比如前面的log感光器以及最后的差分放大器。当然,这个“硅眼”也有很明显的一些缺点,首先,就是庞大的电阻网络使得像素面积很大。这里的电阻在芯片里面并不是真正的电阻器件,而是由三极管模拟而成,因此单个像素需要数量众多的三极管。第二,就是三极管的掺杂浓度不能做到完全一致,使得电阻网络很难保证完全的像素一致,导致像素之间有非常大的差异,形成很大的FPN噪声。
硅眼芯片是仿生领域内的一个重要进展,它揭开了使用工作在亚阈值的三极管来搭建模拟电路模仿人和动物视网膜的序幕。不过如何高效地把数据传输出去,这也是一个需要解决的问题。解决这个问题的答案也是来自神经生物学本身。Carver的另外一名博士生MA Sivilotti提出了一种叫做AER(Address Event Representation)的机制。神经生物学家在解码神经表示的时候,发现轴突上传递的信息可以通过神经脉冲到达的相对时间进行编码。这些脉冲在幅度上是数字的,但在时间上是模拟的。它是通过接收神经元的树突从一束轴突中解码的,每个树突都被精巧地调整,以只响应某个特定的进入脉冲序列,或其任何子序列。AER根据这个原理,将事件用脉冲形式输出,而且每个事件只在有光强变化的时候才产生,每个事件都有其自己的地址和时间戳,这允许系统以一种高效且节能的方式进行通信,类似于大脑内部神经元之间的通信方式。
DVS128芯片
第一款可用的DVS芯片DVS128大概在2006年左右由Tobi完成。DVS128的分辨率为128x128。DVS128舍弃了电阻网络的形式,使得芯片尺寸和FPN噪声比“硅眼”有了很大的改善。在数据读出方面使用的是AER协议。2014年,Tobi把传统视觉传感器的电路(APS)加到DVS里面设计了一种融合的方案,第一款DAVIS芯片叫做DAVIS240,这个芯片拥有240x180的分辨率。后续这个系列发展到了DAVIS346,分辨率为346x260。2020年之后随着包括索尼、三星等传统视觉传感器巨头在这个领域内纷纷布局,目前仿生类眼传感器除了DVS系列之外,还有其他比如ATIS,EVS等产品。商业可用的最大分辨率也是达到了100万像素左右。BIS,堆叠等传统视觉传感器的工艺也被用在DVS上,使得像素尺寸越来越小。目前,最小的已经可以和常见的传统消费电子用的视觉传感器匹敌。
DVS从神经生物学而来,解决了传统视觉传感器难以同时兼顾低功耗和低延迟的问题,而且log感光器的引入也极大低提高了其动态范围。高速、高动态范围以及低功耗这三大优势显示了其未来巨大的商业前景和应用。另一方面,DVS的数据抛弃了传统视觉传感器使用的帧格式,而是仿照生物学原理使用脉冲形式输出数据,这使得在DVS上的算法设计上需要采取一些革新的思路。这个也是目前DVS生态急需加强和补足的地方。不过,笔者相信,随着DVS的生态越来越完善,DVS一定会在未来的视觉领域占有非常重要的地位。
参考文献:
1. Mead C. How we created neuromorphic engineering[J]. Nature Electronics, 2020, 3(7): 434-435.
2. Mead C A, Mahowald M A. A silicon model of early visual processing[J]. Neural networks, 1988, 1(1): 91-97.
3. Lichtsteiner P, Posch C, Delbruck T. A 128x128 120 dB 15us latency asynchronous temporal contrast vision sensor[J]. IEEE journal of solid-state circuits, 2008, 43(2): 566-576.