基于GreenWaves GAPuino + PixArt PAJ6100 之AI图像辨识方案

一、 前言

脸部辨识是一个从影像或影片中识别人物的系统,此技术已经存在几十年,但在过去的几年里,它的应用越来越明显和普及,因为它现在为创新解决方案提供技术支援,像苹果推出Face ID功能取代指纹辨识,让消费者也注意人脸辨识的应用。

脸部辨识在许多应用程式和行业垂直领域都很实用,在脸部上取出具有“辨别度”的特征值,相同的一个人在不图装扮、表情与视角的情境之下,还具有非常类似的特征值。相反地??,对于不同人的脸部,特征值是不同的,必需很容易区别出来。在使用人工智能(AI)之前,使用特定算法:每个工程师必须开不同的算法,使用不同的模型,去准确达到脸部侦测、人脸特征值的撷取以达到脸部辨识效果。

二、硬体介绍

本方案推荐使用GreenWaves Technologies GAPuino开发板搭配PixArt PAJ6100U6摄像头模组,GAPuino使用SPI设定PAJ6100U6暂存器参数,透过CPI从PAJ6100U6取得图像资料传送至GAPuino,GAPuino进行推论算法CNN或SSD,透过推论结果产生图像归类,例如人脸、猫及狗,当推论结果辨识为人脸时,即可控制门锁开门或其他应用。

GreenWaves Technologies GAPuino内置GAP8芯片,GAP8是一款多核可编程超低功耗应用处理器,旨在为物联网边缘端(传感器端)提供新一代超低功耗应用平台,用于将图像,声音等复杂信息在本地即完成一些较复杂运算,如卷积神经网络推理等。GAP8物联网应用处理器采用台积电55nm超低功耗制程,以致于让长期依赖电池供电的边缘设备可以智能化。GAP8采用八加一个基于RISC-V的高效内核的方式设计,并植入了自己的扩展指令集(DSP,向量化, SIMD,复数运算等),这让它拥有极致的能效架构。

 原相(PixArt)科技的always-on低功耗电脑视觉感测器 (Ultra-Low Power Computer Vision) 产品以独特的省电架构进行开发,PAJ6100U6 系由一个低功耗全域快门 QVGA (320x240) 感测器,以及一个具 90 度对角视野 (diagonal field of view) 的可回流焊光学镜头而组成。其可低至 1400uW (30fps QVGA) 的耗电功率,极低功耗下持续支援智慧触发机制和视觉决策能力,对于须透过视觉来感知周遭环境的装置,是不可或缺的一部分,适合为人工智能学习装置提供视觉相关服务,可应用于智能门锁、智能玩具(Always ON脸部与表情侦测)、智能家电与物联网。

三、系统流程

使用云端平台或电脑进行训练模型,当模型训练完成后,使用gap_sdk内的nntool进行转换,将转换后的模型导入程式码中,搭配PixArt全局式快门(Global Shutter)功能,取得完整图像进行卷积神经网络(Convolutional Neural Network;CNN )推论判断,GAPuino只具备推论功能,模型的部分请使用者自行训练。GAPuino可视为超低功耗Edge AI,无需连接网路,当模型训练完后,烧录制GAPuino内即可运作。

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网路,一直是深度学习中最重要的一部分,CNN 在影像辨识中甚至可以超越人类辨识的精准度,许多影样辨识的模型也都是以CNN的架构为基础去做延伸。

SSD(Single Shot MultiBox Detector)其中Single shot表示SSD算法属于one-stage方法,MultiBox表示SSD是多框预测。将边界框的输出空间离散为不同层特征图上的一组不同尺寸和长宽比的默认框,其主要为在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,适用于处理多种尺寸的对象。



四、场景应用1

智能门锁,程式内部流程请查看方案方块图, GAPuino透过CPI取得PixArt PAJ6100U6图像资料后,经由内部CNN计算输出结果,再根据CNN结果输入至SSD取得脸型框的座标,过滤框座标大小,若框座标过小则代表为误判区需要做移除,进行过滤后才是最终结果,如果脸型座标列表长度不为0则能够开启门锁,反之则回到PixArt PAJ6100U6进行下一次的循环,下方为部分程式码。

 

short int *Output_1;
short int *Output_2;
short int *Output_3;
short int *Output_4;
short int *Output_5;
short int *Output_6;
while (true){
ImageIn = get camera raw data;

face_detectionCNN(ImageIn, Output_1, Output_2, Output_3, Output_4, Output_5, Output_6);

SDD3Dto2DSoftmax_80_60_12(Output_1, tmp_buffer_classes, OUTPUT_1_Q, 2);
SDD3Dto2D_80_60_24(Output_4, tmp_buffer_boxes, 0, 0);
Predecoder80_60(tmp_buffer_classes, tmp_buffer_boxes, anchor_layer_1, &bbxs, OUTPUT_4_Q);

SDD3Dto2DSoftmax_40_30_14(Output_2, tmp_buffer_classes, OUTPUT_2_Q, 2);
SDD3Dto2D_40_30_28(Output_5, tmp_buffer_boxes, 0, 0);
Predecoder40_30(tmp_buffer_classes, tmp_buffer_boxes, anchor_layer_2, &bbxs, OUTPUT_5_Q);

SDD3Dto2DSoftmax_20_15_16(Output_3, tmp_buffer_classes, OUTPUT_3_Q, 2);
SDD3Dto2D_20_15_32(Output_6, tmp_buffer_boxes, 0, 0);
Predecoder20_15(tmp_buffer_classes, tmp_buffer_boxes, anchor_layer_3, &bbxs, OUTPUT_6_Q);

convertCoordBboxes(&bbxs, 160, 120);
non_max_suppress(&bbxs);

for(int i = 0; i < bbxs.num_bb; i++){
if (bbxs.bbs[i].w >= 15 && bbxs.bbs[i].h >= 15){
Show red frame;
Control door lock open/close signal;
}
}
}

 

GAPuino搭配PixArt PAJ6100U6摄像头,应用脸部辨识功能,配置于智能门锁上,当判别为脸型时,门锁系统可以判断是否开门,当距离摄像头1.4米时,发现照片内有脸型就进行开门,下图为显示结果,蓝色方匡为辨识区域,辨识到脸型后右上方显红色区块。




智能门锁整体搭配GAPuino与PixArt PAJ6100U6摄像头,门锁整体方案于(基于Qualcomm QCA4024 的双模全自动智能门锁Turnkey 方案)将控制线对接至GAPuino开发板上,透过GAPuino做判断是否开门,目前专案为当发现脸型时驱动门锁开门,整体图片如产品应用图所示。

五、场景应用2

猫/狗脸辨识智能喂食器,将TFlite模型抽换为狗或猫模型,并针对模型进行程式码调整,当辨识到猫或狗才开启食物闸门,保持饲料新鲜不受潮。



参考资料

PixArt PAJ6100U6

GreenWaves Technologies. 

基于Qualcomm QCA4024 的双模全自动智能门锁Turnkey 方案

卷积神经网路- 维基百科

目标检测|SSD原理与实现- 知乎



►场景应用图

►展示板照片

►方案方块图

►核心技术优势

1. GAP8芯片内有8个核心运算。 2. GAP8是一颗超低功耗人工智能(AI)芯片,使用电池即可运作。 3. CNN推论脸型辨识。 4. 支援TensorFlow Lite模型。 5. IoT Edge装置,Local即可判断。 6. 无隐私问题,影像不会上传至云端。

►方案规格

【GreenWaves GAPuino主板】 1. GAP8芯片8 x 8mm, 0.40mm pitch, 68-pin QFN。 2. Quad SPI 快闪记忆体 256 Mbit、HyperBus 组合 DRAM/快闪记忆体 512 Mbit 快闪记忆体 + 64 Mbit DRAM。 3. 外接摄影机的摄影机连接器。 4. 1 mW 时 200 MOPS,几十 mW 时大于 8 GOPS。 5. 最小 2 μA 待机电流、整合式设计可降低系统成本。 6. USB 转 GAP8 JTAG + UART、重置按钮。 【PixArt PAJ6100 Camera】 1. Global Shutter图像传感器技术。 2. 尺寸QVGA 320 x 240。 3. 影格速率30fps。 4. 系统时钟 6MHz。 5. 支持电压 VDD33:3.3V、VDD18:1.8V、VDDIO:1.2V~1.8V。 6. 平均运作工耗 1400μW@ 30fps QVGA。