這是目標(biāo)檢測(cè)中令人驚嘆的 AI 模型之一。在這種情況下,您無(wú)需克隆存儲(chǔ)庫(kù)、設(shè)置要求并配置模型,就像在 YOLOv5 及其之前的版本中所做的那樣。
在 YOLOv8 中,不需要執(zhí)行這些手動(dòng)任務(wù)。您只需安裝 Ultralytics 即可,我將向您展示如何通過(guò)一個(gè)簡(jiǎn)單的命令安裝它。
這是一個(gè)提升了先前 YOLO 版本成功率的模型,同時(shí)增加了新的功能和改進(jìn),以提高性能和靈活性。YOLOv8 是進(jìn)行各種目標(biāo)識(shí)別和跟蹤、實(shí)例分割、圖像分類和姿態(tài)估計(jì)任務(wù)的理想選擇,因?yàn)樗荚诳焖?、精確且易于使用。YOLOv8 的官方網(wǎng)站如下:https://github.com/ultralytics/ultralytics/
我們可以使用該模型執(zhí)行三種類型的任務(wù):
(1) 檢測(cè)
(2) 分割
(3) 分類
檢測(cè)
我們可以從下表中選擇任一模型進(jìn)行目標(biāo)檢測(cè):
分割
我們可以從下表中選擇任一模型進(jìn)行圖像分割:
分類
我們可以從下表中選擇任一模型進(jìn)行圖像分類:
您可以在下面找到一個(gè)快速入門(mén)的安裝和使用示例,以及完整的培訓(xùn)、驗(yàn)證、預(yù)測(cè)和部署文檔可在 yolov8 文檔中找到(https://docs.ultralytics.com/)。
使用 YOLOv8 有兩種方式:
(1) CLI — 命令行界面
(2) Python 腳本
現(xiàn)在我將使用 Google Colab 進(jìn)行訓(xùn)練。在安裝之前,我需要連接到我的 GPU。
在上述屏幕中選擇 GPU 作為硬件加速器后,點(diǎn)擊“保存”按鈕。
掛載 Google 云硬盤(pán),以便 Colab 可以訪問(wèn)它的文件。
點(diǎn)擊上述屏幕中的“連接到Google Drive”按鈕后,選擇掛載按鈕?,F(xiàn)在我們的筆記本已連接到Google Drive。
要測(cè)試是否獲得了GPU,請(qǐng)?jiān)贑olab上寫(xiě)入以下命令:
我們將通過(guò)下面的單個(gè)命令安裝 YOLOv8 的所有要求和依賴項(xiàng):
現(xiàn)在安裝成功了。
它有三種模式:
(1) 訓(xùn)練模式 — 表達(dá)為 mode = train
(2) 驗(yàn)證模式 — 表達(dá)為 mode = val
(3) 預(yù)測(cè)模式 — 表達(dá)為 mode = predict
它執(zhí)行三種類型的任務(wù):
(1) 檢測(cè) — 表達(dá)為 task = detect
(2) 分割 — 表達(dá)為 task = segment
(3) 分類 — 表達(dá)為 task = classify
測(cè)試它是否工作,運(yùn)行以下命令:
首先,它會(huì)下載模型和圖像,然后分別對(duì)圖像進(jìn)行預(yù)測(cè)。在這里,我們選擇了檢測(cè)表中的第一個(gè)模型 — yolov8n。在下面的屏幕中,我們可以看到模型和圖像已下載,并且預(yù)測(cè)的圖像已保存在 `runs/detect/predict/bus.jpg` 中。
輸入圖像:
預(yù)測(cè)的圖像:
現(xiàn)在,我將上傳一張貓的圖像到“images”文件夾進(jìn)行預(yù)測(cè):
運(yùn)行以下命令以從圖像中檢測(cè)貓:
它成功地從圖像中預(yù)測(cè)了貓,并將其保存到 `predict2` 文件夾中。
執(zhí)行分割:
在這里,我們使用了上面表格中的第一個(gè)模型 YOLOv8n-seg:
分割后的圖像保存在 `runs/segment/predict` 中。
執(zhí)行分類:
在這里,我們使用了上面表格中的第一個(gè)模型 YOLOv8n-cls:
分類后的圖像保存在 `runs/classify/predict` 中。
開(kāi)始自定義訓(xùn)練:
我有一個(gè)準(zhǔn)備好的數(shù)據(jù)集已上傳到以下 Google Drive 鏈接:
[Google Drive 數(shù)據(jù)集鏈接](https://drive.google.com/drive/u/1/folders/1QQVa1PoaDxhFBU2GJHXWARlpMB_i-qGs)
?Google Colab 筆記本鏈接:
[Google Colab 筆記本鏈接](https://colab.research.google.com/drive/1crJsLpHzKExZBot5DhDYGmfuTdi1KBxG?authuser=1#scrollTo=YpyuwrNlXc1P)
配置 `data.yaml` 文件:(我們使用上表中的第二個(gè)模型)
這里, data = data.yaml。在 `data.yaml` 文件中,我列出了所有我的圖像路徑。因此,它將自動(dòng)從該文件夾獲取圖像和標(biāo)簽。
上述代碼的解釋:
IPython.display:IPython 是一個(gè)增強(qiáng)型的交互式 Python shell,提供比默認(rèn) Python shell 更多功能。通過(guò) IPython.display 模塊,它是 IPython 的一個(gè)組件,您可以在 Jupyter Notebook 或 IPython 環(huán)境中直接顯示各種內(nèi)容類型(如圖片、視頻、音頻、HTML 等)。
Image:IPython.display 模塊的 Image 類是其中的一個(gè)特殊元素。在 Jupyter Notebook 或 IPython 上下文中,它使圖像顯示變得可能。這意味著您無(wú)需在不同的軟件中打開(kāi)它們,即可直接在筆記本中顯示照片、圖片或其他圖像文件。
圖像的路徑作為輸入傳遞給 Image 類,并且 display() 函數(shù)在您的筆記本中輸出圖像。請(qǐng)注意,圖像文件需要是受支持的格式(如 JPG、PNG 或 GIF),并且需要在您的 IPython 環(huán)境或 Jupyter Notebook 中可用。
使用 IPython.display 和 Image 可以快速在筆記本中可視化圖像,使它們更具教育性和吸引力。顯示指定路徑 'runs/detect/train/' 中的名為 "confusion_matrix.png" 的圖像。
上述代碼的解釋:
通過(guò)上述代碼 `Image(filename='runs/detect/train/confusion_matrix.png', width=600)` 顯示 "confusion_matrix.png" 位于 'runs/detect/train/' 目錄中。通過(guò) `width=600` 選項(xiàng)將可見(jiàn)圖像的寬度設(shè)置為 600 像素。
顯示另一張名為 "confusion_matrix.png" 的圖像,位于指定路徑中:
顯示另一張名為 "val_batch0_pred.jpg" 的圖像,位于指定路徑 'runs/detect/train/' 中:
上述代碼的解釋:
通過(guò)上述代碼 `Image(filename='runs/detect/train/val_batch0_pred.jpg', width=600)` 顯示 "val_batch0_pred.jpg" 位于 'runs/detect/train/' 給定路徑中。通過(guò) `width=600` 選項(xiàng)將可見(jiàn)圖像的寬度設(shè)置為 600 像素。
使用訓(xùn)練好的 YOLO 模型在驗(yàn)證數(shù)據(jù)集上執(zhí)行目標(biāo)檢測(cè):
上述代碼的解釋:
命令行工具 `!yolo`:命令的開(kāi)頭的 `!` 符號(hào)是 Jupyter Notebook 特有的,表示它是一個(gè)在筆記本環(huán)境中運(yùn)行的 shell 命令。
`Yolo task=detect`:Yolo 是一個(gè)命令行工具,`task=detect` 指示它檢測(cè)對(duì)象。
當(dāng)將 mode 參數(shù)設(shè)置為 val 時(shí),將使用驗(yàn)證數(shù)據(jù)集完成任務(wù)。這用于評(píng)估在應(yīng)用于新數(shù)據(jù)時(shí)訓(xùn)練的模型的性能。
`model=runs/detect/train/weights/best.pt`:指定用于檢測(cè)的 YOLO 模型權(quán)重文件的路徑。使用了在訓(xùn)練中獲得的最佳權(quán)重(來(lái)自“train”模式)。
`data=data.yaml`:指定包含有關(guān)數(shù)據(jù)集、類別和訓(xùn)練和評(píng)估過(guò)程中使用的其他設(shè)置的數(shù)據(jù)配置文件(data.yaml)的路徑。
使用自定義模型進(jìn)行推理
使用訓(xùn)練好的 YOLO 模型在新圖像上進(jìn)行目標(biāo)檢測(cè)
上述代碼的解釋:
選項(xiàng) `mode=predict` 指示該工具預(yù)測(cè)并識(shí)別提供的照片中的物體。使用它可以對(duì)新的、未使用過(guò)的照片進(jìn)行預(yù)測(cè)。
`model=runs/detect/train/weights/best.pt`:這指示 YOLO 模型的權(quán)重文件的位置,該權(quán)重文件將用于檢測(cè)。在使用模型進(jìn)行預(yù)測(cè)之前,它必須首先在數(shù)據(jù)集上進(jìn)行訓(xùn)練。
`conf=0.25`:對(duì)象檢測(cè)的置信度閾值設(shè)置為 0.25。輸出將顯示任何置信度大于 0.25 的檢測(cè)到的對(duì)象。
`source=test/images`:`source=test/images` 標(biāo)識(shí)包含用于目標(biāo)檢測(cè)的圖像的目錄。在這個(gè)例子中,工具將在存儲(chǔ)在 test/images 目錄中的照片中找到對(duì)象。
·? END? ·
HAPPY?LIFE
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-789825.html
本文僅供學(xué)習(xí)交流使用,如有侵權(quán)請(qǐng)聯(lián)系作者刪除文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-789825.html
到了這里,關(guān)于在自定義數(shù)據(jù)集上訓(xùn)練 YOLOv8 進(jìn)行目標(biāo)檢測(cè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!