YOLO26 を使った物体検出

📢 この記事は gemini-3-flash-preview によって翻訳されました

インストールと環境構築

公式のインストール参考: Installing conda - conda documentation

ダウンロードリンク: Download anaconda

Miniconda をダウンロードして、必要に応じて自分で環境を構築するのもいいよ。

実行環境を作成する:

1
conda create -n env_name python=3.13 -y

実行環境をアクティベートする:

1
conda activate env_name

PyTorch のインストール

CPU 版を使うなら、そのままこのコマンドでOK。

1
pip install torch torchvision torchaudio

GPU 版は公式サイトからダウンロードする必要があるよ。 https://pytorch.org/get-started/locally/ にアクセスして、インストールコマンドを確認してね。

CUDA のバージョンは、このコマンドで確認できるよ。

1
nvidia-smi

インストールが終わったら、ちゃんと使えるかチェックしよう。

1
2
3
import torch
print(f"GPUが使えるか: {torch.cuda.is_available()}")
print(f"現在のGPU: {torch.cuda.get_device_name(0)}")

画像のアノテーション(ラベル付け)

ローカルで少量の画像をアノテーションするなら labelImg が便利。pip でインストールできるよ。

1
pip install labelImg

それから、コマンドを打って GUI ウィンドウを開こう。

1
labelImg

画像のパスと保存先の設定を忘れずに。あと、データ形式を YOLO に切り替えてね。

W キー(大文字)を押すと、新しいアノテーションを作成できるよ。

モデルの学習

YOLO26 公式ドキュメント: Ultralytics YOLO26

YOLO をインストール:

1
pip install ultralytics

学習用のコード:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from ultralytics import YOLO

def main():
    # 学習済みの YOLO26n モデルをロード
    model = YOLO("yolo26n.pt")

    # data.yaml の設定で 50 エポック学習させる
    results = model.train(data="data.yaml", epochs=50, imgsz=640, device=0)

if __name__ == '__main__':
    main()

データ設定ファイル data.yaml

1
2
3
4
5
6
7
path: ../my_dataset  # データセットのルートディレクトリへの相対パス
train: images/train  # 学習用画像の位置
val: images/val      # 検証用画像の位置

names:
  0: name1            # クラス0:name1
  1: name2            # クラス1:name2

学習の成果物

学習が終わると、runs/detect の中にいろいろなファイルができあがるよ。

その中の weights/ フォルダにあるのがモデルファイル。

  • best.pt:一番精度が高かった時の重み
  • last.pt:最後の学習結果

各種グラフ:

  • results.png:学習損失 (Loss) と精度指標 (mAP) をまとめたもの
    • 曲線が右肩上がりならまだ学習中、平らになってきたら学習が完了(収束)した合図だよ。
  • confusion_matrix.png:混同行列。ターゲットを背景と間違えたり、別のものと見間違えたりした確率がわかるよ。
    • 対角線が明るいほど、正しく認識できている証拠。
  • Box*_curve.png:それぞれ適合率 (Precision)、再現率 (Recall)、そしてそれらのバランス曲線。
  • labels.jpg:すべてのアノテーションの統計図。ボックスのサイズの分布やクラスごとの割合が見れるよ。

画像付きの結果:

  • train_batch*.jpg:学習時に実際に使われた画像。
  • val_batch*_labels.jpg:検証用のアノテーション画像。
  • val_batch*_pred.jpg:モデルによる予測結果。

その他のファイル:

  • args.yaml:今回の学習で使ったすべてのパラメータ設定。後で同じ条件で試したい時に便利。
  • results.csvresults.png の元データが入った表。

モデルを使ってみる

1
2
3
4
5
# モデルをロード
model = YOLO('runs/detect/train/weights/best.pt')

# 予測を実行
results = model.predict(source='new_chicken_video.mp4', save=True)

モデルを改造する

conda 環境内で以下のコマンドを実行すると、YOLO がどこにインストールされているか確認できるよ。

1
python -c "import ultralytics.nn.tasks as t; print(t.__file__)"

ただ、この方法だとライブラリをアップデートした時に変更が消えちゃうんだ。だから、公式のソースコードをローカルにダウンロードしてくるのがおすすめ。

ダウンロード先: ultralytics/ultralytics

ダウンロードしたら、プロジェクトのルートディレクトリで pip を使ってローカルインストールしてね。

1
pip install -e .

これで、コードを変更してもすぐに反映されるようになるよ!

This post is licensed under CC BY-NC-SA 4.0 by the author.

Visits Since 2025-02-28

Hugo で構築されています。 | テーマ StackJimmy によって設計されています。