見出し画像

UltralyticsのYoloV10でリアルタイムで物体認識する

UltralyticsでYoloV10が使えるようになりましたので、紹介していきます。

YoloV10で使えるモデルは、以下となります。


https://docs.ultralytics.com/models/yolov10/#comparisons

今回は、Yolov10-Sをダウンロードして使ってみます。

最初に、test.pyとして次のコードを張り付けてください。

import cv2
import torch
from ultralytics import YOLO

# モデルの読み込み
model = YOLO('yolov10s.pt')  # ここに正しいモデルファイルを指定してください

# クラス名の取得
names = model.names

# カメラ映像のキャプチャ
cap = cv2.VideoCapture(0)

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

    # 画像の前処理と物体検出
    results = model(frame)

    # 検出結果の描画
    for result in results:
        boxes = result.boxes
        for box in boxes:
            x1, y1, x2, y2 = box.xyxy[0].tolist()
            conf = box.conf[0]
            cls = box.cls[0].item()
            label = names[int(cls)]

            # バウンディングボックスとラベルの描画
            cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
            cv2.putText(frame, f'{label} {conf:.2f}', (int(x1), int(y1) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)

    # 結果の表示
    cv2.imshow("YOLO Object Detection", frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

次に、以下コマンドを実行します。

pip install --upgrade ultralytics
pip install --upgrade opencv-python
python test.py


今回は、USBカメラをhttps://www.youtube.com/watch?v=slOgQojt8w8に向けて、物体認識してみました。

奥の方の車は認識されていないようです。yolov10-xを利用したりすればより精度が上がるのではないかと考えられます。


この記事が気に入ったらサポートをしてみませんか?