22687浏览
查看: 22687|回复: 4

[《视觉识别入门教程》] 【二哈识图】Arduino视觉识别入门教程—02植物保护系统

[复制链接]
项目二:植物保护系统

生活趣事:
中国是自古以种植水稻为大宗的农业大国,稻区覆盖辽阔,主产区分布于秦岭淮河一线以南(如:长江中下游平原、珠江三角洲、东南丘陵、云贵高原、四川盆地等地),种植总面积大约在4.3-4.4亿亩之间。水稻种植从原始人畜耕作到机械耕种是农业发展的一大进步,但基于稻田分布广泛、人工成本高、耗时长、耕作信息采集残缺、不及时等特点,新型物联网种植的出现,使现代农业实现了又一次质的飞跃。


【二哈识图】Arduino视觉识别入门教程—02植物保护系统图1


其中新型物联网种植中,有一项技术就是智能驱赶技术(包括声、光、假人驱赶),这节课我们就来运用哈士奇的物体识别功能,来实现一个通过声音来驱赶动物,并通过SIoT进行运程监控的植物保护系统。

功能介绍:
在这个项目中,我们将学习HUSKYLENS的物体识别功能,利用其内置的机器学习功能,分辨学习过的动物,并做出蜂鸣器实现声音驱赶的功能。当同一时间识别到的动物达到预定上限时,通过物联网模块发送至SIoT,便于管理人员监测,此时也可以点亮一盏LED给予管理人员警示作用,以便更好的保护农作物的生长。通过这些功能的实现就能制作出一个植物保护系统了。

材料清单:
               
【二哈识图】Arduino视觉识别入门教程—02植物保护系统图2

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

一、什么是图像识别?
——————————————————————————————————————————————————

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

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图3

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

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图4

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

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

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

图像识别:将提取的信息与样本库中的内容进行比对,在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)操作设置
向左或向右拨动“功能按键”,直至屏幕顶部显示“物体识别”。长按“功能按键”,进入物体识别功能的二级菜单参数设置界面。

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

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图5

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

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

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图6

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

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

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图7

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

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图8

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

小提示:此功能不能区分同类物体间的不同,比如:只能识别出这是猫,但不能识别出这是什么猫。有别于人脸识别,人是一类,但可以区分不同的人脸。

项目实践:
学会哈士奇的物体识别功能后,让我们一起来实现植物保护系统项目。首先要实现的功能就是摄像头在识别动物(小鸟)时,能在程序端区分学习过的动物。其次就是加入蜂鸣器,实现声音驱赶动物的功能,最后通过物联网模块实现运程监控功能。

任务一:实现声音驱赶功能
在这步我们先学习如何使用HUSKYLENS摄像头来识别物体(小鸟),并能够判断是否是学习过的,如果是识别过的动物,则通过蜂鸣器发出声音,实现声音驱赶功能,否则蜂鸣器不发音。

任务二:实现远程监控功能
在学习了如何区分人脸并执行反馈功能后,我们就可以在此基础上添加物联网模块从而实现运程监控功能,也可加入LED对管理人员进行灯光提醒。


任务一:识别动物
——————————————————————————————————————————————————

1、硬件连接
HUSKYLENS:I2C引脚(T—SDA、R—SCL、+—5V、- —GND)
蜂鸣器:数字引脚5
LED灯:数字引脚4
物联网模块:UART口(T—RX(绿线)、R—TX(绿线)、+—VCC、- —GND),上传程序时需拔掉RX,上传成功后再插上。
舵机:数字引脚9

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图9

2、程序设计
这里的区分动物默认摄像头已经学习过指定动物的信息(可能是对植物园正常生长有害的动物,这里我们识别的是小鸟),当摄像头再次看到动物时,判断是否是学习过的即可。此系统运行时,舵机每隔一段时间(具体时间可以自己设定),就会旋转一定角度,从而实现自动巡查的功能。巡查过程中遇到之前学习过的动物时,蜂鸣器就会发出声音对该动物进行驱赶。

STEP1 Mind+软件设置
打开 Mind+软件(1.6.2及以上版本),切换到“上传模式”,点击“扩展”,在“主控板”下点击加载“Arduino Uno”,在“传感器”下点击加载“HUSKYLENS AI 摄像头”,在“执行器”下点击加载“舵机模块”,在“通信模块”下点击加载“OBLOQ物联网模块”。

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图10
【二哈识图】Arduino视觉识别入门教程—02植物保护系统图11
【二哈识图】Arduino视觉识别入门教程—02植物保护系统图12
【二哈识图】Arduino视觉识别入门教程—02植物保护系统图13

STEP2 指令学习
来认识一下主要用到的几条指令。
【二哈识图】Arduino视觉识别入门教程—02植物保护系统图14
STEP3 流程图分析
【二哈识图】Arduino视觉识别入门教程—02植物保护系统图15
3、程序示例

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图16

4、运行效果
摄像头跟随着舵机在10到170°间进行巡逻,当摄像头再巡逻的过程中遇到之前学习过的动物时,系统通过蜂鸣器对该动物进行驱赶,从而实现声音驱赶功能。

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图17

任务二:实现运程监控功能
——————————————————————————————————————————————————

1、程序设计:
在之前代码的基础上增加物联网的功能模块,实现当识别到的动物超过一定数量时,发送消息至网页端,并通过点亮LED灯,实现提醒管理人员的效果。

特别提示:这里使用SIoT的具体操作没有详细说明,如果有不会的地方可以通过这个网址链接进行相应设置的学习:https://mc.dfrobot.com.cn/thread-281129-1-1.html

2、程序示例:

【二哈识图】Arduino视觉识别入门教程—02植物保护系统图18

3、运行效果:

提前在摄像头上学好”HUSKYLENS“内置的动物,将程序上传到主控板中,运行程序时舵机会在10°—170°的角度进行巡逻,当摄像头只要看见之前学习过的动物,蜂鸣器就会发出驱赶声音对该动物进行驱赶。当同一时间遇到的动物到达一定上限时,说明对农作物影响很大,需要通过物联网模块远程发送消息到管理员,同时也可以点亮LED对管理员进行提示,这样以便更好的保护农作物的生长。

项目小结:
通过植物保护系统项目的学习,我们又了解了”HUSKYLENS“的一新功能物体识别功能,可以继续完善此项目。当然啦,我们运用物体识别功能还可以做更多有趣的项目,你想到了什么好玩的项目了吗,赶紧动手试试吧!

知识点回顾:
1、了解物体识别的工作原理;
2、学习了HuskyLens物体识别的学习过程;
3、学习了HuskyLens物体识别的相关指令。

项目拓展
这个项目中,我们运用蜂鸣器模块对动物进行声音驱赶,但现实过程中我们的蜂鸣器声音较小达不到很好驱赶动物的效果。还有什么办法能很好的实现驱赶功能呢?其实我们还可以利用多个舵机组合成一个假人,再对假人进行一些装饰,可以做成动物天敌或者是人的样子,通过代码控制舵机运动,从而达到驱赶的效果。


三春牛-创客  初级技神

发表于 2023-8-6 21:55:56

教程不错!
回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-8-6 21:56:58

学习了,感谢分享!
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-8-7 22:41:23

厉害厉害
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-8-7 22:42:26

好教程,赞赞赞!
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail