查看: 159|回复: 4

[视觉识别入门教程] HuskyLens AI视觉传感器x掌控板:入门教程02—色彩钢琴

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


项目2色彩钢琴


202007079826..png

你是否有过一个音乐梦呢,是否想象过能想一名钢琴家一样优雅的弹琴。乐器之王”钢琴以行云流水般的音符阐释着完美的音效和浪漫情怀,为人们带来纯净的享受。但是由于种种原因也许你没有学过钢琴或是没能拥有一台钢琴。
现在有了HUSKYLENS传感器,我们也可以亲手为自己制作一台色彩钢琴,实现你的音乐梦,让我们利用彩色的琴键发出美妙的音乐吧。

功能介绍:
本项目利用HuskyLens的颜色识别功能,通过识别不同颜色的琴键,播放不同的音阶,让你的“演奏”既好看又好听,拥有绝对美妙的舞台效果。

材料清单:


202007074246..png



所需硬件:


所需软件:



知识园地:
当今社会,自动化生产已经成为了社会的发展趋势,机器视觉作为“机器人”的眼睛,则显得尤为重要。颜色识别作为其中一个重要的技术方向,已经经历了多代技术的升级。而我们这个项目就是借助HUSKYLENS传感器的颜色识别功能来对色彩进行区分和识别,通过不同的颜色奏响我们的小钢琴。

一、什么是颜色识别
202007078443..png
什么是颜色识别,首先我们要了解知道什么是颜色,颜色是通过眼、脑和我们的生活经验所产生的一种对光的视觉效应,我们肉眼所见到的光线,是由波长范围很窄的电磁波产生的,不同波长的电磁波表现为不同的颜色。颜色识别就是基于不同亮度下的色彩属性进行识别和区分的。

颜色识别工作原理:
颜色识别是基于Lab色彩空间(英语:Lab color space)进行识别的,带有维度 L*代表亮度,a*代表从绿色到红色的分量,b*代表从蓝色到黄色的分量,基于非线性压缩的CIE XYZ色彩空间坐标。我们可以将Lab这三个参数理解为三维坐标系的XYZ。对已经识别学习的颜色的Lab参数进行比对,当两个颜色在一定的误差范围内相吻合时,就判定为是同一个颜色。

202007075411..png
Lab坐标系
在我们平时使用颜色识别中,同一个模块的颜色属性中色相和饱和度是固定不变的,但是受到环境亮度的影响明亮度会产生一些变化,所以在使用颜色识别功能时一定要保证学习识别时的环境亮度和实际工作时的环境亮度尽量保持一致。

颜色识别主要应用在以下领域:
1.在工业领域使用,颜色识别目前在工业领域使用较多,如印刷、涂料和纺织品等行业,用于色彩监视和校准等工作。

202007079494..png

2.对色弱或视觉障碍的人进行辅助识别,能增强他们对颜色和色彩的理解。
202007075455..png


二、HUSKYLENS传感器-颜色识别功能演示
如果想要色彩钢琴能够顺利的演奏起来,首先要让HUSKYLENS传感器学习我们的彩色琴键的颜色,并让它知道每个颜色对应的音阶。HUSKYLENS传感器中的颜色识别功能是利用传感器内置算法,通过对不同颜色进行学习和记录,能够辨别出不同颜色的ID并反馈给主控板。
在HuskyLens传感器中默认设置为只学习、识别并追踪一种颜色,但是我们的彩色琴键肯定不能只有一个,所以我们需要将其设置为能够识别多种颜色的状态。




操作设置
-学习多个:
1.向左或向右拨动“功能按键”,直至屏幕顶部显示“颜色识别”。
2.长按“功能按键”,进入颜色识别功能的二级菜单参数设置界面。
3.向左或向右拨动“功能按键”,选中“学习多个”,然后短按“功能按键”,接着向右拨动“功能按键”打开“学习多个”的开关,即:进度条颜色变蓝,进度条上的方块位于进度条的右边。再短按“功能按键”,确认该参数。
202007071671..png

4.向左拨动“功能按键”,选中“保存并返回“,短按”功能按键“,屏幕提示”是否保存参数?“,默认选择”确认“,此时短按”功能按键“,即可保存参数,并自动返回到颜色识别模式。
这样我们就设置好学习多个的功能了。

学习与识别
1.侦测颜色
将HuskyLens屏幕中央的“+”字对准目标颜色块,屏幕上会有一个白色方框,自动框选目标颜色块。调整HuskyLens与颜色块的角度和距离,让白色方框尽量框住整个目标色块。

202007073414..png


2.学习颜色
侦测到颜色后,按下“学习按键”学习第一种颜色,然后松开“学习按键”结束学习,屏幕上有消息提示:“再按一次继续,按其他按键结束”。如要继续学习下一种颜色,则在倒计时结束前按下“学习按键”,可以继续学习下一种颜色。如果不再需要学习其他颜色了,则在倒计时结束前按下”功能按键”即可,或者不操作任何按键,等待倒计时结束。HuskyLens显示的颜色ID与学习颜色的先后顺序是一致的,也就是:ID会按顺序依次标注为“ID1”,“ID2”,“ID3”,以此类推,并且不同颜色对应的边框颜色也不同。

202007072517..png


3.识别颜色
如HuskyLens遇到相同或近似的颜色,屏幕上会有彩色边框框选出色块,并显示该颜色的ID,边框的大小随颜色块的面积一起变化,边框会自动跟踪色块。多种不同的颜色可以同时识别并追踪,不同颜色对应的边框颜色也不同。

202007075613..png

当出现多个相同颜色的色块时,相隔的色块不能被同时识别,只能一次识别一个色块。

202007075888..png

小提示:环境光线对颜色识别的影响很大,对于相近的颜色,HuskyLens有时会误识别。建议保持环境光线的稳定,在光线适中的环境中使用此功能。


项目实践:
我们将分为两步将任务完成,首先我们会学习使用HuskyLens的颜色识别功能,并将识别到的颜色ID输出。然后我们就可以根据输出的颜色ID给他们对应的声音播放,这样就可以完成我们的色彩钢琴了。我们将通过两个任务来完成色彩钢琴。
任务一:多种颜色识别
在最开始我们需要让HuskyLens摄像头能够识别多种颜色,并区分这些颜色的不同,能够给出反馈,以便于后续我们增加音符。
任务二:给每个颜色定义音符
在能够精准的识别出每个颜色之后,我们就可以给每个颜色定义一个声音,让他们能够按照一定的规律播放,这样就可以实现色彩钢琴了。


任务一:多种颜色识别

1、 硬件连接
202007078842..png

HuskyLens传感器使用的是IIC接口,需要注意线序,不要接错或接反。

2、 程序设计:
这里我们需要让HuskyLens传感器学习各个琴键的颜色,并能够输出颜色ID以方便后续我们对应颜色奏响对应的音阶。

STEP1 学习与识别
在设计程序之前我们需要让HuskyLens传感器学习各个琴键的颜色。(注意需要先开启学习多个的功能)

202007079618..png

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

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

202007072604..png
初始化,仅需执行一次,放在主程序开始和循环执行之间,可选择I2C或串口,I2C地址不用变动。注意HUSKYLENS端需要在设置中调整“输出协议”与程序中一致,否则读不出数据。
202007071961..png
切换算法,可以随时切换到其他算法,同时只能存在一个算法,注意切换算法需要一些时间。
202007079188..png
主控板向HUSKYLENS请求一次数据存入“结果”(存在主控板的内存变量中,一次请求刷新一次存在内存中的数据),之后可以从“结果”中获取数据,此模块调用之后“结果”中才会获取到最新的数据。
202007079685..png
从请求得到的“结果”中获取当前界面中是否有方框或箭头,包含已学习(id大于0)和未学习的,有一个及以上则返回1。
202007073915..png
从请求得到的“结果”中获取是否IDx已经进行了学习
202007075456..png
从请求得到的“结果”中获取是否IDx在画面中,方框指屏幕上目标为方框的的算法,箭头对应屏幕上目标为箭头的算法,当前仅为巡线算法时选择箭头,其他算法都选择方框。
STEP4 流程图分析
图片7.jpg

3、 程序示例

图片8.jpg

4、 运行效果
当在HUSKYLENS传感器中识别到对应颜色的ID,就在掌控板上显示对应的数字。


任务二:给每个颜色定义音阶

1、程序设计:
如何编写程序呢?在Mind+,自带播放音符指令,分为低、中、高音,还有各种节拍。我们只要给对应的ID添加对应的音阶即可。

202007071026..png
202007074970..png

程序逻辑图如下:

图片9.jpg

2、程序示例:
在上步完成的程序中添加音阶模块即可。

图片10.jpg

3、运行效果:
将HuskyLens传感器固定好,固定的位置在没按下琴键时,彩色琴键要在识别范围外,而摁下琴键时出现在识别范围内。当我们摁下琴键,会根据识别到的颜色播放对应的音阶。


项目小结:
项目回顾:
本节课学习了解了颜色识别的工作原理,并通过使用HuskyLens传感器学习了传感器的颜色识别功能。
颜色识别在人工智能视觉识别中非常重要的一个功能,在工业中有着广泛的引用。大家想想颜色识别还可以实现什么有趣的功能?
知识点回顾:
1、 了解颜色识别的工作原理;
2、 学习了HuskyLens传感器的颜色识别功能和识别多个的操作方法。


项目拓展:
完成了彩色小钢琴之后,我们一定会发现一个问题,琴键的数量比较少,而如果我们要增加琴键的数量,随着颜色的增多,会有很多颜色相近的琴键,就有可能会出现误识别。琴键变多也会出现摄像头识别范围无法读取足够多的琴键。所以我们有没有什么办法扩宽我们小钢琴的音域呢?
(提示,可以利用掌控板上的AB按键实现升阶和降阶的功能。)


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

micro:bit:

掌控板:
HuskyLens AI视觉传感器x掌控板:入门教程01—音乐魔镜






hnyzcj  版主

发表于 2020-7-9 13:54:12

@luna 你是那个luna吗
回复

使用道具 举报

shzrzxlee  中级技匠

发表于 2020-7-9 20:09:58

这块掌控板扩展板提供的是3.3V电压,所以接二哈,不用数据线供电的话,靠扩展板供电,有时二哈会不断重启
回复

使用道具 举报

luna  管理员
 楼主|

发表于 2020-7-10 13:34:59

hnyzcj 发表于 2020-7-9 13:54
@luna 你是那个luna吗

是啊~是啊~
回复

使用道具 举报

大圈biubiu  中级技师

发表于 2020-7-10 13:38:55

shzrzxlee 发表于 2020-7-9 20:09
这块掌控板扩展板提供的是3.3V电压,所以接二哈,不用数据线供电的话,靠扩展板供电,有时二哈会不断重启 ...

是啊 所以要单独供后再共地,哈士奇很耗电的……
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail