成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 Yolo-NAS 輕松進行對象檢測

開發 機器視覺
在這個例子中,我將向您展示如何在圖像和視頻上運行自己的 YOLO 模型,以便您可以執行對象檢測和分割。

學習如何使用 Python 和 yolo-NAS 進行對象檢測。YOLO(You Only Look Once,你只看一次)徹底改變了計算機視覺領域。YOLO 的第一個版本由 Joseph Redmon 等人在 2016 年發布,它在速度和準確性方面都打破了基準。在對象檢測方面,YOLO 一直是數據科學家和機器學習工程師的最愛,并且當涉及到圖像中實體的分割時,它是首選的模型。自從它推出以來,YOLO 經過多次新迭代,改進了以前版本的幾個缺點,即:

  • 改進了底層深度學習模型的架構。
  • 實施了提高性能的替代方案,如數據增強技術。
  • 將原始的 YOLO 代碼遷移到使用 pytorch 訓練和部署框架。
  • 改進了小對象的檢測機制。

需要意識到的一件重要事情是,每個計算機視覺和對象檢測模型都是根據兩個參數進行評估的:準確性(由與計算機視覺分割相關的指標定義)和速度(由推理中的延遲定義)。下面展示了如何評估 CV 算法的一個例子:

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

在這個例子中,我將向您展示如何在圖像和視頻上運行自己的 YOLO 模型,以便您可以執行對象檢測和分割。

加載模型

我們將從加載大型 YOLO 模型的預訓練版本開始。在這種情況下,我們將使用帶有 NAS(神經架構搜索)的 YOLO 實現。神經架構搜索是神經網絡優化技術的常見實現,以改善深度學習模型中參數的自動選擇。我們將使用的模型是在 COCO 數據集(上下文中的常見對象)上訓練的。這些權重已經包含了在圖像上檢測對象的非常好基線。

首先,讓我們向我們的環境添加一些我們將需要的庫,即:

  • torchinfo,一個幫助可視化我們神經網絡架構的助手;
  • super_gradients,我們將用來加載模型的庫。
!pip install torchinfo
!pip install super_gradients

接下來,我們將加載我們需要的函數和庫:

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

注意:如果您使用的是 Google Colab,并且在安裝 super_gradients 后提示重新啟動內核,請執行。這是在該環境中使用 super_learners 的已知問題。然后,我們開始使用 super_gradients 將我們的 COCO 預訓練模型加載到內存中:

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

我們已經在 yolo_nas_l 中存儲了預訓練模型。使用 models 來獲取這些預訓練版本的 YOLO 是非常容易的。torchinfo 為我們提供了模型架構的非??岬囊晥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 架構(來自原始論文),請查看下面的圖片:

圖片來源:https://www.researchgate.net/publication/329038564_Complexity_and_accuracy_analysis_of_common_artificial_neural_networks_on_pedestrian_detection

這是我們 YOLO NAS 模型架構的預覽:

Yolo-NAS 模型架構預覽

分割圖像

讓我們從一張以桌子為中心的簡單圖像開始,周圍有各種物體。在這張圖像中,我們可以看到:

  • 兩把椅子
  • 一張桌子
  • 兩盞燈
  • 一臺電腦
  • 耳機
  • 一盆植物

在我們的代碼中,我們只請求在模型置信度超過 55% 的地方繪制邊界框。只有這些項目的標簽才會出現在分割后的圖像中。

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()

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

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()

降低我們的閾值導致了我們第一次的誤分類。在這種情況下,耳機被錯誤地識別為計算機鼠標。降低閾值將不可避免地導致更多的對象檢測和分割錯誤。讓我們嘗試一張更擁擠的場景的圖片:

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

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 未能分割一些對象 — 特別是更小/更細的對象。盡管如此,對于如此擁擠的圖像來說,性能相當不錯。為了提高一些性能,與您的用例相關的圖像的遷移學習非常重要。

在接下來的部分中,我們將學習如何使用 YOLO-NAS,但是在分割視頻的背景下。

對于這部分,我將使用 Youtube 上的一個交通短視頻:

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

我們將從下載這個視頻到我們的 Google Colab 環境開始。我們還可以使用 IPython 的便捷 YoutubeVideo 功能來顯示視頻:

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"

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

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

一切就緒!讓我們運行我們的分割模型:

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

注意:根據您本地系統的配置和 Google Colab 上 GPU 的可用性,此代碼可能需要一些時間來運行。

分割后的交通視頻截圖

YOLO 模型非常強大!您可以使用它們通過幾行代碼快速分割圖像或視頻。使用我在這里展示的代碼,您可以非常容易地使用自己的媒體進行實驗,并嘗試這個偉大的計算機視覺模型。正如您可能注意到的,特別是在復雜的圖像或視頻中,YOLO 基礎模型仍然有一些需要糾正的缺陷。

責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2023-11-13 22:17:54

YOLO-NAS目標檢測

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目標檢測

2021-07-01 08:00:00

深度學習神經網絡架構

2009-05-20 14:43:38

ibmdwEasyMock測試

2020-10-15 12:00:01

Python 開發編程語言

2024-09-12 17:19:43

YOLO目標檢測深度學習

2024-10-09 17:02:34

2024-12-04 16:50:35

YOLO模型計算機視覺

2010-02-03 16:13:37

2024-11-28 15:56:05

YOLOEasyOCRPython

2025-01-06 07:15:00

深度學習動態圖異常檢測人工智能

2023-11-01 18:02:33

RayPython分布式

2024-11-27 16:06:12

2018-05-08 14:25:22

Pythondlib人臉檢測

2023-11-20 09:47:14

自動駕駛視覺

2025-01-22 11:10:34

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91在线精品视频 | 91香蕉视频在线观看 | 欧美精品在线观看 | 国产伦精品一区二区三区照片91 | 一级毛片在线播放 | 久艹网站 | 欧美亚洲一区二区三区 | 日韩一区中文字幕 | 先锋资源网站 | 欧美日韩亚洲二区 | 超碰av免费 | 免费在线视频精品 | 美女视频网站久久 | 欧美二三区 | 99日韩| 欧美精品一区二区三区在线 | 中文精品视频 | 日韩精品在线网站 | 欧美aⅴ在线观看 | 久久亚洲天堂 | 日韩视频精品 | 91免费电影| av片在线播放 | 岛国毛片在线观看 | 久草福利 | 日韩国产中文字幕 | 国产精品欧美一区二区三区 | 免费黄色在线 | 精品久久久久久久人人人人传媒 | 羞羞视频在线观看免费观看 | 日韩欧美不卡 | 欧美一区二区免费 | 亚洲色图综合 | 一区二区三区中文字幕 | 国产一区二区麻豆 | 日韩精品影院 | 亚洲国产精品一区二区第一页 | 国产精品3区 | 中文字幕日韩欧美一区二区三区 | 欧美日韩一区二区视频在线观看 | 欧美日韩久久精品 |