LoginSignup
0

More than 3 years have passed since last update.

posted at

updated at

imglabのビルド/使い方

背景

アニメキャラクターの顔パーツの座標推定モデルを制作するにあたりデータセットを作成することになった.自分でアノテーションツールを作るのも手間なので既存の便利そうなimglabを使うことにした.

imglab

物体検出や顔特徴の検出の記事を(個人的には)よく見かける機械学習のライブラリdlibがあるが,imglabはそれに付属している画像に対するアノテーションツールである.
一般的に,物体検出モデルであれば画像のどの領域に物体が写っているかをBoundingBoxで示した学習データが必要になる.道路や街の映像に対し車や人等を示したデータセットは大量に見つかるが,自分の作りたい用途向けに使える既存のデータセットがなければ自分でちまちまデータを作る必要がある.
ペイントで座標を確認してExcelにまとめるなんて方法では効率が悪すぎる.グラフィカルに位置を指定したり,次の画像にかんたんに飛べるなどの機能をもったアノテーションツールを使ったほうが現実的だ.

ビルド(for Windows)

  1. CMakeのインストール
    CMakeのページ(https://cmake.org )からダウンロードしてインストールする.
  2. dlibの取得
    dlibのページ(http://dlib.net/ )からダウンロードして展開する.
  3. ビルド
cd dlib-19.17\tools\imglab\  
mkdir build && cd build  
'C:\Program Files\CMake\bin\cmake.exe' --build . --config Release  
make -j1  
cd Release  

※必要に応じてVisual Studio 2017のインストールが必要

使い方

基本的な使い方

  1. アノテーションしたい画像を1つのフォルダにまとめる
mkdir images  
cp -r <somewhere>\*.jpg ./images/  
  1. アノテーションデータが保存されるxmlファイルを作成する
cd images  
..\imglab.exe -c <name>.xml .  
  1. imglabを起動して,実際にアノテートする
..\imglab.exe <name>.xml
  • Shiftを押しながらマウスボタンダウンしてアップすると矩形が指定できる
  • 矩形周辺をダブルクリックすると選択状態に変わり,さらにDeleteを押すと矩形を除去できる
  • 事前に「Next Label」テキストボックスにラベル名を入力しておくことで矩形にラベリングできる
    • 物体検出であれば「車」「人」などのラベル付け
  • 学習に悪い作用をしそうな画像は「File」->「Remove Selected Images」で除去できる
  • 必ず,最後に「File」->「Save」で保存する
  • 画像領域内でCtrlを押しながらマウスホイール操作で拡大縮小ができる

顔のパーツアノテーション向けの使い方

以下のようにimglabを起動することで,矩形に付随するパーツの位置を示すことができるようになる.

..\imglab.exe <name>.xml --parts "LE RE LM RM AG"

矩形を選択した状態で,パーツ位置で右クリックを押すとパーツ名一覧が表示される.
一覧から1つ選択するとパーツ名に対応する点を示すことができる.

以下,必死にアノテーション作業を続けている途中経過.
そのうち,モデルの方の学習の話にとりかかれるはず...
annotation_imglab.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0