查看: 477|回复: 5

[视觉识别入门教程] HuskyLens AI视觉传感器x掌控板:入门教程05—流浪猫狗喂食机

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


项目5流浪猫狗喂食机



202007234383..png

现在人们的生活条件好了,看到好看的小猫小狗就头脑一热买来饲养,却又没做好当一个毛孩子监护人的各种准备,结局便是残忍地遗弃它们。正因为有这些不负责任的猫狗饲主,垃圾站边上、路边的草丛甚至汽车的车底我们经常能看见这些可怜的小家伙,我们是否可以为它们做些什么?
如果有一台喂食机,用HuskyLens摄像头判断前方的是小猫还是小狗,为它们提供对应的猫粮或狗粮,是不是像一台流浪界的扫脸自动售货机,能够解决它们的温饱。之前被半吊子的主人伤害,现在至少能被人工智能温柔以待。


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


材料清单:
202007235369..png
202007236953..png
掌控板 ×1
micro:bit掌控I/O扩展板 ×1
202007238790..png
202007239067..png
HUSKYLENS --人工智能摄像头 ×1
DF9GMS 180° 微型舵机 x1


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

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


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

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

202007238699..png

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

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

202007231093..png

(3) 标记物体
HuskyLens对准目标物体,当屏幕上显示的物体被检测到并显示其名字时,将屏幕中央的“+”字对准该物体的白色框中央,短按“学习按键”进行标记。此时,框体颜色由白色变为蓝色,并显示其名字和ID1,同时有消息提示:“再按一次继续,按其他按键结束”。如要继续标记下一个物体,则在倒计时结束前按下“学习按键”,可以继续标记下一个物体。如果不再需要标记其他物体了,则在倒计时结束前按下”功能按键”即可,或者不操作任何按键,等待倒计时结束。
HuskyLens显示的物体ID与标记物体的先后顺序是一致的,也就是:ID会按顺序依次标注为“ID1”,“ID2”,“ID3”,以此类推,并且不同的物体ID对应的边框颜色也不同。

202007239527..png

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

202007234195..png

这个功能,可以作为一个简单的筛选器,从一堆物体中找出你需要的物体,并且做追踪。
小提示此功能不能区分同类物体间的不同,比如:只能识别出这是猫,但不能识别出这是什么猫。有别于人脸识别,人是一类,但可以区分不同的人脸。

项目实践:
我们将分为两步将任务完成,首先我们会学习使用HuskyLens的图像识别功能,并将识别到的结果输出。我们可以根据靠近的是猫或者狗来给它们分发对应的粮食。
任务一:区分猫狗
在这步我们需要让HuskyLens摄像头能够识别并区分猫和狗并能给出反馈,以便我们下一步能够实现发出对应的食粮。
任务二:添加发粮功能
这步就需要在上步的基础上添加发粮功能,并制作对应的结构。

任务一:区分猫狗

1、 硬件连接
202007231540..png

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

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

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

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

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

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

3、 程序示例
202007236379..png

4、 运行效果
当在HUSKYLENS传感器中识别到猫会显示文字“猫”,识别到狗会显示文字“狗”。

任务二:添加发粮功能

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

202007235778..png

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

202007237453..png

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

202007234880..png

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

202007238071..png

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

202007238957..png

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

202007236285..png

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

202007237263..png

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

202007239504..png

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

2 硬件连接
202007234014..png

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

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

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

202007238525..png

4 运行效果
当识别到猫靠近时,屏幕显示”猫粮“,并投放猫粮,投放成功后显示文字”喂食成功“。当识别到狗靠近时,屏幕显示”狗粮“,并投放狗粮,投放成功后显示文字”喂食成功“。

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

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

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


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


micro:bit:


帅猫  中级技师

发表于 2020-8-3 20:20:13

说来可能不信,我给流浪猫喂狗粮,居然接受了
回复

使用道具 举报

dsweiliang  初级技神

发表于 2020-8-3 22:12:28

回来啦?
回复

使用道具 举报

luna  管理员
 楼主|

发表于 2020-8-4 14:24:36

回复

使用道具 举报

gray6666  初级技神

发表于 2020-8-4 20:22:26

撸猫一族必备神器
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-6 11:05:06

猫粮和狗粮最好用两个舵机控制,否则狗一来,猫狗粮全出来了
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail