Ultralytics YOLO27: ウェイトリストに登録する。
Get Started
コンピュータービジョンの基礎·指標を読む·レッスン 10/10
レッスン初級

ラボから本番環境へ

Ultralyticsをインストールし、自分の画像でYOLO26を実行して、出力が仕様に合っているか確認し、次のステップを選びます。

事前学習済みモデルを10分ほど試すだけで、計画全体を左右する疑問に答えられます。既製モデルが自分のクラスとカメラにすでに対応しているのか、それとも独自のデータが必要なのか、という疑問です。このレッスンでは、Ultralyticsをインストールし、実際の画像でYOLO26を実行して、最初のレッスンで作成した仕様と結果を照合します。

成果

自分の画像でYOLO26を実行し、出力に基づいて、事前学習済みの重みでプロトタイプを作るか、データセットを構築するかを判断します。

短期集中コース
すでに使い方をご存じの方は、こちらをご覧ください。
  1. インストール:pip install ultralytics、続いてyolo checksを実行します。

  2. 予測:yolo predict model=yolo26n.pt source=https://ultralytics.com/images/bus.jpgを実行します。

  3. 確認:仕様に含まれるクラスのうち、事前学習済みモデルが対応しているのはどれですか。また、自分の画像でボックスの位置は適切ですか。

  4. その答えに基づいて、次に受講するコースを選びます。

実践的

インストール#

pip install ultralytics
yolo checks

最初の行では、ultralytics Pythonパッケージとyoloコマンドをインストールします。PyTorchがない場合は、PyTorchもインストールします。yolo checksを実行すると、Python、PyTorch、CUDAのバージョンと、Ultralyticsが使用するハードウェアが表示されるため、実行前にセットアップを確認できます。新しい仮想環境を使用してください。conda、Docker、GPUのセットアップについては、クイックスタートをご覧ください。

Pythonのバージョン

ultralyticsパッケージはPython 3.8以降にインストールできますが、現在のPyTorchリリースにはPython 3.10以降が必要です。環境が古い場合は、まず新しいPythonで新しい仮想環境を作成します。

Stable、Mac、Pip、Python、Defaultが選択されたPyTorch Start Locallyのセレクター。torch、torchvision、torchaudioのpip3インストールコマンドが表示されています

GPUが使われていない

症状: NVIDIA GPU搭載マシンなのにyolo checksがCPUを示し、推論が遅くなります。原因: CPU専用のPyTorchビルドが使われています。たとえば、Windowsではデフォルトのpipホイールが該当します。対処法: 上のPyTorchセレクターでOS、パッケージマネージャー、CUDAのバージョンを選び、表示されたコマンドを実行してから、ultralyticsを再インストールします。スクリーンショットのようにMacではデフォルトのビルドで問題ありません。Apple GPUを使うにはdevice=mpsを渡さない限り、UltralyticsはCPUで実行されます。

最初の予測#

from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # 初回使用時に約5 MBのnanoモデルをダウンロードする
results = model("https://ultralytics.com/images/bus.jpg", save=True)

for box in results[0].boxes:
    print(model.names[int(box.cls)], round(float(box.conf), 2))

どちらの方法でも、画像ごとに1行の概要が出力され、注釈付き画像はruns/detect/predictに保存されます。

image 1/1 .../bus.jpg: 640x480 4 persons, 1 bus, 19.7ms
Speed: 0.9ms preprocess, 19.7ms inference, 0.4ms postprocess per image at shape (1, 3, 640, 480)
Results saved to runs/detect/predict

各行を見てみましょう。推論のために画像が640×480にリサイズされ、モデルは人物4人とバス1台を検出しています。ノートPCのCPUでの推論時間は約20ミリ秒です。Speedの行が最初のレイテンシ確認ポイントです。仕様の入力項目に記載したフレームレートと比較してください。保存した画像を開くと、各ボックスに検出レッスンで学んだクラス、ボックス、信頼度が表示されています。

出力を仕様と照合する#

質問はいの場合いいえの場合
モデルが認識する80のCOCOクラスに、対象のクラスは含まれていますか。学習なしでプロトタイプを作成しますラベル付きデータとファインチューニングが必要です(ファインチューニングガイド)
自分の画像で、しきい値を超えるボックスは正しい物体に重なっていますか。タスクと視点が一致していますドメインギャップを想定し、自分のカメラからデータを収集します
出力の種類は、意思決定の基準で必要とされるものですか。タスクを続けます重みを切り替えます:-seg、-sem、-depth、-pose、-obb、または-cls
対象ハードウェアで、必要なフレームレートを満たす速度ですか。次に進みますより小さいモデルか、最適化されたエクスポート形式を試します

最初の質問には明確に答えられます。model.namesには、事前学習済みモデルが認識するすべてのクラスが一覧表示されています。フォークリフトの仕様では、personはCOCOクラスですが、forkliftは該当しないため、しきい値をどう設定しても事前学習済みモデルはフォークリフトを検出できません。これは初回実行で最もよくある結果で、モデルが仕様の一部にしか対応していない状態です。利用可能なクラスを使って意思決定ロジックのプロトタイプを作りながら、残りのクラス用のデータセットを構築するのが適切です。

本番環境で変化すること#

デプロイされたモデルは、データセットに含まれていなかった条件に直面します。新しいカメラ、季節、製品、制服などです。再学習しなければ精度は低下しますが、本番環境で得られたデータを使って定期的に再学習すれば、精度を回復できます。

時間経過に伴うモデル精度を示す2つのグラフ:再学習しないと精度が低下するモデルと、定期的な再学習によって更新のたびに精度が回復するモデル

このコースの各レッスンは、このサイクルに役立ちます。仕様で失敗の定義を明確にし、カバレッジ監査で確認すべき箇所を特定します。ラベルリンターとガイドラインで新しいデータを活用できるようにし、適切なデータ分割と指標で再学習後のモデルが本当に改善したかを判断します。初日から実践できる習慣は2つあります。信頼度の低いものも含め、入力と予測のサンプルを記録すること。そして、すべてのモデルを同じ画像で比較できるよう、固定テストセットを維持することです。可観測性とドリフトでは、データドリフトの監視について詳しく説明しています。

次に進むには#

コース受講するタイミング
高性能YOLOデータセットの構築対象クラスが事前学習済みモデルに含まれていない場合、またはシーンがCOCOと異なる場合
初めてのYOLOモデルをトレーニングするラベル付きデータセットがあり、ファインチューニングしたい場合
本番環境でのUltralytics YOLOモデルがあり、エクスポート、トラッキング、監視が必要な場合
Ultralytics Platformで構築するデータ、ラベリング、トレーニング、デプロイを1か所で行いたい場合

ブラウザーで完結するワークフローを希望しますか。Ultralytics Platformでは、ローカルにインストールせずに、アップロード、アノテーション、トレーニング、デプロイという同じサイクルを実行できます。

試してみる

ソリューションのスクリプトを編集し、仕様のクラスをspec_classesに、自分の画像パスをsourcesに設定してから実行し、保存された結果を開きます。画像、検出されたクラス、仕様との一致(はい/いいえ)を列にした表を作成し、次のステップと該当するコースを選ぶ一文で締めくくります。

コミット
git add -A && git commit -m "docs(academy): completed Computer Vision Foundations"
完了条件
以下のすべてを満たすと、レッスンは完了です。
  • 自分の画像を少なくとも3枚使ってYOLO26を実行し、保存された結果を開いています。

  • 仕様のクラスのうち、事前学習済みモデルが対応しているものと、独自のデータが必要なものを把握しています。

  • 次のステップと、そのために受講するコースを示す一文を用意しています。

解答を表示
from pathlib import Path

from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# 1. Which classes in your output line does the pretrained model already know?
spec_classes = {"person", "forklift"}
known = set(model.names.values())
print(f"pretrained: {sorted(spec_classes & known)}  needs your own data: {sorted(spec_classes - known)}")

# 2. What does it find on your images?
sources = [
    "https://ultralytics.com/images/bus.jpg",  # replace with your own images
    "https://ultralytics.com/images/zidane.jpg",
]
for source, result in zip(sources, model.predict(sources, conf=0.25, save=True, verbose=False)):
    names = [result.names[int(c)] for c in result.boxes.cls]
    print(f"{Path(source).name}: {len(names)} detections -> {sorted(set(names))}")
pretrained: ['person']  needs your own data: ['forklift']
bus.jpg: 5 detections -> ['bus', 'person']
zidane.jpg: 3 detections -> ['person', 'tie']

フォークリフトの仕様の場合:personは対応していますが、forkliftは対応していません。次のステップ:今すぐ事前学習済みモデルで人物を対象にゾーンルールのプロトタイプを作成し、倉庫のカメラ映像からフォークリフトのデータを収集してラベル付けするために、高性能YOLOデータセットの構築を始めます。

次のステップ

コースを修了しました。最終クイズを受けて修了証を取得し、続いて高性能YOLOデータセットの構築を受講して、仕様をトレーニングに使えるデータセットに仕上げましょう。