概述
**
物联网——Al二哈人脸识别
**
一、实验目的及要求
【一】实现人脸识别
【二】实现云数据库应用
【三】实现数据mqtt上传至物联网云平台
二、实验原理与内容
基于二哈实现多人人脸学习和识别
基于TinywebDB实现云数据库应用
基于EasyIoT实现mqtt数据上传。
三、实验软硬件环境
-
硬件:掌控板、HuskyLens二哈识图
掌控板:
二哈识图:
二哈识图详细介绍以及版本升级 -
软件: Mind+图形化编程软件
下载地址:Dfrobot官网中国区
四、实验过程
1.mind+环境配置:
- 选择huskylens Al摄像头传感器
- 添加实验所需服务:MQTT、WIFI、TingywebDB
- 对上列服务进行配置:
2.硬件配置:
组装掌控板与二哈识图:
3.人脸录入配置:
在二哈识别中选中人脸识别功能对多人人脸进行持续录入
- id1:
- id4:
- id5:
4.TinywebDB配置:
- 进入tingywebDB注册界面注册账号
- 进入个人的信息界面提取所需信息:API地址、用户名、密钥
- 为数据库添加信息:
5.Easy IoT配置:
- 进入easy iot官网国区注册登录获取iot_id、iot_pwd
- 在工作站建立topic0
6.核心代码:
模块化代码截图:程序化代码:
/*!
* MindPlus
* mpython
*
*/
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <mPython_tinywebdb.h>
#include <DFRobot_HuskyLens.h>
// 函数声明
void obloqMqttEventT0(String& message);
// 静态常量
const String topics[5] = {"y9HASmF**","QuO0IiK**","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
// 创建对象
DFRobot_Iot myIot;
mPython_TinyWebDB mydb;
DFRobot_HuskyLens huskylens;
// 主程序开始
void setup() {
mPython.begin();
myIot.setMqttCallback(msgHandles);
myIot.wifiConnect("orange", "12345678");
while (!myIot.wifiStatus()) {yield();}
display.setCursorLine(1);
display.printLine((String("ip地址:") + String(myIot.getWiFiLocalIP())));
mydb.setServerParameter("http://tinywebdb.appinventor.space/api", "orange","86e33**5");
myIot.init("iot.dfrobot.com.cn","hMeTImK**","","hG6oSiKM**",topics,1883);
myIot.connect();
while (!myIot.connected()) {yield();}
display.setCursorLine(2);
display.printLine("mqtt已连接");
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
}
void loop() {
huskylens.request();
if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
display.setCursorLine(3);
display.printLine(mydb.getTag("1"));
rgb.write(-1, 0x00FF00);
}
else if (huskylens.isAppear(4,HUSKYLENSResultBlock)) {
display.setCursorLine(3);
display.printLine(mydb.getTag("4"));
rgb.write(-1, 0xFF0000);
}
else if (huskylens.isAppear(3,HUSKYLENSResultBlock)) {
display.setCursorLine(3);
display.printLine(mydb.getTag("3"));
rgb.write(-1, 0xFF0000);
}
else {
display.setCursorLine(3);
display.printLine("请先录入人脸数据");
}
}
else {
display.setCursorLine(3);
display.printLine("请将摄像头对准人脸");
}
}
// 事件回调函数
void obloqMqttEventT0(String& message) {
myIot.publish(topic_0, message);
}
五、测试/调试及实验结果分析
识别成果图:
id1:
id3:
id4:
- 将二哈识别对准已录入人脸进行扫描识别,二哈识别通过对比已存入的人脸信息进行对比,与存入人脸数据匹配则通过与TinywebDB连接的数据库调取信息显示到掌控板并做出相应的指示灯变化。
Easy iot物联网平台收到的数据:
- 掌控板与mind+连接,通过wifi、mqtt模块加载实现mind+下Easy IoT上mqtt消息的通讯。首先,通过wifi热点建立掌控板与网络连接,通过初始化mqtt数据导入iot_id、iot_pwd以及连接的topic1建立mqtt与服务器的连接。
- Wifi连接通过在显示屏输出“wifi连接成功”测试wifi是否成功;mqtt连接通过在显示屏输出“MQTT连接成功”测试mqtt是否连接成功。一旦wifi与mqtt连接成功后通过掌控板上的A键开关控制消息语句的循环发送与清屏控制。
- 实验中主掌控板通过向iot_id的topic1发送消息,iot用户在iot.dfrobot.com.cn的topic0的界面可查看消息接收记录,同时iot用户掌控板可在显示屏显示到发送内容。Iot用户向topic1发送信息,主机掌控板显示屏也可以显示接收内容。
六、实验结论与体会
本次实验基于人工智能实现多人人脸学习和识别、云数据库应用、实现mqtt数据上传。不得不说现在Al机器确实厉害,整合大数据信息数据,数据挖掘、数据分析、学习等能力也比过去厉害太多,我相信机器运用在未来将会起到一个改变的作用。
同时也说明了这个缺口的需求,有投入就会有收获,机器的运用远不止此。
后言
因实验时传送的数据涉及个人隐私,故效果图展示略微修改但保证数据准确
最后
以上就是瘦瘦西牛为你收集整理的物联网——Al二哈人脸识别物联网——Al二哈人脸识别的全部内容,希望文章能够帮你解决物联网——Al二哈人脸识别物联网——Al二哈人脸识别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复