オッサンはDesktopが好き

自作PCや機械学習、自転車のことを脈絡無く書きます

ReNomIMGの傷検出を試してみる

前回セットアップした*1ReNomIMGを使って,傷検出を行います.

1. ReNomTAGでラベル作成

今回もDAGM画像*2を使います.
このデータセットには楕円式のパラメタから成るラベルが付いているのですが,今回はReNomの機能を使って手動でラベル付けします.

1. 1 フォルダ作成

先ず,フォルダ階層を作ります.

f:id:changlikesdesktop:20190501124355p:plain:w500

public, dataset, label以外のフォルダ名は,任意に設定できます.

今回はclass1の傷あり1〜100を学習に使うことにしました.
dagm_class1_def以下を複数作って,種類の異なる画像をまとめて解析することもできるようです.

1. 1 ラベル作成

workspaceフォルダからReNomTAGを起動します.

f:id:changlikesdesktop:20190501051540p:plain:w500

1. 2 タグの定義

URLに下記を入力し,管理者モードでReNomTAGに入ります.

http://localhost:8080/admin#/

"tag name"をclass1を,”key"を1に入力して"+ Add New Tag"します.
keyは,この後の作業のショートカットキーになります.

f:id:changlikesdesktop:20190501124858p:plain:w500

通常モードでReNomTAGに戻ります.

http://localhost:8080/#/

1. 3 ラベル付け

傷部分をマウスで選択して,先ほど設定したショートカットキー”1"を押します.

f:id:changlikesdesktop:20190501052752p:plain:w500

"save"すると,ラベル付け完了です.
これを全ての画像について行います.
1時間くらいで,100枚の画像のラベル付けが終わりました.

2. ReNomIMGで学習

2. 1 フォルダ作成

作業フォルダを決めてReNomIMGを起動すると,勝手にフォルダ階層が出来ます.

f:id:changlikesdesktop:20190501125638p:plain:w500

画像,ラベル,予測画像(実画像)をそれぞれ所定のフォルダに保存します.
今回,実画像にはClass 1傷ありの101〜150を使っています.

2. 2 Datasetの指定

”Detection”を選んで,”New”すると,設定画面が出ます.

f:id:changlikesdesktop:20190501102959p:plain:w500

”Name”にDataset名を入力します.

f:id:changlikesdesktop:20190501103158p:plain:w500

触ったのはこれだけです.
”Ratio”の0.8はデフォルト値です.
おそらく,datasrc/imgに入れた画像の中で,8割を学習用に,2割を評価用に使うという意味だと思います.

2.3 Modelの指定

タブを"Model"に切り替えて,先ほど作ったDatasetを選択します.
"Detection Algorithm"は何も考えずに"SSD"にしました.

f:id:changlikesdesktop:20190501130627p:plain:w500

”Create”すると,学習が始まります.

2. 4 学習

f:id:changlikesdesktop:20190501103930p:plain:w500

30分位待つと学習が終わります.
(計算時間はGPU環境に依ると思います)

f:id:changlikesdesktop:20190501114235p:plain:w500

2. 5 実画像に学習済みモデルを適用

上の画面の下方にある”Prediction Result”に表示されているのは学習画像なので,予測画像(実画像)を改めて計算します.

f:id:changlikesdesktop:20190501114621p:plain:w500

f:id:changlikesdesktop:20190501131151p:plain:w500

3. 感想

簡単ですね.
(LinuxDeep Learningについての知見が全く無いところからやると大変かな)
欲を言えば,ReNomTAGで作ったラベルをわざわざReNomIMGのワークスペースにコピーしたり,双方に学習画像を入れたりするのが面倒でした.
ReNomTAGのワークスペースとReNomIMGのワークスペースをリンクできるとより良いと感じました.

今回解らなかったのが,Model指定の"load pretrain weight"です.
このチェックボックスを外すと予測精度が格段に悪くなります.
汎用的な学習済みネットワークをダウンロードして来るのかも知れないですね.
そもそも,今回は100枚しか画像を使っていないので,画像をそのまま学習するだけでは不十分だったのかも知れません.

オープンソースなので,色々参考にしたいと思います.