基于二哈实现多人人脸学习和识别
一、实验目的及要求【一】实现人脸识别。【二】实现云数据库应用。二、实验原理与内容基于二哈实现多人人脸学习和识别。基于TinywebDB实现云数据库应。基于EasyIoT实现mqtt数据上传。三、实验软硬件环境硬件:掌控板、二哈识图、掌控扩展板、电脑、手机。软件:Mind+。四、实验过程(实验步骤、记录、数据、分析)(一)HuskyLens二哈识图介绍点击查看二哈识图详细介绍简介:HuskyLens
一、实验目的及要求
【一】实现人脸识别。
【二】实现云数据库应用。
二、实验原理与内容
基于二哈实现多人人脸学习和识别。
基于TinywebDB实现云数据库应。
基于EasyIoT实现mqtt数据上传。
三、实验软硬件环境
硬件:掌控板、二哈识图、掌控扩展板、电脑、手机。
软件:Mind+。
四、 实验过程(实验步骤、记录、数据、分析)
(一)HuskyLens二哈识图介绍
点击查看二哈识图详细介绍
简介:HuskyLens二哈识图是一款简单易用的AI视觉传感器,内置7种功能:人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签识别、物体分类。
1、功能按键与学习按键说明:
功能按键与学习按键的基本操作如下:
向左或向右拨动“功能按键”,切换到不同的功能。
短按“学习按键”,学习指定的物体;长按“学习按键”,从不同的角度和距离持续学习指定的物体;如果HuskyLens之前学习过,则短按“学习按键”,可让HuskyLens忘记当前功能下所学的。
长按“功能按键”,进入当前功能的二级菜单参数设置界面,向左、向右拨动或向下短按“功能按键”即可设置相关参数。
2、升级固件
使用windows 10操作系统升级HuskyLens的固件。操作步骤如下:
(1)下载HUSKYLENS Uploader V2.1软件。点击下载。由于是.exe文件,windows系统可能会拦截,请放行或保留该文件即可。
(2)下载并安装USB转串口芯片CP2102的驱动程序。如之前已经安装过,此步骤可跳过。点击此处 选择适合您的驱动。(注:也可使用Mind+中的一键安装驱动功能安装此驱动。)
驱动安装完毕后,使用microUSB线,连接HUSKYLENS上的固件烧录口(USB口)与电脑USB口,此时打开设备管理器应该出现名字开头为"Silicon Labs CP210x"的COM端口。如下图所示:
(3)下载固件。点击下载V0.5.1版本。
(4)运行HUSKYLENS Uploader V2.1软件, 会先弹出一个小黑窗(cmd窗口),稍等片刻,就会出现界面。然后点击“Select File”按钮,加载固件。
(5)点击“Upload”按钮即可进行烧录,耐心等待烧录完成。烧录完成后,“Uploading”字样会消失,HuskyLens屏幕会点亮。烧录期间请不要关闭界面窗口和小黑窗(cmd窗口)。烧录过程大概需要5分钟左右。固件比较大,因此上传时间会有点长。
3、人脸识别功能
本功能可以侦测任何脸部轮廓;识别、追踪学习过的人脸。本次实验做的是识别多个人脸,详细步骤如下。
(1)操作设置:
向左拨动“功能按键”,至屏幕顶部显示“人脸识别”。
长按“功能按键”,进入人脸识别功能的二级菜单参数设置界面。
向左或向右拨动“功能按键”,选中“学习多个”,然后短按“功能按键”,接着向右拨动“功能按键”打开“学习多个”的开关,即:进度条颜色变蓝,进度条上的方块位于进度条的右边。再短按“功能按键”,确认该参数。
向左拨动“功能按键”,选中“保存并返回“,短按”功能按键“,屏幕提示”是否保存参数?“。默认选择”确认“,此时短按”功能按键“,即可保存参数,并自动返回到人脸识别模式。
(2)学习多个人脸:
将HuskyLens屏幕中央的“+”字对准需要学习的人脸,长按“学习按键”完成第一个人脸的学习(各个角度)。松开”学习按键“后,屏幕上会提示:”再按一次按键继续!按其他按键结束“。如要继续学习下一个人脸,则在倒计时结束前短按“学习按键”,可以继续学习下一个人脸。如果不再需要学习其他人脸了,则在倒计时结束前短按”功能按键”即可,或者不操作任何按键,等待倒计时结束。
本章节中,我们需要继续学习下一个人脸,因此在倒计时结束前短按“学习按键”。然后将HuskyLens屏幕中央的“+”字对准需要学习的下一个人脸,长按“学习按键”完成第二个人的脸的学习。以此类推。
HuskyLens标注的人脸ID与录入人脸的先后顺序是一致的,也就是:学习过的人脸会按顺序依次标注为“人脸:ID1”,“人脸:ID2”,“人脸:ID3”,以此类推,并且不同的人脸ID对应的边框颜色也不同。
(3)识别多个人脸:
HuskyLens学习过的人脸信息会自动保存起来。后续,当HuskyLens检测到学习过的人脸时,会将这些人脸用方框框选出来并标识ID,第一个学习的人脸标注为“人脸:ID1”,第二个学习的人脸标注为“人脸:ID2”,第三个学习的人脸标注为“人脸:ID3”,以此类推。不同的人脸ID对应的边框颜色也不同,边框大小会随着人脸大小而变化,并自动追踪人脸。
(二)TinyWebDB
1、在红色选区部分按照提示注册TinyWebDB账号。
2、注册后登陆TinyWebDB,点击数据浏览。
3、在右上角输入标签和值创建两个id(识别多少个人脸创建多少个id)。
(三)Easy IoT
1、添加或直接登陆Easy IoT账号。
2、登陆成功后,点击工作间,添加一个新的设备。
(四)Mind+
1、编程准备
(1)将组装好的设备通过USB接口连接电脑,打开Mind+,在上方导航栏中连接设备并切换到上传模式。
(2)点击左侧导航栏中的扩展。
(3)在主控板中添加掌控板,在扩展板中添加掌控扩展板,在传感器中添加AI摄像头,在网络服务中添加MQTT,WiFi和TinyWebDB。
2、编程
(1)整体图形代码块
(2)设置参数
3、C代码
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <mPython_tinywebdb.h>
#include <DFRobot_HuskyLens.h>
// 动态变量
String mind_s_name;
// 静态常量
const String topics[5] = {"3mhx5iKMR","","","",""};
// 创建对象
DFRobot_Iot myIot;
mPython_TinyWebDB mydb;
DFRobot_HuskyLens huskylens;
// 主程序开始
void setup() {
mPython.begin();
myIot.wifiConnect("lyb", "lyb1234567890;");
display.setCursorLine(1);
display.printLine("WiFi正在尝试连接...");
while (!myIot.wifiStatus()) {yield();}
display.setCursorLine(1);
display.printLine("WiFi连接成功!");
display.setCursorLine(2);
display.printLine(myIot.getWiFiLocalIP());
myIot.init("iot.dfrobot.com.cn","ZtF_tiFGR","","ZpKlpmFMgz",topics,1883);
myIot.connect();
display.setCursorLine(3);
display.printLine("MQTT正在尝试连接...");
while (!myIot.connected()) {yield();}
display.fillInLine(3, 0);
display.setCursorLine(3);
display.printLine("MQTT连接成功");
mydb.setServerParameter("http://tinywebdb.appinventor.space/api", "lybiot","87bb2345");
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
display.fillScreen(0);
display.setCursorLine(1);
display.printLine("请保持面向摄像头");
}
void loop() {
huskylens.request();
if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
if (huskylens.isLearned(huskylens.readBlockCenterParameterDirect().ID)) {
mind_s_name = mydb.getTag((String(huskylens.readBlockCenterParameterDirect().ID)));
display.setCursorLine(2);
display.printLine(mind_s_name);
myIot.publish(topic_0, mind_s_name);
}
}
}
五、测试/调试及实验结果分析
1、使用二哈学习多个人脸
2、在Mind+中上传代码到掌控板
3、人脸识别
六、实验结论与体会
通过这次实验我利用二哈识图,掌控板和掌控扩展板组合的设备,以及Mind+编程实现了人脸识别的功能。在实验过程中体会到了物联网的魅力。
更多推荐
所有评论(0)