見出し画像

YOLOv5を使ったPythonでの物体検出方法

YOLOv5は、物体検出の分野で非常に人気のあるモデルで、リアルタイムでの物体検出が可能です。PythonでYOLOv5を使って物体検出を行う方法について、以下の手順で説明します。


1. YOLOv5の環境を準備する

まず、YOLOv5の環境を準備します。Python環境に必要なライブラリをインストールするために、以下のコマンドを実行します。

pip install torch torchvision torchaudio
pip install opencv-python
pip install pyyaml
pip install seaborn

次に、YOLOv5のリポジトリをクローンします。

git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt


2. YOLOv5のモデルをロードする

YOLOv5には、様々なプリトレインモデル(事前学習モデル)が提供されています。以下のようにモデルをロードできます。

import torch

# YOLOv5のプリトレインモデルをロード
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')

'yolov5s'はYOLOv5の最小モデルですが、他にも'yolov5m', 'yolov5l', 'yolov5x'といったモデルもあります。それぞれのモデルは、モデルサイズや精度が異なります。


3. 画像を用意する

物体検出を行いたい画像を用意し、YOLOv5で処理します。

# 画像を読み込む
img = 'path/to/your/image.jpg'  # 画像のパスを指定

# 物体検出を実行
results = model(img)


4. 結果の表示

物体検出の結果を表示するために、YOLOv5の組み込み関数を使用します。

# 結果を表示
results.show()  # 検出された物体を表示

検出された結果は、画像上にバウンディングボックスとして表示されます。


5. 結果の保存

検出結果を画像ファイルとして保存することも可能です。

# 結果を保存
results.save('path/to/save/detected_image.jpg')  # 保存先のパスを指定


6. 動画での物体検出

YOLOv5は静止画だけでなく、動画にも対応しています。動画に対して物体検出を行う方法は以下の通りです。

import cv2

# 動画を読み込む
cap = cv2.VideoCapture('path/to/your/video.mp4')

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

    # フレームに対して物体検出を実行
    results = model(frame)

    # 結果を表示
    cv2.imshow('YOLOv5 Detection', results.render()[0])

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

cap.release()
cv2.destroyAllWindows()

このコードを実行すると、リアルタイムで動画内の物体が検出され、結果が表示されます。


まとめ

以上が、YOLOv5を使用してPythonで物体検出を行う基本的な手順です。YOLOv5は、精度と速度のバランスが非常に良いため、さまざまなアプリケーションで利用されています。試してみて、様々な画像や動画で検出精度を確かめてみてください。

この記事が参加している募集

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