查看: 760|回复: 0

[视觉识别入门教程] HuskyLens AI视觉传感器x掌控板:入门教程04—自助超市收银机

[复制链接]
本教程是关于二哈识图(HuskyLens)AI视觉传感器掌控板的官方系列教程,HuskyLens AI视觉传感器,二哈识图(HuskyLens)是一款用一个按键即可完成AI训练的学习门槛较低的人工智能视觉传感器,内置6种功能:人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签(二维码)识别。
另外DFRobot发布了micro:bit、Arduino开发板和HuskyLens AI视觉传感器入门教程

项目4:自助超市收银机
如果你经常去超市购物,那么你可能在情不自禁地“剁手”后会遇到排队结算的窘境,当然,你买的东西越多,你就越囧。

202007214570..png

随着科技的发展,现在许多超市都有了自助收银机,它给我们的购物带来了方便。

202007212652..png

现在我们就来做一个超市的自助收银机,等一等,我们需要怎样准确识别商品并结算呢?


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

材料清单:
202007215793..png

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

202007215847..png

扫码装置------>HUSKYLENS的标签识别功能
条形码------>AprilTag


一、什么是标签识别
标签识别技术(简称标识技术是指对物品进行有效的、标准化的编码与标识的技术手段,它是信息化的基础工作。随着人们对于健康和安全的意识越来越强,食品行业对产品的质量和安全性(从原料,运输,到生产、贮藏以及涉及的追溯和管理)的要求越来越高、越来越多。标识在满足企业对产品追踪追溯需求等方面也起到了很重要的作用。
标识技术主要有条形码技术、IC卡技术、射频识别技术、光符号识别技术、语音识别技术、生物计量识别技术、遥感遥测、机器人智能感知等技术。
202007218896..png
  
二、什么是AprilTag
AprilTags是一个出自密歇根大学项目团队的视觉基准系统,主要用于AR,机器人和相机校准等领域。标签的作用类似于条形码,存储少量信息(标签ID),同时还可以对标签进行简单而准确的6D(x,y,z,,俯仰,偏航)姿势估算。

202007216619..png


三、HUSKYLENS识别AprilTag原理

AprilTag识别过程主要包含如下步骤:
1、边缘检测,寻找图像中的边缘轮廓。
202007217727..png


2、四边形检测,找出轮廓中的四边形。

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

202007212399..png


通过这些步骤,HUSKYLENS的标签识别功能就能识别不同的AprilTags,因此,我们只需要将不同的AprilTags贴在不同的商品上就可以实现识别对应商品了。
HUSKYLENS传感器-标签识别功能演示
1、侦测标签
HuskyLens检测到二维码标签时,屏幕上会用白色框自动框选出检测到的所有二维码标签。
202007219067..png
2、学习标签
HuskyLens屏幕中央的“+”字对准需要学习的标签,短按或长按“学习按键”完成第一个标签的学习。松开”学习按键“后,屏幕上会提示:”再按一次按键继续!按其他按键结束“。如要继续学习下一个标签,则在倒计时结束前按下“学习按键”,可以继续学习下一个标签。如果不再需要学习其他标签了,则在倒计时结束前按下”功能按键”即可,或者不操作任何按键,等待倒计时结束。
202007211064..png

本项目中,需要继续学习下一个标签,因此在倒计时结束前按下“学习按键”,然后将HuskyLens屏幕中央的“+”字对准需要学习的下一个标签,短按或长按“学习按键”完成第二个标签的学习。以此类推。
标签ID与录入标签先后顺序是一致的,也就是:学习过的标签会按顺序依次标注为“标签:ID1”,“标签:ID2”,“标签:ID3”,以此类推,并且不同的标签对应的边框颜色也不同。
3、识别标签
HuskyLens再次遇到学习过的标签时,在屏幕上会有彩色的边框框选出这些标签,并显示其ID。边框的大小会随着二维码标签的大小进行变化,边框自动追踪这些二维码标签。
202007215259..png
项目实践:
我们将分三个递进任务来完成项目,首先我们使用HuskyLens的标签识别功能学习并识别贴有AprilTags的三件商品;然后在前一步基础上添加开始扫码和结束扫码的事件,方便不同顾客的商品统计;最后在第二步基础上添加商品总价结算功能,实现现实生活中的超市自助收银功能。
任务一:识别商品
HuskyLens学习并识别贴在三个不同商品上的标签,编写程序让掌控板的OLED显示对应的商品名。
任务二:开始与结束扫码
顾客按下掌控板的A键,OLED依次显示HuskyLens识别到的商品名,按下B键,OLED不再显示该顾客扫描到的任何商品,下一个顾客按下A键重新开始扫描。
任务三:商品结算
在任务二基础上,当识别到任意学习过的商品时,都会在总价中将其售价加入,按下B键结束扫码时,OLED会显示顾客从开始扫描后到结束扫描前的所有商品的总价。


任务一:识别商品

1、 硬件连接
202007217543..png

2、 程序设计:

STEP1 学习与识别
假设超市有且仅有水杯、酥饼、美工刀三种商品,它们分别对应三个不同的标签。
202007215249..png
HuskyLens能识别这3个不同标签,在“多次学习”模式下按水杯、酥饼、美工刀的顺序完成学习,得到ID1、ID2、ID3,如果下次识别到相同的标签,HuskyLens就会返回对应的ID,这样我们就可以使用选择结构让OLED屏显示ID对应的商品名。
STEP2 Mind+软件设置
打开Mind+软件(162或以上版本),切换到“上传模式”,点击“扩展”,在“主控板”下点击加载“掌控板”,在“传感器”下点击加载“HUSKYLENS AI摄像头”。
202007217104..png 202007212482..png
STEP3 指令学习
来认识一下主要用到的几条指令。

202007217254..png
初始化,仅需执行一次,放在主程序开始和循环执行之间,可选择I2C或串口,I2C地址不用变动。注意HUSKYLENS端需要在设置中调整“输出协议”与程序中一致,否则读不出数据。
202007211079..png
切换算法,可以随时切换到其他算法,同时只能存在一个算法,注意切换算法需要一些时间。
202007217898..png
主控板向HUSKYLENS请求一次数据存入“结果”(存在主控板的内存变量中,一次请求刷新一次存在内存中的数据),之后可以从“结果”中获取数据,此模块调用之后“结果”中才会获取到最新的数据。
202007213692..png
从请求得到的“结果”中获取当前界面中是否有方框或箭头,包含已学习(id大于0)和未学习的,有一个及以上则返回1。
202007217667..png
从请求得到的“结果”中获取是否IDx已经进行了学习
202007214581..png
从请求得到的“结果”中获取是否IDx在画面中,方框指屏幕上目标为方框的的算法,箭头对应屏幕上目标为箭头的算法,当前仅为巡线算法时选择箭头,其他算法都选择方框。
STEP4 流程图分析
202007212217..png
3、 程序示例
202007217967..png
4、 运行效果
当识别到水杯、酥饼、美工刀时,会显示“cup”“pastry”“knife”,当没有标签或识别到其他标签,OLED屏会一直处于清屏状态。

202007215966..png
任务二:开始与结束

1、 硬件连接
同任务一。

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

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

3、程序示例:
202007213305..png

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


任务商品结算

1、硬件连接
同任务一。

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

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

3、程序示例:
图片3.jpg

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

202007216462..png

项目小结:
项目回顾:
本项目主要使用二维码标签表示商品的信息,通过标签识别输出特定的ID,从而实现让OLED显示对应商品信息的功能,并添加了自动结算总账功能,基本上完成了超市的自助收银系统。
知识点回顾:
1、 认识标签识别在生活中的重要性和使用方法
2、 学习识别标签并做出相应的判断

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


二哈识图AI视觉传感器其他相关教程:


micro:bit:


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

本版积分规则

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

硬件清单

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

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

mail