12浏览
查看: 12|回复: 5

[试用测评] 【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED

[复制链接]
【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图3

1、测试实验硬件连接
将HukyLens 2 连接到Arduino主板对应的I2C引脚,使用电源线连接Arduino Uno与电脑。额外供电提示:Arduino Uno的I2C引脚输出的电压不足以支持HUSKYLENS 2正常工作,当HUSKYLENS 2接在Arduino Uno上时须有额外数据线连接HUSKYLENS 2的Type-C接口与电源,为HUSKYLENS 2进行额外供电。接线图可参考下图。

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图2

2、设置测试实验平台
打开 Mind+ 编程软件,选择主控板 Arduino,加载HUSKYLENS 2 库

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图1


驴友花雕  中级技神
 楼主|

发表于 昨天 17:51

【花雕动手做】二哈识图2之识别人脸输出数据控制LED

3、人脸识别(Face Recognition)是一种基于计算机视觉与人工智能的识别技术,其核心目标是:通过摄像头或图像分析系统,自动检测并识别图像中的人脸,并判断其身份、特征或情绪状态。人脸识别是让设备“认出你”的关键一步。它让设备具备“认出你”的能力,是身份验证、安全监控、智能交互等领域的重要技术支撑。

(1)人脸识别的基本定义
人脸识别是指:
利用人脸图像中的几何结构、纹理特征或深度信息,判断个体身份或进行特征分析。
它不仅识别“这是一个人脸”,更能判断“这是谁”。

(2)人脸识别的技术流程
人脸检测:在图像中定位人脸区域。
特征提取:分析眼睛、鼻子、嘴巴等关键点位置与比例。
特征编码:将人脸特征转换为向量或编码(如128维特征向量)。
身份比对:与数据库中的人脸进行匹配,判断是否为同一人。
结果输出:返回识别结果,如姓名、编号、相似度等。

(3)与相关技术的区别

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图2

(4)应用场景举例
门禁系统:刷脸开门或考勤打卡
手机解锁与支付验证
医疗系统识别患者身份
机场安检与边境身份核验
教育系统识别学生出勤与专注度
游戏或社交平台个性化互动

(5)常见人脸识别算法与模型

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图1

(6)技术优势与挑战

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图3

(7)人脸识别的场景

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图4

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图5


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 17:55

【花雕动手做】二哈识图2之识别人脸输出数据控制LED

4、执行器(Actuator)是一种将控制信号转换为物理动作的装置,是自动化系统和机器人中的关键部件。它的作用是根据控制系统的指令,驱动机械结构完成特定动作,如移动、旋转、推动、夹取等。

(1) 执行器的核心定义
执行器是将电信号、液压信号或气动信号转化为机械运动的装置,是“感知—决策—执行”链条中的最后一环。

(2)常见执行器类型

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图2

(3)执行器在系统中的作用
动作执行:如机械臂的关节旋转、轮式小车的驱动、夹爪的开合。
反馈闭环:配合传感器形成闭环控制系统,实现精准定位与动态调整。
能量转换:将控制系统的能量信号(电、气、液)转化为机械能。
接口桥梁:连接控制系统与物理世界,是“虚拟指令”落地的关键。

(4)应用场景举例
工业自动化:机器人焊接、搬运、装配
智能家居:窗帘开合、电动门锁、自动调光
航空航天:飞行器舵面控制、姿态调整
医疗设备:手术机器人、康复辅助机械
仿生机器人:模仿肌肉运动的柔性执行器

(5)使用执行器需注意事项
负载匹配:选择合适的执行器类型与规格,避免过载或性能不足
控制精度:需配合编码器、传感器实现闭环控制,提升定位与响应能力
响应速度:不同驱动方式响应时间不同,需根据任务需求选型
能耗与散热:电动执行器需考虑功率与热管理
安全机制:设置限位、急停、过载保护,防止误动作或损坏

(6)为简化测试实验,这里使用简单的执行器LED模块

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图1

5、实际测试的几个范本

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图3

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图4

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图5

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图7

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图6


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 18:02

【花雕动手做】二哈识图2之识别人脸输出数据控制LED

6、测试实验代码

  1. /*【花雕动手做】AI 视觉传感器 HUSKYLENS 2 之识别人脸输出数据并控制LED模块
  2. * 使用平台:MindPlus
  3. * 主控板:Arduino Uno
  4. * 功能说明:
  5. * 本程序使用 HUSKYLENS 2 AI 视觉传感器识别画面中的人脸,
  6. * 并输出人脸的相关数据(ID、尺寸、中心坐标),
  7. * 根据识别到的人脸 ID 控制 LED 灯的闪烁或关闭状态。
  8. */
  9. #include "DFRobot_HuskylensV2.h"  // 引入 HUSKYLENS 2 的驱动库,用于控制 AI 视觉模块
  10. // 创建 HUSKYLENS 设备对象
  11. HuskylensV2 huskylens;
  12. // 初始化函数
  13. void setup() {
  14.   Serial.begin(9600);       // 初始化串口通信,波特率为 9600
  15.   Wire.begin();             // 初始化 I2C 通信,用于与 HUSKYLENS 模块连接
  16.   // 持续尝试连接 HUSKYLENS,直到连接成功
  17.   while (!huskylens.begin(Wire)) {
  18.     delay(100);             // 每次尝试之间延迟 100 毫秒
  19.   }
  20.   // 输出初始化成功提示信息
  21.   Serial.println("HUSKYLENS 2 启动成功");
  22.   Serial.println("识别人脸来控制执行器模块");
  23.   // 设置数字引脚 13 为输出模式,用于控制 LED 灯
  24.   pinMode(13, OUTPUT);
  25. }
  26. // 主循环函数
  27. void loop() {
  28.   // 请求 HUSKYLENS 执行人脸识别算法,处理当前画面
  29.   huskylens.getResult(ALGORITHM_FACE_RECOGNITION);
  30.   // 判断是否有识别结果可用
  31.   if (huskylens.available(ALGORITHM_FACE_RECOGNITION)) {
  32.     // 输出当前画面中识别到的人脸数量
  33.     Serial.println("画面中的人脸总数为:" + String(huskylens.getCachedResultNum(ALGORITHM_FACE_RECOGNITION)));
  34.     // 输出当前画面中人脸的详细信息(以中心人脸为例)
  35.     Serial.println("人脸ID:" + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_FACE_RECOGNITION), Result, ID)));
  36.     Serial.println("人脸宽:" + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_FACE_RECOGNITION), Result, width)));
  37.     Serial.println("人脸长:" + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_FACE_RECOGNITION), Result, height)));
  38.     Serial.println("人脸中心点X坐标:" + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_FACE_RECOGNITION), Result, xCenter)));
  39.     Serial.println("人脸中心点Y坐标:" + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_FACE_RECOGNITION), Result, yCenter)));
  40.   }
  41.   // 如果识别到 ID 为 2 的人脸,执行 LED 快闪
  42.   if (huskylens.getCachedResultByID(ALGORITHM_FACE_RECOGNITION, 2) != NULL) {
  43.     Serial.println(RET_ITEM_STR(huskylens.getCachedResultByID(ALGORITHM_FACE_RECOGNITION, 2), Result, name) + "LED快闪");
  44.     digitalWrite(13, LOW);   // 熄灭 LED
  45.     delay(100);              // 延迟 100 毫秒
  46.     digitalWrite(13, HIGH);  // 点亮 LED
  47.     delay(200);              // 延迟 200 毫秒
  48.   }
  49.   // 如果识别到 ID 为 5 的人脸,关闭 LED 灯
  50.   if (huskylens.getCachedResultByID(ALGORITHM_FACE_RECOGNITION, 5) != NULL) {
  51.     Serial.println(RET_ITEM_STR(huskylens.getCachedResultByID(ALGORITHM_FACE_RECOGNITION, 5), Result, name) + "LED灯灭");
  52.     digitalWrite(13, LOW);   // 熄灭 LED
  53.     delay(1000);             // 延迟 1 秒
  54.   }
  55.   // 每次识别后延迟 3 秒,控制识别频率
  56.   delay(3000);
  57. }
复制代码

7、实际测试的代码解读

该程序使用 HUSKYLENS 2 AI 视觉传感器进行人脸识别,并输出识别到的人脸数据(如 ID、尺寸、中心坐标),同时根据特定人脸 ID 控制 LED 灯的闪烁或关闭。适用于智能门禁、人脸交互提示、身份识别等场景。

模块与硬件说明
HUSKYLENS 2:AI 视觉传感器,支持人脸识别、物体识别等功能。
Arduino Uno:主控板,用于处理识别结果并控制执行器。
LED 灯(引脚 13):作为执行器,根据识别结果进行闪烁或关闭。

(1)初始化部分 setup()
cpp
  1. Serial.begin(9600);       // 初始化串口通信
  2. Wire.begin();             // 初始化 I2C 通信
  3. while (!huskylens.begin(Wire)) {
  4.   delay(100);             // 持续尝试连接 HUSKYLENS
  5. }
  6. Serial.println("HUSKYLENS 2 启动成功");
  7. Serial.println("识别人脸来控制执行器模块");
  8. pinMode(13, OUTPUT);      // 设置 LED 控制引脚为输出
复制代码

建立通信并初始化 HUSKYLENS。
设置 LED 控制引脚。

(2)主循环部分 loop()
a. 获取人脸识别结果
cpp
  1. huskylens.getResult(ALGORITHM_FACE_RECOGNITION);
复制代码

请求 HUSKYLENS 执行人脸识别算法。

cpp
  1. if (huskylens.available(ALGORITHM_FACE_RECOGNITION)) {
复制代码

判断是否有识别结果。

b. 输出人脸数据
cpp
  1. Serial.println("画面中的人脸总数为:" + String(huskylens.getCachedResultNum(ALGORITHM_FACE_RECOGNITION)));
  2. Serial.println("人脸ID:" + String(...));
  3. Serial.println("人脸宽:" + String(...));
  4. Serial.println("人脸长:" + String(...));
  5. Serial.println("人脸中心点X坐标:" + String(...));
  6. Serial.println("人脸中心点Y坐标:" + String(...));
复制代码

输出当前画面中识别到的人脸数量。
输出中心人脸的 ID、尺寸、中心坐标等详细信息。

c. 控制 LED 灯逻辑
ID = 2:LED 快闪
cpp
  1. if (huskylens.getCachedResultByID(ALGORITHM_FACE_RECOGNITION, 2) != NULL) {
  2.   Serial.println(... + "LED快闪");
  3.   digitalWrite(13, LOW);
  4.   delay(100);
  5.   digitalWrite(13, HIGH);
  6.   delay(200);
  7. }
复制代码

快速闪烁 LED 灯,表示识别到 ID 为 2 的人脸。

ID = 5:LED 熄灭
cpp
  1. if (huskylens.getCachedResultByID(ALGORITHM_FACE_RECOGNITION, 5) != NULL) {
  2.   Serial.println(... + "LED灯灭");
  3.   digitalWrite(13, LOW);
  4.   delay(1000);
  5. }
复制代码

熄灭 LED 灯,表示识别到 ID 为 5 的人脸。

(3)节奏控制
cpp
  1. delay(3000);
复制代码

每次识别后延迟 3 秒,避免频繁刷新。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 18:04

【花雕动手做】二哈识图2之识别人脸输出数据控制LED

8、测试实验MInd+图形编程

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图2

9、实验串口返回情况

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图1




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 18:07

【花雕动手做】二哈识图2之识别人脸输出数据控制LED

10、实验场景图  动态图

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图3

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图1

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图2

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图5

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图6

【花雕动手做】AI 二哈识图2之识别人脸输出数据控制 LED图4
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail