roboflowブログ

 roboflow製品情報
roboflow で YOLOv12 を使用する方法
roboflow で YOLOv12 を使用する方法
2025年2月18日、学術研究チームによって YOLOv12 がリリースされました。
このモデルは Microsoft COCO データセットでの検証により、従来の YOLO モデルと比べて 低レイテンシかつ高精度 を実現しています。
roboflowで YOLOv12 モデルのトレーニングと、Roboflow Hosted Serverless API を利用したトレーニング済みモデルのデプロイが可能になりました。
本ガイドでは、Roboflow を使って YOLOv12 モデルをトレーニングからデプロイまで行う手順をご紹介します。
また、YOLOv12 についてさらに詳しく知るために役立つYOLOv12 トレーニング ノートブックとチュートリアルも作成しました。



roboflowを使用した YOLOv12 モデルのラベルデータ
YOLOv12 は YOLOv8 と同じデータ形式(YOLOv8 PyTorch TXT)を使用します。
Roboflow では、この形式でデータを インポートおよびエクスポート することが可能です。
また、データ形式の変換 にも対応しており、例えば COCO JSON 形式のデータセットを、YOLOv12 で利用できる形式に変換することもできます。
まだラベル付けされたデータがない場合や、さらにデータを追加ラベル付けしたい場合でも、Roboflow には SAM を活用した注釈機能や自動ラベル付け など、ラベル付け作業を効率化する便利なツールが揃っています。
以下は AI を活用したラベル付け の例です。オブジェクトの上にマウスを移動しクリックするだけで、ポリゴン注釈を描画できます。
データセットにラベルを付けたら、拡張と前処理の手順を適用して、データセットをトレーニング用に準備できます。
roboflowでYOLOv12モデルをトレーニングする
roboflowが提供するroboflow Trainを使って、YOLOv12モデルをトレーニングできます。
トレーニングを始めるには、まずroboflowでプロジェクトを作成し、データセットバージョンを生成します。
その後、データセットバージョンのダッシュボードから 「Custom Train」をクリックして、トレーニングを開始します。

Custom Train
トレーニングしたいモデルの種類を選択できるウィンドウが表示されます。「YOLO12」を選択します。

「YOLO12」を選択
次に「Continue」 をクリックすると、「高速モデル:Fast」「高精度モデル:Accurate」「特大モデル:Extra Large」のいずれをトレーニングするかを選択する画面が表示されます。
まずはテスト目的であれば、「高速モデル:Fast」のトレーニングがおすすめです。
一方、精度が重要な本番環境で使用する場合は、「高精度モデル:Accurate」を選択することをおすすめします。

「高速モデル:Fast」「高精度モデル:Accurate」「特大モデル:Extra Large」
次に、どのトレーニングチェックポイントから開始するかを選択します。
特に理由がなければ、デフォルトの「YOLOv12 COCO チェックポイント」 から始めることをおすすめします。
すでに 以前のデータセットバージョンで YOLOv12 モデルをトレーニング済み であれば、そのモデルをチェックポイントとして使用することも可能です。これにより、さらに 高い精度 を目指せる場合があります。

YOLOv12 COCO
「Start Training」をクリックすると、モデルのトレーニングが始まります。
あわせて、トレーニングにかかる時間の目安も表示されます。
トレーニングにかかる時間は、データセット内の画像枚数 や その他の条件 によって異なります。

Start Training
roboflowでYOLOv12モデルをデプロイする
YOLOv12 モデルは、「roboflow Serverless Hosted API」および、ビジョンアプリケーション構築ツール「roboflow Workflows」を利用してデプロイできます。

roboflow Workflows でデプロイする場合

roboflow Workflows では、YOLOv12 のオブジェクト検出モデルを簡単に利用できます。
始めるには、新しいワークフローを作成 するか、既存のワークフローを開き、オブジェクト検出ブロックを追加してください。

roboflow Workflows でデプロイする場合
次に、YOLOv12 アーキテクチャを使用してトレーニングしたモデルを選択します。
このモデルは、あらかじめ対象のワークスペースでトレーニングしておく必要があります。

YOLOv12 アーキテクチャ
ワークフローを実行してモデルの結果を確認できます。

ワークフローを実行してモデルの結果を確認
ワークフローでは、50種類以上のブロックが用意されており、検出結果のフィルタリングや、境界ボックスへの注釈付け、さらにSlackなどのプラットフォームやSMSへのメッセージ送信など、さまざまな機能を簡単に追加できます。

推論を使用してデプロイする

YOLOv12 モデルは、CPUデバイスとGPUデバイスの両方にデプロイできます。
特に CUDA対応GPU(NVIDIA Jetson など)を搭載したデバイスでは、GPUを利用して高速な推論が可能です。

独自のハードウェアに YOLOv12 モデルをデプロイするには、
まず Inference をインストールしてください。
pip install inference
推論は、次の 2つの方法 で実行できます。

・Dockerコンテナ内 で実行
・Python SDKを使用して実行
このガイドでは、Python SDK を使用したデプロイ方法をご紹介します。

まず、新しい Python ファイル を作成し、以下のコードを追加してください。

from inference import get_model
import supervision as sv
import cv2

# define the image url to use for inference
image_file = "YOUR_IMAGE.jpg"
image = cv2.imread(image_file)

# load a pre-trained model
model = get_model(model_id="your-model-id/version")

# run inference on our chosen image, image can be a url, a numpy array, a PIL image, etc.
results = model.infer(image)[0]

# load the results into the supervision Detections api
detections = sv.Detections.from_inference(results)

# create supervision annotators
bounding_box_annotator = sv.BoundingBoxAnnotator()
label_annotator = sv.LabelAnnotator()

# annotate the image with our inference results
annotated_image = bounding_box_annotator.annotate(
	scene=image, detections=detections)
annotated_image = label_annotator.annotate(
	scene=annotated_image, detections=detections)

# display the image
sv.plot_image(annotated_image)
									
ワークスペースでトレーニングしたカスタムモデルを使用する場合は、上記でroboflowワークスペースID、モデルID、およびAPIキーを設定します。

ワークスペースとモデルIDを見つける
APIキーを見つける

[YOUR_IMAGE.jpg]使用する画像の名前に置き換えます。
以下は、上記の監督コードを使用してプロットされたモデルの結果の例です。

監督コードを使用してプロットされたモデルの結果の例
モデルは、画像内の輸送コンテナ(対象オブジェクトが赤い境界ボックスで表示されます)や、トレーニング済みのその他のクラスを正常に検出できました。

また、ビデオストリームでも推論を実行可能です。
RTSPストリームやウェブカメラフィードなど、ビデオ入力に対してモデルを実行する方法については、推論ビデオガイドをご参照ください。
YOLOv12ホストAPIエンドポイント
サーバーレスAPIを使用してモデルをデプロイする場合は、プロジェクトの「デプロイメント」タブに移動し、「Hosted Image Inference」オプションをクリックします。

Hosted Image Inference
モデルを実行しているサーバーレスAPIを呼び出すためのコードを含むウィンドウが表示されます。コードは以下のようになります。


# import the inference-sdk
from inference_sdk import InferenceHTTPClient

# initialize the client
CLIENT = InferenceHTTPClient(
    api_url="https://detect.roboflow.com",
    api_key="API_KEY"
)

# infer on a local image
result = CLIENT.infer("YOUR_IMAGE.jpg", model_id="model-name/model-id")
									
まとめ
YOLOv12は、独立した研究者チームによって開発された新しいYOLOモデルアーキテクチャです。2025年2月20日より、roboflowプラットフォームでYOLOv12モデルをトレーニングし、roboflow Serverless Hosted APIを使用してデプロイできます。

このガイドでは、YOLOv12モデルのデータにラベルを付ける方法、roboflowでYOLOv12モデルをトレーニングする方法、トレーニング済みのモデルをデバイスまたはクラウドにデプロイする方法について説明しました。
アノテーション・AI学習データ(教師データ)作成・AIモデル構築ツール「roboflow」

お問い合せ

お問い合せはこちら

AI活用の機械学習を自動化するツール「roboflow」についてのご質問・ご相談はこちら

お電話でのお問い合せも受け付けています。お気軽にご相談ください。

03-5821-9761