1. 课程导入与系统总览

边缘 AI 视觉的核心矛盾,是“算力需求”与“功耗、成本、实时性、隐私”之间的平衡。把摄像头采集到的图像送到云端推理,虽然模型可以很大,但带宽、时延、断网风险和隐私合规都会成为瓶颈。i.MX 95 的定位正是面向这一类场景:在设备端完成图像采集、预处理、AI 推理、视频编码与业务控制,只把结构化结果或压缩码流上传。它不是一颗“纯 AI 加速芯片”,而是一套围绕视觉数据流组织的异构计算平台。

理解 i.MX 95,关键是理解它的异构计算架构。芯片内部并非只有一个通用 CPU,而是由多类处理单元分工协作:Cortex-A 核负责操作系统、应用逻辑、网络与调度;Cortex-M 核负责实时控制、低功耗待机和快速唤醒;NPU 承担神经网络推理;GPU 负责图形渲染与部分并行计算;VPU 完成视频编解码;ISP 则处理摄像头原始数据,输出可用的图像。它们通过内部总线与共享内存交换数据,形成一条从“光子”到“决策”的处理链。

i.MX 95 边缘 AI 视觉异构数据流 摄像头 / 传感器 MIPI CSI-2 RAW / YUV ISP 去马赛克 / 降噪 白平衡 / 曝光 共享内存 DDR / 缓存 数据缓冲 零拷贝通道 NPU 神经网络推理 GPU 图形 / 并行计算 VPU H.264 / H.265 编解码 Cortex-A Linux / 应用调度 Cortex-M 实时控制 / 低功耗 输出:结构化结果 / 码流 检测框 · 分类标签 · 事件告警 · 视频流 图像/视频处理 AI 推理 通用计算/编解码 实时/低功耗控制

从数据流角度看,摄像头通过 MIPI CSI-2 输出 RAW 或 YUV 数据,先进入 ISP。ISP 完成去马赛克、降噪、白平衡、曝光控制等操作,把原始传感器数据变成视觉上可用的图像。随后图像进入共享内存缓冲区,NPU、GPU、VPU 和 CPU 都可以按需访问。NPU 执行目标检测或分类模型,GPU 可做图像缩放、色彩空间转换或渲染叠加,VPU 把原始或叠加后的视频压缩成 H.264/H.265 码流,Cortex-A 运行 Linux 并调度整个应用,Cortex-M 则处理按键、指示灯、看门狗、传感器中断等实时任务。最终输出的是检测框、分类标签、事件告警或压缩视频流,而不是原始像素。

这套架构的价值在于“各司其职”。如果让 Cortex-A 用软件做图像预处理和推理,功耗和延迟都会很高;如果让 NPU 去做视频编码,也不合适。i.MX 95 的设计意图,是让每一类数据都走最合适的处理单元。例如,一个典型的智能门禁场景:摄像头输出 1080p@30fps,ISP 输出 YUV 图像,NPU 运行轻量人脸检测模型,Cortex-A 负责人脸比对和门锁控制,VPU 可选地把视频压缩后本地存储。整个链路中,NPU 只处理检测,不做编码;VPU 只做编码,不做推理。这样既保证实时性,也控制功耗。

课程项目目标可以概括为:在 i.MX 95 平台上搭建一条完整的边缘 AI 视觉链路,并让它可运行、可观察、可调优。具体来说,你需要完成摄像头采集与 ISP 配置,让图像正常输出;在 NPU 上部署一个目标检测或图像分类模型,并验证推理结果;用 Cortex-A 编写应用程序,把推理结果通过串口、网络或屏幕输出;用 Cortex-M 处理至少一个实时任务,例如按键触发采集或 LED 状态指示;最后对整条链路做性能观察,包括帧率、推理耗时、CPU 占用和内存带宽。这些目标不是孤立的实验,而是围绕“视觉数据从输入到输出”的完整闭环。

为了便于后续章节展开,这里先给出一个典型的参数示例,用于建立数量级概念。假设摄像头输出 1920×1080、30fps 的 YUV422 图像,每帧约 3.1MB,数据率约 93MB/s。ISP 处理后的图像进入 DDR 缓冲区,NPU 运行一个输入 640×640 的检测模型,单帧推理耗时假设为 20ms,则理论推理帧率约 50fps,足以覆盖 30fps 的输入。VPU 若同时编码 1080p@30fps 的 H.265 码流,码率假设为 4Mbps,则网络上传压力很小。Cortex-A 上的应用需要处理推理结果、绘制叠加框、维护网络连接,CPU 占用应控制在合理范围。Cortex-M 则以毫秒级周期扫描按键和传感器状态。以上数值均为教学示例,实际值需以具体芯片型号、时钟配置、模型复杂度和内存带宽为准。

学习本课程时,建议始终带着“数据现在在哪里、由谁处理、下一步去哪里”这三个问题去看每一章。i.MX 95 的难点不在单个模块,而在模块之间的数据搬运、同步和资源竞争。把数据流看清楚,配置和调试就会变得有方向。