深度学习卷积神经图像分类实现鸟类识别含训练代码和鸟类数据集(支持repVGG,googlenet, resnet, inception, mobilenet)

  行业动态     |      2025-06-14 09:58

目录

Pytorch实现鸟类识别(含训练代码和鸟类数据集)

1. 前言

2. 鸟类数据集

(1)Bird-Dataset26

(2)自定义数据集

3. 鸟类分类识别模型训练

(1)项目安装

(2)准备Train和Test数据

(3)配置文件:?config.yaml?

(4)开始训练

(5)可视化训练过程

(6)一些优化建议

(7) 一些运行错误处理方法:

4. 鸟类分类识别模型测试效果

5.项目源码下载

设计项目案例演示地址: 链接

毕业设计代做选题指导项目方向涵盖:

 

1. 前言

本项目将采用深度学习的方法,搭建一个鸟类分类识别的训练和测试项目,实现一个简单的鸟类图像分类识别系统。项目收集了26种鸟类品种Bird-Dataset26,约有20000+图片数据;在鸟类数据集Bird-Dataset26上,基于ResNet18的鸟类分类识别,训练集的Accuracy在98%左右,测试集的Accuracy在95%左右,骨干网络,可支持googlenet, resnet[18,34,50], inception_v3,mobilenet_v2等常用模型。
模型input sizeTest准确率****mobilenet_v2224×22495.0000%googlenet224×22496.1538%resnet18224×22495.9615%

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2. 鸟类数据集

(1)Bird-Dataset26

项目收集了多个鸟类品种的数据集,命名为Bird-Dataset26,该数据集共收集了26 种鸟类品种,包含常见的鹰,孔雀等鸟种类,总数据超过2万张图片,平均每个种类有约有700+的图片;数据分为train和test,其中训练集train共有20000+张鸟类图像,测试集test共有500+张鸟类图像,可满足深度学习鸟类品种分类识别的需求。

Bird-Dataset26,部分数据是通过网上爬取的,存在部分错误的图片,尽管鄙人已经清洗一部分了,但还是建议你,训练前,再次清洗数据集,不然会影响模型的识别的准确率。鸟类图片数据,可以在这里检索:中国观鸟记录中心

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Bird-Dataset26包含的26种鸟类品种,类别名称分别是:

八色鸫
白鹡鸰
白胸翡翠
白胸苦恶鸟
斑头绿拟啄木
赤颈鹤
赤麻鸭
赤胸拟啄木鸟
丛林鸫鹛
戴胜鸟
凤头麦鸡
灰鹡鸰
灰犀鸟
家八哥
家鸦
孔雀
蓝胸佛法僧
绿喉蜂虎
牛背鹭
普通翠鸟
普通缝叶莺
普通朱雀
肉垂麦鸡
山鹡鸰

棕腹树鹊

(2)自定义数据集

如果需要新增类别数据,或者需要自定数据集进行训练,可以如下进行处理:

  • Train和Test数据集,要求相同类别的图片,放在同一个文件夹下;且子目录文件夹命名为类别名称,如

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 类别文件:一行一个列表:?class_name.txt? (最后一行,请多回车一行)
 
  • 修改配置文件的数据路径:?config.yaml?
 

3. 鸟类分类识别模型训练

本项目以Bird-Dataset26鸟类数据集为训练和测试样本。

(1)项目安装

整套工程基本框架结构如下:

 

项目依赖python包请参考requirements.txt,使用pip安装即可:

 
(2)准备Train和Test数据

下载鸟类品种分类数据集,Train和Test数据集,要求相同类别的图片,放在同一个文件夹下;且子目录文件夹命名为类别名称。

数据增强方式主要采用:** 随机裁剪,随机翻转,随机旋转,颜色变换**等处理方式

 
(4)开始训练

整套训练代码非常简单操作,用户只需要将相同类别的数据放在同一个目录下,并填写好对应的数据路径,即可开始训练了。

 

训练完成后,在鸟类品种数据集Bird-Dataset26上,训练集的Accuracy在98%左右,测试集的Accuracy在95%左右,骨干网络,可支持googlenet, resnet[18,34,50], inception_v3,mobilenet_v2等常用模型,用户可以自行选择模型训练。
模型input sizeTest准确率****mobilenet_v2224×22495.0000%googlenet224×22496.1538%resnet18224×22495.9615%

(5)可视化训练过程

训练过程可视化工具是使用Tensorboard,使用方法,在终端输入:

 

可视化效果
?
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
?
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(6)一些优化建议

如果想进一步提高准确率,可以尝试:

  • 最重要的: 清洗数据集,鸟类品种数据集Bird-Dataset26,大部分数据是通过网上爬取的,存在部分错误的图片,尽管鄙人已经清洗一部分了,但还是建议你,训练前,再次清洗数据集,不然会影响模型的识别的准确率。+ 使用不同backbone模型,比如resnet50或者更深,参数量更大的模型+ 增加数据增强: 已经支持:** 随机裁剪,随机翻转,随机旋转,颜色变换等数据增强方式,可以尝试诸如mixup,CutMix**等更复杂的数据增强方式+ 样本均衡: 建议进行样本均衡处理,避免长尾问题+ 调超参: 比如学习率调整策略,优化器(SGD,Adam等)+ 损失函数: 目前训练代码已经支持:交叉熵,LabelSmoothing,可以尝试FocalLoss等损失函数
(7) 一些运行错误处理方法:
  • 项目不要出现含有中文字符的目录文件或路径,否则会出现很多异常!!!!!!!! + cannot import name ‘load_state_dict_from_url’

由于一些版本升级,会导致部分接口函数不能使用,请确保版本对应

torch==1.7.1

torchvision==0.8.2

或者将对应python文件将

 

修改为:

 

4. 鸟类分类识别模型测试效果

demo.py文件用于推理和测试模型的效果,填写好配置文件,模型文件以及测试图片即可运行测试了

 
 

运行测试结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

pred_index:[‘灰犀鸟’],pred_score:[0.5273883]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5.项目代做

设计项目案例演示地址: 链接

毕业设计代做选题指导项目方向涵盖: