(57)【要約】【課題】  見える大きさが著しく異なる姿勢があるような物体に対しても安定的に認識を正しく実行するための技術を提供すること。【解決手段】  物体が写っている画像から部分画像をサンプリングし、該サンプリングした部分画像に基づいて物体認識用のデータを作成する情報処理装置であって、画像において物体が占める領域のサイズを求め、該サイズに応じて画像からサンプリングする部分画像の数を制御する。【選択図】  図１
2016206909.tif 000002
【特許請求の範囲】
【請求項１】
物体が写っている画像から部分画像をサンプリングし、該サンプリングした部分画像に基づいて物体認識用のデータを作成する情報処理装置であって、
前記画像において前記物体が占める領域のサイズを求める手段と、
前記サイズに応じて前記画像からサンプリングする前記部分画像の数を制御する制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記制御手段は、
前記サイズが大きいほど前記画像からサンプリングする前記部分画像の数を増加させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
更に、
前記制御手段によって制御された数に応じてサンプリングされた部分画像を学習して、前記物体を認識するために使用する辞書を前記物体認識用のデータとして作成する手段を備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
物体が写っている画像から部分画像をサンプリングし、該サンプリングした部分画像に基づいて物体認識用のデータを作成する情報処理装置であって、
前記画像において前記物体が占める領域のサイズを求める手段と、
前記データを用いた認識処理において前記画像に対して行う投票の確率を、前記サイズに応じて制御する制御手段と
を備えることを特徴とする情報処理装置。
【請求項５】
前記制御手段は、
前記サイズが大きいほど前記確率を増加させることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
更に、
前記サンプリングされた部分画像を学習して、前記物体を認識するために使用する辞書を前記物体認識用のデータとして作成する手段を備えることを特徴とする請求項４又は５に記載の情報処理装置。
【請求項７】
更に、
入力画像におけるそれぞれの領域内の画像と前記物体認識用のデータとを用いて該入力画像に含まれている物体を認識する認識手段を備えることを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
物体が写っている画像から部分画像をサンプリングし、該サンプリングした部分画像に基づいて物体認識用のデータを作成する情報処理装置が行う情報処理方法であって、
前記情報処理装置のサイズを求める手段が、前記画像において前記物体が占める領域のサイズを求める工程と、
前記情報処理装置の制御手段が、前記サイズに応じて前記画像からサンプリングする前記部分画像の数を制御する制御工程と
を備えることを特徴とする情報処理方法。
【請求項９】
物体が写っている画像から部分画像をサンプリングし、該サンプリングした部分画像に基づいて物体認識用のデータを作成する情報処理装置が行う情報処理方法であって、
前記情報処理装置のサイズを求める手段が、前記画像において前記物体が占める領域のサイズを求める工程と、
前記情報処理装置の制御手段が、前記データを用いた認識処理において前記画像に対して行う投票の確率を、前記サイズに応じて制御する制御工程と
を備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至７の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像からの物体認識技術に関するものである。
【背景技術】
【０００２】
従来より、部分パターンを用いて物体認識を実現する情報処理方法が存在する。例えば、特許文献１のように、認識対象物体を構成する部分パターンを予め登録しておき、入力画像中に存在する部分パターンと登録された部分パターンとをマッチングして投票することで認識対象物体を認識する方法が存在する。特許文献１に記載の通り、この技術を生産ラインで用いられるワークに適用すると、対象ワークの認識・検出が実現できるようになる。例えば、バラバラに山積みされたワークの中からピッキングすべきワークを検出する際にこの技術を用いることができる。また、例えばベルトコンベア上に流れるワークに対してその位置と姿勢を認識する際にこの技術を用いることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８‐１５２５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術においては以下の課題が存在した。例えば、認識対象物体が平たい板状の物体であった場合、その姿勢によってその認識対象物体の見える大きさが著しく異なってくる。この際に、特許文献１にあるように同じ数の部分パターンを登録する情報処理方法だと、相対的に小さく見える姿勢に帰属する部分パターンの単位面積当たり登録数が相対的に大きくなっていた。その結果、相対的に小さく見える姿勢に帰属する部分パターンの投票が集中し、過度に、また、間違ってそのような姿勢を検出してしまうという課題が存在した。
【０００５】
本発明はこのような問題に鑑みてなされたものであり、見える大きさが著しく異なる姿勢があるような物体に対しても安定的に認識を正しく実行するための技術を提供する。
【課題を解決するための手段】
【０００６】
本発明の一様態は、物体が写っている画像から部分画像をサンプリングし、該サンプリングした部分画像に基づいて物体認識用のデータを作成する情報処理装置であって、前記画像において前記物体が占める領域のサイズを求める手段と、前記サイズに応じて前記画像からサンプリングする前記部分画像の数を制御する制御手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明の構成により、見える大きさが著しく異なる姿勢があるような物体に対しても安定的に認識を正しく実行することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置が行う処理のフローチャート。
【図２】情報処理装置のハードウェア構成例を示すブロック図。
【図３】学習画像の一例を示す図。
【図４】ステップＳ１０８及びステップＳ１０９の処理を説明する図。
【図５】投票面の一例を示す図。
【図６】投票処理結果を説明する図。
【図７】投票処理結果を説明する図。
【図８】投票処理結果を説明する図。
【図９】情報処理装置が行う処理のフローチャート。
【図１０】情報処理装置が行う処理のフローチャート。
【図１１】情報処理装置が行う処理のフローチャート。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１０】
［第１の実施形態］
本実施形態では、物体が写っている画像から部分画像をサンプリングし、該サンプリングした部分画像に基づいて物体認識用のデータを作成する情報処理装置であって、画像において物体が占める領域のサイズを求め、該サイズに応じて画像からサンプリングする部分画像の数を制御する情報処理装置の一例について説明する。
【００１１】
先ず、本実施形態に係る情報処理装置のハードウェア構成例について、図２のブロック図を用いて説明する。
【００１２】
ＣＰＵ２０１は、ＲＯＭ２０２やＲＡＭ２０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、情報処理装置全体の動作制御を行うと共に、情報処理装置が行うものとして後述する各処理を実行若しくは制御する。
【００１３】
ＲＯＭ２０２には、ブートプログラムや設定データなどが格納されている。
【００１４】
ＲＡＭ２０３は、ＲＯＭ２０２や２次記憶装置２０４からロードされたコンピュータプログラムやデータ、Ｉ／Ｏデバイス２０９から入力されたデータ、等を格納するためのエリアを有する。更に、ＲＡＭ２０３は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアを有する。このように、ＲＡＭ２０３は、各種のエリアを適宜提供することができる。
【００１５】
２次記憶装置２０４は、ハードディスクドライブ装置などの大容量情報記憶装置である。２次記憶装置２０４には、ＯＳ（オペレーティングシステム）２１１や、情報処理装置が行うものとして後述する各処理をＣＰＵ２０１に実行させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、モジュール２１３やアプリケーション２１２などが含まれる。また、このデータには、データ２１４が含まれている。また、２次記憶装置２０４には、以下の説明において既知の情報として取り扱う情報も保存されている。２次記憶装置２０４に保存されているコンピュータプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０３にロードされ、ＣＰＵ２０１による処理対象となる。
【００１６】
ディスプレイ２０６は、ＣＲＴや液晶画面等により構成されており、ＣＰＵ２０１による処理結果を画像や文字などでもって表示することができる装置である。なお、ディスプレイ２０６の代わりに、プロジェクタなど、ＣＰＵ２０１による処理結果を画像や文字として投影する装置を用いても構わない。
【００１７】
キーボード２０７やマウス２０８は、情報処理装置の操作者が操作することで各種の指示をＣＰＵ２０１に対して入力することができる、ユーザインターフェースとして機能する装置である。
【００１８】
Ｉ／Ｏデバイス２０９は、情報処理装置に対して様々な情報を入力する機器、様々な情報を情報処理装置から外部の装置に対して出力する機器、を含むものである。本実施形態では、Ｉ／Ｏデバイス２０９は、少なくとも、物体を含む画像を取得可能な機器を含んでいる。このような機器には、例えば、各画素の画素値が輝度値を表す２次元撮像画像を撮像する撮像装置や、各画素の画素値が該機器の距離計測範囲内の各位置までの３次元距離を表す距離画像を撮像する機器（例えば、ＴＯＦセンサ装置等の３次元入力装置）が適用可能である。
【００１９】
また例えば、Ｉ／Ｏデバイス２０９に、２台のステレオカメラを適用しても良く、その場合、該２台のステレオカメラのそれぞれは物体を含む撮像画像を撮像し、ＣＰＵ２０１は該２台のステレオカメラのそれぞれによる撮像画像を用いて三角測量技術を適用することで、該撮像画像に写っている空間の各位置までの３次元距離を求めることができ、これにより、距離画像を生成することができる。
【００２０】
また例えば、Ｉ／Ｏデバイス２０９に１台のパターン光投影装置（プロジェクタ）と１台以上の撮像装置とを適用しても良く、その場合、パターン光投影装置は、投影パターン（例えば、空間符号化画像や位相シフト法に用いられる空間的三角関数画像）を物体に投影し、撮像装置は該投影パターンが投影された物体の画像を撮像し、ＣＰＵ２０１は該画像を用いて周知の技術を適用することで、物体までの距離の計測を行うことができ、これにより、距離画像を生成することができる。また、同様の目的のために、パターン光投影装置でランダムドットパターンを物体に投影し、該物体を２台の撮像装置で撮影する方法もある。また、同様の目的のために、レーザースリット光を用いた光切断法を用いても良い。
【００２１】
また、Ｉ／Ｏデバイス２０９は、情報処理装置が後述する各処理により求めた様々な情報（例えば物体の属性や位置）を、該物体を把持するためのロボット等の外部の機器に対して送出する機器をも含む。
【００２２】
ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、２次記憶装置２０４、ディスプレイ２０６、キーボード２０７、マウス２０８、Ｉ／Ｏデバイス２０９、は何れも、バス２０５に接続されている。
【００２３】
なお、本実施形態に係る情報処理装置は、一般のＰＣ（パーソナルコンピュータ）であっても良いし、組み込みデバイス、デジタルカメラ、タブレット端末などの機器であっても良い。
【００２４】
次に、このような情報処理装置において行われる、物体を学習する学習処理（ステップＳ１０１〜Ｓ１０５）と、物体を認識する認識処理（ステップＳ１０６〜Ｓ１１１）と、について、図１のフローチャートに従って説明する。
【００２５】
＜ステップＳ１０１＞
ＣＰＵ２０１は、学習対象となる物体が写っている画像を学習画像として取得する。本実施形態では、複数の物体のそれぞれについて、該物体を様々な姿勢（方向）から撮像（測定）した画像を学習画像として取得する。以下では、「姿勢Ｐから撮像（測定）した物体」を「姿勢Ｐの物体」と呼称する場合がある。学習画像の一例を図３に示す。
【００２６】
図３（ａ）には、同じ物体（物体１と称する）をそれぞれ異なる姿勢（姿勢１，姿勢２）から撮像した撮像画像（学習画像）を示しており、図３（ａ）の左側には、姿勢１から撮像した物体１（姿勢１の物体１）の撮像画像、図３（ａ）の右側には、姿勢２から撮像した物体１（姿勢２の物体１）の撮像画像を示している。
【００２７】
図３（ｂ）には、同じ物体（物体２と称する）をそれぞれ異なる姿勢（姿勢３，姿勢４）から撮像した撮像画像（学習画像）を示しており、図３（ｂ）の左側には、姿勢３から撮像した物体２（姿勢３の物体２）の撮像画像、図３（ｂ）の右側には、姿勢４から撮像した物体２（姿勢４の物体２）の撮像画像を示している。
【００２８】
図３（ｃ）には、物体２をそれぞれ異なる姿勢（姿勢３，姿勢４）から撮像した撮像画像（学習画像）を示しており、図３（ｃ）の左側には、姿勢３から撮像した物体２の撮像画像、図３（ｃ）の右側には、姿勢４から撮像した物体２の撮像画像を示している。
【００２９】
なお、本実施形態では、物体毎に、該物体を様々な姿勢から見た画像を学習画像として取得するが、Ｎ個の異なる物体をある方向から撮像したＮ枚の画像を学習画像としてもよいし、複数種類の物体を複数の異なる方向から撮像した画像を学習画像としてもよい。
【００３０】
なお、このような学習画像は、Ｉ／Ｏデバイス２０９などを用いて予め取得して２次記憶装置２０４に保存しておき、ステップＳ１０１で、２次記憶装置２０４からＲＡＭ２０３にロードする（取得する）ものとする。しかし、学習画像の取得元は２次記憶装置２０４に限るものではなく、外部装置から取得しても構わないし、Ｉ／Ｏデバイス２０９によって逐次的に撮像した画像を学習画像として取得するようにしても構わない。
【００３１】
＜ステップＳ１０２＞
ＣＰＵ２０１は、ステップＳ１０１で取得したそれぞれの学習画像について、該学習画像中に写っている物体の領域のサイズを求める。例えば、ＣＰＵ２０１がそれぞれの学習画像をディスプレイ２０６に表示し、ユーザがキーボード２０７やマウス２０８を操作して該表示されている学習画像において物体の領域を指定すると、ＣＰＵ２０１が該指定された領域のサイズを求める。もちろん、学習画像における物体の領域を指定する方法は他にも考えられる。また、領域のサイズとは、領域が矩形である場合には、縦横サイズ（画素数）であっても良いし、領域が矩形以外の形状を有するのであれば、該領域に含まれている画素の数であっても良い。そしてＣＰＵ２０１は、それぞれの学習画像について求めた物体の領域のサイズを登録した投影面積リスト１１２を作成する。
【００３２】
なお、図１で述べている“画像”という用語は、いわゆるカメラで取得した２次元の輝度画像に限定されるものではない。例えば、３次元計測データを元に作成した距離画像でもよい。また、２次元の輝度画像とそれに対応する距離画像の組を画像として扱ってもよい。また、例えば、全く異なるモダリティとして、サーモセンサで取得した温度分布の情報を画像として扱うことも可能である。但し、どのような種類の画像であっても、物体が画像に占める領域は、ステップＳ１０２の処理のためにも特定されている必要がある。
【００３３】
＜ステップＳ１０３＞
ＣＰＵ２０１は、ステップＳ１０１で取得したそれぞれの学習画像について、投影面積リスト１１２に該学習画像について登録した領域サイズに応じて、該学習画像からサンプリングする部分画像の数を決定する。学習画像からサンプリングする部分画像は、例えば、図３（ａ）、（ｂ）に示す如く、学習画像に占める物体の領域サイズに関係なく３個（図３（ａ）の左側の学習画像からサンプリングする部分画像は部分画像３０１〜３０３の３個、図３（ａ）の右側の学習画像からサンプリングする部分画像は部分画像３０４〜３０６の３個、図３（ｂ）の左側の学習画像からサンプリングする部分画像は部分画像３０７〜３０９の３個、図３（ｂ）の右側の学習画像からサンプリングする部分画像は部分画像３１０〜３１２の３個）、とする方法もあるが、本実施形態では、図３（ｃ）に示す如く、物体の領域サイズがより大きい学習画像については、サンプリングする部分画像の数をより多くし、物体の領域サイズがより小さい学習画像については、サンプリングする部分画像の数をより少なくする。
【００３４】
図３（ｃ）（図３（ｂ））に示した物体２は板状の物体であり、その観察する方向によっては見える面積が大きく異なる。図３（ｃ）（図３（ｂ））の場合、姿勢３の物体２が学習画像に占める領域のサイズは、姿勢４の物体２が学習画像に占める領域のサイズよりも大きい（約５倍）。然るに図３（ｃ）では、図３（ｃ）の左側の学習画像からサンプリングする部分画像の数（＝５）を、図３（ｃ）の右側の学習画像からサンプリングする部分画像の数（＝１）の５倍としている。
【００３５】
なお、「物体の領域サイズがより大きい学習画像については、サンプリングする部分画像の数をより多くし、物体の領域サイズがより小さい学習画像については、サンプリングする部分画像の数をより少なくする」、という条件に基づいて、それぞれの学習画像に対する部分画像のサンプリング数を決定するのであれば、その決定方法は特定の決定方法に限るものではない。例えば、一番単純なアルゴリズムは、１枚の学習画像からサンプリングする平均サンプリング数をユーザがキーボード２０７やマウス２０８を操作して入力しておき、上記領域サイズに比例して該平均サンプリング数を増減させることで各学習画像におけるサンプリング数を決定するアルゴリズムである。
【００３６】
また、上記の条件は、換言すれば、「部分画像のサンプリング数が、各学習画像における物体の領域サイズの単調増加関数である」ということになる。然るに、例えば、上記の領域サイズの２乗に比例してサンプリング数を決定するアルゴリズムを用いてもよいし、領域サイズの閾値を予め設定しておき、領域サイズが閾値より小さい場合と大きい場合とで、比例定数が異なるような傾きが不連続になるような関数を用いても良い。
【００３７】
また、部分画像のサンプリング位置については特定の位置に限るものではなく、学習画像からランダムに部分画像をサンプリングしても良いし、格子状に規則的な位置から部分画像をサンプリングしても良い。
【００３８】
そしてＣＰＵ２０１は、それぞれの学習画像について決定した部分画像の数を登録したサンプリング数リスト１１３を作成する。
【００３９】
＜ステップＳ１０４＞
ＣＰＵ２０１は、ステップＳ１０１で取得したそれぞれの学習画像から、サンプリング数リスト１１３において該学習画像について登録されているサンプリング数に応じた部分画像をサンプリングし、該サンプリングした部分画像の特徴量と、該学習画像における基準位置からの該部分画像の相対位置と、を関連づけて学習部分画像セット１１４に登録する。
【００４０】
部分画像の特徴量とは、該部分画像から直接的に取得した情報であっても良いし、該部分画像から取得した情報に基づいて新たに算出した情報であっても良い。例えば、部分画像の特徴量は、該部分画像に含まれるそれぞれの画素の画素値（輝度値）であっても良いし、該部分画像におけるＳＩＦＴ等、高度な特徴抽出アルゴリズムを適用した結果としての特徴量であっても良い。
【００４１】
また、学習画像における基準位置とは、該学習画像における物体の領域内の何れかの位置であり、物体の領域の中心位置や重心位置であってもよいし、物体の領域の枠部における何れかの位置であっても良い。
【００４２】
＜ステップＳ１０５＞
ＣＰＵ２０１は、学習部分画像セット１１４を用いて学習処理を行うことで、それぞれの学習画像に含まれている物体を認識するための辞書１１５を作成する。辞書１１５には、学習の結果だけでなく、学習部分画像セット１１４と同様に、部分画像の特徴量と、学習画像における基準位置からの該部分画像の相対位置と、が関連づけて登録される。なお、辞書１１５の別の実装形態としては、辞書１１５が、学習部分画像セット１１４に含まれている各要素へのポインタを保持するようにしても構わない。
【００４３】
なお、ステップＳ１０５における学習処理で用いる学習アルゴリズムとしては特許第５５３８９６７号公報で開示されているような分類木を用いた学習アルゴリズムが望ましいが、サポートベクターマシーン、ブースティング、ニューラルネット（ディープラーニング）等の機械学習アルゴリズムであれば、どの学習アルゴリズムを採用しても構わない。
【００４４】
＜ステップＳ１０６＞
ＣＰＵ２０１は、認識対象物体が写っている画像を、入力画像として取得する。入力画像の取得方法は、学習画像と同様、如何なる取得方法を採用しても構わないが、学習画像と同様の形式の画像である必要がある。すなわち、学習画像が、各画素の画素値が輝度値を表す２次元撮像画像であれば、入力画像も同様の２次元撮像画像である必要があるし、学習画像が距離画像であれば、入力画像も距離画像である必要がある。
【００４５】
＜ステップＳ１０７＞
ＣＰＵ２０１は、入力画像上に規定サイズ（上記の部分画像と同サイズであることが好ましい）のウィンドウを設定し、該設定したウィンドウ内の画像を認識用部分画像（部分画像１１６）として抽出する。以降、ウィンドウを入力画像の左上隅の位置から右下隅の位置までラスタスキャン順に移動させながら該ウィンドウ内の画像を認識用部分画像として抽出する。もちろん、入力画像上でウィンドウを移動させる順序はラスタスキャン順に限るものではない。
【００４６】
＜ステップＳ１０８＞
ＣＰＵ２０１は、辞書１１５と、ステップＳ１０７で抽出した認識用部分画像と、を用いて認識処理を行い、該認識用部分画像に写っているものが、ステップＳ１０１〜Ｓ１０５で学習した物体のうち何れの物体であるのかを認識する。より具体的には、ＣＰＵ２０１は、ステップＳ１０７で抽出した認識用部分画像から特徴量を抽出し、辞書１１５に登録されている特徴量群のうち、該抽出した特徴量と一致若しくは最も類似する特徴量を特定する。これにより、ステップＳ１０７で抽出した認識用部分画像に写っているものが、該特定した特徴量の抽出元となる学習画像に写っている物体であると認識することができる。
【００４７】
＜ステップＳ１０９＞
ＣＰＵ２０１は、ステップＳ１０８における認識処理の結果に基づいて投票処理を行う。
【００４８】
ステップＳ１０８及びステップＳ１０９の処理について、図４を用いて説明する。ステップＳ１０６において入力画像４０１を取得したとする。この入力画像４０１には、姿勢１の物体１（物体４０４）と姿勢２の物体１（物体４０５）とが写っている。
【００４９】
ここで、ステップＳ１０７におけるウィンドウ設定処理を繰り返して行うことで入力画像４０１上をラスタスキャン順で移動するウィンドウがウィンドウ４１２に到達したとする。このとき、ウィンドウ４１２内の認識用部分画像は、図３の部分画像３０１と同じである（すなわち、ウィンドウ４１２内の認識用部分画像の特徴量と部分画像３０１の特徴量とは一致する若しくは最も類似する）ため、ステップＳ１０８における認識処理では、ウィンドウ４１２内の認識用部分画像は、図３（ａ）の左側の物体１であると認識する。このとき、ＣＰＵ２０１は、図３（ａ）の左側の物体１用の投票面に対する投票処理を行う。
【００５０】
投票面とは、入力画像と同じ解像度を有する配列であり、初期状態では配列の全ての要素は０に初期化されている。然るに、ウィンドウ４１２内の認識用部分画像の特徴量と部分画像３０１の特徴量とが一致する若しくは最も類似する場合、入力画像４０１上のウィンドウ４１２の位置Ｐに対応する「図３（ａ）の左側の物体１用の投票面４０２」上の位置Ｑを特定し、該特定した位置Ｑに、「部分画像３０１の特徴量と関連づけて辞書１１５に登録されている相対位置」を加えた位置４１０（すなわち姿勢１の物体１の基準位置に対応する投票面４０２上の位置）における要素の要素値（投票値）をインクリメントする（投票する）。
【００５１】
また、ステップＳ１０７におけるウィンドウ設定処理を繰り返して行うことで入力画像４０１上をラスタスキャン順で移動するウィンドウがウィンドウ４１３に到達したとする。このとき、ウィンドウ４１３内の認識用部分画像は、図３の部分画像３０４と同じである（すなわち、ウィンドウ４１３内の認識用部分画像の特徴量と部分画像３０４の特徴量とは一致する若しくは最も類似する）ため、ステップＳ１０８における認識処理では、ウィンドウ４１３内の認識用部分画像は、図３（ａ）の右側の物体１であると認識する。このとき、ＣＰＵ２０１は、図３（ａ）の右側の物体１用の投票面に対する投票処理を行う。すなわち、入力画像４０１上のウィンドウ４１３の位置Ｐに対応する「図３（ａ）の右側の物体１用の投票面４０３」上の位置Ｑを特定し、該特定した位置Ｑに、「部分画像３０４の特徴量と関連づけて辞書１１５に登録されている相対位置」を加えた位置４１１（すなわち姿勢２の物体１の基準位置に対応する投票面４０３上の位置）における要素の要素値（投票値）をインクリメントする（投票する）。
【００５２】
図４では、投票面４０２及び投票面４０３と、入力画像４０１中の物体４０４，４０５と、の関係を分かりやすくするために、投票面４０２上に物体４０４，４０５のそれぞれに対応する領域４０６，４０７、投票面４０３上に物体４０４，４０５のそれぞれに対応する領域４０８，４０９、を記している。
【００５３】
＜ステップＳ１１０＞
ＣＰＵ２０１は、ウィンドウを入力画像の全域にわたって移動させたのか否かを判断する。例えば、ウィンドウを入力画像の左上隅の位置から右下隅の位置までラスタスキャン順に移動させる場合、ウィンドウの現在位置が入力画像の右下隅の位置であるか否かを判断する。この判断の結果、ウィンドウを入力画像の全域にわたって移動させた（上記の例では、ウィンドウの現在位置が入力画像の右下隅の位置である）場合には、処理はステップＳ１１１に進み、未だウィンドウを入力画像の全域にわたって移動させていない（上記の例では、ウィンドウの現在位置が未だ入力画像の右下隅の位置に達していない）場合には、処理はステップＳ１０７に戻り、ウィンドウを移動させてから該ウィンドウ内の画像を認識用部分画像として抽出する。
【００５４】
＜ステップＳ１１１＞
ＣＰＵ２０１は、それぞれの投票面について、該投票面における各要素値のうち最大の要素値の位置Ｒを特定する。投票面の解像度を入力画像の解像度と同じにした場合、例えば、投票面４０２における各要素値のうち最大の要素値の位置Ｒを特定すると、「入力画像における位置Ｒには姿勢１の物体１が位置している」と特定することができ、入力画像上の物体の識別結果とその位置の両方を識別することができる。
【００５５】
図１のフローチャートに従った処理が完了した結果得られる投票面４０２、４０３の一例を、それぞれ図５（ａ）、（ｂ）に示す。図５では、投票面４０２，４０３は何れも５×８の要素を有するものであるとしており、投票面４０２，４０３は、入力画像よりも小さい解像度の配列となっている。また、各要素に記されている数値は投票値を表しており、数値が記されていない要素の投票値は０である。なお、投票値は、実際は実数（浮動小数点変数）であって、もっと大きな値となるが、説明を簡単にするために整数で便宜的な表現をしている。
【００５６】
投票面の解像度を入力画像の解像度と同一とすると、非０を要素値として有する要素が存在する場所がスパースになるので、通常、ある程度の面積のある領域をまとめて投票ビンとして扱う。投票ビンの量子化が粗い場合、投票値は大きくなりロバストになるが、認識対象物体の検出位置精度が悪くなる。一方、投票ビンの量子化が細かい場合、検出位置を特定するための解像度は高くなるが、投票値が小さくなり、認識用部分画像の認識誤差に由来するノイズの影響を受けやすくなる。投票ビンの具体的な量子化サイズは認識対象物体の大きさと求められる検出位置精度を勘案して決定することになる。図４の説明で“投票”という文言で説明した処理は、実際はこの投票面のそれぞれ対応するビンの値（プログラムデータ構造としては２次元配列、もしくは行列の値）に加算することに相当する。
【００５７】
然るに、例えば、投票面４０２が５×８の要素から成る場合、「投票面４０２において位置４１０に対応する要素の投票値をインクリメントする」とは、入力画像を５×８のサブ領域に分割した場合に、位置４１０がどのサブ領域に属しているのかを特定し、該特定したサブ領域と位置的に対応する投票面４０２の要素の要素値をインクリメントする、ことになる。これは投票面４０３についても同様である。
【００５８】
図５の例では、投票面４０２では、要素５０１の要素値が最大の投票値となっているため、投票面４０２における要素５０１の位置が、投票面４０２における姿勢１の物体１の位置、であることになる。また、投票面４０３では、要素５０２の要素値が最大の投票値となっているため、投票面４０３における要素５０２の位置が、投票面４０３における姿勢２の物体１の位置、であることになる。
【００５９】
なお、図５では、投票面４０２に対する投票の結果、物体４０４の領域内だけではなく物体４０５の領域内にも投票が行われており、同様に、投票面４０３に対する投票の結果、物体４０５の領域内だけではなく物体４０４の領域内にも投票が行われているが、これは、部分的にみると、物体４０４と物体４０５とに似ている構造が存在するためである。
【００６０】
ここで、物体２に対して図３（ｂ）に示したように、学習画像における物体２の領域サイズに関係なく、部分画像のサンプリング数を固定数（＝３）とした場合における投票処理の結果について、図６，７を例にとり説明する。
【００６１】
ステップＳ１０６において図６の入力画像６０１を取得したとする。この入力画像６０１には、姿勢３の物体２（物体６０４）と姿勢４の物体２（物体６０５）とが写っている。
【００６２】
ステップＳ１０７におけるウィンドウ設定処理を繰り返して行うことで入力画像６０１上をラスタスキャン順で移動するウィンドウがウィンドウ６１２に到達したとする。このとき、正しくは、ウィンドウ６１２内の認識用部分画像は、図３の部分画像３０８と同じである（すなわち、ウィンドウ６１２内の認識用部分画像の特徴量と部分画像３０８の特徴量とは一致する若しくは最も類似する）のであるが、部分画像３０９の特徴量とも類似していることから、図６に示す如く、部分画像３０９の特徴量と一致する若しくは最も類似すると誤認しており、その結果、入力画像６０１上のウィンドウ６１２の位置Ｐに対応する「姿勢３の物体２用の投票面６０２」上の位置Ｑに「部分画像３０９の特徴量と関連づけて辞書１１５に登録されている相対位置」を加えた位置６１０に対応する要素の要素値（投票値）がインクリメントされている。
【００６３】
これに対し、ステップＳ１０７におけるウィンドウ設定処理を繰り返して行うことで入力画像６０１上をラスタスキャン順で移動するウィンドウがウィンドウ６１３に到達した場合には、入力画像６０１上のウィンドウ６１３の位置Ｐに対応する「姿勢４の物体２用の投票面６０３」上の位置Ｑに「部分画像３１０の特徴量と関連づけて辞書１１５に登録されている相対位置」を加えた位置６１１に対応する要素の要素値（投票値）がインクリメントされており、正しく投票がなされている。
【００６４】
そして、投票処理が完了した結果得られる投票面６０２，６０３の一例を、それぞれ図７（ａ）、（ｂ）に示す。図５と同様、投票面６０２，６０３は何れも５×８の要素を有するものであるとしており、入力画像よりも小さい解像度の配列となっている。また、各要素に記されている数値は投票値を表しており、数値が記されていない要素の投票値は０である。
【００６５】
投票面６０２における投票値は、投票面６０３と比べて分散している。これは、認識用部分画像に写っているものがステップＳ１０１〜Ｓ１０５で学習した物体のうち何れの物体であるのかの認識精度が、姿勢３の物体２の方が姿勢４の物体２よりも悪いためである。一般に、平たい部分をより多く含む認識用部分画像の認識精度は低いことになる。
【００６６】
そして、図７（ａ）、（ｂ）のそれぞれの投票面６０２，６０３を用いて姿勢３の物体２の位置、姿勢４の物体２の位置を確定する場合、図７（ａ）においては姿勢３の物体２の位置は要素７０１の位置、図７（ｂ）においては姿勢４の物体２の位置は要素７０３の位置、となる。ここで、図７（ｂ）の要素７０３の投票値が大きいことは、図６における物体６０５の位置から見ても正しいが、要素７０２の投票値が大きいことは、図６における物体６０５の位置から見ても間違っており、誤検出となっている。そして、要素７０２の要素値は要素７０１の要素値よりも大きい。もし、近隣位置で複数姿勢検出結果を制限するアルゴリズムをステップＳ１１１で採用すると、要素７０２の要素値が要素７０１の要素値を抑制してしまい、姿勢４の物体２の位置として要素７０２の位置と要素７０３の位置が検出されてしまう。
【００６７】
次に、物体２に対して図３（ｃ）に示したように、学習画像における物体２の領域サイズに応じて部分画像のサンプリング数を制御した場合における投票処理の結果を図８に示す。図８（ａ）、（ｂ）はそれぞれ、ステップＳ１０６において図６の入力画像６０１を取得して図１のフローチャートに従った処理を行ったことで得られる、姿勢３の物体２用の投票面、姿勢４の物体２用の投票面、の一例を示す。図５と同様、投票面は何れも５×８の要素を有するものであるとしており、入力画像よりも小さい解像度の配列となっている。また、各要素に記されている数値は投票値を表しており、数値が記されていない要素の投票値は０である。
【００６８】
上記の通り、図３（ｃ）の左側の学習画像からサンプリングする部分画像の数（＝５）を、図３（ｃ）の右側の学習画像からサンプリングする部分画像の数（＝１）の５倍としているため、図８からも明らかなように、図８（ａ）の投票面における投票値は図７（ａ）の投票面における投票値と比べても相対的に大きくなっており、図８（ｂ）の投票面における投票値は図７（ｂ）の投票面における投票値と比べても相対的に小さくなっている。その結果、要素８０１の要素値は要素８０２の要素値よりも大きな値となっている
ここで、図８（ａ）、（ｂ）のそれぞれの投票面において極大値をとる投票値の要素は要素８０１，８０２，８０３となっているが、図７とは違い、要素８０１の投票値の方が、要素８０２の投票値よりも大きくなっている。この場合、図７で説明したのと同様に、近隣位置での複数姿勢検出の抑制をしたとすると、要素８０１の投票値が要素８０２の投票値を凌駕して、最終的な結果として、姿勢３の物体２の位置として要素８０１の位置、姿勢４の物体２の位置として要素８０３の位置、が検出されることになる。
【００６９】
このように、本実施形態によれば、学習画像における物体の領域サイズに応じて部分画像のサンプリング数を制御することによって、情報量の多い、すなわち領域サイズの大きい物体には多くの投票がされるようになる。一方、情報量の少ない、すなわち領域サイズの小さい物体には少ない投票がされるようになり、たとえ領域サイズの小さい物体を構成する部分画像の峻別性が高くても誤検出が発生しにくくなる。
【００７０】
なお、本実施形態では、投票は要素単位で行っていたが、それに限るものではなく、上記のようにして投票先の要素が決まった場合には、該要素を中心とする周囲の要素にも投票するようにしても構わない。その場合、該中心となる要素からの距離が離れている周囲要素ほどインクリメント量を小さくする。例えば２次元ガウス分布で投票点をぼかして投票してもよい。
【００７１】
［第２の実施形態］
第１の実施形態では、学習画像における物体の領域サイズに応じて部分画像のサンプリング数を制御した。これに対し、本実施形態では、部分画像のサンプリング数は全ての学習画像で同じとするが、投票は、学習画像における物体の領域サイズに応じた確率で行うものとする。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００７２】
すなわち、本実施形態では、物体が写っている画像から部分画像をサンプリングし、該サンプリングした部分画像に基づいて物体認識用のデータを作成する情報処理装置であって、画像において物体が占める領域のサイズを求め、該データを用いた認識処理において画像に対して行う投票の確率を、該サイズに応じて制御する情報処理装置の一例について説明する。
【００７３】
本実施形態では、情報処理装置は、図９のフローチャートに従った処理を行う。図９において、図１に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００７４】
＜ステップＳ９０３＞
ＣＰＵ２０１は、ステップＳ１０１で取得したそれぞれの学習画像について、投影面積リスト１１２に該学習画像について登録した領域サイズに応じて投票確率を決定する。すなわち、物体の領域サイズがより大きい学習画像については投票確率をより高くし、物体の領域サイズがより小さい学習画像については投票確率をより小さくする。領域サイズと投票確率との関係がこのような関係を維持しているのであれば、領域サイズに応じて投票確率を決定する方法は特定の方法に限らない。そしてＣＰＵ２０１は、それぞれの学習画像について決定した投票確率を登録した投票確率リスト９１３を作成する。
【００７５】
そしてステップＳ９０４では、部分画像のサンプリング数がそれぞれの学習画像について同じであること以外は、ステップＳ９０４，Ｓ９０５ではそれぞれ上記のステップＳ１０４，Ｓ１０５と同様の処理を行う。
【００７６】
＜ステップＳ９０９＞
ＣＰＵ２０１は、基本的には上記のステップＳ１０９における投票処理と同様の処理を行うのであるが、その際、必ず投票する（要素値をインクリメントする）のではなく、投票確率に応じた確率でもって投票する。
【００７７】
例えば、ステップＳ１０７におけるウィンドウ設定処理を繰り返して行うことで入力画像４０１上をラスタスキャン順で移動するウィンドウがウィンドウ４１２に到達したとすると、上記の通り、図３（ａ）の左側の物体１用の投票面に対する投票を行うのであるが、このとき、この投票は必ず行われるのではなく、図３（ａ）の左側の物体１の学習画像について投票確率リスト９１３に登録されている投票確率でもって投票を行う。例えば、ある学習画像に対応する投票確率が０．８の場合、該学習画像用の投票面には、１０回に８回の割合でもって投票が行われるようにする。この結果、図８で示した投票面のような投票結果が得られ、領域サイズの著しく異なる学習画像を用いてもロバストな物体検出が実現できる。
【００７８】
［第３の実施形態］
第１，２の実施形態では、学習画像における部分画像に基づいて学習処理を行って辞書を作成するのであるが、本実施形態では、このような学習処理は行わずに、サンプリングした部分画像を準備するだけである。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００７９】
本実施形態では、情報処理装置は、図１０のフローチャートに従った処理を行う。なお、図１０において、図１に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００８０】
＜ステップＳ１００１＞
ＣＰＵ２０１は、複数の物体のそれぞれについて、該物体を様々な姿勢（方向）から撮像（測定）した画像を登録画像として取得する。すなわち、ステップＳ１００１では、上記のステップＳ１０１で取得していた学習画像と同じものを登録画像として取得する。
【００８１】
＜ステップＳ１００２＞
ＣＰＵ２０１は、ステップＳ１００１で取得したそれぞれの登録画像について、該登録画像中に写っている物体の領域のサイズを求める。本ステップにおける処理は、対象とする画像が学習画像ではなく登録画像（何れも名称が異なるだけで同じ画像）であるだけで、実質的な処理は上記のステップＳ１０２と同じである。そしてＣＰＵ２０１は、投影面積リスト１１２と同様の投影面積リスト１０１１を作成する。
【００８２】
＜ステップＳ１００３＞
ＣＰＵ２０１は、ステップＳ１００１で取得したそれぞれの登録画像について、投影面積リスト１０１１に該登録画像について登録した領域サイズに応じて、該登録画像からサンプリングする部分画像の数を決定する。本ステップにおける処理は、対象とする画像が学習画像ではなく登録画像（何れも名称が異なるだけで同じ画像）であるだけで、実質的な処理は上記のステップＳ１０３と同じである。そしてＣＰＵ２０１は、サンプリング数リスト１１３と同様のサンプリング数リスト１０１２を作成する。
【００８３】
＜ステップＳ１００４＞
ＣＰＵ２０１は、ステップＳ１００１で取得したそれぞれの登録画像から、サンプリング数リスト１０１２において該登録画像について登録されているサンプリング数に応じた部分画像をサンプリングし、該サンプリングした部分画像と、該登録画像における基準位置からの該部分画像の相対位置と、を関連づけて登録部分画像セット１０１３に登録する。
【００８４】
＜ステップＳ１００７＞
ＣＰＵ２０１は、ステップＳ１０７で抽出した認識用部分画像と、登録部分画像セット１０１３に登録されているそれぞれの部分画像と、のマッチングを行うことで、登録部分画像セット１０１３に登録されているそれぞれの部分画像のうち、該認識用部分画像と一致若しくは最も類似する部分画像を特定する。これにより、ステップＳ１０７で抽出した認識用部分画像に写っているものが、該特定した部分画像のサンプリング元となる登録画像に写っている物体であると認識することができる。
【００８５】
＜ステップＳ１００８＞
ＣＰＵ２０１は、ステップＳ１００７における認識処理の結果に基づいて投票処理を行う。この投票処理は、基本的には上記のステップＳ１０９と同様の処理である。
【００８６】
また、ステップＳ１００９，Ｓ１０１０ではそれぞれ上記のステップＳ１１０，Ｓ１１１と同様の処理を行う。以上の処理の結果、図８で示した投票面のような投票結果が得られ、領域サイズの著しく異なる登録画像を用いてもロバストな物体検出が実現できる。
【００８７】
［第４の実施形態］
本実施形態では、第３の実施形態をベースにしており、その上で、第２の実施形態のように、サンプリング数リストは作成せずに投票確率リストを作成する。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１に実施形態と同様であるものとする。本実施形態では、情報処理装置は、図１１のフローチャートに従った処理を行う。図１１において、図１に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００８８】
＜ステップＳ１１０３＞
ＣＰＵ２０１は、ステップＳ１００１で取得したそれぞれの登録画像について、投影面積リスト１０１１に該登録画像について登録した領域サイズに応じて投票確率を決定する。すなわち、物体の領域サイズがより大きい登録画像については投票確率をより高くし、物体の領域サイズがより小さい登録画像については投票確率をより小さくする。そしてＣＰＵ２０１は、それぞれの登録画像について決定した投票確率を登録した投票確率リスト１１１２を作成する。
【００８９】
このように、本実施形態によれば、図８で示した投票面のような投票結果が得られ、領域サイズの著しく異なる登録画像を用いてもロバストな物体検出が実現できる。なお、以上説明した各実施形態はその一部若しくは全部を適宜組み合わせて使用しても構わない。
【００９０】
また、上記の各実施形態では、１つの装置内で物体認識用のデータの作成処理と、物体認識処理と、の両方を行うようにしたが、それぞれの処理を別個の装置で行うようにしても構わない。
【００９１】
また、上記の各実施形態では、学習画像ごとに投票面を設けたが、全ての学習画像について共通の投票面を用いるようにしても構わない。その際、投票面における各要素には、様々な学習画像に対する投票値を管理する。
【００９２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９３】
１０１：ＣＰＵ
【図１】
2016206909.tif 000003
【図２】
2016206909.tif 000004
【図３】
2016206909.tif 000005
【図４】
2016206909.tif 000006
【図５】
2016206909.tif 000007
【図６】
2016206909.tif 000008
【図７】
2016206909.tif 000009
【図８】
2016206909.tif 000010
【図９】
2016206909.tif 000011
【図１０】
2016206909.tif 000012
【図１１】
2016206909.tif 000013