Yolo 深圳
深セン
今すぐ参加

Ultralytics カスタムトレーニング方法

Ultralytics をインスタンスセグメンテーション用にカスタムトレーニングする方法を学びます。このモデルはピクセルレベルのマスクを使用して、個々のオブジェクトを識別し分離します。

近年の技術進歩により、私たちの生活で目立たないが重要な役割を果たす多くのスマートシステムはAIによって駆動されている。例えば、車が赤信号を無視した際にカメラが自動的に違反を記録したり、自動品質検査システムが生産ライン上の製造欠陥を発見したりする時、その背後でAIが働いているのだ。

特に、コンピュータビジョンと呼ばれる人工知能の一分野は、機械が画像や動画を解釈し理解することを可能にする。コンピュータビジョンにより、システムは物体の認識、track 、視覚的詳細のリアルタイム分析が可能となり、交通監視、産業検査、ロボット工学などの応用において不可欠な技術となっている。

これらの機能は、Ultralytics などのコンピュータビジョンモデルによって実現されています。このモデルは、物体検出やインスタンスセグメンテーションを含む様々なビジョンタスクをサポートします。物体検出が単純なバウンディングボックスを用いて物体を識別するのに対し、インスタンスセグメンテーションはさらに一歩進んで、各物体をピクセルレベルで輪郭描写します。これにより、実世界のシナリオにおいてより正確で信頼性の高い結果が可能となります。

図1. YOLO26を用いた画像内の物体分割

YOLO26のようなモデルは事前学習済みであり、人、車、動物などのsegment 。しかし、より特定の用途では、カスタムトレーニングも可能です。つまり、モデルは物体の見た目を理解し、正確に輪郭を描く方法を学習できるのです。

本記事では、インスタンスセグメンテーションUltralytics カスタムトレーニングする方法について解説します。さっそく始めましょう!

インスタンスセグメンテーションとは?

モデルをトレーニングする前に、一歩引いてインスタンスセグメンテーションが実際に何を意味するのかを理解しましょう。

インスタンスセグメンテーションは、画像内の個々のオブジェクトを特定し、その正確な形状を輪郭で囲むコンピュータビジョンタスクである。単にオブジェクトの存在を識別するだけでなく、モデルは画像内のすべてのピクセルを分析し、それが特定のオブジェクトに属するかどうかを判断する。 

これは、物体が重なり合っていたり非常に接近していたりする場合でも、それらを分離できることを意味します。インスタンスセグメンテーションを容易に可視化できる重要な概念がマスクです。 

マスクとは、オブジェクトの領域のみを覆うピクセル単位の輪郭です。ハイライトペンでオブジェクトを塗りつぶし、それ以外の部分はそのまま残すようなものと考えてください。 

各オブジェクトには固有のマスクが割り当てられ、これによりモデルは同一タイプであっても(例えば2台の車や隣り合って立つ2人の人物など)オブジェクトを区別できるようになります。 

図2. インスタンスセグメンテーションの概観

インスタンスセグメンテーションの理解を深めるために、他の一般的なコンピュータビジョンタスクと比較してみましょう。物体検出ではバウンディングボックス(物体の周囲に描かれる単純な長方形)が用いられます。バウンディングボックスは高速で有用ですが、物体の正確な形状を捉えることはできません。 

一方、セマンティックセグメンテーションは画像内の各ピクセルをカテゴリ別にラベル付けするが、同一クラスの個別のオブジェクトを区別しない。インスタンスセグメンテーションは、オブジェクトカテゴリを識別し、個々のオブジェクトごとに別々のマスクを割り当てることで、両方の手法の長所を組み合わせたものである。

インスタンスセグメンテーションは詳細な情報を提供するため、自動品質検査、医療画像診断、ロボティクスなどの実世界アプリケーションにおいて特に有用である。精密な測定、正確な境界線、または物体の分離を必要とするタスクは、このピクセルレベルの理解から恩恵を受けることができる。

Ultralytics はインスタンスセグメンテーションをサポートします 

Ultralytics 、現実世界の視覚タスクを迅速かつ効率的に処理するために設計された、エンドツーエンドで非最大抑制(NMS)を必要としない最先端のコンピュータビジョンモデルです。Ultralytics YOLO 検出YOLO 属し、リアルタイムで画像や動画を処理しながら正確な結果を提供します。 

YOLO26は単一のフレームワーク内で複数のビジョンタスクをサポートしており、物体検出、姿勢推定、画像分類、方向付き境界ボックス検出(obb )、インスタンスセグメンテーションが含まれます。 

YOLO26は箱から出してすぐに使える状態で提供されます。つまり、COCO やImageNet といった大規模で広く利用されているデータセットから、人物、車両、日用品などの一般的な物体を認識する能力を既に学習済みです。追加のトレーニングなしで、すぐにモデルの使用を開始できます。

ただし、アプリケーションが固有の物体、特定の環境、または特殊な照明条件を扱う場合、カスタムモデルトレーニングにより結果を大幅に改善できます。独自のラベル付き画像でYOLO26をトレーニングすることで、特定のユースケースに合わせてモデルに探すべき対象を正確に教え込み、物体の輪郭をより正確に描画させることが可能です。

このプロセスは微調整(ファインチューニング)とも呼ばれます。モデルを一から訓練する代わりに、微調整では事前学習済みのYOLO26モデルを起点とし、独自のデータを用いてモデルを慎重に適応させます。モデルは既にエッジ、形状、テクスチャといった一般的な視覚パターンを理解しているため、特定の物体を学習するのに必要なラベル付き画像が大幅に少なく、学習時間も大幅に短縮されます。

端的に言えば、ファインチューニングはモデルを一から訓練するよりも高速で効率的、かつアクセスしやすい。カスタムYOLO26の訓練は、データや計算リソースが限られている初心者やチームにとっても現実的な選択肢である。

YOLO26インスタンスセグメンテーションの応用を探る

では、インスタンスセグメンテーションはどこで効果を発揮するのか? 特に物体が密集したり重なり合ったりする状況において、物体を区別し、その正確な形状を理解することが重要な場面で効果を発揮します。

インスタンスセグメンテーションが真の価値を発揮する代表的なワークフローを以下に示します:

  • 航空およびドローン画像処理: このタスクにより、ドローンは航空画像内の建物、車両、植生などの物体を分離し、マッピング、点検、測量に活用できます。
  • スポーツ分析:インスタンスセグメンテーションは、試合やトレーニング中に個々の選手を背景から分離することで、選手の動きや相互作用の分析を支援します。
  • 建設・インフラ監視:建物、橋梁、道路の構造要素、ひび割れ、損傷箇所を特定し、維持管理計画の立案を支援します。
  • 医療と医療画像:インスタンスセグメンテーションにより、細胞、組織、または医療器具を正確に輪郭描写することが可能となり、より正確な分析と診断を支援します。
  • 農業および環境モニタリング:作物、果実、または植物病害を識別・分離できるため、収量の推定や対象を絞った処理の実施が容易になる。
図3. YOLO26を用いた雑草のセグメンテーション例(出典

YOLO26を用いたインスタンスセグメンテーションのカスタムトレーニングの仕組み

次に、カスタムトレーニングの仕組みについて説明します。モデルのトレーニングは技術的に聞こえるかもしれませんが、全体的なプロセスは単純明快です。

画像の準備、モデルに学習させたいオブジェクトのラベル付け、小さな設定ファイルの構成を行い、Python YOLO26をトレーニングできます。Python 、YOLO トレーニング、テスト、デプロイに必要なツールを最初からすべて構築する必要なく、すぐに使える形で提供するソフトウェアライブラリです。

ステップ1: カスタムデータセットを準備する

最初のステップは、カスタムセグメンテーションデータセットの準備です。データセットとは、モデルに学習させたいオブジェクトを示す画像の集合体です。 

実際の状況を反映した画像を含めるよう努めてください。例えば、異なる角度、照明、背景、物体のサイズなどです。画像のバリエーションが多ければ多いほど、モデルの性能は向上します。

例えばセグメンテーションでは、画像にアノテーションが必要です。アノテーションとは各画像内のオブジェクトにラベルを付けることで、モデルが何を学習すべきかを認識できるようにします。単純な四角形を描く代わりに、各オブジェクトの正確な形状を示す詳細な輪郭線(ポリゴン)を描画します。これらの輪郭線がマスクとなり、モデルが予測を学習する対象となります。

これらのラベルを作成するために使用できるオープンソースの注釈ツールがいくつかあります。これらのツールの多くは、画像をアップロードして直接オブジェクトの輪郭を描けるユーザーフレンドリーなインターフェースを提供しています。 

画像とアノテーションの準備が整ったら、それらをトレーニング用フォルダと検証用フォルダに整理できます。一般的な分割比率は、画像の80%をトレーニング用、20%を検証用としますが、データセットの規模によっては70%をトレーニング用、30%を検証用とする場合もよくあります。トレーニングセットはモデルを学習させ、検証セットはモデルが未見の画像に対してどれだけ適切に動作するかを測定するために使用されます。

この分割をバランスよく保ち、両方のフォルダに多様な例が含まれるようにすることが重要です。適切に分割されたトレーニングデータと検証データから成る、明確にラベル付けされたクリーンなデータセットは、強力なインスタンスセグメンテーションモデルの基盤となります。

ステップ2: データセットのYAMLファイルを作成する

画像とアノテーションの準備が整ったら、次のステップはデータセットのYAMLファイルを作成することです。このファイルは、データセットの保存場所と、モデルがトレーニング中に学習すべきオブジェクトクラスを明示します。

このファイルでは、データセットのルートディレクトリ、トレーニング用および検証用画像フォルダのパス、クラス名のリストを定義できます。クラス名は、アノテーションファイルで使用されているクラス番号と同じ順序でリストする必要があります。これにより、すべてが正しく一致します。

正確なフォーマットについてご質問がある場合は、詳細 Ultralytics 公式Ultralytics をご参照ください。 

ステップ3:Ultralytics Python インストールする

データセットとYAMLファイルの準備が整いましたので、次のUltralytics Python インストールすることです。 

このパッケージには、YOLO26モデルのトレーニング、検証、推論実行、およびエクスポートに必要なツールが含まれています。複雑なトレーニングパイプラインを一から構築することなく、YOLO 効率的に扱う方法を提供します。

Python インストールする前に、コードを実行する場所を選択することも重要です。Ultralytics 、以下のような複数の開発環境で利用できます:

  • コマンドラインインターフェース(CLI):コマンドを入力してコンピュータと対話するテキストベースの環境です。グラフィカルインターフェースのようにボタンをクリックしたりメニューを操作したりする代わりに、プログラムを実行したりタスクを直接実行したりするための指示を文字で入力します。
  • Jupyter Notebooks: コードを小さなセクションごとに記述・実行し、即座に出力を確認できるインタラクティブな環境です。実験や学習に役立ちます。
  • Google : ローカルインストール不要のクラウドベースのノートブックプラットフォームで、オプションでグラフィックス処理ユニット(GPU)へのアクセスを提供します。初心者にとって最も簡単な選択肢となることが多いです。

環境を選択したら、Ultralytics Python インストールできます。インストールするには、次のコマンドを実行してください:

pip installultralytics

Google upyter Notebookなどのノートブックベースの環境を使用している場合は、コマンドの先頭に感嘆符(!)を追加してください。インストールに関する問題が発生した場合は、Ultralytics またはトラブルシューティングガイドを参照し、一般的な修正方法や環境設定のヒントを確認できます。 

インストール後、事前学習済みYOLO26セグメンテーションモデルを読み込み、トレーニングを開始する準備が整います。

ステップ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)

エポック数は、モデルが全トレーニングデータセットを通過する回数を決定します。各エポックごとに、モデルは予測を行い、それらを正しいアノテーションと比較し、誤差を計算し、性能向上のために内部パラメータを更新します。

トレーニングが正常に開始されると、ターミナルまたはノートブックにモデル設定、データセットのスキャン、トレーニングの進捗状況が表示されます。トレーニングが進むにつれ、各エポック終了後に損失値と評価指標が更新され、モデルの経時的な改善状況が確認できます。

ステップ5:カスタムトレーニング済みモデルの性能を評価する

トレーニングプロセスが完了したら、モデルのパフォーマンス指標を確認・検証できます。Google 、「runs」フォルダ→「segmentフォルダ→「train」フォルダの順に移動すると、主要なパフォーマンス指標を表示するログが見つかります。

Python ユーザーの場合、トレーニング結果はデフォルトで現在の作業ディレクトリ内の「runs/train/」ディレクトリに保存されます。各トレーニング実行ごとに、runs/train/exp や runs/train/exp2 などの新しいサブディレクトリが作成され、その実験に関連するログ、保存された重み、その他の出力をそこで確認できます。

CLIを使用している場合、「yolo コマンドを使用してこれらの結果にアクセスし管理できます。このコマンドにより、トレーニングログや実験の詳細に関連するパスや設定を表示または変更できます。

保存された出力の中には、トレーニング中に生成されたグラフも含まれています。これらのグラフは、モデルが時間とともにどのように改善したかを示しています。例えば、モデルが学習するにつれて損失がどのように減少したか、また精度、再現率、平均精度などの評価指標がエポックごとにどのように向上したかを表示します。

図4. モデル評価のために分析可能なグラフの種類(出典

これらの視覚的傾向は、モデルが正常に学習したかどうか、また学習開始時から終了時までにどの程度改善したかを理解するのに役立ちます。数値指標とグラフの両方を確認することで、新しい画像でのテストに進む前に、インスタンスセグメンテーションモデルの性能がどの程度良好であるかをより明確に把握できます。

ステップ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ディレクトリ内に作成します。保存された画像を開くことで、セグメンテーションマスクが物体の境界をどれだけ正確に追っているか、また重なり合った物体が正しく分離されているかを視覚的に確認できます。

異なる画像、背景、照明条件でモデルをテストすることで、トレーニングデータセット外での性能をより明確に把握できます。結果が一貫性と正確性を示したら、モデルはエクスポートおよびデプロイの準備が整った状態です。

ステップ7: モデルのエクスポートとデプロイ

モデルをテストし、良好な性能を確認した後、最終ステップとしてモデルのエクスポートとデプロイを行います。エクスポートにより、学習済みのYOLO26モデルが、本番サーバー、エッジデバイス、モバイルアプリケーションなど、様々な環境で実行可能な形式に変換されます。

Ultralytics 複数のエクスポート形式Ultralytics 、デプロイ環境に合わせて最適な形式を選択できます。例えば、幅広いプラットフォーム互換性ONNX 、NVIDIA GPU TensorRT 、Intel CPU OpenVINO エクスポートが可能です。これらの統合により、トレーニング環境外でのモデル実行が容易になり、強力なリアルタイム性能を実現します。

Python でモデルをエクスポートするには、次のコマンドPython :

model.export(format="onnx")

このコマンドは、学習済みモデルをONNX に変換します。デプロイメントの要件に応じて、「onnx」を他のサポートされている形式に置き換えることができます。

エクスポート後、モデルはWebサービス、組み込みビジョンシステム、ロボティクスプラットフォーム、産業用検査システムなどのアプリケーションに統合できます。この段階で、カスタムトレーニング済みのYOLO26インスタンスセグメンテーションモデルは、実験段階から実環境での展開へと移行できます。

主なポイント

Ultralytics インスタンスセグメンテーションは、特定のユースケースに完全に適合するモデル構築の柔軟性を提供します。明確なデータセットの準備、YAMLファイルの設定、事前学習済みセグメンテーション重みを用いたトレーニング、結果の検証を通じて、モデルに各オブジェクトをピクセルレベルで正確に輪郭描画させることを可能にします。テストとエクスポートが完了したYOLO26モデルは、開発段階からマルチスケールの実世界アプリケーションへ移行できます。

コミュニティに参加し、GitHubリポジトリを閲覧してAIについてさらに学びましょう。独自のビジョンAIプロジェクトを構築したい場合は、 ライセンスオプションをご確認ください。ソリューションページでは、医療分野におけるAI小売業向けビジョンAIなどの応用事例を詳しくご紹介しています。

AIの未来を
共に築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。

無料ではじめる