如何使用 Yolo v5 對象檢測算法進行自定義對象檢測
介紹
在本文中,將向你解釋如何使用 Yolo v5 算法檢測和分類60+個不同類型的道路交通標志。
我們將從非;A的開始,涵蓋每個步驟,如準備數據集、訓練和測試等。在本文中,我們將使用 Windows 10系統(tǒng)。
讓我們更多地討論 YOLO 及其架構。
YOLO 是You Only Look Once的首字母縮寫。我們使用的是Ultralytics于2020年6月推出的版本 5,它是目前可用的最先進的目標識別算法。
YOLOv5 是一種新穎的卷積神經網絡(CNN),可以非常準確地實時檢測對象。這種方法使用單個神經網絡來處理整個圖片,然后將其分成多個部分并預測每個部分的邊界框和概率。這些邊界框由預期概率加權。
該方法“只看一次”圖像,因為它僅在一次前向傳播通過神經網絡后進行預測。然后在非最大抑制之后傳遞檢測到的項目(這確保對象檢測算法只識別每個對象一次)。
它的架構主要由三部分組成,即:
1. Backbone: Backbone 主要用于從輸入圖像中提取關鍵特征。CSP(Cross Stage Partial Networks)在 YOLO v5 中用作主干,以從輸入圖像中提取豐富的有用特征。
2. Neck: Neck 主要用于創(chuàng)建特征金字塔。當涉及到對象縮放時,特征金字塔有助于模型泛化。它有助于識別不同大小和比例的同一物體。特征金字塔在幫助模型有效地處理之前看不見的數據方面是非常有益的。其他模型,如FPN、BiFPN和PANet,使用各種各樣的特征金字塔方法。PANet 在 YOLO v5 中用作 Neck 來獲取特征金字塔。
3. Head: 模型Head主要負責最后的檢測步驟。它使用錨框來構建具有類別概率、對象性分數和邊界框的最終輸出向量。
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ā)中,我們會經常收到Ultralytics 的更新,未來開發(fā)者可能會更新一些設置。
目錄
1.在 Windows 10 中設置虛擬環(huán)境。
2.克隆 Yolo v5 的 GitHub 倉庫。
3.數據集的準備和預處理。
4.訓練模型。
5.預測和現場測試。
創(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
數據集的準備
從該鏈接下載完整的標記數據集:
然后解壓 zip 文件并將其移動到 yolov5/ 目錄。
1144images_dataset/
train/
test/
在yolov5/目錄中創(chuàng)建一個名為 data.yaml 的文件 ,并將以下代碼粘貼到其中。
該文件將包含你的標簽以及訓練和測試數據集的路徑。
我們將使用總共 77 個不同的類
使用 Yolo v5 訓練模型
現在,運行該命令以最終訓練你的數據集。你可以根據 PC 的規(guī)格更改批次大小。訓練時間將取決于你電腦的性能,最好使用 Google Colab。
你還可以訓練不同版本的 YOLOv5 算法,
所有這些都將采用不同的計算能力,并提供 FPS(每秒幀數)和精度的不同組合。
在本文中,我們將使用YOLOv5s版本,因為它是最簡單的。
$ python train.py --data data.yaml --cfg yolov5s.yaml --batch-size 8 --name Model
現在內部運行 runs/train/Model/,你將找到最終訓練好的模型。
best.pt 包含用于最終檢測和分類的最終模型。
results.txt 文件將包含你在每個時期實現的準確度和損失的摘要。
其他圖像包含一些繪圖和圖表,可用于更多分析。
Model Yolo v5 的測試
將你的 yolov5/目錄移到別處,并克隆那個存儲庫。
$ git clone https://github.com/aryan0141/RealTime_Detection-And-Classification-of-TrafficSigns
$ cd RealTime_Detection-And-Classification-of-TrafficSigns
目錄結構
現在復制我們在上面訓練的模型并將其粘貼到此目錄中。
注意:我已經在Model/目錄中包含了一個經過訓練的模型,但你也可以將其替換為經過訓練的模型。移動到代碼所在的目錄中。
$ 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
對于網絡攝像頭
$ python detect.py --source 0 --weights ../Model/weights/best.pt
你的最終圖像和視頻存儲在Results/目錄中。
示例圖像
每秒幀數(FPS)取決于你使用的 GPU。我在 Nvidia MX 350 2GB 顯卡上獲得了大約 50FPS
GitHub
這是 Github, 可以找到本文中使用的完整代碼。
原文標題 : 如何使用 Yolo v5 對象檢測算法進行自定義對象檢測

請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達AI統(tǒng)治的開始
- 2 北電數智主辦酒仙橋論壇,探索AI產業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關稅,能否乘機器人東風翻身?