一、S32V 视觉处理平台
NXP 于 2015 开始推出 S32V 平台,现在已经推出了第二代型号 S32V234,第三代目前已经在样品阶段,该平台定位为 ADAS 视觉处理,提供了视觉系统应用所需的性能和功能。
对于图像处理,S32V 具有自己的特色,硬件方面:具有两路 CSI 和两路并口摄像头接口,提供了可图形化编程的 ISP、APEX,以及 3D 渲染的 GPU。其中可编程的 ISP 可以对通过 CSI 输入的摄像头图像数据进行处理,支持 HDR、颜色转换、色调映射等。APEX 提供了并行图像处理的能力。还提供了 H264 硬件编解码等,基本覆盖了图像处理所需要的硬件资源。
软件方面:提供了 VSDK,包含 S32V 平台的各个外设驱动,并配有相关例程。API 方面提供了 OpenCV、FFmpeg、OpenCL、OpenGL、EGL 等常用图像处理相关库。
图 1 S32V 内部框图
二、人脸识别方案介绍
采用索尼的 IMX224 摄像头作为图像输入,移植人脸识别库,建立演示 demo 将检测到的人脸实时用方框标记出来。
1.方案框图
代理 MCU
未代理
外围
S32V234
iMX224
CSI
HDMI
显示器
图2 人脸识别方案框图
2.Demo 搭建
获取摄像头数据
首先,基于 VSDK 实现 iMX224 摄像头的数据获取。通过 NXP 提供 S32 Design Studio for Vision Version 软件建立 iMX224 的 ISP 处理流程,如下图所示。
图3 ISP 处理流程
这里通过运行在 IPUS0 中的 debayer_rgb_simple_interleaced,实现了摄像头 Debayer 数据转 RGB,然后通过 FDMA 传输到 DDR 中供算法调用。如果对于图像有特殊要求的,可以自己建立对应的 IPUS 核,对图像数据进行相关处理。
交叉编译相关库
移植人脸识别算法库,该库基于 NCNN 神经网络上搭建人脸识别系统,依赖的库有 OpenCV、NCNN 以及 Sqlit3。这些库需要交叉编译,其中 OpenCV 和 Sqlit3 的 ARM 版 S32V 已经提供不需要再进行编译,编译后的 NCNN 和人脸识别算法库都是静态库,不需要拷贝到目标板上。
人脸检测 demo
通过 Qt 来实现界面显示,首先在 pro 文件中添加 VSDK 中获取摄像头数据的相关库,算法移植的相关库,然后通过如下 API 接口获取图像数据。
int getCImg(cv::Mat &cimg);
再调用如下接口进行人脸检测:
void detectMaxFace(ncnn::Mat& img_, std::vector
3.Demo 效果
最后将检测结果通过 Qt 界面显示出来,如下图所示。
图4 人脸检测结果
通过测试,人脸检测耗时如下所示:
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』