生産工程の外観検査にAIを容易に導入できるツール「AI Inspector(AIインスペクター)」について解説を行う。
本製品はその名の通りAI機能をもつ検査ソフトウェアであるが、従来型の画像処理アルゴリズムと最新のディープラーニング技術の双方が透過的に使用ができ、生産ラインに合わせた画像検査システムを柔軟に構築できる。
画面上でビジュアルなアイコンを操作して容易に設定が行え、難解なプログラミング言語の習得を必要としないことから、生産ラインの変化に合わせて機械エンジニアや設備エンジニアが自分自身の手で柔軟に設定を変更し調整できる。
本製品は画像処理やAIの実装に特別な知識や訓練を必要とせず、誰でも簡単に製造現場にAIを持ち込むことを目指して開発されたツールである。
はじめに
工場の生産工程における画像検査のニーズは年々高まっている。近代の製造装置の高度化とともに、多くの工場では、人の手による小規模な製造から機械による大規模な自動製造に移行することに成功した。
製造に関して言えば、何ら問題なく自動化が行われていると言える。しかし、その反面、外観検査や異物検査に代表されるような画像検査に関しては、自動化が十分に行われているとはいえず、特に官能検査のように人の感覚に左右されるものは、多くの企業で人手を駆使して運用しているのが実態である。
これは生産数がごく僅かな小企業に限らず、多くの製品を日夜製造している世界的な大企業も含めて、国内外のありとあらゆる製造工程で見られる現象であり、製造の自動化が高度化するにつれて、検査工程のみ取り残されている前近代的な人手による解決手法は至極アンバランスな運用となっている。
特に、国内においては、近年の少子高齢化や検査を担うパートタイマー時給相場の上昇により、検査員の確保や生産ラインの拡充に潜在的な課題を抱えていることから、検査工程の自動化や目視検査の低減は急務となっている。
本製品は、それら検査工程の自動化を支援する強力な画像認識システムを提供するものである。
生産工程における画像検査の課題とニーズ
生産工程における画像検査は、検査対象にもよるが概ね次の共通の課題をもつ。
•生産計画に応じて画像検査を行うアルゴリズムの変更や閾値の再調整が必要となる。
•エッジで稼働できることが望ましくクラウドシステムが適合しない。
•限られたタクトタイムで検査を終える必要があり、リアルタイム性が求められる。
工場の特殊性として、生産品は常に変化する宿命をもつ。生産ラインは基本的に生き物であり、製造品の品種やライン構成が時間の経過とともに刻々と変化していく。
長年販売されている固定された商品であっても、パッケージのデザインや容器のサイズの改善は常であり、画像検査の観点からは検査対象が変化していくこととなる。
このことから画像検査を行う際のアルゴリズム(プログラム)や閾値の設定は生産現場で常に調整できることが求められ、隠蔽されたプログラムのようにブラックボックス化することは望ましくない。
また、一般的なITシステムと異なり、ほとんどの工場では画像検査にクラウドは適合しない(図1)。
工場の生産工程では、その製造技術や製造する部品そのものが機密情報の塊である。製造を行う企業の機密保持のポリシーとして、撮像情報を工場外へ持ち出すことは許されないケースは多い。
このような傾向は、半導体や自動車部品、医薬品業界では顕著であり、皮肉なことに検査の画像認識と自動化は、そういった業界でこそ強く求められている。
システムの可用性(Availability:アベイラビリティ)の観点からも、生産工程で重要な検査を外部のシステムに依存することは経営判断面やシステム工学的な面からもリスクが大きい。
よって、工場の検査装置は生産装置と同様に、現時点ではクラウドシステムに依存することは難しく、スタンドアロンで個々のラインごとに稼働できる必要性がある。リアルタイム性も重要である。
自動検査が必要なものは大量生産されるものが多く、生産工程上のタクトタイムは厳しく管理されている。検査においても、そのタクトタイム内に画像検査を終える必要があり、たとえどのような複雑な検査アルゴリズムであっても、多くの場合、数ミリ〜数百ミリ秒の範囲で画像検査を完了する必要がある。
これは従来手法の画像検査はもちろん、ディープラーニングを用いた検査手法でも同様である。そのため、ディープラーニングを用いる場合は、ハードウェアにGPUの実装が必須となる。
AI Inspectorの特徴
AI Inspectorは、先に述べた課題と要求を解決すべく設計されている。画像検査システムの立ち上げから運用まで、AI Inspectorは専門知識や長期間の訓練を必要とせず、誰でも容易に調整ができるように設計されている。
AIの専門家であるデータアナリストや画像処理エンジニアを必ずしも必要とせず、工場設備の運営を日頃行なっている機械や設備系のエンジニアでも設定や運用が可能である。
実行してカメラ画像を確認しながらビジュアルに閾値の調整もできるため、生産品の変化や生産現場の組み替えに応じて自由に調整が可能である(図2)。
また、クラウドに接続せずに、エッジで動作するスタンドアロンのシステムである。本システム一式があれば、学習から推論まで工場の設備内でネットワーク接続を行わずに、すべて賄うことができる。
本システムはソフトウェアのパッケージにGPU搭載の画像処理PCをセットで販売している。GPUでディープラーニングを行おうとする場合、多くのエンジニアが環境構築に無駄に手間取っている現状がある。
GPUのドライバやCUDA、cuDNNなどのミドルウェアのインストール作業と設定は複雑であり、バージョン管理や個々の相性の問題もあることから、環境構築を行うことがディープラーニングのハードルの1つとなっている。
本製品では、出荷時にGPUを用いるすべての下回りの設定とチューニングを弊社の方で行なっている。そのため、ユーザは購入後にすぐにシステムを立ち上げて、GPUの高速処理の恩恵を受けられる。
AI Inspectorの構成
AI Inspectorは、本システム一式で学習から推論、検査システムの設計や実行までを行える多機能なシステムである。そのため、下記の機能をもつ複数のツールで構成されている(図3)。
• Data Manager(データ管理ツール)
• Deep Learning Assistant(ディープラーニングによる学習ツール)
• Unit Board Designer(ユニットによる画像処理アルゴリズムの設定ツール)
• UI Builder(画面開発ツール)
• Inspect Planner(ユニットボードの自動起動ツール)
個々のツールが透過的に連動して、画像認識に必要なすべての作業を遂行できる。各ツールの機能について以下に述べる。
Data Manager:データ管理ツール
Data Managerは、学習用画像データの管理ツールである。学習用画像の準備に関する作業は、すべてこのツールで行える。画像認識にディープラーニングを適用する場合、大量の学習用画像を収集して管理し、その画像に対して、種類別にタグ付けを行うアノテーション作業が必要になる。
また、データ全体を俯瞰して、学習にふさわしくない画像を除外したり、再分類を行うデータクレンジングが必須となる。さらに、ディープラーニングの大量の画像が必要になるというデメリットを少しでも低減するために、1枚の画像をボカしたり回転させたり画像加工を行なって増加させるデータ拡張が有効な手段となる。
Data Managerは、当社独自のデータ拡張ツールを搭載し、実物のレンズに近いボケ画像を生成し、ディープラーニングの学習効率を高める。このように、ディープラーニングでは学習前に、画像収集、管理、アノテーション、データクレンジング、データ拡張、の繰り返し作業が必要となる。
それは、ディープラーニングシステムを開発する中で、非常に大きな工数を占め、特に認識精度の高い学習データを生成する場合は、この作業サイクルを効率よく回すことが重要となる。
Data Managerは、これら学習用画像の前処理をすべて一貫して行える、ディープラーニング向けに最適化したデータ管理ツールである(図4)。
Deep Learning Assistant:ディープラーニングによる学習ツール
Deep Learning Assistantは、ディープラーニングの学習を行うツールである。先に述べたData Managerツールで生成した学習用データセットを用いて、学習を行う。
学習を行う際には、学習に用いる画像サイズや、カラーやモノクロの種別など、いくつかの最低限のパラメータ設定のみで容易に学習をかけることができるようになっており、学習経過も図5のようにグラフでリアルタイムに経過表示される。
学習はGPUを用いて比較的高速に行え、数カテゴリの不良分類で各カテゴリに1〜5万枚程度の画像量であれば、数10分〜3時間ほどで学習を完了できる。
学習が完了したDNN(Deep NeuralNetwork)データは、次に述べるUnit Boardに組み込んで、容易に推論機能として実装できる。
Unit Board Designer:ユニットによる画像処理アルゴリズムの設定ツール
AI Inspectorのもっとも特徴的な機能が、このユニットボード(Unit Board)とユニット(Unit)である。AI Inspectorは、画像処理に必要なすべての要素をユニット(Unit)という概念で管理する。
たとえば、カラー画像の2値化やエッジ抽出のような古典的な画像処理アルゴリズムはユニットであり、ディープラーニングの推論もユニット、カメラやパトランプのような入出力機器でさえユニットである。Unit Boardは、これらユニットをビジュアルに管理して結合するツールである(図6)。
簡単な例として、カメラ画像を2値化して、その明るい部分の領域を求める画像認識システムを構築する例を示す。図7のようにカメラユニットをユニットボードに配置すれば、カメラ入力機能が実現できる。
入力されたカメラ画像は、図のように吹き出し状のデバッグビューにすぐに表示されるため、個々の処理段階で画像を見ながら容易にデバッグできる。
次に、カメラのカラー画像に対して2値化を行いたい場合は、画像処理アルゴリズムの中から2値化ユニットを選んでボード上に貼り付ける。
あとは、カメラユニットと2値化ユニットを結合して実行すれば、簡単にカメラ画像を2値化するアプリケーションを実現できる(図8)。
画像から明るい部分の領域を求める場合は、同様に画像処理アルゴリズムの中から、BLOB検出ユニットを選択して貼り付ける。
これも2値化ユニットの後に結合すれば、カメラ画像を2値化して、明るい部分の領域を求める画像認識アプリケーションが実現できる。
この例のような物体認識は、マシンビジョンの世界ではごく当たり前の基礎的なアプリケーションであるが、従来の検査装置やソフトウェアでは複雑な設定が必要であり、このような単純な作業を行うことさえ容易ではなかった。
AI Inspectorでは、上述のように直感的なUI操作のみで行えるため、実装時間は1分もかからずに誰でも実装できる(図9)。また、AI Inspectorでは閾値の設定変更も容易である。
たとえば、先の例で2値化の閾値を変更して、物体検出の領域を調整したい場合は、実行中に 2 値化ユニットの編集を行って、デバッグビューを見ながら動的に画像の閾値を調整できる(図10)。
ディープラーニングの推論も、このようにユニットを用いて容易に実現できる。ディープラーニングの推論ユニットを貼り付け、Deep Learningツールで生成した学習済みDNNデータから好きなものを選択するだけで、他の画像処理と同様に透過的に扱える。
たとえば、カメラ画像をディープラーニングの推論に直接入力する場合は、図11のように2つのユニットを設置して結びつけるだけである。
前処理として、グレースケール画像化とリサイズ処理を行いたい時には、図12のように他の画像処理ユニットと連結すればよい。
AI Inspectorは、このようにユニットの概念を取り入れることで、特殊なプログラミング言語の知識を必要とせずに、誰でも簡単に画像処理システムを組めるようになる。
それは、従来型の画像処理のみでなく、高度な知識が必要と思われがちなAI(ディープラーニング)についても同様である。ディープラーニングも1つのユニットとして簡単に操作でき、システムに組み込むことができる。
閾値の設定についても同様で、ユニット機構は、ともすれば困難であると考えがちな画像処理アルゴリズムの見える化と閾値設定の苦役からの解放を実現する。
UI Builder:画面開発ツール
UI Builderは画面開発ツールである。誰でも容易に結果表示画面が作成できるようになっている。AI Inspectorは、UI Builderを用いない場合は、他の手段として、入出力ユニットに共有メモリやTCP/IP通信のインタフェイスをもつので、独自に作成したプログラムや画面と連動できる。
複雑な画面を構成する場合は、独自プログラムで作成した方が良いが、画像検査では必ずしも凝った画面が必要なわけではなく、簡単に設計できる画面ツールが求められるケースが多い。
UI Builderはそのような目的に最適なツールである。UI Builderは、画像を表示するビューやボタンなどの入力要素を容易に設計でき、プログラム言語を用いずにビジュアルに画面開発ができる。
前述のユニットボードでは、このUI Builderで設計した画面に画像や結果を出力することができ、ユーザ自身で好みの画像のプレビュー画面や結果表示を行える(図13)。
Inspect Planner:ユニットボードの自動起動ツール
Inspect Plannerは、ユニットボードで作成したアルゴリズムの自動起動ツールである。ユニットボードの上で作成し評価したボードデータをあらかじめ指定しておくことで、システムの立ち上げ時に自動起動を行ったり、時刻指定で起動と終了を制御できる。
AI Inspectorは、画像処理やAIの試行錯誤を行うための試験的なツールとして機能するだけでなく、工場のラインへの適用を目的として設計されている。そのため、このような自動起動ツールが重要となる。
Flexible Image Filter
AI Inspectorの独自の工夫として、Flexible Image Filter(フレキシブル・イメージ・フィルタ)がある。ユニットボードを用いれば、画像処理アルゴリズムの設定や変更は容易になる。
しかし、仮に2値化やエッジ抽出などのフィルタ処理を行う場合、どのアルゴリズムが最適であるか、ユニットを設定してみるまでわからないという制約は発生する。
フレキシブル・イメージ・フィルタは、この画像処理上の制約にとらわれずに、柔軟(フレキシブル)に画像処理フィルタを試して決定できる特殊なユニットである。
ユニットの設定時には、フレキシブル・イメージ・フィルタを選択するのみで、具体的な画像処理アルゴリズムは決定されていない。テスト実行時にはじめて、複数アルゴリズムの選択と各アルゴリズムの閾値の設定を2次元的に俯瞰して行える。
これは、通常のアルゴリズム開発が、下記のように1次元的な思考パターンとなるのに対して、2次元的に拡張するものであり、人間の思考を拡張し試行錯誤の時間を節約できる。
1)従来の1次元的なアルゴリズム決定方式
(1)経験と勘でアルゴリズムの最初の選定を行う
(2) 経験と勘で上記アルゴリズムの閾値を選定する
(3)上記(1),(2)を試して評価する。成功したら完了、成功しなかったら(1)に戻る。
2)2次元的なアルゴリズム決定方式
(1)あらかじめ複数のアルゴリズムとアルゴリズムごとの閾値の組み合わせを選定しておく
(2)上記を同時に処理してその中から候補を選ぶのみの状態にしておく
(3)マウスやキーボードで柔軟に候補から最適なものを選ぶ
図14のように、フレキシブル・イメージ・フィルタでは、縦方向にアイコン一覧でアルゴリズムの切り替えが行え、横方向の一覧で縦方向で選択したアルゴリズムの閾値ごとの処理結果一覧が俯瞰して確認できる。
従来の手法ではひとつひとつ設定と確認に時間のかかっていたフィルタ設定が、フレキシブル・イメージ・フィルタでは、直感的な操作で、同時並行的にフィルタの試行と選定が可能となる。
まとめ
以上のように、AI Inspectorは画像処理システムの従来からの課題を解決すべく多くの特徴と工夫をもつシステムである。その特徴を要約すると、下記のとおりである。
•画像処理に必要なすべての要素をユニットに統合
•従来型の画像処理アルゴリズムの見える化と閾値設定の苦役からの解放
•フレキシブル・イメージ・フィルタで柔軟かつ効率的なフィルタ選定
•ディープラーニングを容易に活用できる仕組み
•データの集積からアノテーション、学習、推論まで一貫して行える製品
•独自のデータ拡張ツールで学習データを数十倍に増加
•エッジで稼働しクラウド不要で評価後すぐに生産現場に適用
•GPUで高速処理を行い画像処理用PCとセットで販売
•生産ラインの変化に合わせて誰でも容易に調整可能
今後の展望
AI Inspectorは、画像処理システムの検討を進めている多くの業種のお客様に評価をいただいている。当社で行っているディープラーニングや画像処理のPoCはもちろん、本格的な開発案件でもAI Inspectorをベースとするものが増えてきている。
これはお客様にとっては、開発期間と費用の節約になり、当社にとっても開発効率が上がる双方のメリットがある。また、初期の検討段階においても、打ち合わせの場で容易に画像処理をしながら、検討と評価が行えるため、画像処理に対する敷居を下げ事前検討の精度を上げるメリットを実感している。
今後の展望として目視検査の比重が高い生産現場や大企業だけでなく、今まで画像処理と無縁だと思っていた、中小の工場にも導入と普及を進めたいと考えている。
AI Inspectorの使い方自体は、本稿で解説したとおり少しの訓練で誰でも容易に習得できる。そのため、弊社では今後は啓蒙活動として、セミナーや体験会などのトレーニングの場を設けて実際に触ってもらえる機会を積極的に増やしていきたいと考えている。
※映像情報インダストリアル2018年12月号「AI×画像認識」特集より転載
■問い合わせ
株式会社トラスト・テクノロジー
TEL.042-843-0316
E-mail:sales@trust-technology.co.jp
https://www.trust-technology.co.jp/AI
コメントを残す