前言
YOLOv5 ?? 是COCO數(shù)據(jù)集上預(yù)處理的一系列對(duì)象檢測架構(gòu)和模型,代表Ultralytics對(duì)未來視覺人工智能方法的開源研究,融合了數(shù)千小時(shí)研究和開發(fā)過程中積累的經(jīng)驗(yàn)教訓(xùn)和最佳實(shí)踐。
本文用來記錄第一次使用 YOLOv5實(shí)現(xiàn):
- 視頻目標(biāo)檢測
- 攝像頭目標(biāo)檢測
博主所使用的環(huán)境是win10 + Anaconda的虛擬環(huán)境(Python>=3.7.0,PyTorch>=1.7),軟件環(huán)境是Jupyter Notebook
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、YOLOv5
下載地址:https://github.com/KZwyj/yolov5
使用YOLOv5的模型可以識(shí)別以下物體類別等:
'dog','person','tie','cat','tv','car','meatballs','marinara sauce','tomato soup','chicken noodle soup','french onion soup','chicken breast','ribs','pulled pork',''cavity'
同時(shí)也可以自定義數(shù)據(jù)集并訓(xùn)練,有關(guān)于自定義數(shù)據(jù)集這部分后期再進(jìn)行講解。
二、環(huán)境要求
基本環(huán)境要求:
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
其他(不安裝也不會(huì)影響運(yùn)行):
tensorboard>=2.4.1
pandas>=1.1.4
seaborn>=0.11.0
ipython # interactive notebook
psutil # system utilization
thop>=0.1.1 # FLOPs computation
二、安裝環(huán)境
在虛擬環(huán)境中安裝以上庫:
cd yolov5
pip install -r requirements.txt # install
測試YOLOv5:
model = torch.hub.load("ultralytics/yolov5","yolov5s")
出現(xiàn)Adding AutoShape…提示,即為YOLOv5模型(yolov5s)加載成功:
然后進(jìn)行測試(圖片目標(biāo)檢測):
img = "https://raw.githubusercontent.com/ultralytics/yolov5/master/data/images/zidane.jpg"
results = model(img)
results.print()
顯示檢測結(jié)果信息:
顯示圖片:
%matplotlib inline
# squeeze從數(shù)組的形狀中刪除單維度條目,即把shape中為1的維度去掉
plt.imshow(np.squeeze(results.render()))
plt.show()
四、視頻目標(biāo)檢測
從前面我們知道,我們已經(jīng)獲取到了YOLOv5模型,下面使用opencv,加載視頻并進(jìn)行目標(biāo)檢測。
1、導(dǎo)入庫
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)
我所加載的視頻是放在當(dāng)前目錄的videoes文件夾下,可以根據(jù)需要修改video_path為你視頻存放位置。
3、開始目標(biāo)檢測
while cap.isOpened():
# 參數(shù)ret 為True 或者False,代表有沒有讀取到圖片幀
# 第二個(gè)參數(shù)frame表示截取到一幀的圖片
ret,frame = cap.read()
# 將圖片幀輸入模型
results = model(frame)
# 輸出目標(biāo)檢測結(jié)果到屏幕
cv2.imshow('YOLO',np.squeeze(results.render()))
# 退出
if cv2.waitKey(10) & 0xFF == ord('q'):
break
4、關(guān)閉和釋放
cap.release()
cv2.destroyAllWindows()
五、攝像頭目標(biāo)檢測
攝像頭目標(biāo)檢測和視頻目標(biāo)檢測區(qū)別不大,只需要修改:文章來源:http://www.zghlxwxcb.cn/news/detail-492863.html
cap = cv2.VideoCapture(0)
六、結(jié)果展示
文章來源地址http://www.zghlxwxcb.cn/news/detail-492863.html
到了這里,關(guān)于YOLOv5實(shí)現(xiàn)目標(biāo)檢測的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!