基于 YOLOv8 的动物物种检测

点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达

7b40fb9fa19228c9ac2d75f1350d04ca.jpeg

简介

动物在车辆碰撞中被撞死,这种现象被称为路边死亡,是一个重要的全球问题,导致野生动物死亡率高。仅在美国,每天有超过100万种脊椎动物在车辆碰撞中丧生。全球范围内,这一数字每天超过550万,年总数超过20亿。最近的一项研究已经确定了易受危害的动物种群,例如豹(面临由路边死亡引发的绝种风险增加了83%)、巴西狼(增加了34%的绝种风险)、巴西猫(增加了0至75%的绝种风险)和南非鬣狗(增加了0至75%的绝种风险)。

野生动物车辆碰撞不仅威胁动物的安全,还可能伤害车辆乘客并造成损坏。为了解决这个问题,道路管理机构应该采取行动,例如设置公路围栏、野生动物穿越通道、逃生通道、夜间使用远光灯,以及在公路旁边使用动物传感器,以确保野生动物和人类的安全。

问题陈述

该项目旨在通过深度学习算法创建一个高效的计算机视觉模型。该模型将部署为检测系统的一部分,用于识别城市环境和高速公路上的野生动物。它将利用实时视觉来提醒人们可能与野生动物发生碰撞,增强安全措施。

数据描述

数据集1:https://www.kaggle.com/datasets/biancaferreira/african-wildlife 包括来自以前的实习生队伍的图像,这些图像来自Kaggle,这是一个开源数据存储库。该数据集包括四种不同动物物种的图像。此外,对于数据集1中的每个图像文件,都提供了以YOLO格式进行注释的文本文件。 

数据集2:https://www.kaggle.com/datasets/brsdincer/danger-of-extinction-animal-image-set 由Hamoye提供,托管在Kaggle上,包含了11种不同的动物物种的图像。值得注意的是,该数据集缺乏附带的包含注释的文本文件,而且其中相当一部分图像的分辨率较低。

数据集3:https://www.kaggle.com/datasets/antoreepjana/animals-detection-images-dataset/ 来自Kaggle,包括80种独特的动物物种的图像。该数据集包括Pascal格式的带有注释的文本文件,并提供高分辨率的图像供分析使用。 

数据预处理

我们通过从数据集2中仅选择高分辨率图像来提高图像质量,因为许多图像的分辨率较低,约为250像素。

对于标注,我们使用了Make Sense工具来为数据集2中选定的高分辨率图像进行标注。这对于有效训练模型是必要的。此外,我们还将数据集3中图像的标注从Pascal格式转换为YOLO格式,但仅适用于两个数据集中都存在的类别。

为了确保数据质量,我们删除了不适当的数据。具体而言,我们将豹类从数据集中排除,因为该类中的大多数图像包含其他类别。此外,我们从数据集3中加入了虎类。

数据探索性分析

该数据集包括10种不同的动物物种的图像,分别是斑马、犀牛、熊猫、狮子、大象、水牛、狐狸、老虎、猎豹和美洲豹。总共包括2,609张图像,每张图像都附带一个包含图像中物体注释的相应文本文件。

该数据集的平衡性很好,每种动物物种都得到了充分的代表。大多数图像仅包含一个或两个物体,尽管有些图像包含更多的物体。在物体检测算法中,一个重要因素是纵横比,标准差方面的中度可变性,从0.56到3.34。

每个图像中的物体数量 图像尺寸的统计数据

57f5b06407863ca6cb3a0dd03092cd0f.png

ced917700a749948def272f0f26bae3b.png

每个类别的图像数量

df343535f771800391b4d69e1f3b6a85.png

65de108d11b8df506760ba48f5dc5ee1.png

建模

我们采用You Only Look Once(YOLO)深度学习算法,具体是YOLOv8,构建了一个动物检测模型。YOLOv8提供了提高速度和准确性的增强型性能,同时为目标检测、实例分割和图像分类任务提供了统一的框架。YOLO模型通过单个网络在单次评估中有效地预测边界框和类别概率,实现了实时预测。

对于数据集管理,我们将数据集分为训练集、验证集和测试集,分割比例为0.7、0.15和0.15。使用Ultralytics包通过命令行界面实现了YOLOv8的模型。使用了预训练权重,指定任务为“检测”,模式为“训练”,模型为“yolov8n”。模型经过50个周期的训练,以达到所期望的性能。

bc641d520ede0b01d2bf0a2c84f5ad5b.png

评估

物体检测算法的性能通过均值平均精度(mAP)、F1-score和混淆矩阵等指标进行评估。

训练数据集上的模型性能

  • 下面的PR曲线显示了在0.5阈值下的所有类别的均值平均精度(AP)为0.95。因此,它表明模型在物体检测任务中表现良好。

66db2fe56ef66af62268fc60b500db74.jpeg

  • 每个训练周期包括两个阶段:训练阶段和验证阶段。

YOLOv8 目标检测模型在不同阈值下都获得了高精度、召回率、F1-score和mAP的优秀表现。

df32780de2ea1cc683c0072f57bfb189.jpeg

  • 在下面的FI-Confidence曲线中,训练F1-score是在0.556的置信度阈值下为0.93,召回率为0.915,精确率为0.944,表明在准确识别和分类训练数据集中的物体方面表现均衡。

211af7e8b6206bd879547f7e2f1038f5.jpeg

混淆矩阵

  • 训练集

76fae25e4307b763401f8fec88f5e47e.png

  • 测试集

c4e85f9893b52207f1febf69d365a010.jpeg

模型部署

该模型使用Streamlit在Hugging Face上部署。Streamlit是一个开源的应用程序框架。

b8fbce18aa33e25569e4866ce185f982.jpeg

1bf233072b07fbc6a8aad72bf4b07a36.jpeg

结论和建议

道路是人们和物资的重要基础设施,但当它们与自然相交时,可能会对野生动物造成伤害。我们的模型分析实时的公路图像,触发车辆中的传感器和警报,以警告司机检测到的物体。为了提高模型的准确性,我们扩展了训练数据集,涵盖了更广泛物种的范围。此外,这个模型在教育和农业方面也有应用。

来源:小白玩转python

声明:部分内容来源于网络,仅供读者学习、交流之目的文章版权归原作者所有。如有不妥,请联系删除。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于YOLOv8的细胞检测计数系统源码(部署教程+训练好的模型+各项评估指标曲线).zip 平均准确率:0.98 类别:RBC、WBC、platelets 【资源介绍】 1、ultralytics-main ultralytics-main为YOLOv8源代码,里面涵盖基于yolov8分类、目标检测额、姿态估计、图像分割四部分代码,我们使用的是detect部分,也就是目标检测代码 2、搭建环境 安装anaconda 和 pycharm windows系统、mac系统、Linux系统都适配 在anaconda中新建一个新的envs虚拟空间(可以参考博客来),命令窗口执行:conda create -n YOLOv8 python==3.8 创建完YOLOv8-GUI虚拟空间后,命令窗口执行:source activate YOLOv8 激活虚拟空间 然后就在YOLOv8虚拟空间内安装requirements.txt中的所有安装包,命令窗口执行:pip install -r requirements.txt 使用清华源安装更快 3、训练模型过程 进入到\ultralytics-main\ultralytics\yolo\v8\detect\文件夹下,datasets即为我们需要准备好的数据集,训练其他模型同理。 data文件夹下的bicycle.yaml文件为数据集配置文件,该文件为本人训练自行车检测模型时创建,训练其他模型,可自行创建。博文有介绍https://blog.csdn.net/DeepLearning_?spm=1011.2415.3001.5343 train.py中238行,修改为data = cfg.data or './bicycle.yaml' # or yolo.ClassificationDataset("mnist") 237行修改自己使用的预训练模型 若自己有显卡,修改239行,如我有四张显卡,即改成args = dict(model=model, data=data, device=”0,1,2,3“) 以上配置完成后运行train.py开始训练模型,训练完毕后会在runs/detect/文件夹下生成train*文件夹,里面包含模型和评估指标等 4、推理测试 训练好模型,打开predict.py,修改87行,model = cfg.model or 'yolov8n.pt',把yolov8n.pt换成我们刚才训练完生成的模型路径(在\ultralytics-main\ultralytics\yolo\v8\detect\runs\detect文件夹下),待测试的图片或者视频存放于ultralytics\ultralytics\assets文件夹, 运行predict.py即可,检测结果会在runs/detect/train文件夹下生成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值