查看: 1224|回复: 6

[视觉识别入门教程] 【HUSKYLENS二哈识图】micro:bit视觉识别入门 05 流浪猫狗投食机

[复制链接]
流浪猫狗投食机

图片.png
11.png


功能介绍:
本项目结构部分采用快递纸盒为框架搭建,两个塑料瓶保留了螺旋紧固结构便于补充猫狗粮,电子部分利用 HuskyLens 的物体识别功能,通过机器学习来区分猫和狗,由 micro:bit 板处理结果并控制舵机,打开的阀门,为面前的流浪猫狗出粮。

材料清单:

22.png


知识园地:
图像识别技术是人工智能的一个重要领域。它是指对图像进行对象识别,以识别各种不同模式的目标和对像的技术。而我们这个项目就是借助 HUSKYLENS 传感器的图像识别功能来对猫狗进行区分和识别。

一、什么是图像识别?
—————————————————————————————————————————
图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,是应用深度学习算法的一种实践应用。现阶段图像识别技术一般分为人脸识别与商品识别,人脸识别主要运用在安全检查、身份核验与移动支付中; 商品识别主要运用在商品流通过程中,特别是无人货架、智能零售柜等无人零售领域。

图片1.png

图形识别工作原理:
图像的传统识别流程分为四个步骤:


图片2.png

图像采集:顾名思义,通过摄像头采集图像,为了后面的识别工作做准备。

图像预处理:经过一系列算法,对图像中的一些信息进行分析和处理。

特征提取:根据上步处理过的信息,在其中提取关键信息,如:颜色、外轮廓等等。

图像识别:将提取的信息与样本库中的内容进行比对,在 HUSKYLENS 传感器的图像识别中既包含内置的样本库还可以通过学习来丰富样本库。

图像识别结束与其他识别技术的异同:
到现在我们已经学了许多摄像头识别的功能,如人脸识别、颜色识别等等,那他们之间有什么区别呢?

首先是人脸识别,人脸识别也是图像识别的一种,我们可以这么理解,人脸识别是专门用于区分人脸的图像识别。在场景中就就是:一群人经过人脸识别摄像头,如果提前录入过数据,它就能精确的“叫出”每一个人的名字,而图像识别功能得出的结果就是:人、人、人。因为它只能识别物体的类别而不能对个体进行区别。

那我们就想到,那图像识别和物体追踪是不是有点像呢?都是识别物体的功能, 但是细心观察就能发现,物体追踪功能只能学习并追踪单一一个物体,而图像识别可以识别多种物体。这是因为,物体追踪可以对一个物体的多个角度进行学习,当你让HUSKYLENS 传感器学习物体的时候缓慢旋转角度就能够学习这个物体的各个角度的样子,这样就可以非常精准的追踪,而物体识别是学习物体的一个面,当你旋转物体的时候就无法识别了。

颜色识别和二维码识别则是对某些功能定向的识别功能,相信大家不会搞混。

图像识别技术主要应用在以下领域:
1.生物医学:
图像识别在现代医学中的应用非常广泛,它具有直观、无创伤、安全方便等特点。
在临床诊断和病理研究中广泛借助图像识别技术,例如在新冠肺炎期间,就出动人工智能来进行快速审阅病人CT 的应用。

2.遥感图像识别:
航空遥感和卫星遥感图像通常用图像识别技术进行加工以便提取有用的信息。
该技术主要用于地形地质探查,森林、水利、海洋、农业等资源调查,灾害预测,环境污染监测,气象卫星云图处理以及地面军事目标识别等。

二、HUSKYLENS 中的物体识别
——————————————————————————————————————————————————
本功能可识别这是什么物体,并追踪。目前仅支持20 种物体,分别为:飞机、自行车、鸟、船、瓶子、巴士、汽车、猫、椅子、牛、餐桌、狗、马、摩托车、人、盆栽植物、羊、沙发、火车、电视。20 种物体的英文名称,分别为:aeroplane, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse, motorbike, person, pottedplant,sheep, sofa, train, tvmonitor. 默认设置为只标记并识别一个物体。本章节采用标记并识别多个物体为例进行演示。

1.操作设置
向左或向右拨动“功能按键”,直至屏幕顶部显示“物体识别”。长按“功能按键”,进入物体识别功能的二级菜单参数设置界面。

向左或向右拨动“功能按键”,选中“学习多个”,然后短按“功能按键”,接着向右拨动“功能按键”打开“学习多个”的开关,即:进度条颜色变蓝,进度条上的方块位于进度条的右边。再短按“功能按键”,确认该参数。

图片3.png

向左拨动“功能按键”,选中“保存并返回“,短按”功能按键“,屏幕提示”是否保存参数?“,默认选择”确认“,此时短按”功能按键“,即可保存参数,并自动返回到物体识别模式。

2.侦测物体
把HuskyLens 对准目标物体,在屏幕上,会有白色框自动框选出识别到的所有物体, 并显示对应的物体名称。目前只能识别并框选 20 种物体,其余物体无法识别和框选。

图片4.png

3.标记物体
把 HuskyLens 对准目标物体,当屏幕上显示的物体被检测到并显示其名字时, 将屏幕中央的“+”字对准该物体的白色框中央,短按“学习按键”进行标记。此时,框体颜色由白色变为蓝色,并显示其名字和 ID1,同时有消息提示:“再按一次继续,按其他按键结束”。如要继续标记下一个物体,则在倒计时结束前按下“学习按键”,可以继续标记下一个物体。如果不再需要标记其他物体了,则在倒计时结束前按下”功能按键”即可 , 或者不操作任何按键,等待倒计时结束。

HuskyLens 显示的物体 ID 与标记物体的先后顺序是一致的,也就是:ID 会按顺序依次标注为“ID1”,“ID2”,“ID3”,以此类推,并且不同的物体 ID 对应的边框颜色也不同。

图片5.png

4.识别物体
HuskyLens 再次遇到标记过的物体时,在屏幕上会有彩色的边框框选出这些物体,并显示物体名称与 ID。边框的大小随着物体的大小而变化,自动追踪这些物体。同类物体,有相同颜色的边框、名字和 ID。支持同时识别多类物体,比如同时识别出瓶子和鸟。

图片6.png

这个功能,可以作为一个简单的筛选器,从一堆物体中找出你需要的物体,并且做追踪。

微信截图_20200515153928.jpg

项目实践
我们将分为两步将任务完成,首先我们会学习使用 HuskyLens 的图像识别功能, 并将识别到的结果输出。我们可以根据靠近的是猫或者狗来给它们分发对应的粮食。

任务一:区分猫狗
在这步我们需要让HuskyLens 摄像头能够识别并区分猫和狗并能给出反馈,以便我们下一步能够实现发出对应的食粮。

任务二:添加发粮功能
这步就需要在上步的基础上添加发粮功能,并制作对应的结构。

任务一:区分猫狗
1、硬件链接
图片7.png

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

2、程序设计
这里我们需要让 HuskyLens 传感器学习猫和狗的图像,并能够在识别后输出猫和狗的指示。

STEP1学习与识别
在设计程序之前我们需要让HuskyLens 传感器学习猫和狗的图像。(注意需要先开启学习多个的功能)

图片8.png 图片9.png

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

图片10.png 图片11.png

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

图片19.jpg
图片20.jpg
图片21.jpg
图片22.jpg
图片23.jpg
图片24.jpg


STEP4 流程图分析
图片18.jpg

3、程序示例
11111111111.jpg

4、运行效果
当在HUSKYLENS传感器中识别到猫会显示音符图形,识别到狗会显示爱心图形。

任务二:添加发粮功能
1、结构搭建
首先我选择了一个方盒子作为喂食机的主体,结构简单且牢固,还有盖子便于开合内部检修,相当适合这个项目。

图片26.png

取用两个塑料瓶的瓶盖开孔,如图用胶固定在快递盒顶部用剪刀剪出来的洞上, 左右对称安装。

图片27.png

找两个塑料片,对折做出合页的效果,在一端剪出槽是为了之后更方便也更稳定的绑线。

图片28.png

将做好的阀门从盒子内部用胶固定,左右对称,确保合页打开时有够大的孔出猫狗粮。

图片29.png

这里是很关键的一步,先用胶固定住舵机,在快递盒背面给摇臂开两个孔,一个给摇臂旋转空间还一个走舵机线,这里记得校准舵机的 90 度位置。再用一根线绑住摇臂左端,缠绕在左侧的塑料片上,然后绳子穿越飞机盒外侧从右侧的孔绕回来缠绕在右侧的塑料片上,最后绑到舵机摇臂的右端。

图片30.png

快递盒内部用硬纸片搭建出两侧猫粮和狗粮滚落的轨道。

图片31.png

在快递盒盖的对应位置开孔让猫狗粮能够顺利滚落。

图片32.png

在顶部顺序固定好拓展板、micro:bit 板和哈士奇之后,在盒子正面拧上螺丝,是为了调节盒子外的绳子的松紧度,也间接地调整了两个阀门的松紧,我们可以根据猫狗粮不同的颗粒大小,来适当调节这里绳子的松紧。

图片33.png

到这里结构就先告一段落,我们等电子部分调试好之后再加上储存猫狗粮的塑料瓶。

2、硬件链接
图片34.png

这里我们将HuskyLens 摄像头通过 4pin 连接线连接到拓展板的 I2C 接口,作为整个系统的输入设备,接着将舵机按照正确的线序连接到拓展板的 P0 口。

3、程序实现
然后我们将 micro:bit 板接上电脑打开 Mind+ 开始程序的编写。首先完成 micro:bit 板驱动舵机的测试,确认阀门的开启与关闭,适当调整绳子的松紧度。
图片36.jpg

最后的主程序就简单许多,开机初始化一下 LED 点阵、舵机中位和 HuskyLens 摄像头,每隔一定的时间周期识别一次,识别到猫和狗舵机打开不同的阀门,掉落对应的猫粮或狗粮。

图片37.jpg

4、运行效果
当识别到猫靠近时,点阵屏显示 1,并投放猫粮,投放成功后显示爱心。当识别到狗靠近时,点阵屏显示 2,并投放狗粮,投放成功后显示爱心。

项目小结
项目回顾:
我们用生活中随处可见的材料结合 HuskyLens 摄像头一步一步完成了充满温馨的流浪猫狗喂食机,不仅仅是对流浪猫狗的生存福音,更是方便了有爱心的人自主添加猫狗粮,献出自己的爱心来帮助它们。

知识点回顾:
1、了解物体识别的工作原理
2、学习了 HuskyLens 物体识别的学习过程
3、能够利用 HuskyLens 作为输入设备结合 micro:bit 板和其他硬件完成项目

项目拓展:
完成了流浪猫狗喂食机后,如果想要更深入的帮助流浪猫狗,是否可以添加一个统计的功能,记录每天来喂食机吃东西的猫和狗的数量,这样就能够更合理的配给猫粮和狗粮的量。

rzyzzxw  版主

发表于 2020-5-15 18:59:33

特别棒的二哈系列教程
回复

使用道具 举报

_木子_  中级技匠
 楼主|

发表于 2020-5-15 19:10:30

rzyzzxw 发表于 2020-5-15 18:59
特别棒的二哈系列教程

                  
回复

使用道具 举报

rzegkly  版主

发表于 2020-5-15 19:53:46

二哈功能越来越丰富,喜欢
回复

使用道具 举报

hnyzcj  版主

发表于 2020-5-16 08:24:44

特别棒的二哈系列教程
回复

使用道具 举报

wangyirun  初级技匠

发表于 2020-5-16 18:31:10

给二哈做个外壳吧,万一猫狗抓坏了呢。。。
回复

使用道具 举报

_木子_  中级技匠
 楼主|

发表于 2020-5-18 10:29:41

wangyirun 发表于 2020-5-16 18:31
给二哈做个外壳吧,万一猫狗抓坏了呢。。。

有外壳哦         
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail