《GAP8人工智能物联网芯片》:毫瓦级人脸识别 – 识别篇-阿里云开发者社区

开发者社区> 阿里云物联网> 正文

《GAP8人工智能物联网芯片》:毫瓦级人脸识别 – 识别篇

简介: 人脸识别因在安全领域的不同应用(门锁,门禁,闸机等)而受到了学界,业界及媒体的广泛关注,同时人脸识别也可以被广泛应用于各种其他方案,如刷脸取纸,账户管理等等。设备可自动的使用者(区别于其他使用者)可以创造出完全不一样的用户体验,如人脸识别咖啡机可识别了解每个用户对不同咖啡的喜好程度,从而推荐或制作符合用户口味的咖啡。同时,咖啡供应商也可以根据结果进行更详细的市场分析,物流管控,生产调整等从而获得更高的利润。是否可以仅用数美金就让现有设备配备可以长期依赖电池运行的人脸识别功能? AliOS Things + GAP8让这一切可以轻松得以实现!

简介

GreenWaves Technologies在GAP8上移植了AliOS Things, 并发布了一个全栈级人脸识别应用(包含训练框架,数据集,以及针对GAP8的移植,现可运行在GAPoC机器视觉参考设计板上)。该人脸识别应用由人脸检测和人脸识别两套算法组成:人脸检测采用的是Viola-Jones经典人脸检测算法,人脸识别则基于SqueezeNet卷积神经网络来得以实现。此应用演示了GAP8如何在极低的功耗下灵活地运行不同的算法。

reid_pic1.png

启动后,该应用不停通过摄像头采集图像,并用人脸检测算法在图像中寻找人脸。直到检测到一张人脸后,人脸识别算法才会启动。用户也可使用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型板拨码开关配置:
image.png

显示屏连接:
显示模块通过以下方法连接到GAPoc A板的Conn3接口
image.png

注意:该板卡不提供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操作系统,其依赖的主要工具有:

  1. 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
  2. GAP8编译链工具:https://github.com/GreenWaves-Technologies/gap_riscv_toolchain_ubuntu_18
  3. OpenOCD烧写工具:https://github.com/GreenWaves-Technologies/gap8_openocd

下载,安装与配置:

  1. 编译链工具下载与安装:
  2. clone https://github.com/GreenWaves-Technologies/gap_riscv_toolchain_ubuntu_18.git

cd gap_riscv_toolchain_ubuntu_18
./install.sh

  1. OpenOCD 下载与安装:
  2. 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工具套件,命令与步骤如下:

  1. aos make menuconfig
    image.png
  2. 如下图所示, 在界面中选择Applications -> Builtin Examples -> Select example -> gap_face_reid
    image.png
  3. 按ESC回到第第一个界面,并且配置BSP,选择gapoc_a平台: BSP -> GAPOC_A
    image.png
  4. 保存退出,并执行编译:
  5. make clean && aos make

以上命令与配置也可使用以下命令代替:
aos make gap_face_reid@gapoc_a -c config && aos make
编译完成后,工具将编译所生成的二进制可执行文件及文件系统等置于:AliOS-Things/out/gap_face_reid@gapoc_a/binary

板卡烧写与人脸识别应用测试

板卡的硬件连接

  1. 将板卡jtag接口与下载器进行连接, 并通过USB连接电脑。 使用者可根据openOCD介绍,选择jtag下载器 (https://github.com/GreenWaves-Technologies/gap8_openocd
  2. 通过板卡电源接口,或通过电池(3.6V AA电池),打开电源开关为GAPoC A板卡供电。
  3. 通过命令进行烧写并在板卡上执行:
  4. upload

人脸识别应用测试
当上述步骤完成后,程序即已执行在GAP8中,并进入了检测模式
image.png

在第一次执行时,由于数据库中没有人脸,算法会将所有人识别为陌生人(Stranger), 如下图所示:

image.png

但这些陌生人脸特征将暂时性地保存在芯片中。按下下图中所示按钮,应用将进入配置模式(人脸标注模式):
image.png

该模式将使用蓝牙模组,等待与手机APP相连接。在手机上打开该APP:
image.png

点击“scan”使用APP扫描该设备, app将列出附近检测到的蓝牙设备。
image.png

在设备列表中选择“GreenWaves-GAPOC”,等待设备连接。
image.png

设备连接后,点击“REFRESH”, 设备将将所有陌生人的图片传输到APP上。等待所有图片传输完成后,选择并点击效果最好的图片,并为其命名。
image.png

命名后点击“Remember”, 将标注信息保存。剩余不需要的图片,可点击“Drop”丢弃。
完成以上操作后,点击disconnect, 设备将自动进入“识别”模式
image.png
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

image.png

套件购买:请通过网站,钉钉群联系我们。
在线购买平台即将开放,敬请期待,如有任何不便,敬请谅解。

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云物联网
使用钉钉扫一扫加入圈子
+ 订阅

致力于实现万物互联的美好世界,为生态合作伙伴提供基于云计算、大数据、人工智能、云端一体化、安全的物联网基础平台和内容服务平台。

官方博客
开发者交流群