物体検出,セグメンテーション,画像分類,物体検出の再学習と転移学習(YOLOv8,PyTorch,Python を使用)(Windows 上)
Windows上で,YOLOv8をインストールし,物体検出,セグメンテーション,画像分類の実行が可能である.インストールは公式のGitHubページの説明に従って行い,コマンドプロンプトで操作する.YOLOv8 に付属の物体検出の学習済みモデルは,COCOデータセットで学習され,yolov8n.ptなどから選ぶことができる.再学習のために必要となる画像データとアノテーションは,YOLO形式のオープンデータを用いることができる.そのとき,クラス番号を 80 やそれより大きい値に振り直す.そのためのPythonプログラムはこのページで提供している.再学習では,オプションを指定して実行する.






【目次】
前準備
Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)または Visual Studio 2022 のインストール(Windows 上)
CUDAツールキットは、GPU上でコードをコンパイルするためにC++コンパイラを必要とします。そのため、事前にMicrosoft C++ Build Tools または Visual Studio (C++開発ワークロードを含む) をインストールしておく必要があります。
【インストールの判断】 Build Tools for Visual Studio は,C++コンパイラなどを含む開発ツールセットです. Visual Studio は統合開発環境であり,いくつかのエディションがあり,Build Tools for Visual Studioの機能を含むか連携して使用します.インストールは以下の基準で判断してください:
- コマンドラインからのビルドなど、C++コンパイラ機能のみが必要な場合:
- Visual Studioのエディタやデバッガなどの統合開発環境機能が必要な場合、あるいは、どちらをインストールすべきかよく分からない場合:
Visual Studio Community (または他のエディション) をインストール します.
Visual Studio 2022 をインストールする際に,「C++ によるデスクトップ開発」ワークロードを選択することで,必要なBuild Toolsの機能も一緒にインストールされます.
不明な点がある場合は,Visual Studio 全体をインストール する方が、後で機能を追加する手間が省ける場合があります.
Build Tools for Visual Studio 2022 のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者権限で起動します(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)。
以下の
winget
コマンドを実行します。winget
はWindows標準のパッケージマネージャーです。--scope machine
オプションはシステム全体にインストールすることを意味します。次のコマンドは,Build Tools for Visual Studio 2022と、多くのプログラムで必要とされるVC++ 2015以降の再頒布可能パッケージをインストールします.
- Build Tools for Visual Studio 2022 で C++ によるデスクトップ開発関連コンポーネントのインストール
CUDA開発には、標準のC++開発ツールに加えて、特定のコンポーネントが必要になる場合があります。
- Visual Studio Installer を起動します。
起動方法: スタートメニューから「Visual Studio Installer」を探して実行します.
- Visual Studio Build Tools 2022 の項目で「変更」ボタンをクリックします.
- 「ワークロード」タブで「C++ によるデスクトップ開発」をクリックして選択します。画面右側の「インストールの詳細」で、必要に応じて「v143 ビルドツール用 C++/CLI サポート(最新)」、「ATL」、「MFC」などをチェックします(これらは一般的なC++開発や特定のプロジェクトタイプで必要になる場合があります)。その後、「変更」をクリックしてインストールまたは変更を適用します.
- Visual Studio Installer を起動します。
Visual Studio Community 2022 のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者権限で起動します。
- インストールコマンドの実行
以下の
winget
コマンドを実行します。--override "--add ..."
部分で、インストールするワークロードやコンポーネントを指定しています。winget install Microsoft.VisualStudio.2022.Community --scope machine --override "--add Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core Microsoft.VisualStudio.Component.VC.CLI.Support Microsoft.VisualStudio.Component.CoreEditor Microsoft.VisualStudio.Component.NuGet Microsoft.VisualStudio.Component.Roslyn.Compiler Microsoft.VisualStudio.Component.TextTemplating Microsoft.VisualStudio.Component.Windows.SDK.Latest Microsoft.VisualStudio.Component.VC.Tools.x86.x64 Microsoft.VisualStudio.Component.VC.ATL Microsoft.VisualStudio.Component.VC.ATLMFC" winget install Microsoft.VisualStudio.2022.Community --scope machine Microsoft.VCRedist.2015+.x64
インストールされる主要なコンポーネントの説明:
NativeDesktop
(C++によるデスクトップ開発): CUDA開発に必要なC++コンパイラ(VC.Tools.x86.x64
)やWindows SDK (Windows.SDK.Latest
)など、基本的な開発ツール一式を含みます。CoreEditor
: Visual Studioの基本的なコードエディタ機能を提供します。VC.CLI.Support
: C++/CLIを用いた開発サポート(通常、純粋なCUDA C++開発では不要な場合もあります)。NuGet
: .NETライブラリ管理用(C++プロジェクトでも利用されることがあります)。VC.ATL
/VC.ATLMFC
: 特定のWindowsアプリケーション開発フレームワーク(通常、CUDA開発自体には直接必要ありません)。
システム要件と注意事項:
- 管理者権限でのインストールが必須です。
- 必要ディスク容量:10GB以上(選択するコンポーネントにより変動)。
- 推奨メモリ:8GB以上のRAM。
- インストール過程でシステムの再起動が要求される可能性があります。
- 安定したインターネット接続環境が必要です。
後から追加のコンポーネントが必要になった場合は,Visual Studio Installerを使用して個別にインストールすることが可能です.
- インストール完了の確認
インストールが成功したか確認するには、管理者権限のコマンドプロンプトで以下のコマンドを実行します。
winget list Microsoft.VisualStudio.2022.Community
リストに表示されればインストールされています。
トラブルシューティング:
インストール失敗時は,以下のログファイルを確認すると原因究明の手がかりになります:
%TEMP%\dd_setup_
.log %TEMP%\dd_bootstrapper_ .log (
は実行日時に対応する文字列) - (オプション) Visual Studio Installer での確認と変更
winget
でのインストール後も、Visual Studio Installerを使ってインストール内容を確認・変更できます。- Visual Studio Installer を起動します。
- Visual Studio Community 2022 の項目で「変更」をクリックします。
- 「ワークロード」タブで「C++ によるデスクトップ開発」がチェックされていることを確認します。必要であれば、「個別のコンポーネント」タブで特定のツール(例: 特定バージョンのMSVCコンパイラ、CMakeツールなど)を追加・削除できます。「インストールの詳細」で「v143 ビルドツール用 C++/CLI サポート(最新)」などが選択されているかも確認できます。変更後、「変更」または「インストール」をクリックします。
Python 3.10,Git のインストール(Windows 上)
Pythonは,プログラミング言語の1つ. Gitは,分散型のバージョン管理システム.
【手順】
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
次のコマンドを実行
次のコマンドは,Python ランチャーとPython 3.10とGitをインストールし,Gitにパスを通すものである.
次のコマンドでインストールされるGitは 「git for Windows」と呼ばれるものであり, Git,MinGW などから構成されている.
winget install --scope machine Python.Launcher winget install --scope machine Python.Python.3.10 winget install --scope machine Git.Git powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\Git\cmd\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
【関連する外部ページ】
- Python の公式ページ: https://www.python.org/
- Git の公式ページ: https://git-scm.com/
【サイト内の関連ページ】
【関連項目】 Python, Git バージョン管理システム, Git の利用
Build Tools for Visual Studio 2022,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN 8.9.7 のインストール(Windows 上)
【サイト内の関連ページ】 NVIDIA グラフィックスボードを搭載しているパソコンの場合には, NVIDIA ドライバ, NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストールを行う.
- Windows での Build Tools for Visual Studio 2022 のインストール: 別ページ »で説明
- Windows での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.9.7 のインストール手順: 別ページ »で説明
【関連する外部ページ】
- Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)の公式ダウンロードページ: https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/
- NVIDIA ドライバのダウンロードの公式ページ: https://www.nvidia.co.jp/Download/index.aspx?lang=jp
- NVIDIA CUDA ツールキットのアーカイブの公式ページ: https://developer.nvidia.com/cuda-toolkit-archive
- NVIDIA cuDNN のダウンロードの公式ページ: https://developer.nvidia.com/cudnn
PyTorch のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
- PyTorch のページを確認
- 次のようなコマンドを実行(実行するコマンドは,PyTorch のページの表示されるコマンドを使う).
次のコマンドを実行することにより, PyTorch 2.3 (NVIDIA CUDA 11.8 用)がインストールされる. 但し,Anaconda3を使いたい場合には別手順になる.
事前に NVIDIA CUDA のバージョンを確認しておくこと(ここでは,NVIDIA CUDA ツールキット 11.8 が前もってインストール済みであるとする).
PyTorch で,GPU が動作している場合には,「torch.cuda.is_available()」により,True が表示される.
python -m pip install -U --ignore-installed pip python -m pip uninstall -y torch torchvision torchaudio torchtext xformers python -m pip install -U torch torchvision torchaudio numpy --index-url https://download.pytorch.org/whl/cu118 python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
Anaconda3を使いたい場合には, Anaconda プロンプト (Anaconda Prompt) を管理者として実行し, 次のコマンドを実行する. (PyTorch と NVIDIA CUDA との連携がうまくいかない可能性があるため,Anaconda3を使わないことも検討して欲しい).
conda install -y pytorch torchvision torchaudio pytorch-cuda=11.8 cudnn -c pytorch -c nvidia py -c "import torch; print(torch.__version__, torch.cuda.is_available())"
【サイト内の関連ページ】
【関連する外部ページ】
YOLOv8 のインストール(Windows 上)
YOLOv8 の公式の GitHub リポジトリ https://github.com/ultralytics/ultralytics に従ってインストールを実施する.
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
コマンドプロンプトを管理者として実行する方法については,別ページ »を参照してください.
- 必要なパッケージのインストールおよびソースコードのダウンロード
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
- Windows で,コマンドプロンプトを実行
- 物体検出機能の実行
YOLOv8 の公式 GitHub リポジトリ https://github.com/ultralytics/ultralytics の手順に従って実施する.
実行結果は runs\detect\predict\bus.jpg に保存される.なお,predictは実行のたびに predict2,predict3 のように変更する必要がある.
物体検出の学習済みモデルには, 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
- セグメンテーション機能の実行
公式ドキュメント 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
- 画像分類機能の実行
公式ドキュメント 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 上)
コマンドラインでの実行
- Windows で,コマンドプロンプトを実行
- 以下のコマンドで物体検出を実行
「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
- 実行結果は runs\detect\predict\labels ディレクトリに保存される
- そのディレクトリ内のファイルを確認
1列目はクラス番号,2列目から5列目はバウンディングボックスの座標データとなる.
Python プログラムによる物体検出結果の取得
- Python プログラムの実行
Python プログラムの実行環境:
- Windows では python (Python ランチャーは py)
- Ubuntu では python3
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も利用可能.
Python の詳細については:別ページ »を参照
python
- 以下の Python プログラムで物体検出結果を取得可能.
yolov8x は COCO データセットで学習済みのモデルである.物体検出の学習済みモデルには, 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 をダウンロードし,次の処理を実施した上で学習を実行する
- クラス番号のうち 0から 79は COCOデータセットで使用される番号であるため,
Traffic Signs Dataset では,80, 81, 82, 83 を使用する.
Traffic Signs Dataset は,0, 1, 2, 3 を使用しても学習は可能であるが, COCOデータセットとの混同を防ぐため,80, 81, 82, 83 を使用する.
- Traffic Signs Dataset のデータセットを,train(学習)データと validation(検証)データに分割する
- ファイルは次のディレクトリ構成で配置する.
├── images/ ├─train/ └─val/ ├── labels/ ├─train/ └─val/
- 画像の横幅を統一する.本実装では,640にリサイズしている.
- Traffic Signs Dataset in YOLO format のページにアクセスする
- 「Download」 をクリックしてダウンロードを開始する
- Kaggleへの登録もしくはGoogle アカウントでのサインインが要求された場合は,画面の指示に従って処理を進める.その後,再度「Download」 をクリック
- archive.zip がダウンロードされる.
- C:\archive ディレクトリを作成し,archive.zip をこのディレクトリ内に展開する.
次のように配置する.
- Windows でコマンドプロンプトを起動
- 以下のコマンドでカレントディレクトリを「C:\archive」に移動し,python を起動
cd C:\archive\ts python
- 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()
- 処理完了の確認
このプログラムの実行により,クラス番号を 80, 81, 82, 83 に変更する.
各クラス番号に対応するクラス名は,ファイル c:\archive\classes.names に記載されており,以下の通りである.
80, prohibitory 81, danger 82, mandatory 83, other
- 画像の幅を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()
- 検証用のディレクトリを作成し,指定のファイルを移動する.
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
- データセット設定ファイル 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
再学習の実行
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)する
コマンドプロンプトを管理者として実行する方法: 別ページ »を参照
- 再学習を実行する
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
- 再学習の終了の確認
このとき,結果が保存されているディレクトリを確認する. 最後のところに「Results saved to runs\detect\...」のように表示されるので確認
dir コマンドでファイルを結果を確認.
dir runs\detect\train dir runs\detect\train\weights
- 学習したデータで物体検出してみる
「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」の設定をつけることで,転移学習を行うことができる.
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
- 転移学習の実行
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
- 転移学習の終了の確認
このとき,結果が保存されているディレクトリを確認する. 最後のところに「Results saved to runs\detect\...」のように表示されるので確認
dir コマンドでファイルを結果を確認.
dir runs\detect\train dir runs\detect\train\weights
- 学習したデータで物体検出してみる
「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