物体検出,セグメンテーション,画像分類,物体検出の再学習と転移学習(YOLOv8,PyTorch,Python を使用)(Windows 上)

Windows 上で YOLOv8 をインストールし,物体検出,セグメンテーション,画像分類を実行する手順を説明する.物体検出の学習済みモデルは COCO データセットで学習されており,yolov8n.pt などから選択できる.再学習に必要な画像データとアノテーションには,YOLO 形式のオープンデータを利用でき,その際にはクラス番号を 80 以上に振り直す.そのための Python プログラムをこのページで示す.

Yolo v8 による物体検出,セグメンテーション,画像分類

道路標識のデータを用いて学習を継続.その後,物体検出を実行.

目次

  1. 前準備
  2. YOLOv8 のインストール(Windows 上)
  3. 物体検出の実行(YOLOv8 を使用)(Windows 上)
  4. YOLO形式のオープンデータを用いて,新しいクラスの物体検出ができるように再学習,転移学習

前準備

Build Tools for Visual Studio 2026(ビルドツール)のインストール

Build Tools for Visual Studio 2026(ビルドツール)のインストールを行い、C/C++ コードのビルド環境を整える。

[Build Tools for Visual Studio 2026(ビルドツール)のインストール手順を見るには、ここをクリック]

Windows での Build Tools for Visual Studio 2026 のインストール

Build Tools for Visual Studio は,Visual Studio の IDE を含まない C/C++ コンパイラ,ライブラリ,ビルドツール等のコマンドライン向け開発ツールセットである。インストール済みの場合,この手順は不要である。

以下のコマンドは、Build Tools が未インストールの場合は winget で新規インストールし、インストール済みの場合は setup.exe modify でコンポーネントを追加する(バージョンは変更しない)。

インストールコマンドの実行方法

管理者権限コマンドプロンプトを起動する(手順:Windows キーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

REM VC++ ランタイム
winget install --scope machine --id Microsoft.VCRedist.2015+.x64 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet /norestart"

REM ============================================================
REM Visual Studio Build Tools + Desktop development with C++
REM (VCTools、MSBuildTools、CMake連携、Clang、Windows 11 SDK)
REM ============================================================
REM 進行中のインストーラーを停止(ロック競合回避)
taskkill /F /IM vs_setup.exe /T >nul 2>&1
taskkill /F /IM vs_installer.exe /T >nul 2>&1
taskkill /F /IM vs_installerservice.exe /T >nul 2>&1

REM 未インストール時: winget で新規インストール
REM インストール済み時: setup.exe modify でコンポーネント追加(バージョンは変更しない)
winget list --id Microsoft.VisualStudio.BuildTools 2>nul | findstr /i "BuildTools" >nul 2>&1
if %ERRORLEVEL% EQU 0 (
    for /f "usebackq delims=" %P in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -property installationPath`) do start /wait "" "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" modify --installPath "%P" --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.Windows11SDK.26100 --includeRecommended --quiet --norestart --nocache
) else (
    winget install --scope machine --id Microsoft.VisualStudio.BuildTools -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "--quiet --wait --norestart --nocache --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.Windows11SDK.26100"
)

REM 破損時の修復(任意、動作がおかしくなった場合)
REM "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" repair --installPath "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools" --quiet --norestart

REM 導入確認(インストールパスが表示されれば正常)
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -products * -requires Microsoft.VisualStudio.Workload.VCTools -property installationPath

上記のコマンドでは、Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし、続いて以下のコンポーネントを追加している。

上記以外の追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。

インストール完了の確認

winget list Microsoft.VisualStudio.BuildTools

Visual Studio を必要とするとき

Visual Studio の機能を必要とする場合は,追加インストールできる。

Python 3.12 のインストール

Pythonのインストールを行い、Pythonのプログラムを実行する環境を整える。扱う環境は、Windows搭載パソコンである。金子研究室では、Python 3.12.10を推奨する。

[Windows での Python 3.12 のインストール手順を見るには、ここをクリック]

Windows での Python 3.12 のインストール

以下のいずれかの方法でPython 3.12をインストールする。Pythonがインストール済みの場合、この手順は不要である。

方法 1:winget によるインストール

インストールコマンドの実行方法

管理者権限コマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動するとPATHが反映される。

REM Python 3.12 をシステム領域にインストール
winget install --id Python.Python.3.12 -e --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0 Include_pip=1 Include_launcher=1 InstallLauncherAllUsers=1 TargetDir=\"C:\Program Files\Python312\""

REM Python と Scripts を PATH 先頭に追加
powershell -NoProfile -Command "$p='C:\Program Files\Python312'; $s=\"$p\Scripts\"; $c=[Environment]::GetEnvironmentVariable('Path','Machine'); if((Test-Path $p) -and (';'+$c+';' -notlike \"*;$p;*\") -and (';'+$c+';' -notlike \"*;$s;*\")){[Environment]::SetEnvironmentVariable('Path',\"$p;$s;$c\",'Machine')}"

方法 2:インストーラーによるインストール

  1. Python公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンからWindows用インストーラーをダウンロードする。
  2. ダウンロードしたインストーラーを実行する。
  3. 初期画面の下部に表示される「Add python.exe to PATH」にチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから python コマンドを実行できない。
  4. 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。

インストールの確認

コマンドプロンプトで以下を実行する。

python --version

バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。

Git のインストール(Windows 上) [クリックして展開]

管理者権限コマンドプロンプトで以下を実行する.管理者権限は,winget の --scope machine オプションでシステム全体にインストールするために必要となる.

REM Git をシステム領域にインストール
winget install --scope machine --id Git.Git -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /COMPONENTS=""icons,ext\reg\shellhere,assoc,assoc_sh"" /o:PathOption=Cmd /o:CRLFOption=CRLFCommitAsIs /o:BashTerminalOption=MinTTY /o:DefaultBranchOption=main /o:EditorOption=VIM /o:SSHOption=OpenSSH /o:UseCredentialManager=Enabled /o:PerformanceTweaksFSCache=Enabled /o:EnableSymlinks=Disabled /o:EnableFSMonitor=Disabled"

Build Tools for Visual Studio 2022,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN 8.9.7 のインストール(Windows 上)

サイト内の関連ページNVIDIA グラフィックスボードを搭載しているパソコンの場合には, NVIDIA ドライバNVIDIA CUDA ツールキットNVIDIA cuDNN のインストールを行う.

関連する外部ページ

PyTorch のインストール(Windows 上)

Windows 環境に PyTorch をインストールする手順を説明する.pip を使用する方法と,Miniconda (conda) を使用する方法がある.

1. 実行前の準備

2. PyTorch 公式サイトでのコマンド確認

PyTorch のインストールコマンドは,OS,パッケージ管理ツール (pip/conda),Python バージョン,CUDA バージョンによって異なる.環境に合ったインストールコマンドは,以下の PyTorch 公式サイトで確認する

以下に示すコマンドは,CUDA 11.8 の環境における一例である.

3. pip を使用したインストール

Python 標準のパッケージ管理ツール pip を使用する方法である.

(1) pip の更新(任意)

python -m pip install --upgrade pip

(2) 既存の PyTorch 関連パッケージのアンインストール(推奨)
古いバージョンがインストールされている場合に実行する.

python -m pip uninstall torch torchvision torchaudio
# 必要に応じて torchtext, xformers などもアンインストール
# python -m pip uninstall torchtext xformers

(3) PyTorch のインストール
公式サイトで生成したコマンドを使用する.以下は CUDA 11.8 環境向けの一例である.

# 公式サイトで取得した pip install コマンドを実行
# 例 (CUDA 11.8):
python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

(4) インストールの確認

python -c "import torch; print(f'PyTorch Version: {torch.__version__}'); print(f'CUDA Available: {torch.cuda.is_available()}')"

CUDA Available: True と表示されれば,GPU が正しく認識されている(GPU 環境の場合).

4. Miniconda (conda) を使用したインストール

データサイエンス環境構築によく使われる Miniconda (または Anaconda) を使用している場合は,conda コマンドでもインストールできる.

注意点:
conda 環境では,PyTorch のような複雑な依存関係を持つライブラリの場合,pip よりも依存関係の問題が発生することがある.問題が発生した場合は,pip を使用したインストール(セクション3)を試す.

(1) Miniconda Prompt (または Anaconda Prompt) の起動
管理者権限で Miniconda Prompt を起動する.

(2) PyTorch のインストール
公式サイトで Package に Conda を選択し,生成されたコマンドを使用する.以下は CUDA 11.8 環境向けの一例である.

# 公式サイトで取得した conda install コマンドを実行
# 例 (CUDA 11.8):
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

-c pytorch -c nvidia は,PyTorch と NVIDIA の公式 conda チャネルを指定している.

(3) インストールの確認

python -c "import torch; print(f'PyTorch Version: {torch.__version__}'); print(f'CUDA Available: {torch.cuda.is_available()}')"

関連情報

サイト内の関連ページ

関連する外部ページ

YOLOv8 のインストール(Windows 上)

YOLOv8 の公式の GitHub リポジトリ https://github.com/ultralytics/ultralytics に従ってインストールを実施する.

  1. 以下の手順を管理者権限コマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
  2. 必要なパッケージのインストールおよびソースコードのダウンロード
    python -m pip install -U pillow wandb clearml comet_ml
    cd /d c:%HOMEPATH%
    rmdir /s /q ultralytics
    git clone -b main https://github.com/ultralytics/ultralytics
    python -m pip install -qe ultralytics
    icacls ultralytics /grant Everyone:F /T
    
  3. Windows で,コマンドプロンプトを実行
  4. 物体検出機能の実行

    YOLOv8 の公式 GitHub リポジトリ https://github.com/ultralytics/ultralytics の手順に従って実施する.

    実行結果は runs\detect\predict\bus.jpg に保存される.同名の predict ディレクトリがすでに存在する場合,本ページのコマンドでは実行前に rmdir で削除している.

    物体検出の学習済みモデルには, yolov8n.pt, yolov8s.pt, yolov8m.pt, yolov8l.pt, yolov8x.pt が用意されている.これらはすべて COCO データセットで学習済みのモデルである.詳細については公式ページの https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml を参照のこと.

    yolov8n.ptを使用する場合:

    cd /d c:%HOMEPATH%\ultralytics
    rmdir /s /q runs\detect\predict
    yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg' exist_ok=True
    runs\detect\predict\bus.jpg
    

    yolov8x.ptを使用する場合:

    cd /d c:%HOMEPATH%\ultralytics
    rmdir /s /q runs\detect\predict
    yolo predict model=yolov8x.pt source='https://ultralytics.com/images/bus.jpg' exist_ok=True
    runs\detect\predict\bus.jpg
    
  5. セグメンテーション機能の実行

    公式ドキュメント https://docs.ultralytics.com/tasks/segment/ の手順に従って実施する.

    yolov8n-seg.ptを使用する場合:

    cd /d c:%HOMEPATH%\ultralytics
    rmdir /s /q runs\segment\predict
    yolo segment predict model=yolov8n-seg.pt source='https://ultralytics.com/images/bus.jpg' exist_ok=True
    runs\segment\predict\bus.jpg
    

    yolov8x-seg.ptを使用する場合:

    cd /d c:%HOMEPATH%\ultralytics
    rmdir /s /q runs\segment\predict
    yolo segment predict model=yolov8x-seg.pt source='https://ultralytics.com/images/bus.jpg' exist_ok=True
    runs\segment\predict\bus.jpg
    
  6. 画像分類機能の実行

    公式ドキュメント https://docs.ultralytics.com/tasks/classify/ の手順に従って実施する.

    yolov8n-cls.ptを使用する場合:

    cd /d c:%HOMEPATH%\ultralytics
    rmdir /s /q runs\classify\predict
    yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg' exist_ok=True
    runs\classify\predict\bus.jpg
    

    yolov8x-cls.ptを使用する場合:

    cd /d c:%HOMEPATH%\ultralytics
    rmdir /s /q runs\classify\predict
    yolo classify predict model=yolov8x-cls.pt source='https://ultralytics.com/images/bus.jpg' exist_ok=True
    runs\classify\predict\bus.jpg
    

物体検出の実行(YOLOv8 を使用)(Windows 上)

参考Webページ:https://colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/train-yolov8-object-detection-on-custom-dataset.ipynb#scrollTo=FDbMt_M6PiXb

コマンドラインでの実行

  1. Windows で,コマンドプロンプトを実行
  2. 以下のコマンドで物体検出を実行

    「source='https://media.roboflow.com/notebooks/examples/dog.jpeg'」の部分は,任意のファイル名やURLを指定可能.

    物体検出の学習済みモデルには, yolov8n.pt, yolov8s.pt, yolov8m.pt, yolov8l.pt, yolov8x.pt が用意されている.これらはすべて COCO データセットで学習済みのモデルである.詳細については公式ページの https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml を参照のこと.

    yolov8x.ptを使用する場合:

    cd /d c:%HOMEPATH%\ultralytics
    rmdir /s /q runs\detect\predict
    yolo task=detect mode=predict model=yolov8x.pt conf=0.25 source='https://media.roboflow.com/notebooks/examples/dog.jpeg' save=True save_txt=True exist_ok=True
    runs\detect\predict\dog.jpeg
    
  3. 実行結果は runs\detect\predict\labels ディレクトリに保存される
  4. そのディレクトリ内のファイルを確認

    1列目はクラス番号,2列目から5列目はバウンディングボックスの座標データとなる.

Python プログラムによる物体検出結果の取得

  1. Python プログラムの実行
    Python プログラムの実行環境:

    Python の詳細については:別ページ »を参照

    python
    
  2. 以下の Python プログラムで物体検出結果を取得できる.

    物体検出の学習済みモデルには, yolov8n.pt, yolov8s.pt, yolov8m.pt, yolov8l.pt, yolov8x.pt が用意されている.これらはすべて COCO データセットで学習済みのモデルである.詳細については公式ページの https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml を参照のこと.

    from ultralytics import YOLO
    model = YOLO("yolov8x.pt")  # 学習済みモデルの読み込み(学習時に推奨)
    results = model.predict(source='https://media.roboflow.com/notebooks/examples/dog.jpeg', conf=0.25)
    for i in results:
        print(i.boxes.xyxy)
        print(i.boxes.cls)
    
    exit()
    

YOLO形式のオープンデータを用いた新規クラス物体検出のための再学習・転移学習

【再学習】

再学習(Fine-tuning)とは,大量のデータで事前学習済みのモデルを活用して新しい課題に適応させる手法である.物体検出において,再学習により事前学習時に含まれていなかった新規クラス(物体カテゴリ)の検出が可能となる.事前学習済みモデルはすでに特徴抽出能力を獲得しているため,比較的少量のデータで新規タスクを学習できる.再学習プロセスでは,事前学習済みモデルの重みとバイアスを初期値として,新規タスクのデータで調整することでモデルの能力を拡張する.

【転移学習】

転移学習(Transfer Learning)は,事前学習済みモデルを活用する手法である.この手法では,事前学習済みモデルの最終層以外の層における重みとバイアスを固定し,最終層のみを新規タスクに合わせて再学習する.最終層以外のパラメータを固定することで,調整対象のパラメータ数を削減し,以下の利点が得られる.

再学習用のデータの準備

画像データと物体検出のためのアノテーションデータとして,クラス名とバウンディングボックスのデータを使用する. この目的のために,YOLO形式のオープンデータであるTraffic Signs Datasetを活用する.

Traffic Signs Dataset をダウンロードし,次の処理を実施した上で学習を実行する

  1. Traffic Signs Dataset in YOLO format のページにアクセスする

    https://www.kaggle.com/datasets/valentynsichkar/traffic-signs-dataset-in-yolo-format?resource=download

  2. Download」 をクリックしてダウンロードを開始する
  3. Kaggleへの登録もしくはGoogle アカウントでのサインインが要求された場合は,画面の指示に従って処理を進める.その後,再度「Download」 をクリック
  4. archive.zip がダウンロードされる.
  5. C:\archive ディレクトリを作成し,archive.zip をこのディレクトリ内に展開する.

    次のように配置する.

  6. Windowsコマンドプロンプトを起動
  7. 以下のコマンドでカレントディレクトリを「C:\archive」に移動し,python を起動
    cd C:\archive\ts
    python
    
  8. Pythonプログラムを実行する

    このプログラムは,"ts/ts/"ディレクトリ内の900個のテキストファイル("00000.txt"から"00899.txt")を処理する. 各ファイルの全行において,最初の列からクラス番号(0, 1, 2, 3)を抽出し,その値が80未満の場合,80を加算してファイルに書き戻す. ファイルが存在しない場合,エラーメッセージを出力する.

    def update_class_number(filename):
        with open(filename, "r", encoding="utf-8") as file:
            lines = file.readlines()
        updated_lines = []
        for line in lines:
            parts = line.strip().split()
            if len(parts) >= 5:
                class_number = int(parts[0])
                # もともとのクラス番号 (class_number) は 0, 1, 2, 3 である。80を加えて,元のファイルのクラス番号を更新する
                if class_number < 80:
                    updated_class_number = class_number + 80
                    x1, y1, x2, y2 = map(float, parts[1:])
                    updated_line = f"{updated_class_number} {x1} {y1} {x2} {y2}\n"
                    updated_lines.append(updated_line)
                else:
                    updated_lines.append(line)
            else:
                updated_lines.append(line)
        with open(filename, "w", encoding="utf-8") as file:
            file.writelines(updated_lines)
    
    file_not_found = False
    for i in range(0, 900):
        # 00000.txt から 00899.txt まで
        filename = f"ts/{i:05}.txt"
        try:
            update_class_number(filename)
            # 確認表示
            with open(filename, "r", encoding="utf-8") as file:
                first_line = file.readline().strip()
                print(f"filename: {filename} , {first_line}")
        except FileNotFoundError:
            print(f"{filename} が見つかりませんでした")
            file_not_found = True
    
    exit()
    
  9. 処理完了の確認

    このプログラムの実行により,クラス番号を 80, 81, 82, 83 に変更する.

    各クラス番号に対応するクラス名は,ファイル c:\archive\classes.names に記載されており,以下の通りである.

    80, prohibitory
    81, danger
    82, mandatory
    83, other
    
  10. 画像の幅を640にリサイズする

    まず,以下のコマンドを実行

    cd c:\archive\ts\ts
    python
    

    次のPythonプログラムを実行する

    from PIL import Image
    import os
    
    # 新しい幅
    new_width = 640
    
    # カレントディレクトリ内のすべてのファイル
    for filename in os.listdir('.'):
        # .jpgファイルのみを処理
        if filename.endswith('.jpg'):
            print(f"{filename} を変換")
            with Image.open(filename) as img:
                # アスペクト比を保持した高さを計算
                aspect_ratio = new_width / img.width
                new_height = int(img.height * aspect_ratio)
                # リサイズ
                resized_img = img.resize((new_width, new_height))
                # 元のファイルを上書き
                resized_img.save(filename)
    
    exit()
    
  11. 検証用のディレクトリを作成し,指定のファイルを移動する.
    mkdir c:\archive\ts\ts\images
    mkdir c:\archive\ts\ts\images\train
    mkdir c:\archive\ts\ts\images\val
    mkdir c:\archive\ts\ts\labels
    mkdir c:\archive\ts\ts\labels\train
    mkdir c:\archive\ts\ts\labels\val
    cd c:\archive\ts\ts
    move *1.txt labels\val
    move *1.jpg images\val
    move *.txt labels\train
    move *.jpg images\train
    icacls c:\archive\ts /grant Everyone:F /T
    
  12. データセット設定ファイル ts.yaml を作成する

    エディタを起動する

    cd /d c:%HOMEPATH%
    cd ultralytics
    notepad ts.yaml
    

    エディタで以下の内容を記述し保存する.

    names は 84 個の文字列で構成されるリストである.最初の 80 個は COCO データセットのクラス名,残りの 4 個は,これから学習を実施するデータセットのクラス名となる.

    path: c:/archive/ts/ts
    train: images/train
    val: images/val
    nc: 84
    names:
      0: person
      1: bicycle
      2: car
      3: motorcycle
      4: airplane
      5: bus
      6: train
      7: truck
      8: boat
      9: traffic light
      10: fire hydrant
      11: stop sign
      12: parking meter
      13: bench
      14: bird
      15: cat
      16: dog
      17: horse
      18: sheep
      19: cow
      20: elephant
      21: bear
      22: zebra
      23: giraffe
      24: backpack
      25: umbrella
      26: handbag
      27: tie
      28: suitcase
      29: frisbee
      30: skis
      31: snowboard
      32: sports ball
      33: kite
      34: baseball bat
      35: baseball glove
      36: skateboard
      37: surfboard
      38: tennis racket
      39: bottle
      40: wine glass
      41: cup
      42: fork
      43: knife
      44: spoon
      45: bowl
      46: banana
      47: apple
      48: sandwich
      49: orange
      50: broccoli
      51: carrot
      52: hot dog
      53: pizza
      54: donut
      55: cake
      56: chair
      57: couch
      58: potted plant
      59: bed
      60: dining table
      61: toilet
      62: tv
      63: laptop
      64: mouse
      65: remote
      66: keyboard
      67: cell phone
      68: microwave
      69: oven
      70: toaster
      71: sink
      72: refrigerator
      73: book
      74: clock
      75: vase
      76: scissors
      77: teddy bear
      78: hair drier
      79: toothbrush
      80: prohibitory
      81: danger
      82: mandatory
      83: other
    

再学習の実行

  1. 以下の手順を管理者権限コマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
  2. 再学習を実行する

    GPU 使用時は,以下のコマンドを実行する.

    処理時間の目安は10分から数十分程度である.

    cd /d c:%HOMEPATH%
    cd ultralytics
    yolo task=detect mode=train data=ts.yaml model=yolov8x.pt epochs=30 imgsz=640 verbose=True exist_ok=True rect=True
    

    実行後,「pretrained=True」と表示されるので,yolov8x.pt の学習結果が利用されていることが確認できる.

    このとき,次のように「Enter your choice」と表示された場合は 3, Enter と操作する.

    なお,GPU を使わないときは,次のように「device=cpu」を付ける.このときは,実行に10時間ほどかかる.

    cd /d c:%HOMEPATH%
    cd ultralytics
    yolo task=detect mode=train data=ts.yaml model=yolov8x.pt epochs=30 imgsz=640 verbose=True exist_ok=True rect=True device=cpu
    
  3. 再学習の終了の確認

    結果が保存されているディレクトリを確認する. 最後のところに「Results saved to runs\detect\...」のように表示される.

    dir コマンドで結果のファイルを確認する.

    dir runs\detect\train
    dir runs\detect\train\weights
    
  4. 学習したデータで物体検出する

    「runs/detect/train」は,先ほど確認した「結果が保存されているディレクトリ」である.

    yolo predict model=./runs/detect/train/weights/best.pt source='c:/archive/ts/ts/images/val/00001.jpg' save=True save_txt=True show=True exist_ok=True
    runs\detect\predict\00001.jpg
    

転移学習の実行

学習時に「freeze=22」の設定をつけることで,転移学習を行うことができる.

  1. 以下の手順を管理者権限コマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
  2. 転移学習の実行

    GPU を使うときは,次のように実行する.

    実行にかかる時間の目安は10分から数十分である.

    cd /d c:%HOMEPATH%
    cd ultralytics
    yolo task=detect mode=train data=ts.yaml model=yolov8x.pt epochs=30 imgsz=640 verbose=True exist_ok=True rect=True freeze=22
    

    実行後,「pretrained=True」と表示されるので,yolov8x.pt の学習結果が利用されていることが確認できる.

    このとき,次のように「Enter your choice」と表示された場合は 3, Enter と操作する.

    なお,GPU を使わないときは,次のように「device=cpu」を付ける.このときは,実行に10時間ほどかかる.

    cd /d c:%HOMEPATH%
    cd ultralytics
    yolo task=detect mode=train data=ts.yaml model=yolov8x.pt epochs=30 imgsz=640 verbose=True exist_ok=True rect=True device=cpu freeze=22
    
  3. 転移学習の終了の確認

    結果が保存されているディレクトリを確認する. 最後のところに「Results saved to runs\detect\...」のように表示される.

    dir コマンドで結果のファイルを確認する.

    dir runs\detect\train
    dir runs\detect\train\weights
    
  4. 学習したデータで物体検出する

    「runs/detect/train」は,先ほど確認した「結果が保存されているディレクトリ」である.

    yolo predict model=./runs/detect/train/weights/best.pt source='c:/archive/ts/ts/images/val/00001.jpg' save=True save_txt=True show=True exist_ok=True
    runs\detect\predict\00001.jpg