使用yolov5实现图片视频的目标检测

Albert_yeager Albert_yeager     2023-01-30     777

关键词:

0.推断的准备工作

接下来我将从官方代码开始,一步一步展示如何进行图片、视频识别

首先从GitHub下载官方代码(也可以从下面链接获取):

链接:https://pan.baidu.com/s/16wzV899D90TY2Xwhx4TwhA

提取码:vzvj

  1. 将环境切换到之前配置完成的yolo环境

(你的环境名可能和我不一样)

  1. 实现图片目标检测

可以看到 '--weights' 参数(参数解读详见4.a)的默认值为'yolov5s.pt'这表明运行代码时使用yolov5s的权重参数进行推断。

这里有两种运行办法,一种是直接运行,他会自动到外网上下载模型,如果网络不好的话可能会报错;另一种是先下载把模型文件放到detect.py的同级目录下,运行即可。

yolov5s.pt模型文件链接:

链接:https://pan.baidu.com/s/1-1F_LcVKZRbbytotm9GKjw

提取码:tbby

运行成功!

1是对模型的概要,可以看到模型包括224层,7266973个参数;

2路径是'--source'参数(参数解读详见4.b)的默认值,在该路径下存放待识别图片(可以添加自己的图片,常见的图片格式均可进行识别)

3是推断结果存放路径,在代码运行后可以看到结果

效果如下:

恭喜你,成功啦!(≧∇≦)/

这是一个值得庆祝的时刻,就像是学习C、python时的“hello world!”,学习单片机时的流水灯,这表明我们已经进入yolo目标识别的大门。我认为,这样阶段性的正反馈,是求学路上最迷人风景之一

(๑•̀ㅂ•́)و✧

  1. 实现视频目标检测

完成图片目标检测后,视频检测基本不会有什么问题。在工程的data文件夹下新建video文件夹,在里面存放要识别的视频(也可以放在其他位置,注意修改路径即可)

在代码中更改'--source'参数的默认值运行即可。

parser.add_argument('--source', type=str, default='data/video', help='source')  # file/folder, 0 for webcam

运行成功!

...

视频被切成797张图片,在全部识别后重新合成一个视频,并存在runs\\detect\\exp2目录下

可以看到效果还是非常好的。

  1. 对detect.py中常用参数的解读

  1. '--weights'

这个就是指定网络权重的路径,默认是官方的yolov5s.pt(官方还提供了很多其他的权重模型,例如yolov5m.pt,yolov5n.pt...如果想详细了解,可以看GitHub官方工程Pretrained Checkpoints那一栏

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

如果想用其他的官方模型,由于运行代码自动下载比较慢,所以建议先从官网下载好模型放到detect.py同级目录下,然后将'--weights'默认值改成对应模型的名称,直接运行即可。

注意,这里有个细节,如果从非官网途径下载模型,一定要注意.pt文件的名称,有些文件名末尾会多一个空格,记得去掉他,否则因为代码中默认值名称和模型文件名称不匹配(差一个空格),还是会自动去外网下模型。

表面看上去没问题

实际多了一个空格

要把这个空格去掉

如果要使用自己训练的模型,更改默认值为模型路径即可(之后的文章会讲)。

  1. '--source'参数

这个参数的默认值是网络输入的路径,默认指定的是文件夹,也可以指定具体的文件,如直接锁定到某个图片 'data/images/bus.jpg' 那么运行时只会识别这一张图片,images文件夹下的其他图片/视频不会参与识别。

  1. '--conf-thres'参数

这个参数我通常理解为,目标可能性阈值,低于默认值(如上图是0.25)的目标不会被框出来。我通常将其作为避免误识别的一种手段,因为只要数据集采集合理,经过训练,假目标的可能性通常低于真目标,只要将阈值设在两者之间,就能滤去假目标的识别框,这比 重新采集数据集、调网络参数、重新训练 要容易的多。

'--conf-thres'默认值为0.25

'--conf-thres'默认值为0.65

你们的每个赞都能让我开心好几天(≧∇≦)/

基于yolov5的疲劳驾驶检测系统(python+清新界面+数据集)(代码片段)

基于YOLOv5的疲劳驾驶检测系统使用深度学习技术检测常见驾驶图片、视频和实时视频中的疲劳行为,识别其闭眼、打哈欠等结果并记录和保存,以防止交通事故发生。本文详细介绍疲劳驾驶检测系统实现原理的同时,给出Python的... 查看详情

视频实时行为检测——基于yolov5+deepsort+slowfast算法(代码片段)

文章目录前言一、核心功能设计二、核心实现步骤1.yolov5实现目标检测2.deepsort实现目标跟踪3.slowfast动作识别三、核心代码解析1.参数2.主函数3.将结果保存成视频总结前言前段时间打算做一个目标行为检测的项目,翻阅了大量... 查看详情

视频实时行为检测——基于yolov5+deepsort+slowfast算法(代码片段)

文章目录前言一、核心功能设计二、核心实现步骤1.yolov5实现目标检测2.deepsort实现目标跟踪3.slowfast动作识别三、核心代码解析1.参数2.主函数3.将结果保存成视频总结前言前段时间打算做一个目标行为检测的项目,翻阅了大量... 查看详情

如何使用django结合websocket进行实时目标检测呢?以yolov5为例,实现:fps25+(2:目标检测与发送端)

...通信后端Djangochannel简要解析与ASGI基本工作原理Djangochannel使用 查看详情

如何使用django结合websocket进行实时目标检测呢?以yolov5为例,实现:fps25+(2:目标检测与发送端)

文章大纲背景与前置知识Django实时通信后端目标检测目标检测YOLOV5参数的配置文件目标检测的YOLOV5detect.py的封装YOLOV5detect.py的精简WebSocket发送详解发送端核心详解问题:为什么发送一会就回中断?pythonwebsockets断线重连实体的定... 查看详情

智能生活垃圾检测与分类系统(ui界面+yolov5+训练数据集)(代码片段)

...检测速度快、识别精度高。博文提供了完整的Python代码和使用教程,适合新入门的朋友参考,完整代码资源文件请转至文末的下载链接。摘要:智能生活垃圾检测与分类系统用于日常生活垃圾的智能监测与分类,通过图片、视频... 查看详情

手把手教你使用yolov5训练自己的目标检测模型-口罩检测-视频教程(代码片段)

手把手教你使用YOLOV5训练自己的目标检测模型大家好,这里是肆十二(dejahu),好几个月没有更新了,这两天看了一下关注量,突然多了1k多个朋友关注,想必都是大作业系列教程来的小伙伴。既然有... 查看详情

手把手教你使用yolov5训练自己的目标检测模型-口罩检测-视频教程(代码片段)

手把手教你使用YOLOV5训练自己的目标检测模型大家好,这里是肆十二(dejahu),好几个月没有更新了,这两天看了一下关注量,突然多了1k多个朋友关注,想必都是大作业系列教程来的小伙伴。既然有... 查看详情

目标检测yolov5在android上的部署(代码片段)

前言本篇博文用来研究YOLOv5在Android上部署的例程主要参考的是Pytorch官方提供的Demo:https://github.com/pytorch/android-demo-app/tree/master/PyTorchDemoApp功能简述App主页如下图所示:主要功能:切换测试图片在程序中直接指定三张(... 查看详情

目标检测英雄联盟能用yolov5实时目标检测了支持onnx推理(代码片段)

目录一、项目介绍二、项目结构三、准备数据1.数据标注2.数据转换格式四、执行训练1.anchors文件2.标签文件3.预训练模型4.训练数据5.修改配置6.执行训练五、执行预测1.检测图片2.检测视频3.heatmap五、转换onnx1.导出onnx文件2.检测图... 查看详情

目标识别yolov5针对小目标检测的改进模型/添加帧率检测(代码片段)

...码修改——针对小目标识别所提到的一种改进方案。我所使用的是YOLOv5-5.0版本,数据集采用VisDrone数据集。检测头改进模型方面的修改:作者再模 查看详情

深度学习目标检测---使用yolov5训练自己的数据集模型(windows系统)(代码片段)

...教程和一些前辈的博客,实现了深度学习目标检测--使用yolov5网络训练自己的数据集并实现了对目标的识别。这篇博客我也是参考别人的博客教程,复现了使用yolov5训练自己的数据集,我呢主要是想记录下我自己的操... 查看详情

基于语义分割groundtruth(gt)转换yolov5目标检测标签(路面积水检测例子)(代码片段)

...测格式转换呢?查遍全网没有很好的方法,因此使用opencv自己写了一个,检验效果还不错。这里的例子是基于极市平台的路面积水检测给出的数据集完成,由于平台只给了分割的示例数据,因此想使用yolo进行... 查看详情

深度学习目标检测:yolov5实现车辆检测(含车辆检测数据集+训练代码)(代码片段)

深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码) 目录YOLOv5实现车辆检测(含车辆检测数据集+训练代码)1.前言2.车辆检测数据集说明(1)车辆检测数据集(2)自定义数据集3.基于YOLOv5... 查看详情

深度学习目标检测:yolov5实现车辆检测(含车辆检测数据集+训练代码)(代码片段)

深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码) 目录YOLOv5实现车辆检测(含车辆检测数据集+训练代码)1.前言2.车辆检测数据集说明(1)车辆检测数据集(2)自定义数据集3.基于YOLOv5... 查看详情

深度学习目标检测:yolov5实现红绿灯检测(含红绿灯数据集+训练代码)(代码片段)

深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)1.前言本篇博客,我们将手把手教你搭建一个基于YOLOv5的红绿灯目标检测项目。目前,基于YOLOv5s的红绿灯检测精度平均值mAP_0.5=0.93919,mAP_0... 查看详情

深度学习目标检测:yolov5实现红绿灯检测(含红绿灯数据集+训练代码)(代码片段)

深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)1.前言本篇博客,我们将手把手教你搭建一个基于YOLOv5的红绿灯目标检测项目。目前,基于YOLOv5s的红绿灯检测精度平均值mAP_0.5=0.93919,mAP_0... 查看详情

基于yolov5的水下海洋目标检测

...本文提出了一种基于YOLOv5的水下海洋目标检测方法,使用数据增强方法进行了大量实验,并与其他方法进行了对比,实现了在检测各种不同的海洋环境和水下目标中都取得较高的准确率,具有较好的泛化能力。关... 查看详情