新闻中心

EEPW首页>嵌入式系统>设计应用> 瑞萨AI视觉识别方案应用笔记3

瑞萨AI视觉识别方案应用笔记3

—— 轻松实现高效口罩人脸检测
作者:刘刚 瑞萨电子中国MPU产品部 高级经理 时间:2021-09-03 来源:电子产品世界 收藏

我们基于瑞萨RZ/A2M和它独有的DRP技术,构建了多款解决方案,包括工业自动化中的目标物体检测与追踪、二维码编码类型的快速检测等。这次,我们就来拆解如何使用RZ/A2M的DRP与嵌入式结合实现口罩人脸检测。

本文引用地址://m.amcfsurvey.com/article/202109/427999.htm

在示例中我们通过MIPI接口连接Sony IMX219 CMOS传感器,输入一个1280x720分辨率的图像,通过RZ/A2M的DRP对输入图像做Simple ISP处理,图像缩放处理,然后运行一个轻量级且高效的口罩,人脸检测模型。它能够实现在人脸检测模式下30FPS的检测速度,在区分是否戴口罩的模式下实现20FPS的检测速度。下面让我们看一下它是如何实现的。

1630639691912788.png

下图是他的数据处理流程:

蓝色部分的处理由DRP硬件加速实现,其中Simple ISP库将CMOS传感器的Bayer格式数据转换为灰阶数据,并统计一帧图像中三个预设区域的平均亮度用于调整自动曝光参数。

第二个DRP库实现图像的缩放处理,将1280x720分辨率的灰阶图像压缩成640x360大小的图像,它将大大提高人脸的检测速度。

图中绿色部分是由Cortex A9处理器运行的轻量级口罩及人脸检测模型,用于标定出当前帧是否有人脸,是否带有口罩。

1630639644752869.png

在此示例中我们将不依赖外部RAM,只使用RZ/A2M的4MB片上高速RAM。

步骤1

由于人脸检测只需要使用灰阶图像,我们需要将CMOS传感器的Bayer格式图像转换成灰度图,此时我们载入一个simple_isp_2_tiles的DRP库,这个DRP库需要具有以下特性:

√ 占用2个Tile的DRP硬件资源

√ 实现Bayer转灰阶

√ 对3个独立的区域中所有像素的亮度值进行累加

√ 支持多Tile并行处理

image.png

由于这个库具有多Tile并行化(segmented)的处理特性,我们可以把它载入到3组DRP 的tile中。其中Tile0和1的simple_isp_2_tiles库处理顶部1/3的图像,Tile2和3的simple_isp_2_tiles库处理中间1/3的图像,Tile4和5的simple_isp_2_tiles库处理底部1/3的图像。且这三部分图像是同时并行化处理的,这让处理速度又增加了3倍

1630639678911608.png

由于DRP库提供了非常便捷的API接口,实现以上功能只需要简单的编程操作即可实现。

1630639782633976.png

请根据DRP库的应用文档中关于 Number of tiles和Segmented Processing属性来决定如何加载DRP库

image.png

● Number of tiles: 表示DRP库需要占用几个硬件Tile

● Segmented processing:表示DRP任务十分可以拆分到多个tile中并行执行

DRP库在Tile中的摆放方式共有11种,可根据DRP的Number of tiles 和 Segmented属性灵活选择使用哪种加载方式,举例如下:

1630639937889141.png

步骤2

在得到一帧灰阶图像后,我们载入一个resize_bilinear_fixed的DRP库将这一帧图像进行缩放。这个DRP库具有以下特性:

● 输入8bpp灰阶图像

● 支持 ⅛ ¼ ½ 1x 2x 4x 8x 16x 固定缩放比例

● 水平和垂直缩放比例单独控制

● 输入宽度范围128~1280,输入高度范围8~960

● 占用4 tiles硬件资源,不支持segmented

经过步骤2的处理,我们将灰阶图像从Video RAM1读入,宽和高均缩小为原来的½,并将图像写入到Video RAM2,用于下一步的人脸检测。

image.png

这两步的执行时间约为4.6ms8.2ms,采用并行化处理和小于1ms的DRP库加载速度极大优化了人脸识别之前图像预处理的执行速度。

image.png

步骤3

我们移植了一个轻量级的开源人脸识别算法

在此基础上添加了口罩人脸的数据集,并对新数据集进行了训练,经过测试其识别速度和识别精度均比较理想。

首先需要准备数据集,可以直接通过我们示例包中的数据集训练或从网络下载

1630639976544667.png

此数据集包含7092张人脸图片及4283张口罩人脸图片,并对图片中的人脸关键特征进行了标定。

image.png


模型并非普遍采用的神经元网络模型,而是使用了决策树模型,其具有执行速度快的特点,而且其模型大小只有几十KB到2百多KB,

以下是领域比较常用的算法:

1630640003654155.png

决策树是一种非参数化的监督学习模型,它能够让你跟随树状的决策分支结果一步一步从根节点到达顶端叶节点,从而根据顶端叶节点的结果来预测目标值,常用于目标分类(classification)和回归(regression)

image.png

在人脸检测过程中,我们使用一个滑动窗口一步一步的扫描步骤2生成的图像,先使用最小滑动窗口,然后逐步增大窗口的大小。使用决策树模型检测每一个滑动窗口内是否存在人脸。

1630640028186746.png

如下是一些关键参数的配置,我们可以通过参数调整在检测精度和性能之间进行平衡。

1630640062569763.png

以下为1280x720分辨率输入,分别针对画面中1张人脸,3张人脸和7张人脸进行检测,在口罩人脸模式下可实现约15fps以上的检测速度。

1630640082495317.png

如下视频是针对快速切换的图像进行人脸检测的测试结果,可以看到RZ/A2M在经过了DRP加速及和运行轻量级高效AI算法后,能够实时捕获到图像中的人脸。

1631172132109786.png



关键词:AI视觉

评论


相关推荐

技术专区

关闭