(57)【要約】【課題】画像中のオブジェクトの位置および回転角度の検出時間を削減する。【解決手段】参照オブジェクトモデルを用いた投票により画像からオブジェクトを検出するオブジェクト検出装置において、オブジェクトモデルの代表点を中心としてオブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を参照オブジェクトモデルとして記憶する記憶部２０と、画像の輪郭を抽出する輪郭抽出部３３と、記憶部２０から読み出した前記参照オブジェクトモデルの座標値と、前記画像の輪郭における点の座標値と、に基づき算出した座標値に対して投票を行ってその積算値である投票数を算出する投票数算出部３６と、算出した座標値から、投票数が所定の閾値を超える算出した座標値を抽出する位置抽出部３７と、を備える。【選択図】図２
2011227696.tif 000002
【特許請求の範囲】
【請求項１】
参照オブジェクトモデルを用いた投票により画像からオブジェクトを検出するオブジェクト検出装置において、
オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を前記参照オブジェクトモデルとして記憶する記憶部と、
前記画像の輪郭を抽出する輪郭抽出部と、
前記記憶部から読み出した前記参照オブジェクトモデルの座標値と、前記画像の輪郭における点の座標値と、に基づき算出した変換座標値に対して投票を行ってその積算値である投票数を算出する投票数算出部と、
前記変換座標値から、前記投票数が所定の閾値を超える座標値を抽出する位置抽出部と、
を備えることを特徴とするオブジェクト検出装置。
【請求項２】
前記記憶部は、前記特徴点ごとの投票加算数を前記特徴点の座標値に関連付けて前記参照オブジェクトモデルとして記憶し、
前記投票数算出部は、前記変換座標値に対して前記投票加算数による投票を行ってその積算値である投票数を算出することを特徴とする請求項１に記載のオブジェクト検出装置。
【請求項３】
前記記憶部は、角度ごとの前記オブジェクトモデルの特徴点の座標値を更に記憶し、
前記投票数算出部は、前記検出した画像の輪郭における点のうち、前記位置抽出部が抽出した前記変換座標値に含まれる点を輪郭抽出点として抽出し、前記記憶部から読み出した前記回転オブジェクトモデルの特徴点の座標値と、前記輪郭抽出点の座標値と、に基づき算出した算出座標値を算出し、前記角度毎に設けた座標空間における前記算出座標値に対して投票を行ってその積算値である投票数を算出し、
前記位置抽出部は前記座標空間毎に算出された投票数が所定の閾値を越えるかまたは最大値となる前記算出座標値と前記角度との組み合わせを抽出することを特徴とする請求項１または請求項２に記載のオブジェクト検出装置。
【請求項４】
参照オブジェクトモデルを用いた投票により画像からオブジェクトを検出するオブジェクト検出方法において、
前記画像の輪郭を抽出する輪郭抽出ステップと、
オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を前記参照オブジェクトモデルとして記憶した記憶部から、前記参照オブジェクトモデルの座標値を読み出して、前記参照オブジェクトモデルの座標値と、前記画像の輪郭における点の座標値と、に基づき算出した変換座標値に対して投票を行ってその積算値である投票数を算出する候補座標投票ステップと、
前記変換座標値から、前記投票数が所定の閾値を超える座標値を抽出する位置抽出ステップと、
を有することを特徴とするオブジェクト検出方法。
【請求項５】
オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を前記参照オブジェクトモデルとして記憶する記憶部を備えたコンピューターを、
前記画像の輪郭を抽出する輪郭抽出部と、
前記記憶部から読み出した前記参照オブジェクトモデルの座標値と、前記画像の輪郭における点の座標値と、に基づき算出した変換座標値に対して投票を行ってその積算値である投票数を算出する投票数算出部と、
前記変換座標値から、前記投票数が所定の閾値を超える座標値を抽出する位置抽出部と、
として機能させるためのオブジェクト検出プログラム。
【請求項６】
参照オブジェクトモデルを用いた投票により画像からオブジェクトを検出するロボットにおいて、
物体を撮像して撮像信号を生成する撮像部と、
前記撮像部を取り付けたハンド部と、
前記ハンド部を可動自在に取り付けたアーム部と、
オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を前記参照オブジェクトモデルとして記憶する記憶部と、
前記撮像部が生成した撮像信号の供給を受けて画像を取得する画像取得部と、
前記画像の輪郭を抽出する輪郭抽出部と、
前記記憶部から読み出した前記参照オブジェクトモデルの座標値と、前記画像の輪郭における点の座標値と、に基づき算出した変換座標値に対して投票を行ってその積算値である投票数を算出する投票数算出部と、
前記変換座標値から、前記投票数が所定の閾値を超える座標値を抽出する位置抽出部と、
を備えることを特徴とするロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト検出装置、オブジェクト検出方法、オブジェクト検出プログラム、およびロボットに関する。
【背景技術】
【０００２】
撮像装置などから入力される入力画像から、予め登録された参照オブジェクトの位置（二次元座標系における位置座標）、回転角およびスケーリングファクターなどを検出する検出方法として、相関法、フーリエ記述子法、モーメント法、ハフ変換法などが知られている。これらいずれの検出方法においても、登録された参照オブジェクトの特徴点は予め抽出され登録されている。
【０００３】
これらの検出方法を適用したオブジェクト検出装置は、入力画像から認識対象オブジェクトの特徴点を抽出し、この抽出した特徴点と予め登録されている特徴点とを用いて、入力画像内における登録画像に対応したオブジェクトの位置、登録画像に対する姿勢、およびスケーリングファクターを算出する。その算出の際、単純な多数決の原理に基づく投票を行って、物体の位置と角度を検出する。
【０００４】
ここで、相関法における投票処理について説明する。まず、オブジェクト検出装置は、入力画像中の画像の輪郭を表す画素において、参照オブジェクトの代表点に対する特徴点の座標値に、画像の輪郭を表す画素の座標を加算した座標値へ変換する。そして、オブジェクト検出装置は、その加算した座標値に対し、投票を行ってその積算値である投票数を、所定の数だけ増加させる。オブジェクト検出装置は、以上の処理を、全ての輪郭を表す画素について行う。そして、オブジェクト検出装置は、投票数が最大である加算した座標値を抽出し、その加算した座標値をオブジェクトの位置に決定する。
【０００５】
また、オブジェクト検出装置は、予め登録された所定の角度で回転された参照オブジェクトの代表点に対する特徴点の座標を用いて、オブジェクトの角度を算出する。その際、オブジェクト検出装置は、画像の輪郭を表す画素において、参照オブジェクトの角度毎に登録された座標値に、画像の輪郭における点の座標値を加算した座標値を算出する。そして、オブジェクト検出装置は、その加算した座標値の投票数を増加させる。しかしながら、これら一連の投票処理は演算量が多く、多大な演算処理時間を要していた。
【０００６】
そこで、物体の位置および角度の検出の速度向上のため、入力画像の特徴点を減らす方法が開示されている（例えば、特許文献１参照）。特許文献１に記載のオブジェクト検出装置は、まず、一定の回転角度刻みの粗サーチとしてハフ変換法を実行し、投票数の多い順に候補画素を選択する。次に、オブジェクト検出装置は、粗サーチにおける刻み角度よりも小さな回転角度で、ハフ変換法の再投票を行うものである。これにより、この特許文献に記載のオブジェクト検出装置は、投票処理の計算量を少なくしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−９７３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に開示されたオブジェクト検出装置は、粗サーチにおいて、一定の回転角度刻みで投票処理しなくてはならず、依然として計算量が多いという問題があった。
【０００９】
そこで、本発明は上記問題に鑑みてなされたものであり、物体の位置および回転角度の検出時間を削減したオブジェクト検出装置、オブジェクト検出方法、オブジェクト検出プログラム、およびロボットを提供することを目的とする。
【課題を解決するための手段】
【００１０】
［１］上記の課題を解決するため、本発明の一態様であるオブジェクト検出装置は、参照オブジェクトモデルを用いた投票により画像からオブジェクトを検出するオブジェクト検出装置において、オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を前記参照オブジェクトモデルとして記憶する記憶部と、前記画像の輪郭を抽出する輪郭抽出部と、前記記憶部から読み出した前記参照オブジェクトモデルの座標値と、前記画像の輪郭における点の座標値と、に基づき算出した変換座標値に対して投票を行ってその積算値である投票数を算出する投票数算出部と、前記変換座標値から、前記投票数が所定の閾値を超える座標値を抽出する位置抽出部と、を備えることを特徴とする。
本発明の一態様によれば、オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を参照オブジェクトモデルとして用いてオブジェクトを検出する。すなわち、オブジェクトモデルの特徴点座標値を回転角度ごとに有さない参照オブジェクトモデルを用いるものである。よって、オブジェクトモデルの回転角度ごとに投票処理を行わないため、処理にかかる時間を短縮することができる。
【００１１】
［２］上記［１］記載のオブジェクト検出装置において、前記記憶部は、前記特徴点ごとの投票加算数を前記特徴点の座標値に関連付けて前記参照オブジェクトモデルとして記憶し、前記投票数算出部は、前記変換座標値に対して前記投票加算数による投票を行ってその積算値である投票数を算出することを特徴とする。
この構成によれば、オブジェクトの特徴点毎に決められた投票加算数を、変換後の座標値に対して投票することができ、すなわち、特徴点に重み付けをつけることができる。従って、投票数のダイナミックレンジを広げることができ、ロバスト性の高いオブジェクト検出を行うことができる。
【００１２】
［３］上記［１］または［２］に記載のオブジェクト検出装置において、前記記憶部は、角度ごとの前記オブジェクトモデルの特徴点の座標値を更に記憶し、前記投票数算出部は、前記検出した画像の輪郭における点のうち、前記位置抽出部が抽出した前記変換座標値に含まれる点を輪郭抽出点として抽出し、前記記憶部から読み出した前記回転オブジェクトモデルの特徴点の座標値と、前記輪郭抽出点の座標値と、に基づき算出した算出座標値を算出し、前記角度毎に設けた座標空間における前記算出座標値に対して投票を行ってその積算値である投票数を算出し、前記位置抽出部は前記座標空間毎に算出された投票数が所定の閾値を越えるかまたは最大値となる前記算出座標値と前記角度との組み合わせを抽出することを特徴とする。
この構成によれば、検出した画像の輪郭における点のうち、位置抽出部が抽出した変換座標値に含まれる点を輪郭抽出点として抽出するので、画像の輪郭における点を絞り込むことができる。投票を行う対象である座標値がその絞り込んだ輪郭抽出点に基づいて算出されるので、投票を行う対象である座標値の数を減らすことができ、その結果、投票処理の演算量を少なくすることができる。よって、処理にかかる時間を短縮することができる。
【００１３】
［４］上記の課題を解決するため、本発明の一態様であるオブジェクト検出方法は、参照オブジェクトモデルを用いた投票により画像からオブジェクトを検出するオブジェクト検出方法において、前記画像の輪郭を抽出する輪郭抽出ステップと、オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を前記参照オブジェクトモデルとして記憶した記憶部から、前記参照オブジェクトモデルの座標値を読み出して、前記参照オブジェクトモデルの座標値と、前記画像の輪郭における点の座標値と、に基づき算出した変換座標値に対して投票を行ってその積算値である投票数を算出する候補座標投票ステップと、前記変換座標値から、前記投票数が所定の閾値を超える座標値を抽出する位置抽出ステップと、を有することを特徴とする。
本発明の一態様によるオブジェクト検出方法によれば、オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を参照オブジェクトモデルとして用いてオブジェクトを検出する。すなわち、オブジェクトモデルの特徴点座標値を回転角度ごとに有さない参照オブジェクトモデルを用いるものである。よって、オブジェクトモデルの回転角度ごとに投票処理を行わないため、処理にかかる時間を短縮することができる。
【００１４】
［５］上記の課題を解決するため、本発明の一態様であるオブジェクト検出プログラムは、オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を前記参照オブジェクトモデルとして記憶する記憶部を備えたコンピューターを、前記画像の輪郭を抽出する輪郭抽出部と、前記記憶部から読み出した前記参照オブジェクトモデルの座標値と、前記画像の輪郭における点の座標値と、に基づき算出した変換座標値に対して投票を行ってその積算値である投票数を算出する投票数算出部と、前記変換座標値から、前記投票数が所定の閾値を超える座標値を抽出する位置抽出部と、として機能させる。
本発明の一態様によるオブジェクト検出プログラムによれば、オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を参照オブジェクトモデルとして用いてオブジェクトを検出する。すなわち、オブジェクトモデルの特徴点座標値を回転角度ごとに有さない参照オブジェクトモデルを用いるものである。よって、オブジェクトモデルの回転角度ごとに投票処理を行わないため、処理にかかる時間を短縮することができる。
【００１５】
［６］上記の課題を解決するため、本発明の一態様であるロボットは、参照オブジェクトモデルを用いた投票により画像からオブジェクトを検出するロボットにおいて、物体を撮像して撮像信号を生成する撮像部と、前記撮像部を取り付けたハンド部と、前記ハンド部を可動自在に取り付けたアーム部と、オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を前記参照オブジェクトモデルとして記憶する記憶部と、前記撮像部が生成した撮像信号の供給を受けて画像を取得する画像取得部と、前記画像の輪郭を抽出する輪郭抽出部と、前記記憶部から読み出した前記参照オブジェクトモデルの座標値と、前記画像の輪郭における点の座標値と、に基づき算出した変換座標値に対して投票を行ってその積算値である投票数を算出する投票数算出部と、前記変換座標値から、前記投票数が所定の閾値を超える座標値を抽出する位置抽出部と、を備えることを特徴とする。
本発明の一態様によるロボットによれば、オブジェクトモデルの代表点を中心として前記オブジェクトモデルを所定の角度ずつ回転して得られる回転オブジェクトモデルそれぞれの特徴点の座標値を参照オブジェクトモデルとして用いてオブジェクトを検出する。すなわち、オブジェクトモデルの特徴点座標値を回転角度ごとに有さない参照オブジェクトモデルを用いるものである。よって、オブジェクトモデルの回転角度ごとに投票処理を行わないため、処理にかかる時間を短縮することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態であるロボットの斜視図である。
【図２】本発明の一実施形態であるオブジェクト検出装置の主要な機能構成を示すブロック図である。
【図３】同実施形態において、オブジェクトモデルの場合における特徴点の座標の例を示した図である。
【図４】同実施形態において、回転オブジェクトモデルの場合における特徴点の座標の例を示した図である。
【図５】オブジェクトモデルの場合において、回転角度毎の各特徴点の座標を示したテーブルである。
【図６】回転オブジェクトモデルの場合において、各特徴点の座標とそれに対応する投票数を示したテーブルである。
【図７】対象画像において、画像の輪郭を検出するための検出対象領域が設定された状態を模式的に示した図である。
【図８】画像の輪郭において、回転オブジェクトモデルの特徴点の座標値に画像の輪郭における点の座標値を加算し、その加算した座標値に対してテーブル７０の投票加算数を投票する処理を説明するための図である。
【図９】図８（ａ）から図８（ｆ）までの全特徴点を重ねて表示した図である。
【図１０】回転オブジェクトモデルを用いたときの、ｉｊ空間における投票結果をグラフ化した図である。
【図１１】対象画像において、オブジェクトを検出するための検出対象領域を絞り込んだ際の領域である絞り込み領域を説明するための図である。
【図１２】画像の輪郭において、オブジェクトモデルの特徴点の座標値に、画像の輪郭における点の座標値を加算し、角度毎に設けた座標空間における加算後の座標値の投票数に１を加算する処理を説明するための図である。
【図１３】オブジェクトモデルの代表点が画像の輪郭のうちの所定の６点にある仮定したときに、オブジェクトモデルの特徴点を重ねて表示した図である。
【図１４】回転角度０度のオブジェクトモデルまたは回転角度１８０度のオブジェクトモデルの、回転角度毎に設けた座標空間における投票結果の１例を示した図である。
【図１５】同実施形態において、モデル抽出部１０が角度毎に、参照オブジェクトの特徴点の位置を記憶部へ保存する手順を示すフローチャートである。
【図１６】同実施形態において、物体検出部がベクトル相関法を用いて、オブジェクト検出をする手順を示すフローチャートである。
【図１７】同実施形態において、オブジェクトの粗検出における物体検出部の処理の手順を示すフローチャートである。
【図１８】同実施形態において、オブジェクトの等倍検出における物体検出部の処理の手順を示すフローチャートである。
【図１９】同実施形態において、投票数算出部が行う粗検出時の投票処理の手順を示すフローチャートである。
【図２０】同実施形態において、投票数算出部が行う等倍検出時の投票処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について、図面を参照して詳細に説明する。図１は、本発明の一実施形態であるロボットの斜視図である。同図に示すように、ロボット１は、地面に固定された支持台２と、旋回および屈伸動作が可能なアーム部３と、回転および首振り動作が可能なハンド部４と、フレーム５と、撮像装置６と、ケーブル７と、オブジェクト検出装置８とを含んで構成される。
【００１８】
ロボット１は、アーム部３およびハンド部４の伸縮、屈伸、旋回等の動作が可能である。このロボット１は、例えば、３軸以上の自由度を有し、アーム部３およびハンド部４が可動自在な産業用ロボットである。なお、同図に示すロボット１は、６軸の自由度を有する例である。
ロボット１は、不図示のロボットコントローラーの制御によって、アーム部３とハンド部４とを複合的に動作させ、撮像部６を移動させる。なお、支持台２は、地面の他に壁や天井等の地面に対して固定された場所に設置してもよい。
【００１９】
フレーム５は、ハンド部４に取り付けられている。そして、フレーム５は、撮像部６を固定支持する。これによって、撮像部６は、空間中を自在に移動することができる。このように、ロボット１は、ハンド部４を動かすことによって撮像部６を自在に移動させることができ、計測対象物体を任意の位置および任意の角度から撮像することができる。
【００２０】
撮像装置６は、ケーブル７を介してオブジェクト検出装置８に接続される。撮像装置６は計測対象物体を撮像し、撮像信号を生成する。そして、撮像装置６は、撮像信号をオブジェクト検出装置８に供給する。
オブジェクト検出装置８は、撮像装置６から供給された撮像信号を受け取る。
【００２１】
図２は、オブジェクト検出装置８の主要な機能構成を示すブロック図である。オブジェクト検出装置は、参照オブジェクトモデルを用いた投票により画像からオブジェクトを検出する装置である。同図に示すように、オブジェクト検出装置８は、モデル抽出部１０と、記憶部２０と、物体検出部３０とを含んで構成される。
【００２２】
モデル抽出部１０は、登録画像入力部１１と、ノイズ低減部１２と、輪郭抽出部１３と、画像縮小部１４と、特徴点抽出部１５と、間引き部１６と、回転部１７とを含んで構成される。
登録画像入力部１１は、不図示の外部装置から供給されるデジタル画像を受け取る入力部である。このデジタル画像（以下、モデル画像と呼ぶ。）には、参照オブジェクトの画像が含まれている。登録画像入力部１１は、受け取ったモデル画像をノイズ低減部１２に供給する。
【００２３】
ノイズ低減部１２は、モデル画像中のノイズを低減する画像処理部である。ノイズ低減部１２は、登録画像入力部１１からモデル画像を受け取る。そして、ノイズ低減部１２は、そのモデル画像に対して、膨張処理、縮小処理、スムージング処理などの画像処理を行って、モデル画像中のノイズを低減した画像（以下、ノイズ低減モデル画像と呼ぶ。）を生成する。
次に、ノイズ低減部１２は、生成したノイズ低減モデル画像を輪郭抽出部１３に供給する。
【００２４】
輪郭抽出部１３は、ノイズ低減モデル画像の輪郭を抽出する画像処理部である。輪郭抽出部１３は、ノイズ低減部１２から供給されたノイズ低減モデル画像を受け取る。そして、輪郭抽出部１３は、ラプラシアンフィルタを用いて、ノイズ低減モデル画像の輪郭を抽出する。なお、ラプラシアンフィルタ以外のフィルタを用いて輪郭抽出処理を行ってもよい。
【００２５】
輪郭抽出部１３は、輪郭抽出後、例えば、輪郭の画素値を１にし、輪郭以外の画素値を０にした二値化画像を生成する。輪郭抽出部１３は、その二値化画像を画像縮小部１４と特徴点抽出部１５とに供給する。
【００２６】
画像縮小部１４は、供給された画像データを所定の比率で縮小する処理部である。画像縮小部１４は、輪郭抽出部１３から供給された二値化画像を受け取る。そして、画像縮小部１４は、その二値化画像を縮小して縮小画像を生成する。次に、画像縮小部１４は、縮小画像を特徴点抽出部１５に供給する。
【００２７】
特徴点抽出部１５は、供給された画像の輪郭から特徴点を抽出する画像処理部である。特徴点抽出部１５は、輪郭抽出部１３から供給された二値化画像を受け取る。また、特徴点抽出部１５は、画像縮小部１４から供給された縮小画像を受け取る。
そして、特徴点抽出部１５は、二値化画像または縮小画像から、参照オブジェクトの代表点の座標を算出する。例えば、特徴点抽出部１５は、代表点の座標として、参照オブジェクトの二次元平面上の重心の座標を算出する。次に、特徴点抽出部１５は、代表点の座標を記憶部２０に記憶させる。
【００２８】
特徴点抽出部１５は、二値化画像の輪郭または縮小画像の輪郭から、特徴点の座標を抽出する。そして、特徴点抽出部１５は、抽出した特徴点の座標を、参照オブジェクトの代表点の座標を原点とする座標（以下、特徴点の座標と称する）に変換する。そして、特徴点抽出部１５は、特徴点の座標の情報を間引き部１６に供給する。
【００２９】
ここで、特徴点抽出部１５が、特徴点の座標を算出する方法について具体例を挙げて説明する。図３は、オブジェクトモデルにおける特徴点の座標の例を示した図である。同図（ａ）は、回転角度θｑ（ｑは回転角度のインデックスであり、０からｎ−１までの整数）が０度である場合の、オブジェクトモデルの特徴点の座標を示した図である。
【００３０】
また、回転角度θｑにおける、特徴点番号ｐ（ｐは０からｍ−１までの整数）の座標は、（ｘｒ（ｐ，ｑ），ｙｒ（ｐ，ｑ））と表される。図３（ａ）の回転角度θｑが０度であるオブジェクトモデル４０において、特徴点抽出部１５は、オブジェクトモデル４０の輪郭４２から、６点の特徴点を抽出する。回転角度０度のオブジェクトモデル４０における座標（ｘｒ（０，０），ｙｒ（０，０））、（ｘｒ（１，０），ｙｒ（１，０））、（ｘｒ（２，０），ｙｒ（２，０））、（ｘｒ（３，０），ｙｒ（３，０））、（ｘｒ（４，０），ｙｒ（４，０））、（ｘｒ（５，０），ｙｒ（５，０））は、それぞれの特徴点のモデルの代表点４１からの座標を示している。
【００３１】
間引き部１６は、参照オブジェクトの特徴点の数を減らす画像処理部である。間引き部１６は、特徴点抽出部１５から供給された特徴点の座標の情報を受け取る。そして、間引き部１６は、検出精度に影響しない程度に、特徴点の数を減らす。例えば、間引き部１６は、所定の距離毎に特徴点が存在するように、特徴点を減らす。次に、間引き部１６は、減らされた特徴点の座標の情報を回転部１７に供給する。
【００３２】
回転部１７は、特徴点の座標を、参照オブジェクトの代表点を中心として所定の回転角をステップとして回転させた場合の、特徴点の座標を算出する処理部である。回転部１７は、間引き部１６から供給された特徴点の座標の情報を受け取る。そして、回転部１７は、特徴点の座標を参照オブジェクトの代表点を中心として所定の回転角度をステップとして回転させた場合の特徴点の、座標（以下、回転角度毎の特徴点の座標）を算出する。次に、回転部１７は、所定の回転角度毎の各特徴点の座標を、記憶部２０に記憶させる。
【００３３】
ここで、回転部１７の上記処理を、具体例を挙げて説明する。図３（ｂ）は、回転角度θｑが１８０度である場合の、オブジェクトモデルの特徴点の座標を示した図である。回転角度θｑが１８０度のオブジェクトモデル４４は、回転角度θｑが０度のオブジェクトモデル４０を、代表点４１を中心にして、１８０度回転させたモデルである。輪郭４２の座標と特徴点４３の座標とが、代表点４１を中心にして１８０度回転され、それぞれ輪郭４５の座標と特徴点４６の座標として表される。
【００３４】
すなわち、回転部１７は、回転角度θｑが０度のオブジェクトモデル４０の特徴点４３の座標（ｘｒ（ｐ，０），ｙｒ（ｐ，０））を、回転角度θｑが１８０度のオブジェクトモデル４４の特徴点４６の座標（ｘｒ（ｐ，１），ｙｒ（ｐ，１））へ変換する（この例では、ｐは０から５までの整数）。例えば、回転部１７は、（ｘｒ（０，０），ｙｒ（０，０））を、（ｘｒ（０，１），ｙｒ（０，１））へ変換する。同様に、回転部１７は、（ｘｒ（１，０），ｙｒ（１，０））を、（ｘｒ（１，１），ｙｒ（１，１））へ変換する。回転部１７は、（ｘｒ（２，０），ｙｒ（２，０））を、（ｘｒ（２，１），ｙｒ（２，１））へ変換する。回転部１７は、（ｘｒ（３，０），ｙｒ（３，０））を、（ｘｒ（３，１），ｙｒ（３，１））へ変換する。回転部１７は、（ｘｒ（４，０），ｙｒ（４，０））を、（ｘｒ（４，１），ｙｒ（４，１））へ変換する。回転部１７は、（ｘｒ（５，０），ｙｒ（５，０））を、（ｘｒ（５，１），ｙｒ（５，１））へ変換する。
【００３５】
図３（ｂ）のオブジェクトモデル４４の場合、回転部１７は、図３（ａ）における特徴点４３の座標（ｘｒ（ｐ，０），ｙｒ（ｐ，０））をモデルの代表点４１を中心にして、１８０度回転させて、図３（ｂ）における特徴点４６の座標（ｘｒ（ｐ，１），ｙｒ（ｐ，１））を算出する。
【００３６】
また、回転部１７は、特徴点の座標値を参照オブジェクトの代表点を中心として、所定の回転角度ごとに回転させ、回転後の特徴点の座標値を算出する。また、回転部１７は、その座標値に対して投票を行ってその積算値である投票数を例えば１増やす。但し、最初に各特徴点の座標値の投票数は０にしておく。
回転部１７は、上記処理を繰り返し、３６０度回転して、回転角度θｑが０度に戻ったときに処理を終了する。
【００３７】
回転部１７の上記処理を、具体例を用いて説明する。図４は、回転オブジェクトモデルにおける特徴点の座標の例を示した図である。
回転オブジェクトモデル５０におけるｘｒｙｒ座標系において、原点０が代表点５１である。輪郭５２は、モデルの全輪郭を表している。特徴点５３は、原点０を中心とする２つの異なる半径の同心円の円周近辺に分布している。また、特徴点５３が、重なっている点では、重なっている特徴点の数が投票数を表している。
【００３８】
同図の回転オブジェクトモデル５０は、図３（ａ）に示す輪郭４２を、モデルの代表点４１を中心として３０度のステップずつ３６０度まで回転させ、ステップごとに、座標をプロットして得られるものである。
同様にして、特徴点５３は、オブジェクトモデルの特徴点４３がモデルの代表点４１を中心として、３０度のステップずつ３６０度まで回転させ、ステップごとに、座標をプロットして得られるものである。
【００３９】
すなわち、図４の回転オブジェクトモデル５０は、回転角度が０度、３０度、６０度、９０度、１２０度、１５０度、１８０度、２１０度、２４０度、２７０度、３００度、３３０度のオブジェクトモデルを、全て重ね合わせたものである。
【００４０】
回転部１７は、回転オブジェクトモデル５０の特徴点５３の座標値（ｘｒａ（ｓ），ｙｒａ（ｓ））と（ｓは０からｋ−１までの整数）、その座標値に対応する投票加算数を算出する。ここで、投票加算数とは、ある座標に投票する際に、一度に投票する数である。特徴点の座標に応じて投票加算数を設定することにより、投票数のダイナミックレンジを広げることができる。これによって、ノイズの多い画像であっても、オブジェクトの位置を検出することができるので、画像ノイズに対してロバスト性を有する。
次に、回転部１７は、座標値（ｘｒａ（ｓ），ｙｒａ（ｓ））とその座標値に対応する投票加算数とを関係付けて、記憶部２０に記憶させる。
【００４１】
図４の回転オブジェクトモデル５０の場合、回転部１７は、まず図３（ａ）における特徴点４３の座標（ｘｒ（ｐ，０），ｙｒ（ｐ，０））（この例では、ｐは０から５までの整数）のそれぞれの座標値に対して投票を行ってその積算値である投票数を１増やす。
【００４２】
次に、回転部１７は、図３（ａ）における特徴点４３の座標値（ｘｒ（ｐ，０），ｙｒ（ｐ，０））（この例では、ｐは０から５までの整数）をモデルの代表点４１を中心にして、３０度回転させ、回転後の座標値（ｘｒ（ｐ，１），ｙｒ（ｐ，１））を算出する。また、回転部１７は、それぞれの座標値（ｘｒ（ｐ，１），ｙｒ（ｐ，１））に対応する投票加算数を１増やす。
【００４３】
次に、回転部１７は、図３（ａ）における特徴点４３の座標値（ｘｒ（ｐ，０），ｙｒ（ｐ，０））をモデルの代表点４１を中心にして、６０度回転させて、回転後の座標値（ｘｒ（ｐ，２），ｙｒ（ｐ，２））を算出する。また、回転部１７は、それぞれの座標値（ｘｒ（ｐ，２），ｙｒ（ｐ，２））に対応する投票加算数を１増やす。
【００４４】
以下、同様にして、回転部１７は、特徴点４３の座標値（ｘｒ（ｐ，０），ｙｒ（ｐ，０））をモデルの代表点４１を中心にして、９０度、１２０度、１５０度、１８０度、２１０度、２４０度、３００度、３３０度回転させ、それぞれの回転後の座標値を算出する。また、それぞれの回転後における、それぞれの座標値に対応する投票加算数を１増やす。
【００４５】
記憶部２０は、特徴点の座標値と投票数とを関係付けたテーブルを記憶する記憶部である。
記憶部２０は、特徴点抽出部１５から供給された代表点の座標を受け取り、その代表点の座標を記憶する。
【００４６】
図５は、オブジェクトモデルの場合において、回転角度毎の各特徴点の座標を示したテーブルである。同図のテーブル６０は、特徴点番号ｐ（ｐは０からｍ−１までの整数）と、回転角度θｑ（ｑは０からｎ−１までの整数）毎の相対ｘ座標ｘｒ（ｐ，ｑ）、相対ｙ座標ｙｒ（ｐ，ｑ）との関係を表すテーブルである。
【００４７】
記憶部２０は、回転部１７から供給されたオブジェクトモデルの所定の回転角度毎の特徴点の座標を受け取る。
そして、記憶部２０は、所定の回転角度毎の特徴点の座標をテーブル６０として記憶する。
【００４８】
図６は、回転オブジェクトモデルにおける、各特徴点の座標値とそれに対応する投票加算数を示したテーブルである。同図のテーブル７０は、特徴点番号ｓ（ｓは０からｋ−１までの整数）と、特徴点の相対ｘ座標ｘｒａ、特徴点の相対ｙ座標ｙｒａ、および投票加算数との関係を表すテーブルである。
【００４９】
記憶部２０は、回転部１７から供給された回転オブジェクトモデルの特徴点の座標（ｘｒａ，ｙｒａ）とその座標に対応する投票加算数とを受け取る。そして、記憶部２０は、特徴点の座標（ｘｒａ，ｙｒａ）と投票加算数とをテーブル７０として記憶する。
【００５０】
図２の説明に戻り、物体検出部３０の構成について説明する。物体検出部３０は、画像入力部３１と、ノイズ低減部３２と、輪郭抽出部３３と、画像縮小部３４と、検出領域抽出部３５と、投票数算出部３６と、位置抽出部３７とを含んで構成される。
【００５１】
画像入力部３１は、撮像装置６が出力した撮像信号を受け取る入力部である。画像入力部３１は、その撮像信号をデジタル画像へ変換する。画像入力部３１は、そのデジタル画像をノイズ低減部３２へ供給する。
【００５２】
ノイズ低減部３２は、デジタル画像中のノイズを低減する処理部である。ノイズ低減部３２は、画像入力部３１が供給したデジタル画像を受け取る。ノイズ低減部３２は、そのデジタル画像に対して、膨張または縮小処理やスムージングなどの一般的な画像処理法を用いて、デジタル画像中のノイズを低減し、ノイズを低減した画像（以下、ノイズ低減画像と称する）を生成する。そして、ノイズ低減部３２は、そのノイズ低減画像を輪郭抽出部３３へ供給する。
【００５３】
輪郭抽出部３３は、デジタル画像中の画像の輪郭を抽出する処理部である。輪郭抽出部３３は、ノイズ低減部３２から供給されたノイズ低減画像を受け取る。輪郭抽出部３３は、ラプラシアンフィルタを用いて、ノイズ低減画像の輪郭を抽出する。なお、その輪郭抽出において、ラプラシアンフィルタ以外のフィルタを用いてもよい。
輪郭抽出部３３は、輪郭抽出後、輪郭の画素値を１にし、輪郭以外の画素値を１にした二値化画像を生成する。このとき、輪郭抽出部３３は、その二値化画像を画像縮小部３４と、検出領域抽出部３５とへ供給する。
【００５４】
なお、ノイズ低減部３２の処理は、モデル抽出部１０のノイズ低減部１２の処理と、細かな手法やアルゴリズムが異なっていてもよい。
また、輪郭抽出部３３は、モデル抽出部１０の輪郭抽出部１３の処理と、細かな手法やアルゴリズムが異なっていてもよい。
【００５５】
画像縮小部３４は、入力された画像データを所定の比率で縮小する処理部である。画像縮小部３４は、輪郭抽出部３３から供給された二値化画像を受け取る。画像縮小部３４は、その二値化画像を所定の比率で縮小し、縮小画像を生成する。画像縮小部３４は、その縮小画像を検出領域抽出部３５へ供給する。ここで、前記二値化画像とその縮小画像を総称して、対象画像と称する。
【００５６】
図７は、対象画像において、画像の輪郭を検出するための検出対象領域が設定された状態を模式的に示した図である。同図において、対象画像８１は画像の輪郭８３を含んでいる。そして、画像の輪郭８３の位置と回転角度とを検出するために、オブジェクト８３を含むようにして矩形の検出対象領域８２が表示されている。
【００５７】
ここで、検出対象領域８２には、左上隅を原点にしたｉｊ座標系が設定されている。ｉｊ座標系は、１画素ごとに対応するｉｊ座標が与えられている座標系である。検出対象領域８２の幅はｗで、高さがｈである。本実施形態では、幅ｗが１２０画素であり、高さｈが１２０画素である検出対象領域８２を例として、以下説明する。
【００５８】
検出領域抽出部３５は、図７に示された対象画像８１から画像の輪郭８３を含むように検出対象領域を抽出する処理部である。検出領域抽出部３５は、輪郭抽出部３３から供給された二値化画像を受け取る。また、検出領域抽出部３５は、画像縮小部３４から供給された縮小画像を受け取る。
【００５９】
検出領域抽出部３５は、その二値化画像またはその縮小画像に対して、対象とする画像の輪郭を含むように検出対象領域を設定する。その際、検出領域抽出部３５は、画像が検出対象領域に収まるように、画像の輪郭よりも数画素分幅の広い長方形または正方形で検出対象領域を設定する。
【００６０】
検出領域抽出部３５は、ｉｊ座標系において、その検出対象領域８２の幅ｗと高さｈを算出する。そして、検出領域抽出部３５は、その検出対象領域の幅ｗと高さｈとその対象画像８１とを投票数算出部３６に供給する。また、検出領域抽出部３５は、縮小画像を用いた粗検出時に算出されたオブジェクトの位置と回転角度を位置抽出部３７から受け取る。
【００６１】
投票数算出部３６は、オブジェクトの位置と回転角度を算出する処理部である。以下、投票数算出部３６について説明する。
【００６２】
投票数算出部３６は、画像の輪郭８３の位置を検出対象領域８２から更に領域を絞り込む。投票数算出部３６は、検出領域抽出部３５から供給された検出対象領域の幅ｗと高さｈと対象画像とを受け取る。投票数算出部３６は、記憶部２０のテーブル７０から回転オブジェクトモデルの特徴点の座標とその座標に対応する投票加算数、オブジェクトモデルの特徴点の座標を読み出す。
【００６３】
図８は、画像の輪郭において、回転オブジェクトモデルの特徴点の座標値に画像の輪郭における点の座標値を加算し、その加算した座標値に対してテーブル７０の投票加算数を投票する処理を説明するための図である。
図８（ａ）は、画像の輪郭８３の輪郭における座標の中で、ｊ座標が一番小さいものの内、ｉ座標が一番小さい座標に、回転オブジェクトモデル５０の代表点５１があるときの特徴点５３のｉｊ座標系における座標を表している。
【００６４】
同様に、図８（ｂ）は、画像の輪郭８３の輪郭における座標の中で、ｊ座標が一番小さいものの内、ｉ座標が一番大きい座標に、回転オブジェクトモデル５０の代表点５１があるときの特徴点５３のｉｊ座標系における座標を表している。
同様に、図８（ｃ）は、画像の輪郭８３の輪郭における座標の中で、ある座標に回転オブジェクトモデル５０の代表点５１があるときの特徴点５３のｉｊ座標系における座標を表している。
【００６５】
同様に、図８（ｄ）は、画像の輪郭８３の輪郭における座標の中で、ｊ座標が図８（ｃ）のｊ座標と同じで、ｉ座標が図８（ｃ）のｉ座標より大きい座標に、回転オブジェクトモデル５０の代表点５１があるときの特徴点５３のｉｊ座標系における座標を表している。
同様に、図８（ｅ）は、画像の輪郭８３の輪郭における座標の中で、オブジェクトの左下の角に、回転オブジェクトモデル５０の代表点５１があるときの特徴点５３のｉｊ座標系における座標を表している。
【００６６】
同様に、図８（ｆ）は、画像の輪郭８３の輪郭における座標の中で、ｊ座標が一番大きいときのｉｊ座標に、回転オブジェクトモデル５０の代表点５１があるときの特徴点５３のｉｊ座標系における座標を表している。
【００６７】
投票数算出部３６は、ｉｊ座標系において、座標（０，０）から座標（ｗ，ｈ）まで、１画素ずつ対象画像８１の画素値を読む。具体的には、例えば、投票数算出部３６は、ｉｊ座標系において、座標（０，０）からｊ座標を０に固定して、ｉを１ずつ増やしながら、対象画像８１の各画素値を読む。そして、投票数算出部３６は、ｉ座標がｗになったら、ｊを１増やし、ｉを０として、ｉを１ずつ増やしながら、対象画像８１の各画素の値を読む。以下、同様にして、投票数算出部３６は、画素の座標が座標（ｗ，ｈ）になるまで、上記画素値の読み出し処理を繰り返す。
【００６８】
投票数算出部３６は、前記読み出した画素値が１であれば、その画素の座標を、画像の輪郭８３の輪郭の一部と判定する。
投票数算出部３６は、記憶部２０のテーブル７０から回転オブジェクトモデルの特徴点の座標値を読み出す。投票数算出部３６は、読み出した回転オブジェクトモデルの特徴点の座標値に、画像の輪郭における点の座標値を加算した座標値（変換座標値）を算出する。
【００６９】
すなわち、投票数算出部３６は、特徴点の座標（ｉ，ｊ）を、変換座標値（ｉ＋ｘｒａ（ｓ），ｊ＋ｙｒａ（ｓ））へ変換する（ｓは０からｋ−１までの整数）。
この投票数算出部３６の処理は、例えば、図８（ａ）に示すｉｊ座標における各特徴点５３の座標を算出することに相当する。
【００７０】
そして、投票数算出部３６は、変換座標値（ｉ＋ｘｒａ（ｓ），ｊ＋ｙｒａ（ｓ））に対して投票を行って、その積算値である投票数を算出する。換言すると、投票数算出部３６は、特徴点毎に対応する投票加算数を、前記変換座標値（ｉ＋ｘｒａ（ｓ），ｊ＋ｙｒａ（ｓ））における投票数Ｖａ（ｉ＋ｘｒａ（ｓ），ｊ＋ｙｒａ（ｓ））に加算する（ｓは０からｋ−１までの整数）。投票数算出部３６は、その処理を全ての特徴点に対して行う。
【００７１】
上記処理を、具体例を用いて説明する。例えば、投票数算出部３６は、画素値が１の座標（ｉ，ｊ）において、図６のテーブル７０の特徴点番号０の座標（１０，１２）を座標（ｉ＋１０，ｊ＋１２）へ変換する。そして、投票数算出部３６は、その座標（ｉ＋１０，ｊ＋１２）における投票数Ｖａ（ｉ＋１０，ｊ＋１２）に、テーブル７０の特徴点番号０の投票加算数５を加算する。
【００７２】
次に、投票数算出部３６は、テーブル７０の特徴点番号１の座標（９，１２）を座標（ｉ＋９，ｊ＋１２）へ変換する。そして、投票数算出部３６は、その座標（ｉ＋９，ｊ＋１２）おける投票数Ｖａ（ｉ＋９，ｊ＋１２）に、テーブル７０の特徴点番号１の投票加算数１を加算する。
次に、投票数算出部３６は、テーブル７０の特徴点番号２の座標（７，１２）を座標（ｉ＋７，ｊ＋１２）へ変換する。そして、投票数算出部３６は、その座標（ｉ＋７，ｊ＋１２）おける投票数Ｖａ（ｉ＋７，ｊ＋１２）に、テーブル７０の特徴点番号２の投票加算数３を加算する。
【００７３】
次に、投票数算出部３６は、テーブル７０の特徴点番号３の座標（６，１２）を座標（ｉ＋６，ｊ＋１２）へ変換する。そして、投票数算出部３６は、その座標（ｉ＋６，ｊ＋１２）における投票数Ｖａ（ｉ＋６，ｊ＋１２）に、テーブル７０の特徴点番号３の投票加算数４を加算する。そして、投票数算出部３６は、同様の処理を繰り返す。
最後に、投票数算出部３６は、テーブル７０の特徴点番号ｋ−１の座標（２，−１８）を座標（ｉ＋２，ｊ−１８）へ変換する。そして、投票数算出部３６は、その座標値（ｉ＋２，ｊ−１８）における投票数Ｖａ（ｉ＋２，ｊ−１８）に、テーブル７０の特徴点番号ｋ−１の投票加算数２を加算する
これによって、投票数算出部３６の座標（ｉ，ｊ）における投票処理は終了する。
【００７４】
投票数算出部３６は、上記の処理を画素値が１のときの座標（ｉ，ｊ）において、繰り返し行う。ここで、投票数算出部３６のその繰り返し処理の流れを、図８を用いて説明する。
まず、投票数算出部３６は、座標（０，０）から１画素ずつ、対象画像８１の画素値を読み出していく。投票数算出部３６は、ｊ座標を固定して、ｉの値を増やしながら、画素値を更に読み出す。座標（ｉ、ｊ）が検出対象領域８２の範囲外になる場合、ｊを１増やして、ｉの値を０に戻す。
【００７５】
読み出した画素値が１の場合、投票数算出部３６は、記憶部２０に保存されたテーブル７０から読み出した特徴点の座標値に、その画像の輪郭における点を加算した座標値を算出する。そして、投票数算出部３６は、記憶部２０に保存された特徴点毎に対応する投票加算数を読み出す。そして、投票数算出部３６は、その変換座標値における投票数Ｖａ（ｉ，ｊ）に読み出した投票加算数を加算する。
【００７６】
例えば、図８（ａ）において、読みだされた画素値が１になるので、投票数算出部３６は、記憶部２０のテーブル７０から読み出した特徴点の座標値に、画素値が１になる点の座標を加算した座標値を算出する。そして、投票数算出部３６は、記憶部２０に保存された特徴点毎に対応する投票加算数を読み出す。そして、投票数算出部３６は、その変換座標値における投票数Ｖａ（ｉ，ｊ）に読み出した投票加算数を加算する。
【００７７】
このように、投票数算出部３６が読み出した画素値が１になるたびに、図８（ａ）における処理と同じ処理を行う。例えば、図８（ｂ）において、読みだされた画素値が１になるので、投票数算出部３６は図８（ａ）における処理と同じ処理を行う。続いて、図８（ｃ）において、読みだされた画素値が１になるので、投票数算出部３６は図８（ａ）における処理と同じ処理を行う。
【００７８】
さらに、投票数算出部３６は、ｊ座標を固定して、ｉの値を増やしながら、画素値を更に読み出す。次に画素値が１になるのは、読み出す座標が座標図８（ｄ）に示す代表点５１の座標になるときである。
【００７９】
同様に、図８（ｄ）において、読み出された画素値が１になるので、投票数算出部３６は図８（ａ）における処理と同じ処理を行う。
更に、同様の処理を繰り返した後に、図８（ｅ）において、読みだされた画素値が１になるので、投票数算出部３６は図８（ａ）における処理と同じ処理を行う。
【００８０】
そして、更に、同様の処理を繰り返した後に、図８（ｆ）において、読みだされた画素値が１になるので、投票数算出部３６は図８（ａ）における処理と同じ処理を行う。
以上で、投票数算出部３６は、画像の輪郭８３の全ての輪郭点を読み出したことになり、その後、読み出される画素値が１になることはない。
投票数算出部３６は、読み出される画素の座標が（ｗ，ｈ）になるまで、対象画像８１の画素値を読み出す。以上で、全回転角度モデルを用いた投票処理が終了する。
【００８１】
図９は、図８（ａ）から図８（ｆ）までの全特徴点を重ねて表示した図である。図９において、代表点５１が、図８（ａ）から図８（ｆ）に示す画像の輪郭８３の輪郭にあるときの、特徴点５３の分布を表している。
図９によれば、画像の輪郭８３の内部と画像の輪郭８３の近傍に特徴点５３が集中していることが分かる。
【００８２】
図１０は、回転オブジェクトモデルを用いたときの、ｉｊ空間における投票結果をグラフ化した図である。同図において、画像の輪郭８３の重心の位置は（６０，６０）である。投票数は、画像の輪郭８３の重心の位置で一番大きい。また、投票数Ｖａ（ｉ，ｊ）は、画像の輪郭８３の重心から離れるほど小さくなる。
【００８３】
図１１は、対象画像において、オブジェクトを検出するための検出対象領域を絞り込んだ際の領域である絞り込み領域を説明するための図である。絞りこみ領域８４は、図１０の投票数が所定の閾値を超えた座標の集合である。
回転オブジェクトモデルを用いた投票処理後、投票数算出部３６は、投票数Ｖａ（ｉ，ｊ）が所定の閾値を超えた座標を絞り込み領域の座標として算出する。
【００８４】
続いて、投票数算出部３６が回転角度θｑ毎に、各ｉｊ座標における投票数を算出する方法について説明する。投票数算出部３６は、オブジェクトモデルの特徴点の座標を記憶部２０から読み出す。
図１２は、画像の輪郭において、オブジェクトモデルの特徴点の座標値に、画像の輪郭における点の座標値を加算し、角度毎に設けた座標空間における加算後の座標値の投票数に１を加算する処理を説明するための図である。
【００８５】
図１２（ａ）は、画像の輪郭８３の輪郭における座標の中で、ｊ座標が一番小さいものの内、ｉ座標が一番小さい座標に、回転角度０度のオブジェクトモデル４０の代表点４１があるときの特徴点４３のｉｊ座標系における座標を表している。ここで、画像の輪郭８３は、絞り込み領域８４内に存在する。
同様に、図１２（ｂ）は、回転角度１８０度のオブジェクトモデル４４の代表点４１が図１２（ａ）と同じ座標にあるときの、特徴点４３のｉｊ座標系における座標を表している。
【００８６】
同様に、図１２（ｃ）は、画像の輪郭８３の輪郭における座標の中で、ある座標に、回転角度０度のオブジェクトモデル４０の代表点４１があるときの特徴点４３のｉｊ座標系における座標を表している。
同様に、図１２（ｄ）は、回転角度１８０度のオブジェクトモデル４４の代表点４１が図１２（ｃ）と同じ座標にあるときの、特徴点４３のｉｊ座標系における座標を表している。
【００８７】
同様に、図１２（ｅ）は、画像の輪郭８３の輪郭における座標の中で、ｊ座標が一番大きいときに、回転角度０度のオブジェクトモデル４０の代表点４１があるときの特徴点４３のｉｊ座標系における座標を表している。
同様に、図１２（ｆ）は、回転角度１８０度のオブジェクトモデル４４の代表点４１が図１２（ｅ）と同じ座標にあるときの、特徴点４３のｉｊ座標系における座標を表している。
【００８８】
投票数算出部３６は、ｉｊ座標系において、絞り込み領域の範囲内で１画素ずつ対象画像８１の画素値を読む。例えば、投票数算出部３６は、ｉｊ座標系において、座標（ｉ０，ｊ０）からｊ座標をｊ０に固定して、ｉ座標を次の値に変更する毎に、対象画像８１の各画素の値を読む。
【００８９】
投票数算出部３６は、座標（ｉ，ｊ０）が絞り込み領域の端になったら、ｊ０を１増やす。ここで、ｊ座標がｊ０＋１のときの、絞り込み領域におけるｉの最小値をｉ１とする。投票数算出部３６は、ｊ座標がｊ０＋１において、ｉ座標を次の値に変更する毎に、対象画像８１の各画素の値を読む。
以下、同様にして、投票数算出部３６は、絞り込み領域内において、上記画素値の読み出し処理を繰り返す。
【００９０】
投票数算出部３６は、前記読み出した画素値が１であれば、その画素の座標を、画像の輪郭８３の輪郭の一部と判定する。
投票数算出部３６は、記憶部２０のテーブル６０からオブジェクトモデルの特徴点の座標値を読み出す。投票数算出部３６は、読み出したオブジェクトモデルの特徴点の座標値に、画素値が１の座標点（ｉ，ｊ）を加算した座標値（算出座標値）に変換する処理を角度毎に行う。そして、投票数算出部３６は、角度毎に設けた座標空間における算出座標値に対して、投票を行ってその積算値である投票数を算出する。
【００９１】
すなわち、投票数算出部３６は、画素値が１の座標（ｉ，ｊ）において、特徴点の座標（ｉ＋ｘｒ（ｐ，ｑ），ｊ＋ｙｒ（ｐ，ｑ））を算出する（ｐは特徴点番号を表し、０からｍ−１までの整数、ｑは回転角度のインデックスを表し、０からｎ−１までの整数）。
具体的には、この投票数算出部３６の処理は、例えば、図１２（ａ）に示すｉｊ座標における各特徴点４３の座標を算出するものである。
【００９２】
そして、投票数算出部３６は、ｉｊ座標系において、前記特徴点の算出座標値（ｉ＋ｘｒ（ｐ，ｑ），ｊ＋ｙｒ（ｐ，ｑ））に対して投票数Ｖ（ｉ＋ｘｒ（ｐ，ｑ），ｊ＋ｙｒ（ｐ，ｑ））に１を加算する。投票数算出部３６は、座標（ｉ，ｊ）において、その処理を全てのｐとｑの組み合わせに対して行う。
【００９３】
上記処理を、具体例を用いて説明する。回転角度θｑが２種類のみ（すなわちｎは２）で、それぞれθ０が０度で、θ１が１８０度とする。
まず、回転角度θ０の処理について説明する。投票数算出部３６は、画素値が１の座標（ｉ，ｊ）において、図５のテーブル６０の特徴点番号０で回転角度θ０の座標（１０，１２）を座標（ｉ＋１０，ｊ＋１２）へ変換する。そして、投票数算出部３６は、その座標（ｉ＋１０，ｊ＋１２）における投票数Ｖ（ｉ＋１０，ｊ＋１２）に、１を加算する。
【００９４】
投票数算出部３６は、上記と同様の処理を繰り返す。
最後に、投票数算出部３６は、テーブル６０の特徴点番号ｍ−１で回転角度θ０の座標（２，−１８）を座標（ｉ＋２，ｊ−１８）へ変換する。そして、投票数算出部３６は、その座標（ｉ＋２，ｊ−１８）における投票数Ｖ（ｉ＋２，ｊ−１８）に、投票数１を加算する。
【００９５】
次に、回転角度θ１の処理について説明する。投票数算出部３６は、回転角度θ０の処理と同じ座標（ｉ，ｊ）において、図５のテーブル６０の特徴点番号０で角度θ１の座標（９，１３）を座標（ｉ＋９，ｊ＋１３）へ変換する。そして、投票数算出部３６は、その座標（ｉ＋９，ｊ＋１３）における投票数Ｖ（ｉ＋９，ｊ＋１３）に、１を加算する。
【００９６】
投票数算出部３６は、上記と同様の処理を繰り返す。
最後に、投票数算出部３６は、テーブル６０の特徴点番号ｍ−１で回転角度θ１の座標（２，−１８）を座標（ｉ＋２，ｊ−１８）へ変換する。そして、投票数算出部３６は、その算出座標値（ｉ＋２，ｊ−１８）における投票数Ｖ（ｉ，ｊ）に、１を加算する。
これによって、投票数算出部３６の座標（ｉ＋２，ｊ−１８）における投票処理は終了する。
【００９７】
投票数算出部３６は、上記の処理を画素値が１のときの座標（ｉ，ｊ）において、繰り返し行う。
上記の投票数算出部３６の投票処理の流れを、図１２を用いて説明する。
まず、投票数算出部３６は、座標（ｉ０，ｊ０）から１画素ずつ、絞り込み領域８４内で対象画像８１の画素値を読み出していく。
【００９８】
投票数算出部３６は、画素値が最初に１になる図１２（ａ）に示すｉｊ座標を代表点として、回転角度０度のオブジェクトモデルの各特徴点の座標をｉｊ座標系の座標へ変換する。投票数算出部３６は、その各特徴点の算出座標値における投票数Ｖ（ｉ，ｊ）に１を加算する。
次に、投票数算出部３６は、図１２（ｂ）に示すように、図１２（ａ）と同じｉｊ座標を代表点として、回転角度０度のオブジェクトモデルの各特徴点の座標をｉｊ座標系の座標へ変換する。投票数算出部３６は、その各特徴点の算出座標値における投票数Ｖ（ｉ，ｊ）に１を加算する。
【００９９】
その後、以下の処理を繰り返す。投票数算出部３６は、画素値が１になる座標（すなわち輪郭の一部）を代表点として、回転角度０度のオブジェクトモデルの各特徴点の座標をｉｊ座標系の座標へ変換する。投票数算出部３６は、その各特徴点の算出座標値における投票数Ｖ（ｉ，ｊ）に１を加算する。
投票数算出部３６は、上記と同じ座標（ｉ，ｊ）を代表点として、回転角度１８０度のオブジェクトモデルの各特徴点の座標をｉｊ座標系の座標へ変換する。投票数算出部３６は、その各特徴点の算出座標値における投票数Ｖ（ｉ，ｊ）に１を加算する。
【０１００】
続いて、投票数算出部３６は、画素値が１になる図１２（ｃ）に示すｉｊ座標を代表点として、回転角度０度のオブジェクトモデルの各特徴点の座標をｉｊ座標系の座標へ変換する。投票数算出部３６は、その各特徴点の算出座標値における投票数Ｖ（ｉ，ｊ）に１を加算する。
次に、投票数算出部３６は、図１２（ｄ）に示すように、図１２（ｃ）と同じｉｊ座標を代表点として、回転角度１８０度のオブジェクトモデルの各特徴点の座標をｉｊ座標系の座標へ変換する。投票数算出部３６は、その各特徴点の変換座標値における投票数Ｖ（ｉ，ｊ）に１を加算する。
【０１０１】
続いて、投票数算出部３６は、同様の処理を繰り返す。
最後に、投票数算出部３６は、画素値が１になる図１２（ｅ）に示すｉｊ座標を代表点として、回転角度０度のオブジェクトモデルの各特徴点の座標をｉｊ座標系の座標へ変換する。投票数算出部３６は、その各特徴点の算出座標値における投票数Ｖ（ｉ，ｊ）に１を加算する。
次に、投票数算出部３６は、図１２（ｆ）に示すように、図１２（ｅ）と同じｉｊ座標を代表点として、回転角度１８０度のオブジェクトモデルの各特徴点の座標をｉｊ座標系の座標へ変換する。投票数算出部３６は、その各特徴点のｉｊ座標系の座標における投票数Ｖ（ｉ，ｊ）に１を加算する。
【０１０２】
以上で、オブジェクトモデルを用いた投票処理が終了する。
なお、本実施形態では、ｉｊ座標系の座標における投票数Ｖ（ｉ，ｊ）に投票する投票加算数を常に１としたが、投票加算数を特徴点に応じて変えてもよい。
【０１０３】
最後に、投票数算出部３６は、回転角度θｑおよびｉｊ座標毎に算出した投票数Ｖ（ｉ，ｊ）を位置抽出部３７に供給する。
【０１０４】
続いて、投票処理が終了したときの投票数Ｖ（ｉ，ｊ）について説明する。
図１３は、オブジェクトモデルの代表点が画像の輪郭のうちの所定の６点にあると仮定したときに、オブジェクトモデルの特徴点を重ねて表示した図である。図１３（ａ）は、回転角度０度のオブジェクトモデルの代表点が画像の輪郭のうちの所定の６点にあると仮定したときに、回転角度０度のオブジェクトモデルの特徴点を重ねて表示した図である。図１３（ｂ）は、回転角度１８０度のオブジェクトモデルの代表点が画像の輪郭のうちの所定の６点にあると仮定したときに、回転角度１８０度のオブジェクトモデルの特徴点を重ねて表示した図である。
【０１０５】
図１３（ａ）において、回転角度０度のオブジェクトモデルの代表点４１を、画像の輪郭８３の輪郭点のうち、例として６点を選んだ際には、画像の輪郭８３の内部に、特徴点４３が集中する。
また、図１３（ｂ）において、角度１８０度のオブジェクトモデルの代表点４１を、画像の輪郭８３の輪郭点のうち、例として６点を選んだ際には、同様に、画像の輪郭８３の内部に、特徴点４６が集中する。
【０１０６】
図１４は、回転角度０度のオブジェクトモデルおよび回転角度１８０度のオブジェクトモデルの、回転角度毎に設けた座標空間における投票結果の１例を示した図である。図１４（ａ）は、回転角度０度のオブジェクトモデルのときの、回転角度０度の座標空間における投票結果の１例を示した図である。図１４（ｂ）は、回転角度１８０度のオブジェクトモデルのときの、回転角度毎に設けた座標空間における投票結果の１例を示した図である。
【０１０７】
図１４（ａ）において、画像の輪郭８３の重心である座標（６０，６０）付近で投票数Ｖ（ｉ，ｊ）が大きい。また、その投票数Ｖ（ｉ，ｊ）の極大値１６１は１０である。
図１４（ｂ）において、画像の輪郭８３の重心である座標（６０，６０）で投票数Ｖ（ｉ，ｊ）は最大である。また、その投票数Ｖ（ｉ，ｊ）の極大値１６２は２０である。従って、図１４（ｂ）の投票数Ｖの極大値１６２は、図１４（ａ）の投票数Ｖの極大値１６１よりも大きい。
また、その投票数Ｖの極大値１６２である座標は（ｉｄ，ｊｄ）である。
【０１０８】
位置抽出部３７は、投票数Ｖ（ｉ，ｊ）からオブジェクトの位置および角度を算出する処理部である。
位置抽出部３７は、投票数算出部３６から供給された回転角度θｑおよびｉｊ座標毎に算出した投票数Ｖを受け取る。
【０１０９】
そして、位置抽出部３７は、回転角度θｑ毎に、投票数の極大値ＶＭｑを算出する。位置抽出部３７は、回転角度θｑ毎に、投票率（投票数Ｖ÷特徴点の数ｍ）を算出する。
以下、入力画像の縮小画像を用いた粗検出の場合と、入力画像をそのまま用いた等倍検出の場合とに分けて説明する。
【０１１０】
縮小画像を用いた粗検出の場合、位置抽出部３７は、ある回転角度θｑにおいて、ある座標（ｉ，ｊ）の投票率が、所定の閾値を超えた場合、その座標（ｉ，ｊ）に「オブジェクトがある」と判定する。
ここで、粗検出の場合、位置抽出部３７は、所定の閾値を超える全ての場合で「オブジェクトがある」と判定する。従って、位置抽出部３７は、オブジェクトを１個でなく、複数検出する場合がある。
【０１１１】
一方、等倍画像を用いた等倍検出の場合、位置抽出部３７は、投票数の極大値ＶＭｑの中から、最大値を抽出する。
そして、位置抽出部３７は、その最大値をとる回転角度θｄを抽出する。また、位置抽出部３７は、その最大値をとる座標（ｉｄ，ｊｄ）を抽出する。
【０１１２】
なお、本実施形態では、位置抽出部３７は、投票数が最大値となる回転角度θｄと座標（ｉｄ，ｊｄ）とを抽出するがこれに限らず、投票数が所定の閾値を超えた値となる回転角度θｄと座標（ｉｄ，ｊｄ）とを抽出してもよい。
そして、位置抽出部３７は、その回転角度θｄにおいて、座標（ｉｄ，ｊｄ）における投票率が所定の閾値を超えた場合、その座標（ｉｄ，ｊｄ）に「オブジェクトがある」と判定する。
【０１１３】
等倍画像を用いた等倍検出において、上記の位置抽出部３７の投票数Ｖ（ｉ，ｊ）からオブジェクトの位置および角度を算出する処理を、図１４の具体例を用いて説明する。
例えば、位置抽出部３７は、回転角度０度の、投票数Ｖ（ｉ，ｊ）の極大値１０を算出する。そして、位置抽出部３７は、回転角度１８０度の、投票数Ｖ（ｉ，ｊ）の極大値２０を算出する。
【０１１４】
次に、位置抽出部３７は、投票数Ｖ（ｉ，ｊ）の極大値１０と投票数Ｖ（ｉ，ｊ）の極大値２０との中から、最大値２０を抽出する。位置抽出部３７は、その最大値２０をとる回転角度１８０度を抽出する。
また、位置抽出部３７は、その最大値２０をとる座標（６０，６０）を算出する。
【０１１５】
そして、位置抽出部３７は、その回転角度１８０度において、座標（６０，６０）における投票率が所定の閾値を超えた場合、その座標（６０，６０）に「オブジェクトがある」と判定する。
以上で、位置抽出部３７が、投票数Ｖ（ｉ，ｊ）からオブジェクトの位置および角度を算出する処理の１例を終了する。
【０１１６】
その後、縮小画像を用いた粗検出の場合には、位置抽出部３７は、画像の輪郭８３の座標（ｉｄ，ｊｄ）と回転角度θｄを検出領域抽出部３５に供給する。
また、等倍画像を用いた等倍検出場合には、位置抽出部３７は、画像の輪郭８３の座標（ｉｄ，ｊｄ）と回転角度θｄを図示されていない外部装置に供給する。
【０１１７】
図１５は、本実施形態において、モデル抽出部１０が回転角度θｑ毎に、参照オブジェクトの特徴点の位置を記憶部２０へ保存する手順を示すフローチャートである。
まず、ステップＳ１６１において、登録画像入力部１１は、不図示の外部装置から供給された、参照オブジェクトが写されたデジタル画像（モデル画像）を受け取り、そのモデル画像をノイズ低減部１２に供給する。
【０１１８】
次に、ステップＳ１６２において、ノイズ低減部１２は、登録画像入力部１１から供給されたモデル画像を受け取り、モデル画像のノイズを除去したノイズ低減モデル画像を生成し、輪郭抽出部１３に供給する。
次に、ステップＳ１６３において、輪郭抽出部１３は、ノイズ低減部１２が出力したノイズ低減モデル画像を受け取り、輪郭を抽出した二値化画像を生成する。
【０１１９】
次に、二値化画像をそのまま用いる等倍検出の場合（ステップＳ１６４：ＹＥＳ）、輪郭抽出部１３は、二値化画像を特徴点抽出部１５へ供給する。
一方、二値化画像をそのまま用いない場合（ステップＳ１６４：ＮＯ）、輪郭抽出部１３は、二値化画像を画像縮小部１４へ供給する。
【０１２０】
次に、ステップＳ１６５において、画像縮小部１４は、輪郭抽出部１３が出力した二値化画像を受け取る。そして、画像縮小部１４は、二値化画像を所定の倍率で縮小して縮小画像を生成する。次に、画像縮小部１４は、縮小画像を特徴点抽出部１５へ供給する。
【０１２１】
次に、ステップＳ１６６において、特徴点抽出部１５は、輪郭抽出部１３から出力された二値化画像または画像縮小部１４から出力された縮小画像を受け取る。そして、特徴点抽出部１５は、その二値化画像またはその縮小画像に映し出された参照オブジェクトの特徴点を抽出する。次に、特徴点抽出部１５は、その特徴点を間引き部１６へ供給する。
【０１２２】
次に、ステップＳ１６７において、間引き部１６は、特徴点抽出部１５から出力された特徴点を受け取る。そして、間引き部１６は、その特徴点から検出精度に提供を与えない程度に、特徴点の数を減らす。次に、間引き部１６は、減らした後の特徴点を回転部１７へ供給する。
【０１２３】
次に、ステップＳ１６８において、回転部１７は、間引き部１６から出力された特徴点を受け取る。そして、回転部１７は、その特徴点を参照オブジェクトの代表点（例えば、重心）を中心にして、所定の角度（例えば、４度）ずつ回転させた特徴点の代表点からの座標を算出する。次に、回転部１７は、その特徴点の代表点からの座標を記憶部２０に書き込む。以上で、本フローチャートの処理は終了する。
【０１２４】
図１６は、同実施形態において、物体検出部３０がベクトル相関法を用いて、オブジェクト検出をする手順を示すフローチャートである。
まず、ステップＳ１７１において、画像入力部３１は、図示されていない撮像装置６から出力された撮像信号を受け取る。そして、画像入力部３１は、その撮像信号をデジタル画像へ変換する。次に、画像入力部３１は、そのデジタル画像をノイズ低減部３２へ供給する。なお、撮像信号は、動画でも静止画でもよい。
【０１２５】
次に、ステップＳ１７２において、ノイズ低減部３２は、画像入力部３１から出力されたデジタル画像を受け取る。そして、ノイズ低減部３２は、そのデジタル画像のノイズを低減したノイズ低減画像を生成する。次に、ノイズ低減部３２は、そのノイズ低減画像を輪郭抽出部３３へ供給する。
【０１２６】
次に、ステップＳ１７３において、輪郭抽出部３３は、ノイズ低減部３２が出力したノイズ低減画像を受け取る。そして、輪郭抽出部３３は、そのノイズ低減画像から輪郭を抽出した二値化画像を生成する。次に、粗検出のため、輪郭抽出部３３は、その二値化画像を画像縮小部３４へ供給する。
【０１２７】
次に、ステップＳ１７４において、物体検出部３０は、前記二値化画像を用いて、オブジェクトの粗検出を行う。物体検出部３０は、オブジェクトの位置と回転角度を検出する。オブジェクトの粗検出の処理の流れは、図１７の説明で後述する。
次に、ステップＳ１７５において、物体検出部３０は、粗検出時に検出したオブジェクトの位置と回転角度を用いて、オブジェクトの等倍検出を行う。オブジェクトの等倍検出の処理の流れは、図１８の説明で後述する。
【０１２８】
次に、ステップＳ１７６において、物体検出部３０は、すでに全モデルを用いてオブジェクトの検出をしたか否か判定する。まだ全モデルを用いていない場合（ステップＳ１７６：ＮＯ）、物体検出部３０は、ステップＳ１７４からの処理を行う。
一方、ステップＳ１７７において、すでに全モデルを用いた場合（ステップＳ１７６：ＹＥＳ）、物体検出部３０は、他の撮像信号に対しても繰り返し処理が必要か否か判定する。
【０１２９】
次に、ステップＳ１７７において、物体検出部３０は、他の撮像信号に対して繰り返し処理が必要と判定した場合（ステップＳ１７７：ＹＥＳ）、物体検出部３０は、ステップＳ１７１の処理に戻る。一方、ステップＳ１７７において、物体検出部３０は、他の撮像信号に対して繰り返し処理が不要と判定した場合（ステップＳ１７７：ＮＯ）、物体検出部３０は、物体検知処理を終了する。以上で、本フローチャートの処理は終了する。
【０１３０】
図１７は、本実施形態において、オブジェクトの粗検出における物体検出部３０の処理手順を示すフローチャートである。
まず、ステップＳ１８１において、画像縮小部３４は、輪郭抽出部３３から供給された二値化画像を受け取る。そして、画像縮小部３４は、その二値化画像を所定の比率で縮小した縮小画像を生成する。次に、画像縮小部３４は、その縮小画像を検出領域抽出部３５へ供給する。
【０１３１】
次に、ステップＳ１８２において、検出領域抽出部３５は、画像縮小部３４から供給された縮小画像を受け取る。そして、検出領域抽出部３５は、その縮小画像から物体を検出するための検出対象領域を抽出する。次に、検出領域抽出部３５は、その検出対象領域を投票数算出部３６へ供給する。
【０１３２】
次に、ステップＳ１８３において、投票数算出部３６は、検出領域抽出部３５から出力された検出対象領域を受け取る。そして、投票数算出部３６は、その検出対象領域において投票処理を行い、オブジェクトモデルの回転角度毎に、その検出対象領域における各座標の投票数を算出する。なお、投票処理の詳細な処理の手順は後述する。次に、投票数算出部３６は、その回転角度および座標毎の投票数を位置抽出部３７へ供給する。
【０１３３】
次に、ステップＳ１８４において、位置抽出部３７は、投票数算出部３６から出力された回転角度および座標毎の投票数を受け取る。そして、位置抽出部３７は、その回転角度および座標毎の投票数から回転角度および座標毎の投票率を算出する。
次に、ステップＳ１８５において、位置抽出部３７は、投票率が所定の閾値を超えた場合（ステップＳ１８４：ＹＥＳ）、「オブジェクトを検出した」と判定する。一方、位置抽出部３７は、投票率が所定の閾値以下の場合（ステップＳ１８４：ＮＯ）、ステップＳ１８６からの処理を行う。
【０１３４】
次に、ステップＳ１８６において、位置抽出部３７は、全ての位置についての投票率を調べていない場合（ステップＳ１８６：ＮＯ）、ステップＳ１８４からの処理を行う。
一方、ステップＳ１８６において、位置抽出部３７は、全ての位置についての投票率を調べた場合（ステップＳ１８６：ＹＥＳ）、位置抽出部３７は、オブジェクトが検出された座標の情報を検知領域抽出部３５へ供給する。以上で、本フローチャートの処理は終了する。
【０１３５】
図１８は、同実施形態において、オブジェクトの等倍検出における物体検出部３０の処理手順を示すフローチャートである。
まず、ステップＳ１９１において、検出領域抽出部３５は、粗検出終了時に位置抽出部３７から出力されたオブジェクトが検出された座標の情報を受け取る。また、検出領域抽出部３５は、輪郭抽出部３３から出力された二値化画像を受け取る。
【０１３６】
そして、検出領域抽出部３５は、そのオブジェクトが検出された座標を、オブジェクトを検出するための絞り込み領域の座標とする。次に、検出領域抽出部３５は、その絞り込み領域の座標の情報を投票数算出部３６へ供給する。
【０１３７】
次に、ステップＳ１９２において、投票数算出部３６は、検出領域抽出部３５から出力された絞り込み領域の座標の情報を受け取る。そして、投票数算出部３６は、その検出対象領域において投票処理を行い、オブジェクトモデルの回転角度毎に、その検出対象領域における各座標の投票数を算出する。次に、投票数算出部３６は、その回転角度および座標毎の投票数の情報を位置抽出部３７へ供給する。
【０１３８】
次に、ステップＳ１９３において、位置抽出部３７は、投票数算出部３６から出力された回転角度および座標毎の投票数の情報を受け取る。そして、位置抽出部３７は、その回転角度および座標毎の投票数から、回転角度毎に投票数の極大値を算出する。
更に、ステップＳ１９４において、位置抽出部３７は、回転角度分の極大値の中から、その中での最大値を抽出する。次に、ステップＳ１９５において、位置抽出部３７は、その最大値をとる位置および回転角度を抽出する。
【０１３９】
次に、ステップＳ１９６において、位置抽出部３７は、前記最大値から投票率を算出する。そして、位置抽出部３７は、投票率が所定の閾値を超えた場合（ステップＳ１９６：ＹＥＳ）、「オブジェクトを検出した」と判定する（ステップＳ１９７）。一方、ステップＳ１９６において、位置抽出部３７は、投票率が所定の閾値以下の場合（ステップＳ１９６：ＮＯ）、処理を終了する。以上で、本フローチャートの処理は終了する。
【０１４０】
図１９は、本実施形態において、投票数算出部が行う粗検出時の投票処理の手順を示すフローチャートである。
まず、ステップＳ２００１において、投票数算出部３６は、記憶部２０から回転オブジェクトモデルにおける特徴点の座標と、その特徴点に対応する投票加算数を読み出す。次に、投票数算出部３６は、ｉ座標の値、ｊ座標の値、および回転オブジェクトモデルの特徴点番号ｓを０に（初期化）する。また、全てのｉｊ座標系の座標における投票数を０に（初期化）する。
【０１４１】
次に、ステップＳ２００２において、着目画素の画素値が０の場合（ステップＳ２００２：ＮＯ）、投票数算出部３６は、ステップＳ２００９の処理へ移る。
一方、ステップＳ２００２において、着目画素の画素値が１の場合（ステップＳ２００２：ＹＥＳ）、投票数算出部３６は、回転オブジェクトモデルにおける特徴点の座標（ｘｒａ（ｓ），ｙｒａ（ｓ））をｉｊ座標系の座標（ｉ＋ｘｒａ（ｓ），ｊ＋ｙｒａ（ｓ））へ変換する（ステップＳ２００３）。
【０１４２】
次に、ステップＳ２００４において、投票数算出部３６は、そのｉｊ座標系の座標（ｉ＋ｘｒａ（ｓ），ｊ＋ｙｒａ（ｓ））が検査対象領域内か否か判定する。ステップＳ２００４において、そのｉｊ座標系の座標（ｉ＋ｘｒａ（ｓ），ｊ＋ｙｒａ（ｓ））が検査対象領域内でない場合（ステップＳ２００４：ＮＯ）、投票数算出部３６は、ステップＳ２００６処理へ移る。
一方、ステップＳ２００４において、そのｉｊ座標系の座標（ｉ＋ｘｒａ（ｓ），ｊ＋ｙｒａ（ｓ））が検査対象領域内である場合（ステップＳ２００４：ＹＥＳ）、投票数算出部３６は、ｉｊ座標系の座標（ｉ＋ｘｒａ（ｓ），ｊ＋ｙｒａ（ｓ））の位置における投票数に、その特徴点に対応する投票加算数を加算する（ステップＳ２００５）。
【０１４３】
次に、ステップＳ２００６において、投票数算出部３６は、回転オブジェクトモデルの全特徴点の投票加算数を投票数に加算したか否か判定する。回転オブジェクトモデルの全特徴点の投票加算数を投票数に加算していない場合（ステップＳ２００６：ＮＯ）、投票数算出部３６は、特徴点番号ｓを１増加させ（ステップＳ２００６：ＮＯ）、ステップＳ２００３の処理に戻る。
一方、ステップＳ２００６において、回転オブジェクトモデルの全特徴点の投票加算数を投票数に加算した場合（ステップＳ２００６：ＹＥＳ）、投票数算出部３６は、特徴点番号ｓを０に（初期化）する（ステップＳ２００８）。
【０１４４】
次に、ステップＳ２００９において、投票数算出部３６は、座標（ｉ＋１，ｊ）が検査対象領域内か否か判定する。座標（ｉ＋１，ｊ）が検査対象領域内である場合（ステップＳ２００９：ＹＥＳ）、投票数算出部３６は、ｉ座標の値を１増加させ（ステップＳ２０１０）、ステップＳ２００２の処理に戻る。
一方、ステップＳ２００９において、座標（ｉ＋１，ｊ）が検査対象領域内でない場合（ステップＳ２００９：ＮＯ）、投票数算出部３６は、ｉ座標の値を０に（初期化）する（ステップＳ２０１１）。
【０１４５】
次に、ステップＳ２０１２において、投票数算出部３６は、座標（ｉ，ｊ＋１）が検査対象領域内か否か判定する。座標（ｉ，ｊ＋１）が検査対象領域内である場合（ステップＳ２０１２：ＹＥＳ）、投票数算出部３６は、ｊ座標の値を１増加させ（ステップＳ２０１３）、ステップＳ２００２の処理に戻る。
一方、ステップＳ２０１２において、座標（ｉ，ｊ＋１）が検査対象領域内でない場合（ステップＳ２０１２：ＮＯ）、投票数算出部３６は、投票数Ｖａ（ｉ，ｊ）が所定の閾値を超えた座標を絞り込み領域の座標として算出する。次に、ステップＳ２０１４において、投票数算出部３６は、その絞り込み領域の座標を、投票数算出部３６へ供給する。以上で、本フローチャートの処理は終了する。
【０１４６】
図２０は、同実施形態において、投票数算出部３６が行う等倍検出時の投票処理の手順を示すフローチャートである。
まず、ステップＳ２１１において、投票数算出部３６は、投票数算出部３６から出力された絞り込み領域の座標を受け取る。次に、投票数算出部３６は、絞り込み領域の座標中から１つの座標（ｉ，ｊ）を読み出す。また、投票数算出部３６は、回転角度のインデックスｑを０に（初期化）する（ステップＳ２１１）。また、全てのｉｊ座標系の座標における投票数を０に（初期化）する
【０１４７】
次に、ステップＳ２１２において、着目画素の画素値が０の場合（ステップＳ２１２：ＮＯ）、投票数算出部３６は、ステップＳ２１８の処理へ移る。
一方、ステップＳ２１２において、着目画素の画素値が１の場合（ステップＳ２１２：ＹＥＳ）、投票数算出部３６は、回転角度θｑのオブジェクトモデルにおける特徴点の座標（ｘｒ（ｐ，ｑ），ｙｒ（ｐ，ｑ））をｉｊ座標系の座標（ｉ＋ｘｒ（ｐ，ｑ），ｊ＋ｙｒ（ｐ，ｑ））へ変換する（ステップＳ２１３）。
【０１４８】
次に、ステップＳ２１４において、投票数算出部３６は、そのｉｊ座標系の座標（ｉ＋ｘｒ（ｐ，ｑ），ｊ＋ｙｒ（ｐ，ｑ））における投票数に１を加算する。
次に、ステップＳ２１５において、投票数算出部３６は、全ての回転角度について、ｉｊ座標系の座標における投票数に１を追加する処理をしたか否か判定する。
【０１４９】
ステップＳ２１５において、全ての回転角度について、ｉｊ座標系の座標における投票数に１を追加する処理をしていない場合（ステップＳ２１５：ＮＯ）、投票数算出部３６は、回転角度のインデックスｑを１増加させ（ステップＳ２１６）、ステップＳ２１３の処理に戻る。
一方、ステップＳ２１５において、全ての回転角度について、ｉｊ座標系の座標における投票数に１を追加する処理をした場合（ステップＳ２１５：ＹＥＳ）、投票数算出部３６は、回転角度のインデックスｑを０に（初期化）する（ステップＳ２１７）。
【０１５０】
次に、ステップＳ２１８において、投票数算出部３６は、次の絞り込み領域の座標があるか否か判定する（ステップＳ２１８）。ステップＳ２１８において、次の絞り込み領域の座標がある場合（ステップＳ２１８：ＹＥＳ）、投票数算出部３６は、次の絞り込み領域の座標を読み出し（ステップＳ２１９）、ステップＳ２１２の処理に戻る。
一方、ステップＳ２１８において、次の絞り込み領域の座標がない場合（ステップＳ２１８：ＮＯ）、投票数算出部３６は、回転角度毎のｉｊ座標系の座標における投票数を位置抽出部３７へ供給する。以上で、本フローチャートの処理は終了する。
【０１５１】
以上により、本実施形態であるオブジェクト検出装置８は、オブジェクトの位置と回転角度を算出する際に、オブジェクトの位置を予め絞り込んでおくことによって、回転角度を算出する演算量を削減できる。これによって、オブジェクトの位置および回転角度の検出時間を削減することができる。
【０１５２】
なお、本実施形態であるオブジェクト検出装置８の一部、例えば物体検出部３０の機能をコンピューターで実現するようにしてもよい。この場合、その機能を実現するためのオブジェクト検出プログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたオブジェクト検出プログラムをコンピューターシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、光ディスク、メモリカード等の可搬型記録媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリのように、一定期間プログラムを保持するものを含んでもよい。また上記のプログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせにより実現するものであってもよい。
【０１５３】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０１５４】
１  ロボット
２  支持台
３  アーム部
４  ハンド部
５  フレーム
６  撮像装置
７  ケーブル
８  オブジェクト検出装置
１０  モデル抽出部
１１  登録画像入力部
１２  ノイズ低減部
１３  輪郭抽出部
１４  画像縮小部
１５  特徴点抽出部
１６  間引き部
１７  回転部
２０  記憶部
３０  物体検出部
３１  画像入力部
３２  ノイズ低減部
３３  輪郭抽出部
３４  画像縮小部
３５  検出領域抽出部
３６  投票数算出部
３７  位置抽出部
【図１】
2011227696.tif 000003
【図２】
2011227696.tif 000004
【図３】
2011227696.tif 000005
【図４】
2011227696.tif 000006
【図５】
2011227696.tif 000007
【図６】
2011227696.tif 000008
【図７】
2011227696.tif 000009
【図８】
2011227696.tif 000010
【図９】
2011227696.tif 000011
【図１１】
2011227696.tif 000012
【図１２】
2011227696.tif 000013
【図１３】
2011227696.tif 000014
【図１４】
2011227696.tif 000015
【図１５】
2011227696.tif 000016
【図１６】
2011227696.tif 000017
【図１７】
2011227696.tif 000018
【図１８】
2011227696.tif 000019
【図１９】
2011227696.tif 000020
【図２０】
2011227696.tif 000021
【図１０】
2011227696.tif 000022