GIMPを使った機械学習の学習データの作り方

with コメントはまだありません

機械学習による画像認識モデルを開発する際、学習データを用意する必要があります。データ作成の最初の段階は人力に頼る必要があります。大量な単純作業を行う必要があるので、使いやすい・効率的なツールが必要になります。ここではフリーの画像編集ソフトGIMPを使った方法を紹介します。

作成する機械学習の画像データ

機械学習には大きく分けて、「分類」と「回帰」に分けられます。画像分野では「分類」が特に多いと思います。画像内に何が写っているか、判断することです。その分類の中に「セグメンテーション」というのがあります。セグメンテーションは、画像のピクセル単位で対象の認知・分類を行います。よって、学習に用いる画像もピクセル単位で、モデルに認知させたい対象を指定する必要があります。なので、学習データセットを用意するだけでもより大きな労力が必要になります。

セグメンテーションの機械学習の例はコチラ(壁面のひび割れ抽出)

GIMPのインストール

GIMPはフリーの画像編集ソフトです。Windows、Mac、LinuxなどあらゆるOSで利用することができます。あらゆる画像編集ツールが用意されています。コチラでインストーラをダウンロードし、インストールしてください。インストールが完了したら起動してください。以下のようなウィンドウが表示されます。

GIMP画面

学習データの作成

学習データの手順は以下の通りです。今回は壁画像のヒビを対象とし、セグメンテーションの学習データセットを作成していきます。

  1. 画像をGIMPに読み込ませる
  2. ラベルレイヤーの追加
  3. ペイントブラシツールの選択と設定
  4. 対象(ひび割れ箇所)の目視
  5. 対象をペイントブラシでなぞる
  6. ラベルレイヤーをPNGでエクスポート
  7. GIMPファイルの保存

画像をGIMPに読み込ませる

画像をGIMPにドラッグしたり、「開く」でGIMPに画像を読み込ませることができます。すると以下のようにGIMPで画像が描画されます。次に新しいレイヤーを追加します。右下の赤い四角で囲われているアイコンをクリックしてください。

GIMPで画像を開く

ラベルレイヤーを追加

アイコンをクリックすると以下のウインドウが表示されます。Layer nameは適当で良いです。特に設定する項目はないのでOKをクリックしましょう。

レイヤー新規追加ウインドう

GIMPウインドウの右側にレイヤーパネルがあります。追加したレイヤーが以下のように表示されているはずです。レイヤーは上から順に表示されるようになっています。目のアイコンをクリックするとそのレイヤーは非表示になります。また、編集したいレイヤーを選択することで、そのレイヤーだけを編集することができます。学習データを作成する際は、新規に作成した「Label」レイヤーを選択するようにしましょう。

レイヤーパネル

ペイントブラシツールの選択と設定

ウィンドウの左側に編集ツールがあります。今回はペイントブラシツールを使います。筆のようなアイコンです。以下の①のアイコンをクリックしてください。次にペイントの種類を選びます。筆のようにぼやけているものでなく、輪郭の周囲がはっきりしているものを選びます。②をクリックすると複数の種類の中から選ぶことができます。最後に、ペイントの大きさを選びます。大きさは、なぞるヒビの大きさによって適宜変わります。ヒビが十分になぞれるくらいのサイズを選択しましょう。

ペイントブラシツール

対象(ひび割れ箇所)の目視

画像の中から対象のヒビを目視で探します。画像をGIMPに読み込んだ際、全体表示になるので細かく見ることが難しいです。GIMPウィンドウ下に%で表示されている数字があります。こちらは拡大率なので見やすい設定を選択することができます。そして縦横で移動しながら対象を探します。

ただ、機械学習のデータ作成は膨大な作業量が必要になることがあります。非効率なマウスによる選択などの所作をなるべく省いた方が作業が早くなります。

例えば画像の拡大・縮小はCtlキー(Macの場合はコマンドキー)を押しながらマウスのスクロールを回すことで自在に変えられます。画像内の移動は、縦はスクロールで移動できます。縦横で移動したい時は、スクロールを押しながらマウスを動かすことで移動することができます。

画像内のヒビを目視

対象をペイントブラシでなぞる

画像内にヒビを目視できたらなぞりましょう。マウスを左クリックしながらなぞることができます。なぞるのを間違えたらCtlキーを押しながらzを押すと前の状態に戻せます。もしくは編集ツールのパネルに「Eraser Tool」(消しゴム)があります。この消しゴムを選択し、間違えた箇所をなぞることで消すことができます。消しゴムを利用する際、Labelのレイヤーが選択されていることを確認してください。画像レイヤーを選択した状態で消しゴムを使うと、下の画像が消されてしまいます。

しっかりとヒビがなぞれているか?確認する場合は、Labelレイヤーを非表示(目のアイコンをクリック)してみてください。表示と非表示を交互にすることできちんとなぞれているか、確認することができます。

ヒビをなぞる

ラベルレイヤーをPNGでエクスポート

画像内で目視可能なヒビを全てなぞることができたら、出力します。

まず、レイヤーパネルで画像レイヤーを非表示にしてください(目のアイコンをクリック)。ラベルレイヤー(ヒビをなぞったレイヤー)のみを表示するようにしてください。そして、上の「File」にある「Export As…」を選んでください。下のようなウィンドウが出力ウィンドウが表示されます。出力フォーマットは「PNG image」を選んでください。ファイル名は適当で良いですが、分かりやすく「xxxx_label.png」(xxxxは元画像の名前)などが良いでしょう。「Export」をクリックするとまた新しくウィンドウが表示されます。特に設定することはないので、「Export」をクリックします。画像のサイズによりますが、ヒビだけをなぞった画像が出力されます。

出力された画像は、元の画像とのサイズが全く同じで、ヒビの箇所も重なるはずです。

機械学習モデルでデータを学習させる際、412×412などのサイズに切り抜く必要があります。それはプログラムなどで可能です。

なぞった画像の出力

GIMPファイルの保存

最後に作業をGIMPファイルで保存します。学習データを再編集する必要が出てくる可能性があります。例えば、なぞったヒビは正しくない・新しくヒビを見つけたのでなぞりたいなど。よって、Labelレイヤーを保存しておくと後々作業が楽になります。上の「File」にある「Save As…」をクリックしてください。新規保存ウィンドウが表示されます。ファイル名は適宜付けてもらい、「Save」をクリックすると保存されます。

まとめ

以上がGIMPを使った機械学習の学習データの作成手順になります。フリーソフトでなるべく効率的に行う方法として紹介しました。

対象がヒビ以外に複数ある場合は、レイヤーを増やし、ペンの色を黒ではなく赤などにすると分かりやすく編集することができます。

Leave a Reply