如何使用 Yolo v5 對象檢測算法進行自定義對象檢測
介紹
在本文中,將向你解釋如何使用 Yolo v5 算法檢測和分類60+個不同類型的道路交通標志。
我們將從非;A的開始,涵蓋每個步驟,如準備數(shù)據(jù)集、訓練和測試等。在本文中,我們將使用 Windows 10系統(tǒng)。
讓我們更多地討論 YOLO 及其架構。
YOLO 是You Only Look Once的首字母縮寫。我們使用的是Ultralytics于2020年6月推出的版本 5,它是目前可用的最先進的目標識別算法。
YOLOv5 是一種新穎的卷積神經(jīng)網(wǎng)絡(CNN),可以非常準確地實時檢測對象。這種方法使用單個神經(jīng)網(wǎng)絡來處理整個圖片,然后將其分成多個部分并預測每個部分的邊界框和概率。這些邊界框由預期概率加權。
該方法“只看一次”圖像,因為它僅在一次前向傳播通過神經(jīng)網(wǎng)絡后進行預測。然后在非最大抑制之后傳遞檢測到的項目(這確保對象檢測算法只識別每個對象一次)。
它的架構主要由三部分組成,即:
1. Backbone: Backbone 主要用于從輸入圖像中提取關鍵特征。CSP(Cross Stage Partial Networks)在 YOLO v5 中用作主干,以從輸入圖像中提取豐富的有用特征。
2. Neck: Neck 主要用于創(chuàng)建特征金字塔。當涉及到對象縮放時,特征金字塔有助于模型泛化。它有助于識別不同大小和比例的同一物體。特征金字塔在幫助模型有效地處理之前看不見的數(shù)據(jù)方面是非常有益的。其他模型,如FPN、BiFPN和PANet,使用各種各樣的特征金字塔方法。PANet 在 YOLO v5 中用作 Neck 來獲取特征金字塔。
3. Head: 模型Head主要負責最后的檢測步驟。它使用錨框來構建具有類別概率、對象性分數(shù)和邊界框的最終輸出向量。
YOLO v5 模型的頭部與之前的 YOLO V3 和 V4 版本相同。
Yolo v5 的優(yōu)缺點
· 它比 YOLOv4 小 88%(27 MB vs 244 MB)
· 它比 YOLOv4 快 180%(140 FPS vs 50 FPS)
· 它在同一任務上大致與 YOLOv4 一樣準確(0.895 mAP vs 0.892 mAP)
· 但主要的問題是YOLOv5沒有像其他YOLO版本一樣發(fā)布官方論文。此外,YOLO v5 仍在開發(fā)中,我們會經(jīng)常收到Ultralytics 的更新,未來開發(fā)者可能會更新一些設置。
目錄
1.在 Windows 10 中設置虛擬環(huán)境。
2.克隆 Yolo v5 的 GitHub 倉庫。
3.數(shù)據(jù)集的準備和預處理。
4.訓練模型。
5.預測和現(xiàn)場測試。
創(chuàng)建虛擬環(huán)境
我們將首先通過在 Windows 命令提示符中運行該命令來設置虛擬環(huán)境
1.安裝Virtualenv(運行以下命令安裝虛擬環(huán)境)
$ pip install virtualenv
2.創(chuàng)建環(huán)境(運行以下命令創(chuàng)建虛擬環(huán)境)
$ py -m venv YoloV5_VirEnv
3.使用該命令激活它(運行以下命令以激活該環(huán)境)
$ YoloV5_VirEnvScriptsactivate
你也可以使用停用它(如果要停用該環(huán)境,請運行以下命令)
$ deactivate
設置 YOLO
激活虛擬環(huán)境后,克隆這個由Ultralytics創(chuàng)建和維護的 GitHub 存儲庫:
$ git clone https://github.com/ultralytics/yolov5
$ cd yolov5
目錄結構
yolov5/
.github/
data/
models/
utils/
.dockerignore
.gitattributes
.gitignore
.pre-commit-config.yaml
CONTRIBUTING.md
detect.py
Dockerfileexport.py
hubconf.py
LICENSE
README.md
requirements.txt
setup.cfg
train.py
tutorial.ipynb
val.py
安裝必要的庫:首先,我們將安裝做圖像處理所需的所有必要的庫(OpenCV &Pillow),圖像分類 (Tensorflow&PyTorch) , 進行矩陣操作(Numpy)
$ pip install -r requirements.txt
數(shù)據(jù)集的準備
從該鏈接下載完整的標記數(shù)據(jù)集:
然后解壓 zip 文件并將其移動到 yolov5/ 目錄。
1144images_dataset/
train/
test/
在yolov5/目錄中創(chuàng)建一個名為 data.yaml 的文件 ,并將以下代碼粘貼到其中。
該文件將包含你的標簽以及訓練和測試數(shù)據(jù)集的路徑。
我們將使用總共 77 個不同的類
使用 Yolo v5 訓練模型
現(xiàn)在,運行該命令以最終訓練你的數(shù)據(jù)集。你可以根據(jù) PC 的規(guī)格更改批次大小。訓練時間將取決于你電腦的性能,最好使用 Google Colab。
你還可以訓練不同版本的 YOLOv5 算法,
所有這些都將采用不同的計算能力,并提供 FPS(每秒幀數(shù))和精度的不同組合。
在本文中,我們將使用YOLOv5s版本,因為它是最簡單的。
$ python train.py --data data.yaml --cfg yolov5s.yaml --batch-size 8 --name Model
現(xiàn)在內部運行 runs/train/Model/,你將找到最終訓練好的模型。
best.pt 包含用于最終檢測和分類的最終模型。
results.txt 文件將包含你在每個時期實現(xiàn)的準確度和損失的摘要。
其他圖像包含一些繪圖和圖表,可用于更多分析。
Model Yolo v5 的測試
將你的 yolov5/目錄移到別處,并克隆那個存儲庫。
$ git clone https://github.com/aryan0141/RealTime_Detection-And-Classification-of-TrafficSigns
$ cd RealTime_Detection-And-Classification-of-TrafficSigns
目錄結構
現(xiàn)在復制我們在上面訓練的模型并將其粘貼到此目錄中。
注意:我已經(jīng)在Model/目錄中包含了一個經(jīng)過訓練的模型,但你也可以將其替換為經(jīng)過訓練的模型。移動到代碼所在的目錄中。
$ cd Codes/
將你的視頻或圖像放在**Test*目錄中。我還提供了一些示例視頻和圖像供你參考。
用于測試圖像
$ python detect.py --source ../Test/test1.jpeg --weights ../Model/weights/best.pt
用于測試視頻
$ python detect.py --source ../Test/vidd1.mp4 --weights ../Model/weights/best.pt
對于網(wǎng)絡攝像頭
$ python detect.py --source 0 --weights ../Model/weights/best.pt
你的最終圖像和視頻存儲在Results/目錄中。
示例圖像
每秒幀數(shù)(FPS)取決于你使用的 GPU。我在 Nvidia MX 350 2GB 顯卡上獲得了大約 50FPS
GitHub
這是 Github, 可以找到本文中使用的完整代碼。
原文標題 : 如何使用 Yolo v5 對象檢測算法進行自定義對象檢測
請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
-
10月31日立即下載>> 【限時免費下載】TE暖通空調系統(tǒng)高效可靠的組件解決方案
-
即日-11.13立即報名>>> 【在線會議】多物理場仿真助跑新能源汽車
-
11月28日立即報名>>> 2024工程師系列—工業(yè)電子技術在線會議
-
12月19日立即報名>> 【線下會議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
-
即日-12.26火熱報名中>> OFweek2024中國智造CIO在線峰會
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍皮書》
推薦專題
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結構工程師 廣東省/深圳市