项目背景:在自然界中,昆虫是生物多样性的重要组成部分,它们不仅丰富了我们的生态环境,还在生态系统中扮演着至关重要的角色。然而,对于小学生而言,认识并区分不同种类的昆虫往往是一项具有挑战性的任务。传统的昆虫教学方法可能依赖于书籍、图片或教师的口头描述,但这些方式往往缺乏互动性和直观性,难以激发学生的学习兴趣和探索欲望。因此,本项目计划利用行空板和人工智能技术,设计一款“校园昆虫智能识别助手”,旨在帮助小学生更好地认识和理解校园内的昆虫。
2.项目功能
本项目将制作一个“校园昆虫智能识别助手”,利用物体分类算法实现校园常见昆虫的识别。
物体分类算法的实现分为采集数据、训练模型、识别物体三个过程,因此项目也将分为下面三个任务:
任务一:采集校园常见昆虫图片。通过摄像头采集不同种类的昆虫图片,建立图片集以便于后面的训练和识别。
任务二:训练昆虫分类模型。基于建立好的图片集,让行空板处理图片,训练获得专门用于垃圾分类的模型。
任务三:识别昆虫。利用训练好的昆虫分类模型,识别摄像头识别到的昆虫,并显示提示信息。
3. 硬件清单

4.. 软件清单
Mind+编程软件(下载地址:https://www.mindplus.cc)
任务一:采集昆虫图片
先来利用摄像头采集不同昆虫的图片,建立图片集。
1 连接硬件
首先,将摄像头接入行空板USB接口。然后,将行空板通过USB线连接到电脑上,等待行空板屏幕亮起,并显示行空板LOGO,表示连接成功。

2.准备软件
按照下面步骤,设置Mind+软件编程方式为 Python图形化编程,并完成行空板的加载和连接。
3 编写程序
通过MIND+编写程序,采集昆虫的图片,建立训练所需的图片集。
需要加载用户自定义库(物体分类库)。进入“扩展库”中的“用户库”检索“物体分类”,点击“行空板机器学习”图形化库,完成加载。

4.加载完文字识别指令后,我们就可以按照“初始化摄像头 → 读取摄像头画面图片 → 按键拍摄保存对应分类图片到指定的文件夹中”的流程编写程序。
、
5.运行程序
点击运行按钮,运行程序,行空板屏幕上显示视频画面。摄像头画面对准昆虫,按下A键,拍摄一次图片。此时,终端会显示采集图片存储的位置和张数。
长按A键,同一分类下可以采集多张图片,一般来说采集图片越多,识别准确率越高,但是训练耗费的时间就越久,本项目我们选择采集30到40张图片即可。学习结束后,点击停止运行,结束本次采集。
6.按顺序分类
请修改代码,重复刚才的过程,继续采集其它昆虫的图片。
提示:每次运行只能学习一个类别图片,填写分类名称时,需要按顺序添加序号。修改核心代码示例如下:

任务二:训练昆虫分类模型
用采集的图片训练识别昆虫的模型。
1 编写程序
训练识别昆虫模型需要经过“导入图片集 → 创建模型 → 训练模型 → 保存模型”几个步骤。
由于现在冬天,目前只采集了两个昆虫的图片,在导入图片 指令中填入分类数量为2。为了让模型效果更好,我们可以在 训练模型 指令中设置一定数量的训练次数,比如3次。当然,我们也可以加入适当的提示表示训练完成。完整示例代码如下:

注意:训练次数不易填入太多,不然训练时间会较长。
任务三:识别昆虫
基于训练好“昆虫识别”模型,用摄像头拍摄昆虫,按键识别昆虫并显示在行空板屏幕上。
1 编写程序
(1)识别昆虫
既然要使用摄像头来拍摄图像,利用昆虫分类模型识别昆虫类,识别昆虫就需要导入模型、初始化摄像头、读取摄像头画面、按键识别以及显示摄像头画面几个部分。参考代码如下图所示。

(2)显示识别结果
识别获得的结果有两个“索引”和“置信度”。其中,“索引”表示采集图片时类别文件夹的序号,“置信度”则表示识别为该类别的可能性。'

识别结果中没有类别名称,我们可以建立一个“表格”用“索引”去取“表格”里面的昆虫名称。而这个“表格”就叫做列表。

具体实现方法如下:
先建立 分类表 和 识别结果 两个变量用来保存所有昆虫名称以及识别的昆虫名称。然后,在代码开始部分将 变量分类表 初始化为 [”大青虫卵”,”蚂蚁”……],变量识别结果 则初始化为””(双引号内没有内容)。

当按键获得识别结果后,从 分类表 中按 识别的索引 取出识别的昆虫名称,并存入 变量识别结果。

获得了识别到昆虫的名称,接下来我们就可以将它显示在摄像头画面上。
完整的程序如下:

2 运行程序
点击运行按钮,运行程序,待模型导入成功后,终端会显示“model loaded”表示模型导入成功。
模型导入成功后,行空板屏幕上会显示识别的画面。(由于刚开春,校园昆虫还比较少,暂时难以收集到足够的图片,待开春后,补充相应的图片素材,并可以根据本地的昆虫情况,增加昆虫的类别)。
评论