一、前言
在物联网工农业场景下有很多应用需要视觉技术来辅助完成应用开发,随着AI技术的不断发展,AI应用的长尾细分领域越来越广泛,在比如纺织业检测瑕疵品、农业中虫害检测等等AI将大有可为。为此我们在HaaS物联网开发板上做了很多AI的探索来帮助各行各业的开发者们来打造他们的AI应用场景。AIoT设备由于成本及应用场景的限制,硬件性能如CPU、内存、Flash等存在差异,怎么样让端侧也能充分发挥AI的能力,需要权衡硬件成本和云端成本及应用场景来综合决定,为了让开发者有更多选择,我们在HaaS开发板上整合了云端AI的能力,只要能上网就能有AI。今天就先给大家介绍如何利用云端AI能力打造云端钉一体的AI应用---老板来了!一起来看看Demo效果吧!
HaaS AI之老板来了
二、解决方案
看了上面的Demo,是不是很想了解一下整体是怎么实现的呢?整体的方案如下图所示:
如上面的解决方案,可以看到整个方案涉及到的模块比较多,整个流程涉及:
a. Http Client向WiFi摄像头请求JPEG数据;
b. OSS Client上传JPEG图片到OSS服务端;
c. JPEG解码为RGB565显示在LCD屏幕;
d. AI Agent上报OSS Client获取的OSS图片链接给视觉平台;
e. AI Agent获取识别结果后根据结果决定是否通过Linkkit上报事件给物联网平台,以及触发蜂鸣器报警;
f. IoT Studio根据配置规则决定是否将物联网收到的事件通知到钉钉机器人;
g. 钉钉机器人发消息通知到绑定的群组。
以上是整个Demo的基本流程,后续文章将通过拆解各个模块来展示如何将这些模块打通实现AI Demo的,HaaS100和HaaS EDU K1均有实现。
三、Demo体验
3.1 下载代码
参考《HaaS100快速开始》下载AliOS Things代码。
3.2 代码配置
3.2.1 HaaS100
如果使用HaaS100的板子,配置aos.mk如下:
配置Config.in文件如下:
3.2.2 HaaS EDU K1
如果使用HaaS EDU K1的板子,配置aos.mk如下:
配置Config.in文件如下:
3.2.3 AI Agent配置
整个Demo所有的云端相关配置信息都在sdkconfig.h中进行配置即可,简化你的操作。
OSS节点访问配置
AI Agent涉及到oss对象存储的密钥信息。
视觉智能节点访问配置
AI Agent的密钥主要获取到REGION_ID、ENDPOINT相关信息。
Linkkit三元组信息配置
在人脸比对成功后,需要通过IoT Studio平台通知钉钉机器人,请在IoT Studio中获取设备三元组信息。
WiFi摄像头访问配置
配置WiFi摄像头的图像流地址。
AI模型配置
当前支持多个AI模型,这里选择AI_TYPE_COMPARING_FACEBODY人脸比对模型。
对比照片路径配置
人脸比对需要一张待对比照片,上传后将路径填入:
3.3 代码编译
$aos make distclean
$aos make ucloud_ai_demo@haas100 -c config
$aos make
3.4 代码烧录
如果是使用的Window烧录工具参考《HaaS100快速开始》,烧录的文件位于:
$./out/ucloud_ai_demo@haas100/binary/ucloud_ai_demo@haas100.bin
$./platform/mcu/haas1000/release/write_flash_tool/ota_bin/littlefs.bin
将文件ucloud_ai_demo@haas100.bin和littlefs.bin分别替换write_flash_gui/ota_bin/ota_rtos.bin和write_flash_gui/ota_bin/littlefs.bin。
如果使用的是docker环境参考《一步搞定AliOS Things开发环境安装》4.3烧录固件。
3.5 网络连接
因为HaaS开发板需要连接到云端,因此需要连接到一个可以上外网的路由器,WiFi摄像头也只能使用Station模式连接到同一台路由器。
$netmgr -t wifi -c haas_test 12345678
3.6 识别结果响应
识别到后输出置信度的值,人脸位置以及“boss is coming”字样:
3.6.1 字幕提醒
在HaaS EDU K1的OLED上显示:
OLED_Clear();
OLED_Show_String(24, 12, "Warning!!!", 12, 1);
OLED_Show_String(12, 36, "Boss is coming!", 12, 1);
OLED_Refresh_GRAM();
在HaaS 100的扩展屏上显示:
graphics_draw_string("Warning!!!", 120, 100);
graphics_draw_string("boss is coming!!!", 100, 120);
3.5.2 蜂鸣器报警
在HaaS EDK上当检测到老板来了,同时触发蜂鸣器报警。
beeper_start();
停止蜂蜜器报警:
beeper_stop();
四、总结
在HaaS开发板上整合了云端多样化的AI能力,通过AI Agent调用云端AI接口,人脸比对仅仅是其中一个案例,通过学习该案例,您可以学习到在AIoT设备中如何从前端摄像头数据输入到后端输出的完整流程,举一反三地实现更多AI场景案例,期待您的作品。
五、开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/
来源:oschina
链接:https://my.oschina.net/u/4310671/blog/4929423