事件相机预处理芯片:基于混合内存计算的图像恢复与区域提取
1. 项目概述:为事件相机打造一颗“聪明”的本地大脑
如果你接触过机器人、自动驾驶或者智能监控,大概率听说过“事件相机”(Event-based Camera),或者更学术一点的名字——神经形态视觉传感器。和咱们手机里每秒拍几十张完整照片的普通摄像头不同,这玩意儿是个“急性子”,它每个像素独立工作,只报告亮度变化,没变化就沉默。这种“事件驱动”的模式让它天生具有超高动态范围、极低延迟和超低功耗的潜力,特别适合那些需要快速反应、又得省电的场景,比如无人机避障、车载感知。
但理想很丰满,现实有点骨感。事件相机输出的原始数据,是一连串稀疏的、异步的“事件点”,看起来就像夜空中随机闪烁的星星,里面还夹杂着大量的传感器固有噪声。这些噪声点会导致后续处理模块频繁无效“唤醒”,白白耗电;更麻烦的是,物体表面如果是光滑的(比如汽车玻璃),可能不产生事件,导致目标在事件图像中“断裂”成好几个碎片,给目标识别和追踪带来巨大困难。
所以,一个高效的片上预处理系统变得至关重要。它需要实时完成两件核心工作:图像恢复,即滤除噪声并填补空洞;区域提取,即快速定位出图像中有物体的区域。传统做法是把原始数据送到CPU或GPU,用软件算法处理,但这免不了在存储器和处理器之间来回搬运数据,也就是著名的“内存墙”问题,功耗大头都花在路上了。
我们这次要聊的,就是一颗专为解决这个问题而生的芯片。它不再走传统的老路,而是把计算直接“嵌入”到内存阵列里,这就是内存计算的精髓。这颗芯片采用了一种独特的11晶体管混合内存单元,在一颗芯片上同时实现了高速的图像恢复和高效的区域提取,最高能效比达到了惊人的1220 TOPS/W(每瓦特每秒万亿次操作)。简单说,它就像是给事件相机配上了一颗高度集成、极度省电的“本地大脑”,让传感器在产生数据的源头,就能完成初步的“理解”和“净化”。
2. 核心思路:用“物理特性”代替“数字计算”
在深入芯片细节前,咱们得先搞明白它的核心设计哲学。这决定了它为什么能这么省电。
2.1 内存计算:从“搬运工”到“车间主任”
传统冯·诺依曼架构里,内存和处理器是分开的。计算时,数据得像原材料一样从仓库(内存)搬到车间(处理器),加工完再搬回去。这个过程耗电、耗时,成为性能瓶颈。
内存计算的想法很直接:为什么不把简单的加工设备直接放到仓库里呢?在这颗芯片里,“仓库”就是存储图像数据的CRAM内存阵列,“加工”就是图像恢复中的扩散滤波和区域提取中的投影统计。通过精心设计每个存储单元的电路,让它不仅能存数据(0或1),还能利用电流、电压或电荷的物理特性,与邻居单元进行模拟域的交互,从而实现并行计算。
这样做最大的好处就是并行性和能效。例如,对于一张240行320列的图像,传统的处理器需要逐个像素扫描处理,而在这颗芯片的CRAM阵列中,所有7.68万个像素单元可以同时进行扩散操作,或者同时向行、列方向进行投影,相当于一次完成了数万次操作。这种大规模的并行性是数字逻辑电路难以企及的,也是能效飙升的关键。
2.2 混合内存单元:SRAM的速度 + DRAM的密度 + 模拟计算的巧思
既然要把计算放进去,存储单元就不能是普通的6T SRAM了。论文中提出的CRAM单元是一个11晶体管的混合结构,可以把它理解成一个“三模怪杰”:
- SRAM模式:核心是一个6T SRAM结构,用于可靠、高速地存储数字化的图像数据(每个像素是0或1)。这是数据稳定存储的基础。
- DRAM模式:通过一个额外的晶体管和电容,单元可以作为一个1T1C DRAM使用。这个模式在本文的设计中主要服务于图像恢复。当切换到DRAM模式时,存储的电荷可以代表一个模拟电压值,为后续的模拟扩散操作提供了可能。
- 计算模式:这是设计的精髓。单元内集成了两个关键的NMOS管(MDH和MDV)和一个“投影管”MS。
- MDH & MDV:在图像恢复时,它们受控导通,将当前单元与它的水平和垂直邻居在电气上连接起来,形成一个电阻网络,允许电荷(代表像素信息)在相邻单元间扩散,实现滤波和空洞填充。
- MS:在区域提取时,它扮演关键角色。通过控制它和相应的行/列投影线,可以一次性读出整行或整列中所有为“1”的像素信息,实现快速的投影统计。
这个设计巧妙地利用了晶体管的多种状态,让同一个物理单元在不同时刻承担不同任务,实现了硬件资源的极致复用,节省了芯片面积和功耗。
2.3 算法与硬件的协同设计:让硬件做它最擅长的事
好的芯片设计一定是算法和硬件深度结合的。这里有两个关键算法被“硬化”到了电路里:
- 基于扩散的图像恢复算法:这不是一个复杂的数字图像滤波算法,而是利用CRAM阵列天然形成的RC电阻电容网络。当启用扩散模式时,每个单元存储的电荷会通过电阻(MDH/MDV)向四周邻居流动。经过一段时间后,孤立的噪声点(电荷少)会被周围大量的“0”像素拉低,而小的空洞则会被周围物体的电荷填补。最后,通过一个比较器将模拟电压值判断回数字0/1。整个过程完全在模拟域并行完成,能耗极低。
- 迭代选择性搜索区域提取算法:区域提取的目标是找到图像中所有连通物体(前景)的边界框。传统软件算法如连通域标记需要多次访问内存。这里的硬件算法非常巧妙:
- 投影:通过控制MS管,将一整行所有像素的值“或”起来,投影到水平线PL_H上。如果这行有任何像素为1,PL_H的电压就会被拉高。同理,对列进行垂直投影。这相当于一次性获得了图像在X和Y轴上的投影直方图。
- 迭代:首先,对整幅图像进行垂直投影,找到所有包含物体的列范围。然后,只在这些列范围内,进行水平投影,找到行范围。接着,再用新的行范围去约束,做垂直投影……如此迭代,直到找到的物体数量不再变化。这个过程快速缩小了搜索区域。
- 后处理:在数字控制器中,对找到的候选区域进行合并(解决碎片化问题)和过滤(去除噪声小点)。阈值可编程,适应不同场景。
这个算法完美适配了IMC的硬件特性:投影操作是全局并行的,迭代过程只需在行列间切换,非常适合用硬件状态机实现,避免了复杂的随机访问和全局扫描。
3. 芯片架构与关键模块深度解析
理解了核心思想,我们拆开芯片看看里面是怎么组织的。整个芯片可以看作一个为事件流定制的微型处理系统。
3.1 顶层数据流与控制
芯片的顶层架构围绕CRAM宏单元展开。数据流始于神经形态视觉传感器产生的异步地址事件表示数据包。这些数据包首先经过一个AER解码器,被翻译成具体的行地址和列地址。由于事件是异步到达的,而CRAM阵列是同步操作的,需要一个异步FIFO缓冲区来充当“速度适配器”,缓存这些事件,再以系统时钟节奏写入CRAM的指定位置。
CRAM控制器是整个芯片的“指挥中心”。它根据配置,控制芯片在四种主要模式间切换:
- 清零模式:将整个CRAM阵列复位。
- 写入模式:将事件数据写入CRAM对应像素。
- 图像恢复模式:启动全局电荷扩散,进行滤波和填充。
- 区域提取模式:执行迭代投影算法,定位物体边界框。
控制器还包含了实现RP更新算法的数字逻辑,负责对投影检测结果进行合并与过滤。
3.2 CRAM宏单元:计算发生的核心战场
CRAM宏是芯片的核心,一个320x240的阵列,存储着当前帧的二值化事件图像。其特殊之处在于外围的投影与检测模块。
- 行列投影线:每一行和每一列都有一条独立的投影线。在投影模式下,它们不是简单的导线,而是承载模拟电压信号、用于并行信息汇聚的关键网络。
- 投影检测器:每一行/列的尽头都有一个PD模块。它内部包含:
- 上拉/下拉网络:用于在投影前将PL线初始化为确定状态(高或低)。
- 灵敏放大器:这是模拟信号到数字信号转换的关键。它将PL线上的电压与一个可编程的参考电压Vref进行比较。如果PL线电压(由该行/列所有“1”像素充电产生)高于Vref,则输出数字‘1’,表示该行/列存在物体像素。
这里有个精妙的省电设计:在投影时,并不是给PL线主动充电。而是将目标PL线置为浮空,然后给交叉方向的PL线全部上拉到电源电压。这样,只有那些存储了‘1’的像素单元,其MS管会导通,将浮空的目标PL线“拉”向高电压。这个过程是电荷共享,而非从电源强灌电流,因此功耗极低。
3.3 图像恢复的模拟实现:把阵列变成电阻网络
当控制器切换到IR模式时,CRAM阵列的形态发生了根本变化。此时,每个单元内的MDH和MDV晶体管被打开,其导通电阻相当于一个电阻R。单元存储节点对地的寄生电容是C。于是,整个阵列变成了一个巨大的二维RC网格电路。
初始时,每个节点(像素)的电压由存储的数字值决定(‘1’为高电压,‘0’为低电压)。当你打开扩散使能信号一段时间内,根据基尔霍夫定律和RC电路的瞬态响应,电荷会从高电压节点流向低电压节点。其效果等同于一个各向同性的高斯滤波或热扩散过程:
- 孤立噪声点:周围被大量‘0’包围,其电荷迅速流失,电压下降,最终被判定为‘0’。
- 小空洞或断裂:被‘1’包围的小区域,电荷会从四周流入,使其电压升高,最终被判定为‘1’,从而连通了物体。
扩散效果的三重控制:通过调节扩散使能信号DE的脉冲宽度、脉冲幅度和脉冲次数,可以精确控制扩散的“强度”和“范围”,从而适应不同噪声水平和物体形态的场景。这种模拟处理的速度和能效,是数字卷积滤波无法比拟的。
实操心得:模拟计算的非理想性应对模拟计算最怕工艺偏差。论文中提到了一个关键设计:在CRAM阵列四周增加了一圈哑元单元。这些单元的结构和内部单元一样,但不存储有效数据。它们的作用是确保阵列边缘的单元和中心的单元有着相同的扩散环境(即相邻单元数量相同)。如果没有这圈哑元,边缘单元的电荷只能向三个或两个方向扩散,而中心单元可以向四个方向扩散,导致图像不同区域的滤波效果不一致,中心可能比边缘更“模糊”。这个细节是保证算法鲁棒性的关键,在类似设计中必须考虑。
4. 区域提取的硬件加速流程
区域提取是芯片的另一个重头戏,它展示了如何用简单的硬件原语(投影)高效解决一个复杂的搜索问题。
4.1 投影与检测的硬件时序
一次完整的投影检测周期可以分为几个阶段,我们以检测第i行(水平投影线PL_H)为例:
- 复位阶段:通过PD模块的下拉网络,将PL_H和所有PL_V线都拉低到地。
- 配置阶段:将目标线PL_H置为浮空(断开上拉和下拉)。同时,将所有垂直的PL_V线通过上拉网络拉到电源电压VDD。
- 投影阶段:此时,对于第i行第j列的单元,如果其SRAM中存储的是‘1’,那么其MS管栅极(连接PL_V)为高,源极(连接PL_H)浮空,管子导通。PL_V上的高电压会通过MS管对浮空的PL_H线上的寄生电容充电。整行所有存储‘1’的单元会同时向PL_H充电。
- 检测阶段:经过一个固定的投影时间后,灵敏放大器将PL_H线上的电压与Vref比较。如果电压高于Vref,说明该行至少有一个‘1’,输出检测结果为‘1’,并记录行号i。Vref的值可以通过一个4位DAC调节,用于控制检测的灵敏度,避免因漏电或噪声导致的误判。
这个过程对320列是并行完成的,一次操作就获得了该行是否有物体的信息,等效于完成了一次320输入的“或”运算。
4.2 迭代选择性搜索算法详解
ISS算法是减少投影次数的关键。我们通过一个简单例子来理解: 假设图像中有两个物体,坐标范围分别是物体A: 行 [2,5],列 [3,6];物体B: 行 [6,7],列 [8,9]。
- 第一次迭代(垂直投影):对所有240行进行垂直投影(即检查每一列)。我们会发现列[3,6]和[8,9]有信号。这样我们就得到了物体的粗略列范围。
- 第二次迭代(水平投影):我们不再需要扫描所有行,只在上一步找到的列范围(即第3至6列和第8至9列)内,进行水平投影。这次我们会发现行[2,5]和[6,7]有信号。我们得到了更精确的行范围。
- 第三次迭代(垂直投影):利用上一步得到的行范围,再次进行垂直投影,可以进一步精确列范围。
- 迭代终止:当连续两次迭代找到的物体数量(连通区域数)不再变化时,算法停止。通常2-3次迭代即可收敛。
这个算法的优势在于,每次迭代都大幅减少了需要投影的行或列的数量,从而显著降低了总体的操作时间和能耗。算法流程由CRAM控制器中的状态机硬件实现,高效且低功耗。
4.3 后处理:合并、过滤与输出
投影检测得到的是初步的、可能存在断裂或噪声的候选框。数字控制器中的RP更新逻辑负责“精加工”:
- 尺寸过滤:任何宽度或高度小于预设阈值
SIZE_MIN的候选框,直接被判定为噪声,丢弃。这消除了大部分散点噪声。 - 间隙合并:这是解决物体碎片化的关键。对于一个新检测到的物体框,计算它与之前已确认的每个物体框在X和Y方向上的间隙。如果两个方向上的间隙都小于预设阈值
SLOT,则认为这两个框属于同一个物体,将它们合并(取并集)成一个更大的框。这个操作有效地将因物体表面光滑而断裂的部分重新连接起来。 - 坐标输出:最终,每个物体的边界框坐标(起始行、结束行、起始列、结束列)被输出,供上层视觉算法(如分类、跟踪)使用。
5. 性能评估、实测数据与设计权衡
论文提供了详实的测试数据,让我们能客观评估这套设计的优劣。
5.1 能效与性能:数字说话
芯片采用65nm CMOS工艺流片。测试结果非常亮眼:
- 峰值能效:在0.8V供电电压、30MHz工作频率下,纯图像恢复模式的能效达到1220 TOPS/W;图像恢复+区域提取联合模式的能效为915 TOPS/W。这个指标远超同期大多数数字或存内计算方案。
- 处理速度:区域提取的执行时间与图像中物体数量N大致呈线性关系。论文给出了一个经验公式:最小执行周期数 ≈ 8N + 8(仅RP计算)或 10N + 12(包含控制器开销)。对于一个有5个物体的场景,在10MHz下,处理一帧的时间在微秒级,完全满足事件相机的高帧率(等效)需求。
- 精度:使用7万帧真实事件数据进行测试,采用F1分数(精确率和召回率的调和平均)作为评价指标。在常用的交并比阈值下,该芯片的RP算法精度显著高于纯IMC方案,这主要归功于后处理合并算法有效解决了碎片化问题。测试还表明,其精度对扩散电阻和扩散时间的变化不敏感,鲁棒性很好。
5.2 与现有方案的横向对比
论文图6的对比表格非常有说服力。我们将关键点拆解如下:
| 对比维度 | 本设计 (This Work) | 纯数字方案 (如SOVC‘20) | 前期IMC方案 (如ASSCC‘21) | 前期IMC方案 (如JSSC‘21) |
|---|---|---|---|---|
| 核心技术 | 混合IMC (CRAM) | 数字逻辑 | IMC (9T SRAM) | IMC (9T SRAM) |
| 主要功能 | 图像恢复 + 区域提取 | 事件生成、区域提取 | 区域提取 | 图像去噪 |
| 能效 (TOPS/W) | 1220 (IR) / 915 (IR+RP) | 6.3 | 389 | 51.3 |
| 处理吞吐 | 9600 GOPS (IR) / 976 GOPS (IR+RP) | 未明确 | 1262 fps @ 1Meps | 134.4 GOPS |
| 优势分析 | 功能集成度高,能效极致,解决了噪声和碎片化问题 | 灵活性高,功能复杂 | 区域提取能效高 | 图像去噪能效高 |
| 局限分析 | 算法固化于硬件,灵活性受限;处理二值图像 | 能效低,内存墙问题严重 | 仅区域提取,无图像恢复,对噪声敏感 | 仅图像去噪,无区域提取 |
核心结论:本设计在能效上实现了数量级的领先,关键在于将图像恢复和区域提取这两个紧密关联的任务,用同一套高度优化的混合IMC硬件完成,避免了数据在不同处理模块间搬运的消耗,实现了“1+1>2”的效果。
5.3 设计中的权衡与考量
任何芯片设计都是权衡的艺术,这个设计也不例外:
- 精度 vs. 能效/速度:采用了二值化的事件表示和模拟计算,牺牲了灰度/彩色信息的精度,换来了极致的能效和并行度。对于事件相机的许多应用(如移动物体检测、跟踪),二值轮廓信息往往已足够。
- 灵活性 vs. 能效:算法(如扩散强度、合并阈值)虽然可参数化配置,但计算范式(扩散、投影)是硬件固化的。这不如通用处理器灵活,但正是这种“专用化”带来了能效红利。它是一种针对特定任务(事件相机预处理)的领域专用架构。
- 面积开销:11T的CRAM单元比标准6T SRAM面积大。但考虑到它集成了存储和两种计算功能,并且省去了单独的数字计算单元和频繁的数据通路,总体芯片面积和能效收益仍然是正的。
- 工艺偏差影响:模拟计算对晶体管参数的波动敏感。设计中通过使用哑元单元环、可编程的参考电压Vref和扩散控制信号DE,来增强鲁棒性。实测数据也显示其在工艺角变化下性能稳定。
6. 应用展望、挑战与开发启示
6.1 潜在应用场景
这颗芯片的用武之地非常明确:一切对功耗和延迟极度敏感、且使用事件相机的边缘视觉应用。
- 智能物联网终端:永远在线的门铃、安防摄像头,需要从海量事件中快速甄别出人、车等有效目标,只唤醒主处理器处理关键信息。
- 移动机器人/无人机:在有限的电池容量下,实现实时避障和快速目标反应。
- 可穿戴设备:视觉辅助眼镜或AR设备,需要长时间工作,低功耗预处理至关重要。
- 车载传感系统:作为激光雷达或毫米波雷达的补充,提供超低延迟的视觉感知预处理。
6.2 当前局限与未来演进方向
当然,这项研究处于原型阶段,也有其局限性和可改进空间:
- 信息维度单一:目前处理的是二值事件图像。未来可以探索处理带极性(亮度增/减)的事件,甚至尝试结合灰度信息,以支持更复杂的任务。
- 算法扩展性:当前的扩散和投影算法虽然高效,但功能相对固定。一个可能的方向是设计更可编程的CRAM单元,支持更多种类的模拟计算原语,使其成为一个更通用的“模拟存内计算阵列”。
- 工艺缩放:本文采用65nm工艺。更先进的工艺(如28nm, 16nm)能带来更低的功耗和更高的集成度,但模拟电路在先进工艺下的设计挑战(如电源电压降低、噪声影响增大)也需要重新评估。
- 系统集成:最终,这样的预处理芯片需要与事件相机传感器、以及后续的神经网络加速器或微控制器紧密集成,形成完整的“传感-处理”片上系统,进一步减少片外通信开销。
6.3 给硬件算法协同设计者的启示
从这个设计中,我们可以提炼出几条对从事边缘AI、存内计算领域的设计者非常有益的启示:
- 从问题本质出发,而非强行移植算法:不要想着把成熟的数字图像算法(如中值滤波、形态学操作)直接“硬化”。要回到事件数据稀疏、二值、异步的特性,以及去噪、连通域标记的本质需求,寻找能用物理特性(如电荷扩散、电流求和)自然表达的算法。“物理启发式计算”是超低功耗设计的宝库。
- 拥抱“不精确”的计算:在边缘,绝对的数值精度往往不是第一追求。利用模拟计算的近似性,以极低的代价获得“足够好”的结果,是突破能效瓶颈的关键。需要建立新的评估体系,权衡精度损失与能效收益。
- 全局优化数据流:最高的能效提升往往来自于消除数据移动,而非优化某个计算单元。本设计成功的关键在于,从传感器事件流入,到恢复后的图像和提取的ROI框输出,数据始终在CRAM阵列内部或周边流动,形成了高度局部化的处理流水线。
- 验证策略至关重要:模拟存内计算芯片的验证比数字芯片复杂得多。需要搭建包含传感器模型、噪声注入的完整仿真环境,并设计大量的测试向量来覆盖工艺角、电压温度变化等场景。流片后的测试方案也需要精心设计,以准确表征其模拟计算行为。
这颗基于混合内存计算的芯片,为我们展示了一条通往极致能效的边缘视觉处理路径。它不追求通用和灵活,而是通过对特定任务和数据的深度理解,将算法与硅基硬件深度融合,最终在能效这个关键指标上实现了跨越式的突破。随着物联网和边缘智能的深入发展,这种“专而精”的设计哲学,将会在越来越多的场景中焕发光彩。
