インスタンスセグメンテーションのためにUltralytics YOLO26をカスタムトレーニングする方法
モデルがピクセルレベルのマスクを使用して各個体を識別・分離するインスタンスセグメンテーションのために、Ultralytics YOLO26をカスタムトレーニングする方法を学びましょう。

近年の技術的進歩のおかげで、私たちの生活の中で静かでありながら大きな役割を果たす多くのスマートシステムがAIによって動かされています。例えば、車が信号無視をした際にカメラが自動的に違反を記録したり、自動品質検査システムが製造ラインで製造上の欠陥を発見したりする場合、AIが舞台裏でその作業を行っています。
特に、コンピュータビジョンとして知られるAIの一分野は、機械が画像や動画を解釈して理解することを可能にします。コンピュータビジョンにより、システムはリアルタイムでオブジェクトを認識し、動きを追跡し、視覚的な詳細を分析できるようになり、交通監視、産業検査、ロボット工学といったアプリケーションに不可欠なものとなっています。
These capabilities are made possible through computer vision models such as Ultralytics YOLO26, which supports a variety of vision tasks, including object detection and instance segmentation. While object detection identifies objects using simple bounding boxes, instance segmentation goes further by outlining each object at the pixel level, enabling more accurate and reliable results in real-world scenarios.

図1. YOLO26を使用した画像内のオブジェクトのセグメンテーション
YOLO26のようなモデルは学習済みであり、人、車、動物などの日常的なオブジェクトをすぐにセグメント化できます。しかし、より具体的なアプリケーションでは、カスタムトレーニングを行うことも可能です。言い換えれば、モデルはオブジェクトがどのように見えるか、そしてどのように正確に輪郭を描くかを学習できます。
この記事では、インスタンスセグメンテーションのためにUltralytics YOLO26をカスタムトレーニングする方法を解説します。早速始めましょう!
Link to this sectionインスタンスセグメンテーションとは何か?#
モデルのトレーニングに取り組む前に、一歩下がってインスタンスセグメンテーションが実際に何を意味するのかを理解しましょう。
インスタンスセグメンテーションは、モデルが画像内の個々のオブジェクトを見つけ出し、その正確な形状を輪郭として描くことを可能にするコンピュータビジョンタスクです。単にオブジェクトが存在するかどうかを特定するのではなく、モデルは画像内のすべてのピクセルを見て、それが特定のオブジェクトに属しているかどうかを判断します。
つまり、オブジェクトが重なり合っていたり、非常に近くにある場合でも、それらを分離できるということです。インスタンスセグメンテーションを視覚化しやすくするための重要な概念がマスクです。
マスクとは、オブジェクトの領域のみを覆うピクセルレベルの輪郭のことです。他の部分はそのままにして、蛍光ペンでオブジェクトを塗りつぶすようなものだと考えると分かりやすいでしょう。
各オブジェクトには独自のマスクが割り当てられるため、モデルは2台の車や隣り合って立っている2人など、たとえ同じ種類のものであっても、あるオブジェクトと別のオブジェクトを区別することができます。

図2. インスタンスセグメンテーションの概要
インスタンスセグメンテーションをより深く理解するために、他の一般的なコンピュータビジョンタスクと比較してみましょう。オブジェクト検出ではバウンディングボックスを使用しますが、これはオブジェクトの周囲に描かれる単純な長方形です。バウンディングボックスは高速で便利ですが、オブジェクトの正確な形状を捉えることはできません。
一方、セマンティックセグメンテーションは画像内のすべてのピクセルをカテゴリごとにラベル付けしますが、同じクラスの別々のオブジェクトを区別しません。インスタンスセグメンテーションは、オブジェクトのカテゴリを特定し、個々のオブジェクトに個別のマスクを割り当てることで、両方のアプローチの長所を組み合わせています。
インスタンスセグメンテーションは非常に詳細な情報を提供するため、自動品質検査、医療画像診断、ロボット工学などの現実世界のアプリケーションで特に役立ちます。正確な測定、正確な境界、またはオブジェクトの分離を必要とするタスクは、このピクセルレベルの理解から恩恵を受けることができます。
Link to this sectionUltralytics YOLO26はインスタンスセグメンテーションをサポートしています#
Ultralytics YOLO26は、現実世界のビジョンのタスクを迅速かつ効率的に処理するように設計された、エンドツーエンドのNMSフリーで最先端のコンピュータビジョンモデルです。これはUltralytics YOLO検出モデルファミリーに属しており、画像や動画をリアルタイムで処理しながら正確な結果を提供できます。
YOLO26は、オブジェクト検出、姿勢推定、画像分類、方向付きバウンディングボックス検出(OBB検出)、インスタンスセグメンテーションなど、単一のフレームワーク内で複数のビジョンタスクをサポートしています。
YOLO26は学習済みモデルとして提供されており、COCOデータセットやImageNetデータセットのような広く使用されている大規模なデータセットから、人、車両、日常的なアイテムなどの一般的なオブジェクトを認識することを既に学習しています。追加のトレーニングなしで、すぐにモデルの使用を開始できます。
しかし、独自のオブジェクト、特定の環境、または特殊な照明条件が関与するアプリケーションでは、カスタムモデルトレーニングによって結果を大幅に向上させることができます。独自のラベル付き画像でYOLO26をトレーニングすることで、モデルに対して何を監視すべきか、そして特定のユースケースに合わせてどのようにオブジェクトの輪郭をより正確に描くかを教えることができます。
このプロセスはファインチューニングとも呼ばれます。ゼロからモデルをトレーニングする代わりに、ファインチューニングは学習済みのYOLO26モデルから開始し、独自のデータを使用してモデルを適応させます。モデルは既にエッジ、形状、テクスチャなどの一般的な視覚パターンを理解しているため、特定のオブジェクトを学習するために必要なラベル付き画像の数や時間は大幅に少なくて済みます。
簡単に言えば、ファインチューニングはゼロからモデルを構築するよりも高速で効率的で、誰でも利用しやすい手法です。YOLO26のカスタムトレーニングは、初心者や限られたデータと計算リソースで作業するチームにとっても実用的な選択肢です。
Link to this sectionYOLO26のインスタンスセグメンテーションアプリケーションを探る#
では、インスタンスセグメンテーションはどのような場面で有効なのでしょうか?オブジェクトを区別し、特に混雑していたり重なり合っている場合にその正確な形状を理解することが重要な状況において有効です。
インスタンスセグメンテーションが大きな違いを生む一般的なワークフローをいくつか紹介します。
- 航空およびドローン画像:このタスクにより、ドローンはマッピング、検査、測量のために航空画像内の建物、車両、植生などのオブジェクトを分離できるようになります。
- スポーツ分析:インスタンスセグメンテーションは、試合やトレーニングセッション中に背景から個々のアスリートを分離することで、選手の動きや相互作用を分析するのに役立ちます。
- 建設およびインフラ監視:建物、橋、道路のメンテナンス計画のために、構造要素、ひび割れ、損傷箇所を特定するのに役立ちます。
- ヘルスケアおよび医療画像診断:インスタンスセグメンテーションにより、細胞、組織、または医療器具の輪郭を正確に描き出すことが可能になり、より正確な分析と診断をサポートします。
- 農業および環境モニタリング:作物、果物、植物の病気を識別および分離できるため、収穫量の推定や標的を絞った治療が容易になります。

図3. YOLO26を使用して雑草をセグメント化する例(ソース)
Link to this sectionインスタンスセグメンテーションのためのYOLO26カスタムトレーニングの仕組み#
次に、カスタムトレーニングの仕組みについて説明します。モデルのトレーニングは専門的に聞こえるかもしれませんが、全体的なプロセスは単純です。
画像を準備し、モデルに学習させたいオブジェクトにラベルを付け、小さな設定ファイルを構成し、Ultralytics Pythonパッケージを使用してYOLO26をトレーニングします。Ultralytics Pythonパッケージは、ゼロからすべてを構築することなく、YOLOモデルのトレーニング、テスト、デプロイを行うためのツールを提供するソフトウェアライブラリです。
Link to this sectionステップ1:カスタムデータセットを準備する#
最初のステップは、カスタムセグメンテーションデータセットを準備することです。データセットは、モデルに学習させたいオブジェクトを示す画像のコレクションです。
異なる角度、照明、背景、オブジェクトのサイズなど、現実世界の条件を反映した画像を含めるようにしてください。画像が多様であるほど、モデルのパフォーマンスは向上します。
インスタンスセグメンテーションの場合、画像にアノテーションも必要です。アノテーションとは、モデルが何を学習すべきかを知るために各画像のオブジェクトにラベルを付ける作業です。単純なボックスを描くのではなく、各オブジェクトの周囲に詳細な輪郭(ポリゴン)を描いて、その正確な形状をマークします。これらの輪郭は、モデルが予測するように学習するマスクになります。
これらのラベルを作成するために使用できるオープンソースのアノテーションツールがいくつかあります。これらのツールの多くは、画像をアップロードして直接オブジェクトの輪郭を描くことができるユーザーフレンドリーなインターフェースを提供しています。
画像とアノテーションの準備ができたら、それらをトレーニング用フォルダと検証用フォルダに整理します。一般的な分割方法は、画像の80%をトレーニング用、20%を検証用とすることですが、データセットのサイズに応じて、トレーニング用70%、検証用30%とするのも一般的です。トレーニングセットはモデルを学習させ、検証セットは以前に見ていない画像に対してどれだけうまく機能するかを測定するために使用されます。
この分割のバランスを維持し、両方のフォルダに多様な例が含まれていることを確認することが重要です。適切にトレーニングセットと検証セットが分割された、クリーンで適切にラベル付けされたデータセットが、強力なインスタンスセグメンテーションモデルの基盤となります。
Link to this sectionステップ2:データセットのYAMLファイルを作成する#
画像とアノテーションを準備した後、次のステップはデータセットのYAMLファイルを作成することです。このファイルは、データセットの場所と、トレーニング中にモデルが学習すべきオブジェクトクラスを指定します。
このファイル内で、データセットのルートディレクトリ、トレーニングおよび検証画像フォルダへのパス、クラス名のリストを定義できます。クラス名はアノテーションファイルで使用されるクラス番号と同じ順序でリストする必要があるため、すべてが正しく一致するようにしてください。
正確な形式について質問がある場合は、詳細について公式Ultralyticsドキュメントを参照できます。
Link to this sectionステップ3:Ultralytics Pythonパッケージをインストールする#
データセットとYAMLファイルの準備ができたら、次のステップはUltralytics Pythonパッケージのインストールです。
このパッケージには、YOLO26モデルのトレーニング、検証、推論の実行、およびエクスポートに必要なツールが含まれています。複雑なトレーニングパイプラインをゼロから構築することなく、YOLOモデルを扱うための合理化された方法を提供します。
Ultralytics Pythonパッケージをインストールする前に、コードをどこで実行するかを選択することも重要です。Ultralyticsパッケージは、以下のようなさまざまな開発環境で作業できます。
- コマンドラインインターフェース(CLI):テキストベースの環境であり、コマンドを入力してコンピュータと対話します。グラフィカルインターフェースのようにボタンをクリックしたりメニューを移動したりするのではなく、プログラムを実行してタスクを直接実行するための書面による指示を入力します。
- Jupyter Notebooks:小さなセクションでコードを書いて実行し、その結果を即座に確認できる対話型の環境です。これは実験や学習に役立ちます。
- Google Colab:ローカルインストールを必要とせず、グラフィックスプロセッシングユニット(GPU)へのオプションのアクセスを提供するクラウドベースのノートブックプラットフォームです。これは多くの場合、初心者にとって最も簡単なオプションです。
環境を選択したら、Ultralytics Pythonパッケージをインストールできます。インストールするには、次のコマンドを実行します。
pip install ultralytics
Google ColabやJupyter Notebookなどのノートブックベースの環境を使用している場合は、コマンドの先頭に感嘆符を追加してください。インストールで問題が発生した場合は、Ultralyticsのドキュメントまたは一般的な修正と環境設定のヒントについてはトラブルシューティングガイドを参照してください。
インストール後、学習済みのYOLO26セグメンテーションモデルをロードしてトレーニングを開始する準備が整います。
Link to this sectionステップ4:インスタンスセグメンテーションのためのYOLO26のトレーニング#
トレーニングを開始する前に、モデルのサイズを選択する必要があります。YOLO26モデルには、Nano (n)、Small (s)、Medium (m)、Large (l)、Extra Large (x)といったさまざまなサイズがあります。
小さなモデルはトレーニングが速く、中央処理装置(CPU)やエッジデバイス上でより効率的に実行できますが、大きなモデルは通常、より高い精度を提供しますが、より多くのメモリを必要とし、GPUアクセラレーションの恩恵を受けます。始めたばかりの方や限られたハードウェアで作業している場合は、Nanoバージョン(YOLO26n)が実用的な選択肢です。
モデルサイズを選択したら、次のステップは学習済みのセグメンテーションモデルをロードし、カスタムデータセットでトレーニングを開始することです。そのためには、学習済みのモデルファイル、データセットYAMLファイルへのパス、エポック数、および画像サイズを以下のように指定する必要があります。
from ultralytics import YOLO
model = YOLO("yolo26n-seg.pt")
results = model.train(data="path/to/file.yaml", epochs=100, imgsz=640)エポック数は、モデルがトレーニングデータセット全体を何回通過するかを決定します。各エポックで、モデルは予測を行い、正しいアノテーションと比較し、誤差を計算し、パフォーマンスを向上させるために内部パラメータを更新します。
トレーニングが正しく開始されると、モデルの構成、データセットのスキャン、トレーニングの進行状況がターミナルまたはノートブックに表示されます。トレーニングが続行されると、損失値と評価メトリクスが各エポック後に更新され、モデルが時間の経過とともにどのように改善しているかを示します。
Link to this sectionステップ5:カスタムトレーニングされたモデルのパフォーマンスを評価する#
トレーニングプロセスが完了したら、モデルのパフォーマンスメトリクスを確認して検証できます。Google Colabでは、「runs」フォルダ、次に「segment」フォルダ、最後に「train」フォルダに移動すると、主要なパフォーマンス指標を表示するログが見つかります。
Python環境で作業するユーザーの場合、トレーニング結果はデフォルトで現在の作業ディレクトリ内の「runs/train/」ディレクトリに保存されます。各トレーニングの実行ごとに、runs/train/expやruns/train/exp2などの新しいサブディレクトリが作成され、そこにその実験に関連するログ、保存された重み、その他の出力があります。
CLIを使用している場合は、「yolo settings」コマンドを使用してこれらの結果にアクセスし、管理できます。このコマンドを使用すると、トレーニングログや実験の詳細に関連するパスや構成を表示または変更できます。
保存された出力の中には、トレーニング中に生成されたグラフもあります。これらのグラフは、モデルが時間の経過とともにどのように改善したかを示します。例えば、モデルが学習するにつれて損失がどのように減少したか、そして精度(precision)、再現率(recall)、mAP(mean average precision)などの評価メトリクスがエポック全体でどのように増加したかが表示されます。

図4. モデルを評価するために分析できるグラフの種類(ソース)
これらの視覚的な傾向は、モデルが正常にトレーニングされたかどうか、またトレーニングの開始から終了までにどれだけ改善されたかを理解するのに役立ちます。数値メトリクスとグラフの両方を検討することで、新しい画像でテストする前に、インスタンスセグメンテーションモデルがどの程度機能しているかをより明確に把握できます。
Link to this sectionステップ6:モデルをテストして推論を実行する#
モデルを検証した後、最後のステップは新しい画像でテストすることです。このプロセスは推論と呼ばれ、学習済みのモデルを使用して未知のデータに対して予測を行うことを意味します。
Pythonで推論を実行するには、次のようにします。
results = model.predict("path/to/image.jpg", save=True, conf=0.3)この例では、「path/to/image.jpg」をテストしたい画像のパスに置き換えることができます。
「save=True」設定は、予測されたセグメンテーションマスクを元の画像の上に描画した新しい画像を生成して保存するようにモデルに伝えます。
「conf=0.3」設定は信頼度閾値を制御します。つまり、モデルは少なくとも30%の確率で正しいと確信している予測のみを表示します。この値を下げるとより多くの検出結果が表示される可能性があり、上げるとモデルの選択性が高まります。
コマンドを実行すると、モデルはrunsディレクトリ内に新しいフォルダを作成し、そこに出力画像を保存します。その保存された画像を開いて、セグメンテーションマスクがオブジェクトの境界線にどれだけうまく追従しているか、重なり合うオブジェクトが正しく分離されているかを視覚的に確認できます。
異なる画像、背景、照明条件でモデルをテストすると、トレーニングデータセット以外でどのように機能するかをより明確に理解できます。結果が一貫して正確に見えたら、モデルをエクスポートしてデプロイする準備が整います。
Link to this sectionステップ7:モデルをエクスポートしてデプロイする#
モデルをテストしてパフォーマンスが良好であることを確認した後、最終ステップはエクスポートしてデプロイすることです。エクスポートにより、学習済みのYOLO26モデルは、本番環境のサーバー、エッジデバイス、モバイルアプリケーションなどの異なる環境で実行できる形式に変換されます。
Ultralyticsは複数のエクスポート形式をサポートしており、デプロイ設定に最適なものを選ぶことができます。例えば、プラットフォーム間での広範な互換性を確保するためにONNXへエクスポートしたり、NVIDIAハードウェア上での最適化されたGPUパフォーマンスのためにTensorRTへ、あるいはIntelデバイス上での効率的なCPUベースのデプロイのためにOpenVINOへエクスポートできます。これらの統合により、トレーニング環境外でモデルを簡単に実行し、優れたリアルタイムパフォーマンスを得ることができます。
Pythonで以下のコマンドを使用してモデルをエクスポートできます。
model.export(format="onnx")このコマンドは学習済みモデルをONNX形式に変換します。デプロイのニーズに応じて「onnx」を他のサポートされている形式に置き換えることができます。
エクスポートが完了すると、モデルはウェブサービス、組み込みビジョンシステム、ロボット工学プラットフォーム、産業検査システムなどのアプリケーションに統合できます。この段階で、カスタムトレーニングされたYOLO26インスタンスセグメンテーションモデルは、実験から現実世界でのデプロイへと移行できます。
Link to this section重要なポイント#
インスタンスセグメンテーションのためにUltralytics YOLO26をカスタムトレーニングすることで、特定のユースケースに真に適合するモデルを構築する柔軟性が得られます。明確なデータセットを準備し、YAMLファイルを設定し、学習済みのセグメンテーションの重みを使用してトレーニングし、結果を確認することで、ピクセルレベルで各オブジェクトを正確に輪郭を描くようにモデルを学習させることができます。テストおよびエクスポートが完了すれば、YOLO26モデルは開発からマルチスケールの現実世界でのアプリケーションへと移行できます。
私たちのコミュニティに参加し、AIについての詳細を発見するためにGitHubリポジトリをご覧ください。独自のビジョンAIプロジェクトを構築したい場合は、ライセンスオプションを確認してください。当社のソリューションページにアクセスして、ヘルスケアにおけるAIや小売業におけるビジョンAIのようなアプリケーションについてさらに詳しく調べてみてください。






