😽
YOLOv12をGoogle Colabで動かしてみた
はじめに
新しくなったYOLOv12、Attention機構を取り入れ精度が今までで最高になったということなので、Google Colab上で動かしてみたいと思います!
YOLOv12の詳細はこちら↓
さっそくソースコード
環境セットアップとYOLOv12のインストール
現在YOLOv12はpipでインストールできないため、gitリポジトリからCloneしてくる必要があります。
また、今回はGoogle Driveのマイドライブ直下に画像を置いてそれを読み込むようにしているため、ドライブもマウントしています。
# Google Driveのマウント
from google.colab import drive
drive.mount('/content/gdrive')
# YOLOv12のリポジトリをクローン
!git clone https://github.com/sunsmarterjie/yolov12
%cd yolov12
# 必要なライブラリのインストール
!pip install roboflow supervision flash-attn --upgrade -q
!pip install -r requirements.txt
!pip install -e .
!pip install --upgrade flash-attn
止まってる、と心配になるほど時間がかかるので、気長に待ってくださいね。
画像を読み込んで実行
YOLOv12をクローンして必要なライブラリを読み込んだら、もう実行できます!
import cv2
from ultralytics import YOLO
import matplotlib.pyplot as plt
from google.colab.patches import cv2_imshow
# YOLOv12モデルの読み込み(n, s, m, l, xから選択)
model = YOLO('yolov12s.pt') # 小さいモデルを使用
# Google Drive上の画像のパスを指定
image_path = '/content/gdrive/MyDrive/shishi.jpeg' # パスは実際の画像の場所に合わせて変更してください
# 画像の読み込みと表示
image = cv2.imread(image_path)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(10, 8))
plt.imshow(image_rgb)
plt.axis('off')
plt.title('元の画像')
plt.show()
# YOLOv12で物体検出を実行
results = model(image_path)
# 結果の表示
for result in results:
boxes = result.boxes # バウンディングボックス
result_plotted = result.plot()
cv2_imshow(result_plotted) # 検出結果の表示
実行結果
読み込ませた画像はこちら
そして検出されたバウンディングボックスをプロットしたのがこちら
ししまる、かわいいですね!
以上です!
Discussion