iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
AI/ ML & Data

AI 影像處理 30天系列 第 10

[AI 影像處理 30天] [Day 10] 追蹤焦點:YOLO V8 物件軌跡追蹤技術

  • 分享至 

  • xImage
  •  

引言

在 AI 影像處理的世界中,物件追蹤技術扮演著至關重要的角色。像是在過去幾天所探討的皆是圖像的合成。但如果想要將海報貼上影片呢?勢必需要去追蹤物品來去判斷海報之位置是否需要重新合成!在今天,將帶你來直接上手 YOLO V8 的物件軌跡追蹤技術!

YOLO V8簡介

YOLO (You Only Look Once) 是一種實時物件檢測系統,而 V8 是其最新版本。它在速度和準確性方面都有顯著改進,使其成為物件追蹤任務的理想選擇。

實作

首先先來做個測試吧!這邊透過圖片的方式去試試看
要使用 YOLO V8 的話需要使用 ultralytics 提供的套件
你可以直接透過 pip 的方式去安裝!

pip install ultralytics

接著只需要 Import 套件並用套件寫好的 code 去進行就可以了!

from ultralytics import YOLO

def main():
    # Load the YOLO model
    model = YOLO('model/yolov8n.pt')

    # Run detection on the image
    results = model(source="test_img/test_1.png", show=True, conf=0.4, save=True)

if __name__ == "__main__":
    main()

其中這邊要注意,記得下載想要使用的 YOLO v8 模型至檔案中,這邊的model/yolov8n.pt只是我的路徑,並不適用於所有人!來看看結果吧~首先是原圖!
https://ithelp.ithome.com.tw/upload/images/20240918/201689017nOcNXIRLv.png
接著是辨識後的結果圖。
https://ithelp.ithome.com.tw/upload/images/20240918/20168901xgtvi6hHCG.png
可以看到光是這樣的結果就很讚了!

影片物件追蹤

現在我們已經成功地在靜態圖像上使用了 YOLO V8 進行物件檢測。接下來,讓我們將這個技術應用到影片上,實現動態物件追蹤。
首先,我們需要稍微修改一下我們的程式:

import os

os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'

from ultralytics import YOLO
def main():
    # 載入YOLO模型
    model = YOLO('model/yolov8n.pt')

    # 在影片上運行追蹤
    results = model.track(source="test_img/p_fo_video.mp4", save=True, tracker="bytetrack.yaml", stream=True)
    for r in results:
        # 這裡可以添加代碼來處理每一幀的結果
        # 例如,你可以print出每一幀檢測到的物件數量
        print(f"Detected {len(r.boxes)} objects in this frame")
        
if __name__ == "__main__":
    main()

這樣我們就可以將 YOLO v8 應用於影片中了!
Yes

如有任何問題歡迎在下方留言提問!


撰文者: RenHe Huang


上一篇
[AI 影像處理 30天] [Day 09] 圖像變形以OpenCV實作消失點變形演算法
下一篇
[AI 影像處理 30天] [Day 11] 定格瞬間:使用 OpenCV / FFmpeg 分割影片幀區
系列文
AI 影像處理 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言