コンテンツへスキップ

LabelImg利用方法(アノテーション)

YOLO/Darknetの学習向け教師データ準備

「教師データの間違いはないように!」

画像検出や画像認識では、教師データが必要となります。対象の難しさにもよりますが、数百・数千枚という画像が必要となります。
本サイトで紹介しているめざましじゃんけん画像検出システムでは、YOLO/Darknetを利用しており、教師データのラベリングに、LabelImgを利用しました。

ラベリングのイメージですが、左の画像において、この対象が「janken_won」ですよ、この対象が「janken_goo」ですよと、実際の画像を用いて、検出させたい対象にレベルをつけて、機械学習時の教師データとして登録します。

一つの画像ファイルに、一つのラベリング情報を記録したテキストファイルを準備します。
以下が、ラベリング情報を記載したテキストファイルとなります。

クラス番号は、「janken_won」や「janken_goo」などの学習対象の分類番号となります。LabelImgを利用する際は、「classes.txt」というファイルを作成し、学習させたい対象の定義を行います。

LabelImgインストール

インストール方法は、色々な方法があります。
準備したPythonの実行環境にも依存すると思います。

  • Anaconda環境への導入
  • 通常のWindows環境へ導入

ここでは、通常のWindows環境への導入方法を紹介します。

PythonをWindows環境にインストールします。リンクより必要ファイルをダウンロードし、インストールを実行して下さい。
インストールしたPythonのpip3コマンドを用いて、「PyQt5」および「lxml」をインストールします。

GitHubよりLabelImgをダウンロードし、https://github.com/tzutalin/labelImg

labelImg-master.zipを解凍したフォルダまたはGitHubをクローンしたフォルダへコマンドラインで移動し、以下のコマンドを実行します。

インストールは以上となります。

LabelImg起動

以下のコマンドラインより、LabelImgを起動します。
1行目も2行目も起動コマンドとなります。
IMAGE_PATHには、学習対象画像フォルダ、PRE-DEFINED CLASS FILEには、学習させたい対象の分類(クラス)定義ファイル「classes.txt」を指定します。

めざましじゃんけん画像システムの「classes.txt」は、以下となっております。
上からゼロとなり、クラス0がjanken_active、クラス1がjanken_goo、・・・、クラス6がjanken_drawと全7クラスを画像検出対象としています。

LabelImgの利用方法は、画像つきで各種サイトで紹介されております。
特に共有しておきたいポイントは、以下です。

  • YOLO向けのテキストファイル出力を設定する
  • 絶対にラベル指定を間違えない
  • 「D」「W」「A」のショートカットキーを利用する
  • 基本的に「Auto Save Mode」「Single Class Mode」でラベリングを基本に作業実施

ラベリングが完了すると、用意した画像ファイルと対にラベリング情報の記載されたテキストファイルが作成されます。

参考にさせて頂いたサイト

機械学習に必要なアノテーションツールをwindowsにインストールする方法

labelImgとChainerCVを使ってアノテーション作業を楽にする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA