偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用 Yolo-NAS 輕松進(jìn)行對(duì)象檢測(cè)

開(kāi)發(fā) 機(jī)器視覺(jué)
在這個(gè)例子中,我將向您展示如何在圖像和視頻上運(yùn)行自己的 YOLO 模型,以便您可以執(zhí)行對(duì)象檢測(cè)和分割。

學(xué)習(xí)如何使用 Python 和 yolo-NAS 進(jìn)行對(duì)象檢測(cè)。YOLO(You Only Look Once,你只看一次)徹底改變了計(jì)算機(jī)視覺(jué)領(lǐng)域。YOLO 的第一個(gè)版本由 Joseph Redmon 等人在 2016 年發(fā)布,它在速度和準(zhǔn)確性方面都打破了基準(zhǔn)。在對(duì)象檢測(cè)方面,YOLO 一直是數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)工程師的最?lèi)?ài),并且當(dāng)涉及到圖像中實(shí)體的分割時(shí),它是首選的模型。自從它推出以來(lái),YOLO 經(jīng)過(guò)多次新迭代,改進(jìn)了以前版本的幾個(gè)缺點(diǎn),即:

  • 改進(jìn)了底層深度學(xué)習(xí)模型的架構(gòu)。
  • 實(shí)施了提高性能的替代方案,如數(shù)據(jù)增強(qiáng)技術(shù)。
  • 將原始的 YOLO 代碼遷移到使用 pytorch 訓(xùn)練和部署框架。
  • 改進(jìn)了小對(duì)象的檢測(cè)機(jī)制。

需要意識(shí)到的一件重要事情是,每個(gè)計(jì)算機(jī)視覺(jué)和對(duì)象檢測(cè)模型都是根據(jù)兩個(gè)參數(shù)進(jìn)行評(píng)估的:準(zhǔn)確性(由與計(jì)算機(jī)視覺(jué)分割相關(guān)的指標(biāo)定義)和速度(由推理中的延遲定義)。下面展示了如何評(píng)估 CV 算法的一個(gè)例子:

不同 YOLO 模型與 EfficientDet 的比較 — 圖片來(lái)源:https://blog.roboflow.com/yolov5-is-here/

在這個(gè)例子中,我將向您展示如何在圖像和視頻上運(yùn)行自己的 YOLO 模型,以便您可以執(zhí)行對(duì)象檢測(cè)和分割。

加載模型

我們將從加載大型 YOLO 模型的預(yù)訓(xùn)練版本開(kāi)始。在這種情況下,我們將使用帶有 NAS(神經(jīng)架構(gòu)搜索)的 YOLO 實(shí)現(xiàn)。神經(jīng)架構(gòu)搜索是神經(jīng)網(wǎng)絡(luò)優(yōu)化技術(shù)的常見(jiàn)實(shí)現(xiàn),以改善深度學(xué)習(xí)模型中參數(shù)的自動(dòng)選擇。我們將使用的模型是在 COCO 數(shù)據(jù)集(上下文中的常見(jiàn)對(duì)象)上訓(xùn)練的。這些權(quán)重已經(jīng)包含了在圖像上檢測(cè)對(duì)象的非常好基線(xiàn)。

首先,讓我們向我們的環(huán)境添加一些我們將需要的庫(kù),即:

  • torchinfo,一個(gè)幫助可視化我們神經(jīng)網(wǎng)絡(luò)架構(gòu)的助手;
  • super_gradients,我們將用來(lái)加載模型的庫(kù)。
!pip install torchinfo
!pip install super_gradients

接下來(lái),我們將加載我們需要的函數(shù)和庫(kù):

from super_gradients.training import models
from torchinfo import summary
import torch

注意:如果您使用的是 Google Colab,并且在安裝 super_gradients 后提示重新啟動(dòng)內(nèi)核,請(qǐng)執(zhí)行。這是在該環(huán)境中使用 super_learners 的已知問(wèn)題。然后,我們開(kāi)始使用 super_gradients 將我們的 COCO 預(yù)訓(xùn)練模型加載到內(nèi)存中:

# Using Yolo NAS Large
yolo_nas_l = models.get("yolo_nas_l", pretrained_weights="coco")

我們已經(jīng)在 yolo_nas_l 中存儲(chǔ)了預(yù)訓(xùn)練模型。使用 models 來(lái)獲取這些預(yù)訓(xùn)練版本的 YOLO 是非常容易的。torchinfo 為我們提供了模型架構(gòu)的非??岬囊晥D:

summary(model=yolo_nas_l,
        input_size=(16, 3, 640, 640),
        col_names=["input_size", "output_size", "num_params", "trainable"],
        col_width=20,
        row_settings=["var_names"]
)

出于好奇,如果您想檢查 YOLO 架構(gòu)(來(lái)自原始論文),請(qǐng)查看下面的圖片:

圖片來(lái)源:https://www.researchgate.net/publication/329038564_Complexity_and_accuracy_analysis_of_common_artificial_neural_networks_on_pedestrian_detection

這是我們 YOLO NAS 模型架構(gòu)的預(yù)覽:

Yolo-NAS 模型架構(gòu)預(yù)覽

分割圖像

讓我們從一張以桌子為中心的簡(jiǎn)單圖像開(kāi)始,周?chē)懈鞣N物體。在這張圖像中,我們可以看到:

  • 兩把椅子
  • 一張桌子
  • 兩盞燈
  • 一臺(tái)電腦
  • 耳機(jī)
  • 一盆植物

在我們的代碼中,我們只請(qǐng)求在模型置信度超過(guò) 55% 的地方繪制邊界框。只有這些項(xiàng)目的標(biāo)簽才會(huì)出現(xiàn)在分割后的圖像中。

url = "https://images.unsplash.com/photo-1476365518243-f738bf58443d?q=80&w=2787&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
yolo_nas_l.predict(url, cnotallow=0.55).show()

我們的模型能夠自信地檢測(cè)到椅子、筆記本電腦、桌子和植物(盡管它錯(cuò)過(guò)了燈、耳機(jī)和那個(gè)高科技水壺)。讓我們看看如果我們降低我們的置信度閾值會(huì)發(fā)生什么:

url = "https://images.unsplash.com/photo-1476365518243-f738bf58443d?q=80&w=2787&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
yolo_nas_l.predict(url, cnotallow=0.40).show()

降低我們的閾值導(dǎo)致了我們第一次的誤分類(lèi)。在這種情況下,耳機(jī)被錯(cuò)誤地識(shí)別為計(jì)算機(jī)鼠標(biāo)。降低閾值將不可避免地導(dǎo)致更多的對(duì)象檢測(cè)和分割錯(cuò)誤。讓我們嘗試一張更擁擠的場(chǎng)景的圖片:

我們的 YOLO 模型將分割哪些對(duì)象?由于這張圖片有更多的元素,我將降低推理的置信度:

url = "https://images.unsplash.com/photo-1496664444929-8c75efb9546f?q=80&w=2940&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
yolo_nas_l.predict(url, cnotallow=0.3).show()

正如我們所看到的,YOLO 未能分割一些對(duì)象 — 特別是更小/更細(xì)的對(duì)象。盡管如此,對(duì)于如此擁擠的圖像來(lái)說(shuō),性能相當(dāng)不錯(cuò)。為了提高一些性能,與您的用例相關(guān)的圖像的遷移學(xué)習(xí)非常重要。

在接下來(lái)的部分中,我們將學(xué)習(xí)如何使用 YOLO-NAS,但是在分割視頻的背景下。

對(duì)于這部分,我將使用 Youtube 上的一個(gè)交通短視頻:

交通視頻 — https://www.youtube.com/watch?v=CftLBPI1Ga4

我們將從下載這個(gè)視頻到我們的 Google Colab 環(huán)境開(kāi)始。我們還可以使用 IPython 的便捷 YoutubeVideo 功能來(lái)顯示視頻:

from IPython.display import YouTubeVideo


video = YouTubeVideo('CftLBPI1Ga4')
display(video)

要下載我們的視頻,我將使用 youtube-dl:

video_url = f'https://www.youtube.com/watch?v=CftLBPI1Ga4'


!pip install -U "git+https://github.com/ytdl-org/youtube-dl.git"
!python -m youtube_dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4' "$video_url"

我們只需要設(shè)置分割視頻的輸出路徑,就可以將視頻通過(guò) YOLO 模型傳遞了!

input_video_path = f"/content/Cars, Busy Streets, City Traffic - No Copyright Royalty Free Stock Videos-CftLBPI1Ga4.mp4"
output = "traffic.mp4"

一切就緒!讓我們運(yùn)行我們的分割模型:

device = 'cuda' if torch.cuda.is_available() else "cpu"
yolo_nas_l.to(device).predict(input_video_path).save(output)

注意:根據(jù)您本地系統(tǒng)的配置和 Google Colab 上 GPU 的可用性,此代碼可能需要一些時(shí)間來(lái)運(yùn)行。

分割后的交通視頻截圖

YOLO 模型非常強(qiáng)大!您可以使用它們通過(guò)幾行代碼快速分割圖像或視頻。使用我在這里展示的代碼,您可以非常容易地使用自己的媒體進(jìn)行實(shí)驗(yàn),并嘗試這個(gè)偉大的計(jì)算機(jī)視覺(jué)模型。正如您可能注意到的,特別是在復(fù)雜的圖像或視頻中,YOLO 基礎(chǔ)模型仍然有一些需要糾正的缺陷。

責(zé)任編輯:趙寧寧 來(lái)源: 小白玩轉(zhuǎn)Python
相關(guān)推薦

2023-11-13 22:17:54

YOLO-NAS目標(biāo)檢測(cè)

2024-11-29 16:10:31

2024-09-09 16:35:10

YOLO模型

2024-10-29 16:18:32

YOLOOpenCV

2025-02-18 08:00:00

C++YOLO目標(biāo)檢測(cè)

2009-05-20 14:43:38

ibmdwEasyMock測(cè)試

2021-07-01 08:00:00

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)架構(gòu)

2020-10-15 12:00:01

Python 開(kāi)發(fā)編程語(yǔ)言

2010-02-03 16:13:37

2024-09-12 17:19:43

YOLO目標(biāo)檢測(cè)深度學(xué)習(xí)

2024-12-04 16:50:35

YOLO模型計(jì)算機(jī)視覺(jué)

2025-01-06 07:15:00

深度學(xué)習(xí)動(dòng)態(tài)圖異常檢測(cè)人工智能

2024-10-09 17:02:34

2023-11-01 18:02:33

RayPython分布式

2024-11-28 15:56:05

YOLOEasyOCRPython

2018-05-08 14:25:22

Pythondlib人臉檢測(cè)

2024-11-27 16:06:12

2023-11-20 09:47:14

自動(dòng)駕駛視覺(jué)

2025-01-22 11:10:34

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)