マシンビジョンに新たな次元をもたらすディープラーニング

アンドリュー・ウィルソン

ディープラーニング、人工知能、コグニティブシステムの概念は新しいものではないが、マシンビジョンシステムへの適用は今始まったばかりである。

マシンビジョンにおける革命として一部では推進されている、コンピュータプログラミングを必要とすることなくオブジェクトを解析および分類するシステムの機能を表すものとして現在、多数の用語が用いられている。人工知能(AI:Artificial Intelligence)とディープラーニングは、そのような概念を推進するために用いられる多数の専門用語のうちの2つである。
 しかし、その誇張的な表現の根底で、そうした概念を支える基本的技術は、よりシンプルに説明することができる。例えば、従来のマシンビジョンシステムでは、部品上のバーコードを読み取り、寸法を判断し、欠陥を検査することが必要になる場合がある。そのようなシステムを構築するために、通常は、データマトリックスコードの判読に適用できる標準ツールを備える市販のソフトウエアや、GUI(グラフィカルユーザーインタフェース)を用いて部品寸法を測定するキャリパー・ツールセットなどが利用される。
 そうして測定した部品を、あらかじめ定められた条件に適合するか否かによって、正常か異常かに分類することができる。このような測定方法とは異なり、いわゆる「ディープラーニング」ツールは、画像分類器の範疇に区分するのがより適切である。バーコードデータの読み取り専用のソフトウエアとは異なり、それらは例えば、画像の中のオブジェクトが存在するか、正常か、異常かを判別するように設計されている。したがってそうしたツールは、補完的な役割を果たすものである。
 「ニューラルネットワークなどのディープラーニングツールは、他のマシンビジョン技術を補完するものである。例えば、そのようなニューラルネットワークによって、データマトリックスコードが画像内に存在する確率を判定することができる」と、加マトロックスイメージング社(Matrox Imaging)のリサーチおよびイノベーション担当ディレクターを務めるアルノー・リナ氏(Arnaud Lina)は述べている。「しかし、その判読にはやはり、従来のバーコードアルゴリズムが用いられる」(リナ氏)。

エレガントな分類器

ニューラルネットワークをベースとするツールは、部品の存在の有無や、画像内のオブジェクトが正常か異常かの判定に使われることが多い。こうしたツールは、k近傍法(k-Nearest Neighbor:k-NN)や決定木といった、画像分類器として知られるアルゴリズムの範疇に属する。さまざまな種類の分類器を示した図については、ジェイソン・ブラウンリー(Jason Brownlee)著「A Tour of Machine Learning Algorithms」(機械学習アルゴリズムの紹介)(2013年11月、http://bit.ly/VSDTMLA)を参照してほしい。
 そうした分類器の多くが、マシンビジョンの用途に適用可能である。独エムブイテック・ソフトウエア社(MVTec Software)などはすでに、トレーニング済みのニューラルネットワーク、サポートベクターマシン(SVM:Support Vector Machine)、混合ガウスモデル(GMM:Gaussian Mixture Model)、k近傍法といった分類器を、「HALCON」ソフトウエアパッケージの中で提供している。ここで、ディープラーニングネットワークをゼロからトレーニングして、有効な認識結果を達成するには、1つのエラークラスにつき数十万枚ものサンプル画像が必要であることに注意しなければならない。しかし、HALCONには広範なディープラーニングネットワークが統合されているので、比較的少ないサンプル画像だけでトレーニングが可能で、時間と費用を大きく節約することができる。
 独ステマ・イメージング社(Stemmer Imaging)な ど も、「Common Vision Blox(CVB)Manto」ソフトウエアにおいてSVMを採用している。
 異なるグループのフィーチャー値が著しく重なる場合に、SVMを使用すれば、多次元のフィーチャー空間を生成して異なる欠陥グループを隔離することができる。蘭PRシス・デザイン社(PR Sys Design)の「perClass」ソフトウエアには、そうした分類器が多数提供されている。同ソフトウエアには、k近傍法、ニューラルネットワーク、ランダムフォレスト、SVMなど、さまざまな分類器が含まれている。この画像解析ソフトウエアは「MATLAB」ベースのツールボックスで、開発者はデータをインタラクティブに操作し、データの中から画像分類に最良のフィーチャーを選択し、多数の種類の分類器をトレーニングし、その性能を最適化することができる(Vision Systems Design誌2015年2月号の記事「Machine learning leverages image classification techniques」(画像分類手法を活用する機械学習)、http://bit.ly/VSDMLLを参照)。

脳の模倣

画像内のオブジェクトの識別に、多数の異なる分類器が使用できるのと同様に、画像分類機能の実行に採用できるニューラルネットワークの種類は、数え切れないほど多い。そうしたニューラルネットワークは、人間の視覚系と脳で用いられる生体神経網の模倣を試みるものである。その最も単純なものが、フランク・ローゼンブラット氏(Frank Rosenblatt)によって1957年に発明された「パーセプトロン」(Perceptron)である(図1)。
 パーセプトロンは、バイナリ入力集合(隣接神経細胞)を受け取り、各入力に連続値加重(各隣接神経細胞に対するシナプス強度)を乗じ、その加重入力の合計値をしきい値と比較して、十分に大きければ“1”、それ以外の場合
は“0” を出力することにより、脳の神経細胞をモデル化する。これは、生体神経細胞の発火するか否かの動作を模倣している(アンドレイ・クレンコフ氏(Andrey Kurenkov)著「A ‘Brief’ History of Neural Nets and Deep Learning」(ニューラルネットとディープラーニングの「短い[簡単な]」歴史)、http://bit.ly/VSD-NNDLを参照)。
 現在、より洗練されたネットワークでは、多層の「ニューロン」(神経細胞)を使用して、画像分類処理が行われている。これらの「隠れた層」により、ニューラルネットワークに提示された画像データ内のフィーチャーが検出される。単純なパーセプトロンから、ディープフィードフォワード(Deep Feed For ward:DFF)や畳み込みニューラルネットワーク(CNN:Convolutional Neural Net work)にいたるまでの、無数のニューラルネットワークアーキテクチュアを、手書き解析や音声認識などの用途に利用することができる(アンドリュー・チルコフ氏(Andrew Tch)著「The mostly complete chart of Neural Networks, explained」(ニューラルネットワークのほぼ完全なチャートを解説 )、http://bit.ly/VSDCCNNを参照)。
 マシンビジョンシステムに搭載されるニューラルネットワークとして最も広く採用されているのは、おそらくCNNである。それにはいくつかの理由がある。まず、CNNのアーキテクチュアは、人間の視覚野とパターン認識のメカニズムをより忠実に模倣するように設計されている。これが可能なのは、CNNが、異なる機能を実行する複数のニューロン段で構成されるためである(図2)。
 簡略化されたこの図では、説明上、畳み込み層とプーリング層が分けて示されている。実際には、それらはCNN全体の一部分である。畳み込み演算子がエッジなどのフィーチャーの検出に用いられるのと同様に、CNNでは、畳み込み層がフィーチャー抽出に用いられる。
 畳み込み画像処理では、この処理を行うガウシアンぼかしやメディアンフィルタなどの画像フィルタを、FPGA(Field Programmable Gate Array)にオフロードすることができる。
 一方、CNNのアーキテクチュアは、網膜出力によってエッジ検出などのフィーチャー抽出を行う、人間の視覚系(HVS:Human Visual System)を模倣したものとなっている。CNNでは、この畳み込みがフィーチャー抽出を行い、入力画像のフィーチャーを表す役割を担う。これらの畳み込み層は、それぞれ受容野を持つ各ニューロンが、一連の加重を介して1つ前の層のニューロンに接続される、フィーチャーマップを構成する。加重はトレーニング可能で、適用されるフィルタの種類を決定する。
 フィーチャーを抽出した後は、計算速度を上げるために、いわゆる「プーリング層」によって画像データ表現の空間サイズが縮小される。続いてこの画像データは、さらなるデータ処理のためにネットワークの最終層に供給さ
れる(ワシーム・ラワット氏(Waseem Rawat)とゾンホォイ・ワン氏(Zenghui Wang) 共 著「Deep Convolutional Neural Net works for Image Classification: A Comprehensive Review」(画像分類のためのディープ畳み込みニューラルネットワーク:包括的概観)、Neural Computation、Volume 29、Issue 9、2017年 9月、http://bit.ly/VSD-DCNNを参照)。

図1

図1 フランク・ローゼンブラット氏によって1957年に発明されたパーセプトロンは、バイナリ入力集合を受け取り、各入力に連続値加重を乗じ、その加重入力の合計値をしきい値判定することによって、脳の神経細胞をモデル化する。(提供:アンドレイ・クレンコフ氏)

図2

図2 畳み込み演算子がエッジなどのフィーチャーの検出に用いられるのと同様に、CNNでは、畳み込み層がフィーチャー抽出に用いられる。畳み込み画像処理では、ガウシアンぼかしやメディアンフィルタなどの画像フィルタによって、この処理が行われる。一方、CNNのアーキテクチュアは、網膜出力によってエッジ検出などのフィーチャー抽出を行う、人間の視覚系を模倣する。(画像提供:米マサチューセッツ工科大)

プログラミングは不要

ニューラルネットワークでは、他の手法で必要となる従来型のプログラミングやFPGAのプログラミングが不要である。CNNに対するオブジェクト認識のトレーニングは、3つの異なる方法で行うことができる。1つめは教師あり学習で、画像に手動でラベル付けを行い、そのデータを使用することにより、未知の画像の分類を行う出力モデルを生成するものである。2つめは教師なし学習で、画像データのタグ付けが必要な教師あり学習に対し、こちらは、画像データ内のパターンを検出して、複数の未知の画像からモデルを構築することができる。続いてそれらの結果を解釈することにより、さらに正確な教師あり分類器を開発することができる。

(もっと読む場合は出典元へ)
出典元
http://ex-press.jp/wp-content/uploads/2019/07/ft_machine-vision-software.pdf