(57)【要約】【課題】認識用画像を用いたトラッキングを継続的に安定して行う。【解決手段】画像処理装置１００は、認識用画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように認識用画像の特徴点を選択し、選択した認識用画像の特徴点の情報を記憶部に登録する。画像処理装置１００は、記憶部に登録された認識用画像と、カメラに撮影された撮影画像とを基にして、カメラの位置姿勢を推定する。【選択図】図１
2018036901.tif 000002
【特許請求の範囲】
【請求項１】
認識用画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記認識用画像の特徴点を選択し、選択した前記認識用画像の特徴点の情報を記憶部に登録する登録部と、
前記記憶部に登録された認識用画像と、カメラに撮影された撮影画像とを基にして、前記カメラの位置姿勢を推定する位置姿勢推定部と、
を有することを特徴とする画像処理装置。
【請求項２】
前記撮影画像の特徴点と、前記認識用画像の特徴点とを基にして、前記撮影画像に含まれる前記認識用画像を認識した場合に、前記認識用画像の特徴点の情報と、前記認識用画像外で前記撮影画像内の周辺画像の特徴点の情報とをそれぞれマップ情報に登録するマップ情報生成部をさらに有し、前記位置姿勢推定部は、前記マップ情報を基にして、前記カメラの位置姿勢を推定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記マップ情報生成部は、前記撮影画像に含まれる前記認識用画像の位置が変化したことを検出した場合に、前記マップ情報を更新することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記マップ情報生成部は、前記周辺画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記周辺画像の特徴点を選択し、選択した特徴点の情報を前記マップ情報に登録することを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
コンピュータが実行する画像処理方法であって、
認識用画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記認識用画像の特徴点を選択し、選択した前記認識用画像の特徴点の情報を記憶装置に登録し、
前記記憶装置に登録された認識用画像と、カメラに撮影された撮影画像とを基にして、前記カメラの位置姿勢を推定する
処理を実行することを特徴とする画像処理方法。
【請求項６】
コンピュータに、
認識用画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記認識用画像の特徴点を選択し、選択した前記認識用画像の特徴点の情報を記憶装置に登録し、
前記記憶装置に登録された認識用画像と、カメラに撮影された撮影画像とを基にして、前記カメラの位置姿勢を推定する
処理を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置等に関する。
【背景技術】
【０００２】
ＰＣ（Personal  Computer）および携帯端末等に取り付けられたカメラの撮影画像を基にして、撮影画像に対するカメラの位置姿勢を求める技術がある。また、カメラの位置姿勢を用いて、ＰＣおよび携帯端末等の画面に表示された撮影画像にコンピュータグラフィックス（ＣＧ）等の付加情報を重畳表示させ、ユーザの作業支援を実現するＡＲ（Augmented  Reality）技術がある。
【０００３】
図１１は、ＡＲ技術の一例を示す図である。図１１に示すように、例えば、利用者が携帯端末１０に内蔵されたカメラを用いて、マーカ１１および点検対象１２を撮影すると、携帯端末１０の表示画面１０ａに、マーカ１１に対するオブジェクト情報１３が表示される。
【０００４】
カメラの位置姿勢を求める方法として、例えば、撮影画像に含まれる特徴点を用いてカメラの位置姿勢を算出する従来技術１がある。従来技術１は、着目点の近くで濃淡変動が大きく、濃淡変動によって着目点の画像上の位置が一意に規定されることを基準にして特徴点を検出する。従来技術１は、予め生成しておいた特徴点の３次元座標の集合を用いる。以下では適宜、予め生成しておいた特徴点の３次元座標をマップ点と表記し、マップ点の集合を３次元マップと表記する。従来技術１は、現在の撮影画像中に存在する特徴点と撮影画像上の投影したマップ点を対応付けることにより、カメラの位置姿勢を算出する。
【０００５】
図１２は、カメラの位置姿勢を求める従来技術１を説明するための図である。図１２に示す例では、マップ点Ｓ１〜Ｓ６が存在するものとする。あるマップ点Ｓｉは、世界座標系で、式（１）によって示される。撮影画像２０上には、特徴点ｘ１〜ｘ６が存在するものとする。ある特徴点ｘｉは、カメラ座標系で、式（２）によって示される。撮影画像２０上に投影したマップ点を、投影点ｘ１’〜ｘ６’とする。ある投影点ｘｉ’は、カメラ座標系で、式（３）によって示される。
【０００６】
Ｓｉ＝（ｘ，ｙ，ｚ）・・・（１）
【０００７】
ｘｉ＝（ｕ，ｖ）・・・（２）
【０００８】
ｘｉ’＝（ｕ’，ｖ’）・・・（３）
【０００９】
例えば、従来技術１では、式（４）によって算出される二乗和Ｅが最小となるようなカメラ位置姿勢行列ＲＴを算出することで、カメラの位置姿勢を求める。一連の撮影画像毎に、カメラの位置姿勢を推定していくことを「トラッキング」と呼ぶ。
【００１０】
【数１】
2018036901.tif 000003
【００１１】
続いて、３次元マップを生成する従来技術１について説明する。図１３は、３次元マップを生成する従来技術１を説明するための図である。例えば、従来技術１では、ステレオ撮影の原理を用いる。従来技術１は、撮影位置を変えた２枚の撮影画像中の特徴点で同じものを対応付けしていく。従来技術１は、対応付けした複数の対応点の各撮影画像中の位置関係から対応点をマップ点とした３次元マップを生成する。
【００１２】
図１３に示す例では、復元されるマップ点をＳｉとし、初期のカメラの撮影位置Ｃａおよびマップ点Ｓｉを結ぶ線分と、１枚目の撮影画像２０ａとが交差する点を、特徴点ｘａｉとする。２番目のカメラの撮影位置Ｃｂおよびマップ点Ｓｉを結ぶ線分と、２枚目の撮影画像２０ｂとが交差する点を、特徴点ｘｂｉとする。そうすると対応点は、特徴点ｘａｉおよび特徴点ｘｂｉとなる。従来技術１は、ステレオ撮影の原理により、特徴点ｘａｉ，ｘｂｉ、マップ点Ｓｉの関係から、マップ点Ｓｉの３次元座標を算出する。
【００１３】
３次元マップの３次元座標の原点には、１枚目の撮影画像のカメラ位置・撮影方向を用いることが一般的である。図１４は、カメラの撮影方向の定義の一例を示す図である。図１４に示すように、例えば、カメラ５０の位置（Ｔｘ、Ｔｙ、Ｔｚ）、姿勢（Ｒｘ、Ｒｙ、Ｒｚ）を基準にして、３次元マップの３次元座標の原点を定義する。
【００１４】
従来技術１と似ていて、同様に撮影画像中の特徴点を使用する技術として、従来技術２がある。図１５は、従来技術２を説明するための図である。従来技術２では、予め用意した認識用画像が、撮影画像中に含まれているか否かを判定する。認識用画像として、写真、イラスト、アイコン等の画像が用いられる。認識用画像には特徴点の座標位置と、特徴点の特徴量との情報が対応付けられている。特徴量は、他の特徴点との違いを区別するために使用する数値ベクトルであり、特徴点近傍の複数画素の濃度分布を示すものとなる。
【００１５】
従来技術２は、撮影画像中の特徴点の特徴量と、各認識用画像の特徴点の特徴量とを比較して、特徴量の一致する割合が最も多い認識用画像が、撮影画像中に含まれていると判定する。従来技術２は、撮影画像中に含まれる認識用画像を判定すると、判定した認識用画像に対応付けられた各座標位置を、３次元マップとして使用することで、従来技術１と同様にして、カメラの位置姿勢を算出する。
【００１６】
図１５に示す例では、データベースに、認識用画像１〜５が格納されているものとする。認識用画像１には、特徴点１ａ〜１ｄが含まれ、各特徴点の特徴量を７０，１１０，７０，１１０とする。認識用画像２には、特徴点２ａ〜２ｄが含まれ、各特徴点の特徴量を７０，７０，１１０，１１０とする。認識用画像３には、特徴点３ａ〜３ｅが含まれ、各特徴点の特徴量を１０８，１０８，１０８，１０８，１０８とする。認識用画像４には、特徴点４ａ〜４ｄが含まれ、各特徴点の特徴量を９０，９０，９０，９０とする。認識用画像５には、特徴点５ａ〜５ｃが含まれ、各特徴点の特徴量を６０，６０，６０とする。
【００１７】
従来技術２は、撮影画像６から、特徴点６ａ〜６ｄを検出し、各特徴点の特徴量を９０，９０，９０，９０とする。従来技術２は、撮影画像６の特徴点６ａ〜６ｄの特徴量と、認識用画像１〜５の各特徴点の特徴量とを比較する。従来技術２は、特徴点６ａ〜６ｄの特徴量と一致する特徴量を有する、認識用画像４を検出する。従来技術２は、撮影画像６の領域７に認識用画像４が含まれていると判定し、認識用画像４の特徴点４ａ〜４ｄに対応付けた座標位置を、マップ点として使用することで、カメラの位置姿勢を算出する。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２０１３−１４１０４９号公報
【特許文献２】特開２０１４−１６４４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかしながら、上述した従来技術では、認識用画像を用いたトラッキングを継続的に安定して行うことができないという問題がある。
【００２０】
一般に、カメラの位置姿勢を算出する場合において、原理上、特徴点と精度との間に以下のような関係がある。すなわち、マップ点が撮影画像中の広範囲に分布しているほど、カメラの位置姿勢の算出精度が高くなる。また、マップ点が撮影画像中に数多く存在するほど、位置姿勢の算出精度が高くなる。
【００２１】
認識用画像の図案によっては、検出される特徴点の位置的な分布が偏る場合が発生する。図１６および図１７は、従来技術の問題点を説明する図である。図１６において、認識用画像３０Ａは、特徴点の分布が一様であるが、認識用画像３０Ｂは、特徴点の分布が偏っている。認識用画像３０Ａ，３０Ｂを用いて、撮影画像に含まれている認識用画像を判定する処理については、分布が一様であるか否かにより、判定精度は低下しない。しかし、認識用画像３０Ｂが撮影画像に含まれており、認識用画像３０Ｂを用いて、トラッキングを試みると、マップ点が認識画像中に広範囲に分布しておらず、カメラの位置姿勢の算出精度が低下する。
【００２２】
上記の問題を解消するべく、特徴点の検出条件を緩和して、単純に認識用画像の特徴点の数を増やすことが考えられる。しかし、単純に特徴点の数を増やすと、トラッキング時の処理時間が増大するなどの新たな問題が発生する。
【００２３】
図１７に示す例では、撮影画像に存在する認識用画像の種別は同じであるが、認識用画像が検出された領域が異なるものを示している。撮影画像中の中央領域３５Ａに認識用画像が存在していれば、マップ点の分布が一様となり、カメラの位置姿勢の算出精度が低下することはない。しかし、撮影画像中の端となる領域３５Ｂに認識用画像が存在している場合には、撮影画像全体として、マップ点が偏ってしまい、カメラの位置姿勢の算出精度が低下する。
【００２４】
１つの側面では、本発明は、認識用画像を用いたトラッキングを継続的に安定して行うことができる画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２５】
第１の案では、画像処理装置は、登録部と、位置姿勢推定部とを有する。登録部は、認識用画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように認識用画像の特徴点を選択し、選択した認識用画像の特徴点の情報を記憶部に登録する。位置姿勢推定部は、記憶部に登録された認識用画像と、カメラに撮影された撮影画像とを基にして、前記カメラの位置姿勢を推定する。
【発明の効果】
【００２６】
認識用画像を用いたトラッキングを継続的に安定して行うことができる。
【図面の簡単な説明】
【００２７】
【図１】図１は、本実施例に係る画像処理装置の構成を示す機能ブロック図である。
【図２】図２は、認識用画像テーブルのデータ構造の一例を示す図である。
【図３】図３は、特徴点マップ情報のデータ構造の一例を示す図である。
【図４】図４は、登録部の処理を説明するための図である。
【図５】図５は、内部領域および外部領域の一例を示す図である。
【図６】図６は、特徴点マップ情報に対する更新処理を説明するための図である。
【図７】図７は、本実施例に係る画像処理装置の処理手順を示すフローチャートである。
【図８】図８は、画像追跡処理の処理手順を示すフローチャートである。
【図９】図９は、登録部の処理手順を示すフローチャートである。
【図１０】図１０は、画像処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【図１１】図１１は、ＡＲ技術の一例を示す図である。
【図１２】図１２は、カメラの位置姿勢を求める従来技術１を説明するための図である。
【図１３】図１３は、３次元マップを生成する従来技術１を説明するための図である。
【図１４】図１４は、カメラの撮影方向の定義の一例を示す図である。
【図１５】図１５は、従来技術２を説明するための図である。
【図１６】図１６は、従来技術の問題点を説明する図（１）である。
【図１７】図１７は、従来技術の問題点を説明する図（２）である。
【発明を実施するための形態】
【００２８】
以下に、本願の開示する画像処理装置、画像処理方法および画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００２９】
図１は、本実施例に係る画像処理装置の構成を示す機能ブロック図である。図１に示すように、画像処理装置１００は、カメラ５０に接続される。画像処理装置１００は、通信部１１０と、入力部１２０と、表示部１３０と、記憶部１４０と、制御部１５０とを有する。
【００３０】
カメラ５０は、撮影範囲の画像を撮影し、撮影した画像の情報を、画像処理装置１００に出力する装置である。カメラ５０は、有線により、画像処理装置１００に直接接続されていても良いし、ネットワークを介して、画像処理装置１００に接続されていても良い。以下の説明では、カメラ５０が撮影した画像の情報を、撮影画像データと表記する。
【００３１】
通信部１１０は、ネットワークを介して図示しない外部装置等に接続し、外部装置とデータ通信を実行する処理部である。通信部１１０は、ＮＩＣ（Network  Interface  Card）等の通信装置に対応する。
【００３２】
入力部１２０は、各種の情報を画像処理装置１００に入力するための入力装置である。入力部１２０は、キーボードやマウス、タッチパネル等に対応する。
【００３３】
表示部１３０は、制御部１５０から出力される情報を表示する表示装置である。表示部１３０は、液晶ディスプレイやタッチパネル等に対応する。
【００３４】
記憶部１４０は、撮影画像テーブル１４１と、認識用画像テーブル１４２と、特徴点マップ情報１４３と、位置姿勢情報１４４とを有する。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００３５】
撮影画像テーブル１４１は、カメラ５０により撮影された撮影画像データを格納するテーブルである。
【００３６】
認識用画像テーブル１４２は、認識用画像データに関する各種の情報を格納するテーブルである。認識用画像は、後述する認識処理に用いられる画像であり、写真、イラスト、アイコン等の画像に対応する。
【００３７】
図２は、認識用画像テーブルのデータ構造の一例を示す図である。図２に示すように、この認識用画像テーブル１４２は、識別情報と、認識用画像と、特徴点座標と、特徴量とを対応付ける。識別情報は、認識用画像を一意に識別する情報である。認識用画像は、認識用画像のデータである。特徴点座標は、認識用画像上に含まれる各特徴点の３次元座標である。特徴量は、各特徴点の特徴量を示すものである。例えば、特徴量は、特徴点近傍の複数画素の濃淡分布を表すものである。
【００３８】
認識用画像テーブル１４２において、識別情報と認識用画像との組は、予め、認識用画像テーブル１４２に格納されている。認識用画像データに対応する特徴点座標および特徴量の情報は、後述する登録部１５２によって設定される。
【００３９】
特徴点マップ情報１４３は、カメラ５０の位置姿勢を推定する場合に用いるマップ点に関する情報を保持する。図３は、特徴点マップ情報のデータ構造の一例を示す図である。図３に示すように、この特徴点マップ情報１４３は、番号と、マップ点座標と、特徴量と、分類とを対応付ける。番号は、マップ点を一意に識別する番号である。マップ点座標は、マップ点の３次元座標であり、ｘ座標、ｙ座標、ｚ座標を含む。特徴量は、マップ点の特徴量を示すものである。例えば、特徴量は、マップ点に対応する特徴点近傍の複数画素の濃淡分布を表すものである。分類は、該当するマップ点が、認識用画像内部の特徴点に対応するものか、認識用画像外部の特徴点に対応するものかを識別する情報である。マップ点が、認識用画像内部の特徴点に対応する場合には、分類を「内部点」と表記する。マップ点が、認識用画像外部の特徴点に対応する場合には、分類を「外部点」と表記する。
【００４０】
位置姿勢情報１４４は、現在のカメラ５０の位置姿勢の情報である。例えば、位置姿勢情報１４４は、世界座標系の原点に対する並進行列Ｔおよび回転行列Ｒに対応する。位置姿勢情報は、後述する位置姿勢推定部１５５により更新される。
【００４１】
制御部１５０は、取得部１５１と、登録部１５２と、画像認識部１５３と、マップ情報生成部１５４と、位置姿勢推定部１５５と、コンテンツ生成部１５６とを有する。制御部１５０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００４２】
取得部１５１は、カメラ５０から撮影画像データを取得する処理部である。取得部１５１は、取得した撮影画像データを、撮影画像テーブル１４１に登録する。
【００４３】
登録部１５２は、認識用画像データを複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように、認識用画像データの特徴点を選択する。登録部１５２は、認識用画像データに対応付けて、選択した特徴点の特徴点座標と、特徴量とを、認識用画像テーブル１４２に登録する。
【００４４】
ここで、認識用画像データで使用する特徴点の個数は、処理時間の増大を防ぐために、上限の個数が決められている。本実施例では一例として、上限の個数を「ｎ個」とする。従来技術では、認識用画像データ全体から検出された特徴点について、特性の強いものから、優先的に選択していく。特徴点近傍の画素の濃淡差が大きいものほど、特性の強い特徴点となる。このため、従来技術では、認識用画像データの内容によっては、画像の特定領域に特徴点が集中してしまう場合がある。
【００４５】
登録部１５２は、認識用画像データの特定領域に特徴点が集中することを防ぐため、下記の１〜３処理を順に実行する。図４は、登録部の処理を説明するための図である。
【００４６】
第１処理について説明する。登録部１５２は、認識用画像データから「ｍ個」の特徴点を抽出する。ただし、ｍ個＞ｎ個とする。ｍおよびｎの値は、予め設定されているものとする。図４に示す説明では、ｎ個＝４００個とし、ｍ個＝８００個とする。図４のステップＳ１０に示すように、登録部１５２は、認識用画像データ４０から、８００個の特徴点を検出する。
【００４７】
第２処理について説明する。登録部１５２は、認識用画像データ内での特徴点の分布を確認する。登録部１５２は、認識用画像データを「ｋ個」の領域に分割し、各領域に含まれる特徴点の数をカウントする。図４のステップＳ１１に示す例では、登録部１５２は、認識用画像データ４０を、４つの領域４０ａ，４０ｂ，４０ｃ，４０ｄに分割する。登録部１５２は、各領域４０ａ〜４０ｄの特徴点の数をカウントする。例えば、領域４０ａの特徴点の個数を１００個、領域４０ｂの特徴点の個数を３２０個、領域４０ｃの特徴点の個数を６０個、領域４０ｄの特徴点の個数を３２０個とする。
【００４８】
第３処理について説明する。登録部１５２は、個々の領域中の特徴点の個数が「ｎ／ｋ」個に近づくように、各領域の特徴点を選別する。登録部１５２は、領域中の特徴点の個数が「ｎ／ｋ」個に満たない領域が発生する場合には、他の領域に含まれる特徴点の数を増やすことで、全体として［ｎ個］の特徴点が選別されるようにする。
【００４９】
図４のステップＳ１２に示す例では、ｎ＝１００、ｋ＝４となるため、登録部１５２は、各領域４０ａ〜４０ｄから検出する特徴点の個数が「４００／４＝１００」に近づくように、特徴点を選別する。例えば、登録部１５２は、領域４０ｂに含まれる特徴点「３２０個」から、特徴点「１２０個」を選別する。登録部１５２は、領域４０ｄに含まれる特徴点「３２０個」から、特徴点「１２０個」を選別する。例えば、登録部１５２は、領域に含まれる特徴点を、特徴点近傍の画素の濃淡差が大きいものから順にソートし、上位１２０個を、選択する。
【００５０】
なお、登録部１５２は、領域４０ａについて、特徴点がもともと「１００個」であるため、特徴点の選別を行わない。登録部１５２は、領域４０ｃについて、特徴点が「６０個」しか存在しないため、特徴点の選別を行わない。選別後の領域４０ａ〜４０ｄの特徴点の数の合計は、「４００個」となる。
【００５１】
登録部１５２は、各認識用画像データについて、上記の処理を繰り返し実行し、各領域に含まれる特徴点の数の偏りが少なくなるように、特徴点を選択する。登録部１５２は、認識用画像データに対応付けて、選択した特徴点の特徴点座標と、特徴量とを、認識用画像テーブル１４２に登録する。なお、認識用画像データは、平面であることが前提であるため、ｚ軸の座標は０となる。
【００５２】
図１の説明に戻る。画像認識部１５３は、撮影画像テーブル１４１に格納された最新の撮影画像データと、認識用画像テーブル１４２に格納された各認識用画像データとを比較する。画像認識部１５３は、比較結果に基づいて、撮影画像データに含まれる認識用画像データを判定する。
【００５３】
例えば、画像認識部１５３は、図１５で説明したように、撮影画像データ中の特徴点の特徴量と、各認識用画像データの特徴点の特徴量とを比較して、特徴量の一致する割合が最も多い認識用画像データが、撮影画像中に含まれていると判定する。なお、画像認識部１５３は、特徴量の一致する割合が最も多い認識用画像データにおいて、一致する割合が閾値未満である場合には、撮影画像データ中に認識用画像データが存在しないと判定する。
【００５４】
画像認識部１５３が、撮影画像データ中に認識用画像データが含まれていると判定した場合には、画像認識部１５３による認識が成功したことになる。画像認識部１５３は、認識に成功した場合に、撮影画像データと、撮影画像データに含まれる認識用画像データの情報と、マップ情報生成部１５４に出力する。例えば、認識用画像データの情報には、認識用画像データの特徴点座標と、認識用画像データが存在する撮影画像データの領域情報が含まれる。
【００５５】
また、画像認識部１５３は、認識に成功した場合に、撮影画像データと、認識用画像データの情報を、位置姿勢推定部１５５に出力する。位置姿勢推定部１５５は、画像認識部１５３から取得した情報を用いて、カメラ５０の位置姿勢の初期値を算出する。
【００５６】
マップ情報生成部１５４は、画像認識部１５３による認識が成功した場合に、撮影画像データに含まれる認識用画像データの特徴点座標を利用して、特徴点マップ情報１４３を生成する処理部である。マップ情報生成部１５４が、特徴点マップ情報１４３の初期値を算出する処理と、特徴点マップ情報１４３を更新する処理について説明する。
【００５７】
まず、マップ情報生成部１５４が、特徴点マップ情報１４３の初期値を算出する処理について説明する。マップ情報生成部１５４は、トラッキングを開始してから、画像認識部１５３による認識が初めて成功した場合には、特徴点マップ情報１４３の初期値を算出する。マップ情報生成部１５４は、撮影画像データの領域を、内部領域と外部領域に分類する。内部領域は、撮影画像データの領域の内、認識用画像データの存在する領域である。外部領域は、撮影画像データの領域のうち、認識用画像データの存在しない領域である。
【００５８】
図５は、内部領域および外部領域の一例を示す図である。図５に示すように、マップ情報生成部１５４は、撮影画像データ４５の領域を、内部領域４５Ａと、外部領域４５Ｂとに分類する。内部領域４５Ａには、認識用画像データ４６が存在している。内部領域４５Ａの各円印は、特徴点を示し、認識用画像データ４６の各特徴点に対応する。外部領域４５Ｂの三角印は、特徴点に対応する。
【００５９】
マップ情報生成部１５４は、内部領域４５Ａのマップ点座標を、認識用画像データ４６の特徴点座標を用いて特定する。例えば、マップ情報生成部１５４は、撮影画像データ４５の原点４７から、内部領域４５Ａまでの距離に応じて、認識用画像データ４６上の特徴点座標を補正することで、内部領域４５Ａのマップ点座標を特定する。また、マップ情報生成部１５４は、内部領域４５Ａのマップ点座標に対応する特徴点の特徴量を、該当する認識用画像データ４６の特徴点の特徴量とする。
【００６０】
別の方法として、マップ情報生成部１５４は、認識用画像データ４６の特徴点座標をそのまま用いるのではなく、認識用画像データ４６に含まれる各特徴点とのマッチングにより、内部領域４５Ａから特徴点を抽出しても良い。例えば、マップ情報生成部１５４は、内部領域４５Ａの特徴点と、認識用画像データ４６の特徴点とのマッチングを行い、内部領域４５Ａの各特徴点のうち、認識用画像データ４６の特徴点と一致する特徴点を、内部領域４５Ａの特徴点として抽出する。マップ情報生成部１５４が係る処理を実行することで、撮影画像データ４５の特徴点の数を極力増やすことができる。
【００６１】
マップ情報生成部１５４は、内部領域４５Ａのマップ点座標と、特徴量とを特徴点マップ情報１４３に登録する。また、マップ情報生成部１５４は、内部領域４５Ａのマップ点座標を登録する場合に、該当するレコードの分類を「内部点」に設定する。
【００６２】
マップ情報生成部１５４は、外部領域４５Ｂのマップ点座標については、外部領域４５Ｂから特徴点を抽出することで、マップ点座標を特定する。マップ情報生成部１５４は、外部領域４５Ｂのマップ点座標と、特徴量とを特徴点マップ情報１４３に登録する。また、マップ情報生成部１５４は、外部領域４５Ｂのマップ点座標を登録する場合に、該当するレコードの分類を「外部点」に設定する。
【００６３】
なお、マップ情報生成部１５４は、外部領域４５Ｂから特徴点を抽出する場合に、上述した登録部１５２が特徴点を抽出する場合と同様にして、外部領域４５Ｂを複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように、外部領域４５Ｂの特徴点を選択しても良い。
【００６４】
なお、特徴点マップ情報１４３のマップ点座標は、ステレオ画像の原理により算出するため、初期値の段階では未確定となる。ただし、内部領域４５Ａに含まれる特徴点は、認識画像が平面であることが前提であるため、３次元座標系でも同一平面上に配置されていることが保証されている。このため、かかる特徴を用いて、マップ点座標のｚ軸の値を０とし、ｘ軸、ｙ軸の値については、各種画像処理により、暫定的な座標値を設定しても良い。
【００６５】
続いて、マップ情報生成部１５４が、特徴点マップ情報１４３を更新する処理について説明する。マップ情報生成部１５４は、上記処理により、特徴点マップ情報１４３の初期値を生成した後に、画像認識部１５３による認識が成功すると、撮影画像データ上の認識用画像データが移動したか否かを判定する。例えば、現撮影画像データ上に存在する認識用画像データのマップ点座標と、特徴点マップ情報１４３の分類「内部点」に対応するマップ点座標とを比較して、マップ点座標が異なる場合に、認識用画像データが移動したと判定する。マップ情報生成部１５４は、認識用画像データが移動していない場合には、特徴点マップ情報１４３を更新する処理をスキップする。
【００６６】
マップ情報生成部１５４は、認識用画像データが移動したと判定した場合には、特徴点マップ情報１４３を更新する。図６は、特徴点マップ情報に対する更新処理を説明するための図である。図６に示す例では、撮影画像データ４５上の内部領域（認識用画像データの領域）４５Ａが、内部領域（認識用画像データの領域）４５Ｃに移動している。また、外部領域４５Ｂのマップ点座標に関する変化はない。この場合には、マップ情報生成部１５４は、特徴点マップ情報１４３のマップ点座標のうち、分類が「内部点」となるマップ点座標のみを更新する。例えば、マップ情報生成部１５４は、認識用画像データの移動量分だけ、マップ点座標を移動させることで、マップ点座標の更新を行う。
【００６７】
図６で説明した例では、認識用画像データが移動し、外部領域のマップ点座標が変化しない場合について説明した。これに対して、外部領域４５Ｂの特徴点が変化している場合には、マップ情報生成部１５４は、再度、外部領域４５Ｂから特徴点を抽出し、抽出した特徴点に対応するマップ点座標によって、特徴点マップ情報１４３のマップ点座標の内、分類が「外部点」となるマップ点座標を更新する。なお、マップ情報生成部１５４は、撮影画像データから特定した特徴点の分布に偏りがある場合に、処理失敗として、特徴点マップ情報１４３の情報を更新前に戻し、新たな撮影画像データを取得して、更新処理をやり直す。
【００６８】
マップ情報生成部１４３は、どのように特徴点の分布に偏りがあるか否かを判定しても良い。例えば、マップ情報生成部１４３は、撮影画像データを複数の領域に分割する。マップ情報生成部１４３は、各領域に含まれる特徴点の数の平均値と、各領域の特徴点数とを比較し、数の差分値が閾値以上となる領域が存在する場合に、特徴点の分布に偏りがあると判定する。
【００６９】
また、マップ情報生成部１４３は、前回の撮影画像データの特徴点の位置と、今回の撮影画像データの特徴点の位置との対応付けを行い、ステレオ撮影の原理に基づき、特徴点に対応するマップ点座標を算出する。
【００７０】
位置姿勢推定部１５５は、撮影画像データと、特徴点マップ情報１４３とを基にして、カメラ５０の位置姿勢を推定する処理部である。位置姿勢推定部１５５は、特徴点マップ情報１４３のマップ点を、撮影画像データ上に投影する。位置姿勢推定部１５５は、撮影画像データ上の特徴点と、投影点とのペアを特定する。位置姿勢推定部１５５は、式（４）で説明したように、ペアとなった特徴点ｘｉと、マップ点の投影点ｘｉ’との差分の和が最小となるようなカメラの並進成分Ｔ、回転成分Ｒを探索し、カメラの位置姿勢を算出する。ここでは説明を省略するが、位置姿勢推定部１５５は、キーフレームとなる撮影画像データ毎に、カメラ５０の位置姿勢を対応付けておく。位置姿勢推定部１５５は、カメラ５０の位置姿勢情報１４４を生成し、記憶部１４０に登録する。
【００７１】
なお、位置姿勢推定部１５５は、画像認識部１５３による認識が成功し、撮影画像データに含まれる認識用画像データの領域が特定された段階で、内部領域に含まれる特徴点を用いて、カメラの位置姿勢の初期値を算出する。例えば、認識用画像データの特徴点座標をマップ点として使用し、内部領域の特徴点とのマッチングを行うことでペアを特定する。位置姿勢推定部１５５は、ペアの差分の和が最小となるようなカメラの並進成分Ｔ、回転成分Ｒを探索することで、カメラの位置姿勢の初期値を算出する。
【００７２】
コンテンツ生成部１５６は、位置姿勢情報１４４を基にして、予め用意されたコンテンツを、撮影画像データ上に配置し、コンテンツを配置した撮影画像データを、表示部１３０に表示させる処理部である。コンテンツ生成部１５６は、コンテンツを配置した撮影画像データを、ネットワークを介して接続された外部装置に通知して表示させても良い。
【００７３】
次に、本実施例に係る画像処理装置１００の処理手順について説明する。図７は、本実施例に係る画像処理装置の処理手順を示すフローチャートである。画像処理装置１００は、新たな撮影画像データを取得する度に、図７に示す処理を繰り返し実行する。
【００７４】
図７に示すように、画像処理装置１００の取得部１５１は、撮影画像データを取得する（ステップＳ１０１）。画像処理装置１００は、特徴点マップ情報１４３の初期値を生成済みである場合には（ステップＳ１０２，Ｙｅｓ）、ステップＳ１０７に移行する。画像処理装置１００は、特徴点マップ情報１４３の初期値が生成済みでない場合には（ステップＳ１０２，Ｎｏ）、ステップＳ１０３に移行する。
【００７５】
画像処理装置１００の画像認識部１５３は、撮影画像データと、認識用画像データとを基にして画像認識を実行する（ステップＳ１０３）。画像認識部１５３は、認識に成功していない場合には（ステップＳ１０４，Ｎｏ）、ステップＳ１０１に移行する。画像認識部１５３は、認識に成功した場合には（ステップＳ１０４，Ｙｅｓ）、ステップＳ１０５に移行する。
【００７６】
画像処理装置１００の位置姿勢推定部１５５は、カメラ５０の位置姿勢の初期値を算出する（ステップＳ１０５）。画像処理装置１００のマップ情報生成部１５４は、特徴点マップ情報１４３の初期値を算出する（ステップＳ１０６）。マップ情報生成部１５４および位置姿勢推定部１５５は、画像追跡処理を実行する（ステップＳ１０７）。
【００７７】
位置姿勢推定部１５５は、カメラ５０の位置姿勢の算出に成功していない場合には（ステップＳ１０８，Ｎｏ）、ステップＳ１０１に移行する。位置姿勢推定部１５５は、カメラ５０の位置姿勢の算出に成功した場合には（ステップＳ１０８，Ｙｅｓ）、ステップＳ１０９に移行する。画像処理装置１００のコンテンツ生成部１５６は、コンテンツを表示する（ステップＳ１０９）。
【００７８】
次に、図７のステップＳ１０７に示した画像追跡処理の処理手順について説明する。図８は、画像追跡処理の処理手順を示すフローチャートである。図８に示すように、画像処理装置１００の位置姿勢推定部１５５は、特徴点マップ情報１４３を基にして、撮影画像データ上の特徴点と、投影点とのマッチングを実行する（ステップＳ２０１）。
【００７９】
位置姿勢推定部１５５は、マッチング結果を基にして、カメラ５０の位置姿勢を算出する（ステップＳ２０２）。位置姿勢推定部１５５は、カメラ５０の位置姿勢の算出に成功していない場合には（ステップＳ２０３，Ｎｏ）、画像追跡処理を終了する。位置姿勢推定部１５５は、カメラ５０の位置姿勢の算出に成功した場合には（ステップＳ２０３，Ｙｅｓ）、ステップＳ２０４に移行する。
【００８０】
画像処理装置１００のマップ情報生成部１５４は、マッチングに成功した特徴点を、内部点と外部点に分類する（ステップＳ２０４）。マップ情報生成部１５４は、認識用画像データが移動したか否かを判定する（ステップＳ２０５）。マップ情報生成部１５４は、認識用画像データが移動していない場合には（ステップＳ２０６，Ｎｏ）、画像追跡処理を終了する。
【００８１】
一方、マップ情報生成部１５４は、認識用画像データが移動した場合には（ステップＳ２０６，Ｙｅｓ）、特徴点マップ情報１４３を更新し（ステップＳ２０７）、画像追跡処理を終了する。
【００８２】
次に、認識用画像データの情報を登録する登録部の処理手順について説明する。図９は、登録部の処理手順を示すフローチャートである。図９に示すように、画像処理装置１００の登録部１５２は、認識用画像データを取得する（ステップＳ３０１）。登録部１５２は、認識用画像データから特徴点をｍ個抽出する（ステップＳ３０２）。
【００８３】
登録部１５２は、認識用画像データをｋ個の領域に分割し、領域毎の特徴量の数をカウントする（ステップＳ３０３）。登録部１５２は、各領域に含まれる特徴点の数がｎ／ｋに近くなるように特徴点を選別する（ステップＳ３０４）。
【００８４】
登録部１５２は、特徴点および特徴量を抽出する（ステップＳ３０５）。登録部１５２は、認識用画像テーブル１４２に、認識用画像データに関する情報を登録する（ステップＳ３０６）。
【００８５】
次に、本実施例に係る画像処理装置１００の効果について説明する。画像処理装置１００は、認識用画像データを複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように、特徴点を選択し、選択した特徴点を用いて、トラッキングを行う。これにより、認識用画像データ上の特徴点の一様に分布するため、認識用画像を用いたトラッキングを継続的に安定して行うことができる。
【００８６】
画像処理装置１００は、特徴点マップ情報１４３に、内部領域に含まれる特徴点と、外部領域に含まれる特徴点とを分類して、特徴点の情報を登録する。例えば、内部領域のみ移動している場合には、認識用画像の特徴点を用いて、内部領域のみを更新することで、特徴点マップ情報１４３を最新の状態に保てるため、処理負荷を軽減できると共に、トラッキング精度を向上することができる。
【００８７】
画像処理装置１００は、撮影画像データに含まれる認識用画像データが移動した場合に、特徴点マップ情報１４３を更新する。このため、環境変化に応じて、適切にトラッキングを行うことができる。
【００８８】
画像処理装置１００は、外部領域についても、複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように、特徴点を選択し、選択した特徴点を用いて、トラッキングを行う。これにより、特徴点マップ情報１４３のマップ点が一様に分布するため、特徴点マップ情報１４３を用いたトラッキングを継続的に安定して行うことができる。
【００８９】
次に、上記実施例に示した画像処理装置１００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図１０は、画像処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【００９０】
図１０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置２０５とを有する。コンピュータ２００は、カメラ２０６を有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。そして、各装置２０１〜２０８は、バス２０９に接続される。
【００９１】
ハードディスク装置２０８は、取得プログラム２０８ａ、登録プログラム２０８ｂ、画像認識プログラム２０８ｃ、マップ情報生成プログラム２０８ｄ、位置姿勢推定プログラム２０８ｅ、コンテンツ生成プログラム２０８ｆを有する。ＣＰＵ２０１は、取得プログラム２０８ａ、登録プログラム２０８ｂ、画像認識プログラム２０８ｃ、マップ情報生成プログラム２０８ｄ、位置姿勢推定プログラム２０８ｅ、コンテンツ生成プログラム２０８ｆを読み出してＲＡＭ２０７に展開する。
【００９２】
取得プログラム２０８ａは、取得プロセス２０７ａとして機能する。登録プログラム２０８ｂは、登録プロセス２０７ｂとして機能する。画像認識プログラム２０８ｃは、画像認識プロセス２０７ｃとして機能する。マップ情報生成プログラム２０８ｄは、マップ情報生成プロセス２０７ｄとして機能する。位置姿勢推定プログラム２０８ｅは、位置姿勢推定プロセス２０７ｅとして機能する。コンテンツ生成プログラム２０８ｆは、コンテンツ生成プロセス２０７ｆとして機能する。
【００９３】
取得プロセス２０７ａの処理は、取得部１５１の処理に対応する。登録プロセス２０７ｂの処理は、登録部１５２の処理に対応する。画像認識プロセス２０７ｃの処理は、画像認識部１５３の処理に対応する。マップ情報生成プロセス２０７ｄの処理は、マップ情報生成部１５４の処理に対応する。位置姿勢推定プロセス２０７ｅの処理は、位置姿勢推定部１５５の処理に対応する。コンテンツ生成プロセス２０７ｆの処理は、コンテンツ生成部１５６の処理に対応する。
【００９４】
なお、各プログラム２０８ａ〜２０８ｆについては、必ずしも最初からハードディスク装置２０８に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００が各プログラム２０８ａ〜２０８ｆを読み出して実行するようにしても良い。
【００９５】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９６】
（付記１）認識用画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記認識用画像の特徴点を選択し、選択した前記認識用画像の特徴点の情報を記憶部に登録する登録部と、
前記記憶部に登録された認識用画像と、カメラに撮影された撮影画像とを基にして、前記カメラの位置姿勢を推定する位置姿勢推定部と、
を有することを特徴とする画像処理装置。
【００９７】
（付記２）前記撮影画像の特徴点と、前記認識用画像の特徴点とを基にして、前記撮影画像に含まれる前記認識用画像を認識した場合に、前記認識用画像の特徴点の情報と、前記認識用画像外で前記撮影画像内の周辺画像の特徴点の情報とをそれぞれマップ情報に登録するマップ情報生成部をさらに有し、前記位置姿勢推定部は、前記マップ情報を基にして、前記カメラの位置姿勢を推定することを特徴とする付記１に記載の画像処理装置。
【００９８】
（付記３）前記マップ情報生成部は、前記撮影画像に含まれる前記認識用画像の位置が変化したことを検出した場合に、前記マップ情報を更新することを特徴とする付記２に記載の画像処理装置。
【００９９】
（付記４）前記マップ情報生成部は、前記周辺画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記周辺画像の特徴点を選択し、選択した特徴点の情報を前記マップ情報に登録することを特徴とする付記２または３に記載の画像処理装置。
【０１００】
（付記５）コンピュータが実行する画像処理方法であって、
認識用画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記認識用画像の特徴点を選択し、選択した前記認識用画像の特徴点の情報を記憶装置に登録し、
前記記憶装置に登録された認識用画像と、カメラに撮影された撮影画像とを基にして、前記カメラの位置姿勢を推定する
処理を実行することを特徴とする画像処理方法。
【０１０１】
（付記６）前記撮影画像の特徴点と、前記認識用画像の特徴点とを基にして、前記撮影画像に含まれる前記認識用画像を認識した場合に、前記認識用画像の特徴点の情報と、前記認識用画像外で前記撮影画像内の周辺画像の特徴点の情報とをそれぞれマップ情報に登録する処理を更に実行し、前記位置姿勢を推定する処理は、前記マップ情報を基にして、前記カメラの位置姿勢を推定することを特徴とする付記５に記載の画像処理方法。
【０１０２】
（付記７）前記マップ情報を生成する処理は、前記撮影画像に含まれる前記認識用画像の位置が変化したことを検出した場合に、前記マップ情報を更新することを特徴とする付記６に記載の画像処理方法。
【０１０３】
（付記８）前記マップ情報を生成する処理は、前記周辺画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記周辺画像の特徴点を選択し、選択した特徴点の情報を前記マップ情報に登録することを特徴とする付記６または７に記載の画像処理方法。
【０１０４】
（付記９）コンピュータに、
認識用画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記認識用画像の特徴点を選択し、選択した前記認識用画像の特徴点の情報を記憶装置に登録し、
前記記憶装置に登録された認識用画像と、カメラに撮影された撮影画像とを基にして、前記カメラの位置姿勢を推定する
処理を実行させることを特徴とする画像処理プログラム。
【０１０５】
（付記１０）前記撮影画像の特徴点と、前記認識用画像の特徴点とを基にして、前記撮影画像に含まれる前記認識用画像を認識した場合に、前記認識用画像の特徴点の情報と、前記認識用画像外で前記撮影画像内の周辺画像の特徴点の情報とをそれぞれマップ情報に登録する処理を更に実行させ、前記位置姿勢を推定する処理は、前記マップ情報を基にして、前記カメラの位置姿勢を推定することを特徴とする付記９に記載の画像処理プログラム。
【０１０６】
（付記１１）前記マップ情報を生成する処理は、前記撮影画像に含まれる前記認識用画像の位置が変化したことを検出した場合に、前記マップ情報を更新することを特徴とする付記１０に記載の画像処理プログラム。
【０１０７】
（付記１２）前記マップ情報を生成する処理は、前記周辺画像を複数の領域に分割し、各領域に含まれる特徴点の数の偏りが少なくなるように前記周辺画像の特徴点を選択し、選択した特徴点の情報を前記マップ情報に登録することを特徴とする付記１０または１１に記載の画像処理プログラム。
【符号の説明】
【０１０８】
５０    カメラ
１００  画像処理装置
１１０  通信部
１２０  入力部
１３０  表示部
１４０  記憶部
１５０  制御部
【図１】
2018036901.tif 000004
【図２】
2018036901.tif 000005
【図３】
2018036901.tif 000006
【図４】
2018036901.tif 000007
【図５】
2018036901.tif 000008
【図６】
2018036901.tif 000009
【図７】
2018036901.tif 000010
【図８】
2018036901.tif 000011
【図９】
2018036901.tif 000012
【図１０】
2018036901.tif 000013
【図１１】
2018036901.tif 000014
【図１２】
2018036901.tif 000015
【図１３】
2018036901.tif 000016
【図１４】
2018036901.tif 000017
【図１５】
2018036901.tif 000018
【図１６】
2018036901.tif 000019
【図１７】
2018036901.tif 000020