0 YOLOシリーズノート
1 はじめに
前回の演習では、環境のセットアップから独自のデータセットのトレーニング、OpenCV を使用したトレーニング済みモデルのデプロイまで、ターゲット認識に YOLOv5 を使用する方法をまとめました。この記事では、主にアプリケーションのフィールドセマンティックセグメンテーションを拡張します。アプリケーションの使用を開始する方法について。
2 基本概念
開始する前に、セマンティック セグメンテーションとインスタンス セグメンテーションが何であるかを理解しておくとよいでしょう。この記事を参照してください。簡単に言えば、セマンティック セグメンテーションは画像の各ピクセルにカテゴリを割り当てますが、同じカテゴリ内のオブジェクトは区別されません。インスタンスセグメンテーションは、特定のオブジェクトのみを分類するという点でターゲット認識と非常によく似ていますが、実際には、境界がボックスに限定されず、不規則な境界となる「ターゲット認識の洗練」として理解できると思います。次の画像を使用してそれを示すことができます [画像も上記の記事からのものです]
3つのデータセット
ターゲット認識と同様に、セグメンテーション問題の学習データセットの構造も次のようになります。
├───images
│ ├───train
│ └───val
└───labels
│ ├───train
│ └───val
└───data.yaml
このうち、yaml
ファイル形式とターゲット認識も同じであるため、ここでは繰り返しません。
もう 1 つは、データセット内のラベルのスタイルです。ターゲット認識と同様に、以下に示すように、データをトレーニングする前にラベル形式を YOLO 形式に変換する必要があります。
このうち、一番左側が対象カテゴリ、右側が対象輪郭のN点座標を2*N
表す0から1までの浮動小数点数であり、いずれも正規化された値です。
4 トレーニング
前のトレーニングターゲット認識と同様に、パラメーターを変更する必要がない場合は、yolo プロジェクトの下で Python ファイルを直接実行できます。プロジェクトの下にsegment
フォルダーがあり、その中のコードがセマンティックセグメンテーションを学習させるプログラムです。
同様に、使用方法もファイルの前のコメントに明確に書かれています。
5 データアノテーション
データセットを作成して自分自身にラベルを付ける必要がある場合はどうすればよいでしょうか? labelImg に似たlabelmeという注釈ソフトウェアがあるようですが、インストール方法は labelImg と同じで、 pip 経由で直接インストールできます。
pip install labelme
使い方も比較的簡単で、すぐに使い始めることができます。使用するためのリンクは次のとおりです。