(57)【要約】【課題】入力画像から対象物体の画像を検出する画像認識処理で用いられる学習画像処理パラメータと入力画像処理パラメータのそれぞれについて、最適な値を設定する。【解決手段】学習部1110は、学習画像に学習画像処理パラメータに基づく画像処理を施した画像から、対象物体の画像検出用の辞書を生成する。検出部1090は、入力画像に入力画像処理パラメータに基づく画像処理を施した画像から、辞書に基づき対象物体を検出する。評価部1080は、該検出結果から生成されるモデル画像と、入力画像のエッジ部との比較により、該検出結果の評価値を算出する。学習画像処理パラメータ設定部1070は、該評価値が最も高くなるような学習画像処理パラメータを設定する(1070)。また入力画像処理パラメータ設定部1040は、該設定された学習画像処理パラメータに基づいて生成された辞書を用いた検出結果に対する評価値が最も高くなるような入力画像処理パラメータを設定する。【選択図】  図1
2014137756.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から対象物体の画像を検出する画像認識処理に用いられる、該対象物体の画像を示す学習画像に対する学習画像処理パラメータおよび該入力画像に対する入力画像処理パラメータを設定する画像処理装置であって、
前記学習画像に前記学習画像処理パラメータに基づく画像処理を施した画像から、前記対象物体の画像検出用の辞書を生成する学習手段と、
前記対象物体の画像を含む入力画像に前記入力画像処理パラメータに基づく画像処理を施した画像から、前記辞書に基づき前記対象物体を検出する検出手段と、
前記検出手段による検出結果に基づいて、前記学習画像処理パラメータを設定する学習画像処理パラメータ設定手段と、
該設定された前記学習画像処理パラメータに基づいて生成された辞書を用いた前記検出手段による検出結果に基づいて、前記入力画像処理パラメータを設定する入力画像処理パラメータ設定手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記学習画像処理パラメータ設定手段は、前記検出手段による検出結果から生成されるモデル画像と、前記入力手段における前記対象物体の画像とに基づいて、前記学習画像処理パラメータを設定することを特徴とする請求項1に記載の画像処理装置。
【請求項３】
さらに、対象物体の画像の生成に必要な情報を示すモデル情報を設定するモデル設定手段を有し、
前記学習画像処理パラメータ設定手段は、前記検出手段による検出結果および前記モデル情報から生成されるモデル画像と、前記入力画像における前記対象物体の画像との対応部位における差分に基づいて、前記学習画像処理パラメータを設定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項４】
前記学習画像は前記モデル情報から生成されるCG画像であり、
前記入力画像は撮像装置で撮影された実写画像であることを特徴とする請求項3に記載の画像処理装置。
【請求項５】
前記学習画像処理パラメータ設定手段は、前記検出結果と前記モデル情報からCG画像を生成し、該生成されたCG画像から抽出されるエッジと、前記入力画像から抽出されるエッジとの対応部位とに基づいて、前記学習画像処理パラメータを設定することを特徴とする請求項3または4に記載の画像処理装置。
【請求項６】
前記学習画像処理パラメータ設定手段は、前記検出結果に含まれる距離情報と前記モデル情報から、所定位置に対する前記対象物体の距離情報を算出し、該算出された距離情報と、該所定位置に対する前記入力画像の距離情報とに基づいて、前記学習画像処理パラメータを設定することを特徴とする請求項3または4に記載の画像処理装置。
【請求項７】
前記学習画像処理パラメータ設定手段は、前記検出結果と前記モデル情報からCG画像を生成し、該生成されたCG画像に対し前記学習画像処理パラメータによる画像処理を行った結果と、前記入力画像に対し前記入力画像処理パラメータによる画像処理を行った結果とに基づいて、前記学習画像処理パラメータを設定することを特徴とする請求項3または4に記載の画像処理装置。
【請求項８】
前記学習画像処理パラメータ設定手段は、前記検出結果と前記モデル情報から生成されたCG画像と前記入力画像とをユーザが目視で比較した結果を取得することで、前記学習画像処理パラメータを設定することを特徴とする請求項3または4に記載の画像処理装置。
【請求項９】
前記学習画像は、前記対象物体の表面輝度分布を示す学習画像生成パラメータを用いて前記モデル情報から生成されたCG画像であることを特徴とする請求項3乃至8のいずれか1項に記載の画像処理装置。
【請求項１０】
前記対象物体の表面輝度分布を示す学習画像生成パラメータは、前記入力画像における距離情報から算出されることを特徴とする請求項9に記載の画像処理装置。
【請求項１１】
前記学習画像および前記入力画像は、互いに異なる撮影条件で撮影された実写画像であることを特徴とする請求項1に記載の画像処理装置。
【請求項１２】
前記学習画像処理パラメータ設定手段および前記入力画像処理パラメータ設定手段は、予め設定された複数のパラメータ候補を評価し、該評価値に基づいて前記学習画像処理パラメータおよび前記入力画像処理パラメータを設定することを特徴とする請求項1乃至11のいずれか1項に記載の画像処理装置。
【請求項１３】
前記入力画像処理パラメータ設定手段は、前記学習画像処理パラメータ設定手段で設定された第1の学習画像処理パラメータと同じ値を前記入力画像処理パラメータとして設定し、
前記学習画像処理パラメータ設定手段はさらに、前記入力画像処理パラメータ設定手段で設定された前記入力画像処理パラメータを用いて、第2の学習画像処理パラメータを設定することを特徴とする請求項1乃至11のいずれか1項に記載の画像処理装置。
【請求項１４】
入力画像から対象物体の画像を検出する画像認識処理に用いられる、該対象物体の画像を示す学習画像に対する学習画像処理パラメータを設定する画像処理装置であって、
前記学習画像に前記学習画像処理パラメータに基づく画像処理を施した画像から、前記対象物体の画像検出用の辞書を生成する学習手段と、
前記対象物体の画像を含む入力画像から、前記辞書に基づき前記対象物体を検出する検出手段と、
前記検出手段による検出結果に基づいて、前記学習画像処理パラメータを設定する学習画像処理パラメータ設定手段と、
を有することを特徴とする画像処理装置。
【請求項１５】
入力画像から対象物体の画像を検出する画像認識処理に用いられる、該入力画像に対する入力画像処理パラメータを設定する画像処理装置であって、
前記対象物体の画像を含む入力画像に前記入力画像処理パラメータに基づく画像処理を施した画像から、前記対象物体の画像検出用の所定の辞書に基づき前記対象物体を検出する検出手段と、
前記検出手段による検出結果に基づいて、前記入力画像処理パラメータを設定する入力画像処理パラメータ設定手段と、
を有することを特徴とする画像処理装置。
【請求項１６】
入力画像から対象物体の画像を検出する画像認識処理に用いられる、該対象物体の画像を示す学習画像に対する学習画像処理パラメータおよび該入力画像に対する入力画像処理パラメータを設定する画像処理方法であって、
前記学習画像に前記学習画像処理パラメータに基づく画像処理を施した画像から、前記対象物体の画像検出用の辞書を生成する学習工程と、
前記対象物体の画像を含む入力画像に前記入力画像処理パラメータに基づく画像処理を施した画像から、前記辞書に基づき前記対象物体を検出する第1の検出工程と、
前記第1の検出工程による検出結果に基づいて、前記学習画像処理パラメータを設定する学習画像処理パラメータ設定工程と、
該設定された前記学習画像処理パラメータに基づいて生成された辞書を用いて、前記入力画像に対し前記入力画像処理パラメータに基づく画像処理を施した画像から、前記対象物体を検出する第2の検出工程と、
前記第2の検出工程による検出結果に基づいて、前記入力画像処理パラメータを設定する入力画像処理パラメータ設定工程と、
を有することを特徴とする画像処理方法。
【請求項１７】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至15のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像から対象物体の画像を検出する画像認識処理に用いられる画像処理パラメータを設定する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
従来より、対象物体を撮像して得られた画像から、該対象物体の画像を検出することを課題とした画像認識に関し、さまざまな研究開発が行われている。画像認識技術はさまざまな分野に応用され、例えば顔認識や、工場における部品認識など、多くの実問題に利用されてきている。
【０００３】
このような画像認識をパターン認識の観点で考えることができる。このパターン認識においても、入力された情報をどのようにしてクラス分類するか、という分類器の研究が行われている。このような研究として例えば、ニューラルネットワークやSVM(Support Vector Machine)、Randomized Treeといった様々な手法が提案されている。
【０００４】
これらクラス分類器の性能は、画像から情報を抽出する方法に大きく依存し、該抽出方法は様々な画像処理によって構成される。例えば、画像から不要な情報を除去するためのノイズ除去処理や、輝度値を調整するためのガンマ補正、画像特徴としてエッジ情報を得るためのエッジ検出、等がある。また、画像の所定領域における特徴をベクトルとして抽出する等、様々な画像特徴抽出手法も知られている。例えば、HOG(Histograms of Oriented Gradients)やSIFT(Scale-Invariant Feature Transform)である。
【０００５】
このような画像からの情報抽出を行う際に実行される画像処理においては、その手法によって様々なパラメータが存在する。例えば、ノイズ除去処理において用いられるガウシアンフィルタにおける分散値や、HOGにおけるセルのサイズやセル数などのパラメータの設定値によって、画像から得られる情報が大きく影響される。
【０００６】
上述したクラス分類器において、最適な性能を得るための画像処理パラメータの最適値は、その対象物体や環境条件などによって異なるため、多くの場合はユーザの経験や試行錯誤によって設定されている。このような画像認識における画像処理パラメータの設定を適宜行うことは、非常にユーザの工数を有するものであり、負担が大きい。そこで、このようなパラメータ設定を簡易に行うための方法が提案されている。
【０００７】
例えば、マシンビジョンツール(Machine Vision Tool)における最適なパラメータを自動決定する方法が提案されている(例えば、特許文献1参照)。該方法によれば、まずパラメータを調整するための画像を撮影し、バウンディングボックスなどでマーキングすることで、物体の所望の結果、すなわち正解の情報を与え、パラメータの組み合わせを変えながらマシンビジョンツールを逐次実行していく。そして、検出結果を正解と比較したときの結果を前のパラメータ設定時の結果と比較し、良いパラメータの組み合わせを残していくことで、最終的に最良のパラメータが残される。
【０００８】
また、検出時の実写入力画像を変換するための画像処理パラメータを最適化する方法も提案されている(例えば、特許文献2参照)。該方法によれば、画像処理パラメータに従って実写画像に画像処理を行い、得られた疑似画像に対する検出処理の結果が誤検出であれば画像処理パラメータを変更することで、画像処理パラメータが決定される。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特表2009-531784号公報
【特許文献２】特開2002-140693号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記特許文献1に記載の方法においては、正解の情報を与える作業はユーザにとって煩雑であり、また、ユーザの主観的な設定による正解情報が正確であるとは限らない。ユーザによって与えられた正解の情報が大きな誤差を含むものであれば、検出結果と正解の比較結果が正確な値にはならず、決定されたパラメータの信頼度が低くなる場合もある。
【００１１】
また、学習画像を用いた学習によりクラス分類器を生成するような画像認識システムにおいては、学習画像に対する画像処理も必要となる。学習画像と検出時の入力画像が異なる条件で得られた場合、例えば学習画像がCG画像であり、入力画像が実写であるような場合には、学習画像と入力画像それぞれに対する最適な画像処理パラメータが同じであるとは限らない。このような場合、上記特許文献2に記載の方法を実写入力画像に対して適用したとしても、そこで得られた画像処理パラメータを学習画像に対して同様に適用することは適切でない。
【００１２】
本発明は上記問題に鑑み、入力画像から対象物体の画像を検出する画像認識処理で用いられる学習画像処理パラメータと入力画像処理パラメータのそれぞれについて、最適な値を設定することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するための一手段として、本発明の画像処理装置は以下の構成を備える。すなわち、入力画像から対象物体の画像を検出する画像認識処理に用いられる、該対象物体の画像を示す学習画像に対する学習画像処理パラメータおよび該入力画像に対する入力画像処理パラメータを設定する画像処理装置であって、前記学習画像に前記学習画像処理パラメータに基づく画像処理を施した画像から、前記対象物体の画像検出用の辞書を生成する学習手段と、前記対象物体の画像を含む入力画像に前記入力画像処理パラメータに基づく画像処理を施した画像から、前記辞書に基づき前記対象物体を検出する検出手段と、前記検出手段による検出結果に基づいて、前記学習画像処理パラメータを設定する学習画像処理パラメータ設定手段と、該設定された前記学習画像処理パラメータに基づいて生成された辞書を用いた前記検出手段による検出結果に基づいて、前記入力画像処理パラメータを設定する入力画像処理パラメータ設定手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、入力画像から対象物体の画像を検出する画像認識処理で用いられる学習画像処理パラメータと入力画像処理パラメータのそれぞれについて、最適な値を設定することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係る画像認識処理を行う画像処理装置において、特に画像処理パラメータの設定を行うための概要構成を示すブロック図、
【図２】第1実施形態で設定されたパラメータおよび辞書を用いて対象物体の検出を行うための概要構成を示すブロック図、
【図３】第1実施形態の画像処理装置を、ランタイム時に対象物体を検出するロボットとして応用した場合の外観を示す図、
【図４】第1実施形態におけるランタイム処理を示すフローチャート、
【図５Ａ】第1実施形態におけるパラメータ設定処理を示すフローチャート、
【図５Ｂ】第2実施形態におけるパラメータ設定処理を示すフローチャート、
【図５Ｃ】第5実施形態におけるパラメータ設定処理を示すフローチャート、
【図６】CG画像による学習画像生成の様子を示す図、
【図７】対象物体の表面性状を説明する図、
【図８】対象物体における表面輝度分布の観測例を示す図、
【図９】カメラ設置状態の違いによる見えの違いを説明する図、
【図１０Ａ】第6実施形態おけるパラメータ設定処理を示すフローチャート、
【図１０Ｂ】第6実施形態おけるパラメータ設定処理を示すフローチャート、
【図１０Ｃ】第6実施形態おけるパラメータ設定処理を示すフローチャート、である。
【発明を実施するための形態】
【００１６】
以下、本発明実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関わる本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１７】
＜第1実施形態＞
本発明は、入力画像から対象物体の画像を検出する画像認識処理に用いられる、該対象物体の画像を示す学習画像に対する学習画像処理パラメータ、および該入力画像に対する入力画像処理パラメータを、それぞれ設定する。
【００１８】
●概要構成
図1に、本実施形態における画像認識処理を行う画像処理装置において、特に画像処理パラメータの設定を行うための構成の概要を示す。モデル設定部1130は、対象物体のモデルを設定し、モデル記憶部1140に記憶する。学習画像設定部1030は、モデル記憶部1140に記憶されているモデルに基づき、対象物体の画像検出用の辞書を生成するための学習画像を設定する。設定された学習画像は学習画像記憶部1060に記憶される。学習画像処理パラメータ設定部1070は、学習画像に対して行う画像処理のための学習画像処理パラメータを設定する。学習部1110は、学習画像記憶部1060に記憶された学習画像に対して、学習画像処理パラメータ設定部1070で設定された画像処理パラメータに従う画像処理を行い、画像処理された学習画像を用いて学習を行って辞書を生成する。生成された辞書は、辞書記憶部1100に記憶される。
【００１９】
確認画像設定部1020は、対象物体を含んだ確認画像を設定し、設定された確認画像は確認画像記憶部1050に記憶される。入力画像処理パラメータ設定部1040は、入力画像に対して行う画像処理のための入力画像処理パラメータを設定する。検出部1090は、確認画像記憶部1050に記憶されている確認画像に対して、入力画像処理パラメータ設定部1040で設定された入力画像処理パラメータに従った画像処理を行う。そして、画像処理後の確認画像に対し、辞書記憶部1100に記憶されている辞書に基づいて対象物体の検出を行い、該検出結果を評価部1080に送る。検出部1090ではすなわち、確認画像を入力画像として、入力画像処理パラメータに基づく画像処理、および辞書に基づく対象物体の検出処理を行う。
【００２０】
評価部1080は、得られた検出結果を評価し、その評価結果を入力画像処理パラメータ設定部1040と学習画像処理パラメータ設定部1070に提示する。すると入力画像処理パラメータ設定部1040および学習画像処理パラメータ設定部1070では、評価部1080の評価結果に基づき、入力画像処理パラメータおよび学習画像処理パラメータを再び設定する。
【００２１】
次に、本実施形態の画像処理装置において、上述した構成により決定された画像処理パラメータ、および生成された辞書を用いて対象物体の検出を行うための構成について、その概要を図2を用いて説明する。図2において、検出部1090は、図1に示す構成により決定された入力画像処理パラメータおよび辞書を、入力画像処理パラメータ記憶部1010および辞書記憶部1100から予め読み込んでおく。入力画像設定部2010では入力画像を設定し、検出部1090へと送る。検出部1090は入力画像を受け取ると、該入力画像に対し、予め読み込んでおいた入力画像処理パラメータを用いて画像処理を行い、同様に読み込んでおいた辞書に従って対象物体の検出処理を行う。検出部1090で得られた検出結果は、検出結果出力部2020にて所定の方法で提示される。
【００２２】
●ロボット作業概要
以下、上述した構成からなる本実施形態の画像処理装置を、ロボットによる作業へ応用する場合を例として、説明を行う。まず、ランタイム時に対象物体を検出するための装置構成を図3に示す。図3において、トレイ500に検出の対象物体400が配置されている。300はカメラであり、図2における入力画像設定部2010に相当する。カメラ300は画像情報を得るための単眼カメラでもよいし、距離情報を得るためのステレオカメラやTOFセンサ、あるいは、カメラと投光器の組み合わせによる光切断や空間コード化などの装置でもよく、本発明において限定されるものではない。カメラ300は有線もしくは無線を介して計算機100に接続されている。
【００２３】
計算機100には、図1および図2に示す検出部1090および検出結果出力部2020に相当する構成がプログラムもしくは回路として組み込まれている。計算機100の内部もしくは外部に備えられたハードディスク(不図示)が、上述した入力画像処理パラメータ記憶部1010および辞書記憶部1100に相当し、辞書および入力画像処理パラメータを記憶している。なお、これら検出部1090、検出結果出力部2020、辞書記憶部1100および入力画像処理パラメータ記憶部1010は、上記のような構成に限定されるものではない。例えば、ネットワークを介した計算機やハードディスク、あるいはカメラ内部に組み込まれた回路とフラッシュメモリ、などの組み合わせによる構成であってもよい。
【００２４】
計算機100は、ロボットコントローラ210へと接続されている。ロボットコントローラ210はロボットアーム220に接続されており、ロボットアーム220はロボットコントローラ210からの命令信号を受けて動作する。ロボットアーム220には被作業物体への例えば把持作業等の所定の作業を行うためのエンドエフェクタ230が設置されている。
【００２５】
●ランタイム処理
図3に示す構成におけるランタイム処理について、図4のフローチャートを用いて詳細に説明する。ここでランタイムとは、本実施形態によって決定された画像処理パラメータと、学習処理によって得られた辞書を用いて、入力画像に対して検出処理を行うことである。図3に示す構成例では、例えば実際の工場などで次々と搬送されてくる対象物体を撮影し、物体検出処理を行うことを指す。ただし、本発明は上記のようなランタイム処理に限定されるものではなく、例えば本発明を顔認識に応用した場合であれば、カメラを人に向けて撮影して顔認識を行う場面なども、ランタイム処理であると言える。
【００２６】
図4において、まず入力画像設定工程S2010で、トレイ500に配置された対象物体400がカメラ300によって撮影され、得られた画像は計算機100に送られる。次に検出工程S2020では、検出部1090によって入力画像から対象物体400の位置および姿勢が推定される。
【００２７】
検出工程S2020ではまず、画像処理工程S2021として、入力画像処理パラメータ記憶部1010から読み出した入力画像処理パラメータに基づく画像処理が行われる。ここでの画像処理とは、入力画像を検出部1090が扱い易い形式に変換する処理の総称であって、その処理内容は限定されない。例えば、ガウスフィルタやメジアンフィルタ等によるノイズ除去や、Sobelフィルタ、LoGフィルタ、ラプラシアンフィルタ、Cannyエッジ検出器によるエッジ抽出、等が考えられる。また、拡大縮小やガンマ補正等の前処理や、HOGやSIFTなどの特徴抽出処理も、ここで述べる画像処理として考えられる。さらに、Spin Imageのように、2次元画像の代わりに3次元情報を用いた特徴抽出処理を考えてもよい。また、画像処理はこれらのうちの一処理だけを選択的に行うものと限定されず、例えば、ガウスフィルタによるノイズ除去後にSobelフィルタによるエッジ抽出を行う、等の組み合わせ処理として考えてもよい。
【００２８】
S2021でこれらの画像処理を行うにあたり、その応答を制御するパラメータが存在する場合がある。例えば、ガウスフィルタを用いる場合であれば分散値の大小によってぼけの範囲が変化するし、HOGのセルサイズやセル数を変えることによって、同じ画像であっても得られるHOG特徴量が異なる。以下では、このような画像処理に対する制御パラメータを総じて、画像処理パラメータと称する。なお、入力画像処理パラメータとは、入力画像に対して画像処理を行う際に利用される画像処理パラメータである。なお本実施形態では、入力画像に対する入力画像パラメータのほかに、辞書作成用の学習画像に対する画像処理パラメータとして、学習画像処理パラメータを考慮する。入力画像処理パラメータと学習画像処理パラメータとは、例えばいずれもガウスフィルタの分散値を示す等、たとえ互いに項目が同じであっても、その値も同じであるとは限らない。
【００２９】
画像処理工程S2021が終了すると、次に画像認識工程S2022として、入力画像処理パラメータに基づく画像処理が施された入力画像に対して、辞書記憶部1100から読み出した辞書を用いた画像認識処理を行い、検出結果を得る。ここで検出結果とは、対象物体400の推定された位置および姿勢である。また、ここで行われる画像認識処理とは、対象物体の位置および姿勢をクラス分類器によってクラス分けする処理であり、その際に用いられる辞書とは、このクラス分類器を定義するものである。辞書によって定義されるクラス分類器は、画像の一部に写っている対象物体がどのクラスに当てはまるかを判定することで、その位置および姿勢を認識する。なお、クラス分類器として用いられる手法としては特に限定されず、既存の手法を適用することができる。例えば、周知の技術であるSVM(Support Vector Machine)やRT(Randomized Trees)によるクラス分類器を用いてもよい。得られた検出結果は、検出結果出力部2020へと送られる。
【００３０】
検出結果出力工程S2030では、検出結果出力部2020によって、検出結果である対象物体400の推定位置および姿勢から、ロボットが所定作業を行うための命令をエンコードし、ロボットコントローラ210へ出力する。ロボットコントローラ210は送られてきた命令をデコードし、該命令に応じてロボットアーム220およびエンドエフェクタ230を動作させ、認識された被作業物体（対象物体400)に対して所定の作業を行う。
【００３１】
●パラメータ設定処理
以上のようなランタイム処理を行うにあたり、対象物体400と作業環境に適した辞書および入力画像処理パラメータが必要となる。以下、この辞書および入力画像処理パラメータを設定するための処理について詳細に説明する。なお上述したように、本実施形態における辞書は学習画像に基づいて作成され、該学習画像には、学習画像処理パラメータに基づく画像処理が施される。したがって、最適な辞書が設定される際には、学習画像に対して該辞書が生成されるべき画像処理が施されており、すなわち、該画像処理を実現する学習画像処理パラメータが設定される。
【００３２】
本実施形態における辞書および入力画像処理パラメータの設定処理は、上述した図1に示す構成により行われる。なお、図1における学習画像設定部1030、入力画像処理パラメータ設定部1040、学習画像処理パラメータ設定部1070、評価部1080、検出部1090、学習部1100は、いずれも図3に示す計算機100内部におけるプログラムとして実装される。また、入力画像処理パラメータ記憶部1010、学習画像処理パラメータ記憶部1120、確認画像記憶部1050、学習画像記憶部1060、辞書記憶部1100は、ハードディスクに実装されるものとして説明する。なお、このハードディスクは計算機100の内部もしくは外部に接続されているものである。ただし、本発明の実装形態はこの例に限定されるものではなく、ランタイム時に用いるものとは別の計算機やハードディスク、あるいはカメラ内に搭載された計算機やメモリに実装されていてもよい。また、確認画像設定部1020は、図3に示すカメラ300もしくは計算機100の内部に、カメラ300を制御するプログラムとして実装される。
【００３３】
以下、図5Aのフローチャートに従って、本実施形態における辞書および入力画像処理パラメータの設定処理について説明する。
【００３４】
まず、モデル設定工程S1000では、対象物体400のモデルを設定する。ここでモデルとは、後述するように対象物体のCG画像を生成する際に必要な情報を含むモデル情報であり、具体的には対象物体400のCADデータやポリゴンモデルなどを指す。
【００３５】
次に確認画像設定工程S1010では、トレイ500に対象物体400を配置してカメラ300で撮影を行い、画像を取得する。取得された画像は確認画像として、確認画像記憶部1050に書き込まれる。ここで確認画像とは、後述する評価工程において評価対象とされる画像(入力画像)であり、ランタイム時と同じ環境条件で撮影されることが望ましい。確認画像としては少なくとも1枚が撮影され、以下では5枚程度撮影するものとする。このように確認画像を複数枚撮影する場合には、それぞれの撮影状態において対象物体400の配置が異なり、位置および姿勢のバリエーションが多いことが望ましい。
【００３６】
次に学習画像設定工程S1020では、辞書を生成するために必要な学習画像を設定する。学習画像は、S1000で設定された対象物体400のモデル(例えばCADデータ)に基づくCG画像として生成されるとする。例えば、双方向反射率分布関数で表わされる対象物体400の表面性状と作業環境における光源情報が既知であれば、周知のレンダリング技術を用いて、モデルから様々な姿勢に関する対象物体400の見えをCG画像で再現することができる。ここで図6に、CG画像による学習画像の生成の様子を示す。図6に示すように、学習画像は対象物体400の物体中心404を中心とした測地ドーム401における各視点403と、該視点403における画像面内回転402によるバリエーションで生成され、それぞれに姿勢クラスのインデックスが与えられる。例えば、72視点、30度毎の面内回転によるバリエーションで学習画像を生成すると、辞書としては72×(360/30)＝864クラスの分類器を学習させることになる。
【００３７】
次に、学習画像処理パラメータ候補設定工程S1030では、S1020で設定された学習画像に対して行う画像処理(学習画像処理)のパラメータ候補として、Nパターンを設定する。ここで学習画像処理パラメータとは、学習画像に対して画像処理を行う際に利用されるパラメータである。上述したように学習画像処理パラメータは、上述した入力画像処理パラメータと項目は同じであっても、互いに同じ値であるとは限らない。学習画像処理パラメータ候補としては、学習画像に対して行う画像処理における所定のパラメータ範囲内であれば、複数のパラメータの組み合わせとして用意してもよい。例えば、メジアンフィルタによるノイズ除去とラプラシアンフィルタによるエッジ抽出を画像処理として行う場合であれば、これらのパラメータを組み合わせても良い。具体的には、メジアンフィルタサイズ＝3,5,7、ラプラシアンフィルタのサイズσ＝3,5,7、の組み合わせによるN＝3×3＝9種類を候補として用意する、などが考えられる。また、パラメータの組み合わせが多い場合には、ランダムに選んだ候補を用いてもよい。あるいは、S1010で取得された確認画像に対して様々なパラメータの組み合わせによる画像処理を施した際の統計量から判断して、候補を絞り込んでもよい。
【００３８】
次に、学習画像と入力画像とで処理パラメータを共通として、該画像処理パラメータの評価処理を行うが、この処理は学習・入力画像処理パラメータ評価ループL1010として実行される。以下、学習・入力画像処理パラメータ評価ループL1010について、詳細に説明する。学習・入力画像処理パラメータ評価ループL1010は、学習工程S1040、第1の検出工程S1050、第1の評価工程S1060からなり、これらを学習画像処理パラメータ候補設定工程S1030で用意したパラメータ候補数Nの分だけ繰り返し行う。
【００３９】
繰り返しn回目の学習工程S1040では、n番目の学習画像処理パラメータを用いた画像処理による辞書生成が行われる。学習工程S1040は、学習画像処理工程S1041と辞書生成工程S1042に細分される。学習画像処理工程S1041では、学習画像すべてに対してn番目の学習画像処理パラメータによる画像処理が施される。辞書生成工程S1042では、学習画像処理工程S1041にて画像処理を施された学習画像を用いて、検出部1090にて利用されるクラス分類器の形式に従って辞書が生成される。生成された辞書は、辞書記憶部1100に記憶される。
【００４０】
第1の検出工程S1050では、学習工程S1040にて生成された辞書を用いて、確認画像設定工程S1010にて用意された確認画像に対する、対象物体400の検出処理が行われる。第1の検出工程S1050は、第1の入力画像処理工程S1051、第1の認識処理工程S1052に細分される。S1051、S1052ではそれぞれ、図4のS2021、S2022と同様の処理を行って、入力画像、すなわち確認画像中の対象物体400の位置および姿勢の推定値を検出結果として算出する。なお、第1の入力画像処理工程S1051で用いる入力画像処理パラメータとしては、n番目の学習画像処理パラメータと同値のものを用いる。
【００４１】
第1の検出工程S1050で算出された検出結果は、第1の評価工程S1060にて評価される。まず、検出結果として得られた推定位置および姿勢に基づき、対象物体400のモデル画像として、S1000で設定されたモデルから対象物体400のCG画像を生成する。ここで、検出結果として得られた推定位置および姿勢に対して直接CG画像を生成してもよいが、周知のトラッキング技術を用いてより詳細にマッチングした結果に対してCG画像を生成してもよい。すなわち、検出結果として得られた対象物体400の推定位置および姿勢を初期値として、既知のトラッキング技術を用いて確認画像に対してより詳細にマッチングさせた後の推定位置および姿勢を用いて、CG画像を生成することも可能である。そして、生成されたCG画像と確認画像に対してエッジ抽出処理をかけて2値化し、双方で得られたエッジ点位置を比較して距離を算出し、その和、もしくは2乗和による検出誤差を、評価値として算出する。すなわち第1の評価工程S1060では、検出結果およびモデル情報から生成されるモデル画像(CG画像)と、確認画像における対象物体の画像との対応部位における差分に基づいて、該検出結果の評価値を算出する。
【００４２】
なお、距離情報が得られている場合には、以下のようにして距離残差を用いて評価してもよい。ここで距離情報としては、画像座標における各画素位置の距離情報が得られているデプスマップや、カメラ座標系における点群が得られている点群データ等の、いずれであってもよいことは言うまでもない。すなわち、S1050での検出結果として得られた推定位置および姿勢に基づき、モデルからその位置および姿勢における部品表面の所定位置(例えばカメラ位置)に対する距離を算出する。そして、確認画像に対応する距離情報と比較し、その物体表面における距離の残差の和、もしくは2乗和による検出誤差を、評価値として算出する。
【００４３】
また、学習画像および入力画像に対する学習処理パラメータによって変換された情報を用いて比較してもよい。その場合は、生成されたCG画像を学習画像処理パラメータを用いて変換し、確認画像を入力画像処理パラメータを用いて変換し、CG画像における対象物体400の存在領域の類似度を相関などで比較し、その類似度を評価値として算出する。さらに、生成されたCG画像と確認画像をユーザが目視で確認し、差異を評価してもよい。例えば、位置ずれや姿勢ずれの誤差を数段階(例えば5段階程度)に定義し、主観的にユーザが入力して評価値とする。また、上記様々な評価値の組み合わせ、例えば線形和等によって一つの評価値としてもよい。
【００４４】
以上のように、学習・入力画像処理パラメータ評価ループL1010においてNパターンすべての学習画像処理パラメータに関する評価値が得られたら、該ループL1010を抜ける。その後、学習画像処理パラメータ設定工程S1070にて学習画像処理パラメータを設定する。すなわち、Nパターンの候補のうち、評価値の最も良いものを最適なパラメータとして学習画像処理パラメータ記憶部1120に書き込み、そのときに得られた辞書を、最適な辞書として設定する。ここで良い評価値とは、評価値が検出誤差であればより小さい値、評価値が類似度であればより大きい値であり、評価値の定義に依存する。
【００４５】
これまでの処理により。学習画像処理パラメータについての最適値、および最適辞書が設定される。次に、入力画像処理パラメータの最適化を行うために、まず入力画像処理パラメータ候補設定工程S1080にて、入力画像処理パラメータの候補としてMパターンを設定する。詳細には、入力画像処理パラメータ候補は、S1070にて設定された最適な学習画像処理パラメータに近い値から用意される。例えばS1070において、メジアンフィルタサイズ＝5、ガウシアンフィルタの分散値σ＝2の組み合わせが最適な学習画像処理パラメータとして設定されたとする。このとき、入力画像処理パラメータ候補として、メジアンフィルタサイズ＝4.5，5，5.5、ガウシアンフィルタの分散値σ＝1.5，2，2.5、などと設定してもよい。
【００４６】
次に、入力画像処理パラメータの評価処理を行うが、この処理は入力画像処理パラメータ評価ループL1020として実行される。入力画像処理パラメータ評価ループL1020は、第2の検出工程S1090、第2の評価工程S1100からなり、これらを入力画像処理パラメータ候補設定工程S1080で用意したパラメータ候補数Mの分だけ繰り返し行う。
【００４７】
繰り返しm回目の第2の検出工程S1090では、学習画像処理パラメータ設定工程S1070にて設定された最適辞書を用いて、確認画像設定工程S1010にて用意された確認画像に対する、対象物体400の検出処理を行う。第2の検出工程S1090は、第2の入力画像処理工程S1091、第2の認識処理工程S1092に細分され。それぞれ図4のS2021、S2022と同様の処理を行い、確認画像中の対象物体400の位置および姿勢の推定値を検出結果として算出する。ここで、第2の入力画像処理工程S1091で利用される入力画像処理パラメータは、m番目の入力画像処理パラメータ候補である。
【００４８】
第2の検出工程S1090で算出された検出結果は、第2の評価工程S1100にて、第1の評価工程S1060と同様の方法で評価される。
【００４９】
以上のように、入力画像処理パラメータ評価ループL1020においてMパターンすべての入力画像処理パラメータに関する評価値が得られたら、該ループL1020を抜ける。その後、入力画像処理パラメータ設定工程S1110にて最適な入力画像処理パラメータを設定する。すなわち、上記学習画像処理パラメータ設定工程S1070と同様に、Mパターンの候補のうち、評価値の最も良いものを最適なパラメータとして入力画像処理パラメータ記憶部1010に書き込む。これによりすなわち、入力画像処理パラメータについての最適値が設定される。
【００５０】
以上説明したように本実施形態によれば、画像認識処理において、辞書生成用の学習画像に対する画像処理パラメータと、対象物体の検出対象となる入力画像に対する画像処理パラメータのそれぞれが、別個に最適化される。したがって、学習画像と入力画像の作成条件が異なっている場合でも、それぞれ最適な画像処理パラメータを得ることができる。また、確認画像から対象物体を検出する際に、対象物体の正解情報を予めユーザが用意する必要がないため、ユーザが正解情報を入力するための作業が不要となる。
【００５１】
＜第2実施形態＞
以下、本発明に係る第2実施形態について説明する。なお、第2実施形態における画像処理装置の構成については第1実施形態と同様であるため、説明を省略する。上述した第1実施形態では、学習画像設定工程S1020において、対象物体400のCADデータからCGによって学習画像を生成する際に、対象物体400の表面性状と作業環境の光源情報に基づくレンダリングによる再現を行う例を示した。第2実施形態では、対象物体400の表面性状が未知である場合に、対象物体400の表面輝度分布をモデル化し、そのパラメータ自体を最適化することで学習画像を生成する例を示す。
【００５２】
以下、対象物体400についての表面輝度分布パラメータを、学習画像生成パラメータと称する。図5Bに、第2実施形態における学習画像生成パラメータを含めたパラメータ設定処理のフローチャートを示し、以下に説明する。なお、図5Bにおいて上述した第1実施形態で示した図5Aのフローチャートと同様の処理には同一ステップ番号を示し、説明を省略する。
【００５３】
まず、第1実施形態と同様にモデル設定工程S1000で対象物体400のモデルを設定し、確認画像設定工程S1010で対象物体400を撮影して確認画像を取得した後、学習画像生成パラメータ候補の設定工程S1015を実行する。学習画像生成パラメータ候補設定工程S1015では、学習画像を生成するための学習画像生成パラメータの候補をKパターン用意する。
【００５４】
ここで、学習画像生成パラメータの具体例としては以下のようなものが考えられる。例えば、光源を単一の平行光と仮定し、対象物体400としての部品表面がランバート反射(拡散反射)するとすれば、比較的簡単な輝度分布モデルで近似することができる。この近似例を図7を用いて説明する。図7は、対象物体400に対し、光源600から光を照射し、カメラ300がその反射光を受光する様子を示している。対象物体400の表面から光源600へ向かう光源軸20のカメラ座標系における光源方向L＝(Lx,Ly,Lz)と、カメラ光軸10のカメラ光軸方向V=(Vx,Vy,Vz)の中間を、反射中心軸30とする。すると反射中心軸30の方向ベクトルH＝(Hx,Hy,Hz)は、以下の(1)式で表わされる。
【００５５】
H＝(L+V)/|L+V|      ・・・(1)
そして、対象物体400表面の任意の位置における表面法線40の法線ベクトルN＝(Nx,Ny,Nz)と、反射中心軸30の方向ベクトルHのなす角50をθとすると、θは以下の(2)式で表わされる。
【００５６】
θ＝cos-1(H・N/(|H||N|))      ・・・(2)
このとき、上記物体表面位置における輝度値Iは、θの関数として以下の(3)式ようにガウス関数で近似することができる。
【００５７】
I(θ)＝Cexp(-θ2/m)      ・・・(3)
なお、(3)式におけるCとmはそれぞれ、輝度分布全体の強度と輝度分布の広がりを表すパラメータである。このパラメータCおよびmと、反射中心軸30の方向ベクトルHを、学習画像生成パラメータとする。
【００５８】
また、鏡面反射成分をモデルに取り入れる場合には、以下の(4)式に示すようなTorrance-Sparrowの輝度分布モデルが知られている。
【００５９】
I(θ,α,β)＝Kdcosα+Ks(1/cosβ)exp(-θ2/m)      ・・・(4)
なお、(4)式においてKd,Ks,mはこのモデルにおけるパラメータである。このモデルを図7に適用すると、θは(2)式のθと同様であり、すなわち表面法線40の方向ベクトルNと反射中心軸30の方向ベクトルHのなす角50である。また、αは表面法線40の方向ベクトルNと光源軸20の方向ベクトルLのなす角70、βは表面法線40の方向ベクトルNとカメラ光軸100の方向ベクトルVのなす角60であり、それぞれ以下の(5),(6)式で表わされる。
【００６０】
α＝cos-1(L・N/(|L||N|))      ・・・(5)
β＝cos-1(V・N/(|V||N|))      ・・・(6)
このように、鏡面反射成分を考慮した場合、パラメータKd,Ks,mおよび反射中心軸方向ベクトルHを、学習画像生成パラメータとする。
【００６１】
以上のような学習画像生成パラメータを用いて、上記(3)式もしくは(4)式から物体表面法線に対応する推定輝度値Iを算出すれば、学習画像を生成することができる。学習画像生成パラメータ候補設定工程S1015では、これら学習画像生成パラメータの候補がKパターン用意される。その後、学習画像処理パラメータ候補設定工程S1030で第1実施形態と同様に、学習画像処理のパラメータ候補としてNパターンが設定される。
【００６２】
次に、学習画像評価ループL1030では、学習画像設定工程S1020において第1実施形態と同様に、対象物体400のモデルから、それぞれの学習画像生成パラメータを用いてCGによる学習画像生成を繰り返す。なお、光源方向が設計値やキャリブレーション値によって既知である場合には、光源方向ベクトルLは一意に決まることは言うまでもない。
【００６３】
学習画像設定工程S1020で学習画像を生成した後、その学習画像を用いて第1実施形態と同様に、学習・入力画像処理パラメータ評価ループL1010によって、適切な学習画像処理パラメータを設定する。第k番目の学習画像生成パラメータによる適切な学習画像処理パラメータが設定されたら、学習画像設定工程S1020にて次の学習画像生成パラメータによる学習画像を生成し、再び学習画像処理パラメータの選択を行う。
【００６４】
学習画像評価ループL1030において、第1番目から第K番目の学習画像生成パラメータに対応する学習画像処理パラメータが選択されたら該ループを抜け、学習画像処理パラメータ設定工程S1070へと進む。学習画像処理パラメータ設定工程S1070では第1実施形態と同様に、最も評価誤差が小さくなる学習画像生成パラメータによる学習画像を適切な学習画像とし、その際の学習画像生成パラメータを適切な学習画像処理パラメータとして設定する。このように学習画像評価ループL1030においては、学習画像設定工程S1020で学習画像を生成し、学習工程S1040にて学習することで辞書を生成し、第1の評価工程S1060で確認画像を用いた評価を行うことを繰り返す。これにより、学習画像を生成するための輝度分布も含めた学習画像生成パラメータを決定することができる。
【００６５】
以上説明したように第2実施形態によれば、対象物体400の表面輝度分布を示す学習画像生成パラメータを最適化して、学習画像を生成することができる。
【００６６】
＜第3実施形態＞
以下、本発明に係る第3実施形態について説明する。第3実施形態では、上述した第2実施形態と同様に対象物体400の表面性状(表面輝度分布)が未知である場合に、対象物体400を撮影するカメラ300から得られた距離情報を用いて、輝度分布パラメータを一意の値に推定する例を示す。なお、第3実施形態における画像処理装置の構成も第1実施形態と同様であるため、説明を省略する。
【００６７】
第3実施形態におけるパラメータ設定処理は、第1実施形態で示した図5Aのフローチャートと同様であるが、学習画像設定工程S1020において、下記のような輝度分布推定処理が追加される。
【００６８】
カメラ300で予め撮影された確認画像において距離情報が得られており、任意の画素jにおける対象物体400表面のカメラ座標系位置が(Xj,Yj,Zj)で観測されているとする。このとき、画素jとその近傍数点(例えば隣接8画素)からなる9画素についてのカメラ座標系位置を集計し、それらを平面近似することによって、画素jに対応するカメラ座標系位置(Xj,Yj,Zj)の表面法線ベクトルNjを算出する。確認画像における対象物体400の存在領域(例えばトレイ500の内部領域)におけるすべての画素について、対応する表面法線ベクトルNjを算出することにより、輝度値と表面法線方向の対応に関する観測値の分布を得ることができる。
【００６９】
ここで、光源が単一であると仮定した場合、得られた観測値の中で輝度値が最大となる画素の表面法線ベクトルNjが、光源方向L＝(Lx,Ly,Lz)として推定される。このとき、観測誤差や輝度のサチュレーションなどを考慮して、近傍画素による輝度値の平均化などを行って良いことは言うまでもない。また、光源方向が既知の場合には、上記光源方向の推定を行う必要はない。
【００７０】
そして、表面輝度分布を上記(3)式のようなガウス関数で近似する場合、まず上記のようにして得られた光源方向Lに対して、上記(1)式に従って反射中心軸の方向ベクトルHを算出する。これにより、各画素jにおける反射中心軸からの角度θjが上記(2)式から求まり、図8のような観測分布を得ることができる。図8において、データ点B100は角度θjと輝度値Ijの観測点である。この分布に対して、上記(3)式のモデルをB200のように最尤推定フィッティングすることで、対象物体400の表面輝度分布の推定モデルを得ることができる。ここで、鏡面反射成分を考慮する場合には、上記(4)式を用いて輝度分布を推定してもよい。各観測画素jに対応する(4)式における角度αjとβjは、上記(5),(6)式から得ることができ、これによりθj、αj、βjに対応する輝度値Ijの観測分布を得ることができる。この観測分布に対して(4)式のモデルを最尤推定によってフィッティングすることで、対象物体400の表面輝度分布の推定モデルを得ることができる。
【００７１】
また、光源が複数、もしくは環境光などによる外乱光がある場合には、表面法線方向ベクトルNを入力とし、輝度値Iを出力とするノンパラメトリックな回帰モデルI(N)で輝度分布を近似してもよい。観測値における各画素jに関する表面法線方向ベクトルNjに対して、輝度値Ijを教師値とし、所定のノンパラメトリックモデルを学習させることで、輝度分布推定関数を得る。ノンパラメトリックな回帰モデルとしては、SVMやSVR(Support Vector Regression)、ニューラルネットワークなどさまざまな方法を利用することができる。これらノンパラメトリックモデルを利用する場合には、フィッティングの前に予め光源方向を推定する必要はない。
【００７２】
以上説明したように第3実施形態によれば、対象物体400を撮影するカメラ300から得られた距離情報を用いて、確認画像から推定されたモデルに従って学習画像を生成することができる。また、推定された学習画像生成パラメータの値を中心として複数の学習画像生成パラメータを準備し、上述した第2実施形態で説明した方法によって最適な学習画像生成パラメータを設定してもよい。
【００７３】
＜第4実施形態＞
以下、本発明に係る第4実施形態について説明する。上述した第1実施形態では、学習画像をCGで生成する例を示したが、学習画像はCG画像に限定されない。第4実施形態では、対象物体400を様々な姿勢で撮影することで、実写による学習画像を得る例を示す。第4実施形態における画像処理装置の構成も第1実施形態と同様であるため、説明を省略する。また、第4実施形態におけるパラメータ設定処理も、第1実施形態で示した図5Aのフローチャートと同様であるが、学習画像設定工程S1020において、CGによる学習画像を生成する代わりに、実写による撮影済み学習画像を用いることを特徴とする。
【００７４】
本発明では、学習画像処理パラメータと入力画像処理パラメータをそれぞれ最適化するため、学習画像と確認画像における撮影条件は必ずしも同じでなくてもよい。例えばそれぞれにおいて、照明条件が異なる場合、撮像装置が異なる場合、撮像装置の絞りやシャッタースピードなどの諸設定が異なる場合、などが考えられ、これらの差異を吸収するように、各画像処理パラメータが最適化されることになる。
【００７５】
さらに、学習画像撮影時のカメラ角度と、確認画像撮影時のカメラ角度が異なる場合、対象物体の見えは異なる。例えば、図9(a)に学習画像撮影時の構成を示し、図9(b)に確認画像撮影時の構成を示す。同図によれば、パースペクティブの関係によって対象物体400の見えはC100とC200のように異なってくる。このような場合、画像に対するアフィン変換を、学習画像処理パラメータと入力画像処理パラメータのいずれか、もしくは両方に含めればよい。学習画像撮影時と確認画像撮影時のカメラ角度の違いが未知であっても、学習画像処理パラメータと入力画像処理パラメータの違いとして最適化される。特に、対象物体400の厚みが薄く、安定姿勢が定まっていているような場合であれば、図9(a),(b)のように平置きされた部品を撮影して、姿勢クラスを面内回転のみに限定した場合に、上記の方法が有効である。
【００７６】
以上説明したように第4実施形態によれば、対象物体400を様々な姿勢で撮影した実写画像から、学習画像を生成すことができる。
【００７７】
＜第5実施形態＞
以下、本発明に係る第5実施形態について説明する。上述した第1、第2および第4実施形態では、最適化するパラメータの範囲を予め設定し、その範囲内のパラメータすべてを評価する例を示したが、探索パラメータの範囲が広い場合には計算時間が膨大になる。そこで第5実施形態では、探索する画像処理パラメータを評価結果による誤差が小さくなる方向に微修正していくことで、画像処理パラメータの準最適値を探索する例を示す。
【００７８】
図5Cに、第5実施形態におけるパラメータ設定処理のフローチャートを示し、以下に説明する。なお、図5Cにおいて上述した第1、第2および第4実施形態で示した図5Aのフローチャートと同様の処理には同一ステップ番号を示し、説明を省略する。
【００７９】
まず、第1実施形態と同様にモデル設定工程S1000で対象物体400のモデルを設定し、確認画像設定工程S1010で対象物体400を撮影して確認画像を取得した後、学習画像処理パラメータの初期設定工程S1025を実行する。学習画像処理パラメータ初期設定工程S1025では、学習画像処理パラメータを任意の値に初期設定する。
【００８０】
次に、学習・入力画像処理パラメータ修正ループL1015では、調整対象であるパラメータのそれぞれに対して最適化を行う。以下、この最適化処理について説明する。
【００８１】
第5実施形態では、調整対象となったパラメータについて、第1のパラメータ値と、該第1のパラメータ値から任意の方向に所定差分による微修正を施した第2のパラメータ値の2種類を考慮する。すなわち、まず最初のループでは、第1のパラメータ値の初期値と、該初期値に対する第2のパラメータ値の2種類により、学習画像設定工程S1020で学習画像を設定し、学習工程S1040にて学習を行う。例えば、調整対象パラメータをガウスフィルタの分散値αとし、その初期値を第1のパラメータ値σ0＝3.0とする場合、σ1＝3.1といった値に微修正した値を第2のパラメータとして設定し、それぞれの場合の辞書を生成する。そして、第1の検出工程S1050、第1の評価工程S1060では、前記2つの辞書のそれぞれについての評価を行う。そして、この評価結果として得られた誤差が小さくなる方のパラメータ値を選択し、そのときの誤差を基準誤差とし、誤差が小さい方のパラメータ値から誤差が大きい方のパラメータ値を減じた値を微修正値とする。例えば、上記ガウスフィルタの分散値αについて、「σ0のときの誤差＞σ1のときの誤差」であった場合、微修正値はΔσ＝σ1−σ0＝0.1となる。この演算は学習画像処理パラメータ修正工程S1065にて行われ、S1065ではさらに、現時点における第1のパラメータ値(初回ループであれば初期値)を、微修正値を加算することで更新する。
【００８２】
そして2回目以降のループでは、学習画像処理パラメータ修正工程S1065で設定されたパラメータに従って、学習工程S1040、第1の検出工程S1050、第1の評価工程S1060を行い、評価結果を得る。そして、得られた評価結果による小さい方の誤差が、前の状態における第1のパラメータ値の基準誤差よりも大きければループを抜ける。そして、学習画像処理パラメータ設定工程S1070にて、前の状態における第1のパラメータ値、すなわち基準誤差が最小となる第1のパラメータ値を最適値として、調整対象のパラメータを変更する。全ての調整対象パラメータについて、学習画像処理パラメータ設定工程S1070における最適値の設定が終了したら、学習・入力画像処理パラメータ修正ループL1015を抜ける。
【００８３】
学習・入力画像処理パラメータ修正ループL1015を抜けた時点で、学習画像処理パラメータの最適化が終了しており、次に、入力画像処理パラメータについての最適化を行う。まず、入力画像処理パラメータ初期設定工程S1085において、入力画像処理パラメータを任意の値に初期設定する。そして、入力画像処理パラメータ修正ループL1025では、調整する入力画像処理パラメータそれぞれに対して以下のように最適化を行う。
【００８４】
調整対象となったパラメータについて、まず最初のループでは、第1のパラメータ値の初期値と、該初期値から任意の方向に微修正した第2のパラメータ値により、第2の検出工程S1090、第2の評価工程S1100で対象物体の検出および評価を行う。そして、この評価結果として得られた誤差が小さくなる方のパラメータ値を選択し、そのときの誤差を基準誤差とし、誤差が小さい方のパラメータ値から誤差が大きい方のパラメータ値を減じた値を、微修正値とする。この演算はすなわち、入力画像処理パラメータ修正工程S1105にて行われ、S1105ではさらに、現時点における第1のパラメータ値(初回ループであれば初期値)に対して微修正値を加算した値を次の第1のパラメータ値として設定する。
【００８５】
そして2回目以降のループでは、入力画像処理パラメータ修正工程S1105で設定された第1のパラメータ値に従って、第2の検出工程S1090、第2の評価工程S1100を行い、評価結果を得る。そして、得られた評価結果による小さい方の誤差が、前の状態における、第1のパラメータのときの基準誤差よりも大きければループを抜ける。そして、入力画像処理パラメータ設定工程S1110にて、前の状態における第1のパラメータ値、すなわち基準誤差が最小となる第1のパラメータ値を最適値として、調整対象のパラメータを変更する。全ての調整対象パラメータについて、入力画像処理パラメータ設定工程S1110における最適値の設定が終了したら、入力画像処理パラメータ修正ループL1025を抜ける。すなわち、入力画像処理パラメータ修正ループL1025を抜けた時点で、入力画像処理パラメータの最適化が終了している。
【００８６】
以上説明したように第5実施形態によれば、学習画像処理パラメータおよび入力画像処理パラメータを、誤差が小さくなる方向に微修正していくことにより、極小解としての準最適パラメータを決定し、計算時間を短縮することができる。
【００８７】
＜第6実施形態＞
以下、本発明に係る第6実施形態について説明する。本発明におけるパラメータ設定処理は、上述した第1乃至第5実施形態で説明した処理に限定されず、学習画像処理パラメータおよび入力画像処理パラメータの設定に関して高い自由度を持つ。第6実施形態では、これらパラメータ設定の他の例を図10A〜図10Cのフローチャートを用いて説明する。なお、図10A〜図10Cにおいて上述した各実施形態で示した図5A〜図5Cのフローチャートと同様の処理には同一ステップ番号を示し、説明を省略する。
【００８８】
●その他のパラメータ設定例1
図10Aは、入力画像処理パラメータを学習画像処理パラメータと一緒に設定した後、学習画像処理パラメータを異なる値に調整する処理を示すフローチャートである。
【００８９】
まず、S1080で入力画像処理パラメータ候補としてNパターンを設定する。そして、学習・入力画像処理パラメータ評価ループL1010において、第1実施形態と同様に学習画像処理パラメータと入力画像処理パラメータを同じ値として辞書を学習し、確認画像に対して検出処理を行い、評価する。したがって、S1080において入力画像処理パラメータ候補を設定する処理はすなわち、学習画像処理パラメータ候補を設定する処理と同義である。
【００９０】
そして、入力画像処理パラメータ設定工程S1100では、学習・入力画像処理パラメータ評価ループL1010において評価結果の最も良い第1の学習画像処理パラメータを、適切な入力画像処理パラメータとして設定する。
【００９１】
次に、S1030で学習画像処理パラメータ候補としてMパターンを設定した後、学習画像処理パラメータ評価ループL1040によるパラメータ評価を行う。すなわち、学習・入力画像処理パラメータ評価ループL1010と同様に、様々な学習画像処理パラメータで辞書を学習し、確認画像に対して検出処理を行い、評価する。このとき、入力画像処理パラメータについては、先の入力画像処理パラメータ設定工程S1100で設定された値に固定する。そして学習画像処理パラメータ設定工程S1070では、学習画像処理パラメータ評価ループL1040において評価結果の最も良い第2の学習画像処理パラメータを適切な学習画像処理パラメータとして設定し、そのときの辞書を最適辞書として設定する。
【００９２】
●その他のパラメータ設定例2
図10Bは、入力画像処理パラメータを固定として、学習画像処理パラメータを設定する場合の処理を示すフローチャートである。
【００９３】
この場合、入力画像処理パラメータ設定工程S1100にて、予め入力画像処理パラメータが固定値として設定されるとする。そして、学習画像処理パラメータ評価ループL1040において、上記図10Aにおける同ループと同様に、入力画像処理パラメータを固定とし、学習画像処理パラメータだけを様々に変えて辞書を学習し、確認画像に対して検出処理を行い、評価する。そして学習画像処理パラメータ設定工程S1070で、学習画像処理パラメータ評価ループL1040において評価結果の最も良い学習画像処理パラメータを適切な学習画像処理パラメータとして設定し、そのときの辞書を最適辞書として設定する。
【００９４】
●その他のパラメータ設定例3
図10Cは、学習画像処理パラメータを固定として、入力画像処理パラメータを設定する場合の処理を示すフローチャートである。
【００９５】
この場合、学習画像処理パラメータ設定工程S1070にて、予め学習画像処理パラメータが固定値として設定されるとする。そして学習工程S1040で、該設定された学習画像処理パラメータを用いて学習処理が行われ、辞書が作成される。
【００９６】
そして入力画像処理パラメータ評価ループL1020では、第1実施形態と同様に、学習画像処理パラメータと辞書を固定とし、入力画像処理パラメータだけを変えて確認画像に対して検出処理を行い、評価する。入力画像処理パラメータ設定工程S1100では、入力画像処理パラメータ評価ループL1020において評価結果の最も良い入力画像処理パラメータを適切な入力画像処理パラメータとして設定する。
【００９７】
以上説明したように第6実施形態に示した方法によっても、学習画像処理パラメータおよび入力画像処理パラメータを適切に設定することができる。
【００９８】
＜他の実施形態＞
なお、上述した第1〜第6実施形態においては、ランタイム時の入力画像を確認画像として用いてもよい。そうすることで、ランタイム時の環境変化に対して、動的に適切な画像処理パラメータを適用することが可能となる。
【００９９】
また、本発明は、上述した実施形態の機能(例えば、上記の各部の処理を各工程に対応させたフローチャートにより示される処理)を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても実現できる。この場合、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が、コンピュータが読み取り可能に記憶媒体に格納されたプログラムコードを読み出し実行することにより、上述した実施形態の機能を実現する。
【図１】
2014137756.tif 000003
【図２】
2014137756.tif 000004
【図３】
2014137756.tif 000005
【図４】
2014137756.tif 000006
【図５Ａ】
2014137756.tif 000007
【図５Ｂ】
2014137756.tif 000008
【図５Ｃ】
2014137756.tif 000009
【図６】
2014137756.tif 000010
【図７】
2014137756.tif 000011
【図８】
2014137756.tif 000012
【図９】
2014137756.tif 000013
【図１０Ａ】
2014137756.tif 000014
【図１０Ｂ】
2014137756.tif 000015
【図１０Ｃ】
2014137756.tif 000016