基于二哈实现多人人脸学习和识别+TinywebDB实现云数据库应用+EasyIoT实现mqtt数据上传
一、实验目的及要求【一】实现人脸识别【二】实现云数据库应用【三】实现测温数据mqtt上传至物联网云平台二、实验原理与内容基于二哈实现多人人脸学习和识别基于TinywebDB实现云数据库应用基于EasyIoT实现mqtt数据上传。三、实验软硬件环境硬件:掌控板软件:Mind+四、主要硬件及平台使用1、二哈识图二哈是DFRobot的一款简单易学的人工智能视觉传感器,内置了人脸识别、物体追踪、物体识别、
一、实验目的及要求
【一】实现人脸识别
【二】实现云数据库应用
【三】实现测温数据mqtt上传至物联网云平台
二、实验原理与内容
基于二哈实现多人人脸学习和识别
基于TinywebDB实现云数据库应用
基于EasyIoT实现mqtt数据上传。
三、实验软硬件环境
硬件:掌控板
软件:Mind+
四、主要硬件及平台使用
1、二哈识图
二哈是DFRobot的一款简单易学的人工智能视觉传感器,内置了人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签识别功能。我们此实验中只需要用到 “人脸识别” 这一功能。
关于二哈具体的介绍和操作,请点击此处进入二哈官网浏览https://wiki.dfrobot.com.cn/SKU_SEN0305_Gravity__HUSKYLENS%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%91%84%E5%83%8F%E5%A4%B4#target_16
2、TinyWebDB
TinyWebDB服务器是网络微数据库,开源免费的,我们使用它来存储我们的数据,然后我们再从这个数据库获取数据。
我们首先注册新账号,也可以使用公共账户(账号、密码均为share)进行登录。请点击此处进行登录或注册http://tinywebdb.appinventor.space/
登录进去后我们后面的操作主要用到这里的API地址、用户名和密钥。
3、Easy IoT平台
EasyIoT是一个比较简单的物联网管理平台,我们使用它来进行MQTT消息通讯。因为我们之前使用过了,也比较熟悉它的具体使用步骤了,所以此处不再详细介绍它使用。
在后面的配置MQTT参数时,我们主要使用这里的用户名、密码和其中的一个Topic即可。点击此处进去Easy IoT平台http://iot.dfrobot.com.cn/workshop.html
五、实验过程
1、二哈的配置与使用
(1)二哈的接线
掌控板的中文面对应micro:bit掌控I/O扩展板的中文面,二哈的IIC接口对应扩展板的IIC接口。
(2)查看固件版本
在语言的左侧就可以看到当前的固件版本,我们只需要保证固件版本在V0.5.1就可以。
(3)升级固件版本
如果版本过低,我们要升级固件版本,务必要保证在V0.5.1以上。
(4)开始多人脸识别录入数据
在完成了固件的版本确认后,我们开始进行人脸识别录入数据。二哈默认的人脸识别模式是单人人脸识别,我们需要更改设置为识别多个,就可以让二哈来识别多个人了。在功能界面处,长按功能键,进入人脸识别的二级菜单拨动功能键至识别多个,短按功能键选中,往右拨动功能键,打开识别多个的开关,短按功能键保存,往左拨动功能键至保存并返回即可。
(5)学习人脸
在人脸识别的功能界面,先短按学习键,将已学习过了的人脸遗忘掉。长按 学习键学习人脸,学习完后即可松开学习键。如需继续学习人脸,则在倒计时结束前短按学习键,否则想要新增人脸的话,只能先遗忘之前学习过的,再重新学习一次。
关于二哈的具体操作及详细步骤,请浏览二哈官网教程https://wiki.dfrobot.com.cn/_SKU_SEN0305_Gravity__HUSKYLENS_人工智能摄像头#target_16
2、TinyWebDB的配置与使用
点击数据浏览进去添加标签数据。
在数据库里面添加标签,存储我们的设置的数据。
请点击此处进去TinyWebDB官网http://tinywebdb.appinventor.space/
3、Easy IoT的配置与使用
注册或登录后,点击工作间,进去后点击添加新的设备来生成一个Topic,或者直接使用以前创建过的Topic也行。
请点击此处进去Easy IoT物联网云平台官网http://iot.dfrobot.com.cn/workshop.html
4、Mind+配置与图形化编程
(1)在Mind+的扩展那里依次添加主板、传感器和网络服务
(2)编程参数配置
MQTT初始化配置:
服务器参数配置(TinyWebDB数据库):
(3)图形化编程结果
六、实验代码
/*!
* MindPlus
* mpython
*
*/
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <mPython_tinywebdb.h>
#include <DFRobot_HuskyLens.h>
// 静态常量
const String topics[5] = {"c3PBcmFMR","","","",""};
// 创建对象
DFRobot_Iot myIot;
mPython_TinyWebDB mydb;
DFRobot_HuskyLens huskylens;
// 主程序开始
void setup() {
mPython.begin();
myIot.wifiConnect("Miro", "1372051053");
while (!myIot.wifiStatus()) {yield();}
display.setCursorLine(1);
display.printLine(myIot.getWiFiLocalIP());
myIot.init("iot.dfrobot.com.cn","Z0h15mFMg","","WA2JcmKMgz",topics,1883);
myIot.connect();
while (!myIot.connected()) {yield();}
display.setCursorLine(2);
display.printLine("MQTT连接成功");
mydb.setServerParameter("http://tinywebdb.appinventor.space/api", "miro007","05104ad2");
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
}
void loop() {
huskylens.request();
if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
rgb.write(0, 0x00FF00);
display.setCursorLine(3);
display.printLine(mydb.getTag("1"));
myIot.publish(topic_0, mydb.getTag("1"));
}
else {
if (huskylens.isAppear(2,HUSKYLENSResultBlock)) {
display.setCursorLine(3);
display.printLine(mydb.getTag("2"));
rgb.write(0, 0xFF0000);
myIot.publish(topic_0, mydb.getTag("2"));
}
else {
display.setCursorLine(3);
display.printLine("此人脸尚未录入,请先录入人脸!");
rgb.write(0, 0x0000FF);
}
}
}
七、实验结果
PS:我们是两个人一起合作来做此实验的。
(1)二哈成功识别到第一个人脸
(2)二哈成功识别到第二个人脸
(3)二哈未能成功识别到人脸
(4)Easy IoT平台Topic接收到的消息
七、实验总结
通过这个实验,我学会并掌握了许多的知识和技术。我掌握了基于二哈实现多人人脸学习和识别的基本操作,学会了对TinywebDB实现云数据库应用的使用,还有知道如何通过EasyIoT实现mqtt数据上传等等的一些重要的操作。通过此实验,大大加深我对人工智能的理解,进一步扩展了我的专业视野和知识,同时让我懂得了人工智能人脸识别的基本原理。
更多推荐
所有评论(0)