訂閱
糾錯(cuò)
加入自媒體

如何使用 Yolo v5 對(duì)象檢測算法進(jìn)行自定義對(duì)象檢測

介紹

在本文中,將向你解釋如何使用 Yolo v5 算法檢測和分類60+個(gè)不同類型的道路交通標(biāo)志。

我們將從非常基礎(chǔ)的開始,涵蓋每個(gè)步驟,如準(zhǔn)備數(shù)據(jù)集、訓(xùn)練和測試等。在本文中,我們將使用 Windows 10系統(tǒng)。

讓我們更多地討論 YOLO 及其架構(gòu)。

YOLO 是You Only Look Once的首字母縮寫。我們使用的是Ultralytics于2020年6月推出的版本 5,它是目前可用的最先進(jìn)的目標(biāo)識(shí)別算法。

YOLOv5 是一種新穎的卷積神經(jīng)網(wǎng)絡(luò)(CNN),可以非常準(zhǔn)確地實(shí)時(shí)檢測對(duì)象。這種方法使用單個(gè)神經(jīng)網(wǎng)絡(luò)來處理整個(gè)圖片,然后將其分成多個(gè)部分并預(yù)測每個(gè)部分的邊界框和概率。這些邊界框由預(yù)期概率加權(quán)。

該方法“只看一次”圖像,因?yàn)樗鼉H在一次前向傳播通過神經(jīng)網(wǎng)絡(luò)后進(jìn)行預(yù)測。然后在非最大抑制之后傳遞檢測到的項(xiàng)目(這確保對(duì)象檢測算法只識(shí)別每個(gè)對(duì)象一次)。

它的架構(gòu)主要由三部分組成,即:

1. Backbone: Backbone 主要用于從輸入圖像中提取關(guān)鍵特征。CSP(Cross Stage Partial Networks)在 YOLO v5 中用作主干,以從輸入圖像中提取豐富的有用特征。

2. Neck: Neck 主要用于創(chuàng)建特征金字塔。當(dāng)涉及到對(duì)象縮放時(shí),特征金字塔有助于模型泛化。它有助于識(shí)別不同大小和比例的同一物體。特征金字塔在幫助模型有效地處理之前看不見的數(shù)據(jù)方面是非常有益的。其他模型,如FPN、BiFPN和PANet,使用各種各樣的特征金字塔方法。PANet 在 YOLO v5 中用作 Neck 來獲取特征金字塔。

3. Head: 模型Head主要負(fù)責(zé)最后的檢測步驟。它使用錨框來構(gòu)建具有類別概率、對(duì)象性分?jǐn)?shù)和邊界框的最終輸出向量。

YOLO v5 模型的頭部與之前的 YOLO V3 和 V4 版本相同。

Yolo v5 的優(yōu)缺點(diǎn)

· 它比 YOLOv4 小 88%(27 MB vs 244 MB)

· 它比 YOLOv4 快 180%(140 FPS vs 50 FPS)

· 它在同一任務(wù)上大致與 YOLOv4 一樣準(zhǔn)確(0.895 mAP vs 0.892 mAP)

· 但主要的問題是YOLOv5沒有像其他YOLO版本一樣發(fā)布官方論文。此外,YOLO v5 仍在開發(fā)中,我們會(huì)經(jīng)常收到Ultralytics 的更新,未來開發(fā)者可能會(huì)更新一些設(shè)置。

目錄

1.在 Windows 10 中設(shè)置虛擬環(huán)境。

2.克隆 Yolo v5 的 GitHub 倉庫。

3.數(shù)據(jù)集的準(zhǔn)備和預(yù)處理。

4.訓(xùn)練模型。

5.預(yù)測和現(xiàn)場測試。

創(chuàng)建虛擬環(huán)境

我們將首先通過在 Windows 命令提示符中運(yùn)行該命令來設(shè)置虛擬環(huán)境

1.安裝Virtualenv(運(yùn)行以下命令安裝虛擬環(huán)境)

$ pip install virtualenv

2.創(chuàng)建環(huán)境(運(yùn)行以下命令創(chuàng)建虛擬環(huán)境)

$ py -m venv YoloV5_VirEnv

3.使用該命令激活它(運(yùn)行以下命令以激活該環(huán)境)

$ YoloV5_VirEnvScriptsactivate

你也可以使用停用它(如果要停用該環(huán)境,請(qǐng)運(yùn)行以下命令)

$ deactivate

設(shè)置 YOLO

激活虛擬環(huán)境后,克隆這個(gè)由Ultralytics創(chuàng)建和維護(hù)的 GitHub 存儲(chǔ)庫:

$ git clone https://github.com/ultralytics/yolov5

$ cd yolov5

目錄結(jié)構(gòu)

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) , 進(jìn)行矩陣操作(Numpy)

$ pip install -r requirements.txt

數(shù)據(jù)集的準(zhǔn)備

從該鏈接下載完整的標(biāo)記數(shù)據(jù)集:

image.png

然后解壓 zip 文件并將其移動(dòng)到 yolov5/ 目錄。

1144images_dataset/

train/

test/

在yolov5/目錄中創(chuàng)建一個(gè)名為 data.yaml 的文件 ,并將以下代碼粘貼到其中。

該文件將包含你的標(biāo)簽以及訓(xùn)練和測試數(shù)據(jù)集的路徑。

image.png

image.png

image.png

我們將使用總共 77 個(gè)不同的類

使用 Yolo v5 訓(xùn)練模型

現(xiàn)在,運(yùn)行該命令以最終訓(xùn)練你的數(shù)據(jù)集。你可以根據(jù) PC 的規(guī)格更改批次大小。訓(xùn)練時(shí)間將取決于你電腦的性能,最好使用 Google Colab。

你還可以訓(xùn)練不同版本的 YOLOv5 算法,

所有這些都將采用不同的計(jì)算能力,并提供 FPS(每秒幀數(shù))和精度的不同組合。

在本文中,我們將使用YOLOv5s版本,因?yàn)樗亲詈唵蔚摹?/p>

$ python train.py --data data.yaml --cfg yolov5s.yaml --batch-size 8 --name Model

現(xiàn)在內(nèi)部運(yùn)行 runs/train/Model/,你將找到最終訓(xùn)練好的模型。

image.png

best.pt 包含用于最終檢測和分類的最終模型。

results.txt 文件將包含你在每個(gè)時(shí)期實(shí)現(xiàn)的準(zhǔn)確度和損失的摘要。

其他圖像包含一些繪圖和圖表,可用于更多分析。

Model Yolo v5 的測試

將你的 yolov5/目錄移到別處,并克隆那個(gè)存儲(chǔ)庫。

$ git clone https://github.com/aryan0141/RealTime_Detection-And-Classification-of-TrafficSigns

$ cd RealTime_Detection-And-Classification-of-TrafficSigns

目錄結(jié)構(gòu)

image.png

現(xiàn)在復(fù)制我們在上面訓(xùn)練的模型并將其粘貼到此目錄中。

注意:我已經(jīng)在Model/目錄中包含了一個(gè)經(jīng)過訓(xùn)練的模型,但你也可以將其替換為經(jīng)過訓(xùn)練的模型。移動(dò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

對(duì)于網(wǎng)絡(luò)攝像頭

$ python detect.py --source 0 --weights ../Model/weights/best.pt

你的最終圖像和視頻存儲(chǔ)在Results/目錄中。

示例圖像

每秒幀數(shù)(FPS)取決于你使用的 GPU。我在 Nvidia MX 350 2GB 顯卡上獲得了大約 50FPS

GitHub

這是 Github, 可以找到本文中使用的完整代碼。

image.png


       原文標(biāo)題 : 如何使用 Yolo v5 對(duì)象檢測算法進(jìn)行自定義對(duì)象檢測

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)