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

[试用测评] 【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据

[复制链接]
【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图1

HUSKYLENS 2 (二哈识图 2) 是一款简单易用、玩法多样的AI视觉传感器,采用6TOPS算力专用AI芯片,预置人脸识别、目标检测、物体分类、姿态识别、实例分割等20余种开机即用的AI模型,同时,用户还可部署自行训练的模型,教会二哈识图识别任意目标物体。板载的UART / I2C端口,可以与主流控制器Arduinomicro:bit、ESP32、Raspberry Pi等开源硬件无缝连接,被广泛应用于创客、AI教育、STEAM教育和交互艺术领域。

【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图4

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

【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图3

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


【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图2

驴友花雕  中级技神
 楼主|

发表于 5 小时前

【花雕动手做】AI视觉二哈识图2之统计二维码输出数据

3、识别二维码,是指通过图像采集与解码技术,从二维码图案中提取出所包含的信息。二维码(QR Code)是一种二维条码,它以黑白模块构成的矩阵图案编码数据,具有高密度、容错性强、可快速读取等特点。

(1)什么是二维码识别?
二维码识别是指设备(如摄像头、扫描器或图像处理系统)对二维码图像进行分析、定位、解码,从而获取其中存储的信息,如网址、文本、产品编号、身份信息等。

(2)识别流程简述
图像采集:通过摄像头或扫描器获取二维码图像。
图像预处理:去除噪声、增强对比度、校正角度。
定位二维码区域:识别二维码的位置与边界。
解码分析:根据二维码标准(如 QR Code、Data Matrix)解析模块排列,提取编码数据。
输出信息:将解码结果转换为可读内容,如字符串、链接、指令等。

(3)技术实现方式
硬件识别:使用专用扫码枪或嵌入式模块进行快速识别。
软件识别:利用图像处理库(如 OpenCV、Zxing、ZBar)在计算机或移动设备上识别二维码。
AI增强识别:结合深度学习模型提升识别准确率,尤其在模糊、遮挡或复杂背景下。

(4)应用场景
移动支付与扫码登录
工业自动化与产品追踪
医疗标签与药品识别
零售商品管理与促销活动
门票验证与身份识别

【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 小时前

【花雕动手做】AI视觉二哈识图2之统计二维码输出数据


4、AI 视觉传感器 HUSKYLENS 2 之统计二维码总数输出指定二维码的数据
当画面中出现多张二维码时,可以使用以下示例程序统计画面中的二维码数量,获取指定ID二维码的相关数据。

【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图1

测试实验开源代码


  1. /*【花雕动手做】AI 视觉传感器 HUSKYLENS 2 之统计二维码总数输出指定二维码的数据
  2. * 使用平台:MindPlus
  3. * 主控板:Arduino Uno
  4. * 功能说明:本程序通过 HUSKYLENS 2 AI 相机识别图像中的二维码,统计识别到的二维码总数,
  5. * 并输出 ID 为 1 的二维码的内容、位置(中心坐标)、尺寸(宽度与高度)等信息。
  6. */
  7. #include "DFRobot_HuskylensV2.h"  // 引入 HUSKYLENS 2 的驱动库,用于控制 AI 视觉模块
  8. HuskylensV2 huskylens;  // 创建 HUSKYLENS 设备对象,供后续调用识别与数据获取功能
  9. void setup() {
  10.   Serial.begin(9600);       // 初始化串口通信,波特率设置为 9600,用于数据输出到串口监视器
  11.   Wire.begin();             // 初始化 I2C 通信,用于与 HUSKYLENS 模块连接
  12.   while (!huskylens.begin(Wire)) {  // 持续尝试连接 HUSKYLENS,直到连接成功
  13.     delay(100);             // 每次尝试之间延迟 100 毫秒
  14.   }
  15.   Serial.println("HUSKYLENS 2 启动成功");        // 输出初始化成功提示信息
  16.   Serial.println("识别二维码输出相关数据");      // 输出功能说明
  17. }
  18. void loop() {
  19.   huskylens.getResult(ALGORITHM_QRCODE_RECOGNITION);  // 请求 HUSKYLENS 执行二维码识别算法
  20.   if (huskylens.available(ALGORITHM_QRCODE_RECOGNITION)) {  // 判断是否有识别结果可用
  21.     Serial.println("二维码总数为:" + String(huskylens.getCachedResultNum(ALGORITHM_QRCODE_RECOGNITION)));  // 输出当前识别到的二维码数量
  22.     if (huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1) != NULL) {  // 判断是否存在 ID 为 1 的二维码
  23.       Serial.println("二维码内容为:" + String(RET_ITEM_STR(huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1), Result, content)));  // 输出二维码的内容(如网址、文本等)
  24.       Serial.println("二维码中心点的坐标为:" + String(RET_ITEM_NUM(huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1), Result, xCenter)) + "." + String(RET_ITEM_NUM(huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1), Result, yCenter)));  // 输出二维码在图像中的中心坐标(X.Y格式)
  25.       Serial.println("二维码高度为:" + String(RET_ITEM_NUM(huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1), Result, height)));  // 输出二维码的高度(像素单位)
  26.       Serial.println("二维码宽度为:" + String(RET_ITEM_NUM(huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1), Result, width)));   // 输出二维码的宽度(像素单位)
  27.     }
  28.   }
  29.   delay(10000);  // 每次识别后延迟 10 秒,避免过于频繁地读取数据,适合稳定测试或演示
  30. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 小时前

【花雕动手做】AI视觉二哈识图2之统计二维码输出数据

代码结构与功能说明
使用 HUSKYLENS 2 AI 相机识别图像中的二维码,统计识别到的二维码总数,并输出 ID 为 1 的二维码的内容、位置(中心坐标)和尺寸(宽度与高度)。

cpp
  1. #include "DFRobot_HuskylensV2.h"
  2. HuskylensV2 huskylens;
复制代码

引入 HUSKYLENS 2 的驱动库。

创建一个 huskylens 对象,用于与相机通信。

cpp
  1. void setup() {
  2.   Serial.begin(9600);
  3.   Wire.begin();
  4.   while (!huskylens.begin(Wire)) {
  5.     delay(100);
  6.   }
  7.   Serial.println("HUSKYLENS 2 启动成功");
  8.   Serial.println("识别二维码输出相关数据");
  9. }
复制代码

初始化串口通信和 I2C 通信。

持续尝试连接 HUSKYLENS,直到连接成功。

输出启动成功提示信息。

cpp
  1. void loop() {
  2.   huskylens.getResult(ALGORITHM_QRCODE_RECOGNITION);
复制代码

请求 HUSKYLENS 执行二维码识别算法。

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

判断是否有识别结果可用。

cpp
  1.     Serial.println("二维码总数为:" + String(huskylens.getCachedResultNum(ALGORITHM_QRCODE_RECOGNITION)));
复制代码

输出当前画面中识别到的二维码数量。

cpp
  1.     if (huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1) != NULL) {
复制代码

判断是否存在 ID 为 1 的二维码。

cpp
  1.       Serial.println("二维码内容为:" + String(RET_ITEM_STR(...)));
复制代码

输出该二维码的内容,如网址、文本等。

cpp
  1.       Serial.println("二维码中心点的坐标为:" + String(xCenter) + "." + String(yCenter));
复制代码

输出二维码在图像中的中心坐标(X.Y格式)。

cpp
  1.       Serial.println("二维码高度为:" + String(height));
  2.       Serial.println("二维码宽度为:" + String(width));
复制代码

输出二维码的高度与宽度(像素单位)。

cpp
  1.   }
  2.   delay(10000);
  3. }
复制代码

每次识别后延迟 10 秒,避免过于频繁地读取数据。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 4 小时前

【花雕动手做】AI视觉二哈识图2之统计二维码输出数据

(3)测试实验MInd+图形编程

【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图1

(4)实验串口返回情况

【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 4 小时前

【花雕动手做】AI视觉二哈识图2之统计二维码输出数据

实验场景图  动态图

【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图1

【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图2

【花雕动手做】AI 视觉二哈识图 2 之统计二维码输出数据图3
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail