项目要求

现有不同种类的鸟,每一类有5张图,要求是对每一幅图中的鸟进行准确定位,即用bounding box将图中的鸟框出来。演示如下:

实现步骤:

1、数据集的制作

使用Make Sense网站制作数据集,创建六类鸟的labels,并对图像进行标注,并将其导出为yolov所使用的文件形式

2、下载yolov5官方代码,并下载yolov5s.pt,将其作为预训练使用的权重。

3、在目录下新建一个mydata文件夹,在该文件夹下面新建如下图的文件夹


其中image的train和val文件夹中存放训练和预测的图片,labels下面存放制作好的数据集和用来预测的数据集(val下面的文件是后面运行过程中生成的),test文件夹下存放用来测试的图片。

4、在文件中放入yolov5s.pt预训练权重。

5、将文件打包上传到colab上(本计算机算力不够,故采用colab进行训练)

6、修改colab配置,选择使用GPU进行训练

7、使用指令解压文件

!unzip -uq birds.zip

8、使用指令切换工作目录,并安装yolov5所需要的依赖库

%cd /content/birds/yolov5-master/
!pip install -r requirements.txt

9、将data目录下的VOC.yaml复制一份,并将其命名为birds.yaml,并修改以下代码为自己的文件路径

train: /content/birds/yolov5-master/mydata/images/train  # train images (relative to 'path')  30 imagesval: /content/birds/yolov5-master/mydata/images/val# Classes
nc: 6  # number of classes
names:  ["egrets family", "redshank", "avocet", "plover", "egret", "night heron"]   # class names

10、复制models文件下的yolov5s.yaml,并将其命名为yolov5s_birds.yaml,并修改该文件下nc:6

11、修改train.py中的代码,先设置100轮进行训练,并且修改batch-size大小为32,充分调用GPU,以及修改相关路径

parser = argparse.ArgumentParser()parser.add_argument('--weights', type=str, default='/content/birds/yolov5-master/weighs/yolov5s.pt', help='initial weights path')parser.add_argument('--cfg', type=str, default='/content/birds/yolov5-master/models/yolov5s_birds.yaml', help='model.yaml path')parser.add_argument('--data', type=str, default='/content/birds/yolov5-master/data/birds.yaml', help='dataset.yaml path')parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch-low.yaml', help='hyperparameters path')parser.add_argument('--epochs', type=int, default=100)parser.add_argument('--batch-size', type=int, default=32, help='total batch size for all GPUs, -1 for autobatch')

12、使用指令进行训练

!python train.py


训练100轮后还行啦night heron的准确率不够,此时选择修改训练轮数为300,重新进行训练。

准确率得以提高。

13、启用tensorbord查看参数

tensorbord --logdir=runs/train

14、可以在本地进行测试,也可在colab进行测试,本次选择在本地进行测试,下载训练好的权重,放到本地的文件夹中。并修改detect.py中代码

parser = argparse.ArgumentParser()parser.add_argument('--weights', nargs='+', type=str, default='best.pt', help='model path(s)')parser.add_argument('--source', type=str, default='F:/birds/yolov5-master/mydata/test/', help='file/dir/URL/glob, 0 for webcam')

15、运行detect.py查看测试结果

测试结果

白鹭家族

红脚鹬

反嘴鹬

环颈珩

小白鹭

夜鹭

实验结果总结

总结:此项目是数字图像处理课程期末大实验,在实现过程中博主选择了使用yolov5来做,希望各位大佬批评指正

基于yolov5的鸟类图像准确识别相关推荐

  1. 基于YOLOv5的中式快餐店菜品识别系统

    基于YOLOv5的中式快餐店菜品识别系统[金鹰物联智慧食堂项目] 摘要 本文基于YOLOv5v6.1提出了一套适用于中式快餐店的菜品识别自助支付系统,综述了食品识别领域的发展现状,简要介绍了YOLOv ...

  2. 基于YOLOv5的舰船检测与识别系统(Python+清新界面+数据集)

    摘要:基于YOLOv5的舰船检测与识别系统用于识别包括渔船.游轮等多种海上船只类型,检测船舰目标并进行识别计数,以提供海洋船只的自动化监测和管理.本文详细介绍船舰类型识别系统,在介绍算法原理的同时,给 ...

  3. 基于Yolov5的草莓病虫害检测识别

    项目介绍 上一篇文章介绍了基于卷积神经网络的交通标志分类识别Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow),并且最后实现了一个pyqt5的GUI界面,并且还制作了一个简单 ...

  4. 基于Yolov5的交通标志检测识别设计

    项目介绍 上一篇文章介绍了基于卷积神经网络的交通标志分类识别Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow),并且最后实现了一个pyqt5的GUI界面,并且还制作了一个简单 ...

  5. 目标检测论文解读复现之六:基于YOLOv5的遥感图像舰船的检测方法

    目标检测论文解读复现 文章目录 目标检测论文解读复现 前言 一.摘要 二.网络模型及核心创新点 三.应用数据集 四.实验效果 五.实验结论 六.投稿期刊介绍 前言 此前出了目标改进算法专栏,但是对于应 ...

  6. 基于YOLOv5行人车辆跟踪检测识别计数系统源码+数据集,实现出/入分别计数

    yolov5 deepsort 行人 车辆 跟踪 检测 计数 下载地址:基于YOLOv5行人车辆跟踪检测识别计数系统源码+数据集 实现了 出/入 分别计数. 默认是 南/北 方向检测,若要检测不同位置 ...

  7. 毕业设计-基于深度学习的图像文字识别系统

    目录 前言 课题背景和意义 实现技术思路 一.基本原理 二.基于深度学习的图像文字识别技术 三.总结 实现效果图样例 最后 前言

  8. 基于特征融合的图像情感识别

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 作者信息: 中国农业银行研发中心  王哲 图像中蕴含着大量的语义信息,如何挖掘这些信息,探究出 ...

  9. 基于Python实现的图像文字识别OCR工具

    引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作.生活中常常会用到,比如票据.漫画.扫描件.照片的文本提取. 博主基于 PyQt + labelme + PaddleOCR 写了一个桌面 ...

最新文章

  1. 赠书:Redis 深度历险:核心原理与应用实践
  2. 分享时刻第二期:砍掉成本(1) 课后总结
  3. nodejs实践录:简单的log日志模块
  4. 升级指南:将 SharePoint Portal Server 2003 升级到 Office SharePoint Server 2007
  5. android获得手机号码代码
  6. C++之安装boost库
  7. 喜庆:上周阅读量5W,超过了99%的C友
  8. Unity2 学习 制作和动态加载预制体
  9. De4Dot+Reflector 支持多种反混淆
  10. 华为2019软件精英挑战赛-CodeCraft-2019大佬开源代码集合
  11. 方格网提取高程点lisp_基于VBA的道路横断面高程点提取方法研究
  12. 欧洲杯赛场“中国元素”引观众热议;万达两家酒店在延安红街开业窑洞房最具特色 | 美通社头条...
  13. 【系统篇 / 配置】❀ 06. 添加桌面图标 ❀ Windows Server 2016
  14. 问题解决:系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的about_Execution_Policies
  15. 监听队列中linux方法ss -a,Linux命令:ss命令
  16. 牛逼了啊!用 JS 实现了识别网页验证码的功能!
  17. [心得]google软件工程师技术准备
  18. WEBRTC + vue 建立连接 本地测试
  19. 浙大计算机考研分数线2016,2016年浙江大学考研复试分数线已经公布
  20. docker开放端口

热门文章

  1. 让Axmath自动插入公式编号并根据章节排号
  2. (xshell中)Linux服务器查看GPU的使用情况。
  3. NAS:以数据为中心的数据存储模式[zt]
  4. 进程、线程、纤程的区别
  5. MIUI8不用root更换字体的方法
  6. 移动端页面一键拨号、发送短信等功能
  7. 一本正经的聊聊手机主题颜色随手机壳颜色变化的几种方案
  8. UNIX TOOLBOX - 中文版
  9. 1、sensor see框架
  10. crypto-js aes 加解密