查看: 219|回复: 1

[视觉识别入门教程] 【HUSKYLENS二哈识图】micro:bit视觉识别入门 04 自助超市收银机

[复制链接]
自助超市收银机
图片1.png
222222.png

功能介绍
本项目利用HuskyLens 的标签识别功能,通过识别商品上特定的标签,实现计算总价的自助收银功能。

材料清单
3.png
知识园地
我们仔细观察超市的收银过程,会发现无论是人工收银还是自助收银,都是通过扫码装置对商品的条形码进行扫码计费,每种商品的条形码都是不一样的,所以我们只需找到扫码装置和条形码的替代品就可以实现我们的项目了。

图片2.png 图片3.png
                                                    条形码  >AprilTag        扫码装置 >HUSKYLENS 的标签识别功能  

一、什么是标签识别?
标签识别技术(简称标识技术)是指对物品进行有效的、标准化的编码与标识的技术手段,它是信息化的基础工作。随着人们对于健康和安全的意识越来越强,食品行业对产品的质量和安全性( 从原料,运输,到生产、贮藏以及涉及的追溯和管理 ) 的要求越来越高、越来越多。标识在满足企业对产品追踪追溯需求等方面也起到了很重要的作用。

标识技术主要有条形码技术、IC 卡技术、射频识别技术、光符号识别技术、语音识别技术、生物计量识别技术、遥感遥测、机器人智能感知等技术。

图片4.png
二、什么是 AprilTag ?
AprilTags 是一个出自密歇根大学项目团队的视觉基准系统,主要用于 AR,机器人和相机校准等领域。标签的作用类似于条形码,存储少量信息(标签 ID),同时还可以对标签进行简单而准确的 6D(x,y,z,滚动,俯仰,偏航)姿势估算。

图片5.png

三、HUSKYLENS 识别 AprilTag 原理
AprilTag 识别过程主要包含如下步骤:

1. 边缘检测
寻找图像中的边缘轮廓。

图片6.png

2. 四边形检测
找出轮廓中的四边形


图片7.png



3. 解码
对找出的四边形进行匹配、检查。


图片8.png

通过这些步骤,HUSKYLENS 的标签识别功能就能识别不同的 AprilTags,因此,我们只需要将不同的 AprilTags 贴在不同的商品上就可以实现识别对应商品了。

四、HUSKYLENS 传感器 - 标签识别功能演示
1、侦测标签
当Huskylens检测到二维码标签时,屏幕上会用白色框自动框选出检测到的二维码标签。

图片9.png


2、学习标签
将Huskylens屏幕中央的“+”字对准需要学习的标签,短按或长按“学习按键”完成第一个标签的学习。松开”学习按键“后,屏幕上会提示:”再按一次按键继续!按其他按键结束“。如要继续学习下一个标签,则在倒计时结束前按下“学习按键”,可以继续学习下一个标签。如果不再需要学习其他标签了,则在倒计时结束前按下” 功能按键”即可,或者不操作任何按键,等待倒计时结束。

图片10.png

本项目中,需要继续学习下一个标签,因此在倒计时结束前按下“学习按键”,然后将HuskyLens 屏幕中央的“+”字对准需要学习的下一个标签,短按或长按“学习按键”完成第二个标签的学习。以此类推。

标签ID 与录入标签先后顺序是一致的,也就是:学习过的标签会按顺序依次标注为“标签:ID1”,“标签:ID2”,“标签:ID3”,以此类推,并且不同的标签对应的边框颜色也不同。

3、识别标签
Huskylens再次遇到学习过的标签时,在屏幕上会有彩色的边框框选出这些标签,并显示其ID。边框的大小会随着二维码标签的大小进行变化,边框自动追踪这些二维码标签。

图片11.png

项目实践
我们将分三个递进任务来完成项目,首先我们使用 HuskyLens 的标签识别功能学习并识别贴有AprilTags 的三件商品;然后在前一步基础上添加开始扫码和结束扫码的事件,方便不同顾客的商品统计;最后在第二步基础上添加商品总价结算功能, 实现现实生活中的超市自助收银功能。

任务一:识别商品
HuskyLens 学习并识别贴在三个不同商品上的标签,编写程序让 Micro:bit 的点阵滚动显示对应的商品名。

任务二:开始与结束扫码
顾客按下Micro:bit 的 A 键,点阵依次滚动显示 HuskyLens 识别到的商品名,按下B键,点阵不再显示该顾客扫描到的任何商品,下一个顾客按下A 键重新开始扫描。

任务三:商品结算
在任务二基础上,当识别到任意学习过的商品时,都会在总价中将其售价加入, 按下B 键结束扫码时,点阵会显示顾客从开始扫描后到结束扫描前的所有商品的总价。

任务一:识别商品
1、硬件链接
图片12.png


2、程序设计
STEP1 学习与识别
假设超市有且仅有水杯、酥饼、美工刀三种商品,它们分别对应三个不同的标签。

图片13.png

HuskyLens 能识别这 3 个不同标签,在“多次学习”模式下按水杯、酥饼、美工刀的顺序完成学习,得到 ID1、ID2、ID3,如果下次识别到相同的标签,HuskyLens 就会返回对应的 ID,这样我们就可以使用选择结构让点阵屏显示 ID 对应的商品名。

STEP2 Mind+ 软件设置
打开Mind+ 软件(1.62 或以上版本),切换到“上传模式”,点击“扩展”,在“主控板”下点击加载“micro:bit”,在“传感器”下点击加载“HUSKYLENS AI 摄像头”。

图片14.png 图片15.png

STEP3 指令学习
来认识一下主要用到的几条指令。

16.png
17.png

STEP4 流程图分析
图片16.png

3、程序示例
图片17.png


4、运行效果
当识别到水杯、酥饼、美工刀时,点阵会滚动显示cup”“pastry”“knife”,当没有标签或识别到其他标签,点阵屏会一直处于熄灭状态。

图片18.png

任务二:开始与结束扫码
1、硬件链接
同任务一。

2、程序设计
我们需要添加事件让顾客知道何时开始扫描商品,何时结束。假设按下 Micro:bit上的A 键开始扫描商品,每一个商品信息滚动显示完就可以进行下一个商品的扫描, 那么扫描商品的过程就是一个循环,而跳出这个循环的条件就是按下 B 键,下一个顾客需要扫描商品时,只需再按一下 A 键即可。

根据以上分析得出程序逻辑图如下:


图片19.png

3、程序示例
图片20.png

4、运行效果
按下A 键前,点阵不会显示扫码识别到的商品名;
按下A 键后、按下 B 键前,点阵依次显示扫码识别到的商品名;
按下B 键后,点阵不会显示扫码识别到的商品名。

任务三:商品结算
1、硬件链接
同任务一。

2、程序设计
商品的总价会随着扫描的商品的数量增加而变大,所以只需在任务二的基础上添加一个变量即可,每次按下A 键后都需要将前一个顾客的总价清零,识别到一个商品, 便将该商品对应的价格加入总价中,按下 B 键后显示所有商品的总价。

根据以上分析得出程序逻辑图如下:

图片21.png

3、程序示例
图片22.png


4、运行效果
在任务二的运行效果基础上,按下 B 键后,点阵会显示总价。

项目小结
项目回顾:
本项目主要使用二维码标签表示商品的信息,通过标签识别输出特定的 ID,从而实现让点阵显示对应商品信息的功能,并添加了自动结算总账功能,基本上完成了超市的自助收银系统。

知识点回顾:
1、认识标签识别在生活中的重要性和使用方法
2、学习识别标签并做出相应的判断

项目拓展
在完成了自助收银之后,我们可否用标签表示一个房屋位置信息,从而让扫地机器人在行进过程中及时判断自己的方位并做出相应调整?

DFH15tZJVo8  学徒

发表于 2020-6-6 21:26:11

二维码标签怎么打印出来?我打印的HuskyLens识别不了
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail