(57)【特許請求の範囲】
【請求項１】
１枚の入力画像から物体認識を行う３次元物体認識システムにおいて、
物体名、３次元エッジモデル、２次元モデル（複数の画像に対するカメラ姿勢、画像エッジ点群、該各画像エッジ点の特徴ベクトル、及び、各画像エッジ点と対応する３次元エッジ点）を組にして物体モデルとして記憶する物体モデル記憶手段を有し、
前記入力画像から画像エッジ点群を抽出する画像エッジ抽出手段と、
前記画像エッジ抽出手段で抽出された画像エッジ点の特徴ベクトルを生成する特徴ベクトル生成手段と、
前記特徴ベクトル生成手段で得られた前記入力画像の画像エッジ点の特徴ベクトルと、前記物体モデル記憶手段に記憶された物体モデルがもつ画像エッジ点の特徴ベクトルとを比較して、前記入力画像にマッチする物体モデルを検索する２次元モデル照合手段と、
該検索された物体モデルがもつ３次元エッジモデルの３次元エッジ点を、前記入力画像に投影した位置が前記入力画像の画像エッジ点の位置と一致する度合いが大きくなるようなカメラ姿勢を求める３次元姿勢推定手段とを備え、
前記入力画像の物体名とカメラ姿勢とを出力することを特徴とする３次元物体認識システム。
【請求項２】
カメラ画像列から、物体認識に用いる物体モデルを生成するシステムであって、
画像列と該画像列を撮影した際のカメラ姿勢列を入力して、物体認識に用いるモデル画像と該モデル画像を撮影したカメラ姿勢を選択するモデル画像選択手段と、
該モデル画像を入力して画像エッジ点群を抽出するエッジ抽出手段と、
該エッジ抽出手段で抽出された画像エッジ点の特徴ベクトルを生成する特徴ベクトル生成手段と、
該モデル画像に対応するカメラ姿勢と物体の３次元エッジモデルを入力して、該３次元エッジモデルに含まれる各３次元エッジ点の該モデル画像への投影を計算して投影エッジ点を求める３次元モデル投影手段と、
該３次元モデル投影手段で計算された前記各投影エッジ点に対して、前記エッジ抽出手段で抽出された画像エッジ点のうち、該投影エッジ点に位置が最も近い画像エッジ点を求め、該投影エッジ点の投影元である３次元エッジ点と前記最も近い画像エッジ点の対応関係を生成するエッジ点対応づけ手段とを備え、
物体名、３次元エッジモデル、２次元モデル（複数の画像に対するカメラ姿勢、画像エッジ点群、該各画像エッジ点の特徴ベクトル、及び、各画像エッジ点と対応する３次元エッジ点）を組にして物体モデルとして出力することを特徴とする３次元物体認識システム用物体モデル生成システム。
【請求項３】
前記特徴ベクトル生成手段は、画像エッジ点の特徴ベクトルを生成する際に、該画像エッジ点を中心とした円形領域を求めて、該円周上にあるエッジ強度の和が最大あるいは極大になるように該円形領域の半径を定め、
該円形領域に含まれる画像情報から特徴ベクトルを生成することを特徴とする請求項１
記載の３次元物体認識システム又は請求項２記載の３次元物体認識システム用物体モデル生成システム。
【請求項４】
コンピュータ・システムを、
入力画像から画像エッジ点群を抽出する画像エッジ抽出手段と、
前記画像エッジ抽出手段で抽出された画像エッジ点の特徴ベクトルを生成する特徴ベクトル生成手段と、
前記特徴ベクトル生成手段で得られた前記入力画像の画像エッジ点の特徴ベクトルと、前記物体モデル記憶手段に記憶された物体モデルがもつ画像エッジ点の特徴ベクトルとを比較して、前記入力画像にマッチする物体モデルを検索する２次元モデル照合手段と、
該検索された物体モデルがもつ３次元エッジモデルの３次元エッジ点を、前記入力画像に投影した位置が前記入力画像の画像エッジ点の位置と一致する度合いが大きくなるようなカメラ姿勢を求める３次元姿勢推定手段
として機能させ、
前記入力画像の物体名とカメラ姿勢とを出力させることを特徴とするコンピュータ・プログラム。
【請求項５】
コンピュータ・システムを、
画像列と該画像列を撮影した際のカメラ姿勢列を入力して、物体認識に用いるモデル画像と該モデル画像を撮影したカメラ姿勢を選択するモデル画像選択手段と、
該モデル画像を入力して画像エッジ点群を抽出するエッジ抽出手段と、
該エッジ抽出手段で抽出された画像エッジ点の特徴ベクトルを生成する特徴ベクトル生成手段と、
該モデル画像に対応するカメラ姿勢と物体の３次元エッジモデルを入力して、該３次元エッジモデルに含まれる各３次元エッジ点の該モデル画像への投影を計算して投影エッジ点を求める３次元モデル投影手段と、
該３次元モデル投影手段で計算された前記各投影エッジ点に対して、前記エッジ抽出手段で抽出された画像エッジ点のうち、該投影エッジ点に位置が最も近い画像エッジ点を求め、該投影エッジ点の投影元である３次元エッジ点と前記最も近い画像エッジ点の対応関係を生成するエッジ点対応づけ手段として機能させ、
物体名、３次元エッジモデル、２次元モデル（複数の画像に対するカメラ姿勢、画像エッジ点群、該各画像エッジ点の特徴ベクトル、及び、各画像エッジ点と対応する３次元エッジ点）を組にして物体モデルとして出力させる
ことを特徴とするコンピュータ・プログラム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像入力装置(カメラ) を移動しながら撮影した画像列から物体認識に用い
る物体モデルを生成すること、および、その物体モデルを用いてカメラ画像から物体を認識し、物体の３次元姿勢を推定することに関する。
【背景技術】
【０００２】
本発明で対象とする物体認識は、カメラ画像を入力とし、あらかじめ定義した物体モ
デル群をその入力画像と照合して、最もよくマッチする物体モデルを出力する処理であ
る。最もマッチする物体モデルがなければ、何も出力しない。さらに、マッチする物体
モデルの３次元姿勢を推定する。これは、ロボットによる物体操作などへの応用におい
て、とくに重要である。
一般に、物体認識には物体モデルが必要であるが、物体モデルを手動で生成するのは、多大な工数がかかる。また、複雑な形状の物体に対応しにくい、誤差が入りやすい、などの問題がある。
【０００３】
さて、物体モデルの生成システムも含む、カメラ画像から物体認識を行う方法は、従来から多数提案されている。物体認識は、一般に、物体モデルがもつ特徴と入力画像から抽出した特徴を比較して、よくマッチする物体モデルを求める。認識に用いる特徴として、２次元特徴と３次元特徴がある。
２次元特徴を用いる方法としては、たとえば、特許文献１および非特許文献１がある。特許文献１に記載している方法では、カメラ角度を少しずつ変えながら、対象物体の画像を撮影し、特徴を抽出して物体モデルとする。また、非特許文献１の方法も同様に、カメラ角度を変えながら対象物体の画像を撮り、スケール不変な特徴を抽出して、物体モデルとする。マッチングに用いる特徴量は異なるが、いずれも、２次元特徴を用いて入力画像によくマッチするモデル画像を求める。
【０００４】
３次元特徴を用いる方法として、たとえば、特許文献２がある。特許文献２の方法では、ステレオ画像を入力として、物体の３次元形状から抽出した３次元特徴を認識に用いている。具体的には、エッジセグメントを構成単位として物体モデルを生成する。その際、３次元空間でのエッジセグメントの分岐点、屈曲点、変曲点、遷移点を認識特徴として用いる。これらの３次元特徴を用いて、指定した物体が画像中に存在するかを調べ、存在する場合は、入力画像の３次元特徴と位置が合うように、３次元物体モデルを座標変換して、物体の３次元姿勢推定を行う。
【０００５】
【特許文献１】特開２００３−２７１９２９号公報
【特許文献２】特許２９６１２６４号公報
【非特許文献１】D. G. Lowe: “Distinctive image features from scale-invariant keypoints,”International Journal of Computer Vision, 60:91-110,2004.
【非特許文献２】友納:”画像列からの密な物体モデル生成のためのエッジの３次元復元”、日本ロボット学会第２３回学術講演会予稿集，2005.
【非特許文献３】友納:”基線長選択機能を備えた形状復元に基づく単眼カメラ画像列からの３次元マップの構築”第１０回ロボティクスシンポジア予稿集, pp.159-164, 2005.
【非特許文献４】J. Canny: A Computational Approach to Edge Detection,IEEE Trans. PAMI, Vol. 8, No. 6, pp. 679-698 (1986).
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の２次元特徴を用いる方法では、画像に写っている物体を特定することはできる
が、２次元特徴だけを用いているため、物体の正確な３次元姿勢を推定することはでき
ない。
一方、３次元特徴を用いる方法では、次のような問題がある。特許文献２では、入力
画像から３次元特徴を得るにはステレオ画像を用いているが、そのためには複眼のステ
レオカメラが必要であり、その装置コストや校正の手間がかかるという問題がある。ま
た、対象物体が遠方にある場合は、ステレオカメラによる３次元復元に必要な視差が充
分に得られなくなり、有意な３次元特徴が抽出できず、認識ができなくなるという問題
がある。
これに対し、ステレオカメラを用いずに、１台の単眼カメラを移動させながら入力画像
を複数枚撮影して３次元特徴を得る方法も考えられる。しかし、カメラを適切に移動させながら画像を撮影するのに時間を要し、また、３次元復元処理にも時間がかかる。これらに要する時間は、物体モデル生成ではさほど問題にならないが、物体認識はロボットの動作中に実時間で行う必要性が高いため、大きな短所となりうる。
本発明は、これらの問題に対処して、１枚のカメラ画像から物体の認識と３次元姿勢推
定を安定して行うことを目的とする。
【課題を解決するための手段】
【０００７】
上述の目的を達成するために、本発明は、１枚の入力画像から物体認識を行う３次元物体認識システムにおいて、物体名、３次元エッジモデル、２次元モデル（複数の画像に対するカメラ姿勢、画像エッジ点群、該各画像エッジ点の特徴ベクトル、及び、各画像エッジ点と対応する３次元エッジ点）を組にして物体モデルとして記憶する物体モデル記憶手段を有し、前記入力画像から画像エッジ点群を抽出する画像エッジ抽出手段と、前記画像エッジ抽出手段で抽出された画像エッジ点の特徴ベクトルを生成する特徴ベクトル生成手段と、  前記特徴ベクトル生成手段で得られた前記入力画像の画像エッジ点の特徴ベクトルと、前記物体モデル記憶手段に記憶された物体モデルがもつ画像エッジ点の特徴ベクトルとを比較して、前記入力画像にマッチする物体モデルを検索する２次元モデル照合手段と、該検索された物体モデルがもつ３次元エッジモデルの３次元エッジ点を、前記入力画像に投影した位置が前記入力画像の画像エッジ点の位置と一致する度合いが大きくなるようなカメラ姿勢を求める３次元姿勢推定手段とを備え、前記入力画像の物体名とカメラ姿勢とを出力することを特徴とする３次元物体認識システムである。
本発明は、物体モデルを２次元の画像エッジ点とそれらを３次元に復元した３次元エッジ点とで構成し、多数の画像エッジ点を２次元特徴として用いて安定な認識を行いながら、３次元エッジ点を用いて物体の３次元姿勢推定を正確に行っている。
【０００８】
また、カメラ画像列から、物体認識に用いる物体モデルを生成するシステムであって、
画像列と該画像列を撮影した際のカメラ姿勢列を入力して、物体認識に用いるモデル画像と該モデル画像を撮影したカメラ姿勢を選択するモデル画像選択手段と、該モデル画像を入力して画像エッジ点群を抽出するエッジ抽出手段と、該エッジ抽出手段で抽出された画像エッジ点の特徴ベクトルを生成する特徴ベクトル生成手段と、該モデル画像に対応するカメラ姿勢と物体の３次元エッジモデルを入力して、該３次元エッジモデルに含まれる各３次元エッジ点の該モデル画像への投影を計算して前記投影エッジ点を求める３次元モデル投影手段と、該３次元モデル投影手段で計算された前記各投影エッジ点に対して、前記エッジ抽出手段で抽出された画像エッジ点のうち、該投影エッジ点に位置が最も近い画像エッジ点を求め、該投影エッジ点の投影元である３次元エッジ点と前記最も近い画像エッジ点の対応関係を生成するエッジ点対応づけ手段とを備え、物体名、３次元エッジモデル、２次元モデル（複数の画像に対するカメラ姿勢、画像エッジ点群、該各画像エッジ点の特徴ベクトル、及び、各画像エッジ点と対応する３次元エッジ点）を組にして物体モデルとして出力することを特徴とする３次元物体認識システム用物体モデル生成システムも構成するとよい。
【０００９】
前記特徴ベクトル生成手段は、画像エッジ点の特徴ベクトルを生成する際に、該画像エッジ点を中心とした円形領域を求めて、該円周上にあるエッジ強度の和が最大あるいは極大になるように該円形領域の半径を定め、該円形領域に含まれる画像情報から特徴ベクトルを生成することもできる。
また、上述のシステムをコンピュータ・システムに構成させるコンピュータ・プログラムも本発明である。
【発明の効果】
【００１０】
本発明によれば、２次元エッジ点（画像エッジ点）と３次元エッジ点の両方を用いるため、物体の特定と３次元姿勢推定を１枚の入力画像で行えるという効果がある。また、エッジ点の各々を独立した特徴点として用いるので、特徴の少ない物体に対しても、認識の安定性が増すという効果がある。
また、この３次元物体認識システムに用いる物体モデルも容易に作成することができる。
【発明を実施するための最良の形態】
【００１１】
以下に、図面を用いて、本発明を実施するための実施形態を説明する。
＜概要＞
本発明は、物体モデル生成と物体認識の２つのフェーズからなる。
物体モデル生成のフェーズでは、複数のカメラ視点から撮影した対象物体の画像列、その撮影時のカメラ運動、および、その画像列から復元した３次元エッジモデルを入力とする。そして、該画像列の画像から抽出した２次元エッジ点、および、その２次元エッジ点と３次元エッジ点の対応関係を出力する。
【００１２】
この処理で、画像列から対象物体だけを切り出す処理が必要である。その方法は従来からいろいろある。簡単な方法として、たとえば、人間がコンピュータ画面上でマウスなどのポインティングデバイスを用いて手動で物体を切り出す方法などが考えられる。
ここで用いる対象物体の画像列は、単眼カメラで撮影した画像でも複眼ステレオカメラの画像でもよい。カメラ運動は、この画像列の各画像を撮影したときのカメラ姿勢の時系列である。各カメラ姿勢がわかれば、単眼カメラの場合でも、ステレオ視の原理に基づいて画像から抽出したエッジを３次元復元することができる。
【００１３】
単眼カメラによる３次元エッジの復元は、たとえば、非特許文献２，３で述べられている。非特許文献２，３では、単眼カメラ画像列に対して、少数の一意性の高い特徴点を画像間で追跡し、因子分解法と逆投影誤差最小化を用いて、カメラ運動を推定する。そして、このカメラ運動を用いて画像間でエッジ点の対応づけを行い、三角測量の原理を用いて３次元復元を行い、３次元エッジモデルを求めている。
物体モデル生成では、画像列とカメラ運動の情報から、次のように物体モデルを生成する。まず、前記画像列からいくつかの画像を選択して、モデル画像とする。各モデル画像から物体のエッジ点を抽出する。
さて、各画像を撮影したカメラ姿勢はわかっているから、前述の３次元エッジモデルを、そのカメラ姿勢に基づいて画像に投影すると、３次元エッジ点の投影像が２次元エッジ点とほぼ重なるはずである。これにより、各画像の２次元エッジ点と３次元エッジ点の対応づけを行うことができる。さらに、エッジ点の近傍領域から、そのエッジ点を識別するための特徴ベクトルを生成しておく。
【００１４】
また、３次元物体認識のフェーズでは、上述のようにして得られた２次元エッジ点と３次元エッジ点の両方を用いて、物体認識を行う。まず、２次元エッジ点を用いて画像レベルで物体を認識し、次に、２次元エッジ点と３次元エッジ点を用いて物体の３次元姿勢推定を行う。
画像レベルの認識では、入力画像の２次元エッジ点に対して特徴ベクトルを生成し、モデル画像の２次元エッジ点の特徴ベクトルと照合する。特徴ベクトルは、多少のカメラ角度の違いがあってもマッチするので、多くの場合、モデル画像のどれかとはマッチする。入力画像とモデル画像で２次元エッジ点がマッチすれば、入力画像の２次元エッジ点と３次元エッジ点の対応がとれるので、３次元姿勢推定が可能になる。
【００１５】
本発明では、エッジを線分として扱うのではなく、独立したエッジ点として扱う。これは、次の利点による。
第一の利点は、エッジ点は大量に得られるので、統計的に処理することで安定して認識を行えることである。認識によく使われる特徴点として、エッジのコーナ点や分岐点などがあるが、その個数は物体あたりたかだか数十個程度である。一方、エッジ点は数千から数万個のオーダで得られる。
第二の利点は、個々のエッジ点は最小限の画像処理で得られるので、エッジ線分などの高次の特徴よりも安定して得られることである。エッジを線分として扱おうとすると、直線当てはめ処理などで誤差が生じる可能性があり、また、線分の端点を正確に求めるのも難しい。
第三の利点は、エッジ点は３次元形状モデルとの対応がとりやすいことである。エッジ点は、見かけの輪郭線(シルエット) でなければ、カメラの視点が変わってもほぼ同じ位置に抽出できる。このため、カメラ画像列から３次元モデルを生成するのに都合がよい。しかも、エッジ点群で構成された３次元モデルは形状が鮮明なので、人間が目視で確認するのにも適している。
【００１６】
＜物体モデル生成＞
図１にしたがい、本発明における物体モデル生成処理の一実施形態を説明する。
モデル画像選択処理１０１は、カメラからの画像列と推定したカメラ運動を入力して、所定の間隔で選択したモデル画像Ｊとカメラ姿勢Ｔを出力する。選択の方法としては、画像を表示して、オペレータが目視で確認しながら手動で選んでもよい。あるいは、カメラ姿勢間の並進量と回転量の間隔をあらかじめ設定しておき、その間隔を超えた移動があった時のカメラ姿勢を自動的に選ぶようにしてもよい。
３次元エッジモデル生成処理１０２では、画像列とカメラ姿勢列から、３次元エッジモデルを生成する。この生成については、上述のように非特許文献２，３に記載されている。これにより、単眼カメラで撮影した画像からでも、３次元エッジモデルを生成することができる。
【００１７】
エッジ抽出処理１０３は、モデル画像選択処理１０１からモデル画像Ｊを入力して画像エッジ点群Ｇを抽出する。画像エッジ点群Ｇの抽出には、たとえば、非特許文献４で提案されたCannyオペレータを用いて、画像のエッジ点を抽出する。
Cannyオペレータは、ガウス関数で画像を平滑化した後、画像の一次微分を施す。そして、エッジの法線方向(微分方向) で微分強度が極大となる点をエッジ点として抽出する。このようなエッジ抽出法では、画像に写っている対象物体の大きさによって、エッジの位置が変化することがある。この問題に対しては、Canny オペレータのガウス関数の分散項を自動調節することで、エッジ位置のずれを軽減することが可能である。
このエッジ抽出処理については、従来技術を用いているので、非特許文献４などを参照されたい。
【００１８】
３次元モデル投影処理１０４は、３次元エッジモデル生成処理１０２で生成された物体の３次元エッジモデル、および、モデル画像選択処理１０１からのモデル画像Ｊとカメラ姿勢Ｔを入力して、このカメラ姿勢Ｔに基づいて透視変換の公式により、３次元エッジモデルに含まれる各エッジ点をモデル画像へ投影して投影エッジ点群を求める。
エッジ点対応づけ処理１０５は、エッジ抽出処理１０３で抽出された画像エッジ点群Ｇと３次元モデル投影処理１０４で求めた投影エッジ点群とについて位置の近いものを見つけて、画像エッジ点ｑと３次元エッジ点Ｐの対応関係を生成する。
【００１９】
特徴ベクトル生成処理１０６は、モデル画像Ｊを入力して、エッジ点対応づけ処理１０５で得られた対応関係を含む画像エッジ点ｑに対して、特徴ベクトルＢを付加する。特徴ベクトルＢは、画像エッジ点ｑの近傍の局所画像から後述の方法で作成する。
物体モデル記憶１０７は、物体モデル名、３次元エッジモデル、および、エッジ点対応づけ処理１０５で生成されたエッジ点対応関係を組にした２次元モデルを物体モデルとして記憶する。
【００２０】
＜物体モデルの説明＞
次に、図２を用いて、本発明の物体認識システムで用いる物体モデルの構成例を説明する。ここで説明する物体モデルは、上述の図１で説明した物体モデル生成の処理で作成されるものであり、上述の物体モデル記憶１０７に記憶されるものである。
物体モデルは、図２(a) に示すように、物体モデル名、３次元エッジモデル、および、２次元モデルから構成される。
物体モデル名はオペレータが物体に与えるもので、通常は対象物体に即した名前をつける。図２（ａ）では、desk1（机１）とつけられている。３次元エッジモデルは、前述のように画像列から復元した３次元エッジ点Ｐｉの集合である。２次元モデルは、あるカメラ視点から対象物体を撮影した画像から抽出された情報である。一般に、１つの物体モデルは複数の２次元モデルをもつ。
【００２１】
２次元モデルは、図２（ｂ）に示すように、２次元モデルＩＤ、モデル画像Ｊ、カメラ姿勢Ｔ、エッジ点集合Ｇから構成される。
２次元モデルＩＤは、２次元モデルを一意に表す記号（例えば、Ｍ１）である。モデル画像Ｊは、対象物体の画像列の中から選択された１枚の画像データである。カメラ姿勢Ｔは、モデル画像を撮影したときのカメラの姿勢であり、ある３次元座標系内の位置（ｘ，ｙ，ｚ）と方向（θ，φ，ψ）を表す６個の変数からなる。座標系は任意でよいが、通常は、画像列の最初の画像を撮影したカメラ姿勢を原点にして設定される。エッジ点集合Ｇは、モデル画像から抽出された画像エッジ点ｑの情報の集合である。
画像エッジ点ｑの情報は、２次元特徴として認識に用いられる。図２（ｃ）は、１個の画像エッジ点ｑの情報の構成である。エッジ点ｑの情報は、モデル画像内での位置（ｕ，ｖ）、方向（ａ）、スケール（Ｓ）、特徴ベクトル（Ｂ）、および、対応する３次元エッジ点（Ｐｊ）から構成される。
モデル画像内での位置（ｕ，ｖ）は、上述のエッジ抽出処理１０３におけるエッジ抽出オペレータにより求められる。方向（ａ）はその位置での画像の微分方向であり、やはり上述のエッジ抽出オペレータにより求められる。スケールはエッジ点ｑの近傍領域のサイズ（Ｓ）であり、その求め方は後で説明する。特徴ベクトルＢは、エッジ点の近傍の局所画像から抽出される多次元の数値情報である。種々のものが利用可能であるが、マッチングを安定して行うために、回転不変性、スケール不変性、照明不変性、カメラ視点の変化による歪みに対する許容性をもつことが望ましい。３次元エッジ点Ｐｊは、モデル画像と３次元エッジモデルの間で画像エッジ点の対応関係を保持するためのものである。
【００２２】
＜２次元モデルの生成手順＞
次に、図３にしたがって、２次元モデルの生成手順を説明する。図３を用いて説明する処理は、図１において、３次元モデル投影処理１０４，エッジ点対応づけ処理１０５および特徴ベクトル生成処理１０６の処理に対応している。
さて、ここでの入力は、モデル画像選択処理１０１で選択したモデル画像Ｊとカメラ姿勢Ｔ、および、エッジ抽出処理１０３で抽出された画像エッジ点群Ｇである。
この時点では、画像エッジ点群Ｇの各画像エッジ点ｑは、図２（ｃ）に示した画像エッジ点の構成において、位置と方向しかもたない。この各画像エッジ点ｑに対して、図２（ｃ）のスケールＳ、特徴ベクトルＢ、および、対応する３次元エッジ点Ｐを求めることが、図３に示したフローチャート処理での目的である。
【００２３】
まず、カメラ姿勢Ｔに基づいて、３次元エッジ点群をモデル画像Ｊに投影する（Ｓ１１０）。
次に、ステップＳ１１２において、画像エッジ点群Ｇから１つの画像エッジ点ｑを取り出す。次に、ステップＳ１１４において、モデル画像Ｊに３次元エッジ点群を投影した像のうち、エッジ点ｑに位置が最も近いものを求める。この基準としては、２点間のユークリッド距離を用いればよい。これを図４を用いて説明する。
たとえば、図４は、カメラ姿勢を用いてカメラ中心と３次元エッジモデルとを直線で結び、それが画像Ｊを切る点を求めることで３次元エッジモデルを画像Ｊに投影していることを示している。図４では、３次元エッジ点Ｐの画像Ｊへの投影点が画像エッジ点ｑと一致するので、画像エッジ点ｑに対応する３次元エッジ点としてＰを設定する。
【００２４】
次に、エッジ点ｑの特徴ベクトルＢを求める（Ｓ１１６）。このとき、ｑのスケールも求める。これらの求め方は後述する。次に、ステップＳ１１８において、画像エッジ点群Ｇにエッジ点が残っているかを調べ、残っていればステップＳ１１２に戻る。エッジ点が残っていなければ、ステップＳ１２０において、モデル画像Ｊ、カメラ姿勢Ｔ，画像エッジ点群Ｇをまとめて２次元モデル情報を生成し、自動的に決めた２次元モデルＩＤをつけて、物体モデル記憶に格納する。
なお、エッジ点ｑから所定の距離以内に３次元エッジ点の投影像がなければ、そのエッジ点ｑの対応はないとしてもよい。この場合、図３に示したフローチャートで、３次元エッジ点Ｐとの対応関係がないときは、特徴ベクトルを生成する処理（Ｓ１１６）はスキップするようにする。
【００２５】
＜特徴ベクトルの生成方法＞
図３における特徴ベクトルの生成（Ｓ１１６）を詳しく説明する。
一般に、物体は、画像により様々な大きさで写っている。少ないモデル画像で種々の入力画像とマッチングできるようにするには、画像中の物体の大きさに依存しないように特徴ベクトルを生成できることが望ましい。このためには、特徴ベクトルを生成する近傍領域の大きさを、物体の大きさに合わせて決める必要がある。
このために、次のように近傍領域の半径Ｓを決め、これを図２（ｃ）で示したエッジ点のスケールＳとする。
【数１】
0004709668.tif 000002
ここで、（ｒ，θ）はエッジ点ｑを中心とした極座標表現であり、Ｖ（ｒ，θ）はｑを中心とした半径ｒの円周上の点（ｒ，θ）でのエッジ強度である。Ｋは適当な比例定数である。
この式は、ｑを中心とした円周上にあるエッジ点の強度の和が最大になる半径を求めている。これは、直観的には、図５のようにｑの周囲のエッジと最もよく接する円に相当する。Ｓは、画像中の物体の大きさに比例するので、Ｓで近傍領域の局所画像を正規化すれば、特徴ベクトルは物体の大きさに依存せず不変になる。なお、上式では最大点を採用しているが、Ｓの適当な初期値から探索を始めて最初に見つかった極大点を用いてもよい。
【００２６】
図６に、物体の大きさに依存しない近傍領域を求めた例を示す。図６で、円の中心が画像エッジ点、円の半径が近傍領域のサイズである。左右の画像で、机の大きさが異なるが、円の大きさが、ほぼ机の大きさに比例して求められていることがわかる。
エッジ点の近傍領域が決まると、その中に含まれる局所画像から特徴ベクトルを生成する。まず、局所画像を上式で求めた近傍領域サイズＳで正規化する。これにより、物体の大きさによらず、近傍領域に含まれる画素の個数を同じにする。
特徴ベクトルは種々のものが利用できるが、たとえば、非特許文献１で提案されたＳＩＦＴ法で用いられる特徴ベクトルを利用する。ＳＩＦＴ法での特徴ベクトルは、特徴点の近傍領域の局所画像を４×４のブロックに分割して、各ブロック内にある画素の微分方向のヒストグラム値を並べて特徴ベクトルとする。方向ヒストグラムは４５°の間隔で離散化される。したがって、４×４×８＝１２８次元のベクトルとなる。ただし、特徴ベクトルが物体の回転に不変となるように、注目しているエッジ点の法線方向からの相対角度で方向ヒストグラムを作る。なお、ＳＩＦＴ法では、特徴点としてＤＯＧ (Difference of Gaussian) フィルタの極値点を用いるが、本発明では、そのかわりにエッジ点を用いていることに注意されたい。
【００２７】
この特徴ベクトルは、微分画像から得た画素の方向情報に基づくため、濃淡画像を直接用いるよりも、照明変化に対する不変性が高い。また、上述のように回転不変性をもつ。局所画像を近傍領域の大きさで正規化するので、物体の大きさに依存しないというスケール不変性も有する。さらに、ＳＩＦＴ特徴ベクトルは局所特徴量なので、画像が全体として多少歪んでも、あまり変化しない。このため、たとえば３０°おきにカメラ角度を変化させて撮影した画像をモデル画像として用いれば、多くの場合、そのどれかは入力画像とマッチする。そこで、３次元エッジモデルを生成した画像列から何枚か抜粋して、モデル画像として用いれば、少数のモデル画像で、種々のカメラ視点から撮影した物体の画像をカバーできる。
以上述べたようにして、本発明では物体モデルを生成する。
【００２８】
＜物体認識＞
図７にしたがい、本発明における物体認識処理の概略を説明する。この物体認識処理は、上述の処理で生成した、図２に示す２次元モデルと３次元エッジモデルを含む物体モデルを使用し、１枚の入力画像から物体を認識するとともにその画像のカメラ姿勢も推定する。
エッジ抽出処理２０２は、入力画像から画像エッジを抽出する。その処理内容は、図１の物体モデル生成におけるエッジ抽出処理１０３と同様である。
特徴ベクトル生成処理２０３は、エッジ抽出処理２０２で抽出した各画像エッジ点ｑに対して、特徴ベクトルを生成する。その処理内容は、図１の物体モデル生成時の特徴ベクトル生成処理１０６と同様である。ただし、物体モデル生成時における特徴ベクトル生成処理１０６では、３次元エッジ点Ｐと対応がとれた画像エッジ点ｑに対してのみ特徴ベクトルを生成したが、物体認識時は、すべての画像エッジ点ｑに対して、特徴ベクトルを生成する。
【００２９】
２次元モデル照合処理２０７は、特徴ベクトル生成処理２０３により特徴ベクトルを付加された画像エッジ点群ｑを入力し、物体モデル記憶１０７の物体モデルを参照して、入力画像エッジ点群と特徴ベクトルがよくマッチする２次元モデルをもつ物体モデルを求める。さらに、マッチした入力画像エッジ点とモデル画像エッジ点のペアの集合Ｈを作る。
３次元姿勢推定処理２０８は、２次元モデル照合処理２０７で求めた物体モデルと２次元モデル、および、エッジ点ペア集合Ｈを入力して、物体の３次元エッジモデルの投影像が入力画像エッジ点群とよく一致するカメラ姿勢を求める。そして、最終的な認識結果として、最もよくマッチした物体モデル名とカメラ姿勢を出力する。
【００３０】
＜物体認識の詳細処理手順＞
図８にしたがい、本発明における物体認識処理手順の一例を説明する。このフローチャートでは、図７の２次元モデル照合処理２０７及び３次元姿勢推定処理２０８を詳しく説明する。
まず、入力画像エッジ点群とマッチするモデル画像エッジ点が多い２次元モデルＭを物体モデル記憶を参照して求める（Ｓ２１２）。エッジ点のマッチングは、特徴ベクトル生成処理２０３で求めた入力画像エッジ群の特徴ベクトルと、２次元モデルＭの各画像エッジ点の特徴ベクトルとの一致度を用いて判定する。
特徴ベクトルの一致度の計算には種々の方法があり得るが、たとえば、特徴ベクトル同士のユークリッド距離や相関などを用いればよい。判定の結果、２次元モデルＭは複数個得られる可能性があるので、それぞれを候補として集合Ｄに登録する。また、２次元モデルＭごとに、マッチしたモデル画像エッジ点と入力画像エッジ点のペア集合を記憶しておく。
【００３１】
次に、集合Ｄから２次元モデルＭを１個取り出して（Ｓ２１４）、２次元モデルＭに対するエッジ点ペア集合を用いて、入力画像とモデル画像間の変換パラメータを求める（Ｓ２１６）。ここでの変換とは、モデル画像に写っている対象物体を入力画像にうまくマッチするように位置や形状を２次元的に変換するものである。変換の種類として、たとえば、相似変換やアフィン変換がある。求めた変換パラメータに違反するエッジ点ペアは取り除く（Ｓ２１８）。この処理については後で詳しく述べる。この２つのステップ（Ｓ２１６とＳ２１８）では、誤ったエッジ点の対応づけを除去し、後のステップにおけるカメラ姿勢の推定（Ｓ２２２）の精度を向上させるためのものである。
ステップＳ２２０においては、入力画像エッジ点と３次元エッジ点の対応関係を求める。モデル画像エッジ点に対応する３次元エッジ点は、物体モデル生成時に得られているので、前のステップ（Ｓ２１８）により入力画像エッジ点とモデル画像エッジ点の対応が得られれば、入力画像エッジ点と３次元エッジ点の対応も得られる。
次に、３次元エッジ点の入力画像への投影像と入力画像エッジ点の位置が一致するように、カメラ姿勢を求める（Ｓ２２２）。この具体的な方法は後で詳しく述べる。このとき、位置がよく一致するエッジ点ペアの個数、および、その位置誤差の和を一致度として計算する。
【００３２】
次に、ステップＳ２２４においては、一致度が所定の閾値を超えたかどうか調べる。閾値を超えれば（Ｓ２２４でＹＥＳ）、その２次元モデルをもつ物体モデルと、前のステップ（Ｓ２２２）で求めたカメラ姿勢を認識結果の候補として登録する（Ｓ２２６）。閾値を超えなければ（Ｓ２２４でＮＯ）、その２次元モデルは採用しない。ステップＳ２２８で、集合Ｄに２次元モデルが残っているか調べ、残っていれば（Ｓ２２８でＹＥＳ）、集合Ｄから残っている２次元モデルを取り出す処理（Ｓ２１４）から処理を繰り返す。
【００３３】
この処理手順に従うと、最終的な認識結果が複数個得られることがある。複数候補が得られた場合の処理として、たとえば、一致度が最も高い候補を採用する、あるいは、他のセンサ情報や以前の認識結果との整合性を利用して候補を絞り込む、などが考えられる。
なお、入力画像と類似する２次元モデルの集合Ｄを作成するステップ（Ｓ２１２）において、物体モデル記憶１０７に含まれるすべての２次元モデルに対して、入力画像エッジ点群の特徴ベクトルのマッチングを行うと、多くの計算時間がかかる。そこで、非特許文献１で提案されているように、特徴ベクトルのインデックスをＫＤ木で構成して、マッチングを高速に行うようにしてもよい。
【００３４】
＜エッジ点ペア集合のフィルタリング（Ｓ２１８）＞
特徴ベクトルは局所特徴なので、それだけを用いてマッチングしたエッジ点ペアには多くの誤りが含まれうる。そこで、物体の画像上の形状にもとづく制約を用いて、誤ったエッジ点ペアを除去する処理（Ｓ２１８）を行っている。このために、まず、入力画像とモデル画像の変換を求める（Ｓ２１６）。この変換としては、相似変換やアフィン変換があるが、ここでは相似変換の例を述べる。
画像エッジ点は、位置、方向、スケールの情報をもつため、１組の入力画像エッジ点とモデル画像エッジ点とから、エッジ点の画像上での並進量（位置の差）、回転量（方向の差）、拡縮量（スケールの比）を計算することができる。各エッジ点ペアについてこれらの変換量を計算し、クラスタリングまたは投票処理を行って、最大多数を占める変換量を求める。このようにして求めた変換量によって、入力画像とモデル画像の相似変換を定義する。なお、アフィン変換の場合は、２組のエッジ点ペアからアフィン変換量を計算できる。
次に、エッジ点ペア集合に含まれるエッジ点ペアについて、求めた相似変換量と大きく値が異なる相似変換量をもつものを除去する。これにより、エッジ点の誤対応の多くが除去される。
【００３５】
＜３次元エッジモデルのマッチング（Ｓ２２２）＞
入力画像エッジ点と３次元エッジ点の対応から、カメラ姿勢を計算する処理（Ｓ２２２）を説明する。
まず、カメラ姿勢の初期値として、モデル画像を撮影したカメラ姿勢を用いる。画像上の特徴が似ているということは、モデル画像のカメラ姿勢が入力画像のカメラ姿勢と近いと期待されるからである。次に、３次元エッジ点の入力画像への投影像が、入力画像のエッジ特徴点と位置がよく一致するようにカメラ姿勢を計算する。これは次式を最小化することで求める。
【数２】
0004709668.tif 000003
ここで、Ｒは求めるカメラ姿勢の回転行列、Ｔはカメラの並進ベクトルである。また、Ｐｉ＝（Ｘｉ，Ｙｉ，Ｚｉ）Ｔは３次元エッジ点、Ｐｉ’＝（Ｘｉ’，Ｙｉ’，Ｚｉ’）ＴはＰｉのカメラ姿勢Ｒ，Ｔによる座標変換点、ｑｉ＝（ｕｉ，ｖｉ）はＰｉに対応する２次元エッジ点、ｆはカメラの焦点距離である。Ｅは、Ｒ，Ｔで決まるカメラ姿勢によって３次元エッジ点を入力画像に投影した点と、２次元エッジ点間の誤差の和を表す。
この最小化は非線形最小化問題となるので、上述のモデル画像のカメラ姿勢をＲ，Ｔの初期値として、最急降下法やニュートン法などの方法を用いて解く。
以上述べたようにして、本発明の３次元物体認識システムは、1 枚の入力画像から物体
の特定と３次元姿勢推定を行う。
【００３６】
なお、システムの利用条件によっては、カメラと対象物体の距離が一定なため、画像内の物体の大きさがほぼ一定に保たれる場合もある。その場合は、スケール不変性に関する処理は省いてもよい。具体的には、特徴ベクトル生成における近傍領域のサイズ決定の処理は行わず、あらかじめ与えられた固定値を採用するのでよい。
【００３７】
＜認識例＞
図９に本発明の物体認識の動作例を示す。図９（ａ）は、本発明の物体モデル生成のフェーズで作成した物体モデル（シンク）の３次元エッジモデルである。図９（ｂ）〜（ｄ）は、各１枚のカメラ画像に図９（ａ）の３次元エッジモデルを含んだ物体モデルを用いて、物体認識を行った結果である。図９（ｂ）〜（ｄ）は、物体（シンク）の認識が成功していることを示している。これらの図９（ｂ）〜（ｄ）では、本システムで推定したカメラ姿勢で、３次元エッジモデルをカメラ画像上に重ね合わせて表示している。
図９（ｂ）は図９（ｃ）や図９（ｄ）より画像中の物体の大きさが小さいが、認識に成功していることを示している。また、図９（ｄ）は、物体の一部が欠けて写っているが、認識に成功していることを示している。
この例における物体（シンク）はほぼ直線で構成されており、コーナ点や分岐点といった特徴点の個数は少ない。このため、物体の一部が画像から欠けると、抽出できる特徴点数が少なくなり、認識が不安定になる。しかしながら、本発明の方法では、エッジ点すべてを用いるため、物体の一部が欠けても、まだ多数の２次元エッジ点が得られるため、図９に示したように、認識の安定性が高い。
【００３８】
本発明は、例えば、ロボットの視覚認識技術、監視システム、移動体による周囲環境
の認識、などに適用することができる。
【図面の簡単な説明】
【００３９】
【図１】本発明における物体モデル生成の一実施形態を示すブロック図である。
【図２】物体モデルのデータ構造の一例を示す説明図である。
【図３】２次元モデル生成の処理手順の詳細を示すフローチャートである。
【図４】３次元エッジ点と画像エッジ点の対応関係を示す説明図である。
【図５】エッジ点近傍領域のスケール不変性の概念を説明する図である。
【図６】スケール不変なエッジ点抽出の一例を示す図である。
【図７】本発明における物体認識の一実施形態を示すブロック図である。
【図８】物体認識の処理手順の詳細を示すフローチャートである。
【図９】本発明による物体認識の処理結果の一例を示す図である。
【図１】
0004709668.tif 000004
【図２】
0004709668.tif 000005
【図３】
0004709668.tif 000006
【図４】
0004709668.tif 000007
【図５】
0004709668.tif 000008
【図７】
0004709668.tif 000009
【図８】
0004709668.tif 000010
【図６】
0004709668.tif 000011
【図９】
0004709668.tif 000012