动物识别大转盘:玩转图像分类模型调用代码大模型

本项目以野生保护动物图像分类为主题,共包括数据采集及处理、模型训练、模型封装、模型部署四个阶段,利用6个课时带领学生体验完整的人工智能作品开发流程,以期为高中阶段人工智能教学提供参考。

目前,在计算机视觉领域有多种图像分类模型,如ResNet、MobileNet、LeNet等,这些模型在不同的图像识别场景下发挥不同的作用。那么,不同网络模型在结构上有什么差异?哪些模型识别速度更快准确率更高?哪些模型更轻量更适合部署在移动端?为了弄清这些问题,笔者在实际教学过程中进行了一系列探索并发现,如果只是讲解理论,对于初次接触深度学习的高中生来说是枯燥且晦涩的。

因此,笔者开发了可以实践的趣味项目,让学生自己动手,亲历完整的问题解决过程,在实践中理解人工智能模型算法原理。在项目实践中,笔者也遇到并解决了一些新的问题,如如何实现本地局域网环境下的模型API调用,以解决机房网络不佳、学生注册调用网络平台API费时费力等问题?有什么硬件是价格低廉、配置简单且适合机房环境下大班教学的?

下面,笔者以完整的“动物识别分类”项目为例对上述问题进行阐述,以期为高中阶段人工智能教学提供参考。

项目介绍

01

项目背景

本项目主题:打造AI野生保护动物识别系统。近几年,贩卖野生保护动物的情况屡见不鲜,许多人在不知情的情况下出于好奇而购买,从而触犯了法律,究其根本原因还是缺乏对野生保护动物的认识。我们可以借助人工智能的图像识别技术来解决这一问题。

02

项目时长

该项目分四部分,共6课时,分别为:数据采集及处理(2课时)、模型训练(1课时)、模型封装(1课时)、模型部署(2课时)。

03

项目流程

该项目流程首先,学生2人一组,从网络上收集8到10种不常见的野生保护动物图片,并进行预处理。然后,分组调用MobileNetV2、resnet50预训练模型,在训练过程中对比两种图像分类模型的差异。接着,利用教师提供的module.py半成品文件,将自己训练出的模型进行封装,实现本地调用。最后,利用Arduino板完成硬件部署。

项目实施

数据采集及处理

(1)数据采集

数据集的获取处理是一个非常复杂的过程,既需要大量高质量的图片数据,又要保证数据集的图片具有足够的多样性,这样才能提高训练模型在实际应用中的泛化水平。由于野生保护动物在生活中并不常见,采用手机或相机拍摄是不可行的,所以教师可以指导学生应用高一学习的Python爬虫知识爬取需要的数据集图片,即根据关键词从百度上爬取8到10种野生保护动物图片,每种500张左右,核心代码如图1所示。

将下载好的数据集图片分类放在10个文件夹中,需要按照飞桨平台的数据集格式规则提前制作好一个label.text文档,在后期模型训练中作为数据索引。教师可以提前制作一份模型文档给学生作为参考。格式如图2所示。

(2)数据预处理

数据处理中重要的一步是将处理好的数据划分训练验证集,使用sklearn.model_selection模块,只需要如下两行代码就可以划分出训练验证集:

fromsklearn.model_selectionimporttrain_test_split

train_img,val_img,train_label,val_label=train_test_split(data,label,test_size=0.2)

接下来按照飞桨官网提供的代码进行数据预处理。

模型训练

(1)神经网络的搭建

直接调用飞桨平台的内置模型,调用代码如图3所示。

使用paddle.summary语句查看网络结构,如图4所示。学生从中可以理解MobileNetV2与resnet50在模型结构上的异同,比教师讲解理论要直观清晰许多。

(2)模型训练

(3)模型评估

在模型训练好后,使用图6所示的代码绘制变化曲线来查看两种训练模型对应的准确率的区别,MobileNetV2约为65%,resnet50约为70%,差距不大,后续还需要继续调优以提高其识别精度。还可以用同样的方法绘制loss曲线,帮助学生理解训练过程中损失函数的变化(如图7)。

(4)模型预测

加载模型启动模型预测,选择图片对训练出的模型进行预测,代码如图8所示。指导学生选择图片进行多次测试,以体验训练模型的识别精度。

模型封装

训练出的模型权重文件经过封装,便可以实现本地部署。在机房局域网内,教师启动部署命令,其他学生也可以调用该hub模型进行图像识别。封装的核心步骤是要编写module.py文件,这是比较烦琐的一步,其中包括配置模型信息、编写推理方法、测试推理等,代码较长,具体可参考官网使用指南。

在配置好module.py文件后,学生开始制作自己的paddlehub:新建一个文件夹mobilenet_meimei,与module.py文件中模型的名称一致,在文件夹中加入一个__init__.py空文件,以及刚刚编辑好的module.py文件、assets文件夹。其中,assets文件夹中包含的是前期训练好的模型及参数文件,如图9所示。

之后启动以下两条命令:

hubinstallmobilenet_meimei

hubservingstart-mmobilenet_meimei

在本地部署封装好的模型,利用飞桨提供的测试代码,就可以在本地对模型进行识别调用了。

04

模型部署

模型部署阶段是整个项目环节中趣味性、交互性最强的阶段。在这一部分,教师带领学生利用封装好的动物识别模型,结合Arduino制作“动物识别大转盘”,将自己的训练成果真正应用起来。Arduino板无法实现边缘部署,计算推理等工作还是要在计算机端完成,但因其配置步骤简单、价格低廉、功能强大,更适合没有硬件基础的学生以及机房环境下的大班教学。

(1)所需材料

硬件:Arduino*1、舵机*2、yeelightLED灯*1、杜邦线*6、小音箱或语音播报模块。

软件:jupyter或idle。

(2)实现功能

调用封装好的动物识别模型,在成功识别出相应动物名称后,组装驱动硬件部分实现如下功能:

①利用pyttsx3模块,实现语音播报识别出的保护动物名称。

②利用Pinpong模块,实现Arduino控制舵机转动,在转盘中指向识别出的动物名称。

③利用yeelight模块,结合小彩灯,当识别到不同动物时,彩灯会显示与之相对应的不同颜色,如检测到金丝猴亮起黄灯,检测到耳廓狐亮起绿灯。如果迁移在水果分类项目中,还可以使亮起的灯显示为识别出的相应水果的颜色,如火龙果显示红色、香蕉显示黄色。

(3)实现方式

核心代码如图10所示。

结语

在本项目中,教师带领学生体验了完整的图像分类识别流程,理解了resnet50、MobileNetV2两种图像分类模型在结构、训练速度、训练模型识别精度等方面的差异,实现了利用Arduino部署自训练模型,解决了机房局域网环境下API调用本地化等问题。

本文作者:

刘梅

山东省淄博第一中学

引用请注明参考文献:

刘梅.动物识别大转盘:玩转图像分类模型[J].中国信息技术教育,2023(09):79-82.

THE END
1.如何正确地选择肿瘤动物模型根据设定的实验目标来选择最合适的动物模型,才能得到科学的结论和理想的结果。肿瘤动物模型的应用一般分为:肿瘤发生发展机制研究、抗肿瘤药物筛选、免疫疗法相关研究等。 第二步,了解已有的各类常见肿瘤模型分类及特点 肿瘤动物模型一般分为:①CDTX(肿瘤细胞系移植模型)②PDTX(人源肿瘤组织异种移植模型)③诱发性肿瘤动物...https://www.bio-equip.com/showarticle.asp?ID=453106931
2.动物实验建模是什么意思:实验动物模型建立与造模步骤指南(3)缩短研究周期:动物实验建模可以快速模拟疾病过程,为研发和治疗策略提供有力支持。 (4)增强研究效率:通过动物实验建模,可同时开展多项研究,增强研究效率。 三、动物实验建模的分类 1. 自发性动物模型:指动物本身具有某种疾病特征的模型,如遗传性疾病、肿瘤等。 http://www.slrbs.com/jrzg/aizhishi/202791.html
3.仿真蝴蝶图纸下载人体/动物模型图纸仿生蝴蝶模型 Solidworks2018 6116150 机械小粤2024-03-23 立刻下载收藏 图纸ID: 1562583 文件大小:13.73MB 图纸版本:AutoCAD2004,UG NX12.0 图纸格式:prt文件、dwg 所需积分:1060沐风币 发布时间:2024-03-30 16:32 图纸参数:可编辑含参数 图纸分类:动物模型 ...https://www.mfcad.com/tuzhi/836/1562583.html
4.用于对抗体进行分类的系统和方法与流程所述方法可以包含向包括第一机器学习模型的分类引擎提供所述第二训练数据集以生成用于所述第一机器学习模型的多个参数。所述方法可以包含由所述分类引擎基于用于所述第一机器学习模型的所述多个参数确定提出的氨基酸序列与抗原的第一亲和力结合评分。在一些实施例中,所述参数包括所述第一学习模型的权重和偏差。所述方法...https://www.xjishu.com/zhuanli/05/202080036250.html
1.动物模型的分类有哪些动物模型的分类有哪些 人类疾病研究中,常用实验动物模型按产生原因分为以下5类:自发性动物模型、诱发型动物模型、遗传工程动物模型、生物医学动物模型和阴性动物模型。 1、自发性动物模型: 是指动物未经任何有意识的人工处理,在自然条件下或基因突变条件下所产生的疾病模型。主要包括突变型的遗传病模型和近郊系的肿瘤...http://www.jsxtsw.com/1602/
2.动物模型实验第三方检测机构丨「中析检测中心」动物模型分类 一、按产生原因酚类 1、诱发性动物模型(物理因素诱发性动物模型、化学因素诱发性动物模型、生物因素诱发性动物模型、复合因素诱发性动物模型) 2、自发性动物模型 3、抗疾病型动物模型 4、生物医学动物模型 二、按系统范围分类 1、疾病的基本病理过程动物模型,是指各种疾病共同性的一些病理变化过程模型。https://www.yjsqi.com/dongwulingyu/7855.html
3.人类疾病动物模型同时还可克服人类疾病发生发展缓慢,潜伏期长,发病原因多样,经常伴有各种其他疾病等因素的干扰,可以用较单一的致病因子,在短时间内复制出典型的动物疾病模型,对于研究人类各种疾病的发生、发展规律和防治疾病疗效的机理等是极为重要的手段和工具。 二、动物模型的分类...https://sydwzx.gdpu.edu.cn/info/1027/1097.htm
4.深度学习图像处理04:图像分类模型训练实战——动物分类这篇博文不涉及理论知识,主要通过一个完整的深度学习模型训练流程,直观地了解深度学习图像分类任务。有关理论的部分,之前几篇博文已经涉及基础部分,之后也会对一些理论进行补充。 本文将结合代码,主要介绍三部分内容: 1.数据集划分 2. 模型训练 3. 模型评估 ...https://blog.csdn.net/qq_35284513/article/details/137606961
5.6种2型糖尿病动物模型中生化和病理改变的比较目的 比较6种常见2型糖尿病动物模型的生化指标和胰岛、肝脏的组织病理学改变。方法 大鼠、小鼠各32只,随机分为8组:大鼠对照组、大鼠高脂高糖+四氧嘧啶组、大鼠高脂高糖+链脲佐菌素组、ZDF大鼠组、小鼠对照组、db/db小鼠组、ob/ob小鼠组和KK-ay小鼠组。制备2型糖尿病模型:高脂高糖+四氧嘧啶组和高脂高糖+链...https://www.tiprpress.com/ywpjyj/article/abstract/20200911
6.慢性阻塞性肺疾病动物模型研究进展慢性阻塞性肺疾病(COPD)已成为人类健康第三大杀手,迫切需要深入研究揭示其病理分子机制及防治药物。一般COPD分为稳定期及急性加重期COPD(AECOPD),目前在该领域尚未有统一的COPD、AECOPD动物模型造模方法。通过查阅近年来各类与COPD、AECOPD动物模型相关的文献,从单因素诱导方法和复合因素诱导方法两个方面综述几种比较常用的...http://www.sxyxzz.com/oa/darticle.aspx?type=view&id=20220429
7.骨关节炎动物模型动物模型的分类:骨关节炎的动物模型可以大致分为两大类——自发性模型和人工诱导性模型。自发模型即实验动物未经过任何有意识的人为处理,在自然情况下所发生的骨关节炎症。人工诱发模型可通过手术和非手术方法诱导骨关节炎产生。自发模型主要是由于自身关节软骨退变形成骨关节炎。人工诱发模型主要有关节内手术法、关节腔...https://www.cqwestern.net/exper-i1402.html
8.分类:基本概念决策树与模型评估同样,分类模型的性能可以用错误率(error rate)来表示,其定义如下: 4.3决策树归纳 4.3.1决策树的工作原理 为了解释决策树分类的工作原理,考虑上一节中介绍的脊椎动物分类问题的简化版本。这里我们不把脊椎动物分为五个不同的物种,而只考虑两个类别:哺乳类动物和非哺乳类动物。假设科学家发现了一个新的物种,怎么判...https://www.jianshu.com/p/1106ee5558bc