19-05 誤認識を減らす手順
●デコボコを「背景」として認識させる
このPythonプログラムでは背景クラスとして"9: bumpy"が設けられています。これがないとこのように、コンクリートのでこぼこした表面が「ひび割れ」と誤認識されてしまいます。
一口にデコボコといっても色々な表層があり、また光の当たり具合によっても見た目が変わってきます。したがってデコボコの画像を種々多様・大量に用意してbumpyクラスに追加していきます。 |
●デコボコを誤認識する場合はこのルーチン
@適当に学習させてFPGAに実装し、ひび割れを認識させてみる。
A誤認識が見られる場合はそのデコボコの表面を写真に撮る。
B写真を小さく分割する(Windowsアプリを使う)。
C分割した画像を訓練用と評価用に分けて"9: bumpy"に追加し、@に戻る。
これを繰り返し、徐々に誤認識を減らしていきます。 |
●ひび割れと誤認識しがちなデコボコの一例
図19‐25はデコボコの誤認識が見られるコンクリート表面を写真に撮ったものです。これをWindowsアプリで細かく分割します。 |
図19‐25 コンクリート表面は結構デコボコだらけ
●画像分割用の便利なWindowsアプリ
分割にはPhotoScapeを使います。適当にダウンロード、インストールしましょう。
実行すると図19‐26のようになるので「分割」をクリックします。 |
図19‐26 フリーの画像編集ソフトPhotoScape
●セルのサイズを適当に決めて分割
図19‐27のように画像を追加し、列と行を適当に指定して分割します(*1)。
(*1)同図では47×46ピクセルで分割しているが、Pythonプログラム内で30×30ピクセルにリサイズされる。 |
図19‐27 CNNの1ブロックは30×30画素なのでこれくらいのサイズに分割
●誤認識がどんどん減っていく
するとoutputディレクトリに分割された画像が現れます(図19‐28)。これらを訓練用と評価用に分けてフォルダに追加し、学習→FPGAに実装→評価と進めば誤認識が減っていると思います。
それでも誤認識が見られる場合は、その表面の写真を撮り、同じことを繰り返します。 |
図19‐28 47x46ピクセルの画像が20x16個現れる
●自力でデータセットを強化/作成することが可能
このようにデコボコの画像を撮って誤認識を減らしていきます。また、ひび割れの画像も自分で用意して"0:
posi"クラスに追加していくとデータセットが強化されます。
●ひび割れのリアルタイム検出
この動画ではFPGA+CMOSカメラでコンクリートのひび割れ検出をしています。ラズベリーパイなどとは違って、遅延なし・高フレームレートで検出できることが分かります。 |
最初のページへ
目次へ戻る
|