YOLOv5实现目标检测

3 篇文章 0 订阅
2 篇文章 0 订阅


前言

YOLOv5 🚀 是COCO数据集上预处理的一系列对象检测架构和模型,代表Ultralytics对未来视觉人工智能方法的开源研究,融合了数千小时研究和开发过程中积累的经验教训和最佳实践。
在这里插入图片描述
本文用来记录第一次使用 YOLOv5实现:

  1. 视频目标检测
  2. 摄像头目标检测

博主所使用的环境是win10 + Anaconda的虚拟环境(Python>=3.7.0,PyTorch>=1.7),软件环境是Jupyter Notebook


提示:以下是本篇文章正文内容,下面案例可供参考

一、YOLOv5

下载地址:https://github.com/KZwyj/yolov5
使用YOLOv5的模型可以识别以下物体类别等:

'dog','person','tie','cat','tv','car','meatballs','marinara sauce','tomato soup','chicken noodle soup','french onion soup','chicken breast','ribs','pulled pork',''cavity'

同时也可以自定义数据集并训练,有关于自定义数据集这部分后期再进行讲解。

二、环境要求

基本环境要求:

matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.1
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.64.0

其他(不安装也不会影响运行):

tensorboard>=2.4.1
pandas>=1.1.4
seaborn>=0.11.0
ipython # interactive notebook
psutil # system utilization
thop>=0.1.1 # FLOPs computation

二、安装环境

在虚拟环境中安装以上库:

cd yolov5
pip install -r requirements.txt  # install

测试YOLOv5:

model = torch.hub.load("ultralytics/yolov5","yolov5s")

出现Adding AutoShape…提示,即为YOLOv5模型(yolov5s)加载成功:
在这里插入图片描述

然后进行测试(图片目标检测):

img = "https://raw.githubusercontent.com/ultralytics/yolov5/master/data/images/zidane.jpg"
results = model(img)
results.print()

显示检测结果信息:
在这里插入图片描述

显示图片:

%matplotlib inline
# squeeze从数组的形状中删除单维度条目,即把shape中为1的维度去掉
plt.imshow(np.squeeze(results.render()))
plt.show()

在这里插入图片描述

四、视频目标检测

从前面我们知道,我们已经获取到了YOLOv5模型,下面使用opencv,加载视频并进行目标检测。

1、导入库

import torch
from matplotlib import pyplot as plt
import numpy as np
import cv2

2、获取输入视频

video_path = "./videoes/traffic_evening.mp4"
cap = cv2.VideoCapture(video_path)

我所加载的视频是放在当前目录的videoes文件夹下,可以根据需要修改video_path为你视频存放位置。

3、开始目标检测

while cap.isOpened():
    # 参数ret 为True 或者False,代表有没有读取到图片帧
    # 第二个参数frame表示截取到一帧的图片
    ret,frame = cap.read()
    # 将图片帧输入模型
    results = model(frame)
    # 输出目标检测结果到屏幕
    cv2.imshow('YOLO',np.squeeze(results.render()))
    # 退出
    if cv2.waitKey(10) & 0xFF == ord('q'):
        break

4、关闭和释放

cap.release()
cv2.destroyAllWindows()

五、摄像头目标检测

摄像头目标检测和视频目标检测区别不大,只需要修改:

cap = cv2.VideoCapture(0)

六、结果展示

在这里插入图片描述


  • 9
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值