9浏览
查看: 9|回复: 4

[试用测评] 【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据

[复制链接]
一、相关知识点
1、HUSKYLENS 2(二哈识图2)是DFRobot推出的新一代AI视觉传感器,搭载6TOPS算力的Kendryte K230双核RISC-V芯片,集成1GB LPDDR4内存与8GB存储,支持人脸识别、物体检测、姿态估计等20余种预置AI模型,同时允许用户通过自训练模型部署实现定制化识别
。其硬件配置包括200万像素摄像头、2.4英寸触摸屏、可更换镜头模组(支持显微/夜视)及RGB补光灯,搭配UART/I2C接口可无缝连接Arduino、树莓派等开发板,实现实时图传与多模态交互。内置MCP服务打通本地视觉与大模型能力,例如识别午餐图片后可生成膳食建议,而模型广场提供车牌识别、跌倒检测等垂直领域即用型方案。作为教育利器,它已融入《中小学人工智能通识教育指南》课程体系,通过Mind+图形化编程工具降低AI开发门槛,助力创客教育与STEAM实践。

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图2

2、行空板 K10 是一款专为中小学信息科技教学和创客项目设计的国产 AIoT 开发板,以 ESP32-S3 为核心,高度集成 2.8 英寸全彩 LCD 屏、摄像头、双麦扬声器、WiFi 蓝牙模块及温湿度、光线、加速度等多种传感器,无需额外配件即可实现离线语音识别(支持 200 词库)、人脸识别、二维码读取、物联网联动等功能,支持 Mind + 图形化编程与 MicroPython 代码编程,兼顾入门便捷性与功能扩展性,丰富的扩展接口还能连接外部传感器、执行器,轻松落地 AI、物联网类创意项目,是编程学习与科创实践的高性价比选择。

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图1

3、Mind + 是 DFRobot 旗下蘑菇云科创教育团队研发的、拥有自主知识产权的国产青少年编程软件,它兼容 Scratch3.0,既支持零基础学习者拖拽图形化积木编程,也能切换至 Python/C/C++ 代码编程,且积木可自动转换为对应代码助力进阶学习,同时适配行空板M10\ K10、Arduino、micro:bit 等众多主流开源硬件与上百种电子模块,集成图像识别、语音识别等 AI 功能及物联网开发能力,还搭配实时交互、程序烧录脱机运行等模式与丰富教学案例,适配校内外编程教学、创客项目及竞赛等场景,是兼顾低入门门槛与高拓展性的科创教育工具。

二、硬件连接
准备材料
行空板K10 x 1
HUSKYLENS 2 x 1
USB数据线 x 2
4pin连接线(或杜邦线)x 1

准备一根USB数据线和一根4Pin白色硅胶线。使用USB数据线连接电脑与行空板K10,使用4Pin黑胶先连接行空板K10与HuskyLens 2,再使用额外的USB数据线n连接示意图如下连接HUSKYLENS 2的Type-C接口与电源,为HUSKYLENS 2进行额外供电。接线图可参考下图。

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图4

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图3

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图5

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据

三、车牌识别(License Plate Recognition,简称 LPR)是一种基于计算机视觉和图像处理的智能识别技术,主要用于自动检测、识别并解析车辆车牌上的文字和数字信息。车牌识别是智慧城市和智能交通的关键技术之一,也是智能交通系统(ITS)中的核心功能之一,广泛应用于停车管理、道路监控、电子收费、安防等领域。

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图3

(1)车牌识别的基本定义
车牌识别是指:通过摄像头采集车辆图像,并利用图像处理与字符识别算法,自动提取车牌区域,识别车牌号码、颜色、类型等信息。
它让系统具备“看懂车牌”的能力,从而实现自动化管理与数据记录。

(2)车牌识别的关键流程
图像采集:通过固定或移动摄像头拍摄车辆图像。
车牌定位:在图像中识别车牌区域,排除背景干扰。
图像预处理:去除噪声、增强对比度、校正倾斜等。
字符分割:将车牌上的字符逐个提取出来。
字符识别:使用 OCR(光学字符识别)技术识别文字和数字。
结果输出:返回车牌号码、颜色、归属地等信息。

(3)应用场景举例
智能停车场自动识别进出车辆
交通执法系统识别违章车辆
高速公路电子收费(ETC)
企业或小区门禁车辆管理
边境或海关车辆身份核验

(4)常见参数设置(在识别系统中)

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图1

(5)相关场景

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图2


【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图4

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图5


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据

四、【花雕动手做】HUSKYLENS 2 AI视觉传感器之识别车牌输出相关数据
在车牌识别功能下,当车牌出现在HUSKYLENS 2屏幕中时,可以被识别和框出,并获车牌的相关数据。可以读取车牌的数据有:指定车牌的ID、名称、车牌内容(车牌号)、宽度、高度以及车牌中心点的X坐标位置和Y坐标位置,画面中的车牌总数。

1、实际测试的几个范本

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图1

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图2

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图3

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图4

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图5

2、测试实验代码

  1. /*【花雕动手做】HUSKYLENS 2 AI视觉传感器之识别车牌输出相关数据
  2. * MindPlus
  3. * esp32s3bit
  4. */
  5. #include "unihiker_k10.h"          // 引入UniHiker开发板库,提供显示屏控制和用户交互接口
  6. #include "DFRobot_HuskylensV2.h"   // 引入HUSKYLENS AI视觉传感器库,封装车牌识别算法
  7. // 创建全局对象实例
  8. HuskylensV2  huskylens;           // HUSKYLENS视觉传感器对象,负责图像采集和车牌识别
  9. UNIHIKER_K10 k10;                 // UniHiker开发板对象,控制TFT显示屏和外围设备
  10. uint8_t      screen_dir=2;        // 屏幕显示方向参数(2通常表示横向显示模式)
  11. // 系统初始化函数 - 在设备启动时执行一次
  12. void setup() {
  13.         k10.begin();                    // 初始化UniHiker开发板基础硬件(GPIO、SPI、I2C、定时器)
  14.         Wire.begin();                   // 初始化I2C通信总线,默认引脚SDA=8, SCL=9,400kHz速率
  15.        
  16.         // HUSKYLENS传感器初始化重试机制
  17.         // 确保AI视觉传感器正常连接并完成启动自检
  18.         while (!huskylens.begin(Wire)) {
  19.                 delay(100);                 // 等待100ms后重试,避免I2C总线冲突和电源冲击
  20.         }
  21.        
  22.         k10.initScreen(screen_dir);     // 按照指定方向初始化LCD显示屏控制器
  23.         k10.creatCanvas();              // 创建图形画布缓冲区,实现双缓冲显示机制
  24.        
  25.         // 设置HUSKYLENS算法模式为车牌识别
  26.         // 车牌识别是计算机视觉中的特定目标检测与OCR结合的应用
  27.         huskylens.switchAlgorithm(ALGORITHM_LICENSE_RECOGNITION);
  28.        
  29.         // 在屏幕第2行显示系统标题
  30.         k10.canvas->canvasText("识别车牌数据", 2, 0xFF0000);  // 红色标题,第2行
  31. }
  32. // 主循环函数 - 持续执行车牌识别和数据显示
  33. void loop() {
  34.         // 触发HUSKYLENS执行车牌识别算法并获取结果
  35.         // 内部处理流程:图像采集 → 车牌区域检测 → 字符分割 → 字符识别 → 结果输出
  36.         huskylens.getResult(ALGORITHM_LICENSE_RECOGNITION);
  37.        
  38.         // 检查是否有新的车牌识别结果可用
  39.         if ((huskylens.available(ALGORITHM_LICENSE_RECOGNITION))) {
  40.                 // === 显示画面中心区域的车牌名称 ===
  41.                 // 名称可能是车牌的类型标识或自定义标签
  42.                 k10.canvas->canvasText((String("靠中心的车牌名称: ") +
  43.                         String((RET_ITEM_STR(huskylens.getCachedCenterResult(ALGORITHM_LICENSE_RECOGNITION), Result, name)))),
  44.                         4, 0x0000FF);  // 第4行,蓝色文字
  45.                
  46.                 // === 显示检测到的车牌总数 ===
  47.                 // 反映当前画面中识别到的独立车牌数量
  48.                 k10.canvas->canvasText((String("车牌总数: ") +
  49.                         String((huskylens.getCachedResultNum(ALGORITHM_LICENSE_RECOGNITION)))),
  50.                         5, 0x0000FF);  // 第5行,蓝色文字,环境统计信息
  51.                
  52.                 // === 显示中心车牌的内容标签 ===
  53.                 k10.canvas->canvasText("靠中心的车牌内容: ", 6, 0x0000FF);  // 第6行,蓝色标签
  54.                
  55.                 // === 显示中心车牌识别的具体号码内容 ===
  56.                 // 这是车牌识别的核心结果,如"京A·12345"
  57.                 k10.canvas->canvasText((RET_ITEM_STR(huskylens.getCachedCenterResult(ALGORITHM_LICENSE_RECOGNITION), Result, content)),
  58.                         7, 0x0000FF);  // 第7行,蓝色显示识别出的车牌号码
  59.                
  60.                 // === 显示车牌位置信息标签 ===
  61.                 k10.canvas->canvasText("靠中心车牌的", 8, 0x0000FF);  // 第8行,蓝色标签
  62.                
  63.                 // === 显示车牌的中心坐标信息 ===
  64.                 // xCenter, yCenter表示车牌在图像中的中心点坐标
  65.                 // 用于后续的跟踪、测距或其他空间分析
  66.                 k10.canvas->canvasText((String("中心坐标: ") +
  67.                         String((String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_LICENSE_RECOGNITION), Result, xCenter))) +
  68.                         String((String(",") +
  69.                         String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_LICENSE_RECOGNITION), Result, yCenter)))))))),
  70.                         9, 0x0000FF);  // 第9行,蓝色显示坐标信息
  71.         }
  72.        
  73.         // 更新画布显示:将内存缓冲区中的图形数据一次性刷新到物理屏幕
  74.         // 采用双缓冲技术确保显示平滑,避免闪烁
  75.         k10.canvas->updateCanvas();
  76.        
  77.         // 控制循环频率:50ms延迟对应20Hz刷新率
  78.         // 平衡识别实时性、处理负载和系统功耗
  79.         delay(50);
  80. }
复制代码



回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据

3、代码解读:

系统架构与硬件平台
1. 整体硬件架构

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图1

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图3
【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图2

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图4

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图5

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图6

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图7
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 5 分钟前

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据

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

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图1

5、实验场景图

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图2

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图3

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图4

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图6

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图5

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图7

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图8

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图9

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图10

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图12

【花雕动手做】AI 视觉传感器二哈识图2之识别车牌数据图11

回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail