点击上方“蘑菇云创造”可以关注我们哦
功能介绍
本项目利用HuskyLens 的标签识别功能,通过识别商品上特定的标签,实现计算总价的自助收银功能。
材料清单
知识园地
我们仔细观察超市的收银过程,会发现无论是人工收银还是自助收银,都是通过扫码装置对商品的条形码进行扫码计费,每种商品的条形码都是不一样的,所以我们只需找到扫码装置和条形码的替代品就可以实现我们的项目了。
条形码 >AprilTag
扫码装置 >HUSKYLENS 的标签识别功能
一、什么是标签识别?
标签识别技术(简称标识技术)是指对物品进行有效的、标准化的编码与标识的技术手段,它是信息化的基础工作。随着人们对于健康和安全的意识越来越强,食品行业对产品的质量和安全性( 从原料,运输,到生产、贮藏以及涉及的追溯和管理 ) 的要求越来越高、越来越多。标识在满足企业对产品追踪追溯需求等方面也起到了很重要的作用。
标识技术主要有条形码技术、IC 卡技术、射频识别技术、光符号识别技术、语音识别技术、生物计量识别技术、遥感遥测、机器人智能感知等技术。
二、什么是 AprilTag ?
AprilTags 是一个出自密歇根大学项目团队的视觉基准系统,主要用于 AR,机器人和相机校准等领域。标签的作用类似于条形码,存储少量信息(标签 ID),同时还可以对标签进行简单而准确的 6D(x,y,z,滚动,俯仰,偏航)姿势估算。
三、HUSKYLENS 识别 AprilTag 原理
AprilTag 识别过程主要包含如下步骤:
1. 边缘检测
寻找图像中的边缘轮廓。
2. 四边形检测
找出轮廓中的四边形。
3. 解码
对找出的四边形进行匹配、检查。
通过这些步骤,HUSKYLENS 的标签识别功能就能识别不同的 AprilTags,因此,我们只需要将不同的 AprilTags 贴在不同的商品上就可以实现识别对应商品了。
四、HUSKYLENS 传感器 - 标签识别功能演示
1、侦测标签
当Huskylens检测到二维码标签时,屏幕上会用白色框自动框选出检测到的二维码标签。
2、学习标签
将Huskylens屏幕中央的“+”字对准需要学习的标签,短按或长按“学习按键”完成第一个标签的学习。松开”学习按键“后,屏幕上会提示:”再按一次按键继续!按其他按键结束“。如要继续学习下一个标签,则在倒计时结束前按下“学习按键”,可以继续学习下一个标签。如果不再需要学习其他标签了,则在倒计时结束前按下” 功能按键”即可,或者不操作任何按键,等待倒计时结束。
本项目中,需要继续学习下一个标签,因此在倒计时结束前按下“学习按键”,然后将HuskyLens屏幕中央的“+”字对准需要学习的下一个标签,短按或长按“学习按键”完成第二个标签的学习。以此类推。
标签ID与录入标签先后顺序是一致的,也就是:学习过的标签会按顺序依次标注为“标签:ID1”,“标签:ID2”,“标签:ID3”,以此类推,并且不同的标签对应的边框颜色也不同。
3、识别标签
Huskylens再次遇到学习过的标签时,在屏幕上会有彩色的边框框选出这些标签,
并显示其ID。边框的大小会随着二维码标签的大小进行变化,边框自动追踪这些二维码标签。
项目实践
我们将分三个递进任务来完成项目,首先我们使用HuskyLens的标签识别功能学习并识别贴有AprilTags的三件商品;然后在前一步基础上添加开始扫码和结束扫码的时间,方便不同顾客的商品统计;最后在第二步基础上添加商品总价结算功能,实现现实生活中的超市自助收银功能。
任务一:识别商品
HuskyLens学习并识别贴在三个不同商品上的标签,编写程序让掌控板的OLED显示对应的商品名。
任务二:开始与结束扫码
顾客按下掌控板的A键,OLED依次显示HuskyLens识别到的商品名,按下B键,OLED不再显示该顾客扫描到的任何商品,下一个顾客按下A键重新开始扫描。
任务三:商品结算
在任务二基础上,当识别到任意学习过的商品时,都会在总价中将其售价加入,按下B键结束扫码时,OLED会显示顾客从开始扫描后到结束扫描前的所有商品的总价。
任务一:识别商品
1、硬件链接
2、程序设计
STEP1 学习与识别
假设超市有且仅有水杯、酥饼、美工刀三种商品,它们分别对应三个不同的标签。
HuskyLens能识别这3个不同标签,在“多次学习”模式下按水杯、酥饼、美工刀的顺序完成学习,得到ID1、ID2、ID3,如果下次识别到相同的标签,HuskyLens就会返回对应的ID,这样我们就可以使用选择结构让OLED屏显示ID对应的商品名。
STEP2 Mind+ 软件设置
打开Mind+软件(1.62或以上版本),切换到“上传模式”,点击“扩展”,在“主控板”下点击加载“掌控板”,在“传感器”下点击加载“HUSKYLENS AI摄像头”。
STEP3 指令学习
来认识一下主要用到的几条指令。



STEP4 流程图分析
3、程序示例
4、运行效果
当识别到水杯、酥饼、美工刀时,会显示“cup”“pastry”“knife”,当没有标签或识别到其他标签,OLED屏会一直处于清屏状态。
任务二:开始与结束扫码
1、硬件链接
同任务一。
2、程序设计
我们需要添加事件让顾客知道何时开始扫描商品,何时结束。假设按下掌控板上的A键开始扫描商品,每一个商品信息显示完就可以进行下一个商品的扫描,那么扫描商品的过程就是一个循环,而跳出这个循环的条件就是按下B键,下一个顾客需要扫描商品时,只需再按一下A键即可。
根据以上分析得出程序逻辑图如下:
3、程序示例
4、运行效果
按下A键前,OLED不会显示扫码识别到的商品名;
按下A键后、按下B键前,OLED依次显示扫码识别到的商品名;
按下B键后,OLED不会显示扫码识别到的商品名。
任务三:商品结算
1、硬件链接
同任务一。
2、程序设计
商品的总价会随着扫描的商品的数量增加而变大,所以只需在任务二的基础上添加一个变量即可,每次按下A 键后都需要将前一个顾客的总价清零,识别到一个商品, 便将该商品对应的价格加入总价中,按下 B 键后显示所有商品的总价。
根据以上分析得出程序逻辑图如下:
3、程序示例
4、运行效果
在任务二的运行效果基础上,按下B键后,OLED会显示总价。

项目小结
项目回顾:
本项目主要使用二维码标签表示商品的信息,通过标签识别输出特定的ID,从而实现让OLED显示对应商品信息的功能,并添加了自动结算总账功能,基本上完成了超市的自助收银系统。
知识点回顾:
1、认识标签识别在生活中的重要性和使用方法
2、学习识别标签并做出相应的判断
项目拓展
在完成了自助收银之后,我们可否用标签表示一个房屋位置信息,从而让扫地机器人在行进过程中及时判断自己的方位并做出相应调整?
———————正文完———————

点击“阅读原文”,了解更多!

