在联咏平台智能相机上新增目标检测功能,最怕的不是算法本身,而是把ISP、编解码和NPU三块搅在一起调。很多团队一开始就急着让检测跑起来,结果图像质量不稳、码流卡顿、NPU算子报错,问题互相纠缠,很难定位。更务实的做法是拆成三个阶段,每个阶段有明确的验收标准,再进入下一步。
第一阶段先搞定ISP和图像质量。目标检测的输入是视频帧,如果画面过曝、暗部噪声大、白平衡漂移,再好的模型也会误判。这个阶段要配合联咏的ISP工具链,针对实际场景做AE/AWB和降噪的调优,重点验证不同光照下检测目标是否清晰。可以先不接复杂模型,直接用一张固定场景图或简单的色块测试,确认ISP输出稳定。验收标准就是人眼能看清目标轮廓,边缘不糊,暗部细节不丢。
第二阶段处理编解码及视频流链路。检测结果通常需要叠加到视频流上,无论是本地显示还是通过网络推流,都涉及编码延迟和帧同步。这个阶段把编码器、码流控制、OSD叠加打通,用模拟的检测框数据代替真实结果,验证画框是否随画面流畅移动、编码后是否出现花屏或丢帧。重点是衡量从图像采集到编码输出的端到端延迟,确保检测结果能在正确的时间戳上显示。
第三阶段再投入NPU适配和模型优化。联咏的NPU对网络结构有一定限制,不是所有算子都原生支持。这个阶段要做模型转换、量化校准,把浮点模型变成int8或fp16的固件格式。先在PC上验证精度损失,再上板测试单帧推理耗时。如果某个算子不支持,要么替换成等价结构,要么把该部分挪到CPU上处理。最终要跑实际视频流,连续运行几小时,看检测框是否稳定、NPU会不会过热降频。
这样拆阶段的风险最小。ISP没调好,后面的编解码和NPU都是白做;编码链路不稳,检测结果再准也传不出去;NPU性能不足,还可以回头优化模型或调整ISP分辨率。每个阶段相对独立,出问题能快速锁定是硬件、驱动还是算法层。等三个阶段都跑通,再回归到整体联调,这时候压力就小多了,因为每一块都各自验证过,剩下的只是接口配合的问题。
