AI(ディープラーニング)で課題解決!2020年01月02日 15:30

AI(ディープラーニング)を試してみました。
きっかけは、ソニーさんのニューラルネットワークコンソール(NNC)です。
それまでは、ディープラーニングには興味はありましたが、環境の構築だけで挫折しそうだったので敬遠していました。
2017年の秋ごろにNNCを知って、これならデータさえ揃えれば気軽に試せると思って飛びつきました。
そして、年が明けた2018年1月から詩行錯誤しながら試してみたところ実用できそうな感触を得ました。

・抱えていた課題
半導体(IR-LED)の組み立て工程で発光パターンをカメラで撮影して目視で検査を行っています。
10年くらい前に輝度の面積比率などのパラメータで自動判別できないか検討しましたが、面積比率のパラメータだけでは目視判定の精度に至らず断念、”次の世代の人たちに託そう”と勝手に思い始めていました。

目視判定はベテランの検査員が行っていますが、判定基準が明確になっていないこともあり、新たな検査員を育てることが非常に難しい状況になっていて自動判別化が急務になっています。
ベテラン作業員はあと数年で定年で、”私どうしよう”って一人で重荷を背負っている状態
それなら、10年前にやり残したことをやるしかない。 やらない理由はない!

・本当に課題を解決できるのか
NNCで試した時は良品と不良品を合わせて200枚(各100枚)程度のデータで行ったけど
さすがにデータ量が少ないと思って画像を90度刻みで回転させて約400枚に水増ししました。
結果は約96%の正解率(Accuracy)でしたが、これを99%以上にするにはどのようにしたらよいのか
見当がつかない。
画像の認識なのでCNNが良さそうなのはネットの情報でわかりましたが、CNNの構成や各種設定(ハイパーパラメータ)はどのようにした方がよいのか、、、わ・か・ら・な・い。
最終的には始業錯誤するしかないみたいだ。
でも原理など基本的なところがわかっていないとかなり効率が悪い。。。

いけない、いけない。
”できない・やらない理由”を考えてもしょうがない。
せっかく”やってみて”実用的なことがわかったのだから、次にどうすればよいか考えよう。
ディープラーニングの原理とかを理解するのが目的ではなく、課題解決することが目的だから
とにかく現場で使えるようにするにはどうすればよいかを考えよう。
原理とかアルゴリズムの詳細は社内の頭のいい人を巻き込んで説明してもらえばいいだけ。
適用を許可してもらうために関係部署への根回しも少しづつやっていこう。

NNCでは、学習と評価はできるけどシステムに組み込まないと現場では使えない。
NNCはSONYさんが誰でもAIを使える(体験できる?)システムとして無料で公開したソフト。
幸いなことに先人たちが既に使い方や活用方法などの情報を発信している。
まだ小さいけどコミュニティも立ち上がっている。
実装には、”Neural Network Libraries”が用意されているらしい。
何とかなるだろう。

・とりあえず何をやっていくか
まずは、ゴール。
 現在、”目視で判定している発光パターン検査の判定部分をAIで自動化する”
最終的に分類も含めた完全自動化に持っていきたいけど、それは次のステップにしよう。

大雑把なアクションアイテムは以下の項目かな。
①AIを活用した発光パターン目視判定の自動化をPRする
②データ(サンプル)集め
③データのラベル付け&クレンジング
④システムへの実装

・AIを活用した発光パターン目視判定の自動化をPRする
 現状を整理して今後の方向性を提示する。
 実はIR-LEDの1品種だけは発光パターンの自動判別を行っていて自動機で選別まで実施している。
 これは20年以上前に誰でも知っているであろう某中央研究所で検討・開発されたアルゴリズムで実装されている。
 アルゴリズム自体は教科書でも出てくるマハラノビス距離を用いたもので、発光パターンの30度刻みの濃淡投影分布の形状で判別を行う。
 形状の数値化は波形解析で用いられるフーリエ変換係数を用いて良品サンプルのデータとのマハラノビス距離で判別を行うというもの。
 試しに未適用の品種で目視判定と比較したところ、目視で不良判定されたサンプルの約60%が良品判定された。
 判定閾値(マハラノビス距離)を小さくすれば不良判定される割合は減るが、今度は良品が不良となり歩留りが低下する。
 要するに目視判定と同等に判別できていない。。。
 
 次に同じサンプルを用いてAI(ディープラーニング)で評価してみる。
 かなりの精度で良品と不良が判別される。
 完全良品や完全不良は素人の私でも識別できるがグレーのものは違いが判らない。
 これを見事に判別した結果を見ると少し寒気がした。
 これらのデータを盛り込んだ資料を提示してPRすればいいかな。

 下図が従来のマハラノビス距離とAIで判定させた時のそれぞれの累積確率分布。

累積確率分布図1
  ※実際のデータではなくてイメージです。

・データ収集とデータのラベル付け&クレンジング
 データ(サンプル)集めは、作業者にお願いして不良品を保管しておいてもらう。
 良品は流れ品の発光パターンを撮影したものを使えばいいか。
 それより手間がかかりそうなのがデータのラベル付け&クレンジングかな。
 
・システムへの実装
 ”Neural Network Libraries”を調査して開発環境(言語)を決めないといけない。
 現システムは約20年前に導入したもので、PCはWindows2K、カメラはアナログでPCにビデオキャプチャボードを入れたもの。
 この機会にPCとカメラは新調したい。

今回は前置きでここまでにして、次回からはAIでの自動判別を実現するために行った(行う)具体的な内容を書いていきたいと思います。
(実際のデータや結果は公開できませんが、実装するにあたって調べたことやNNCを活用するうえで役に立ちそうなことなどを記載していきます)