简介
GreenWaves Technologies在GAP8上移植了AliOS Things, 并发布了一个全栈级人脸识别应用(包含训练框架,数据集,以及针对GAP8的移植,现可运行在GAPoC机器视觉参考设计板上)。该人脸识别应用由人脸检测和人脸识别两套算法组成:人脸检测采用的是Viola-Jones经典人脸检测算法,人脸识别则基于SqueezeNet卷积神经网络来得以实现。此应用演示了GAP8如何在极低的功耗下灵活地运行不同的算法。
启动后,该应用不停通过摄像头采集图像,并用人脸检测算法在图像中寻找人脸。直到检测到一张人脸后,人脸识别算法才会启动。用户也可使用PIR传感器来唤醒芯片,并执行人脸检测,这样可以进一步减小系统在无人情况下的功耗。当人脸被检测到,人脸检测算法会输出人脸在图像中的坐标信息。提取人脸图像并将其大小调整至128像素×128像素。此图像为人脸识别算法模型的输入,经过模型推理过后,模型将提取并输出512个16bits,即1KB的特征参数。
在学习过程中,这些特征参数可通过蓝牙,被传输至手机安卓APP上,并完成标注。标注后的参数将被存储在本地数据库中。当同一张脸再一次经过该神经网络推理后,则会产生一套1KB的特征参数。经过和本地数据库中参数进行比对,从中选出相关度最高的或没有数据库中无匹配人脸,则可实现本地对的人脸识别。
该应用基于一款QVGA(320*240像素)分辨率的摄像头。人脸检测部分功耗约1毫瓦/帧,每秒最多可处理约70帧。
人脸识别神经网络功耗约为22毫瓦/帧/秒。此神经网络只有在人脸被检测到后才会启动,约需要400毫秒完成识别。此神经网络在Labelled Faces in the Wild dataset (LFW)数据集上达到了96%的准确率。(Link)
得益于其低功耗的特点,该人脸识别方案可被集成到大量不同的物联网设备中而对设备的电池寿命影响微乎其微。
得益于AliOS Things, 用户可以通过使用不同的传输模组,如LoRa, BLE等与阿里云进行连接,更好地进行信息后台管理,设备管理以及获取各种日志服务。
GreenWaves正式发布了整个人脸识别应用,包括训练脚本、基于BSD开源许可的GAP AutoTiler模型。可访问如下链接获取全部资料:https://github.com/GreenWaves-Technologies/AliOS-Things/tree/gap8_rel3.0.0_demos/app/example/gap_face_reid
硬件平台介绍
该应用算法主要基于GreenWaves Technologies的第一代物联网应用处理器 – GAP8。GAP8是一款多核可编程超低功耗应用处理器,旨在为物联网边缘端(传感器端)提供新一代超低功耗应用平台,用于将图像,声音等复杂信息在本地即完成一些较复杂运算,如卷积神经网络推理等。人脸识别应用现支持公司提供的GAPoC A型计算机视觉参考设计板,其他板卡也会陆续支持开放。
GAPoC A参考设计板上载有主要元器件有:
-
GAPMod 核心板:
- GAP8 芯片
- HyperRAM: 64Mbit
- HyperFlash: 512Mbit
-
On Semiconductor MT9V034 摄像头
- 最高分辨率:Wide-VGA (752 H x 480 V)
- 输出:灰度图 (NIR增强)
- 接口:CPI并口
硬件平台配套手册与原理图链接:https://pan.baidu.com/s/11zt0UcIl77QA9OMbWblC8w
提取码:h8mk
该展示应用其他相关硬件
• Adafruit 2.8 TFT显示屏 (SPI接口)
• 按键相关元器件
• 基于安卓的智能手机
硬件配置
基于GAPoC A的人脸识别参考设计套件在交付时已完成后述硬件默认配置。用户可以根据自己项目需求来修改配置, 相关板卡详细介绍,敬请下载并阅读上文手册。
GAPoC A型板拨码开关配置:
显示屏连接:
显示模块通过以下方法连接到GAPoc A板的Conn3接口
注意:该板卡不提供5V接口,可用3.3V接口为屏幕供电。
AliOS Things环境搭建
此发布版本基于AliOS Things rel 3.0.0版本,GreenWaves基于此版本完成了AliOS Things在GAP8芯片及GAPoC A板卡的移植:
https://github.com/GreenWaves-Technologies/AliOS-Things
(该版本正在提交,测试,完成AliOS认证流程。认证后,代码将回流至AliOS Things主枝)
环境依赖:
该版本现只支持Linux操作系统,其依赖的主要工具有:
- AOS Cube: AliOS Things 工具集,是一套基于 python 的命令行工具集合,涵盖 OS 镜像的编译构建,工具链及组件库的管理以及基础设施相关脚本等等。该工具在Linux下的安装与配置请参考:https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-Linux-Environment-Setup?spm=a2c6h.13066369.0.0.6e2e6e72iv6TOJ
- GAP8编译链工具:https://github.com/GreenWaves-Technologies/gap_riscv_toolchain_ubuntu_18
- OpenOCD烧写工具:https://github.com/GreenWaves-Technologies/gap8_openocd
下载,安装与配置:
cd gap_riscv_toolchain_ubuntu_18
./install.sh
- OpenOCD 下载与安装:
- clone https://github.com/GreenWaves-Technologies/gap8_openocd.git
cd gap8_openocd
./bootstrap
./configure && make
sudo make install
如不想安装进系统默认位置,则用此命令代替上述configure:
./configure --prefix=/YOUR/PATH/
AliOS Things (GAP8版本)下载
git clone https://github.com/GreenWaves-Technologies/AliOS-Things.git
环境配置与应用编译
所有的环境配置与编译过程均基于aos工具套件,命令与步骤如下:
- aos make menuconfig
- 如下图所示, 在界面中选择Applications -> Builtin Examples -> Select example -> gap_face_reid
- 按ESC回到第第一个界面,并且配置BSP,选择gapoc_a平台: BSP -> GAPOC_A
- 保存退出,并执行编译:
- make clean && aos make
以上命令与配置也可使用以下命令代替:
aos make gap_face_reid@gapoc_a -c config && aos make
编译完成后,工具将编译所生成的二进制可执行文件及文件系统等置于:AliOS-Things/out/gap_face_reid@gapoc_a/binary
板卡烧写与人脸识别应用测试
板卡的硬件连接
- 将板卡jtag接口与下载器进行连接, 并通过USB连接电脑。 使用者可根据openOCD介绍,选择jtag下载器 (https://github.com/GreenWaves-Technologies/gap8_openocd)
- 通过板卡电源接口,或通过电池(3.6V AA电池),打开电源开关为GAPoC A板卡供电。
- 通过命令进行烧写并在板卡上执行:
- upload
人脸识别应用测试
当上述步骤完成后,程序即已执行在GAP8中,并进入了检测模式
在第一次执行时,由于数据库中没有人脸,算法会将所有人识别为陌生人(Stranger), 如下图所示:
但这些陌生人脸特征将暂时性地保存在芯片中。按下下图中所示按钮,应用将进入配置模式(人脸标注模式):
该模式将使用蓝牙模组,等待与手机APP相连接。在手机上打开该APP:
点击“scan”使用APP扫描该设备, app将列出附近检测到的蓝牙设备。
在设备列表中选择“GreenWaves-GAPOC”,等待设备连接。
设备连接后,点击“REFRESH”, 设备将将所有陌生人的图片传输到APP上。等待所有图片传输完成后,选择并点击效果最好的图片,并为其命名。
命名后点击“Remember”, 将标注信息保存。剩余不需要的图片,可点击“Drop”丢弃。
完成以上操作后,点击disconnect, 设备将自动进入“识别”模式
APP链接:https://pan.baidu.com/s/1QpuZJ8WFMm34upuyxRh0Pg 提取码:FHk3
以上操作,也可参考该应用展示视频:
https://www.bilibili.com/video/av82386972
GreenWaves Technologies 与GAP8芯片简介:
GreenWaves Technologies 是一家成立于2014年的无晶圆半导体初创公司。旨在为图像,声音,以及震动等边缘传感设备赋予超低功耗边缘计算能力,实现超低功耗嵌入式人工智能。 公司以物联网市场智能化为己任,为市场提供超低功耗与超高能效的嵌入式人工智能物联网平台。其业界首款物联网应用处理器--GAP8,让长期依赖电池完成人工智能推理运算的应用成为可能。
GAP8物联网应用处理器采用台积电55nm超低功耗制程,以致于让长期依赖电池供电的边缘设备可以智能化。作为全球首款物联网应用处理器,GAP8采用八加一个基于RISC-V的高效内核的方式设计,并植入了自己的扩展指令集(DSP,向量化, SIMD,复数运算等),这让它拥有极致的能效架构。GAP8芯片内集成了电源管理等功能。GreenWaves为整个SoC设定了五种工作模式,让电压和频率可以实时动态调整到最优状态,能效上可以实现20倍优于市场现有同类产品。
更多信息,敬请访问:http://greenwaves-technologies.com/
支持邮箱:support@greenwaves-technologies.com
钉钉技术支持与交流群号:30002134
套件购买:请通过网站,钉钉群联系我们。
在线购买平台即将开放,敬请期待,如有任何不便,敬请谅解。