IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧

特許7481956推論装置、方法、プログラムおよび学習装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-01
(45)【発行日】2024-05-13
(54)【発明の名称】推論装置、方法、プログラムおよび学習装置
(51)【国際特許分類】
   G06N 3/04 20230101AFI20240502BHJP
【FI】
G06N3/04
【請求項の数】 17
(21)【出願番号】P 2020142879
(22)【出願日】2020-08-26
(65)【公開番号】P2022038390
(43)【公開日】2022-03-10
【審査請求日】2022-08-26
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】井田 孝
(72)【発明者】
【氏名】笹谷 典太
(72)【発明者】
【氏名】渡邉 航
(72)【発明者】
【氏名】伊東 孝幸
(72)【発明者】
【氏名】小野 利幸
【審査官】▲はま▼中 信行
(56)【参考文献】
【文献】特開2019-086475(JP,A)
【文献】特開2020-008896(JP,A)
【文献】国際公開第2020/008834(WO,A1)
【文献】特開2019-125204(JP,A)
【文献】国際公開第2019/159324(WO,A1)
【文献】特開2018-032340(JP,A)
【文献】Ross Girshick et al.,Rich feature hierarchies for accurate object detection and semantic segmentation,Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition,IEEE [online],2014年,pp.580-587,[検索日 2024.01.19],インターネット <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6909475>
【文献】Ross Girshick,Fast R-CNN,roceedings of the 2015 IEEE International Conference on Computer Vision,IEEE [online],2015年,pp.1440-1448,[検索日 2024.01.19],インターネット <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7410526>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 7/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
入力信号から当該入力信号の一部である複数の部分信号を切り出す切出部と、
前記複数の部分信号を畳み込みニューラルネットワークにより処理することにより、前記複数の部分信号それぞれに対応する複数の中間部分信号を生成する畳み込み処理部と、
前記複数の中間部分信号それぞれに基づいて、前記複数の中間部分信号と同数の統計量を算出する算出部と、
前記複数の中間部分信号と同数の統計量に基づき、前記入力信号に関する1つの推論結果を出力する出力部と、
を具備する推論装置。
【請求項2】
入力信号を畳み込みニューラルネットワークにより処理することにより、中間信号を生成する畳み込み処理部と、
前記中間信号から当該中間信号の一部である複数の中間部分信号を切り出す切出部と、
前記複数の中間部分信号それぞれに基づいて、前記複数の中間部分信号と同数の統計量を算出する算出部と、
前記複数の中間部分信号と同数の統計量に基づき、前記入力信号に関する1つの推論結果を出力する出力部と、
を具備する推論装置。
【請求項3】
前記算出部は、前記複数の中間部分信号それぞれの平均値のうちの最大値を前記統計量として算出する、請求項1または請求項2に記載の推論装置。
【請求項4】
前記算出部は、前記複数の中間部分信号における最大値を前記統計量として算出する、請求項1または請求項2に記載の推論装置。
【請求項5】
前記算出部は、前記複数の中間部分信号それぞれの平均値を全結合した値を前記統計量として算出する、請求項1または請求項2に記載の推論装置。
【請求項6】
前記出力部は、前記統計量に関数を適用することで前記推論結果を出力する、請求項1から請求項5のいずれか1項に記載の推論装置。
【請求項7】
前記関数は、シグモイド関数またはソフトマックス関数である、請求項6に記載の推論装置。
【請求項8】
前記中間部分信号は、1チャンネルの信号であり、
前記推論結果は、前記入力信号が推論対象となる1つのクラスに該当する確率を示す、請求項1から請求項7のいずれか1項に記載の推論装置。
【請求項9】
前記中間部分信号は、複数のチャンネルの信号であり、
前記算出部は、前記チャンネルごとに、中間部分信号それぞれの統計量を算出し、
前記出力部は、前記入力信号が、推論対象であって前記複数のチャンネルと同数である複数のクラスにそれぞれ該当する確率を前記推論結果として出力する、
請求項1から請求項7のいずれか1項に記載の推論装置。
【請求項10】
前記中間部分信号のサンプリングデータの数は、前記部分信号と同じである、請求項1に記載の推論装置。
【請求項11】
前記中間信号のサンプリングデータの数は、前記入力信号と同じである、請求項2に記載の推論装置。
【請求項12】
前記入力信号は、1次元の時系列信号または画像信号である、請求項1から請求項11のいずれか1項に記載の推論装置。
【請求項13】
前記中間部分信号に前記統計量に応じた強調処理を実行し、前記入力信号および部分信号の少なくともどちらか一方に、前記強調処理後の中間部分信号を重畳表示する表示制御部をさらに具備する、請求項1から請求項12のいずれか1項に記載の推論装置。
【請求項14】
前記強調処理は、前記中間部分信号に対する前記統計量に応じた色による着色処理である、請求項13に記載の推論装置。
【請求項15】
入力信号から当該入力信号の一部である複数の部分信号を切り出し、
前記複数の部分信号を畳み込みニューラルネットワークにより処理することにより、前記複数の部分信号それぞれに対応する複数の中間部分信号を生成し、
前記複数の中間部分信号それぞれに基づいて、前記複数の中間部分信号と同数の統計量を算出し、
前記複数の中間部分信号と同数の統計量に基づき、前記入力信号に関する1つの推論結果を出力する、推論方法。
【請求項16】
コンピュータを、
入力信号から当該入力信号の一部である複数の部分信号を切り出す切出手段と、
前記複数の部分信号を畳み込みニューラルネットワークにより処理することにより、前記複数の部分信号それぞれに対応する複数の中間部分信号を生成する畳み込み処理手段と、
前記複数の中間部分信号それぞれに基づいて、前記複数の中間部分信号と同数の統計量を算出する算出手段と、
前記複数の中間部分信号と同数の統計量に基づき、前記入力信号に関する1つの推論結果を出力する出力手段として機能させるための推論プログラム。
【請求項17】
請求項1から請求項14のいずれか1項に記載の推論装置に含まれる前記畳み込みニューラルネットワークを学習する学習装置であって、
前記入力信号に対する前記推論装置の出力である推論結果と前記入力信号に紐付けられた正解データとの誤差を算出し、前記誤差を用いて前記畳み込みニューラルネットワークのパラメータを学習する学習制御部、を具備する学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、推論装置、方法、プログラムおよび学習装置に関する。
【背景技術】
【0002】
防犯カメラの画像に基づく侵入者検知または製品の異常検知などの画像分類分野において、ニューラルネットワークによる識別処理が採用されている。具体的には、例えば防犯カメラで撮影した映像に小さく写った侵入者を検出する、工場における外観検査画像から製造品の小さな欠陥を検出するといった識別処理の用途に、ニューラルネットワークによる識別処理が用いられる。
一般的に採用されるニューラルネットワークによる識別処理では、画素数が多い画像に対して行うと、畳み込み処理の前半で画像サイズが小さくなる。よって、画像の分解能が低下してしまい識別精度が低くなる。また、注目マップの生成には、検出処理に加えて追加の処理が必要となり、短時間で識別処理結果を得ることが必要な状況では、その処理量や遅れが問題になる。さらに、注目マップは識別処理の過程には現れないため、識別の根拠として十分ではないという問題がある。
【先行技術文献】
【非特許文献】
【0003】
【文献】Bolei Zhou et al., “Learning Deep Features for Discriminative Localization," 2016 IEEE Conference on Computer Vision and Pattern Recognition, 2016.
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、上述の課題を解決するためになされたものであり、高精度の分類処理を実現する推論装置、方法、プログラムおよび学習装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
本実施形態に係る推論装置は、切出部と、畳み込み処理部と、算出部と、出力部とを含む。切出部は、入力信号から当該入力信号の一部である1以上の部分信号を切り出す。畳み込み処理部は、前記1以上の部分信号を畳み込みニューラルネットワークにより処理することにより、前記1以上の部分信号に対応する1以上の中間部分信号を生成する。算出部は、前記1以上の中間部分信号の統計量を算出する。出力部は、前記統計量に応じた前記入力信号に関する推論結果を出力する。
【図面の簡単な説明】
【0006】
図1】第1の実施形態に係る推論装置を示すブロック図。
図2】第1の実施形態に係る推論装置の動作例を示すフローチャート。
図3】製造品を撮像した画像データの一例を示す図。
図4】異物が付着した製造品を撮像した画像データの一例を示す図。
図5】撮像領域において位置がずれた状態の製造品を撮像した画像データの一例を示す図。
図6】製造品の画像データから切り出される部分画像の一例を示す図。
図7】第1の実施形態に係る畳み込み処理部における畳み込み処理の第1例を示す図。
図8】第1の実施形態に係る畳み込み処理部における畳み込み処理の第2例を示す図。
図9】第1の実施形態に係る、画像を例とした推論装置の動作例を示す概念図。
図10】出力部の第1の変形例を示す図。
図11】出力部の第2の変形例を示す図。
図12】出力部の第3の変形例を示す図。
図13】製造品を撮像した画像データの一例を示す図。
図14】中間部分画像の一例を示す模式図。
図15】注目マップの前処理の一例を示す図。
図16】入力画像と注目マップとの重畳表示の一例を示す図。
図17】第1の実施形態の変形例に係る推論装置の動作例の概念図。
図18】第2の実施形態に係る推論装置の動作例を示すフローチャート。
図19】第2の実施形態に係る、画像を例とした推論装置の動作例を示す概念図。
図20】入力信号として1次元信号を用いる例を示す図。
図21】第3の実施形態に係る畳み込み処理部における畳み込み処理を示す図。
図22】第4の実施形態に係る学習装置を含む学習システムを示すブロック図。
図23】推論装置および学習装置のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【0007】
以下、図面を参照しながら本実施形態に係る推論装置、方法、プログラムおよび学習装置について詳細に説明する。なお、以下の実施形態では、同一の参照符号を付した部分は同様の動作をおこなうものとして、重複する説明を適宜省略する。
【0008】
(第1の実施形態)
第1の実施形態に係る推論装置について図1のブロック図を参照して説明する。
第1の実施形態に係る推論装置10は、切出部101と、畳み込み処理部102と、算出部103と、出力部104と、表示制御部105とを含む。
【0009】
切出部101は、入力信号を受け取る。入力信号は、例えば画像信号である。画像信号は、1枚の静止画像であってもよいし、時系列の所定枚の画像を含む動画像であってもよい。また、入力信号は、一次元の時系列信号であってもよい。一次元の時系列信号は、例えば所定時間で取得される音声信号、光信号である。
切出部101は、入力信号から、それぞれが入力信号における異なる一部分である1以上の部分信号を切り出す。例えば、入力信号が1枚の静止画像である場合、部分信号は、静止画像における予め定められた一部分を切り出した部分画像である。複数の部分信号のそれぞれは、同一サイズでもよいし、異なるサイズでもよい。また、切出部101は、入力信号から複数の部分信号を切り出す際に、他の部分信号の一部が重複するように切り出してもよいし、他の部分信号と重複しないように切り出してもよい。
【0010】
畳み込み処理部102は、複数の畳み込み層を含むレイヤ構造を有する畳み込みニューラルネットワークを含む。畳み込み処理部102は、切出部101から複数の部分信号を受け取り、各部分信号を畳み込みニューラルネットワークにより処理することにより、1以上の部分信号に対応する1以上の中間部分信号を生成する。
なお、畳み込み処理部102は、切出部101により切り出された複数の部分信号に一対一に対応するように複数設けられてもよい。複数の畳み込み処理部102が設けられる場合は、複数の畳み込み処理部102に含まれる畳み込みニューラルネットワークはそれぞれ、重み係数およびバイアス値などのパラメータ群が同一であっても、異なっていてもよい。また、畳み込み処理部102は1つでもよく、この場合、時分割で複数の部分信号を逐次処理すればよい。
【0011】
算出部103は、畳み込み処理部102からの中間部分信号を受け取り、1以上の中間部分信号に対して統計処理を行うことで統計量を算出する。
【0012】
出力部104は、算出部103から統計量を受け取り、統計量に応じた入力信号に関する推論結果を出力する。
【0013】
表示制御部105は、中間部分信号に対して統計量に応じた強調処理を実行し、入力信号および部分信号の少なくともどちらか一方に強調処理後の中間部分信号を注目マップとして重畳表示する。なお、表示制御部105は、推論装置10の一部として図示しているが、これに限らず、推論装置10とは別体でもよい。
【0014】
次に、第1の実施形態に係る推論装置10の動作例について図2のフローチャートを参照して説明する。
ステップS201では、切出部101が、入力信号から複数の部分信号を切り出す。
ステップS202では、畳み込み処理部102が、複数の部分信号のそれぞれについて、畳み込みニューラルネットワークにより畳み込み処理し、複数の中間部分信号を生成する。
ステップS203では、算出部103が、各中間部分信号の統計量を算出する。ここでは、各中間部分信号の平均値を算出する。
ステップS204では、算出部103が、複数の平均値の中から最大値を算出する。
ステップS205では、出力部104が、最大値に関数を適用することで、入力信号に関する推論結果、例えば入力信号が推論対象のクラスに該当する確率を推論結果として出力する。
【0015】
なお、図2のフローチャートでは、ステップS201で切り出された複数の部分信号について一度に処理することを想定するが、ステップS201で部分信号を1つ切り出し、1つの部分信号に対して推論結果を出力し、別の部分信号を切り出して推論結果を出力し、といったように、推論装置10は部分信号を1つずつ処理してもよい。
【0016】
次に、第1の実施形態で想定する入力信号の一例について図3から図6までを参照して説明する。以下、第1の実施形態では、入力信号が画像である場合を例に説明する。
図3は、製造品301を撮像した画像データの一例を示す図である。推論装置10は、工場の製造ラインにおける製造品301の外観検査において、製造品301に異常があるかないかの製造欠陥の有無を判定するために用いられてもよい。この場合、推論装置10は、入力信号として、図3に示すような製造品301を撮像した画像データを取得する。製造品301を撮像した画像データは、例えば、可視光のモノクロ画像、カラー画像、あるいは、赤外線画像、X線画像または凹凸を計測した奥行画像などである。
【0017】
次に、図4は、異物402が付着した製造品301を撮像した画像データを示す図である。例えば、図4に示すように、円形部品401に異物402が付着している場合などの製造品301の外観に異常が存在する場合、推論装置10は、製造品301に「欠陥あり」と判定する。また、製造品301の外観に異常が存在しない場合、推論装置10は、製造品301に「欠陥なし」と判定する。
【0018】
図5は、撮像領域において位置がずれた状態の製造品501を撮像した画像データを示す図である。仮に、理想的に全ての正常な製造品において等しい画素値の画像が撮影できるのであれば、単純に正常な製造品画像と撮影画像との画素値の差分を算出し、画素値の絶対値が大きい部分があれば欠陥ありと判定すればよい。しかし、実際には、図5に示すように製造品501の位置がずれて写ったり、照明強度やイメージセンサ感度が変動したり、各部品の位置が許容値以下の範囲でずれたりして、正常品であっても画像に変動が生じることが多い。このような場合には、単純な差分では欠陥の有無を判定できない。本実施形態に係る推論装置10は、ニューラルネットワークを用いることで、事前にこれらの変動した画像も学習データに含めておくことで推論処理の際に対応できる。
【0019】
次に、入力画像に含まれる複数の部分信号、つまり部分画像の一例を図6に示す。工場の製造ラインにおける製造品301の外観検査において、推論装置10は、製造品301を撮像した画像データにおける予め定められた部分画像を切り出し、部分画像における異常の有無について推定する。
【0020】
例えば、切出部101は、図6の破線で囲んだ矩形部分のような、サイズが同一の部分画像601、602、603および604の4つを切り出す。部分画像601、602、603および604のそれぞれの位置は、外観検査の前工程で部品が取り付けられた領域を部分画像として設定するなど、検査対象とする部分に応じて予め定められればよい。なお、切出部101は、部分画像をいくつ切り出してもよいし、サイズまたは形状の異なる複数の部分画像を切り出してもよい。
なお、部分画像601および部分画像602のように画像パターンが近い方が異物などの検出が容易となるが、部分画像603および部分画像604のように形状の違いにより画像パターンが異なる部分画像も処理できる。これは、後述するニューラルネットワークの学習時において、画像パターンの違いを欠陥として反応させないように学習できるためである。よって、切り出した部分画像をまとめて推論装置10により処理できる。
【0021】
次に、畳み込み処理部102における畳み込み処理の第1例について図7を参照して説明する。
図7は、部分信号である1チャンネルの部分画像701と、畳み込み処理部102により畳み込み処理されることで生成される中間部分信号である中間部分画像を示す模式図である。また、説明の便宜上、部分画像701の各画素(サンプリングデータともいう)702を球で表し、各画素702が画素値を有するとする。畳み込みニューラルネットワークを形成する複数の畳み込み層のうちの最初の畳み込み層において、部分画像701の各画素702で、カーネル(フィルタともいう)が有する重み係数と、カーネルに対応する領域の部分画像の画素702の画素値とが積和演算されることにより、中間部分信号である中間部分画像703の1つの画素704について画素値が算出される。
【0022】
図7の例では3×3サイズのカーネルの9個の各領域に対応する重み係数に、カーネルの領域に対応する部分画像のうちの縦3個×横3個の計9個の画素702の画素値をそれぞれ乗算して加算することで、1つの画素704の画素値が算出される。その後にカーネルを左右、上下に移動させ、隣接する画素位置に対しても同様の積和演算を実施することで、1チャンネルの中間部分画像703を生成する。続いて次層の畳み込み層において、中間部分画像703の畳み込み処理が実行されることで、中間部分画像706が生成される。以降、畳み込みニューラルネットワークを形成する畳み込み層において、中間部分画像に対する同様の畳み込み処理が実行される。
【0023】
なお、カーネルの移動量は1画素分(すなわち、ストライド1)で動かすことを想定し、畳み込み演算を行う部分画像701および後段の中間部分画像703の端部では、ゼロパディングまたは端部の画素値をコピーすることで、周辺画素を一回り大きく取る。これにより、ストライド1で畳み込み演算を行っても、縦画素数および横画素数を変化させずに、次の畳み込み層に入力される中間部分画像のサイズを、元の部分画像のサイズに維持できる。すなわち、中間部分画像(中間部分信号)におけるサンプリングデータの数は、部分画像(部分信号)と同じである。
【0024】
なお、積和演算だけではなく、積和に所定のバイアス値を加算してもよい。このバイアス値も重み係数と同様に、画面全体で一定としてもよい。
さらに、畳み込み層からの出力となる、積和演算およびバイアス値の加算により得られる中間部分画像703に対して、ReLU(Rectified Linear Unit)のような所定の関数を適用して活性化処理を行う活性化層を、複数の畳み込み層の層間に挿入してもよい。
【0025】
なお、活性化層は、必ずしも畳み込み層の後に適用される必要はない。つまり、活性化層を挟まずに畳み込み層が連続して接続されるパターンと、畳み込み層の後に活性化層が接続されるパターンとが混在してもよい。
【0026】
次に、畳み込み処理部102における畳み込み処理の第2例について図8を参照して説明する。
畳み込み層で生成される中間部分画像703は、複数のチャンネルで構成されてもよい。例えばカラー画像であれば、RGB信号に対応する3チャンネルの画像となる。畳み込み層においては、チャンネルは複数存在するほうが処理の自由度が高くなり、様々な画像に対応できる。図8の例では、複数のチャンネル705を有する中間部分画像703を想定し、中間部分画像703はチャンネル705ごとに畳み込み処理が実行される。なお、画像の解像度を維持するために、中間部分画像703における縦画素数および横画素数は変化させない。データ数は、縦画素数×横画素数×チャンネル数であるので、推論装置10を実現するハードウェアのメモリ量に制限がある場合には、当該制限を超えないようにチャンネル数が設定されればよい。
【0027】
また、各チャンネルで用いるカーネルの重み係数およびバイアス値は、チャンネル間で異なる。つまり、カーネルの位置が同じ、つまり複数のチャンネルの中間部分画像703において画素位置が同じでも画素値が異なる。
【0028】
次に、画像を例とした、図2に示す第1の実施形態に係る推論装置10の動作例について図9の概念図を参照して説明する。
図9は、切出部101における入力画像に対する部分画像の切り出し処理、畳み込み処理部102における畳み込み処理、算出部103における算出処理および出力部104による推論結果の出力処理の一連の流れを示す図である。
【0029】
切出部101は、識別対象である入力画像900から部分画像601および部分画像602を切り出す。
畳み込み処理部102は、部分画像601および部分画像602に対してそれぞれ畳み込みニューラルネットワークを用いた畳み込み処理を実行する。ここで、畳み込みニューラルネットワークの最終層、つまり畳み込み処理部102からの出力を生成する最後の畳み込み層では、出力が1チャンネルとなるように設計される。図9に示すように、最後の畳み込み層の直前の畳み込み層が複数のチャンネルを有する中間部分画像703である場合は、複数のチャンネルに対して1つのチャンネルのカーネルを適用して加算することで、1チャンネルの中間部分画像706を生成する。または、最後の畳み込み層において複数のチャンネルの和または重み付け和を計算し、1チャンネルの中間部分画像706を生成してもよい。
【0030】
算出部103は、畳み込み処理部102で得られた中間部分画像706の画素の平均値901を算出する。つまり、1つの中間部分画像706から1つの平均値901が算出される。算出部103は、算出された平均値901のうちの最大値902を算出する。なお、算出部103は、平均値を算出することに限らず、中間部分画像706全体の画素のうちの最大の画素値を最大値902としてもよい。
【0031】
出力部104は、最大値902に対して関数を適用する。ここでは最大値902に対してシグモイド関数を適用して推論結果903を出力する。推論結果903は、例えば入力画像900に欠陥がある確率である。シグモイド関数を適用することで、出力値は0から1の間の値をとるため、そのまま出力すれば、欠陥がある確率を示すことができる。また、例えば0.5を閾値として設定し、シグモイド関数からの出力値が閾値以上であれば「欠陥あり」、出力値が閾値未満であれば「欠陥なし」といった2値判定の結果を、推論結果903として出力することも可能である。
【0032】
次に、出力部104の第1の変形例について図10に示す。
図10に示すように、各中間部分画像706の平均値901の最大値902に対してシグモイド関数を適用する代わりに、算出部103により算出された、各中間部分画像706の平均値901に対して重み係数をそれぞれ乗算して加算する、すなわち全結合した値1001に対してシグモイド関数を適用してもよい。第1の変形例に係る出力部104からの出力が、欠陥がある確率を示す推論結果903として生成される。
【0033】
次に、出力部104の第2の変形例について図11に示す。
図11は、図10のように平均値901を全結合した出力を複数に設定して、当該出力に対してソフトマックス関数を適用してもよい。例えば、第1の入力1101および第2の入力1102とをソフトマックス関数に入力し、「欠陥あり」の確率を推論結果903として出力してもよい。
【0034】
また、出力部104の第3の変形例について図12に示す。
図11に示す第2の変形例とソフトマックス関数への入力は同様であるが、第3の変形例では、ソフトマックス関数からの出力を複数にしてもよい。具体的に、図12に示すように「欠陥あり」の確率に関する推論結果903に加え、「欠陥あり」の確率を1から減じた「欠陥なし」の確率に関する推論結果1201を同時に出力するようにしてもよい。
【0035】
次に、推論装置10による推論結果の根拠となる注目マップの表示例について図13から図16を参照して説明する。
推論装置10の推論処理の過程で得られた、最大値として選択された平均値の元となる中間部分画像を、そのまま欠陥に関する注目マップとして用いることができる。
【0036】
例えば、図13は、図3と同様に製造品301を撮影した識別対象の入力画像1301である。製造品301の部分画像602に異物402が存在し、推論装置10において、当該異物402により、製造品301に「欠陥あり」との推論結果が得られた場合を想定する。
【0037】
「欠陥あり」と推論された部分画像602に対応する中間部分画像1401の模式図を図14に示す。図14では、白の領域は画素値が大きく、黒に近い色の領域は画素値が小さいことを表す。
図14に示すように、部分画像602に対応する中間部分画像1401は、異物402の領域で画素値が大きくなり、異物402以外の領域では小さい画素値となることが多いと考えられる。これは、異物などの欠陥により中間部分画像1401内に画素値が大きい領域があれば、当該中間部分画像の輝度値の平均値も大きくなるため、最大値も大きくなり、結果として「欠陥あり」と推論される可能性も高くなるからである。
【0038】
一方、部分画像604に対応する中間部分画像1402には異物が無いため、中間部分画像1402の領域内では一様に画素値が小さくなる。中間部分画像1402の内部に欠陥がないため、中間部分画像の輝度値の平均値も小さくなり、最大値も小さくなり、結果として「欠陥あり」と判定される可能性が低くなる。
よって、推論装置10で生成される中間部分画像を注目マップとして入力画像と対応付けて表示することで、欠陥ありと推論された部分画像をユーザが確認できる。
【0039】
入力画像に対する部分画像の位置情報(座標情報)は、部分画像に例えばラベルとして付与され、畳み込み処理部102により処理される場合もそのまま中間部分画像に付帯されてもよい。また、算出部103が部分画像の位置情報を受け取り、畳み込み処理部102からの出力となる中間部分画像に対して位置情報を紐付けるようにしてもよい。
【0040】
注目マップの前処理の一例を図15に示す。領域全体に小さい画素値を設定したベース画像1501を用意し、入力画像から切り出した位置情報に基づいて中間部分画像1401および中間部分画像1402を、ベース画像1501に重畳する。
続いて、入力画像と注目マップとの重畳表示の一例を図16に示す。
図16では、画素ごとに、入力画像の画素値と注目マップの画素値との平均を取った画像を表示する。これにより、ユーザが欠陥を確認するための確認用画像を生成できる。確認用画像において異物402の部分だけ画素値が大きいので、他の領域の画素値と比較して画素値が大きく、図16の例では白く表示される。これにより、ユーザが推論結果の根拠となる箇所を容易に把握できる。
【0041】
上述した確認用画像は、表示制御部105が、ユーザから注目マップまたは確認用画像の表示指示を取得した場合、外部の表示装置に表示してもよい。または、「欠陥あり」と判定された推論結果が得られた場合に、確認用画像が外部の表示装置に表示されるようにしてもよい。なお、表示制御部105が推論装置10とは別体であれば、推論装置10から表示制御部105に注目マップが送信され、注目マップおよび確認用画像の表示処理が実行されてもよい。
【0042】
また、表示制御部105が、注目マップの画素値によって入力画像には無い色で異物402の着色処理することで、異物402を画像上でより目立たせることもできる。また、表示制御部105が、異物402の領域を示す矢印などのマークを表示させる、または異物の領域を点滅させるなどすることで、ユーザが欠陥であると認識しやすくなる。さらには表示制御部105が、「欠陥あり」とのメッセージなどを表示するように制御してもよい。また、図16に示す画像において、ユーザが欠陥周辺の領域をクリックまたはタッチすることで、表示制御部105が、異物部分を含む領域が拡大表示されるように制御してもよい。
【0043】
すなわち、表示制御部105によって、中間部分画像を注目マップとして強調表示できる表示態様であれば、どのような手法を用いてもよい。
【0044】
以上に示した第1の実施形態によれば、部分画像を切り出し、各部分画像に対して畳み込み演算を行うことで、画像サイズが急に小さくなることがなく、画像の分解能を保ったまま畳み込み演算でき、高い識別精度を得ることができる。また、元の画像が大きなサイズの画像であっても、一部分を切り出した部分画像単位で処理するため、解像度を落とすことなく、解像度を保ったままでも処理量や必要となるメモリ量が大きくならないメリットがある。
【0045】
さらに、中間部分画像は、画像の一部を切り出して画像サイズを変更することなく畳み込み演算されているため、中間部分画像をそのまま注目マップとして利用できる。よって、従前のように、別途注目マップを生成する処理が必要がない。さらに、注目マップである中間部分画像の画素値の大きさで欠陥の有無を直接識別可能なため、ニューラルネットワークを用いた場合でも、識別の根拠が明確となる。結果として、第1の実施形態に係る推論装置によれば、高精度の分類処理を実現できる。
【0046】
(第1の実施形態の変形例)
第1の実施形態では、欠陥の有無といった1つのクラス分類について説明したが、第1の実施形態に係る変形例では、推論装置10が推論対象として複数のクラスに分類する、多クラス分類を行う。本変形例で想定する多クラス分類は、例えば欠陥検査であれば、異物の付着、部品の変形、傷などの欠陥の種類まで識別することを想定する。
【0047】
第1の実施形態の変形例に係る推論装置10の動作例について図17の概念図を参照して説明する。
図17では、畳み込み処理部102からの出力を生成する畳み込み層の最終層以前の処理は図9と同様であるため、ここでの説明を省略する。
【0048】
図17に示す中間部分画像1701は、畳み込み処理部102の畳み込みニューラルネットワークの最終層から出力される中間部分画像である。ここでは、2つの中間部分画像を例とするが、第1の実施形態と同様、切り出された部分画像に対応する数の中間部分画像が生成される。
【0049】
畳み込みニューラルネットワークの最終層から出力される中間部分画像1701のチャンネル数は、1チャンネルではなく、推論処理により分類するクラス数と同数となるように設定される。ここでは、4つのクラス分類を想定するため、4チャンネル(第1チャンネルCh1,第2チャンネルCh2,第3チャンネルCh3,第4チャンネルCh4)の中間部分画像1701が生成される。
【0050】
算出部103は、チャンネルごとに中間部分画像1701の画素値の平均値901を算出し、チャンネルごとに複数の中間部分画像1701に基づく統計量を算出する。
図17の例では、算出部103は、中間部分画像1701の第1チャンネルCh1の画素値の平均値901を算出し、選択された平均値901の中で最大値902を出力とする。
【0051】
出力部104は、第1チャンネルCh1の最大値に対してシグモイド関数を適用することで第1クラスの推論結果を生成する。例えば、異物の有無に関する確率を第1クラスの推論結果として出力する。
【0052】
同様に、第2チャンネルから第4チャンネルまでの中間画像について、第1クラスから第4クラスまでのそれぞれの確率を推論結果として出力する。なお、出力部104は、多クラス分類の数に応じて、各クラス別に推論結果を出力するように複数の関数を用意してもよいし、1つの関数を複数回適用して、各クラスの推論結果を出力してもよい。
なお、算出部103および出力部104は、第1の実施形態で上述した各変形例を適用してもよい。
【0053】
以上に示した第1の実施形態の変形例によれば、畳み込み処理部における畳み込みニューラルネットワークの最終層の出力を、複数のチャンネルを有する中間部分画像となるように設定する。推論装置では、複数のチャンネルそれぞれについて、第1の実施形態と同様に統計量を算出し、統計量に応じたクラス分類の推論結果を出力することで、チャンネル数に応じた数のクラス分類、すなわち多クラス分類を実現できる。
【0054】
(第2の実施形態)
第2の実施形態では、切出部101による切り出し処理を畳み込みニューラルネットワークの最終層の出力に対して行う点が、第1の実施形態と異なる。
【0055】
第2の実施形態に係る推論装置の動作例について図18のフローチャートを参照して説明する。
ステップS1801では、畳み込み処理部102が、入力信号に対して畳み込みニューラルネットワークにより畳み込み処理し、中間信号を生成する。
ステップS1802では、切出部101が、中間信号から複数の中間部分信号を切り出す。なお、中間部分信号を切り出す位置は、畳み込みニューラルネットワークへの入力が入力信号であるので、第1の実施形態で上述した入力信号から部分信号の切り出し方法を適用でき、中間信号から中間部分信号を同様に切り出せばよい。
ステップS203からステップS205までの処理は、図2と同様であるので説明を省略する。また、第1の実施形態と同様に、推論装置10は部分信号を1つずつ処理してもよい。
【0056】
次に、画像を例とした、図18に示す第2の実施形態に係る推論装置の動作例について図19を参照して説明する。
図19は、図9と同様に、入力画像1901に対する推論処理の一連の流れを示す。
【0057】
畳み込み処理部102は、入力画像1901に対して畳み込みニューラルネットワークを用いた畳み込み処理を行い、中間画像1902を生成する。なお、図19では複数のチャンネルを有する中間画像1902の例を示すが、1チャンネルの中間画像であってもよい。第1の実施形態と同様に、チャンネルごとに畳み込み処理を行い、畳み込みニューラルネットワークの最終層では、1チャンネルの中間画像1903となるように処理すればよい。
【0058】
切出部101は、畳み込み処理部102から中間画像1903を受け取り、中間画像1903から複数の中間部分画像1904を切り出す。
算出部103は、複数の中間部分画像1904のそれぞれの平均値1905を算出し、複数の平均値1905の中で最大値902を算出する。
出力部104は、第1の実施形態と同様に、最大値902にシグモイド関数を適用し、例えば「欠陥あり」の確率を推論結果903として出力する。
【0059】
以上に示した第2の実施形態によれば、入力信号に対して畳み込みニューラルネットワークにより畳み込み処理し、畳み込みニューラルネットワークの最終層からの中間信号に対して、切り出し処理を行い、中間部分信号を生成する。切り出し処理のタイミングが異なる場合でも、第1の実施形態と同様に、高精度の分類処理を実現できる。
【0060】
なお、第1の実施形態、および第2の実施形態において、切り出す画像は、欠陥の全体を含んだ方がその検出が容易になる。一方で、切り出す画像が大きすぎると、欠陥以外の情報が相対的に多くなり、欠陥の検出が困難になる。従って、予め欠陥の大きさが予想できる場合には、その大きさに応じて、切り出す画像の大きさを設定してもよい。例えば、欠陥の大きさの縦横2倍または4倍といったように切り出しサイズの倍率を設定してもよい。具体的に、切出部101は、例えば外部から欠陥の大きさに関する情報を受け取り、欠陥の大きさに対し、設定された切り出しサイズの倍率を乗算した大きさで、第1の実施形態であれば部分画像、第2の実施形態であれば中間部分画像をそれぞれ切り出せばよい。これにより検出精度の向上が期待できる。
【0061】
(第3の実施形態)
第3の実施形態では、入力信号として1次元信号を用いる場合について図20を参照して説明する。
図20は、物体にレーザパルスを照射してから、物体から反射した光を受信するまでの時間から、物体までの距離を計測する距離計測装置における受信光の時間変化を示す。図20のグラフは、縦軸が受信光の強度を示し、横軸が時間を示す。
【0062】
計測したいパルス2001を特定する際に、パルス2001以外にも太陽光などの環境光2002がノイズとして混入し、計測精度が劣化する可能性がある。
【0063】
このような距離計測装置における距離計測においても、推論装置10による推論処理を適用できる。1次元信号に対する畳み込み処理部における畳み込み処理について図21の概念図を参照して説明する。
【0064】
切出部101は、受信光をサンプリングした入力信号から複数の部分信号を切り出す。例えば、切出部101は、所定の時間間隔で部分信号2101を切り出せばよい。なお、図21の例では、受信光のサンプリング点を球で表現する。
【0065】
畳み込み処理部102は、部分信号2101に対して1次元の畳み込みを行う。すなわち1次元のカーネルを部分信号2101に適用して、部分信号2101のサンプリング値と重み係数との積和演算を行い、中間部分信号2102が生成される。図21の例では、3つの信号値に1×3サイズのカーネルを適用し、次層の1つのサンプリング値を生成し、例えばストライド1で、カーネルを次の3つのサンプリング値に対して順次適用していくことで、中間部分信号2102を生成すればよい。なお、畳み込み処理部102は、中間部分信号2102に対して同様に畳み込み処理を行い、中間部分信号2103を生成し、といったように順次畳み込み処理を実行すればよい。
【0066】
なお、図示しないが、算出部103は、畳み込み処理部102からの出力に対し、画像の場合と同様に中間部分信号の平均値を算出し、複数の平均値のうちの最大値を算出する。出力部104は、最大値が算出された元となる中間部分信号を切り出した部分信号の位置(時間)について、パルスの位置である確率を推論結果として検出できる。
【0067】
入力信号が複数のチャンネルの信号の場合は、第1の実施形態に係る画像の場合と同様に、畳み込み処理部102が、複数チャンネルの1次元信号についてチャンネルごとに畳み込み処理し、畳み込みニューラルネットワークの最終層において1チャンネルのデータとなるように処理すればよい。
【0068】
以上に示した第3の実施形態によれば、入力信号が1次元信号の場合でも、画像の場合と同様に高精度の分類処理を実現できる。
【0069】
(第4の実施形態)
第4の実施形態では、第1の実施形態から第3の実施形態までに説明した推論装置10に含まれる畳み込みニューラルネットワークを学習させる学習装置について説明する。
【0070】
第4の実施形態に係る学習装置を含む学習システムについて図22のブロック図に示す。学習システムは、学習装置21と学習データ格納部22とを含む。学習装置21は、切出部101と、畳み込み処理部102と、算出部103と、出力部104と、学習制御部211とを含む。なお、学習が完了した場合は、第1の実施形態から第3の実施形態までに上述した、切出部101と、畳み込み処理部102と、算出部103と、出力部104とを含む推論装置10が実現できる。なお、説明の便宜上、学習装置21内に推論装置10の構成を含むように図示したが、これに限らず、学習装置21とは別体の推論装置10が、学習装置21と接続されることで学習されてもよい。
【0071】
学習データ格納部22は、推論装置10を学習させる、具体的には推論装置10に含まれる畳み込みニューラルネットワークを学習するための学習データを格納する。学習データは、正解ラベル付きのサンプルデータであり、例えば欠陥検査のための学習データであれば、正常な製造品画像と正常であることを示す分類結果の正解ラベル(例えば0(ゼロ))との組、または、異常がある製造品画像と異常があることを示す分類結果の正解ラベル(例えば1)との組を学習データとすればよい。
【0072】
学習制御部211は、学習データを推論装置10に入力した場合の出力部104からの推論結果と、当該学習データの正解ラベルとの誤差を算出する。具体的には、例えば、出力部104からの推論結果として「欠陥あり」の確率を出力する場合を想定する。「欠陥あり」の確率と、「欠陥あり」の確率を1から減じた「欠陥なし」の確率をベクトルで表現する。例えば、出力部104は、入力された学習データの画像に対する推論結果として、(「欠陥あり」の確率,「欠陥なし」の確率)のベクトルを出力する。
【0073】
一方、学習データの正解ラベルのベクトルとして、「欠陥あり」の場合は(1,0)、「欠陥なし」の場合は(0,1)と表現する。学習制御部211は、出力部104から出力されるベクトルと正解ラベルのベクトルとの誤差を、例えば交差エントロピーにより算出する。
【0074】
学習制御部211は、誤差逆伝播法により、畳み込み処理に用いた画素の位置、最大値として得られたデータの位置を、ネットワークを逆方向に辿りながら、例えば確率的勾配降下法により各重み係数およびバイアス値を更新して最適化し、学習が完了するまで畳み込みニューラルネットワークにおけるパラメータを更新する。なお、誤差逆伝播法などニューラルネットワークにおける学習方法については、一般的な学習処理と同様の手法を用いればよいため、具体的な説明は省略する。
【0075】
また、多クラス分類の場合は、正解ラベルのベクトルを、クラス数に対応するベクトル要素を含むワンホットベクトルとして表現すればよい。例えば、異常がある製造品画像と、異常の種別を分類したクラスの要素を1、他のクラスの要素をゼロとしたワンホットベクトルである正解ラベルとの組を学習データとする。具体的に、異常の種別を3種類に分類したベクトル(傷、異物の付着、部品の変形)を正解ラベルとし、目視により製造品画像に傷があれば、製造品画像と、傷を表す要素を1とし他の要素をゼロとしたベクトル(1,0,0)の正解ラベルとの組を学習データとすればよい。なお、製造品画像に複数種別の異常が存在する場合は、該当する種別の要素を全て1としたベクトルとしてもよい。
【0076】
学習制御部211は、学習データの製造品画像を推論装置10に入力した場合の出力部104からの異常の種別の数に対応した次元のベクトルと、当該学習データの正解ラベルとの誤差を異常の種別の要素ごとに算出する。
【0077】
以上に示した第4の実施形態によれば、1つの入力信号に対する1つの正解ラベルが付与された学習データにより畳み込みニューラルネットワークを学習することで、部分画像ごとに第1の実施形態から第3の実施形態に係る推論装置を実現できる。
【0078】
例えば、単に画像の部分ごとに切り出して、異常の有無も部分ごとに独立に調べるニューラルネットワークでは、その部分ごとに異常の有無を正解データとして、部分の数だけ用意しなければならない。一方、第4の実施形態における学習データでは、例えば、入力画像に対する部分画像の畳み込み処理後の中間部分画像を統合して、元の入力画像のどこかに異常が有るか無いかという、入力画像単位での分類を行うので正解ラベルも画像に1つ付与されるだけでよい。よって、目視による正解データの作成が容易である。
【0079】
次に、上述の実施形態に係る推論装置10および学習装置21のハードウェア構成の一例を図23に示す。
推論装置10及び学習装置21は、CPU(Central Processing Unit)31と、RAM(Random Access Memory)32と、ROM(Read Only Memory)33と、ストレージ34と、表示装置35と、入力装置36と、通信装置37とを含み、それぞれバスにより接続される。
【0080】
CPU31は、プログラムに従って演算処理および制御処理などを実行するプロセッサである。CPU31は、RAM32の所定領域を作業領域として、ROM33およびストレージ34などに記憶されたプログラムとの協働により各種処理を実行する。
【0081】
RAM32は、SDRAM(Synchronous Dynamic Random Access Memory)などのメモリである。RAM32は、CPU31の作業領域として機能する。ROM33は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
【0082】
ストレージ34は、HDD等の磁気記録媒体、フラッシュメモリなどの半導体による記憶媒体、または、HDD(Hard Disc Drive)などの磁気的に記録可能な記憶媒体、または光学的に記録可能な記憶媒体などにデータを書き込みおよび読み出しをする装置である。ストレージ34は、CPU31からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。
【0083】
表示装置35は、LCD(Liquid Crystal Display)などの表示デバイスである。表示装置35は、CPU31からの表示信号に基づいて、各種情報を表示する。
入力装置36は、マウスおよびキーボード等の入力デバイスである。入力装置36は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をCPU31に出力する。
通信装置37は、CPU31からの制御に応じて外部機器とネットワークを介して通信する。
【0084】
上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した推論装置および学習装置の制御動作による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD-ROM、CD-R、CD-RW、DVD-ROM、DVD±R、DVD±RW、Blu-ray(登録商標)Discなど)、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をCPUで実行させれば、上述した実施形態の推論装置および学習装置の制御と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。
【0085】
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワーク等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。
さらに、本実施形態における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、LANやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。
また、記録媒体は1つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本実施形態における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【0086】
なお、本実施形態におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
また、本実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本実施形態における機能を実現することが可能な機器、装置を総称している。
【0087】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0088】
10…推論装置,21…学習装置,22…学習データ格納部,31…CPU,32…RAM,33…ROM,34…ストレージ,35…表示装置,36…入力装置,37…通信装置,101…切出部,102…畳み込み処理部,103…算出部,104…出力部,105…表示制御部,211…学習制御部,301,501…製造品,900,1301,1901…入力画像,401…円形部品,402…異物,601~604,701…部分画像,702,704…画素,703,1401,1402,1701,1904…中間部分画像,705…チャンネル,901…平均値,902…最大値,903…推論結果,1001…値,1101…第1の入力,1102…第2の入力,1201…推論結果,1301…入力画像,1501…ベース画像,1902,1903…中間画像,1904…中間部分画像,1906…平均値,2001…パルス,2002…環境光,2101…部分信号,2102,2103…中間部分信号。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23