摘要:汽车行业ADAS功用需求日益增长,防疲惫驾驭是一个抢手方向,关于驾驭员状况的检测,人脸辨认是根底,只要快速精确地辨认到人脸,才能对人脸状况进行剖析。本文将介绍根据S32V来完成人脸辨认的使用。
一、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. 计划框图
图 2 人脸辨认计划框图
2. Demo树立
l 获取摄像头数据
首要,根据VSDK完成iMX224摄像头的数据获取。经过NXP供给S32 Design Studio for Vision Version软件树立iMX224的ISP处理流程,如下图所示。
图 3 ISP处理流程
这儿经过运行在IPUS0中的debayer_rgb_simple_interleaced,完成了摄像头Debayer数据转RGB,然后经过FDMA传输到DDR中供算法调用。假如关于图画有特殊要求的,能够自己树立对应的IPUS核,对图画数据进行相关处理。
l 穿插编译相关库
移植人脸辨认算法库,该库根据NCNN神经网络上树立人脸辨认体系,依靠的库有OpenCV、NCNN以及Sqlit3。这些库需求穿插编译,其间OpenCV和Sqlit3的ARM版S32V现已供给不需求再进行编译,编译后的NCNN和人脸辨认算法库都是静态库,不需求拷贝到方针板上。
l 人脸检测demo
经过Qt来完成界面显现,首要在pro文件中增加VSDK中获取摄像头数据的相关库,算法移植的相关库,然后经过如下API接口获取图画数据。
int getCImg(cv::Mat &cimg);
再调用如下接口进行人脸检测:
void detectMaxFace(ncnn::Mat& img_, std::vector<Bbox>& finalBbox);
3. Demo作用
最终将检测成果经过Qt界面显现出来,如下图所示。
图4 人脸检测成果
经过测验,人脸检测耗时如下所示:
算法库 | 耗时 |
人脸检测与定位 | 21ms – 26ms |