109| 6
|
[试用测评] 【花雕动手做】AI 视觉二哈识图 2 之识别指定条形码数据 |
一、测试实验硬件连接 将HukyLens 2 连接到Arduino主板对应的I2C引脚,使用电源线连接Arduino Uno与电脑。额外供电提示:Arduino Uno的I2C引脚输出的电压不足以支持HUSKYLENS 2正常工作,当HUSKYLENS 2接在Arduino Uno上时须有额外数据线连接HUSKYLENS 2的Type-C接口与电源,为HUSKYLENS 2进行额外供电。接线图可参考下图。 ![]() 打开 Mind+ 编程软件,选择主控板 Arduino,加载HUSKYLENS 2 库 ![]() 三、识别条形码的概念,指的是通过光学扫描设备或图像识别算法,对条形码图案进行解析,从而提取其中编码的信息。条形码是一种将数据编码为黑白条纹或方块图案的视觉符号系统,广泛用于商品管理、物流追踪、身份识别等领域。 1、条形码识别的核心概念 (1)条形码是什么? 条形码是一种机器可读的编码图案,通常由一组黑白条纹或方块组成。 每种条形码标准(如EAN-13、UPC、QR码)都有特定的编码规则和结构。 条形码可表示数字、字母、甚至二进制数据。 (2)识别条形码的过程 条形码识别通常包括以下步骤: 图像采集:使用摄像头或扫描器获取条形码图像 图像预处理:去除噪声、增强对比度、校正角度 定位条码区域:识别图像中可能包含条码的区域 解码分析:根据条码类型解析条纹宽度、间距或模块排列 输出信息:将解码结果转换为可读数据,如商品编号、用户ID等 (3)技术实现方式 硬件识别:使用激光扫描器或CCD图像传感器进行快速读取 软件识别:通过计算机视觉算法(如OpenCV、Zxing)识别图像中的条码 AI增强识别:利用深度学习模型提升识别准确率,尤其在模糊、遮挡或复杂背景下 2、应用场景 零售收银:快速识别商品价格与信息 物流追踪:扫描包裹条码实现自动分拣与定位 医疗管理:识别药品、病人腕带等信息 工业自动化:生产线上的产品识别与质量追踪 移动识别:手机摄像头识别二维码或条形码,实现支付、登录等功能 3、条形码动态图形 ![]() ![]() |
四、条形码在线生成网站链接:https://www.ecjson.com/barcode/![]() 条形码在线生成工具:条形码常被用于商品扫描。 1、下载条形码:鼠标放在条形码上,右键可另存为图片。缩放比例是指图片的大小倍数,无损缩放,范围为1-20,该功能不支持IE11及更早版本,以及非常老的移动浏览器。如果使用缩放功能导致条形码生成失败,缩放比例调整到1即可。 2、条形码生成器支持ean8,ean13,std25,int25,code11,code39,code93,code128,codabar,msi,datamatrix类型条形码生成 3、更多类型的条形码请使用:《工业级条码生成》,如需要使用微信小程序生成条形码,点击查看小程序码 4、CODE128:只能包含ASCII字符(数字、大小写字母及常用符号) 5、CODE128A:只能包含数字、大写字母及部分特殊字符(不能包含小写字母) 6、CODE128B:只能包含数字、大小写字母及部分特殊字符 7、CODE128C:只能由数字组成,并且必须是偶数个数字 8、EAN13:只能由13位数字组成 9、EAN8:只能由8位数字组成 10、UPC:只能由12位数字组成 11、ITF:只能由数字组成,并且必须是偶数个数字 12、ITF14:只能由14位数字组成 13、MSI:只能由数字组成 14、pharmacode:只能由数字组成,且介于 3 - 131070 之间 条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符 常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案 条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息 因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。 五、实际测试的几个范本 ![]() ![]() ![]() |
六、当画面中出现多张条形码时,可以使用以下示例程序统计画面中的条形码数量,获取指定ID条形码的相关数据(未学习的条形码ID统一为0,已学习的条形码ID按学习顺序排序)。 测试实验开源代码如下:
|
七、实际测试的代码解读 该程序使用 HUSKYLENS 2 AI 相机识别图像中的条形码,并统计总数,同时输出指定 ID 条形码的详细信息。 程序核心目标 使用 HUSKYLENS 2 AI 相机识别图像中的条形码,统计识别到的条码总数,并输出 ID 为 1 的条形码的内容、位置和尺寸。 逐步代码解读 1. 引入库与创建对象 cpp
引入 HUSKYLENS 2 的驱动库。 创建一个 huskylens 对象,用于与相机进行通信。 2. 初始化设置(setup) cpp
初始化串口和 I2C 通信。 连接 HUSKYLENS 设备,连接成功后输出提示信息。 3. 主循环(loop) cpp
请求 HUSKYLENS 执行条形码识别算法。 cpp
如果识别结果可用,进入数据处理阶段。 4. 输出识别结果总数 cpp
获取当前识别到的条形码数量,并通过串口输出。 5. 检查并输出指定 ID 条形码信息 cpp
检查是否存在 ID 为 1 的条形码。 如果存在,输出以下信息: 内容(编码信息) cpp
中心坐标(x, y) cpp
宽度与高度 cpp
6. 延迟控制 cpp
每次识别后延迟 10 秒,避免过于频繁地读取数据。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed