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は、精度と速度のバランスが非常に良いため、さまざまなアプリケーションで利用されています。試してみて、様々な画像や動画で検出精度を確かめてみてください。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?