Yolo学習用データセットの作成ツール:labelImg

Yolo学習用データセットの作成法のメモ。Yoloの学習データを作成するときは、画像からオブジェクトの領域を矩形で指定する必要がある。そのためのツールとしては、BBox-Label-Toolがあるが、使いづらい上に、矩形領域のテキストファイルをYolo用に変更しなければならず手間が多い。Yolo用のテキストファイルも生成できるtzutalinさんのlabelImgを紹介する。

GitHubリポジトリ

インストール (Ubuntu16.04, python3)

  • cd src
  • git clone https://github.com/tzutalin/labelImg.git
  • sudo apt-get install pyqt5-dev-tools
  • sudo pip3 install lxml
  • cd labelImg
  • make qt5py3

実行方法

  • ここでは、一枚の画像に一クラスの場合だけを考える。
  • クラスのラベルテキストファイルclass.txtを作る。一行に一つのラベルにする。以下はコマンド例。
    • cd ~/image_path
    • echo bento > class.txt
  • 実行コマンドは次のとおり。私の環境では画像ファイルのあるパスとクラスのラベルテキストファイルを指定しないとうまく動作しない場合があつた。
    • python3 labelImg.py [画像ファイルのあるパス] [クラスのラベルテキストファイル]
    • 以下は実行例。labelImgはラベルイメージなのでl(エル)の次は大文字のI(アイ)。打ち間違いに注意。
      • cd ~/src/labelImg
      • python3 labelImg.py ~/image_path  ~/image_path/class.txt
  • [重要] 左にあるツールバーの下矢印をクリックして、隠れているツールを出す。標準ではPascal/VOCとなっている箇所をクリックしてYoloにする。これでYolo用のファイルができる。

    • なお、Yolo用の設定では、右にある[default class]、[diffcult]は無効となる。
  • GUI操作でもデータを作成できるが、作業を効率化するための設定をする。上のメニュー[View]をクリックして、[Auto Saving]と[Single Class Mode]にチェックを入れる。
  • 領域を選択するために「wキー」を押す、縦、横の直線が出たら始点を合わせて左マウスボタンをクリックして、そのままオブジェクト領域の終点までカーソールを移動して指を離す。先ほど、Auto Savingモードに設定したので、この時点でファイルが保存される。最初だけ保存先を聞かれるので画像ファイルと同じディレクトにする。
  • 次の画像にするために「dキー」を押す。画像が変わったら「wキー」を押して領域を選択できるようにし、マウス操作で矩形領域を決める。以下のこの繰り返し。

キー操作

Ctrl + u  ディレクトリからすべての画像ファイルを読み込む
Ctrl + r  アノテーションのディレクトリを変更
Ctrl + s  保存
Ctrl + d  現在のラベルと矩形をコピー
Space  現在の画像を検証したとフラグをつける
w  矩形の生成
d  次の画像
a  前の画像
del  選択した矩形の消去
Ctrl++  ズームイン
Ctrl–  ズームアウト
↑→↓←  矢印キー:選択した矩形の移動

  • 終わり。お疲れ様!

コメントを残す

メールアドレスが公開されることはありません。