ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

HVS融合视觉传感器:像素级帧事件双通路如何重塑下一代多模态视觉

HVS融合视觉传感器:像素级帧事件双通路如何重塑下一代多模态视觉

在今年的国际计算机视觉大会上,我们团队分享了一个主题:从成像到感知。我讲了整整四十分钟,核心就是HVS融合视觉传感器,以及它为什么会成为下一代多模态视觉范式的重要基础。之所以想把这个分享沉淀成文字,是因为会后有不少同行来问同一个问题:融合视觉到底是不是概念包装?它和传统相机加事件相机,本质上有什么不一样?这篇文章我就把这些年的工程思考和踩过的坑掰开来说。

1. 动态范围、时间分辨率与功耗:为什么单靠传统相机不够了

1.1 传统相机在感知任务面前的两个天花板

先聊一个很具体的场景。前几年我们做高速移动机器人的视觉感知,用的还是传统CMOS图像传感器。白天光线好时,90帧每秒的灰度图,画面干净、算法稳定;但一旦机器人快速转向,立刻就暴露两个问题:一是运动模糊,曝光时间稍微拉长一点,整帧图像边缘全是拖影;二是帧率带来的带宽压力,要跟得上快速变化,就得提帧率,帧率提上来之后,后端处理芯片的热量也跟着上来了。

这两个问题的根源在于传统相机的底层逻辑——它在努力“记录一张好照片”。为了把画面拍清楚,它需要足够的曝光时间、合理的增益和合适的帧率。但感知任务要的不是照片,而是变化、是趋势、是物体的边界在空间中的连续移动关系。你拿一台为了拍照设计的传感器去感知高速动态,相当于用单反相机连拍来抓乒乓球轨迹,能拍到,但代价极大。

动态范围是另一个典型瓶颈。一个室内场景,窗外阳光直射、室内阴影区域,两者亮度差可以达到三个数量级以上。传统CIS的动态范围通常在60到70分贝,遇到这种逆光场景,要么窗外过曝一片白,要么室内死黑什么都看不见。虽然可以用多帧HDR合成,把不同曝光时间的长短帧拼在一起,但高动态场景一旦出现运动,合成结果就会出现鬼影。这是物理原理决定的死结:帧是离散的,运动发生在帧与帧之间,任何基于多帧的重建都难以避免时序错位。

1.2 事件相机改写了“感知优先”的规则

事件相机是我很早就开始关注的技术方向。它跟传统相机在原理上就是两条路:每一个像素都独立工作,持续监测光强的对数变化,一旦变化幅度越过阈值,就立刻输出一个带时间戳的事件,包括亮度和变暗的方向。没有变化,就没有输出,像素安静地待着。

这个机制带来的直接优势非常吓人:时间分辨率可以达到微秒级别,比传统90fps的相机高好几个数量级;动态范围天然超过120分贝,因为像素的响应曲线是对数域的,亮暗极端都不容易饱和;功耗也很低,因为静态场景下整颗芯片几乎没有数据输出。

但事件相机并不是银弹。它最大的问题是:在静态场景里,它什么都看不见。电梯里不动的角落、静止的货架、没有变化的背景区域,事件流是空的,但感知系统恰恰需要知道“这里存在一个物体、它是什么颜色、它占据了多大区域”。事件只能是边缘和变化,无法提供稳定外观信息。第二是噪声问题,事件触发阈值有亚像素失配,传感器表面还会产生大量离群事件,直接拿裸事件流做视觉算法,先要花大量精力清洗。

所以我在分享里反复说一句话:事件相机不是替代传统相机的,它是补传统相机缺的那块感知拼图的。真正的问题是,怎么把这两者放在一起,不让它们的缺点互相叠加。

1.3 “从成像到感知”到底意味着什么

理解到这一步,就能明白为什么要把“从成像到感知”当成一个范式转换来看。传统视觉链路是:传感器成像,算法从图像中提取信息。传感器和算法是完全解耦的两层,传感器负责把物理世界变成照片,算法负责从照片里找答案。到了高速、高动态、低功耗场景,这个链路的成本递增非常快。

而感知优先的思路是:传感器在设计之初,就要考虑后续的算法需要什么信号。变化检测需要什么?连续时间域的事件流。外观识别需要什么?稳定曝光的灰度图。那能不能让同一块传感器在像素层面同时提供这两种信号?这就是HVS融合视觉的出发点。它不是简单的“一个芯片里塞两个传感器”,而是从器件架构层面,让“成像”和“感知”两套工作模式在同一个像素里并行存在。

2. 像素级双通路:HVS融合芯片如何在同一块硅片上同时读出帧与事件

2.1 同一颗光电二极管,光线进来兵分两路

融合视觉的硬件实现方式,市面上有过几种路线:最粗糙的是双芯片分光,用棱镜或者半透半反镜把光束分成两份,一路进传统传感器,一路进事件相机。这种方案在实验室验证算法完全没问题,但量产时体积大、光路校准困难、两颗芯片的视差很难完全消除。

我们团队走的是像素级融合路线,也就是一枚融合芯片上,所有像素同时具备两种读出能力。具体来说,每个像素内部共享同一个光电二极管,光子进入后产生的光电流被复制成两路:一路走传统积分支路,在一定曝光时间内累计电荷,然后在行扫描时读出灰度值,这是帧通路;另一路走事件检测支路,持续监测对数光电流的变化,一旦变化越过阈值,就通过异步仲裁电路,立刻输出一条包含坐标、极性和微秒时间戳的事件。

这里的关键就是“共享光电二极管”。一颗像素,一个感光点,同时服务两套读出。带来的直接好处是:事件和帧天然在同一个视角坐标系里,像素位置一一对应,没有视差。你拿到一帧画面和一段事件流,它们在空间上的对应关系是硬件保证的,不需要后期做特征匹配。

如果做一个生活化的类比,你可以把传统像素理解成一个只拍照片的照相机,把事件像素理解成一个只看动静的侦察员。融合像素是让同一个人同时干两件事:眼睛一直盯着画面记录光影变化,同时只要有任何东西移动了就立刻喊一声。这两件事不冲突,因为一个是“常态记录”,一个是“异常触发”。

2.2 读出架构的两种节奏:列并行ADC与异步事件仲裁

融合芯片的读出架构,是我认为最考验工程能力的地方。帧通路是典型的CMOS图像传感器工作方式:每个像素的积分电荷,通过列并行ADC转换为数字值,再按行顺序扫描输出。这个过程是周期性的、节拍固定的,一帧接一帧,像磁带一样匀速转。

事件通路则是完全异步的。每个像素的事件触发是随机发生的,可能在任意微秒冒出上百个事件,也可能几十毫秒一个都不出。这些事件需要被传输到片外处理器,但传输总线是有带宽上限的,如果所有像素同时触发,总线会被瞬间打满。所以芯片内部要设计一个事件仲裁树,一级一级地把事件请求汇总到输出端口,优先保证每个事件都能被读出,同时给每个事件打上精确的微秒时间戳。这个仲裁机制处理得不好,就会出现事件丢失,丢一两个事件在视觉上可能看不出来,但在高速运动重构里就是轨迹的断裂。

数据格式上也和传统传感器完全不同。帧是二维数组,每帧是一个完整画面;事件流则是一串四元组:x坐标、y坐标、极性、时间戳。它是稀疏的、非均匀采样的、无限长的数据流。这意味着后端的整个数据通路都要重新设计,不能沿用老的ISP管线。

2.3 我们在芯片工程里做过的几个取舍

融合像素的代价是像素面积会变大。同一个像素里既要放积分电容、复位管、源跟随器,又要放事件检测的对数压缩电路、阈值比较器和触发逻辑。硅片面积就是成本,像素越大,同样分辨率的芯片面积就越大,良率越低,单片成本越高。我们在设计时反复权衡过像素间距,最终在灵敏度、暗电流和事件阈值一致性之间找了一个平衡点。

事件触发阈值的一致性是最容易翻车的指标。半导体工艺里,每个晶体管的阈值电压存在天然偏差,这会导致不同像素对同样亮度的触发灵敏度不一样。结果就是一颗看起来亮度均匀的传感器,事件流里却会出现固定图案噪声——某些区域的像素特别容易触发,某些区域特别迟钝。这个问题必须通过片上校正电路和出厂标定来压制。

另一个功耗层面的坑是:事件通路必须常开。传统CIS在不需要拍照时可以把整个像素阵列关掉,但融合传感器不行,事件检测支路要一直监测光电流变化,否则就会漏掉关键事件。所以整个芯片的待机功耗是压不下来的,我们在低功耗设计上主要把精力放在了事件通路的低压工作和降低像素静态电流上。

3. 从帧到事件+帧:视觉算法栈重新编排的关键思路

3.1 事件流怎么变成神经网络能吃的东西

芯片有了,数据出来了,真正让融合视觉落地的,是算法栈的改造。事件流是异步时空数据,它不是图像,不能直接塞进以图像为输入的卷积网络里。长期以来,研究者都在讨论“事件流最自然的表示方法是什么”,尝试过很多条路。

第一种是累积事件帧。把一段固定时间窗口内的事件按极性累加,得到一个两通道的二维图。这种方法最简单,容易和图像融合,但代价是丢失了时间信息。一个快速移动的物体和一个低速移动的物体,只要累积窗口内事件数相同,累积出来的图几乎无法区分。

第二种是时间表面。把每个像素最后一次触发事件的时间戳记录下来,形成一个“最近活动时间”图。它保留了相对时间次序,能很好地表达运动方向和速度,但空间边缘信息比较粗糙。

第三种是体素网格。把时间维度也量化成多层,事件按时间戳分配到不同层里,再在每层做空间累积。相当于把异步事件流编码成三维张量,时间分辨率比累积帧精细很多。

我们实际部署时,在算力受限的平台上主要用累积事件帧和时间表面的融合形态,因为它的计算精度和运行效率平衡最好。你可以把这两者理解成一种妥协:既保留一部分时间信息,又把计算量控制在嵌入式硬件能跑的范围内。

3.2 模型结构:双分支融合而不是拼接完事

拿到事件张量和帧张量之后,接下来的问题是网络结构。我在会上讲得比较直白:最差的做法就是把事件帧和图像在通道维度拼接,直接喂给一个普通卷积网络。这看起来省事,但两类信号的统计特性差异太大了——图像是稠密的二维纹理,事件是稀疏的活动区域。强行拼接会让网络训练时非常吃力,模型会在两个模态之间互相干扰。

更好的方案是双分支结构:一个分支处理灰度图像,负责外观、纹理、颜色信息;另一个分支处理事件张量,负责运动、边界、时间连续信息。两个分支在中间某个特征层做融合,让外观特征和运动特征在语义层面交互。这种设计在高速目标检测和运动分割任务上,明显优于单流拼接。

还有一个方向是直接处理原生事件流,用稀疏卷积或图神经网络来处理这些非均匀分布的点集。这个方法保留的信息最完整,据说精度上限也最高,但计算量非常大,目前的嵌入式平台很难实时跑起来。我们在项目里更多是把稀疏卷积用在数据中心阶段而非边缘推理阶段,先离线验证算法效果,再蒸馏成更适合边缘部署的紧凑模型。

3.3 数据焦虑:事件流没有现成的标注,怎么办

融合视觉落地中最实际的问题,其实是数据。帧数据已经有大量带标注的开源数据集可以拿来做预训练,但事件流数据是稀缺品——没有哪个公开数据集有海量的人工标注事件流。做目标检测,总不能让标注员对着几百万个事件点画框。

我们踩过一条比较成功的路线:仿真数据打底加自监督微调。先在事件相机仿真器里生成合成事件流,这些数据带完美标注,用来训练模型的基础能力。然后用真实传感器采集的数据做无监督适配,让模型在真实事件噪声下调整自己的特征分布。特别提一句,从仿真到现实的事件域差距比图像域更大,因为事件噪声模型很难完全建模,适配环节不能省。

另一个技巧是用高帧率普通相机录一段视频,在离线阶段把视频插帧到很高帧率,然后通过光流模拟事件触发规则,生成伪事件流来扩充训练数据。这种方法生成的伪事件虽然和真实事件存在一定差异,但用于预训练完全够用,而且成本低得惊人。

4. Demo到量产:融合视觉落地途中绕不开的几个问题

4.1 时间同步:帧曝光窗口和事件时间戳对不上

说到具体落地,有一段时间我们被时间同步问题折磨得够呛。融合芯片虽然是从同一颗像素里读出的帧和事件,但帧有一个“曝光窗口”,事件是连续流动的。如果事件和帧在时间上没对齐,那么后续的融合算法——比如用事件流来去除运动模糊、或者把事件特征叠加到帧上——效果就会大打折扣。

这里面有个容易被忽视的细节:卷帘曝光下,不同行的曝光起始时间不一样,整个画面的不同区域实际对应不同的时间点。如果直接拿整帧图像配一段全局事件流,本身就是错的。我们的做法是在读出电路里为帧的每一行都加一个行级时间戳,把每个像素对应的事件时间窗口严格限定在该行曝光窗口内。这也让我意识到,融合视觉的工程瓶颈很多时候不在算法复杂度,而在硬件和软件之间的时序约定。

4.2 事件洪峰与噪声门控

事件相机进入强纹理场景或者剧烈运动时,会产生突发式的大规模事件流,我们内部叫“事件洪峰”。如果后端算法处理不过来,要么丢事件、要么系统缓冲区暴涨,最终导致整体延迟飙升。这个问题纯靠硬件仲裁电路是解决不了的,算法层面必须加流量控制。

我们做了一套分级门控:先通过事件速率统计判断当前场景状态,如果事件率异常高,就自动调高触发阈值,过滤掉一部分低置信度事件,同时加大对事件累积帧的空间降采样,保证后端处理的负载可控。这样做的代价是部分细小运动的敏感性下降,但换来了系统整体时延的稳定,在机器人场景里,可控的时延比绝对高分辨率更重要。

4.3 标定流程:融合传感器比普通相机多一个维度

多传感器系统都有标定问题,融合传感器也不例外。我们首先要标定事件流的内参、畸变参数,这跟标定普通相机的流程类似,但要用专门的闪烁棋盘格来激发事件。然后是时间轴标定:事件时间戳和帧曝光中点之间是否有固定偏移,这个偏移随温度和工作电压会发生漂移,需要定期校正。

我还想特别提一个容易被忽视的问题:事件流和帧流在亮度极低情况下会发生分离。事件通路在高增益下噪声大增,帧通路因为曝光时间拉长而变得平滑,两者的感知差异被放大。所以我们的标定流程里专门设计了一组暗光用例,用来测量低照度下事件和帧的响应差异,然后把这个差异作为先验补偿进融合算法。没有这一步,暗光场景下的事件帧融合会出现系统性偏移。

4.4 功耗、带宽与终端算力:嵌入式平台的紧箍咒

融合视觉芯片的功耗账,比很多人想象中复杂。像素阵列功耗、事件仲裁逻辑功耗、帧读出功耗、事件数据接口高速翻转的功耗,加在一起并不轻松。特别是事件通路常开的设计,让系统无法通过休眠像素阵列来省电,必须从其他维度找空间。

我们最终锁定了一个非常实用的策略:动态调节事件通路的灵敏度。系统处于静态监控场景时,把事件触发阈值调高,只保留大目标事件,大幅降低输出事件率;进入高速运动场景时,再把阈值调低,恢复细节灵敏度。这套策略能让芯片在不同场景下自动切换工作模式,相当于给传感器加了一个“注意力开关”,很多情况下比单纯压硬件功耗更有效。

4.5 良率、一致性与量产教训

最后聊一个芯片领域绕不开的话题,量产一致性。融合像素电路比普通像素多一套事件电路,对工艺偏差更敏感,批量生产后的性能一致性控制难度更大。我们曾有一批流片回来,部分芯片的事件触发灵敏度和标定值差了百分之三十以上,排查后发现是某个偏置电路的电阻阻值受工艺角波动影响过大,后来通过调整版图匹配结构和添加内校电路才解决。

给所有准备做融合视觉硬件或者用融合视觉做产品的团队一个提醒:别只盯着Demo上的漂亮效果看,一定要在流片验证阶段就做多批次、多温度的统计测试,尤其要关注事件阈值在不同温度下的漂移曲线。这个数据会直接决定你的产品能不能过得了行业应用的严格验收。

5. 下一代多模态视觉:传感器即感知前台的演进方向

5.1 从传感器到感知器件:像素内计算的必然性

现在阶段,HVS融合视觉芯片只是解决了“同时输出帧和事件”这一层问题,数据的理解还得靠后端的专用处理器或者通用AI芯片。我可以明确预测:下一步的演进方向一定是像素内计算。既然像素已经能够检测事件,为什么不能在像素内直接做特征提取、做目标检测的第一层推理?

这背后的逻辑是带宽瓶颈。事件流再稀疏,在复杂场景下依然会产生大量数据,把这些数据全部搬到片外处理,功耗和时间开销都很高。如果像素阵列本身就能完成一部分特征计算——比如直接在像素内生成兴趣区域、轮廓片段或者速度估计——那么传出芯片的数据量能再压缩一个数量级。这是我们团队正在探索的方向,也是我理解的“从成像到感知”的最终形态:传感器本身就是感知前台,而不是一块光学数据的搬运工。

5.2 多模态感知的融合层级会越来越深

会场的最后讨论环节,有人问到融合视觉是不是只适合机器人领域。我的回答是,从应用层级看,融合视觉的长期价值在于它能和各种其他传感模态自然结合。

用自动驾驶举例,融合视觉可以和毫米波雷达融合:雷达提供距离和速度,融合视觉提供精确的边缘轮廓和色彩语义,两者互补。用工业视觉举例,融合视觉能够同时保证在高速流水线上的检测率和在静态场景下的识别准确率。未来真正成熟的多模态视觉系统,不是把多种传感器简单打包在一起,而是在数据表示层就完成对齐和融合。HVS融合视觉恰好提供了一个非常干净的起点:帧和事件从一开始就在同一个坐标系、同一个时间基准下产出。

5.3 工具链与生态建设是更长期的战场

最后我想多说一句,现在融合视觉行业最缺的,不是更强的芯片,而是完整的工具链。开发者拿到一块融合视觉传感器,不应该还要自己去写时间同步驱动、事件格式转换器、数据集标注工具和模型蒸馏脚本。这些基础设施的成熟度,决定了这项技术能不能从少数团队手里扩散到整个开发者社区。

从我们和高校、开发者社区的合作经验来看,大家最需要的落地路线是:开箱即用的SDK、一套能快速验证算法的仿真器、以及经过验证的预训练模型模型库。这些工作做起来不性感,但恰恰是让“下一代多模态视觉范式”真正成为行业标准的关键。

如果让我给准备入局融合视觉的开发者一句最实在的建议:拿到芯片之后,不要急着把过去的模型往上搬。先花两到三周时间,摸清楚事件流模态在你自己业务场景里到底能补充什么信息。我见过太多团队把事件流当成一种“更快的帧”来用,结果只收获了一堆噪声。真正有价值的用法,是用事件流来解决传统帧像“解决不了”的问题——高速运动、极端动态范围、低带宽条件。这些问题的突破,才是融合视觉作为下一代多模态视觉范式最核心的存在理由。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进