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

使用 YOLO 和計算機視覺進行目標跟蹤

人工智能 深度學習
在本文中,我將帶您了解如何使用預訓練的 YOLO 模型進行目標跟蹤。這是最簡單的教程,我們只處理簡單的目標檢測。

YOLO 是一種能夠?qū)崟r進行目標檢測的深度學習算法。您可以使用預訓練的 YOLO 模型,如 YOLOv8 或 YOLOv9,或者在需要時在自定義數(shù)據(jù)集上訓練自己的模型。在本文中,我將帶您了解如何使用預訓練的 YOLO 模型進行目標跟蹤。這是最簡單的教程,我們只處理簡單的目標檢測。

讓我們看看目標檢測所涉及的步驟。

  • 我們將加載模型
  • 我們將加載視頻
  • 我們將逐幀提取視頻
  • 對每一幀進行預測并使用 OpenCV 顯示結(jié)果

下面的圖像總結(jié)了這些步驟:

目標檢測步驟 讓我們開始編碼。

第 0 步:環(huán)境設(shè)置

我們需要兩個庫 ultralytics 和 opencv,您可以使用以下代碼安裝這些庫。

pip install ultralytics opencv-python

導入所有必要的庫。

import cv2 as cv
from ultralytics import YOLO

第 1 步:加載模型 

#load the model
model = YOLO('yolov8n.pt')

在 YOLO 中加載模型非常容易。我們可以直接使用 ultralytics 提供的 YOLO() 函數(shù),并指定模型名稱。一旦運行,它會自動在代碼所在的文件夾中下載指定的 YOLO 模型。

第 2 步:加載視頻 

我們使用 OpenCV 的 VideoCapture() 函數(shù)來加載視頻。這個函數(shù)的輸入是視頻的路徑。

path = "../videos/football_test.mp4"
#read video
vs = cv.VideoCapture(path)

第 3 步:提取幀 

一旦我們加載了視頻,在下一步我們將逐個提取視頻中的幀。視頻是由連續(xù)拼接在一起的幀組成的。

  • vs = cv.VideoCapture(path):包含指向視頻的指針。
  • vs.read():允許我們逐幀讀取視頻。一旦我們調(diào)用vs上的read函數(shù),它將以迭代的方式返回當前的視頻幀。
  • cv.imshow('image', frame):顯示每個提取出的幀。
path = "../videos/football_test.mp4"
#read video
vs = cv.VideoCapture(path)

#load the model
model = YOLO('yolov8n.pt')
while True:
    (grabbed,frame) = vs.read()
    if not grabbed:
        break
    cv.imshow('image', frame)
    cv.waitKey(500)

第 4 步:應用預測 

模型的predict()方法是用于對每一幀進行預測的方法。預測結(jié)果存儲在results變量中。在while循環(huán)中,我們從視頻中提取每一幀,并在每一幀上進行預測。簡單來說,我正在嘗試在視頻中的每一幀中檢測對象。

results = model.predict(frame,stream=False)

path = "../videos/football_test.mp4"
    #read video
    vs = cv.VideoCapture(path)
    #load the model
    model = YOLO('yolov8n.pt')
    while True:
        (grabbed,frame) = vs.read()
        if not grabbed:
            break
        results = model.predict(frame,stream=False)
        cv.imshow('image', frame)
        cv.waitKey(500)

第 5 步:繪制邊界框

為了繪制邊界框,我創(chuàng)建了一個函數(shù),該函數(shù)將輸入圖像、數(shù)據(jù)(包含預測結(jié)果)、檢測到的類別名稱,并返回帶有檢測到的對象邊界框的圖像。drawBox(data, image, name):data是預測詳情,image是幀,name是檢測到的類別名稱,例如:人、汽車等。

def drawBox(data,image,name):
    x1, y1, x2, y2, conf, id = data
    p1 = (int(x1), int(y1))
    p2 = (int(x2), int(y2))
    cv.rectangle(image, p1, p2, (0, 0, 255), 3)
    cv.putText(image, name, p1, cv.FONT_HERSHEY_SIMPLEX, 3, (0, 0, 255), 3)
    return image
    
results = model.predict(frame,stream=False)
for result in results:
     for data in result.boxes.data.tolist():
           #print(data)
           id = data[5]
           drawBox(data, frame,detection_classes[id])

由于結(jié)果包含了幀中所有檢測到的對象的詳細信息,我們在上述代碼中對每個檢測到的對象進行解碼。對于每個檢測,我們調(diào)用`drawBox(data, frame, detection_classes[id])`來在檢測周圍繪制邊界框。

第 6 步:完整代碼

您也可以在此處訪問完整代碼:https://github.com/sunnykumar1516/YOLO/blob/main/ReadVideoApplyYoloV8.py。

import cv2 as cv
from ultralytics import YOLO

def drawBox(data,image,name):
    x1, y1, x2, y2, conf, id = data
    p1 = (int(x1), int(y1))
    p2 = (int(x2), int(y2))
    cv.rectangle(image, p1, p2, (0, 0, 255), 3)
    cv.putText(image, name, p1, cv.FONT_HERSHEY_SIMPLEX, 3, (0, 0, 255), 3)
    return image

detection_classes= []
 path = "../videos/football_test.mp4"
    #read video
 vs = cv.VideoCapture(path)
    #load the model
 model = YOLO('yolov8n.pt')
 while True:
    (grabbed,frame) = vs.read()
     if not grabbed:
            break
     results = model.predict(frame,stream=False)
     detection_classes = results[0].names
     for result in results:
         for data in result.boxes.data.tolist():
                #print(data)
                id = data[5]
                drawBox(data, frame,detection_classes[id])

完整代碼參考:https://github.com/sunnykumar1516/YOLO/blob/main

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

2019-10-31 16:14:28

物聯(lián)網(wǎng)機器學習AI

2023-11-22 13:45:37

計算機視覺數(shù)據(jù)預處理

2021-05-19 09:00:00

人工智能機器學習技術(shù)

2023-07-07 10:53:08

2024-11-29 16:10:31

2024-07-24 08:54:11

2023-06-26 10:44:42

2023-04-04 08:25:31

計算機視覺圖片

2024-11-06 16:56:51

2024-11-27 16:06:12

2025-05-26 08:36:25

Gemini模型聊天機器人Gemini

2023-11-20 22:14:16

計算機視覺人工智能

2023-09-04 15:15:17

計算機視覺人工智能

2023-06-30 14:01:00

增強現(xiàn)實AR和VR

2020-08-04 10:24:50

計算機視覺人工智能AI

2024-03-01 10:08:43

計算機視覺工具開源

2020-11-05 13:50:23

計算機視覺

2025-01-24 07:37:19

計算機視覺熱力圖YOLOv8

2020-12-24 13:44:14

計算機互聯(lián)網(wǎng) 技術(shù)

2022-05-16 13:46:30

計算機視覺人工智能機器學習
點贊
收藏

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

主站蜘蛛池模板: 中文字幕视频在线 | 天堂精品视频 | 国产精品毛片无码 | 成人在线一区二区三区 | 亚洲欧美中文日韩在线v日本 | 国产午夜精品视频 | 超碰国产在线 | 国产视频在线观看一区二区三区 | 国产精品揄拍一区二区 | 成人精品一区 | 国产一区二区精品在线 | 中文在线观看视频 | 在线观看日韩 | 日韩欧美中文 | 91精品国产91久久久久久三级 | 亚洲日韩中文字幕一区 | 特黄视频 | 一区二区三区精品视频 | 自拍偷拍亚洲一区 | 国产日韩一区二区三区 | 成人性视频免费网站 | 午夜小视频免费观看 | 国产成人av电影 | 红色av社区 | 欧美综合久久久 | av免费在线播放 | 久久久精品一区 | 九七午夜剧场福利写真 | 国产精品综合色区在线观看 | 欧美成年人视频在线观看 | 老头搡老女人毛片视频在线看 | 欧美成人性生活 | www国产亚洲精品久久网站 | 中文字幕欧美日韩 | 在线观看视频91 | 国产精品视频免费播放 | 日韩综合网 | 亚洲欧美bt | 手机在线观看av | 国产激情视频在线免费观看 | 欧美成人a∨高清免费观看 老司机午夜性大片 |