iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
AI/ ML & Data

基於人工智慧與深度學習對斑馬魚做行為分析系列 第 7

day 7 yolo v8 模擬特斯拉辨識系統

  • 分享至 

  • xImage
  •  

今天是第七天我們要模擬特斯拉辨識系統,以下yolo v8的程式碼

此範例程式碼將展示如何使用 YOLOv8 進行即時的物體偵測,並結合追蹤算法來追蹤特定物體(如車輛或行人)的位置。

安裝必要的庫

pip install ultralytics opencv-python opencv-python-headless

YOLOv8 與追蹤算法

import cv2
from ultralytics import YOLO

# 初始化 YOLOv8 模型
model = YOLO('yolov8m.pt')  # 使用中等大小的模型,可以根據需求調整

# 啟用視訊捕捉(模擬車載攝影機)
cap = cv2.VideoCapture('road_video.mp4')  # 替換成你自己的路況影片檔案

# 創建一個物體追蹤器(這裡使用 OpenCV 提供的 KCF 追蹤器)
tracker = cv2.TrackerKCF_create()
initBB = None  # 追蹤器的初始邊界框

while True:
    ret, frame = cap.read()
    if not ret:
        break

    # YOLOv8 物體偵測
    results = model(frame)
    detections = results[0].boxes.xyxy  # 取得偵測結果的邊界框

    # 初始化追蹤器
    if initBB is None and len(detections) > 0:
        # 假設只追蹤第一個偵測到的物體(如第一輛車)
        initBB = tuple(detections[0].cpu().numpy())
        tracker.init(frame, initBB)

    # 如果追蹤器已啟動,更新追蹤結果
    if initBB is not None:
        success, box = tracker.update(frame)
        if success:
            (x, y, w, h) = [int(v) for v in box]
            cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
            cv2.putText(frame, "Tracking", (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 0), 2)
        else:
            cv2.putText(frame, "Lost", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)

    # 顯示結果影像
    cv2.imshow("Tesla Detection & Tracking", frame)

    # 按 'q' 鍵退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

說明

  1. 模型選擇:這裡我們使用了中等大小的 YOLOv8 模型 (yolov8m.pt),這在準確性和速度之間達到平衡。可以根據需求選擇更大的模型(yolov8l.pt)或更小的模型(yolov8n.pt)。

  2. 物體追蹤:我們使用了 OpenCV 的 KCF 追蹤器。追蹤器初始化後,會根據第一個偵測到的物體開始追蹤,並在後續的每一幀中更新物體的位置。如果追蹤成功,會在影像上繪製綠色矩形框標註追蹤中的物體;若追蹤失敗,則顯示「Lost」。

  3. 即時處理:這段程式碼可以處理即時的視訊流,模擬車載攝影機拍攝的路況影片,實現物體的即時偵測和追蹤。

進階應用

在實際應用中,可以將多個追蹤器與更多的偵測後處理技術結合,如 Kalman 濾波、光流追蹤等,以達到更加穩定和準確的多物體追蹤。此外,還可以集成其他感測器數據(如雷達、激光雷達)來提供更全面的環境感知。


上一篇
day 6 yolo 模型訓練
下一篇
day 8 Lstm 預測奧運運動隊伍奪冠率
系列文
基於人工智慧與深度學習對斑馬魚做行為分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言