(57)【要約】【課題】正解の教師画像との類似度合いが高い良画像又は正解の教師画像との類似度合いが低い不良画像に、高精度に識別することができる画像識別装置を提供する。【解決手段】画像識別装置は、正解及び不正解の教師画像に基づいた機械学習により教師画像との類似度合いを示す分類スコアを算出するように決定された各層における重み係数を有するニューラルネットワークと、入力画像とに基づいて、入力画像の分類スコアを算出する分類部と、正解の教師画像との相違度合いを示す異常スコアを算出するために正解の教師画像に基づいた機械学習により構築された関数近似器と、入力画像とに基づいて、入力画像の異常スコアを算出する異常判定部と、分類スコアと異常スコアとに基づいて、入力画像を正解の教師画像との類似度合いが高い良画像又は正解の教師画像との類似度合いが低い不良画像に分類する識別部と、を備える。【選択図】図２
2020035097.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を取得する取得部と、
正解及び不正解の教師画像に基づいた機械学習により前記教師画像と処理対象の画像との類似度合いを示す分類スコアを処理対象の画像に基づいて算出するように決定された各層における重み係数を有するニューラルネットワークと、前記取得部により取得された前記入力画像とに基づいて、前記入力画像の前記分類スコアを算出する分類部と、
正解の教師画像と処理対象の画像との相違度合いを示す異常スコアを処理対象の画像に基づいて算出するために正解の前記教師画像に基づいた機械学習により構築された関数近似器と、前記取得部により取得された前記入力画像とに基づいて、前記入力画像の前記異常スコアを算出する異常判定部と、
前記分類部により算出された前記分類スコアと前記異常判定部により算出された前記異常スコアとに基づいて、前記入力画像を、正解の前記教師画像との類似度合いが高い良画像又は正解の前記教師画像との類似度合いが低い不良画像に分類する識別部と、
を備える、画像識別装置。
【請求項２】
前記識別部は、前記分類スコアに対して予め定められた分類閾値と、前記異常スコアに対して予め定められた異常閾値とに基づいて、前記入力画像を前記良画像又は前記不良画像に分類する、
請求項１に記載の画像識別装置。
【請求項３】
ユーザ操作を受け付ける受付部と、
前記受付部により受け付けられた前記ユーザ操作に基づいて前記分類閾値及び前記異常閾値を設定する設定部と、
をさらに備える、請求項２に記載の画像識別装置。
【請求項４】
前記分類スコアに関する分類スコア評価軸と前記異常スコアに関する異常スコア評価軸とを座標軸とする散布領域を表示させる表示制御部をさらに備え、
前記表示制御部は、前記入力画像の前記分類スコア及び前記異常スコアを座標とするデータと、前記分類閾値と、前記異常閾値と、を前記散布領域に表示させる、
請求項２又は３に記載の画像識別装置。
【請求項５】
前記関数近似器は、処理対象の画像が有する情報を圧縮した後に、正解の前記教師画像が有する情報を再構成するように学習されたオートエンコーダであり、
前記異常判定部は、前記入力画像と、前記オートエンコーダで前記入力画像から再構成された画像とに基づいて、前記入力画像の異常スコアを算出する、
請求項１〜４の何れか１項に記載の画像識別装置。
【請求項６】
前記異常判定部は、前記入力画像と、前記再構成された画像との画素値の相関に基づいて、前記入力画像の異常スコアを算出する、
請求項５に記載の画像識別装置。
【請求項７】
前記関数近似器は、特徴空間において、正解の前記教師画像との相違度合いが低い画像から抽出された特徴ベクトルがプロットされる第１の領域と、正解の前記教師画像との相違度合いが高い画像から抽出された特徴ベクトルがプロットされる第２の領域とを区画するように学習されたサポートベクタマシンであり、
前記サポートベクタマシンによって、前記入力画像から抽出された特徴ベクトルが前記第２の領域にプロットされる場合、前記異常判定部は、正解の前記教師画像と、前記入力画像とに基づいて、前記入力画像の異常スコアを算出する、
請求項１〜４の何れか１項に記載の画像識別装置。
【請求項８】
前記異常判定部は、正解の前記教師画像と、前記入力画像との画素値の差分を用いて、前記入力画像の異常スコアを算出する、
請求項７に記載の画像識別装置。
【請求項９】
入力画像を取得する第１工程と、
正解及び不正解の教師画像に基づいた機械学習により前記教師画像と処理対象の画像との類似度合いを示す分類スコアを処理対象の画像に基づいて算出するように決定された各層における重み係数を有するニューラルネットワークと、前記第１工程において取得された前記入力画像とに基づいて、前記入力画像の前記分類スコアを算出する第２工程と、
正解の教師画像と処理対象の画像との相違度合いを示す異常スコアを処理対象の画像に基づいて算出するために正解の前記教師画像に基づいた機械学習により構築された関数近似器と、前記第１工程において取得された前記入力画像とに基づいて、前記入力画像の前記異常スコアを算出する第３工程と、
前記第２工程で算出された前記分類スコアと前記第３工程で算出された前記異常スコアとに基づいて、前記入力画像を、正解の教師画像との類似度合いが高い良画像又は正解の教師画像との類似度合いが低い不良画像に分類する第４工程と、
を備える、画像識別方法。
【請求項１０】
コンピュータを、請求項１〜８の何れか１項に記載の画像識別装置として機能させるための画像識別プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像識別装置、画像識別方法及び画像識別プログラムに関する。
【背景技術】
【０００２】
特許文献１には、ラベルが付与された教師画像を予め学習させた分類器が開示されている。ラベル付与型の画像識別技術では、教師画像と入力画像との間の特徴量の差異が小さい場合であっても、入力画像の識別を高精度に行うことができる。
【０００３】
特許文献２には、教師画像を予め学習させることにより、入力画像が有する情報を圧縮した後に、教師画像が有する情報を再構成するオートエンコーダが開示されている。入力画像と、オートエンコーダで再構成された画像とを比較することにより、入力画像と教師画像との相違度合いを導出することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−０８４３２０号公報
【特許文献２】特開２０１６−００４５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、製造業においては、被写体が製品である画像を用いて製品の品質を検査することがある。製造工程においては、想定する不良品と類似した不良品だけでなく、過去に例のない突発的な不良品が製造される場合がある。あるいはまた、撮像装置の不具合により、被写体が写っていない画像が検査対象となる場合もある。そのため、画像による検査装置には、入力画像が、良品を示す良カテゴリに属するか、良品以外のあらゆる不良品を示す不良カテゴリに属するかを精度良く検出できる検査能力を有することが求められる。
【０００６】
しかしながら、特許文献１に記載のラベル付与型の画像識別技術では、入力画像の特徴量と、複数の教師画像のいずれかの特徴量との差異が著しく大きい場合には、本来、不良カテゴリに属するべき入力画像が良カテゴリに属すると識別されるなど、画像識別の精度が低下するおそれがある。一方、特許文献２に記載の異常検知型の画像識別技術では、入力画像と教師画像との特徴量の差異が小さい場合には、本来、不良カテゴリに属するべき入力画像が良カテゴリに属すると識別されるなど、入力画像の良不良を高精度に識別することが困難となるおそれがある。このように、特許文献１及び特許文献２記載の技術では、入力画像と教師画像との特徴量の差異の大小によっては、入力画像の良不良を高精度に識別できないおそれがある。
【０００７】
本開示は、正解の教師画像との類似度合いが高い良画像と、正解の教師画像との類似度合いが低い不良画像とに、入力画像を高精度に識別することができる画像識別装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本開示に係る画像識別装置は、入力画像を取得する取得部と、正解及び不正解の教師画像に基づいた機械学習により教師画像と処理対象の画像との類似度合いを示す分類スコアを処理対象の画像に基づいて算出するように決定された各層における重み係数を有するニューラルネットワークと、取得部により取得された入力画像とに基づいて、入力画像の分類スコアを算出する分類部と、正解の教師画像と処理対象の画像との相違度合いを示す異常スコアを処理対象の画像に基づいて算出するために正解の教師画像に基づいた機械学習により構築された関数近似器と、取得部により取得された入力画像とに基づいて、入力画像の異常スコアを算出する異常判定部と、分類部により算出された分類スコアと異常判定部により算出された異常スコアとに基づいて、入力画像を、正解の教師画像との類似度合いが高い良画像又は正解の教師画像との類似度合いが低い不良画像に分類する識別部と、を備える。
【発明の効果】
【０００９】
本開示の種々の側面及び実施形態によれば、正解の教師画像との類似度合いが高い良画像と、正解の教師画像との類似度合いが低い不良画像とに、入力画像を高精度に識別することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係る画像識別装置が備わる外観検査装置の概略構成を示す斜視図である。
【図２】図２は、実施形態に係る画像識別装置の機能の一例を示すブロック図である。
【図３】図３は、図２に示す装置のハードウェア構成を示すブロック図である。
【図４】図４は、分類部におけるニューラルネットワークの模式図である。
【図５】図５は、分類部における学習及び推論を示す模式図である。
【図６】図６は、異常判定部におけるニューラルネットワークの模式図である。
【図７】図７は、異常判定部におけるニューラルネットワークの特徴量の分布を示す図である。
【図８】図８は、分類スコア及び異常スコアと、判定結果との関係を示すグラフである。
【図９】図９は、学習処理のフローチャートである。
【図１０】図１０は、分類部におけるニューラルネットワークの学習処理のフローチャートである。
【図１１】図１１は、異常判定部におけるニューラルネットワークの学習処理のフローチャートである。
【図１２】図１２は、閾値設定処理のフローチャートである。
【図１３】図１３は、画像識別処理のフローチャートである。
【図１４】図１４は、分類用推論処理のフローチャートである。
【図１５】図１５は、異常検知用推論処理のフローチャートである。
【図１６】図１６は、画像識別処理のフローチャートである。
【図１７】図１７は、別実施形態に係る画像識別装置の機能の一例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本開示の実施形態について説明する。なお、以下の説明において、同一又は相当要素には同一符号を付し、重複する説明を省略する。
【００１２】
［外観検査装置の構成概要］
図１は、実施形態に係る画像識別装置が備わる外観検査装置の概略構成を示す斜視図である。図１に示す外観検査装置１００は、電子部品Ｐの外観を撮影した画像に基づいて電子部品Ｐが良品であるか不良品であるかを検査する装置である。外観検査装置１００は、供給部１１０と、搬送部１２０と、カメラ１３０と、不良品排出機構１４０と、識別不能品排出機構１５０と、良品排出機構１６０と、表示部１７０と、駆動制御部１８０と、画像識別装置２００と、を備える。
【００１３】
供給部１１０は、検査対象となる電子部品Ｐを整列させて順次一個ずつ連続して供給する機構を有する。供給部１１０は、ボールフィーダ１１１と、リニアフィーダ１１２とを備える。ボールフィーダ１１１は、複数の電子部品Ｐを収容するすり鉢状の容器を備え、遠心力を利用して容器内の電子部品Ｐを容器の周壁に沿って整列させながら一個ずつ送り出す。リニアフィーダ１１２は、ボールフィーダ１１１から送り出された電子部品Ｐを搬送部１２０に向けて順次送り出す。
【００１４】
搬送部１２０は、回転テーブル１２１を有する。搬送部１２０は、供給部１１０から供給された電子部品Ｐを回転テーブル１２１の上面の周縁部に載置して搬送する。回転テーブル１２１は図示しない駆動モータによって一定速度で回転駆動する。図１において回転テーブル１２１に描かれている矢印は、回転テーブルの回転方向を示している。電子部品Ｐは、搬送部１２０の回転テーブル１２１の上面に載置され、カメラ１３０の撮像箇所を通り、不良品排出機構１４０、識別不能品排出機構１５０、又は、良品排出機構１６０まで搬送される。
【００１５】
カメラ１３０は、回転テーブル１２１上の電子部品Ｐを撮影し、画像を生成する。カメラ１３０は、カメラ１３０ａとカメラ１３０ｂとを有する。カメラ１３０ａは、回転テーブル１２１の上面と対向する位置に設けられている。カメラ１３０ａは、電子部品Ｐの上面を撮像する。カメラ１３０ｂは、回転テーブル１２１の外周と対向する位置に設けられている。カメラ１３０ｂは、電子部品Ｐの外周側に向く面を撮像する。カメラ１３０ａとカメラ１３０ｂとは、それぞれ所定距離だけ離間した位置に配置される。回転テーブル１２１により順次搬送される電子部品Ｐは、カメラ１３０により上述した各面が順次撮像される。
【００１６】
不良品排出機構１４０は、画像識別装置２００により不良品と判定された電子部品Ｐを排出する。不良品排出機構１４０は、回転テーブル１２１の回転方向において、供給部１１０を基準としてカメラ１３０より下流に設けられる。不良品排出機構１４０は、エアノズル１４１と、シュート１４２とを有する。エアノズル１４１は、シュート１４２に対向するように回転テーブル１２１の内周部上方に設けられる。エアノズル１４１は、後述の駆動制御部１８０の制御により選択的に所定量の空気を出力する。シュート１４２は、エアノズル１４１により吹き飛ばされた検査対象の電子部品Ｐを回収する。
【００１７】
識別不能品排出機構１５０は、画像識別装置２００により識別不能品と判定された電子部品Ｐを排出する機能を有する。識別不能品排出機構１５０は、回転テーブル１２１の回転方向において、供給部１１０を基準としてカメラ１３０より下流に設けられる。識別不能品排出機構１５０は、エアノズル１５１と、シュート１５２とを有する。エアノズル１５１は、シュート１５２に対向するように回転テーブル１２１の内周部上方に設けられる。エアノズル１５１は、後述の駆動制御部１８０の制御により選択的に所定量の空気を出力する。シュート１５２は、エアノズル１５１により吹き飛ばされた検査対象の電子部品Ｐを回収する。なお、不良品排出機構１４０と、識別不能品排出機構１５０とにおいて、回転テーブル１２１の回転方向に対する設置順はどちらが先でも構わない。
【００１８】
良品排出機構１６０は、画像識別装置２００により良品と判定された電子部品Ｐを排出する。良品排出機構１６０は、回転テーブル１２１の回転方向において供給部１１０を基準として最下流に設けられる。良品排出機構１６０は、ガイド１６１と、シュート１６２とを有する。ガイド１６１は、回転テーブル１２１上に残った電子部品Ｐをシュート１６２に誘導する。シュート１６２は、ガイド１６１により誘導された電子部品Ｐを落とし込んで回収する。
【００１９】
表示部１７０は、後述の画像識別装置２００における表示制御部２６０の制御に基づき、良品又は不良品の判定結果や判定の閾値などを表示する。表示部１７０は、一例として、ディスプレイ装置である。
【００２０】
駆動制御部１８０は、エアバルブなどからなる駆動部１８１（図２参照）を制御する。駆動制御部１８０は、後述する画像識別装置２００における識別部２５０の画像の判定結果に基づき、被写体の電子部品Ｐを不良品排出機構１４０、識別不能品排出機構１５０、又は、良品排出機構１６０のいずれかに回収させる。駆動制御部１８０は、電子部品Ｐを不良品排出機構１４０、又は、識別不能品排出機構１５０に回収させると判定された場合、駆動部１８１を通じて、エアノズル１４１又はエアノズル１５１から所定量の空気を出力させる。
【００２１】
［外観検査装置の基本動作］
外観検査装置１００の動作として、最初に、検査対象である電子部品Ｐの画像を取得する過程を説明する。外観検査装置１００において、電子部品Ｐは、供給部１１０により搬送部１２０に供給される。電子部品Ｐは、回転テーブル１２１の上面の周縁部に載置されて搬送される。載置の際、電子部品Ｐは帯電され、静電気によって回転テーブル１２１に吸着される。次に、電子部品Ｐは、回転テーブル１２１の搬送によりカメラ１３０の位置まで送られる。電子部品Ｐはカメラ１３０によって撮像される。電子部品Ｐを被写体とする画像は、画像識別装置２００に送られる。電子部品Ｐの上面を被写体とする画像は、カメラ１３０ａにより取得することができる。電子部品Ｐの正面又は側面を被写体とする画像は、カメラ１３０ｂにより取得することができる。
【００２２】
次に、後述の画像識別装置２００における画像識別処理の結果に基づいて、検査対象の電子部品Ｐが分別される過程を説明する。電子部品Ｐが不良品と判定された場合、駆動制御部１８０は、エアノズル１４１から所定量の空気を出力させるように駆動部１８１の駆動を制御する。電子部品Ｐは、エアノズル１４１から出力された空気により吹き飛ばされて、シュート１４２に落下する。同様に、電子部品Ｐが識別不能と判定された場合、駆動制御部１８０はエアノズル１５１から所定量の空気を出力させるように駆動部１８１の駆動を制御する。電子部品Ｐは、エアノズル１５１から出力された空気により吹き飛ばされて、シュート１５２に落下する。このように不良品又は識別不能品と判定された電子部品Ｐは回転テーブル１２１から排除される。良品と判定された電子部品Ｐは、回転テーブル１２１に残る。良品と判定された電子部品Ｐは、ガイド１６１によって誘導されてシュート１６２に落とし込まれる。
【００２３】
［画像識別装置の機能構成］
図２は、実施形態に係る画像識別装置の機能の一例を示すブロック図である。画像識別装置２００は、入力画像に含まれる被写体（電子部品Ｐ）が良品である画像と、被写体が不良品である画像とに識別する。識別対象となる入力画像は、上述の外観検査装置１００におけるカメラ１３０により取得された画像である。
【００２４】
画像識別装置２００は、教師データ取得部２１０と、取得部２２０と、分類部２３０と、異常判定部２４０と、識別部２５０とを備える。
【００２５】
教師データ取得部２１０は、正解のラベルが付与された教師画像及び不正解のラベルが付与された教師画像を取得する。ここで、ラベルとは画像に関連付けられた情報を意味する。本実施形態において、教師画像に正解のラベルが付与されている場合、その教師画像の被写体である電子部品Ｐは良品であることを示す。教師画像に不正解のラベルが付与されている場合、その教師画像の被写体である電子部品Ｐは不良品であることを示す。教師画像は、上述のカメラ１３０の被写体である電子部品Ｐと同じ種類の電子部品Ｐを含む画像である。教師データ取得部２１０は、図示しないデータサーバなどから通信を介して教師画像を取得してもよいし、画像識別装置２００に接続可能な外部記憶媒体や画像識別装置２００が備える記憶媒体を参照して、教師画像を取得してもよい。教師画像の必要枚数は、特に限定されない。
【００２６】
取得部２２０は、カメラ１３０により得られた入力画像を取得する。取得部２２０は、入力画像に対してクロップやリサイズなどの前処理を施してもよい。
【００２７】
分類部２３０は、分類学習部２３１と、分類推論部２３２とを有する。分類学習部２３１は、教師データ取得部２１０において取得された、正解のラベルが付与された教師画像及び不正解のラベルが付与された教師画像に基づいて、正解とされた被写体の特徴及び不正解とされた被写体の特徴を、ニューラルネットワークに学習させる。そして、学習されたニューラルネットワークは、処理対象となる画像が入力された場合に、その被写体が良品であることの確からしさを示すスコア及び不良品であることの確からしさを示すスコアを算出する能力を獲得する。
【００２８】
教師画像の特徴の抽出においては、教師画像は所定の次元の特徴ベクトルに変換される。特徴の分類においては、正解のラベルが付与された教師画像から抽出された特徴ベクトルと、不正解のラベルが付与された教師画像から抽出された特徴ベクトルとを分離する超平面上の識別面が形成される。分類学習部２３１は、教師画像から抽出された特徴ベクトルが、「良品を示す良カテゴリ」と「良品以外のあらゆる不良品を示す不良カテゴリ」とのどちらのカテゴリに属するのかを判定する処理をニューラルネットワーク内で何度も正誤を繰り返す。このとき、ニューラルネットワークの各層における重み係数が調整される。これにより、ニューラルネットワークはそれらを正確に分類する能力を獲得する。
【００２９】
分類部２３０におけるニューラルネットワークは、入力画像から抽出された特徴ベクトルが、良カテゴリに属する確からしさを示すスコア（以下「良スコア」と記す）と、不良カテゴリに属する確からしさを示すスコア（以下「不良スコア」と記す）と、を出力する。本実施形態では、良スコアと不良スコアとは、それぞれ０．０〜１．０の範囲の値となり、良スコアと不良スコアとの合計は１．０となるように設定されている。正解のラベルが付与された教師画像については、良スコアが１．０、不良スコアが０．０に近づくように、ニューラルネットワークの学習が行われる。一方、不正解のラベルが付与された教師画像については、良スコアが０．０に、不良スコアが１．０に近づくように、ニューラルネットワークの学習が行われる。このように、分類推論部２３２の学習はいわゆる教師有り学習である。分類学習部２３１による学習が終了した場合には、以降において重み係数の変更は行わなくてもよい。なお、本実施形態ではニューラルネットワークから出力される良スコア及び不良スコアのうち、良スコアが分類スコアとして用いられる。これらはいずれも教師画像との類似度合いを示す指標であり、不良スコアが分類スコアとして用いられてもよい。
【００３０】
分類推論部２３２は、分類学習部２３１により事前学習されたニューラルネットワークを用いて検査（推論）を行う。分類推論部２３２は、分類学習部２３１により構築されたニューラルネットワークと、取得部２２０により取得された入力画像とに基づいて分類スコアを算出する。
【００３１】
異常判定部２４０は、判定学習部２４１と、判定推論部２４２とを有する。判定学習部２４１は、機械学習により入力と出力との関係を所定の関数近似器に学習させる。異常判定部２４０において学習対象となる教師画像は、被写体が良品である画像である。教師画像は、カメラ１３０が良品の電子部品Ｐを撮影した画像を用いてもよいし、分類部２３０に入力された、正解のラベルが付与された教師画像と同じ画像であってもよい。つまり、判定学習部２４１による学習では、分類学習部２３１による学習とは異なり、正解の教師画像のみが必要となる。
【００３２】
異常判定部２４０に係る関数近似器には、分類部２３０と同様にニューラルネットワークを適用することができる。判定学習部２４１は、教師データ取得部２１０において取得された教師画像に基づいて、教師画像の特徴をニューラルネットワークに学習させる。そして、学習されたニューラルネットワークは、処理対象となる画像が入力された場合に、処理対象となる画像が有する情報（例えば、特徴量など）を圧縮した後に、教師画像が有する情報を再構成する能力を獲得する。判定推論部２４２は、取得部２２０で取得された入力画像を学習済のニューラルネットワークに入力して、当該入力画像から再構成された画像を出力として得る。このように、ニューラルネットワークを用いて、入力データの情報を圧縮及び再構成する手法は、オートエンコーダとして広く知られている。本実施形態では、このようなオートエンコーダを異常判定部２４０に適用することができる。
【００３３】
あるいはまた、異常判定部２４０に係る関数近似器には、One Class SVM（Support Vector Machine : サポートベクタマシン）を適用することもできる。判定学習部２４１は、教師データ取得部２１０において取得された教師画像に基づいて、教師画像の特徴をＳＶＭに学習させる。そして、学習されたＳＶＭは、特徴空間において、教師画像との相違度合いが低い画像から抽出された特徴ベクトルがプロットされる第１の領域と、教師画像との相違度合いが高い画像から抽出された特徴ベクトルがプロットされる第２の領域とを区画する能力を獲得する。判定推論部２４２は、まず、取得部２２０で取得された入力画像から特徴ベクトルを抽出する。次いで、判定推論部２４２は、入力画像から抽出された特徴ベクトルが上記のいずれかの領域にプロットされるかを判定する。入力画像から抽出された特徴ベクトルが、教師画像との相違度合いが高い第２の領域にプロットされた場合、判定推論部２４２は、その入力画像の被写体に異常が含まれていると認識することができる。ここで、異常とは、被写体が不良品であることを意味するだけではなく、被写体が全く写っていなかったり、異なる種類の被写体が写っているなど、教師画像とは極端に異なることも意味する。
【００３４】
異常判定部２４０は、機械学習により構築された関数近似器と、入力画像とに基づいて、入力画像と教師画像との相違度合いを示す異常スコアを算出する。一例として、異常スコアは、入力画像と教師画像（再構成された画像）との相違度合いが大きいほど「１．０」に近い値となり、入力画像と教師画像（再構成された画像）との相違度合いが小さいほど「０．０」に近い値となる。オートエンコーダを用いて異常スコアを算出する場合、入力画像と、再構成された画像との画素値の相関から複数の項が算出される。そして、算出された各項に係数が付与され、線形演算の後に０．０〜１．０の範囲に正規化されることにより、最終的に異常スコアが算出される。ＳＶＭを用いて異常スコアを算出する場合、教師画像と、入力画像との画素値の差分に基づく平均、分散などの統計量から複数の項が算出される。そして、算出された各項に係数が付与され、線形演算の後に０．０〜１．０の範囲に正規化されることにより、最終的に異常スコアが算出される。なお、異常スコアを算出する手法は上記に限定されない。また、ＳＶＭを用いて異常スコアを算出する場合、異常判定部２４０は、入力画像の被写体に異常が含まれていると認識された場合にのみ異常スコアを算出する。かかる構成により、異常スコアを算出するための計算コストを削減することができる、という効果を奏する。
【００３５】
識別部２５０は、分類推論部２３２において算出された分類スコアと、判定推論部２４２において算出された異常スコアとに基づいて、取得部２２０により取得された入力画像を、正解の教師画像との類似度合いが高い良画像又は正解の教師画像との類似度合いが低い不良画像に分類する。識別部２５０が入力画像を良画像又は不良画像に分類するとは、識別部２５０が、入力画像を良画像又は不良画像の何れかに分類する場合だけでなく、入力画像を良画像、不良画像、及びその他のカテゴリに分類する場合も含む。その他のカテゴリの一例は、識別不能カテゴリ（良画像でも不良画像でもない）である。識別部２５０は、分類スコアに対して予め定められた分類閾値８０１（図８参照）と、異常スコアに対して予め定められた異常閾値８０２（図８参照）とに基づいて、入力画像を良画像又は不良画像に分類し得る。分類閾値８０１は、分類スコアを評価するために予め定められた指標である。異常閾値８０２は、異常スコアを評価するために予め定められた指標である。分類閾値８０１及び異常閾値８０２が設定されることにより、複数の入力画像に対して一律の基準が設けられる。
【００３６】
画像識別装置２００は、受付部２７０と、設定部２８０とを備えることができる。外観検査装置１００は、画像識別装置２００の外部に入力装置１９０を有し得る。入力装置１９０は、マウス、キーボード、タッチパネルなどである。受付部２７０は、ユーザ操作を受け付ける。ユーザ操作とは、入力装置１９０を作動させるユーザによる動作であり、一例として、マウスによる選択操作、キーボードによる入力操作、タッチパネルによる選択操作又は入力操作である。設定部２８０は、受付部２７０において受け付けられたユーザ操作に基づいて分類閾値８０１と異常閾値８０２とを設定する。ユーザが分類閾値８０１及び異常閾値８０２を設定することにより、目視の検査に近い外観検査となるように、判定基準を調整することができる。分類閾値８０１と異常閾値８０２とは、分類部と異常判定部とで既に取得された入力画像の分類スコアと異常スコアとを用いた所定の計算式によって算出されてもよい。
【００３７】
画像識別装置２００は、表示制御部２６０を備えることができる。表示制御部２６０は、分類スコアに関する分類スコア評価軸と異常スコアに関する異常スコア評価軸とを座標軸とする散布領域８００（図８参照）を表示部１７０に表示させる。表示制御部２６０は、入力画像の分類スコア及び異常スコアを座標とするデータと、分類閾値８０１と、異常閾値８０２と、を散布領域８００に表示させる。表示部１７０において、取得されたデータが散布領域８００に可視化されることによって、入力画像内の被写体における品質のばらつきの確認や分類閾値８０１及び異常閾値８０２の設定の見直しなどが容易となる。
【００３８】
［画像識別装置のハードウェア構成］
図３は、図２に示す装置のハードウェア構成を示すブロック図である。図３に示すように、画像識別装置２００は、ＣＰＵ（Central  Processing  Unit）３０１と、ＲＡＭ（Random  Access  Memory）３０２と、ＲＯＭ３０３（Read  Only  Memory）と、グラフィックコントローラ３０４と、補助記憶装置３０５と、外部接続インタフェース３０６（以下インタフェースは「Ｉ／Ｆ」と記す）と、ネットワークＩ／Ｆ３０７と、バス３０８と、を含む、通常のコンピュータシステムとして構成される。
【００３９】
ＣＰＵ３０１は、演算回路からなり、画像識別装置２００を統括制御する。ＣＰＵ３０１は、ＲＯＭ３０３又は補助記憶装置３０５に記憶されたプログラムをＲＡＭ３０２に読み出す。ＣＰＵ３０１は、ＲＡＭ３０２に読み出したプログラムにおける種々の処理を実行する。ＲＯＭ３０３は、画像識別装置２００の制御に用いられるシステムプログラムなどを記憶する。グラフィックコントローラ３０４は、表示部１７０に表示させるための画面を生成する。補助記憶装置３０５は記憶装置としての機能を有する。補助記憶装置３０５は、種々の処理を実行するアプリケーションプログラムなどを記憶する。補助記憶装置３０５は、一例として、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）などにより構成される。外部接続Ｉ／Ｆ３０６は、画像識別装置２００に種々の機器を接続するためのインタフェースである。外部接続Ｉ／Ｆ３０６は、一例として、画像識別装置２００、ディスプレイ、キーボード、マウスなどを接続させる。表示部１７０及び入力装置１９０は、外部接続Ｉ／Ｆからなる。ネットワークＩ／Ｆ３０７は、ＣＰＵ３０１の制御に基づき、画像識別装置２００などとネットワークを介して通信を行う。上述の各構成部は、バス３０８を介して、通信可能に接続される。図２に示される画像識別装置２００の機能は、図３に示されるハードウェアによって実現する。
【００４０】
なお、画像識別装置２００は、上記以外のハードウェアを有し得る。画像識別装置２００は、一例として、ＧＰＵ(Graphics  Processing  Unit)、ＦＰＧＡ(Field-Programmable  Gate  Array)、ＤＳＰ(Digital  Signal  Processor)などを備えてもよい。画像識別装置２００は、ハードウェアとして１つの筐体に収まっている必要はなく、いくつかの装置に分離していてもよい。
【００４１】
［分類部に係るニューラルネットワークの詳細］
図４は、分類部２３０におけるニューラルネットワークの模式図である。図４に示すように、分類部２３０におけるニューラルネットワーク４００は、いわゆる階層型ニューラルネットワークであり、円で示す多数の人工ニューロン（ノード）が階層を形成しつつ連結されている。階層型ニューラルネットワークは、入力用の人工ニューロン、処理用の人工ニューロン及び出力用の人工ニューロンを備える。
【００４２】
教師画像である入力データ４０１は教師データ取得部２１０により取得される。入力データ４０１は教師データ取得部２１０から分類学習部２３１に送られる。入力データ４０１は、入力層４０２における入力用の人工ニューロンで取得される。入力用の人工ニューロンは、並列配置されることで入力層４０２を形成する。入力データ４０１は、処理用の人工ニューロンへ分配される。ニューラルネットワークでやり取りされる信号そのものをスコアという。スコアは数値である。
【００４３】
処理用の人工ニューロンは、入力用の人工ニューロンに接続される。処理用の人工ニューロンは、並列配置されることで中間層４０３を形成する。中間層４０３は、複数の層であってもよい。なお、中間層４０３を備えた３階層以上のニューラルネットワークをディープニューラルネットワークという。
【００４４】
分類部２３０におけるニューラルネットワークとして、畳み込みニューラルネットワークが用いられる。畳み込みニューラルネットワークは、畳み込み層とプーリング層とが交互に連結されて構成されるディープニューラルネットワークである。畳み込み層とプーリング層とで順次処理が行われることにより、入力画像はエッジなどの特徴を保持しつつ縮小される。畳み込みニューラルネットワークを画像解析に応用した場合、この抽出された特徴に基づいて画像の分類を高精度に行うことができる。
【００４５】
出力用の人工ニューロンは、外部へスコアを出力する。図４の例では、良スコアと不良スコアとが出力用の人工ニューロンから出力される。つまり、出力層４０４には、良スコアを出力するための人工ニューロンと、不良スコアを出力するための人工ニューロンと、の２つの人工ニューロンが用意されている。本実施形態では、良スコアと不良スコアとは、それぞれ０．０〜１．０の範囲の値となり、良スコアと不良スコアとの合計は１．０となるように設定されている。後述の分類用学習（Ｓ９００）において、正解のラベルが付与された教師画像については、良スコアが１．０、不良スコアが０．０に近づくように、ニューラルネットワーク４００の学習が行われる。一方、不正解のラベルが付与された教師画像については、良スコアが０．０に、不良スコアが１．０に近づくように、ニューラルネットワーク４００の学習が行われる。なお、本実施形態では、出力層４０４から出力される良スコアが、分類スコアとして用いられる。
【００４６】
分類学習部２３１は、上述のニューラルネットワークに対して、正解又は不正解のラベルが予め付与された教師画像を学習させる。これにより、中間層４０３において、重み係数が定められた処理用の人工ニューロンが形成される。この学習済みのニューラルネットワークを分類推論部２３２に適用させる。分類推論部２３２において、入力層４０２は、入力画像を取得して中間層４０３の処理用の人工ニューロンへ分配する。中間層４０３内の処理用の人工ニューロンは、学習された重み係数を用いて入力を処理し、出力を他のニューロンへ伝える。中間層４０３から出力層４０４へスコアが伝達された場合、出力層４０４は、出力４０５として、外部へ分類スコアを出力する。この分類スコアが入力画像における正解又は不正解のラベルが付与された教師画像への類似度合いを示す。分類スコアが「１」に近いほど、正解の教師画像への類似度合いが高いことを示す。
【００４７】
［分類時の特徴量］
図５は、分類部２３０における学習及び推論を示す模式図である。図５の（Ａ），（Ｂ）は学習時の特徴量（特徴ベクトル）を示すグラフの一例であり、図５の（Ｃ），（Ｄ）は推論時（検査時）の特徴量（特徴ベクトル）を示すグラフの一例である。
【００４８】
図５の（Ａ）は、分類学習部２３１により抽出された教師画像の特徴量（特徴ベクトル）を高次元空間にプロットしたグラフの一例である。図５の（Ａ）では、高次元空間７００に正解のラベルが付与された教師画像の特徴量７０１及び不正解のラベルが付与された教師画像の特徴量７０２がプロットされている。高次元空間７００において、特徴量７０１及び特徴量７０２は不規則に分散している。分類学習部２３１は、教師画像の特徴量が、良カテゴリに属する確からしさと不良カテゴリに属する確からしさとを導出するために、教師画像の特徴量を２次元空間に射影する。図５の（Ｂ）は、図５の（Ａ）の教師画像の特徴量を２次元空間に射影したグラフである。図５の（Ｂ）に示されるように、正解のラベルが付与された教師画像の特徴量７０１と不正解のラベルが付与された教師画像の特徴量７０２とは、それぞれ点群を形成する。これらの点群の境界となる超分離平面が学習により獲得される。境界よりも上の領域は、良カテゴリ領域７１１であり、境界よりも下の領域が不良カテゴリ領域７１２となる。
【００４９】
図５の（Ｃ）は、分類推論部２３２により抽出された入力画像の特徴量（特徴ベクトル）を高次元空間にプロットしたグラフの一例である。図５の（Ｃ）では、高次元空間７００に入力画像の特徴量７０３がプロットされている。分類推論部２３２は、入力画像の特徴量が、良カテゴリに属する確からしさと不良カテゴリに属する確からしさとを導出するために、入力画像の特徴量を２次元空間に射影する。図５の（Ｄ）は、図５の（Ｃ）の入力画像の特徴量を２次元空間に射影したグラフである。分類推論部２３２は、図５の（Ｂ）で獲得した境界を用いて、入力画像の特徴量がどの領域に属しているのかを判定する。例えば、良カテゴリ領域７１１に特徴量がプロットされている場合には、入力画像は良カテゴリに属していると判定され、不良カテゴリ領域７１２に特徴量がプロットされている場合には、入力画像は不良カテゴリに属していると判定される。図５の（Ｄ）の例では、不良カテゴリ領域７１２に特徴量７０３がプロットされているため、入力画像は不良カテゴリに属していると判定される。
【００５０】
［異常判定部に係るニューラルネットワークの詳細］
図６は、異常判定部におけるニューラルネットワークの模式図である。図６に示すように、異常判定部２４０におけるニューラルネットワーク５００は、いわゆる階層型ニューラルネットワークであり、円で示す多数の人工ニューロン（ノード）が階層を形成しつつ連結されている。階層型ニューラルネットワークは、入力用の人工ニューロン、処理用の人工ニューロン及び出力用の人工ニューロンを備える。
【００５１】
教師画像である入力データ５０１は教師データ取得部２１０により取得される。入力データ５０１は教師データ取得部２１０から判定学習部２４１に送られる。入力データ５０１は、入力層５０２における入力用の人工ニューロンで取得される。入力用の人工ニューロンは、並列配置されることで入力層５０２を形成する。入力データ５０１は、処理用の人工ニューロンへ分配される。
【００５２】
処理用の人工ニューロンは、入力用の人工ニューロンに接続される。処理用の人工ニューロンは、人工ニューロンの機能にしたがって入力を処理し、出力を他のニューロンへ伝える。処理用の人工ニューロンは、並列配置されることで中間層５０３を形成する。中間層５０３は、複数の層であってもよい。
【００５３】
出力用の人工ニューロンは、外部へスコアを出力する。出力用の人工ニューロンは、入力用の人工ニューロンの数と同じ数だけ用意される。出力用の人工ニューロンは、並列配置されることで出力層５０４を形成する。出力層５０４は、出力５０５として画像を出力する。
【００５４】
このように、異常判定部に係るニューラルネットワークは、処理対象となる画像が入力された場合に、処理対象となる画像が有する情報（例えば、特徴量など）を圧縮した後に、教師画像が有する情報を再構成する演算を行う。ニューラルネットワークを用いて、入力データの情報を圧縮及び再構成する手法は、オートエンコーダとして広く知られている。
【００５５】
判定学習部２４１は、上述のニューラルネットワークに対して、教師画像を学習させる。具体的には、教師画像の主となる特徴量を抽象的に抽出する能力を獲得する学習、及び、抽出した特徴量に基づいてデータを再構成し、教師画像を再現する能力を獲得する学習が行われる。判定学習部２４１は、教師画像と再構成データとの誤差を小さくする調整をニューラルネットワーク内で繰り返す。このとき、ニューラルネットワークの各層における重み係数が調整される。
【００５６】
判定推論部２４２は、判定学習部２４１において学習されたニューラルネットワークを用いる。取得部２２０において取得された入力画像は、判定推論部２４２に送られる。入力画像から抽出された特徴量が抽出される。入力画像の特徴量は任意の次元の特徴ベクトルに変換される。判定推論部２４２において、特徴ベクトルと、ニューラルネットワーク内の決定された重み係数とを用いて、データ再構成の演算がなされる。ニューラルネットワークの演算により、再構成画像が出力される。再構成画像と入力画像との差異から、異常スコアが算出される。本実施形態では、再構成画像と入力画像との差異が大きいほど「１．０」に近似するように、異常スコアが算出される。異常スコアは、入力画像または再構成画像のいずれかの特徴量を基準として算出されてもよいし、入力画像と再構成画像との差分画素値の統計量を基準として算出されてもよい。
【００５７】
上述の実施形態では、オートエンコーダを判定学習部２４１に適用する例を説明したが、OneClass SVM（Support Vector Machine）など他の学習手法を適用してもよい。
【００５８】
［異常判定時の特徴量］
図７は、異常判定部におけるニューラルネットワークの特徴量の分布を示す図である。図７の（Ａ），（Ｂ）において、縦軸と横軸とはそれぞれ、形状や色などの特徴量の指標を示している。図７の（Ａ）は、高次元空間における教師画像の特徴量の分布の一例である。図７の（Ａ）では、教師画像から抽出された特徴量の分布が点群６０１としてプロットされている。図７の（Ｂ）は、高次元空間における入力画像（被写体は不良品の電子部品Ｐ）の特徴量の分布の一例である。図７の（Ｂ）では、入力画像から抽出された特徴量の分布が点群６０１及び点群６０２としてプロットされている。図７の（Ａ），（Ｂ）を比較すると、抽出された主たる特徴量が異なることがわかる。このように、異常判定部におけるニューラルネットワークは、被写体が不良品である場合には、教師画像の特徴量とは異なる特徴量（点群６０２）を抽出可能である。このような特徴量の分布の差異を異常スコアとすることもできる。
【００５９】
［分類スコア及び異常スコアと、判定結果との関係］
図８は、分類スコア及び異常スコアと、判定結果との関係を示すグラフである。図８に示すグラフ（散布領域８００）は、横軸が異常スコアに関する評価軸であり、縦軸が分類スコアに関する評価軸である。図８においては、異常スコアは０〜１の範囲となり、分類スコアは０〜１の範囲となる。散布領域８００内の円は分類スコア及び異常スコアを座標データとして持った入力画像のデータである。縦軸の値が０に近いほど不良カテゴリに属する確からしさが高いことを表す。縦軸の値が１に近いほど良カテゴリに属する確からしさが高いことを表す。横軸の値が０に近いほど教師画像との相違が小さいことを表す。横軸の値が１に近いほど教師画像との相違が大きいことを表す。なお、評価軸における上限や下限の設定において、数値は変更してもよい。
【００６０】
散布領域８００には、分類閾値８０１と異常閾値８０２とが設定される。良カテゴリ領域８０３は、分類スコアが分類閾値８０１以上で、異常スコアが異常閾値８０２以下の領域である。良カテゴリ領域８０３にプロットされたデータに関する入力画像は、被写体が良品の電子部品Ｐである画像であると判定される。
【００６１】
また、分類閾値８０１と異常閾値８０２とに加えて、分類スコアと異常スコアとに対する閾値をさらに１つずつ追加して設けてもよい。分類スコアにおいて、分類相違閾値８０４は分類閾値８０１より小さい値に設定される。分類閾値８０１と分類相違閾値８０４とは、後述の識別不能領域８０６が中心値を含む所定の範囲（例えば、０．２５〜０．７５）となるように設定される。異常スコアにおいて、異常相違閾値８０５は異常閾値８０２より大きい値に設定される。異常閾値８０２と異常相違閾値８０５とは、後述の識別不能領域８０６が中心値を含む所定の範囲（例えば、０．２５〜０．７５）となるように設定される。そして、図８に示されるように、分類閾値８０１、異常閾値８０２、分類相違閾値８０４及び異常相違閾値８０５の組み合わせによって、識別不能領域８０６と、不良カテゴリ領域８０７とが区画される。識別不能領域８０６は、散布領域８００において、分類スコアが分類相違閾値８０４以上、且つ、異常スコアが異常相違閾値８０５以下の領域のうち、良カテゴリ領域８０３を除いた領域である。不良カテゴリ領域８０７は、散布領域８００のうち、良カテゴリ領域８０３と識別不能領域８０６とを除いた領域である。
【００６２】
図８の例では、識別不能領域８０６にデータがプロットされているということは、当該データの分類スコアおよび異常スコアのいずれかまたは双方が、１または０に近似していない値（例えば、０．２５〜０．７５）であることを意味する。つまり、識別不能領域８０６にプロットされたデータに関する入力画像は、良画像らしくもあり、不良画像らしくもある。このような入力画像を識別不能画像と判定することにより、識別不能画像については、人間の目視判定などの他の識別手法に委ねることができる。そのため、外観検査装置１００及び画像識別装置２００における識別において、システム全体としての識別精度を向上させることができる。
【００６３】
後述の入力画像識別処理（Ｓ９７０）において、取得された分類スコアと異常スコアとを有する入力画像のデータがこの散布図にプロットされる。いずれの領域にプロットされたかに基づいて、入力画像が良画像、不良画像又は識別不能画像に識別される。なお、散布領域８００に設定される閾値の数は、２つ又は４つに限定されるものではなく、２以上の任意の数を設定することができる。また、表示制御部２６０は、散布領域８００および閾値の調整状況を、表示部１７０に表示させる制御を行ってもよい。
【００６４】
［画像識別装置の動作］
［学習処理］
図９は、学習処理のフローチャートである。画像識別装置２００における学習処理は、分類学習部２３１における分類用学習処理（Ｓ９００）と、判定学習部２４１における異常検知用学習処理（Ｓ９１０）と、を有する。分類用学習処理（Ｓ９００）と、異常検知用学習処理（Ｓ９１０）との順番は、どちらが先でも構わない。あるいはまた、後述の画像識別処理において、予め学習されたニューラルネットワークが用いられてもよい。この場合、分類用学習処理（Ｓ９００）および異常検知用学習処理（Ｓ９１０）のいずれかまたは両方の処理を省略することができる。
【００６５】
図１０は、分類部におけるニューラルネットワークの学習処理のフローチャートである。図１０のフローチャートは、図９に示す分類用学習処理（Ｓ９００）の詳細である。分類学習部２３１は、教師データ取得処理（Ｓ９０１）として、教師データ取得部２１０から教師データを取得する。教師データは、正解のラベルが付与された教師画像である場合と、不正解のラベルが付与された教師画像である場合とがある。分類学習部２３１は、演算処理（Ｓ９０２）として、取得された教師データをニューラルネットワークに学習させる。この演算処理（Ｓ９０２）では、入力された教師画像について、良スコアと不良スコアとがニューラルネットワークから出力される。本実施形態では、良スコアと不良スコアとは、それぞれ０．０〜１．０の範囲の値となり、良スコアと不良スコアとの合計は１．０となるように設定されている。分類学習部２３１は、誤差演算処理（Ｓ９０３）として、教師画像に付与されていたラベルと、当該教師画像について出力されたスコアと、の誤差を算出する。分類学習部２３１は、逆伝播処理（Ｓ９０４）として、Ｓ９０３で算出された誤差を用いて、ニューラルネットワークの中間層の重み係数を調整する。分類学習部２３１は、閾値判定処理（Ｓ９０５）として、Ｓ９０３で算出された誤差は所定の閾値を下回るか否かを判定する。誤差が所定の閾値を下回らないと判定された場合（Ｓ９０５：ＮＯ）、再びＳ９０２〜Ｓ９０５の処理が繰り返される。誤差が所定の閾値を下回ると判定された場合（Ｓ９０５：ＹＥＳ）、完了判定処理（Ｓ９０６）に移行する。
【００６６】
演算処理（Ｓ９０２）〜閾値判定処理（Ｓ９０５）の具体例として、正解のラベル「１」が付与されている教師画像が入力されたユースケースについて説明する。この教師画像に対して演算処理（Ｓ９０２）が初めて施された場合、良スコアと不良スコアとして、例えばそれぞれ「０．９」と「０．１」との値がニューラルネットワークから出力される。次いで、誤差演算処理（Ｓ９０３）では、正解のラベル「１」と、良スコア「０．９」との差「０．１」が算出される。なお、教師画像に不正解のラベルが付与されている場合、不良スコアとの差が算出される。次いで、誤差伝播処理（Ｓ９０４）では、誤差演算処理（Ｓ９０３）で算出される誤差がより小さくなるように、ニューラルネットワークの中間層の重み係数が調整される。閾値判定処理（Ｓ９０５）において、誤差演算処理（Ｓ９０３）で算出される誤差が所定の閾値を下回ると判定されるまで重み係数の調整が繰り返されることにより、ニューラルネットワークの学習が行われる。
【００６７】
次いで、完了判定処理（Ｓ９０６）において、全ての教師データについて処理が完了したか否かを判定する。全ての教師データについて処理が完了していないと判定された場合（Ｓ９０６：ＮＯ）、再びＳ９０１〜Ｓ９０６の処理が繰り返される。全ての教師データについて処理が完了したと判定された場合（Ｓ９０６：ＹＥＳ）、図１０のフローチャートが終了し、図９のフローチャートに戻る。
【００６８】
図１１は、異常判定部におけるニューラルネットワークの学習処理のフローチャートである。図１１のフローチャートは、図９に示す異常検知用学習処理（Ｓ９１０）の詳細である。判定学習部２４１は、教師データ取得処理（Ｓ９１１）として、教師データ取得部２１０から教師データを取得する。本実施形態において、異常検知用学習で用いられる教師データは、被写体が良品の電子部品Ｐである教師画像である。あるいはまた、異常検知用学習で用いられる教師データは、分類用学習（Ｓ９００）で用いられる、正解のラベルが付与された教師画像であってもよい。判定学習部２４１は、演算処理（Ｓ９１２）として、取得された教師データをニューラルネットワークに学習させる。この演算処理（Ｓ９１２）では、教師画像が有する特徴量を圧縮した後に、教師画像が有していた特徴量を再構成する演算が行われる。いわば、一旦ダウンスケールされた教師画像の復元が試みられる。判定学習部２４１は、誤差演算処理（Ｓ９１３）として、教師画像の特徴量と、演算処理（Ｓ９１２）で再構成された特徴量との誤差を算出する。判定学習部２４１は、逆伝播処理（Ｓ９１４）として、誤差演算処理（Ｓ９１３）で算出された誤差を用いて、ニューラルネットワークの中間層の重み係数を調整する。判定学習部２４１は、閾値判定処理（Ｓ９１５）として、誤差演算処理（Ｓ９１３）で算出された誤差は所定の閾値を下回るか否かを判定する。誤差が所定の閾値を下回らないと判定された場合（Ｓ９１５：ＮＯ）、再びＳ９１２〜Ｓ９１５の処理が繰り返される。誤差が所定の閾値を下回ると判定された場合（Ｓ９１５：ＹＥＳ）、完了判定処理（Ｓ９１６）に移行する。このように、誤差演算処理（Ｓ９１３）で算出される誤差が所定の閾値を下回るまで重み係数の調整が繰り返されることにより、任意の入力画像から教師画像を復元可能なように、ニューラルネットワークの学習が行われる。
【００６９】
次いで、完了判定処理（Ｓ９１６）として、全ての教師データについて処理が完了したか否かが判定される。全ての教師データについて処理が完了していないと判定された場合（Ｓ９１６：ＮＯ）、再びＳ９１１〜Ｓ９１６の処理が繰り返される。全ての教師データについて処理が完了したと判定された場合（Ｓ９１６：ＹＥＳ）、図１１のフローチャートが終了し、図９のフローチャートに戻る。
【００７０】
［閾値設定処理］
図１２は、閾値設定処理のフローチャートである。設定部２８０は、散布図作成処理（Ｓ９２０）として、分類スコアを縦軸とし、異常スコアを横軸とした散布図を生成する。設定部２８０は、閾値設定処理（Ｓ９３０）として、受付部２７０で受け付けたユーザ操作による設定条件に基づいて、分類閾値８０１、異常閾値８０２、分類相違閾値８０４、及び、異常相違閾値８０５を設定する。この散布図は、後述の入力画像から取得される分類スコアと異常スコアとを図示するための散布領域８００を示している。閾値設定処理（Ｓ９３０）が終了すると、図１２のフローチャートを終了する。
【００７１】
［画像識別処理（画像識別方法の一例）］
図１３は、画像識別処理のフローチャートである。図１３のフローチャートは、図９〜１１のフローチャートの終了後に開始される。分類推論部２３２及び判定推論部２４２は、画像取得処理（Ｓ９４０：第１工程）として、取得部２２０において取得された入力画像を取得する。分類推論部２３２は、分類用推論処理（Ｓ９５０：第２工程）として、入力画像の分類スコアを算出する。判定推論部２４２は、異常検知用推論処理（Ｓ９６０：第３工程）として、入力画像の異常スコアを算出する。識別部２５０は、識別処理（Ｓ９７０：第４工程）として、分類スコア、異常スコア、分類閾値８０１、異常閾値８０２、分類相違閾値８０４、及び、異常相違閾値８０５に基づいて、入力画像を識別する。識別部２５０は、完了判定処理（Ｓ９８０）として、全ての入力画像について処理が完了したか否かを判定する。全ての入力画像について処理が完了していないと判定された場合（Ｓ９８０：ＮＯ）、再びＳ９４０〜Ｓ９８０の処理が繰り返される。全ての入力画像について処理が完了したと判定された場合（Ｓ９８０：ＹＥＳ）、図１３に示されるフローチャートが終了する。
【００７２】
［分類用推論処理］
図１４は、分類用推論処理のフローチャートである。図１４のフローチャートは、図１３に示す分類用推論処理（Ｓ９５０）の詳細である。分類推論部２３２は、演算処理（Ｓ９５１）として、入力画像を、分類用学習処理（Ｓ９００）で得られたニューラルネットワークに適用して演算を行う。入力画像は、被写体として電子部品Ｐを含む。教師画像と異なり、入力画像にはラベルは付与されていない。分類推論部２３２は、スコア取得処理（Ｓ９５２）として、ニューラルネットワークから入力画像の分類スコアを取得する。推論段階においても、入力画像について、良スコアと不良スコアとが、ニューラルネットワークから出力される。本実施形態では、ニューラルネットワークから出力されたスコアのうち、良スコアが分類スコアとして取得される。スコア取得処理（Ｓ９５２）が完了すると、図１４のフローチャートを終了して、図１３のフローチャートに戻る。
【００７３】
［異常検知用推論処理］
図１５は、異常検知用推論処理のフローチャートである。図１５の推論フローチャートは、図１３に示す異常検知用推論処理（Ｓ９６０）の詳細である。判定推論部２４２は、演算処理（Ｓ９６１）として、入力画像を、異常検知用学習処理（Ｓ９１０）で得られたニューラルネットワークに適用して演算を行う。この演算処理（Ｓ９１２）では、入力画像が有する特徴量を圧縮した後に、教師画像が有している特徴量に近似するように、圧縮された特徴量を再構成する演算が行われる。判定推論部２４２は、演算処理（Ｓ９６１）を行うことにより、入力画像から再構成された画像を得ることができる。判定推論部２４２は、スコア取得処理（Ｓ９６２）として、ニューラルネットワークから入力画像の異常スコアを取得する。スコア取得処理（Ｓ９６２）が完了すると、図１５のフローチャートを終了して、図１３のフローチャートに戻る。
【００７４】
［入力画像識別処理］
図１６は、入力画像識別処理のフローチャートである。図１６のフローチャートは、図１３に示す入力画像識別処理（Ｓ９７０）の詳細である。識別部２５０は、良カテゴリ判定処理（Ｓ９７１）として、散布領域８００において、入力画像の分類スコアと異常スコアとをプロットした場合、データ点が良カテゴリ領域８０３にプロットされるか否かを判定する。良カテゴリ領域８０３にデータ点がプロットされると判定された場合（Ｓ９７１：ＹＥＳ）、識別部２５０は、良識別処理（Ｓ９７３）として、入力画像を良画像に識別する。良カテゴリ領域８０３にデータ点がプロットされないと判定された場合（Ｓ９７１：ＮＯ）、識別部２５０は、不良カテゴリ判定処理（Ｓ９７２）として、散布領域８００において、入力画像の分類スコアと異常スコアとがプロットされた場合、不良カテゴリ領域８０７にデータ点がプロットされるか否かを判定する。不良カテゴリ領域８０７にデータ点がプロットされると判定された場合（Ｓ９７２：ＹＥＳ）、識別部２５０は、不良識別処理（Ｓ９７４）として、入力画像を不良画像に識別する。不良カテゴリ領域８０７にデータ点がプロットされないと判定された場合（Ｓ９７２：ＮＯ）、識別部２５０は、識別不能処理（Ｓ９７５）として、入力画像を識別不能画像に識別する。良識別処理（Ｓ９７３）、不良識別処理（Ｓ９７４）、又は、識別不能処理（Ｓ９７５）が完了すると、図１６のフローチャートを終了して、図１３のフローチャートに戻る。
【００７５】
［他の実施形態］
上述の実施形態では、分類学習部２３１と判定学習部２４１とが画像識別装置２００に含まれる構成について説明したが、これらのいずれかまたは双方が画像識別装置２００の外部装置に含まれる構成であってもよい。図１７は、別実施形態に係る、画像識別装置２００と学習装置１０００との機能の一例を示すブロック図である。図１７に示される通り、教師データ取得部２１０と、分類学習部２３１と、判定学習部２４１とが学習装置１０００に設けられている。学習装置１０００で学習された分類用ニューラルネットワークと、異常検知用ニューラルネットワークとは、学習処理が終了した後に、それぞれ分類推論部２３２と、判定推論部２４２とに適用される。
【００７６】
一般的に、機械学習において画像を用いた学習処理は、多くのコンピュータリソースを消費する。そのため、分類用学習（Ｓ９００）と異常検知用学習（Ｓ９１０）とのそれぞれの処理を画像識別装置２００上で実行させる場合、画像識別装置２００の装置コストが上がってしまうおそれがある。分類用学習（Ｓ９００）と異常検知用学習（Ｓ９１０）とのそれぞれの処理を学習装置１０００上で実行させることにより、画像識別装置２００の装置コストを下げることができる、という効果を奏する。
【００７７】
［プログラム］
画像識別装置２００として機能させるための画像識別プログラムを説明する。画像識別プログラムは、メインモジュール、取得モジュール、分類モジュール、異常判定モジュール及び識別モジュールを備えている。メインモジュールは、装置を統括的に制御する部分である。取得モジュール、分類モジュール、異常判定モジュール及び識別モジュールを実行させることにより実現される機能は、上述した画像識別装置２００の取得部２２０、分類部２３０、異常判定部２４０及び識別部２５０の機能とそれぞれ同様である。
【００７８】
［実施形態のまとめ］
本実施形態に係る画像識別装置２００では、分類部２３０により、正解及び不正解のラベルが付与された教師画像に基づく学習済みのニューラルネットワーク４００と、入力画像とに基づいて、入力画像と教師画像との類似度合いを示す分類スコアが算出される。異常判定部２４０により、教師画像に基づく学習済みのニューラルネットワーク５００と、入力画像とに基づいて、入力画像と教師画像との相違度合いを示す異常スコアが算出される。入力画像は、識別部２５０により、分類スコアと異常スコアとに基づいて良画像と不良画像とに分類される。このように、画像識別装置２００は、分類スコアと異常スコアという２つの異なる評価に基づいて入力画像を最終的に分類することにより、入力画像を良画像又は不良画像に適切に分類することができる。
【００７９】
正解及び不正解のラベルが付与された教師画像に基づく分類学習済みのニューラルネットワーク４００は、概して、教師画像（良画像、不良画像）に類似していない入力画像を正確に判定することができない。その理由は、良画像と不良画像とのいずれとも類似していない画像は、分類用学習（Ｓ９００）において学習対象となっておらず、分類用推論（Ｓ９５０）において信頼度の低い推論結果をもたらしてしまう可能性が高くなるからである。すなわち、分類用学習を通じて超分離平面（図５の（Ｂ））が形成される際に、良画像と不良画像とのいずれとも類似していない画像は考慮されないため、このような画像の特徴量は、本来、不良カテゴリ領域にプロットされるはずが、良カテゴリ領域にプロットされてしまう場合などが発生するためである。
【００８０】
一方で、異常検知用学習（Ｓ９１０）において良画像のみを学習して生成されたニューラルネットワーク５００は、教師画像と入力画像との相違度合いをスコアとして出力するので、出力されたスコアに応じて入力画像を異常（不良画像）として判定することができる。しかし、ニューラルネットワーク５００だけでは、微小な不良箇所を分離しづらく、分類学習のように良画像と不良画像との境界を決定することが困難である。本開示に係る画像識別装置２００は、分類学習に異常検知を組み合わせることで、分類の利点であった強力な識別能力を発揮しながらにして、分類の弱点であった未学習画像の識別能力を異常検知でカバーできる。これにより、「未知の不良品を含むあらゆる不良品」に対応することができる。さらに、未知の画像（未知の不良品）に対する分類の誤判定のおそれを、異常検知により保障することができる。
【００８１】
本実施形態に係る画像識別装置２００では、スコアごとに閾値を用意して分類することができる。本実施形態に係る画像識別装置２００では、ユーザに分類閾値８０１及び異常閾値８０２を設定させることができるので、ユーザの目視分類に近い分類を実現することができる。画像識別装置２００は、分類閾値８０１と異常閾値８０２と結果のデータとを散布領域８００に可視化することができるので、データと閾値との関係をユーザに直感的に理解させることができる。画像識別装置２００は、入力画像から教師画像を再構成するオートエンコーダを利用して異常スコアを算出することができる。
【００８２】
以上、本開示の実施形態について説明したが、本開示は、上記実施形態に限定されるものではない。例えば、外観検査装置１００は、電子部品Ｐの向きを反転させる反転装置を有してもよい。例えば、画像識別装置２００内の教師データ取得部２１０と、取得部２２０と、分類部２３０と、異常判定部２４０と、識別部２５０と、表示制御部２６０と、受付部２７０と、設定部２８０とは、１つの装置内に含まれることなく、部ごとに用意された装置が通信ネットワークを介して接続された集合体として構成されてもよい。
【００８３】
画像識別装置２００は、学習に関する構成を備えていなくてもよい。例えば、画像識別装置２００は、教師データ取得部２１０、分類学習部２３１、判定学習部２４１を備えていなくてもよい。この場合、画像識別装置２００は、予め学習されたニューラルネットワーク及び重み係数を外部から取得すればよい。
【符号の説明】
【００８４】
１００…外観検査装置、１７０…表示部、２００…画像識別装置、２１０…教師データ取得部、２２０…取得部、２３０…分類部、２３１…分類学習部、２３２…分類推論部、２４０…異常判定部、２４１…判定学習部、２４２…判定推論部、２５０…識別部、２６０…表示制御部、２７０…受付部、２８０…設定部。
【図１】
2020035097.tif 000003
【図２】
2020035097.tif 000004
【図３】
2020035097.tif 000005
【図４】
2020035097.tif 000006
【図５】
2020035097.tif 000007
【図６】
2020035097.tif 000008
【図７】
2020035097.tif 000009
【図８】
2020035097.tif 000010
【図９】
2020035097.tif 000011
【図１０】
2020035097.tif 000012
【図１１】
2020035097.tif 000013
【図１２】
2020035097.tif 000014
【図１３】
2020035097.tif 000015
【図１４】
2020035097.tif 000016
【図１５】
2020035097.tif 000017
【図１６】
2020035097.tif 000018
【図１７】
2020035097.tif 000019