(57)【要約】【課題】対象物の像の尤度を適切に算出して対象物を正しく検出することができる画像処理装置および画像処理方法の提供を図る。【解決手段】入力画像を受け取り、検出アルゴリズムに基づいて対象物１０１の像を検出する画像処理装置１２１であって、少なくとも１つの前記対象物の像の検出結果に基づいて、前記入力画像から切り出した複数の部分画像を用いて機械学習を行い、前記対象物の像の尤度を算出する機械学習器２を備える。【選択図】図３
2018151843.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を受け取り、検出アルゴリズムに基づいて対象物の像を検出する画像処理装置であって、
前記対象物の像の検出結果に基づいて、少なくとも１つの前記入力画像から切り出した複数の部分画像を用いて機械学習を行い、前記対象物の像の尤度を算出する機械学習器を備える、
ことを特徴とする画像処理装置。
【請求項２】
前記機械学習器は、
前記対象物に関連する、検出位置、姿勢、サイズおよび検出した個所の画像の少なくとも１つを状態変数として観測する状態観測部と、
前記状態観測部により観測された前記状態変数に基づいて、前記対象物の像の尤度を算出するための学習モデルを作成する学習部と、を備え、教師なし学習を行う、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記機械学習器は、
前記対象物に関連する、検出位置、姿勢、サイズおよび検出した個所の画像の少なくとも１つを状態変数として観測する状態観測部と、
複数の前記部分画像のそれぞれに付加する正解または不正解のラベルを取得するラベル取得部と、
前記状態観測部により観測された前記状態変数および前記ラベル取得部により取得された前記ラベルに基づいて、前記対象物の像の尤度を算出するための学習モデルを作成する学習部と、を備え、教師あり学習を行う、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記学習部は、
前記状態観測部により観測された前記状態変数および前記ラベル取得部により取得された前記ラベルに基づいて、誤差を計算する誤差計算部と、
前記状態観測部および前記誤差計算部の出力に基づいて、前記学習モデルを更新する学習モデル更新部と、を備える、
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記学習部は、
前記入力画像における前記対象物が映っていな領域から切り出した部分画像に対して、前記不正解のラベルを付加する、
ことを特徴とする請求項３または請求項４に記載の画像処理装置。
【請求項６】
前記機械学習器は、
前記機械学習を行う前後における前記対象物の像の尤度の算出に、検出された前記対象物の位置および姿勢に対して予め定められた領域の画像を処理して変換した画像を使用する、
ことを特徴とする請求項１乃至請求項５のいずれか１項に記載の画像処理装置。
【請求項７】
前記機械学習器は、
前記機械学習を行う前後における前記対象物の像の尤度の算出に、検出された前記対象物の位置および姿勢に対して予め定められた領域の画像内から、前記検出アルゴリズムで使用した特徴の抽出方法と同じ方法で抽出された特徴を受け取って、前記対象物の像の尤度を算出する、
ことを特徴とする請求項１乃至請求項６のいずれか１項に記載の画像処理装置。
【請求項８】
前記機械学習器は、
前記機械学習を行う前後における前記対象物の像の尤度の算出に、検出された前記対象物の位置および姿勢に対して予め定められた領域の画像内から、前記検出アルゴリズムで使用した特徴の抽出方法とは異なる方法で抽出された特徴を受け取って、前記対象物の像の尤度を算出する、
ことを特徴とする請求項１乃至請求項６のいずれか１項に記載の画像処理装置。
【請求項９】
前記機械学習器は、
前記機械学習を段階的に行い、最初の段階では検出パラメータを広めにとり、後の段階に進むにしたがって徐々に前記検出パラメータを狭くする、
ことを特徴とする請求項１乃至請求項８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記機械学習器が出力する尤度に基づいて、検出または未検出を判定するための閾値を自動的に設定する、
ことを特徴とする請求項１乃至請求項９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記機械学習器は、少なくとも１つの他の機械学習器と接続可能であり、少なくとも１つの前記他の機械学習器との間で、前記機械学習器で作成された学習モデルを相互に交換または共有する、
ことを特徴とする請求項１乃至請求項１０のいずれか１項に記載の画像処理装置。
【請求項１２】
入力画像を受け取り、検出アルゴリズムに基づいて対象物の像を検出する画像処理方法であって、
前記対象物の像の検出結果に基づいて、少なくとも１つの前記入力画像から切り出した複数の部分画像を用いて機械学習を行い、前記対象物の像の尤度を算出する、
ことを特徴とする画像処理方法。
【請求項１３】
前記機械学習を行って前記対象物の像の尤度を算出するのは、
前記対象物に関連する、検出位置、姿勢、サイズおよび検出した個所の画像の少なくとも１つを状態変数として観測し、
前記状態変数に基づいて、前記対象物の像の尤度を算出するための学習モデルを作成し、教師なし学習を行う、
ことを特徴とする請求項１２に記載の画像処理方法。
【請求項１４】
前記機械学習を行って前記対象物の像の尤度を算出するのは、
前記対象物に関連する、検出位置、姿勢、サイズおよび検出した個所の画像の少なくとも１つを状態変数として観測し、
複数の前記部分画像のそれぞれに付加する正解または不正解のラベルを取得し、
前記状態変数および前記ラベルに基づいて、前記対象物の像の尤度を算出するための学習モデルを作成し、教師あり学習を行う、
ことを特徴とする請求項１２に記載の画像処理方法。
【請求項１５】
前記学習モデルを作成するのは、
前記状態変数および前記ラベルに基づいて誤差を計算し、
前記状態変数および計算された前記誤差に基づいて前記学習モデルを更新する、
ことを特徴とする請求項１４に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像から検出した対象物の像の尤度を計算する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
従来、例えば、画像処理装置を用いて撮像装置の視野内の画像の中から特定の対象物の像を検出する場合、対象物を表す基準情報(一般に、モデルパターンとかテンプレートなどと呼称される)と撮像装置によって取得した入力画像の間で特徴量のマッチングを行う。そして、例えば、モデルパターンと対象物の像の一致度が指定したレベル(閾値)を越えたときに対象物の検出に成功したと判断することが一般的である。
【０００３】
ここで、使用される一致度の閾値が低すぎると、対象物としてふさわしくないものが検出され(誤検出)、逆に、一致度の閾値が高すぎると対象物として検出されてほしいものが検出されなくなる(未検出)。そのため、一致度の閾値を含めた検出パラメータの調整は、例えば、操作者が何度も検出を繰り返しながら試行錯誤により行われることになる。
【０００４】
ところで、従来、複数の学習用画像と領域教師データを使って領域分割を学習し、その学習した結果をもとに領域分割を行う。この領域分割した結果、正しく分割できた領域と正しく分割できなかった領域を組み合わせて、新たな学習用画像を生成し、それを使って、新たに領域分割を学習する画像処理装置が提案されている(例えば、特許文献１参照)。
【０００５】
また、従来、識別対象が映っているポジティブ画像と映っていないネガティブ画像を生成用画像とし、生成用画像から特徴点を抽出する。さらに、生成用画像を複数のフィルタでフィルタリング処理を行い、複数のフィルタ済み画像を取得し、フィルタ済み画像から特徴点周辺の小領域のそれぞれについて画素値の統計量を求める。そして、求めた統計量を特徴点の特徴量とし、識別対象を正しく識別できるように学習する学習装置も提案されている(例えば、特許文献２参照)。
【０００６】
さらに、従来、入力画像を複数の領域に分割し、分割した領域のそれぞれに教師ラベルを付け、領域内の画像を切り出した画像と教師ラベルを元に学習を行い、学習したモデルを元に画像から対象物を含む領域を検出するデータ処理システムも提案されている(例えば、特許文献３参照)。
【０００７】
また、従来、画像データから指定したキーワードに合致する表情の人の顔が映った領域を抽出し、その領域から取得した特徴量を学習器に入力することで学習を行い、それにより、人の顔の表情を識別する識別器を生成する表情認識装置も提案されている(例えば、特許文献４参照)。
【０００８】
そして、従来、入力画像を複数の領域に分割し、分割したサブ領域に対象物の一部が映っていなければ、マスクをかけ、マスクをかけた部分以外から特徴を抽出し、学習器に入力することで学習を行い、そして、学習してできた識別器で画像内の特定の領域に対象物が映っているか識別する対象物検知装置も提案されている(例えば、特許文献５参照)。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１６−０５７９１８号公報
【特許文献２】特開２０１０−１９１７７２号公報
【特許文献３】特開２０１６−０６２５２４号公報
【特許文献４】特許第５２３４８３３号公報
【特許文献５】国際公開第２０１４／０８４２１８号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述したように、例えば、モデルパターンと対象物の像の一致度の閾値を含めた検出パラメータの調整は、例えば、操作者が何度も検出を繰り返しながら試行錯誤により行われている。ここで、一致度の定義は、例えば、検出アルゴリズムに依存する、換言すると、ある検出アルゴリズムで使用する画像の特徴のみが一致度に使用されている。例えば、一般化ハフ変換のように、画像中のエッジ点の特徴として対象物を検出するアルゴリズムを適用する場合、エッジ点の一致具合に基づいて一致度を計算することになるが、エッジ点は一致していても人が見ると明らかに間違っているところを検出してしまうことがある。
【００１１】
すなわち、例えば、操作者が意図したものだけが検出されるように検出パラメータを調整するのには手間がかかることになる。また、検出アルゴリズム内で計算された一致度では、操作者が意図したものだけが検出されるようにできないことがある。その場合には、検出アルゴリズムの検出結果に基づいて、新たに尤度(対象物の像が正解である確率や対象物の像の確からしさを示す度合、検出に成功する尤もらしさ)を計算し、その尤度を使って検出されたかどうかを判断することが考えられる。例えば、ある個所の特徴は重みを大きくし、別の個所は重みを小さくして尤度を計算した方が好ましい場合もある。さらに、検出アルゴリズムに使用している特徴以外の特徴を使って、尤度を計算(算出)した方が好ましいといった場合もあり得る。
【課題を解決するための手段】
【００１２】
本発明に係る第１実施形態によれば、入力画像を受け取り、検出アルゴリズムに基づいて対象物の像を検出する画像処理装置であって、少なくとも１つの前記対象物の像の検出結果に基づいて、前記入力画像から切り出した複数の部分画像を用いて機械学習を行い、前記対象物の像の尤度を算出する機械学習器を備える画像処理装置が提供される。
【００１３】
本発明に係る第２実施形態によれば、入力画像を受け取り、検出アルゴリズムに基づいて対象物の像を検出する画像処理方法であって、少なくとも１つの前記対象物の像の検出結果に基づいて、前記入力画像から切り出した複数の部分画像を用いて機械学習を行い、前記対象物の像の尤度を算出する画像処理方法が提供される。
【発明の効果】
【００１４】
本発明に係る画像処理装置および画像処理方法によれば、対象物の像の尤度を適切に算出して対象物を正しく検出することができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の画像処理装置が適用される視覚センサ制御装置を含む工作機械システムの一例を模式的に示す図である。
【図２】図２は、本発明の画像処理装置が適用される視覚センサ制御装置を含むロボットシステムの一例を模式的に示す図である。
【図３】図３は、画像処理装置の本実施形態を示すブロック図である。
【図４】図４は、本実施形態の画像処理装置に設けられる機械学習器の一例を模式的に示す図である。
【図５】図５は、図４に示す機械学習器の一例を示すブロック図である。
【図６】図６は、本実施形態に係る画像処理装置によるモデルパターンの作成処理の一例を示すフローチャートである。
【図７】図７は、撮像した画像におけるモデルパターン指定領域の例を示す図である。
【図８】図８は、本実施形態に係る画像処理装置による学習処理の一例を示すフローチャートである。
【図９】図９は、図８に示すフローチャートにおけるラベルの指定処理を説明するための図である。
【図１０】図１０は、図８に示すフローチャートにおける学習処理の一例を説明するためのフローチャートである。
【図１１】図１１は、図１０に示すフローチャートにおける部分画像切抜き処理の一例を説明するための図である。
【図１２】図１２は、本実施形態の画像処理装置における処理の変形例を説明するための図である。
【図１３】図１３は、本実施形態の画像処理装置における処理のさらなる変形例を説明するための図である。
【発明を実施するための形態】
【００１６】
以下、本発明に係る画像処理装置および画像処理方法の実施形態を、添付図面を参照して詳述する。図１は、本発明の画像処理装置が適用される視覚センサ制御装置を含む工作機械システム１００Ａの一例を模式的に示す図であり、図２は、本発明の画像処理装置が適用される視覚センサ制御装置を含むロボットシステム１００Ｂの一例を模式的に示す図である。
【００１７】
図１において、参照符号１０１は対象物、１０２は作業台、１１０は視覚センサ、１２０は視覚センサ制御装置、そして、１２１は画像処理装置を示す。ここで、対象物(ワーク)１０１としては、金属、木材、石材、樹脂等の様々な材質による様々な形状のものがあり得る。また、工作機械(工作機械自体は図示しない)としては、これらの対象物１０１に対して切断、穿孔、研削、研磨、圧延、鍛造、折り曲げ等の加工を施すための機械であり、例えば、旋盤、ボール盤、中ぐり盤、フライス盤、歯切り盤、研削盤等であり、ＣＮＣ(Computer Numerical Control)工作機械も含まれるのはいうまでもない。
【００１８】
図１に示されるように、視覚センサ制御装置１２０は、画像処理装置１２１を含み、例えば、作業台１０２に載置された対象物１０１が撮像できる位置に固定して設置された視覚センサ１１０からの画像データ(入力画像)を受け取るようになっている。そして、工作機械は、視覚センサ制御装置１２０の出力、並びに、入力された所定のプログラムに基づいて、対象物１０１に対する所定の加工を行う。
【００１９】
ここで、視覚センサ１１０は、濃淡画像やカラー画像を撮像するＣＣＤ(Charge Coupled Device)等の撮像素子を有する電子カメラでもよいが、例えば、距離画像や三次元点群を取得できるステレオカメラや３次元センサ等であってもよい。なお、三次元点群は、対象物１０１の輪郭線上のものでも、対象物１０１の面上のものであってもよい。
【００２０】
図２において、参照符号１１１はロボット、１１２はハンド、そして、１１３はロボット制御装置を示す。図２に示されるように、視覚センサ制御装置１２０は、画像処理装置１２１を含み、例えば、ロボット１１１の手先等の所定位置に取り付けられた視覚センサ１１０により、作業台１０２上に載置された対象物１０１を撮像してその画像データ(入力画像)を受け取るようになっている。ロボット制御装置１１３は、視覚センサ制御装置１２０の出力、並びに、入力された所定のプログラムに基づいて、ロボット１１１およびハンド１１２等を制御して、対象物１０１に対する所定の動作を行う。
【００２１】
図３は、画像処理装置の本実施形態を示すブロック図である。図３に示されるように、画像処理装置１２１は、機械学習器２を含む画像処理部１２２、モデルパターン記憶部１２６および検出結果記憶部１２７を有する。画像処理装置１２１には、視覚センサ１１０、操作盤１３１および表示装置１３２等が接続されている。画像処理部１２２は、機械学習器２と共に、対象物検出部１２３、対応点選択部１２４およびモデルパターン修正部１２５を含む。ここで、対象物検出部１２３は、教示されたモデルパターンを使用して入力データ(入力画像)から対象物を検出し、対応点選択部１２４は、例えば、抽出された特徴点がその特徴点に対応する対応点として妥当であるかどうかを評価して選択する。また、モデルパターン修正部１２５は、例えば、モデルパターンの修正処理を行う。
【００２２】
モデルパターン記憶部１２６は、例えば、教示されたモデルパターンを記憶する。検出結果記憶部１２７は、教示されたモデルパターンを使用して入力データ(入力画像)から対象物を検出した検出結果を記憶する。画像処理装置１２１に含まれる各部分は、ＭＰＵ(Micro-processing unit)、ＲＯＭ(Read Only Memory)およびＲＡＭ(Random access memory)等を含むコンピュータ上でソフトウェアにより実現される。なお、機械学習器２に関しては、後に、図面を参照して詳述する。
【００２３】
視覚センサ１１０は、画像処理装置１２１に対して通信ケーブルで接続され、例えば、撮像した画像データを画像処理装置１２１に出力する。操作盤１３１は、画像処理装置１２１に通信ケーブルで接続され、例えば、画像処理装置１２１で対象物１０１を検出するための設定等に使用される。表示装置１３２は、画像処理装置１２１に通信ケーブルで接続され、例えば、視覚センサ１１０で撮像した画像や操作盤１３１で設定する設定内容を表示するようになっている。
【００２４】
なお、視覚センサ１１０、操作盤１３１および表示装置１３２は画像処理装置１２１と一体になっていてもよく、様々な変形および変更が可能なのはいうまでもない。また、機械学習器２(画像処理装置１２１)は、例えば、図２のロボットシステム１００Ｂにおけるロボット制御装置１１３に内蔵してもよいが、視覚センサ制御装置１２０やロボット制御装置１１３とは別に、独立した装置として設けることもできる。
【００２５】
図４は、本実施形態の画像処理装置に設けられる機械学習器の一例を模式的に示す図である。図４に示されるように、機械学習器２は、状態観測部２１、学習部２２、出力利用部２３およびラベル取得部２４を含む。状態観測部２１は、環境１から与えられる入力データとして、例えば、検出位置、姿勢、サイズおよび検出した個所の画像を受け取り、ラベル取得部２４は、例えば、検出の成否を受け取る。出力利用部２３は、例えば、尤度(対象物の像が正解である確率や対象物の像の確からしさを示す度合、検出に成功する尤もらしさ)を計算(算出)する。なお、出力利用部２３は、尤度を計算する以外に、機械学習部２２の出力を利用した様々な機能を持たせることもできる。
【００２６】
すなわち、ラベル取得部２４は、ラベル(教師データ)を取得するもので、例えば、入力画像(画像データ)を使用し、その入力画像から切り抜いた少なくとも１つの部分画像のそれぞれに教師ラベル(ＯＫ／ＮＧ，正解／不正解，整数値，実数値)を付与したものを受け取る。なお、部分画像を切り抜く領域としては、例えば、モデルパターンを囲む領域でもよいが、予めモデルパターンに対して相対的に設定した領域を適用することもできる。学習部２２は、領域内の画像を切り出した部分画像と教師ラベルを受け取って学習(機械学習：教師あり学習)を行って、学習モデルを作成し、その学習モデルに基づいて、部分画像から対象物１０１の像の尤度を計算する。
【００２７】
ここで、学習部２２は、「教師あり学習」を行うもので、状態観測部２１により観測された状態変数(検出位置、姿勢、サイズおよび検出した個所の部分画像)、並びに、ラベル取得部２４により取得されたラベル(検出の成否：ＯＫ／ＮＧ)に基づいて、学習モデルを作成する。なお、図４では、環境１として、工作機械システム１００Ａに設けられた画像処理装置１２１(視覚センサ制御装置１２０)を例として説明したが、これに限定されないのはもちろんである。
【００２８】
図５は、図４に示す機械学習器の一例を示すブロック図であり、学習部２２を誤差計算部２２１および学習モデル更新部２２２により構成したものである。図５に示されるように、学習部２２は、状態観測部２１の出力(状態変数)およびラベル(教師データ)を受け取って誤差を計算する誤差計算部２２１と、状態観測部の出力および誤差計算部２２１の出力を受け取って、学習モデルを更新する学習モデル更新部２２２と、を含む。ここで、機械学習器２(学習部２２)は、教師あり学習を行うものに限定されず、例えば、正解(ＯＫ)を付けたものだけを使って学習を行い、その学習に使用した部分画像に対してどの程度違うかを尤度として出力する、若しくは、検出されたものはすべてＯＫだとしてしまい、それに基づいて学習(教師なし学習)を行うこともできる。すなわち、機械学習器２は、例えば、検出アリゴリズムで使用するパラメータを狭く(厳しく)することで、ほぼＯＫとなる画像データだけを使用して教師なし学習を行うことが可能になる。
【００２９】
なお、誤差計算部２２１に入力されるラベルは、図４のラベル取得部２４の出力に相当する。尤度計算部２５は、例えば、前述した図４における出力利用部２３に相当し、学習部２２(学習モデル更新部２２２)の出力に基づいて、尤度(対象物の像が正解である確率や対象物の像の確からしさを示す度合、検出に成功する尤もらしさ)を計算(算出)して出力する。このように、本実施形態の画像処理装置によれば、対象物の像の尤度を適切に算出して対象物を正しく検出することができる。
【００３０】
なお、機械学習器２は、汎用の計算機やプロセッサを適用することもできるが、例えば、ＧＰＧＰＵ(General-Purpose computing on Graphics Processing Units)や大規模ＰＣクラスター等を適用すると、より高速に処理することが可能になる。また、機械学習器２は、少なくとも１つの他の機械学習器と接続可能であり、少なくとも１つの他の機械学習器との間で、機械学習器２の学習部２２で作成された学習モデルを相互に交換または共有することができる。ここで、機械学習器２(学習部２２)は、例えば、上記ＧＰＧＰＵ等で構成したニューラルネットワークを含むのはいうまでもない。
【００３１】
ここで、例えば、背景画像を対象物１０１の画像(Ｉw)として誤検出することを防ぐために、未検出の教師データとして、背景画像からランダムに取得した部位を追加してもよい。また、学習計算と学習後の尤度の計算に、検出位置姿勢に対して、予め定められた領域の画像として、検出結果のサイズによるスケーリングやせん断変形などによって変換した画像を適用することができる。具体的に、例えば、対象物が教示したモデルパターンの２倍で検出された場合、特定の領域の画像を２倍に拡大して使うことで、学習を速く進めることが可能になる。
【００３２】
また、学習計算と学習後の尤度の計算に、検出位置姿勢に対してして予め定められた領域の画像内から、検出アルゴリズムで使用した特徴の抽出方法と同じ方法で抽出された特徴(例えば、エッジ)、または、検出アルゴリズムで使用した特徴の抽出方法とは異なる方法で抽出された特徴(例えば、明るさや輝度勾配)を使用することで、画像そのものを使うよりも学習を速く進めることができる。
【００３３】
さらに、学習を段階的に行い、最初の段階では検出パラメータを広めに(誤差範囲を大きく)とって教師データを作成し、学習が進むにしたがって、徐々に検出パラメータを狭く(誤差範囲を小さく)していく。そして、最初の学習以降は、新たに学習した計算方法により尤度を計算し、その結果を利用する。これにより、誤検出が多くなり過ぎることなく、学習を進めることができる。
【００３４】
そして、学習した計算方法で計算した尤度により、検出または未検出を判定するための閾値を自動的に設定することができる。なお、尤度は、スカラ量であってもよいが、ベクトル量であってもよい。或いは、機械学習器２が尤度を出力するのではなく、例えば、機械学習器２内で、検出の成否(ＯＫ／ＮＧ)を判定し、直接ラベルを出力することもできる。以下、本実施形態に係る画像処理装置による処理を詳述する。
【００３５】
図６は、本実施形態に係る画像処理装置によるモデルパターンの作成処理の一例を示すフローチャートであり、図７は、撮像した画像におけるモデルパターン指定領域の例を示す図である。図６に示されるように、モデルパターンの作成処理が開始すると、ステップＳＴ１１において、例えば、作業台１０２上のモデルパターンとして教示したい対象物１０１を視覚センサ(カメラ)１１０により撮像して、ステップＳＴ１２に進む。なお、視覚センサ１１０と対象物１０１の位置関係は、実際の作業等において対象物１０１を検出するときと同じになるようにして行うのが好ましい。
【００３６】
ステップＳＴ１２では、図７に示されるように、撮像した画像における対象物１０１の画像Ｉwが映った領域Ｉaを矩形でモデルパターン指定領域として指定する。なお、ステップＳＴ１２におけるモデルパターン領域Ｉaの指定処理は、図７に示すような矩形領域に限定されるものではなく、例えば、円形や楕円形等であってもよいのはいうまでもない。すなわち、図７では、撮像した画像において、画像座標系を定義し、その画像座標系の中で対象物１０１の画像Ｉwを含むように、矩形状のモデルパターン指定領域Ｉaを指定するようになっている。なお、モデルパターン指定領域Ｉaの指定処理は、例えば、操作者(使用者)が表示装置１３２で画像を見ながら操作盤１３１により入力して行うこともできるが、例えば、画像処理部１２２が画像における輝度勾配の大きい個所を対象物１０１の画像Ｉwの輪郭として求め、その画像Ｉwが内部に含まれるように、モデルパターン指定領域Ｉaを自動的に指定することもできる。
【００３７】
さらに、ステップＳＴ１３に進んで、例えば、モデルパターン指定領域Ｉaの範囲内におけるエッジ点を特徴点として抽出し、そのエッジ点の位置、姿勢(輝度勾配の方向)、および、輝度勾配の大きさ等の物理量を求める。また、例えば、指定された領域内にモデルパターン座標系を定義し、エッジ点の位置や姿勢を、画像座標系で表現された値から、モデルパターン座標系で表現された値に変換することも可能である。
【００３８】
そして、ステップＳＴ１４に進んで、抽出されたエッジ点の物理量を、モデルパターンを構成する特徴点としてモデルパターン記憶部１２６に記憶する。なお、以上の説明では、特徴点としてエッジ点を用いたが、特徴点は、エッジ点に限定されないのはいうまでもない。また、対象物１０１の画像Ｉwからエッジ点やＳＩＦＴ(Scale-Invariant Feature Transform)特徴点などを抽出して、モデルパターンを構成する特徴点とするのではなく、画像Ｉwに写った対象物１０１の輪郭線に合うように線分、矩形、円などの幾何図形を配置することでモデルパターンを作成することも可能である。その場合、例えば、輪郭線を構成する幾何図形上に適当な間隔で特徴点を設けることになる。
【００３９】
さらに、ＣＡＤデータなどに基づいてモデルパターンを作成することもでき、２次元ＣＡＤデータであれば、幾何図形を使った方法と同じ方法でモデルパターンを作成し、また、３次元ＣＡＤデータであれば、ＣＡＤデータで表現された対象物の形状を画像上に投影し、投影された像から特徴点を抽出して特徴点とすることもできる。
【００４０】
図８は、本実施形態に係る画像処理装置による学習処理の一例を示すフローチャートである。図８に示されるように、学習処理が開始すると、まず、ステップＳＴ２１において、モデルパターンの作成(教示)を行い、ステップＳＴ２２に進んで、入力画像の指定を行う。ここで、ステップＳＴ２１におけるモデルパターンは、カメラ(視覚センサ)１１０で撮像した画像を使って教示し、また、ステップＳＴ２１における入力画像は、例えば、対象物１０１の画像Ｉwを含む複数の画像を用意する。
【００４１】
次に、ステップＳＴ２３に進んで、入力画像のそれぞれについて、対象物(１０１)の検出を行い、ステップＳＴ２４に進む。ここで、正しい検出および誤検出のどちらも取得できることが望ましいので、検出パラメータの範囲を広めにとって(誤差範囲を大きくして)検出を行う。なお、ステップＳＴ２３における対象物の検出処理は、例えば、画像枚数ＮＩ回だけ実行する。また、検出パラメータには、例えば、モデルパターンに対するサイズの範囲、剪断変形の範囲、検出する位置の範囲、角度の範囲、モデルパターンのエッジ点と画像のエッジ点の一致する割合、モデルパターンのエッジ点と画像のエッジ点が一致したと見なす距離の閾値、および、エッジ点のコントラストの閾値といった様々なものがある。
【００４２】
ステップＳＴ２４では、例えば、検出結果を表示装置１３２に表示し、操作者が目視で確認し、正解(ＯＫ)または不正解(ＮＧ)のラベルを付ける。図９は、図８に示すフローチャートにおけるラベルの指定処理を説明するための図であり、この図９に示されるように、ステップＳＴ２４におけるラベルの指定処理は、複数のモデルパターン指定領域Ｉa1，Ｉa2，Ｉa3，…に含まれる対象物１０１の画像Ｉw1，Ｉw21,Ｉw22，Ｉw31〜Ｉw33，…に対してＯＫまたはＮＧのラベルを付ける。ここで、例えば、検出パラメータを狭めに取って検出を行い、正しい検出結果のみで学習を行うこともできる。この場合には、例えば、操作者の目視による確認(ＯＫまたはＮＧのラベル付け)は必要ない。なお、対象物１０１の画像Ｉw1，Ｉw21,Ｉw22，Ｉw31〜Ｉw33，…を個別に取り出し、取り出されたそれぞれの画像Ｉw1，Ｉw21,Ｉw22，Ｉw31〜Ｉw33，…に対してＯＫまたはＮＧのラベル付けを行うこともできるのはいうまでもない。
【００４３】
なお、図９では、モデルパターン指定領域Ｉa1，Ｉa2，Ｉa3では、含まれるすべての対象物１０１の画像Ｉw1，Ｉw21,Ｉw22，Ｉw31〜Ｉw33に対して、ＯＫ，ＮＧ，ＯＫのラベルを付けているが、例えば、モデルパターン指定領域Ｉanのように、対象物１０１の画像Ｉwn1をＯＫとし、Ｉwn2をＮＧとしてもよいのはいうまでもない。ここで、ＯＫまたはＮＧのラベル付けは、例えば、検出結果が所定の閾値以上であればＯＫ(正解)、閾値よりも小さければＮＧ(不正解)と自動で行うことができるが、例えば、自動でラベル付けを行った後、操作者がラベルを直すようにしてもよい。
【００４４】
さらに、ステップＳＴ２５に進んで、学習(機械学習：例えば、教師あり学習)を行い、処理を終了する。このステップＳＴ２５における学習は、例えば、図４および図５を参照して説明した機械学習器２により行う。また、ステップＳＴ２５の学習処理は、例えば、モデルパターンの数ＮＲ回だけ、或いは、予め定められた回数だけ実行することができる。例えば、学習後に検出を行う場合、学習した学習モデルで尤度を計算し、正しい検出であるか否かを判定する。なお、学習を行う前の尤度の算出は、例えば、学習中に誤差逆伝搬で使う誤差を計算するために行うことができる。また、学習を行った後の尤度の算出は、例えば、実際に検出した対象物の像が正しいものであるか否かを判定するために行うことができる。ここで、学習を行う前後における対象物の像の尤度の算出は、検出された対象物の位置および姿勢に対して予め定められた領域の画像を処理して変換した画像を使用することができる。
【００４５】
図１０は、図８に示すフローチャートにおける学習処理の一例を説明するためのフローチャートであり、ステップＳＴ２５における学習(教師あり学習)を行う処理の一例を説明するためのものである。また、図１１は、図１０に示すフローチャートにおける部分画像切抜き処理の一例を説明するための図である。
【００４６】
図１０に示されるように、学習処理が開始すると、ステップＳＴ３１において、入力画像から、例えば、検出した位置、姿勢で予め定められた領域の部分画像を切り抜き、ステップＳＴ３２に進む。すなわち、ステップＳＴ３１では、図１１に示されるように、例えば、入力画像(領域Ｉaの画像)に４つの対象物１０１の画像ＩwA〜ＩwDが含まれている場合、それぞれ１つの部分画像ＩwA，ＩwB，ＩwC，ＩwDを含む４つの領域ＩaA，ＩaB，ＩaC，ＩaDを切り抜く。
【００４７】
ステップＳＴ３２では、学習モデルに部分画像の各画素値を入力し、尤度を計算する。ここで、スコアとしては、例えば、０〜１の値に設定することができる。さらに、ステップＳＴ３３に進んで、例えば、検出結果のラベルが正解(ＯＫ)であれば１．０、逆に、不正解(ＮＧ)であれば０．０として、計算した尤度との誤差を計算し、ステップＳＴ３４に進む。ステップＳＴ３４では、学習モデル(学習モデルのパラメータ)を更新する。すなわち、ステップＳＴ３４において、学習モデルで誤差を逆伝搬して、学習モデルのパラメータを更新する。なお、ステップＳＴ３１〜ＳＴ３４の処理は、例えば、学習に使用する検出結果の個数ＮＲ回だけ実行する。
【００４８】
ここで、例えば、学習処理が完了したら、学習した機械学習器２を用いて尤度の計算を行うことができる。すなわち、新たに取得した入力画像から既存の検出アルゴリズムを用いて対象物の検出を行い、さらに、入力画像から対象物の象が含まれる部分画像を切り抜く。そして、それぞれの部分画像を機械学習器２に入力し、尤度を計算する。この計算された尤度に基づいて、検出された対象物の象が正しい検出結果であるか否かを判定することができる。これにより、正しくない検出結果を使用しないこともでき、また、ある対象物を検出したときに、その対象物が良品か不良品かを判別することもできる。
【００４９】
図１２は、本実施形態の画像処理装置における処理の変形例を説明するための図である。上述した入力画像から、検出した位置、姿勢で予め定められた領域の部分画像を切り抜いた後、例えば、位置、姿勢、サイズ、ひずみがモデルパターンと揃うように、部分画像を変換することができる。すなわち、図１２に示されるように、入力画像(Ｉa)から、検出した位置、姿勢で予め定められた領域の部分画像を切り抜いた４つの対象物１０１の部分画像ＩwAA，ＩwBB，ＩwCC，ＩwDDに対して、位置、姿勢、サイズ、および、ひずみがモデルパターンと揃うように変換(規格化)すると、４つの領域ＩaAA，ＩaBB，ＩaCC，ＩaDDは、それぞれ規格化された部分画像ＩwAA'，ＩwBB'，ＩwCC'，ＩwDD'を含むことになる。
【００５０】
これより、学習モデルの同じ入力個所には、同じ部位(対応する部位)の画素の値が入力されることになる。ここで、例えば、検出位置が１ピクセル(画素)よりも小さい単位で取得できる場合には、１ピクセルより小さい単位で部分画像をシフトすることもできる。
【００５１】
さらに、部分画像を切り抜いた後、部分画像から特徴量を抽出し、その特徴量を学習モデルに入力する。ここで、特徴量は、複数種類であってもよく、例えば、輝度勾配、輝度勾配の向き、および、エッジ点等であってもよい。また、部分画像から抽出した特徴量と部分画像を同時に学習モデルに入力することもできる。
【００５２】
また、学習を行うときに学習に使わない除外領域を指定してもよい。このように、モデルパターンに対して除外領域を指定すると、検出結果に合わせて除外領域をシフトすることができる。これにより、学習に使う部分画像で除外領域を指定することができ、例えば、部分画像が、回転や位置合わせが行われたものであれば、除外領域をそのまま使うことが可能になる。
【００５３】
さらに、他の変形例として、学習処理を段階的に行ってもよい。すなわち、始めは(最初の段階では)、検出パラメータを広めに(誤差範囲を大きく)とって、教師データを作成し、学習が進むにしたがって(後の段階に進むにしたがって)、徐々に検出パラメータを狭く(誤差範囲を小さく)し、さらに、学習を行うことができる。
【００５４】
具体的に、最初に教師データを生成するときには、例えば、サイズを０．９〜１．１とし、エッジが一致する割合を６０％以上とする。そして、次の学習のための教師データを生成するときには、例えば、サイズを０．９５〜１．０５とし、エッジが一致する割合を８０％とする。なお、これらの値は、単なる例であるのはいうまでもない。
【００５５】
図１３は、本実施形態の画像処理装置における処理のさらなる変形例を説明するための図であり、図１３(a)は、閾値Ｔhaにより正解(ＯＫ)と不正解(ＮＧ)を分類する場合を示し、図１３(b)は、閾値Ｔhbにより正解を分類する場合を示す。本実施形態の画像処理装置における処理のさらなる変形例として、例えば、機械学習器２が出力する尤度で検出または未検出を判定するための閾値を自動的に設定することができる。これは、例えば、次の手順により行うことができる。
【００５６】
まず、学習データ内の部分画像を１つずつ機械学習器２に入力し、一致度を取得する。また、取得した一致度は、ラベルが正解であるか、或いは、不正解であるかにより分類して記憶する。さらに、ラベルが正解である一致度の集合とラベルが不正解である一致度の集合から、それぞれの確率分布を求める。ここで、確率分布には、例えば、正規混合分布を適用することができる。そして、求めた確率分布から、正解および不正解を分類する閾値を計算する。
【００５７】
ここで、図１３(a)に示されるように、例えば、正解と不正解の２つの確率分布が交わる値Ｔhaを閾値に設定してもよいが、正解の確率分布で予め定められた確率以上となる値を閾値Ｔhbに設定することもできる。
【００５８】
さらに、入力画像における検出対象以外の領域を不正解の例として、教師データに追加することもできる。これは、例えば、次の手順により行うことができる。まず、ランダムに検出結果を生成する。次に、検出結果が正しい検出結果と一定範囲以上離れていることを確認する。例えば、検出結果が、位置、角度、スケールであれば、位置、角度、スケールの空間で一定距離以上離れていることを確認する。そして、検出結果を不正解のラベル付きで記憶する。
【００５９】
これにより、例えば、入力画像中の対象物以外の領域を正解として検出し難くなる。また、検出パラメータを狭めにして検出を行い、その検出結果を正解とし、自動的に追加された不正解と合わせて学習することにより、例えば、操作者がラベルを付けることなく学習(教師あり学習)を行うことができる。
【００６０】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００６１】
１    環境
２    機械学習器
２１    状態観測部
２２    学習部
２３    出力利用部
２４    ラベル取得部
２５    尤度計算部
１００Ａ    工作機械システム
１００Ｂ    ロボットシステム
１０１    対象物(ワーク)
１０２    作業台
１１０    視覚センサ
１１１    ロボット
１１２    ハンド
１１３    ロボット制御装置
１２０    視覚センサ制御装置
１２１    画像処理装置
１２２    画像処理部
１２３    対象物検出部
１２４    対応点選択部
１２５    モデルパターン修正部
１２６    モデルパターン記憶部
１２７    検出結果記憶部
１３１    操作盤
１３２    表示装置
２２１    誤差計算部
２２２    学習モデル更新部
【図１】
2018151843.tif 000003
【図２】
2018151843.tif 000004
【図３】
2018151843.tif 000005
【図４】
2018151843.tif 000006
【図５】
2018151843.tif 000007
【図６】
2018151843.tif 000008
【図７】
2018151843.tif 000009
【図８】
2018151843.tif 000010
【図９】
2018151843.tif 000011
【図１０】
2018151843.tif 000012
【図１１】
2018151843.tif 000013
【図１２】
2018151843.tif 000014
【図１３】
2018151843.tif 000015