# ext2-py-SEN0638 **Repository Path**: mind-plus/ext2-py-SEN0638 ## Basic Information - **Project Name**: ext2-py-SEN0638 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-13 - **Last Updated**: 2026-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: MindPlus-Ext2 ## README # HUSKYLENS 2 AI摄像头 ![cover](extension/public/cover.png) `huskylens` 是一个适用于 Mind+ V2 Python积木模式的扩展(二哈识图 2,提供了人脸识别、目标检测、颜色识别等多种AI视觉功能)。 当前本地构建版本为 0.2.4,共提供 213 个积木,使用 pinpong 的 I2C/UART 通信。 ## 本次同步与调试 官方驱动来自 `DFRobot/DFRobot_HuskylensV2` 的 `master`,提交 `7f3b992`。`extension/public/libraries/dfrobot_huskylensv2.py` 在该版本基础上将 `ID`、`maxID` 改为无符号 8 位字段,支持 0~255。Mind+ 的补充功能位于 `mindplus_huskylensv2.py`,后续可分别维护。[官方 pinpong 驱动](https://github.com/DFRobot/DFRobot_HuskylensV2/tree/master/python/pinpong) - 自训练模型按图像分类、目标检测、实例分割排列在同一个二级菜单,统一使用“模型”描述。 - 新增自训练图像分类 6 个积木和实例分割 11 个积木,与现有目标检测积木共用结果缓存接口。 - 所选内置算法的结果菜单在“名称”后增加识别置信度,直接输出浮点 `conf`。颜色识别、自学习分类、车牌、OCR、巡线、标签、二维码、条形码以及自训练模型菜单按 C 版范围保留原有选项。 - 修复多模型空槽和单模型处理、空缓存及负序号访问、二维码误用标签算法、生成器 `Generator` 大小写、重复读取结果及条件表达式的优先级问题。 新增自训练模型积木、分组标题及置信度菜单提供简体中文、英文、繁体中文、日文、韩文、西班牙文、巴西葡萄牙文和法文资源。自训练模型中的既有目标检测积木同步统一各语言的术语和句式。 运行环境需要 pinpong。Mind+ 将本扩展的两个本地 Python 文件加入运行环境后,通过初始化积木创建摄像头对象。独立运行时可参考官方仓库的 pinpong 示例。当前验证包括构建、生成代码语法和模拟通信测试,I2C/UART 设备交互由实物测试确认。 ## 示例程序 本项目尚未提供独立的 Mind+ 示例工程。可在 Mind+ Python积木模式中按以下顺序搭建人脸识别流程。 1. 将 HUSKYLENS 2 的通信协议设置为与接线一致的 I2C 或 UART,连接主板。 2. 执行对应的“HUSKYLENS 2 初始化通讯直到成功”积木。 3. 切换内置模型到人脸识别。 4. 在循环中请求一次人脸识别数据并存入结果。 5. 检测到人脸时,读取靠近中心的人脸 ID、名称或识别置信度。 官方仓库提供 pinpong 的 Python 源码示例,包括人脸识别、手势识别、姿态识别和多模型。独立运行时需按所用主板配置 pinpong 和通信接口。[官方 pinpong 示例](https://github.com/DFRobot/DFRobot_HuskylensV2/tree/master/python/pinpong/examples) ## 支持列表 | 项目 | 范围与验证状态 | |---|---| | 软件模式 | Mind+ V2 Python积木模式 | | 目标硬件 | HUSKYLENS 2 AI摄像头,SKU SEN0638 | | 主板 | 行空板 M10,当前扩展的实物联调待完成 | | 通信方式 | pinpong I2C、UART,需与设备协议设置一致 | | 配置声明 | 当前未设置 supportDevices、supportArch 白名单,具体主板需具备对应 pinpong 通信支持 | | 已完成的软件验证 | 扩展构建、生成代码语法检查、模拟通信与缓存边界测试 | ## 积木 | 积木类型 | 积木内容 | |---|---| | 命令 | HUSKYLENS 2 初始化I2C通讯直到成功 | | 命令 | HUSKYLENS 2 初始化UART通讯串口[UART]波特率[BAUD]直到成功 | | 命令 | HUSKYLENS 2 切换内置模型到 [ALGORITHM] | | 命令 | HUSKYLENS 2切换到多模型模式,加载模型 [Algorithm1] [Algorithm2] [Algorithm3] | | 数值 | [ALGORITHM]模型 | | 命令 | 算力配比[NUM1]:[NUM2]:[NUM3] | | 命令 | 显示文字 颜色[COLOR]大小[SIZE]起点X[X]起点Y[Y]内容[CONTENT] | | 命令 | 清除文字 | | 命令 | 绘制新矩形框 颜色[COLOR]线宽[LINE_WIDTH]起点X[X]起点Y[Y]宽[W]高[H] | | 命令 | 绘制或更新指示框 颜色[COLOR]线宽[LINE_WIDTH]起点X[X]起点Y[Y]宽[W]高[H] | | 命令 | 清除指示框和矩形框 | | 数值 | 红色[RED] 绿色[GREEN] 蓝色[BLUE] | | 命令 | 内置模型[ALGORITHMCENTER]学习画面中心目标 | | 命令 | 自训练模型[ALGORITHMCENTER]学习画面中心目标 | | 命令 | 内置模型[ALGORITHMBOX]学习指定框内目标 起点X[X]起点Y[Y]宽[W]高[H] | | 命令 | 自训练模型[ALGORITHMBOX]学习指定框内目标 起点X[X]起点Y[Y]宽[W]高[H] | | 命令 | 设置内置模型[ALGORITHMNAME]ID[ID]的名字为[NAME] | | 命令 | 遗忘内置模型[ALGORITHMFORGET]全部ID | | 命令 | 遗忘自训练模型[ALGORITHMFORGET]全部ID | | 命令 | 播放音乐[FILENAME]音量[VOLUME] | | 命令 | 拍照 | | 数值 | 拍摄照片名 | | 命令 | 截屏 | | 数值 | 截屏照片名 | | 命令 | 请求一次人脸识别数据 存入结果 | | 布尔 | 检测到人脸? | | 数值 | 靠近中心的人脸 [PROPERTY] | | 数值 | 检测到的人脸总数 | | 数值 | 第 [INDEX] 张人脸的 [PROPERTY] | | 数值 | 已学习的人脸ID总数 | | 布尔 | ID [ID] 的人脸存在? | | 数值 | ID [ID] 的人脸ID总数 | | 数值 | ID [ID] 的人脸 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]张人脸的[PROPERTY] | | 命令 | 请求一次物体识别数据 存入结果 | | 布尔 | 检测到识别物体? | | 数值 | 靠近中心的物体 [PROPERTY] | | 数值 | 检测到的物体ID总数 | | 数值 | 第[INDEX]个物体的[PROPERTY] | | 数值 | 已学习的物体ID总数 | | 布尔 | ID [ID] 的物体存在? | | 数值 | ID [ID] 的物体ID总数 | | 数值 | ID [ID] 的物体 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个物体的[PROPERTY] | | 命令 | 请求一次物体追踪数据 存入结果 | | 布尔 | 检测到追踪物体? | | 数值 | 被追踪的物体 [PROPERTY] | | 命令 | 请求一次颜色识别数据 存入结果 | | 布尔 | 检测到色块? | | 数值 | 靠近中心的色块 [PROPERTY] | | 数值 | 检测到的色块总数 | | 数值 | 第 [INDEX] 个色块的 [PROPERTY] | | 数值 | 已学习的色块ID总数 | | 布尔 | ID [ID] 的色块存在? | | 数值 | ID [ID] 的色块总数 | | 数值 | ID [ID] 的色块 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个色块的[PROPERTY] | | 命令 | 请求一次物体分类数据 存入结果 | | 布尔 | 检测到分类物体? | | 数值 | 检测到的分类物体总数 | | 数值 | 第 [INDEX] 个分类物体的 [PROPERTY] | | 数值 | 分类物体的 [PROPERTY] | | 命令 | 请求一次自学习分类数据 存入结果 | | 布尔 | 检测到自学习分类物体? | | 数值 | 自学习分类物体的 [PROPERTY] | | 命令 | 请求一次实例分割数据 存入结果 | | 布尔 | 检测到实例? | | 数值 | 靠近中心的实例 [PROPERTY] | | 数值 | 检测到的实例总数 | | 数值 | 第 [INDEX] 个实例的 [PROPERTY] | | 数值 | 已学习的实例ID总数 | | 布尔 | ID [ID] 的实例存在? | | 数值 | ID [ID] 的实例总数 | | 数值 | ID [ID] 的实例 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个实例的[PROPERTY] | | 命令 | 请求一次手势识别数据 存入结果 | | 布尔 | 检测到手势? | | 数值 | 靠近中心的手势 [PROPERTY] | | 数值 | 检测到的手势总数 | | 数值 | 第 [INDEX] 个手势的 [PROPERTY] | | 数值 | 已学习的手势ID总数 | | 布尔 | ID [ID] 的手势存在? | | 数值 | ID [ID] 的手势总数 | | 数值 | ID [ID] 的手势 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个手势的[PROPERTY] | | 命令 | 请求一次人体姿态数据 存入结果 | | 布尔 | 检测到人体? | | 数值 | 靠近中心的人体 [PROPERTY] | | 数值 | 检测到的人体总数 | | 数值 | 第 [INDEX] 个人体的 [PROPERTY] | | 数值 | 已学习的人体ID总数 | | 布尔 | ID [ID] 的姿态存在? | | 数值 | ID [ID] 的姿态总数 | | 数值 | ID [ID] 的姿态 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个姿态的[PROPERTY] | | 命令 | 请求一次车牌识别数据 存入结果 | | 布尔 | 检测到车牌? | | 数值 | 靠近中心的车牌 [PROPERTY] | | 数值 | 检测到的车牌总数 | | 数值 | 第 [INDEX] 个车牌的 [PROPERTY] | | 数值 | 已学习的车牌ID总数 | | 布尔 | ID [ID] 的车牌存在? | | 数值 | ID[ID]的车牌总数 | | 数值 | ID [ID] 的车牌 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个车牌的[PROPERTY] | | 命令 | 请求一次文字识别数据 存入结果 | | 布尔 | 检测到文字? | | 数值 | 靠近中心的文字 [PROPERTY] | | 数值 | 检测到的文字区域总数 | | 数值 | 第 [INDEX] 个文字区域的 [PROPERTY] | | 数值 | 已学习的文字区域ID总数 | | 布尔 | ID [ID] 的文字区域存在? | | 数值 | ID [ID] 的文字区域总数 | | 数值 | ID [ID] 的文字区域 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个文字区域的[PROPERTY] | | 命令 | 请求一次巡线数据 存入结果 | | 布尔 | 检测到路线? | | 数值 | 当前路线的 [PROPERTY] | | 数值 | 前方路口分支数量 | | 数值 | 逆时针第 [INDEX] 条分支路线的 [PROPERTY] | | 命令 | 请求一次表情识别数据 存入结果 | | 布尔 | 检测到表情? | | 数值 | 靠近中心的表情 [PROPERTY] | | 数值 | 检测到的表情总数 | | 数值 | 第 [INDEX] 个表情的 [PROPERTY] | | 数值 | 已学习的表情ID总数 | | 布尔 | ID [ID] 的表情存在? | | 数值 | ID [ID] 的表情总数 | | 数值 | ID [ID] 的表情 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个表情的[PROPERTY] | | 命令 | 请求一次注视方向数据 存入结果 | | 布尔 | 检测到注视方向? | | 数值 | 靠近中心的注视方向 [PROPERTY] | | 数值 | 检测到的注视方向总数 | | 数值 | 第 [INDEX] 个注视方向的 [PROPERTY] | | 数值 | 已学习的注视方向ID总数 | | 布尔 | ID [ID] 的注视方向存在? | | 数值 | ID [ID] 的注视方向总数 | | 数值 | ID [ID] 的注视方向 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个注视方向的[PROPERTY] | | 命令 | 请求一次人脸朝向数据 存入结果 | | 布尔 | 检测到人脸朝向? | | 数值 | 靠近中心的人脸朝向 [PROPERTY] | | 数值 | 检测到的人脸朝向总数 | | 数值 | 第 [INDEX] 个人脸朝向的 [PROPERTY] | | 数值 | 已学习的人脸朝向ID总数 | | 布尔 | ID [ID] 的人脸朝向存在? | | 数值 | ID [ID] 的人脸朝向总数 | | 数值 | ID [ID] 的人脸朝向 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个人脸朝向的[PROPERTY] | | 命令 | 请求一次标签识别数据 存入结果 | | 布尔 | 检测到标签? | | 数值 | 靠近中心的标签 [PROPERTY] | | 数值 | 检测到的标签总数 | | 数值 | 第 [INDEX] 个标签的 [PROPERTY] | | 数值 | 已学习的标签ID总数 | | 布尔 | ID [ID] 的标签存在? | | 数值 | ID [ID] 的标签总数 | | 数值 | ID [ID] 的标签 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个标签的[PROPERTY] | | 命令 | 请求一次二维码识别数据 存入结果 | | 布尔 | 检测到二维码? | | 数值 | 靠近中心的二维码 [PROPERTY] | | 数值 | 检测到的二维码总数 | | 数值 | 第 [INDEX] 个二维码的 [PROPERTY] | | 数值 | 已学习的二维码ID总数 | | 布尔 | ID [ID] 的二维码存在? | | 数值 | ID [ID] 的二维码总数 | | 数值 | ID [ID] 的二维码 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个二维码的[PROPERTY] | | 命令 | 请求一次条形码识别数据 存入结果 | | 布尔 | 检测到条形码? | | 数值 | 靠近中心的条形码 [PROPERTY] | | 数值 | 检测到的条形码总数 | | 数值 | 第 [INDEX] 个条形码的 [PROPERTY] | | 数值 | 已学习的条形码ID总数 | | 布尔 | ID [ID] 的条形码存在? | | 数值 | ID [ID] 的条形码总数 | | 数值 | ID [ID] 的条形码 [PROPERTY] | | 数值 | ID [ID] 的第[INDEX]个条形码的[PROPERTY] | | 命令 | 请求一次跌倒检测数据 存入结果 | | 布尔 | 检测到跌倒? | | 数值 | 靠近中心的跌倒检测 [PROPERTY] | | 数值 | 检测到的跌倒检测总数 | | 数值 | 第 [INDEX] 个跌倒检测的 [PROPERTY] | | 命令 | HUSKYLENS 2切换到模型 [NUM] | | 命令 | 请求一次模型 [NUM]数据 存入结果 | | 布尔 | 模型 [NUM] 检测到目标? | | 数值 | 模型 [NUM] 靠近中心的目标 [PROPERTY] | | 数值 | 模型 [NUM] 检测到的目标总数 | | 数值 | 模型 [NUM] 第 [INDEX] 个目标的 [PROPERTY] | | 数值 | 模型 [NUM] 已学习的目标ID总数 | | 布尔 | 模型 [NUM] ID [ID] 的目标存在? | | 数值 | 模型 [NUM] ID [ID] 的目标总数 | | 数值 | 模型 [NUM] ID [ID] 的目标 [PROPERTY] | | 数值 | 模型 [NUM] ID [ID] 的第 [INDEX] 个目标的 [PROPERTY] | ### 自训练模型-图像分类 | 积木类型 | 积木内容 | |---|---| | 命令 | HUSKYLENS 2切换到模型 [NUM] | | 命令 | 请求一次模型 [NUM]数据 存入结果 | | 布尔 | 模型 [NUM] 检测到分类图像? | | 数值 | 模型 [NUM] 检测到的分类图像总数 | | 数值 | 模型 [NUM] 第 [INDEX] 个分类图像的 [PROPERTY] | | 数值 | 模型 [NUM] 分类图像的 [PROPERTY] | ### 自训练模型-实例分割 | 积木类型 | 积木内容 | |---|---| | 命令 | HUSKYLENS 2切换到模型 [NUM] | | 命令 | 请求一次模型 [NUM]数据 存入结果 | | 布尔 | 模型 [NUM] 检测到实例? | | 数值 | 模型 [NUM] 检测到的实例总数 | | 数值 | 模型 [NUM] 第 [INDEX] 个实例的 [PROPERTY] | | 数值 | 模型 [NUM] 靠近中心的实例 [PROPERTY] | | 数值 | 模型 [NUM] 已学习的实例ID总数 | | 布尔 | 模型 [NUM] ID [ID] 的实例存在? | | 数值 | 模型 [NUM] ID [ID] 的实例总数 | | 数值 | 模型 [NUM] ID [ID] 的实例 [PROPERTY] | | 数值 | 模型 [NUM] ID [ID] 的第 [INDEX] 个实例的 [PROPERTY] | ## 更新日志 ### V0.2.4 - 同步官方 master 的 pinpong 驱动,新增自训练图像分类、实例分割及部分内置算法的置信度菜单。 - 修复多模型参数、空结果和序号边界、二维码算法引用及代码生成问题。 - 完善八种语言的自训练模型积木和菜单,统一手势识别名称。 - 配置补充 meta.runtimeVersion 为 0.0.1,删除 feature 字段。 - RGB 积木将三个输入转为整数,补充组合表达式括号;结果 ID 与最大 ID 使用无符号 8 位解析。 ### V0.2.3 - 完成扩展基础功能 ## 开发指南 更详细的 Mind+ V2 扩展开发说明请参考:[Mind+官方扩展开发文档](https://mindplus.dfrobot.com.cn/mp2/Extensions/) ## V1 原始库来源 本库迁移自 Mind+ V1(1.x)用户库,保留 `compatibilityId` 字段以兼容旧版工程。 - compatibilityId:`dfrobot-huskylensv2-thirdex` - 原作者:dfrobot - 原始仓库:https://gitee.com/chenqi1233/ext-dfrobot_-husky-lens-v2