![見出し画像](https://assets.st-note.com/production/uploads/images/31283497/rectangle_large_type_2_d762843d181c080a2ffd209a34711c2d.jpg?width=1200)
ML.netでコンクリート製品のひび割れを判断する その0
ついに画像判別のサンプルコードにたどり着きました。
サンプルコードを書いて終わりにしようかなと思いましたが、世の中で需要が高いコードなのかなと思います。
上手に使えば、人間が目視検査をしている工程を自動検査に切り替えできますので。
それだけに、単純にソースコードだけを書いて終わりでは、私の学習になりません。
複数の段階を作って、学習してみたいと思います。
第一段階・サンプルソースコードを書いていきます。
第二段階・サンプルソースコードにある問題点(おそらくディレクトリ指定)を修正します。
第三段階・何回かに分けて疑問点や調整が必要な場合の対応をします。
第四段階・クラスライブラリーの処理を学習関数と判別関数に分けます。
PDFファイルの解説を読んでいたら、実際に画像判別を使う時、学習に膨大な時間が必要と書いてありました。
確かに、何かの画像に対して正確な判断を求められる時、判定の材料になる画像は沢山使うべきでしょう。
この学習作業が仮に5分だとすると、1枚の画像を判定するたびに行っていては実用的なプログラムと言えません。
この5分、事前に出来る作業ですから、別の処理として実装するのが良いと思います。
もう少し、実際のプログラムを運用する場面を考えてみます。
学習作業、時間が経過するごとに判断に使えそうな画像が増えてくるでしょう。
増えた画像を追加して、新しい学習結果を作りました。
この新しい学習結果、以前と比較して判定内容が悪くなったらどうしますか?
学習結果のファイル、数世代分は保存しておいて、新しい学習結果の成績が悪い時はボツにする必要がありそうです。
この時、どうやって成績が良いと判定するのか、事前に運用ルールを決めておく必要がありそうです。
そして、学習用の画像ファイルについても事前に注意が必用な事、十分に関係者へ連絡しておきます。
検査が不合格な画像ファイルだけを準備していても、正しい学習が不可能だからです。
不合格の画像ファイルと合格の画像ファイル、とにかく沢山の種類が必用だと思います。
あとは膨大な時間が学習に必用となった時、学習を加速させる手法が知りたいと思います。
#学習 #勉強 #AI #機械学習 #プログラミング #Visual #CSharp #BASIC #ソースコード #Windows #自動判定
#画像 #判定 #傷 #外観 #検査 #外観検査