(57)【要約】【課題】MappingとLocalizationを行う場合に、線分を精度良く対応付けること。【解決手段】画像処理装置１００は、線分周辺の画素の明度の分布と前記線分の方向とを線分の特徴として検出する。画像処理装置１００は、前の画像データから検出される線分の特徴と、後の画像データから検出される線分の特徴とを基にして、前の画像データの線分と後の画像データの線分との対応関係を検出する。画像処理装置１００は、画像データから検出される線分の特徴と３次元構造情報とを基にして、該画像データから検出される線分と、３次元空間上の線分との対応関係を検出する。【選択図】図１
2015118641.tif 000002
【特許請求の範囲】
【請求項１】
カメラから取得する画像データから線分を検出する線分検出部と、
前記線分検出部に検出される線分周辺の画素の明度の分布と前記線分の方向とを前記線分の特徴として検出する線分特徴検出部と、
３次元空間上の３次元構造物を構成する各線分の配置を示す３次元構造情報を保持する３次元構造保持部と、
前の画像データから検出される線分の特徴と、後の画像データから検出される線分の特徴とを基にして、前の画像データの線分と後の画像データの線分との対応関係を検出し、
画像データから検出される線分の特徴と前記３次元構造情報とを基にして、該画像データから検出される線分と、前記３次元空間上の線分との対応関係を検出する対応付け検出部と
を有することを特徴とする画像処理装置。
【請求項２】
前記対応付け検出部に検出される対応関係を基にして、前記線分に対応する３次元構造を推定する３次元構造推定部と、前記３次元構造推定部の推定結果と、前記対応付け検出部に検出される対応関係とを基にして、前記カメラの位置および姿勢を推定するカメラ位置姿勢推定部と、前記カメラ位置姿勢推定部に推定されるカメラの位置および姿勢を基にして、前記画像データに所定の画像を重畳表示する出力部とを有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記線分特徴検出部は、前記線分の周辺範囲の画素の明暗の分布を基にして前記線分の方向を特定し、前記線分上および前記線分周辺の画素の明暗の分布を基にして計算される複数の勾配方向ヒストグラムの配列順を、前記線分の方向に従って決定することで前記線分の特徴を検出することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記線分特徴検出部は、前記線分の両サイドに予め定めた特定範囲の明度の強弱を基準にして、前記線分の方向を特定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記線分特徴検出部は、前記線分上の画素の明暗の分布を基にして計算される勾配方向毎のヒストグラムを基にして、前記線分の方向を特定することを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記対応付け検出部は、前の画像データの線分を後の画像データに投影し、後の画像データの第１の線分と、該第１の線分の周辺に位置する投影した１ないし複数の第２の線分との特徴を基にして、第１の線分および第２の線分の類似度を算出し、前記第１の線分と前記第２の線分とのなす角度を算出し、前記類似度と前記なす角度とを基にして、対応する線分を検出することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記対応付け検出部は、３次元構造情報に含まれる線分を画像データに投影し、画像データの第１の線分と、投影した１ないし複数の第３の線分との特徴を基にして、第１の線分および第３の線分の類似度を算出し、前記第１の線分と前記第３の線分とのなす角度を算出し、前記類似度と前記なす角度とを基にして、対応する線分を検出することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
コンピュータが実行する画像処理方法であって、
カメラから取得する画像データから線分を検出し、
検出した線分周辺の画素の明度の分布と前記線分の方向とを前記線分の特徴として検出し、
３次元構造保持部から、３次元空間上の３次元構造物を構成する各線分の配置を示す３次元構造情報を取得し、
前の画像データから検出される線分の特徴と、後の画像データから検出される線分の特徴とを基にして、前の画像データの線分と後の画像データの線分との対応関係を検出し、
画像データから検出される線分の特徴と前記３次元構造情報とを基にして、該画像データから検出される線分と、前記３次元空間上の線分との対応関係を検出する
各処理を実行することを特徴とする画像処理方法。
【請求項９】
コンピュータに、
カメラから取得する画像データから線分を検出し、
検出した線分周辺の画素の明度の分布と前記線分の方向とを前記線分の特徴として検出し、
３次元構造保持部から、３次元空間上の３次元構造物を構成する各線分の配置を示す３次元構造情報を取得し、
前の画像データから検出される線分の特徴と、後の画像データから検出される線分の特徴とを基にして、前の画像データの線分と後の画像データの線分との対応関係を検出し、
画像データから検出される線分の特徴と前記３次元構造情報とを基にして、該画像データから検出される線分と、前記３次元空間上の線分との対応関係を検出する
各処理を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置等に関する。
【背景技術】
【０００２】
PC（Personal  Computer）や携帯端末に取り付けられたカメラで撮影した現実世界の画像に仮想の３次元オブジェクトなどを重畳表示する拡張現実（AR：Augmented  Reality）という技術がある。ARは、ユーザが手に持つカメラが環境中のどこにありどこを向いているのかというカメラの位置・視線の推定（Localization）を行う。また、ARが環境中のカメラの位置・姿勢を推定するためには、対象環境の３次元構造の推定（Mapping）を行う。LocalizationとMappingを同時に行う技術としてSLAM（Simultaneous  Localization  and  Mapping）がある。
【０００３】
SLAMは、ユーザの持つカメラが現在の位置から未知の位置へ進んで行くときに、その両位置での画像中に映っている基準物に対してMatchingを行う。SLAMは、各画像の中で基準物がどこに映っているのか、それまでに推定していた３次元構造のどれに対応するかに基づいて、MappingとLocalizationを逐次実行していく。一般に、基準物には撮影対象の目立つ角などの特徴点が用いられることが多い。
【０００４】
また、特徴点ではなく対象環境中に含まれる線分のMappingに基づくSLAMが有る。線分を使用する利点として、目立つ角などが少なく特徴点が検出されにくい人工的環境でも線分は多く含まれている点が挙げられる。また線分検出は特徴点検出に比べて視点変化に対して頑健で有る点、線分は特徴点に比べて部分的なオクルージョンに頑健である点も挙げられる。
【０００５】
線分を使用したSLAMでは、線分のMatchingを行う際には単純に画像空間において最も近くにある線分同士を対応付けている。すなわち、直前の画像に映っている線分の位置をそのまま次の時点の画像に投影した上で，次の時点の中の線分のうち最も近いものとMatchingを行っている。この手法には、線分が多く検出される環境や、カメラの動きが速く近傍に対応する線分が無くなる時などに誤対応が多くなってしまうという問題点がある。
【０００６】
この問題を解決するため、線分記述子を用いるSLAMがある。線分記述子は、線分がどのような線分であるかという特徴を表したベクトルである。
【０００７】
その技術の1つとして、高速な線分特徴記述法（LEHF:Line-based  Eight-directional  Histogram  Feature）とそれを用いた実時間SLAM技術がある。この技術では、線分のLEHFを計算し、LEHF同士を比較計算し、最も類似している線分同士をMatchingさせるため、従来の最も近いもの同士を対応付けていただけの線分Matchingよりも正確に行うことができる。
【０００８】
ここで、LEHFを算出する従来技術について説明する。図１０は、従来技術でのLEHFの定義を説明する図である。従来技術は、まず、入力線分の周囲で微分値を計算し、それに基づき勾配ベクトルを算出する。そして線分方向に勾配ベクトルを足し合わせることによって勾配方向ヒストグラムを複数計算し，それらを線分に対して線対称的に並べたものをLEHFとする。本従来技術では、高速かつ安定的にLEHFを計算するために，入力線分の周囲で一定数のサンプル点を取り、そのサンプル点上で微分計算を行う。
【０００９】
図１０において、Sjはj方向に取るサンプル点の数であり、Siはi方向に取るサンプル点の数である。j方向は、線分１０ａの平行な方向であり、i方向は、線分１０ａと直行する方向である。従来技術は、線分１０ａに対し、サンプル点P11〜PSiSjをとり、各サンプル点P11〜PS1S1上で、微分計算を行い、勾配ベクトルを求める。
【００１０】
なお、従来技術では、回転不変性を得る際に、実際に画像を回転計算してから線分検出・LEHF算出すると処理時間がかかってしまう。このため、従来技術では、それぞれサンプル点上で計算された勾配ベクトルの勾配方向と線分とのなす角を改めて勾配方向として定義して回転不変性を得ている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１１−１３４０１２号公報
【特許文献２】特開２０１１−１７４８７９号公報
【特許文献３】特開２０１０−１７０２８８号公報
【非特許文献】
【００１２】
【非特許文献１】”対象環境の線分情報を用いた実時間SLAM”  画像の理解・認識シンポジウム、IS2-47、July  2011
【非特許文献２】”線分記述子（LEHF）を用いた実時間SLAM”  日本バーチャルリアリティ学会論文誌、Vol.17，No.3，2012
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した従来技術では、MappingとLocalizationを行う場合に、線分を精度良く対応付けることが出来ないという問題がある。
【００１４】
例えば、人工物が多数配置されている環境の場合には、道路上のセンターラインの両サイドを規定する線分のように、類似のLEHFを持つ線分が平行に１８０度回転した形で並んで存在する場合がある。図１１は、従来技術の問題点の一例を示す図である。図１１に示す例では、線分１及び線分２が、類似のLEHFを持つことになる。
【００１５】
従来のLEHFの定義では、対象とする線分が移動前後の画像中で回転していても簡単にかつ頑健にMatchingが行えるように、線分に対して線対称に勾配ベクトルを配置している。このため、逆に180度回転した線分と回転していない線分との区別がLEHF上では付かず誤Matchingをしてしまう。図１２は、誤Matchingの一例を示す図である。図１２において、画像データ２ａは、フレームｎ番目の画像データであり、画像データ２ｂは、フレームｎ＋１番目の画像データである。例えば、図１２の領域２ｃに含まれる各線分のLEHFが類似しており、各線分を区別することは難しい。
【００１６】
誤Matchingを防ぐため、移動前後の線分のなす角度が小さい方を選択するという方法があるが，このような条件の場合にはこれすらうまく対応できなくなる条件が多く存在する。このため、MappingおよびLocalizationに失敗するという課題が発生する。
【００１７】
１つの側面では、線分の対応付けを精度良く実行することができる画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
第１の案では、画像処理装置は、線分検出部と、線分特徴検出部と、３次元構造保持部と、対応付け検出部とを有する。線分検出部は、カメラから取得する画像データから線分を検出する。線分特徴検出部は、線分検出部に検出される線分周辺の画素の明度の分布と線分の方向とを前記線分の特徴として検出する。３次元構造保持部は、３次元空間上の３次元構造物を構成する各線分の配置を示す３次元構造情報を保持する。対応付け検出部は、前の画像データから検出される線分の特徴と、後の画像データから検出される線分の特徴とを基にして、前の画像データの線分と後の画像データの線分との対応関係を検出する。対応付け検出部は、画像データから検出される線分の特徴と前記３次元構造情報とを基にして、該画像データから検出される線分と、前記３次元空間上の線分との対応関係を検出する。
【発明の効果】
【００１９】
本発明の１実施態様によれば、線分の対応付けを精度良く実行することができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本実施例に係る画像処理装置の構成を示す機能ブロック図である。
【図２】図２は、本実施例に係るLEHFの計算方式の例を説明するための図である。
【図３】図３は、本実施例に係る線分特徴検出部の処理手順を示すフローチャートである。
【図４】図４は、線分の方向を判定する処理を説明するための図（１）である。
【図５】図５は、線分の方向を判定する処理を説明するための図（２）である。
【図６】図６は、本実施例に係る線分対応付け検出部の処理を説明するための図である。
【図７】図７は、本実施例に係る画像処理装置の処理手順を示すフローチャートである。
【図８】図８は、線分対応付け処理の処理手順を示すフローチャートである。
【図９】図９は、画像処理プログラムを実行するコンピュータの一例を示す図である。
【図１０】図１０は、従来技術でのLEHFの定義を説明する図である。
【図１１】図１１は、従来技術の問題点の一例を示す図である。
【図１２】図１２は、誤Matchingの一例を示す図である。
【発明を実施するための形態】
【００２１】
以下に、本願の開示する画像処理装置、画像処理方法および画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００２２】
図１は、本実施例に係る画像処理装置の構成を示す機能ブロック図である。図１に示すように、画像処理装置１００は、カメラ５０および表示装置６０に接続される。カメラ５０は、撮像範囲の画像データを画像処理装置１００に順次出力する装置である。表示装置６０は、画像処理装置１００から出力される情報を表示する表示装置である。表示装置６０は、液晶ディスプレイやタッチパネル等に対応する。
【００２３】
画像処理装置１００は、画像取得部１１０、線分検出部１２０、線分特徴検出部１３０、線分対応付け検出部１４０、３次元構造推定部１５０、３次元構造保持部１６０、カメラ位置・姿勢推定部１７０、出力情報生成部１８０を有する。
【００２４】
画像取得部１１０は、カメラ５０から対象環境の画像データを順次取得する処理部である。画像取得部１１０は、画像データを線分検出部１２０に出力する。
【００２５】
線分検出部１２０は、画像データから線分を検出する処理部である。線分検出部１２０は、フレーム毎に画像データから線分を検出する。線分検出部１２０は、LSD（Line  Segment  Detector）法を用いて、線分を検出する。線分検出部１２０は、フレーム毎に画像データから検出した線分の情報を、線分特徴検出部１３０に出力する。
【００２６】
例えば、線分検出部１２０は、画像データをグレースケールの画像データに変換し、各画素の微分値に基づく勾配ベクトルを計算し、近傍の画素同士で勾配ベクトルの方向を比較する。線分検出部１２０は、勾配ベクトルの方向の差が閾値未満となる画素同士をグループ化していく。線分検出部１２０は、画素のグループを反復的に増大させていき、最終的にグループの画素集合に矩形領域を当てはめ、そのパラメータについて線分を計算する。例えば、LSD法は「“A  fast  line  segment  detector  with  a  false  detection  control.“IEEE  Transactions  on  Pattern  Analysis  and  Machine  Intelligence,  Vol.  32,  No.  4,  pp.  722-732,  2010.」に開示されている。
【００２７】
線分特徴検出部１３０は、画像データから検出された各線分の特徴を検出する処理部である。線分特徴検出部１３０は、線分周辺の画素の明度の分布と、線分の方向とを線分の特徴として検出する。線分特徴検出部１３０は、線分と線分の特徴とを対応付けた情報を、線分対応付け検出部１４０に出力する。線分特徴検出部１３０が、線分の特徴を検出する具体的な説明は後述する。
【００２８】
線分対応付け検出部１４０は、ｎフレームの画像データから検出された線分の特徴と、ｎ＋１フレームの画像データから検出された線分の特徴とを基にして、ｎフレームの線分とｎ＋１フレームの線分との対応関係を検出する。また、線分対応付け検出部１４０は、各フレームの画像データの線分の特徴と、３次元構造情報とを基にして、画像データの線分と、３次元空間上の３次元構造物を構成する線分との対応関係を検出する。３次元構造情報は、３次元空間上の３次元構造物を構成する線分の配置を示す情報であり、３次元構造保持部１６０に保持される。
【００２９】
線分対応付け検出部１４０は、各フレームの画像データの線分と３次元空間上の線分との対応関係の情報を、３次元構造推定部１５０に出力する。また、線分対応付け検出部１４０は、３次元構造保持部１６０に保持された３次元構造情報と、対応関係の情報とを、カメラ位置・姿勢推定部１７０に出力する。
【００３０】
３次元構造推定部１５０は、各フレームの画像データの線分と３次元空間上の線分との対応関係を基にして、画像データから検出される各線分に対応する３次元構造を推定する処理部である。例えば、３次元構造推定部１５０は、画像データの線分に対応する３次元構造上の線分が存在しない場合には、現在の３次元構造を他の３次元構造に変更し、変更した３次元構造情報を、３次元構造保持部１６０に格納する。
【００３１】
例えば、３次元構造推定部１５０は、画像データの線分に対応する３次元構造上の線分が存在しない場合には、複数の３次元構造情報の線分と、画像データの線分とを比較し、画像データの線分に対応する線分を有する３次元構造情報を特定する。３次元構造推定部１５０は、特定した３次元構造情報を、３次元構造保持部１６０に格納する。
【００３２】
３次元構造保持部１６０は、３次元構造推定部１５０に推定された３次元構造情報を保持する。例えば、３次元構造情報は、３次元空間上の３次元構造物を構成する線分の長さや、各線分の座標の情報等を有する。
【００３３】
カメラ位置・姿勢推定部１７０は、３次元構造情報と、対応関係の情報とを基にして、カメラ位置およびカメラの姿勢を推定する処理部である。例えば、カメラ位置・姿勢推定部１７０は、LBOI（Line  Based  Orthogonal  Iteration）法に基づいて、カメラ位置および姿勢を推定する。例えば、LBOI法は「“A  new  line-based  orthogonal  iteration  pose  estimation  algorithm.”In  Information  Engineering  and  Computer  Science,2009.  ICIECS  2009.International  Conference  on,  pp.  1-4.  IEEE,  2009」に開示されている。
【００３４】
なお、カメラ位置・姿勢推定部１７０は、３次元構造情報および対応関係とカメラ位置・姿勢とを対応付けたテーブルまたは式を用いて、カメラ位置およびカメラの姿勢を推定しても良い。
【００３５】
出力情報生成部１８０は、カメラ位置・姿勢推定部１７０によって推定されたカメラ５０の位置および姿勢に基づいて、画像データに所定の画像を重畳することで出力情報を生成する処理部である。例えば、出力情報生成部１８０は、カメラ５０の位置および姿勢と、所定の画像を重畳する画像データ上の位置とを対応付けたテーブルを用いて、所定の画像を重畳する画像データ上の位置を特定し、特定した画像データ上の位置に、所定の画像を重畳する。
【００３６】
次に、線分特徴検出部１３０が、画像データから検出された線分の特徴を検出する処理について具体的に説明する。線分特徴検出部１３０は、線分の特徴を検出する場合に、LEHFを計算する。以下に、LEHFを算出する処理について説明する。
【００３７】
線分特徴検出部１３０は、線分の周辺で微分値を計算し、各微分値に基づいて勾配ベクトルを算出する。線分特徴検出部１３０は、線方向に応じて勾配ベクトルを足し合わせることで勾配ヒストグラムを複数計算し、LEHFを得る。特に、線分特徴検出部１３０は、線分方向に対応するように、勾配方向の定義と勾配ヒストグラムの配列順を決定することで、線分の特徴に方向依存性を持たせる。
【００３８】
線分特徴検出部１３０は、高速かつ安定的にLEHFを算出するために、線分の周囲で一定数のサンプル点を取り、そのサンプル点上で微分計算を行う。また、回転不変性を得るために、線分特徴検出部１３０は、サンプル点上で計算された勾配ベクトルの勾配方向と線分とのなす角を改めて勾配方向として定義する。回転不変性を得るために、画像データそのものを回転計算しないので、処理時間を短縮することが可能となる。
【００３９】
図２は、本実施例に係るLEHFの計算方式の例を説明するための図である。図２では、画像データ上の線分２０のLEHFを算出する場合について説明する。線分特徴検出部１３０は、線分２０の周辺に均一にサンプル点P11〜PSiSjをとる。図２において、Sjはj方向に取るサンプル点の数であり、Siはi方向に取るサンプル点の数である。j方向は、線分２０の平行な方向であり、i方向は、線分２０と直行する方向である。
【００４０】
ここで、各サンプル点をpij（pxij，pyij）とする。LEHFでは、勾配方向ヒストグラムを特徴量とするため、サンプル点毎に微分計算を行う。線分特徴検出部１３０は、サンプル点pijにおけるｘ方向の画素の明度の微分値dxijは、式（１）によって計算する。線分特徴検出部１３０は、サンプル点pijにおけるｙ方向の画素の明度の微分値dyijは、式（２）によって計算する。式（１）、（２）のI（pxij，pyij）は、画像データ上の座標（pxij，pyij）の画素の明度値を示す。
【００４１】
線分特徴検出部１３０は、微分値dxij，dyijに基づいて、勾配強度Ｌij、勾配方向θijをもつ勾配ベクトルを算出する。線分特徴検出部１３０は、式（３）を基にして、勾配強度Ｌijを算出する。線分特徴検出部１３０は、式（４）を基にして、勾配方向θijを算出する。
【００４２】
dxij=I（pxij+1，pyij）−I（pxij-1，pyij）・・・（１）
【００４３】
dyij=I（pxij，pyij+１）−I（pxij，pyij-１）・・・（２）
【００４４】
Ｌij=√（dxij２+  dyij２）・・・（３）
【００４５】
θij=arctan（dyij/dxij）・・・（４）
【００４６】
線分特徴検出部１３０は勾配ベクトルを算出した後に、勾配ベクトルを基にして、サンプル点毎に８方向勾配ヒストグラムを計算する。あるサンプル点の８方向勾配ヒストグラムhiを式（５）に示す。線分特徴検出部１３０は、８方向勾配ヒストグラムを算出する線分が順方向であるか否かに応じて、勾配ベクトルθを補正した後に、下記の処理を行う。線分特徴検出部１３０は、線分が逆方向である場合には、勾配ベクトルθからπを減算する補正を行う。線分特徴検出部１３０が、線分が順方向であるか否かを判定する処理は後述する。
【００４７】
hi=（hi,0、hi,1、hi,2、hi,３、hi,4、hi,5、hi,6、hi,7）・・・（５）
【００４８】
線分特徴検出部１３０は、勾配ベクトルの勾配方向が「０以上、π／４未満」の場合には、「hi,0」に勾配ベクトルの勾配強度を格納し、「hi,1、hi,2、hi,３、hi,4、hi,5、hi,6、hi,7」に０を格納する。線分特徴検出部１３０は、勾配ベクトルの勾配方向が「π／４以上、π／２」未満の場合には、「hi,1」に勾配ベクトルの勾配強度を格納し、「hi,0、hi,2、hi,３、hi,4、hi,5、hi,6、hi,7」に０を格納する。線分特徴検出部１３０は、勾配ベクトルの勾配方向が「π／２以上、３π／４未満」の場合には、「hi,2」に勾配ベクトルの勾配強度を格納し、「hi,0、hi,1、hi,３、hi,4、hi,5、hi,6、hi,7」に０を格納する。
【００４９】
線分特徴検出部１３０は、勾配ベクトルの勾配方向が「３π／４以上、π未満」の場合には、「hi,3」に勾配ベクトルの勾配強度を格納し、「hi,0、hi,1、hi,2、hi,4、hi,5、hi,6、hi,7」に０を格納する。線分特徴検出部１３０は、「π以上、５π／４未満」の場合には、「hi,4」に勾配ベクトルの勾配強度を格納し、「hi,0、hi,1、hi,2、hi,３、hi,5、hi,6、hi,7」に０を格納する。
【００５０】
線分特徴検出部１３０は、「５π／４以上、３π／２未満」の場合には、「hi,5」に勾配ベクトルの勾配強度を格納し、「hi,0、hi,1、hi,2、hi,３、hi,4、hi,6、hi,7」に０を格納する。線分特徴検出部１３０は、「３π／２以上、７π／４未満」の場合には、「hi,6」に勾配ベクトルの勾配強度を格納し、「hi,0、hi,1、hi,2、hi,３、hi,4、hi,5、hi,7」に０を格納する。線分特徴検出部１３０は、「７π／４以上、２π未満」の場合には、「hi,7」に勾配ベクトルの勾配強度を格納し、「hi,0、hi,1、hi,2、hi,３、hi,4、hi,5、hi,6」に０を格納する。
【００５１】
ここで、線分特徴検出部１３０は、式（５）に基づいて、サンプル点毎に８方向勾配ヒストグラムを算出した後に、それぞれのiに対して８方向勾配ヒストグラムを並べることで、LEHFを得る。線分特徴検出部１３０は、線分の方向が順方向である場合には、８方向配列ヒストグラムを、式（６）に従って並べる。また、線分の方向が逆方向である場合には、８方向配列ヒストグラムを、式（７）に従って並べる。
【００５２】
LEHF=（h1、h2、h3、h4、・・・、hSi）・・・（６）
【００５３】
LEHF=（hSi、hSi-１、・・・、h1）・・・（７）
【００５４】
LEHFの次元数は、例えば、サンプル点pi，jとpi+１，jとの間の距離を３画素とし、Sj=45、Si=13とした場合に１０４次元となる。なお、線分特徴検出部１３０は、各iについて式（８）に示すような重み付けwiを行っても良い。線分特徴検出部１３０は、式（８）に示す重み付けを行うことで、線分により近いLEFHに比重をかけることができる。式（８）に含まれるGは、分散σの正規分布に対応し、Gの引数は中央からの距離である。
【００５５】
wi=G（（i-Si+1/2）/3））・・・（８）
【００５６】
ここで、線分特徴検出部１３０が、LEHFを算出する処理手順の一例について説明する。図３は、本実施例に係る線分特徴検出部の処理手順を示すフローチャートである。図３に示すように、線分特徴検出部１３０は、線分の方向を計算する（ステップＳ１０）。線分特徴検出部１３０は、線分の方向が逆方向の場合には、Θにπを足す（ステップＳ１１）。
【００５７】
線分特徴検出部１３０は、LEHF（h1、h2、h3、h4、・・・、hSi）を初期化する（ステップＳ１２）。線分特徴検出部１３０は、サンプル点pijにおいて、微分値dxij，dyijを計算する（ステップＳ１３）。線分特徴検出部１３０は、微分値dxij，dyijを基にして勾配強度Ｌijおよび勾配方向θijを算出する（ステップＳ１４）。線分特徴検出部１３０は、勾配方向θijからΘを引くことで勾配方向θijを修正する（ステップＳ１５）。
【００５８】
線分特徴検出部１３０は、勾配方向θijを８方向に量子化し、８方向勾配ヒストグラムhiを計算する（ステップＳ１６）。線分特徴検出部１３０は、８方向勾配ヒストグラムhiを重みで更新する（ステップＳ１７）。ステップＳ１７において、線分特徴検出部１３０は、式（９）によって、８方向勾配ヒストグラムhiを更新する。
【００５９】
hi，id＝hi，id+wi×Ｌij・・・（９）
【００６０】
線分特徴検出部１３０は、全てのサンプル点を選択していない場合には（ステップＳ１８，Ｎｏ）、ステップＳ１３に移行する。一方、線分特徴検出部１３０は、全てのサンプル点を選択した場合には（ステップＳ１８，Ｙｅｓ）、８方向勾配ヒストグラムを並べ、LEHFを得る（ステップＳ１９）。線分特徴検出部１３０は、LEHFを正規化し（ステップＳ２０）、処理を終了する。
【００６１】
ところで、ステップＳ１９において、線分特徴検出部１３０は、線分の方向が順方向の場合には、上記式（６）に基づき、LEHFを得る。線分特徴検出部１３０は、線分の方向が逆方向の場合には、上記式（７）に基づき、LEHFを得る。
【００６２】
本実施例に係る線分特徴検出部１３０は、線分の方向情報を後述する技術で定義し、それに基づいてLEHFを定義した上で方向情報に合わせて予め並べ替えておく。このため、類似したLEHFを持つ線分が１８０度回転した形で隣接している場合での誤Matchingを低減することが可能となる。
【００６３】
また、処理速度に関して、下記の効果を得ることができる。LEHFを形成するベクトル成分の次元数を，従来の８×（ｎ＋１）次元から８×ｎ次元に削減を図ることが可能となり、LEHFのMatchingの際の処理時間を低減することが可能となる。LEHFのMatchingの際に，従来は回転を考慮して２回の計算が必要であったものが、１回で済むようになり、LEHFのMatchingの処理時間を１／２に低減することが可能となる。
【００６４】
次に、本実施例に係る線分特徴検出部１３０が線分の方向が順方向であるか否かを判定する処理について具体的に説明する。元々線分は、線分の両サイドに明暗差が特定の値より大きい画素を結んだ集合体として定義することができる。このため、線分の一方のサイドが他方のサイドよりも明度が高くなるという特徴を有している。そこで、線分特徴検出部１３０は、線分の方向を定める場合に、線分を挟む両サイドの明度の強弱を基準に判定する。
【００６５】
図４は、線分の方向を判定する処理を説明するための図（１）である。図４に示す例では、線分２０ａを挟んで上サイドが暗く、下サイドが明るい場合を示している。線分２０ａの方向を矢印で表した場合に、矢印の始点から終点を見て右サイドが明るくなるような方向を、矢印の方向として定義する。このように定義すると線分２０ａの方向は、左から右方向となる。例えば、線分特徴検出部１３０は、線分の方向を特定し、線分の方向が左から右方向であれば、係る線分の方向を順方向とする。これに対して、線分特徴検出部１３０は、線分の方向を特定し、方向が右から左方向であれば、係る線分の方向を逆方向とする。
【００６６】
なお、線分特徴検出部１３０は、線分２０ａの両サイドの明暗を判定する場合には、下記の処理を行う。線分特徴検出部１３０は、線分２０ａから予め定めた特定距離の画素の明度を各サイドから取得し、各サイドの画素の明度の平均値を算出する。線分特徴検出部１３０は、一方のサイドの明度の平均値と、他方のサイドの明度の平均値とを比較して、両サイドの明暗を判定する。
【００６７】
次に、本実施例に係る線分の方向が順方向であるか否かを判定するその他の処理について説明する。LEHFは、勾配ベクトルを用いて定義されている。そのため、線分上の画素の勾配ベクトルの方向成分は、そのまま線分の当該画素での線分の両サイドの明度の大小を表しており、勾配ベクトルの強度成分は明度の大小の差の大きさを表している。そのため、LEHFの線分上の成分に当たる８方向勾配ヒストグラムhiは、線分の両サイドの明暗の大小を反映している。
【００６８】
図５は、線分の方向を判定する処理を説明するための図（２）である。図５に示す例では、線分２０ｂを挟んで左サイドが暗く、右サイドが明るい場合の例を示している。この時の線分２０ｂに対する８方向勾配ベクトルhiをヒストグラムの形で表すとグラフ３０に示すものとなる。グラフ３０の横軸は、勾配方向を示し、縦軸は、勾配強度の和を示す。図３０に示すように、例えば、線分２０ｂの右サイド側に当たる勾配方向６にヒストグラムのピークが表れる。
【００６９】
このため、線分２０ｂの矢印の始点から終点を見て右サイドにヒストグラムのピークが来る場合に、現矢印の方向が線分の方向であると特定する。そして、線分の方向が左から右方向であれば、係る線分の方向を順方向とする。これに対して、線分特徴検出部１３０は、線分の方向を特定し、線分の方向が右から左方向であれば、係る線分の方向を逆方向とする。
【００７０】
次に、線分対応付け検出部１４０が、ｎフレームの画像データから検出された線分の特徴と、ｎ＋１フレームの画像データから検出された線分の特徴とを対応付ける処理について具体的に説明する。線分対応付け検出部１４０は、ｎフレームの画像データの線分を、ｎ＋１フレームの画像データに投影する。線分対応付け検出部１４０は、ｎ＋１フレームの画像データに含まれる各線分のうち、投影位置付近に位置する線分に対して類似度の判定を行うことで、Matcingを行う。
【００７１】
図６は、本実施例に係る線分対応付け検出部の処理を説明するための図である。図６において、線分４０は、ｎフレームの画像データの線分を、ｎ＋１フレームの画像データに投影した線分である。線分５１〜５８は、ｎ＋１フレームの画像データから検出された線分である。線分特徴検出部１３０は、線分４０から所定の距離に含まれる線分５１〜５４を選択し、線分４０と、線分５１〜５４とをそれぞれ比較して、類似度を算出する。
【００７２】
例えば、ｎフレームの画像データから投影した線分ＡのLEHFを（ha1、ha2、ha3、ha4、・・・、haSi）とし、ｎ＋１フレームの画像データ上の線分ＢのLEHFを（hb1、hb2、hb3、hb4、・・・、hbSi）とする。線分対応付け検出部１４０は、式（１０）に基づいて、線分Ａ，Ｂの類似度を算出する。式（１０）を用いると、各線分が類似すればするほど類似度の値は小さくなる。この他にも類似度の算出には一般的な他の方法を用いても良い。
【００７３】
類似度＝（（ha1-hb1）２＋（ha2-hb2）２＋（ha3-hb３）２＋（ha4-hb4）２＋・・・＋（haSi-hbSi）２）1/2・・・（１０）
【００７４】
線分対応付け検出部１４０は、線分Ａと線分Ｂとの組みについて、類似度が予め定めた第１基準値未満となる場合に、該線分Ａと線分Ｂとのなす角度を算出する。線分対応付け検出部１４０は、線分Ａと線分Ｂとのなす角度が、第２基準値未満であるか否かを判定する。線分対応付け検出部１４０は、線分Ａと線分Ｂとについて、類似度が第１基準値未満となり、かつ、なす角度が第２基準値未満となる場合に、線分Ａと線分Ｂとの組みを、対応する線分の候補に追加する。
【００７５】
線分対応付け検出部１４０は、対応する線分の候補を抽出した後に、複数の線分の候補が含まれる場合には、各候補の評価指数を算出する。例えば、線分対応付け検出部１４０は、評価指数を、式（１１）を基にして算出する。式（１１）に含まれるα、βは、所定の補正係数である。線分対応付け検出部１４０は、複数の線分の候補のうち、評価指数が最小となる組みを、対応する線分の候補に決定する。
【００７６】
評価指数＝α×類似度＋β×なす角度・・・（１１）
【００７７】
例えば、線分対応付け検出部１４０は、線分Ａに対応する線分の候補として、線分Ｂ１と線分Ｂ２とが存在し、線分Ａと線分Ｂ１との評価指数が、線分Ａと線分Ｂ２との評価指数よりも小さい場合には、線分Ａに対応する線分を、線分Ｂ１として決定する。なお、線分対応付け検出部１４０は、対応する線分の候補が単一の場合には、評価指数の計算をスキップし、かかる単一の線分を、対応する線分として決定する。
【００７８】
次に、線分対応付け検出部１４０が、各フレームの線分と、３次元構造情報とを基にして、画像データの線分と、３次元空間上の３次元構造物を構成する線分を対応付ける処理について具体的に説明する。
【００７９】
線分対応付け検出部１４０は、３次元構造保持部１６０に保持される３次元構造情報を取得し、３次元構造物の各線分を、ｎフレームの画像データ上に投影する。例えば、線分対応付け検出部１４０は、３次元上の各線分の座標を、２次元の座標に変換する変換テーブルを利用して、３次元構造物の各線分を、ｎフレームの画像データ上に投影する。線分対応付け検出部１４０は、画像データ上の線分と、投影した線分とを対応付ける。
【００８０】
線分対応付け検出部１４０が、画像データ上の線分と、投影した線分とを対応付ける処理は、上述したｎフレームの画像データの線分と、ｎ＋１フレームの画像データの線分とを対応付ける処理と同様である。
【００８１】
線分対応付け検出部１４０は、画像データ上の線分と、投影した線分とを対応付けた結果を、３次元構造推定部１５０に出力する。なお、線分対応付け検出部１４０は、画像データ上の線分に対応する３次元構造情報の線分が存在しない場合には、対応する線分が存在しない旨の情報を、３次元構造推定部１５０に出力する。
【００８２】
次に、本実施例に係る画像処理装置１００の処理手順について説明する。図７は、本実施例に係る画像処理装置の処理手順を示すフローチャートである。図７に示す処理は、カメラ５０から画像データを取得する度に繰り返し実行される。
【００８３】
図７に示すように、画像処理装置１００は、カメラ５０から画像データを取得し（ステップＳ１０１）、線分を検出する（ステップＳ１０２）。画像処理装置１００は、LEFHを検出し（ステップＳ１０３）、線分の特徴を検出する（ステップＳ１０４）。
【００８４】
画像処理装置１００は、線分の対応付けを行う（ステップＳ１０５）。ステップＳ１０５において、画像処理装置１００は、ｎフレームの画像データの線分と、ｎ＋１フレームの画像データの線分とを対応付ける。また、画像処理装置１００は、ｎフレームの画像データの線分と、３次元構造情報の線分とを対応付ける。
【００８５】
画像処理装置１００は、３次元構造情報の線分に対応しない新たな線分が、画像データの線分に存在するか否かを判定する（ステップＳ１０６）。画像処理装置１００は、新たな線分が存在しない場合には（ステップＳ１０６，Ｎｏ）、カメラ位置および姿勢を推定する（ステップＳ１０７）。
【００８６】
画像処理装置１００は、コンテンツを提供する（ステップＳ１０８）。ステップＳ１０８において、画像処理装置１００は、例えば、カメラ５０の位置および姿勢に基づいて、画像データに所定の画像を重畳することで出力情報を生成し、表示装置６０に出力する。
【００８７】
画像処理装置１００は、処理を終了しない場合には（ステップＳ１０９，Ｎｏ）、再度、ステップＳ１０１に移行する。一方、画像処理装置１００は、処理を終了する場合には（ステップＳ１０９，Ｙｅｓ）、処理を終了する。
【００８８】
ところで、画像処理装置１００は、ステップＳ１０６において、新たな線分が存在する場合には（ステップＳ１０６，Ｙｅｓ）、画像データ間で線分追跡を行う（ステップＳ１１０）。画像処理装置１００は、画像データに含まれる線分に対応する３次元構造の線分の位置を推定し（ステップＳ１１１）、３次元構造を推定し（ステップＳ１１２）、ステップＳ１０９に移行する。
【００８９】
次に、図７のステップＳ１０５に示した線分対応付け処理の処理手順について説明する。図８は、線分対応付け処理の処理手順を示すフローチャートである。図８に示すように、画像処理装置１００は、直前の画像データ中の線分を投影し（ステップＳ２０１）、投影した線分位置の近傍の線分を抽出する（ステップＳ２０２）。
【００９０】
画像処理装置１００は、LEHFの類似度を算出し（ステップＳ２０３）、類似度が第１基準値未満であるか否かを判定する（ステップＳ２０４）。画像処理装置１００は、類似度が第１基準値未満でない場合には（ステップＳ２０４，Ｎｏ）、ステップＳ２０８に移行する。
【００９１】
一方、画像処理装置１００は、類似度が第１基準値未満の場合には（ステップＳ２０４，Ｙｅｓ）、なす角度を算出する（ステップＳ２０５）。画像処理装置１００は、なす角度が第２基準値未満であるか否かを判定する（ステップＳ２０６）。画像処理装置１００は、なす角度が第２基準値未満でない場合には（ステップＳ２０６，Ｎｏ）、ステップＳ２０８に移行する。
【００９２】
一方、画像処理装置１００は、なす角度が第２基準値未満の場合には（ステップＳ２０６，Ｙｅｓ）、対応する線分の候補に設定する（ステップＳ２０７）。ステップＳ２０７において、画像処理装置１００は、各線分の類似度が第１基準値未満となり、各線分のなす角度が第２基準値未満となる線分の組みを、対応する線分の候補に設定する。
【００９３】
画像処理装置１００は、未処理の線分がある場合には（ステップＳ２０８，Ｙｅｓ）、再度、ステップＳ２０３に移行する。一方、画像処理装置１００は、未処理の線分が存在しない場合には（ステップＳ２０８，Ｎｏ）、線分の候補が一つであるか否かを判定する（ステップＳ２０９）。画像処理装置１００は、線分の候補が一つである場合には（ステップＳ２０９，Ｙｅｓ）、ステップＳ２１２に移行する。
【００９４】
一方、画像処理装置１００は、線分の候補が一つでない場合には（ステップＳ２０９，Ｎｏ）、対応する線分が存在するか否かを判定する（ステップＳ２１０）。画像処理装置１００は、対応する線分が存在する場合には（ステップＳ２１０，Ｙｅｓ）、評価指数を算出する（ステップＳ２１１）。画像処理装置１００は、各線分の評価指数を基にして、対応する線分を決定する（ステップＳ２１２）。例えば、画像処理装置１００は、各線分の内、評価指数が最小となる各線分を、対応関係にある線分の組みと判定する。
【００９５】
一方、ステップＳ２１０において、画像処理装置１００は、対応する線分が存在しない場合には（ステップＳ２１０，Ｎｏ）、線分を除外する（ステップＳ２１３）。
【００９６】
次に、本実施例に係る画像処理装置１００の効果について説明する。画像処理装置１００は、画像データの線分を対応付ける場合に、線分の特徴として、線分のLEHFと線分の方向とを用いて、８方向配列ヒストグラムを求め、各線分の対応付けを行う。このため、画像処理装置１００によれば、線分の対応付けを精度良く実行することができる。
【００９７】
また、画像処理装置１００によれば、仮想現実技術の中で用いる、複数のカメラ撮影画像間もしくはカメラ撮影画像と別途生成した３次元構造間での線分の対応付けの際に、従来の線分周辺の画素の明度の分布情報に加えて、線分の方向情報を用いて対応付けを行うことで、特にその配置が１８０度回転した線分同士の誤対応の低減を図ることが可能となり、従来技術より高精度かつカメラの移動への追従性の高い拡張現実技術の実現が可能となる。
【００９８】
また、画像処理装置１００は、線分周辺の画素の明度の分布情報を線分の方向情報に基づいて正規化している。このため、画像処理装置１００によれば、線分同士のMatchingの際の計算回数を低減でき，従来技術より高速でリアルタイム処理に適した拡張現実技術の実現が可能となる。
【００９９】
また、LEHFを形成するベクトル成分の次元数を、従来の８×（ｎ＋１）次元から８×ｎ次元に削減することができ、LEHFのMatchingの際の処理時間を低減することができる。また、LEHFのMatchingの際に、従来は回転を考慮して２回の計算を行っていたが、画像処理装置１００は１回の計算で済み、LEHFのMachingの処理時間を１／２に低減することが可能となる。
【０１００】
また、画像処理装置１００は、線分の周辺範囲の画素の明暗の分布を基にして線分の方向を特定し、線分上および線分周辺の画素の明暗の分布を基にして計算される複数の勾配方向ヒストグラムの配列順を、線分の方向に従って決定する。このため、線分の方向を一意に特定することが可能となり、線分の方向情報を用いた線分Matchingの高精度化をはかることが可能となる。
【０１０１】
また、画像処理装置１００は、線分の両サイドに予め定めた特定範囲の明度の強弱を基準にして、線分の方向を特定する。このため、線分の方向を検出するために別の処理を行う事無く、LEHFの線分特徴の計算結果のみを用いて線分の方向情報を検出できる。これにより、処理時間の短縮を図ることが可能となり，同時に、線分の方向特徴を用いた線分Matchingの高精度化を図ることが可能となる。
【０１０２】
また、画像処理装置１００は、各線分の類似度およびなす角度を算出し、対応する線分の組みを決定する。このため、対応する線分同士を高精度に対応付けることが可能となる。
【０１０３】
次に、上記実施例に示した画像処理装置と同様の機能を実現する画像処理装置を実行するコンピュータの一例について説明する。図９は、画像処理プログラムを実行するコンピュータの一例を示す図である。
【０１０４】
図９に示すように、このコンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取る読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置２０５とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０６と、ハードディスク装置２０７を有する。そして、各装置２０１〜２０７は、バス２０８に接続される。
【０１０５】
ハードディスク装置２０７は、線分検出プログラム２０７ａ、線分特徴検出プログラム２０７ｂ、対応付け検出プログラム２０７ｃ、３次元構造推定プログラム２０７ｄ、カメラ位置姿勢推定プログラム２０７ｅ、出力プログラム２０７ｆを有する。ＣＰＵ２０１は、各プログラム２０７ａ〜２０７ｆを読み出してＲＡＭ２０６に展開する。また、ハードディスク装置２０７は、図示しない３次元構造情報を有する。３次元構造情報は、３次元構造保持部１６０が保持する情報に対応する。
【０１０６】
線分検出プログラム２０７ａは、線分検出プロセス２０６ａとして機能する。線分特徴検出プログラム２０７ｂは、線分特徴検出プロセス２０６ｂとして機能する。対応付け検出プログラム２０７ｃは、対応付け検出プロセス２０６ｃとして機能する。３次元構造推定プログラム２０７ｄは、３次元構造推定プロセス２０６ｄとして機能する。カメラ位置姿勢推定プログラム２０７ｅは、カメラ位置姿勢推定プロセス２０６ｅとして機能する。出力プログラム２０７ｆは、出力プロセス２０６ｆとして機能する。
【０１０７】
例えば、線分検出プロセス２０６ａは、線分検出部１２０に対応する。線分特徴検出プロセス２０６ｂは、線分特徴検出部１３０に対応する。対応付け検出プロセス２０６ｃは、線分対応付け検出部１４０に対応する。３次元構造推定プロセス２０６ｄは、３次元構造推定部１５０に対応する。カメラ位置姿勢推定プロセス２０６ｅは、カメラ位置・姿勢推定部１７０に対応する。出力プロセス２０６ｆは、出力情報生成部１８０に対応する。
【０１０８】
なお、各プログラム２０７ａ〜２０７ｆについては、必ずしも最初からハードディスク装置２０７に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００がこれらから各プログラム２０７ａ〜２０７ｆを読み出して実行するようにしてもよい。
【０１０９】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１０】
（付記１）カメラから取得する画像データから線分を検出する線分検出部と、
前記線分検出部に検出される線分周辺の画素の明度の分布と前記線分の方向とを前記線分の特徴として検出する線分特徴検出部と、
３次元空間上の３次元構造物を構成する各線分の配置を示す３次元構造情報を保持する３次元構造保持部と、
前の画像データから検出される線分の特徴と、後の画像データから検出される線分の特徴とを基にして、前の画像データの線分と後の画像データの線分との対応関係を検出し、
画像データから検出される線分の特徴と前記３次元構造情報とを基にして、該画像データから検出される線分と、前記３次元空間上の線分との対応関係を検出する対応付け検出部と
を有することを特徴とする画像処理装置。
【０１１１】
（付記２）前記対応付け検出部に検出される対応関係を基にして、前記線分に対応する３次元構造を推定する３次元構造推定部と、前記３次元構造推定部の推定結果と、前記対応付け検出部に検出される対応関係とを基にして、前記カメラの位置および姿勢を推定するカメラ位置姿勢推定部と、前記カメラ位置姿勢推定部に推定されるカメラの位置および姿勢を基にして、前記画像データに所定の画像を重畳表示する出力部とを有することを特徴とする付記１に記載の画像処理装置。
【０１１２】
（付記３）前記線分特徴検出部は、前記線分の周辺範囲の画素の明暗の分布を基にして前記線分の方向を特定し、前記線分上および前記線分周辺の画素の明暗の分布を基にして計算される複数の勾配方向ヒストグラムの配列順を、前記線分の方向に従って決定することで前記線分の特徴を検出することを特徴とする付記１または２に記載の画像処理装置。
【０１１３】
（付記４）前記線分特徴検出部は、前記線分の両サイドに予め定めた特定範囲の明度の強弱を基準にして、前記線分の方向を特定することを特徴とする付記３に記載の画像処理装置。
【０１１４】
（付記５）前記線分特徴検出部は、前記線分上の画素の明暗の分布を基にして計算される勾配方向毎のヒストグラムを基にして、前記線分の方向を特定することを特徴とする付記３に記載の画像処理装置。
【０１１５】
（付記６）前記対応付け検出部は、前の画像データの線分を後の画像データに投影し、後の画像データの第１の線分と、該第１の線分の周辺に位置する投影した１ないし複数の第２の線分との特徴を基にして、第１の線分および第２の線分の類似度を算出し、前記第１の線分と前記第２の線分とのなす角度を算出し、前記類似度と前記なす角度とを基にして、対応する線分を検出することを特徴とする付記１に記載の画像処理装置。
【０１１６】
（付記７）前記対応付け検出部は、３次元構造情報に含まれる線分を画像データに投影し、画像データの第１の線分と、投影した１ないし複数の第３の線分との特徴を基にして、第１の線分および第３の線分の類似度を算出し、前記第１の線分と前記第３の線分とのなす角度を算出し、前記類似度と前記なす角度とを基にして、対応する線分を検出することを特徴とする付記１に記載の画像処理装置。
【０１１７】
（付記８）コンピュータが実行する画像処理方法であって、
カメラから取得する画像データから線分を検出し、
検出した線分周辺の画素の明度の分布と前記線分の方向とを前記線分の特徴として検出し、
３次元構造保持部から、３次元空間上の３次元構造物を構成する各線分の配置を示す３次元構造情報を取得し、
前の画像データから検出される線分の特徴と、後の画像データから検出される線分の特徴とを基にして、前の画像データの線分と後の画像データの線分との対応関係を検出し、
画像データから検出される線分の特徴と前記３次元構造情報とを基にして、該画像データから検出される線分と、前記３次元空間上の線分との対応関係を検出する
各処理を実行することを特徴とする画像処理方法。
【０１１８】
（付記９）前記対応関係を基にして、前記線分に対応する３次元構造を推定し、推定結果と、前記対応関係とを基にして、前記カメラの位置および姿勢を推定し、前記カメラの位置および姿勢を基にして、前記画像データに所定の画像を重畳表示する処理を更に実行することを特徴とする付記８に記載の画像処理方法。
【０１１９】
（付記１０）前記線分の特徴を検出する処理は、前記線分の周辺範囲の画素の明暗の分布を基にして前記線分の方向を特定し、前記線分上および前記線分周辺の画素の明暗の分布を基にして計算される複数の勾配方向ヒストグラムの配列順を、前記線分の方向に従って決定することで前記線分の特徴を検出することを特徴とする付記８または９に記載の画像処理方法。
【０１２０】
（付記１１）前記線分の特徴を検出する処理は、前記線分の両サイドに予め定めた特定範囲の明度の強弱を基準にして、前記線分の方向を特定することを特徴とする付記１０に記載の画像処理方法。
【０１２１】
（付記１２）前記線分の特徴を検出する処理は、前記線分上の画素の明暗の分布を基にして計算される勾配方向毎のヒストグラムを基にして、前記線分の方向を特定することを特徴とする付記１０に記載の画像処理方法。
【０１２２】
（付記１３）前記対応付ける処理は、前の画像データの線分を後の画像データに投影し、後の画像データの第１の線分と、該第１の線分の周辺に位置する投影した１ないし複数の第２の線分との特徴を基にして、第１の線分および第２の線分の類似度を算出し、前記第１の線分と前記第２の線分とのなす角度を算出し、前記類似度と前記なす角度とを基にして、対応する線分を検出することを特徴とする付記８に記載の画像処理方法。
【０１２３】
（付記１４）前記対応付ける処理は、３次元構造情報に含まれる線分を画像データに投影し、画像データの第１の線分と、投影した１ないし複数の第３の線分との特徴を基にして、第１の線分および第３の線分の類似度を算出し、前記第１の線分と前記第３の線分とのなす角度を算出し、前記類似度と前記なす角度とを基にして、対応する線分を検出することを特徴とする付記８に記載の画像処理方法。
【０１２４】
（付記１５）コンピュータに、
カメラから取得する画像データから線分を検出し、
検出した線分周辺の画素の明度の分布と前記線分の方向とを前記線分の特徴として検出し、
３次元構造保持部から、３次元空間上の３次元構造物を構成する各線分の配置を示す３次元構造情報を取得し、
前の画像データから検出される線分の特徴と、後の画像データから検出される線分の特徴とを基にして、前の画像データの線分と後の画像データの線分との対応関係を検出し、
画像データから検出される線分の特徴と前記３次元構造情報とを基にして、該画像データから検出される線分と、前記３次元空間上の線分との対応関係を検出する
各処理を実行させることを特徴とする画像処理プログラム。
【０１２５】
（付記１６）前記対応関係を基にして、前記線分に対応する３次元構造を推定し、推定結果と、前記対応関係とを基にして、前記カメラの位置および姿勢を推定し、前記カメラの位置および姿勢を基にして、前記画像データに所定の画像を重畳表示する処理を更にコンピュータに実行させることを特徴とする付記１５に記載の画像処理プログラム。
【０１２６】
（付記１７）前記線分の特徴を検出する処理は、前記線分の周辺範囲の画素の明暗の分布を基にして前記線分の方向を特定し、前記線分上および前記線分周辺の画素の明暗の分布を基にして計算される複数の勾配方向ヒストグラムの配列順を、前記線分の方向に従って決定することで前記線分の特徴を検出することを特徴とする付記１５または１６に記載の画像処理プログラム。
【０１２７】
（付記１８）前記線分の特徴を検出する処理は、前記線分の両サイドに予め定めた特定範囲の明度の強弱を基準にして、前記線分の方向を特定することを特徴とする付記１７に記載の画像処理プログラム。
【０１２８】
（付記１９）前記線分の特徴を検出する処理は、前記線分上の画素の明暗の分布を基にして計算される勾配方向毎のヒストグラムを基にして、前記線分の方向を特定することを特徴とする付記１７に記載の画像処理プログラム。
【０１２９】
（付記２０）前記対応付ける処理は、前の画像データの線分を後の画像データに投影し、後の画像データの第１の線分と、該第１の線分の周辺に位置する投影した１ないし複数の第２の線分との特徴を基にして、第１の線分および第２の線分の類似度を算出し、前記第１の線分と前記第２の線分とのなす角度を算出し、前記類似度と前記なす角度とを基にして、対応する線分を検出することを特徴とする付記１５に記載の画像処理プログラム。
【０１３０】
（付記２１）前記対応付ける処理は、３次元構造情報に含まれる線分を画像データに投影し、画像データの第１の線分と、投影した１ないし複数の第３の線分との特徴を基にして、第１の線分および第３の線分の類似度を算出し、前記第１の線分と前記第３の線分とのなす角度を算出し、前記類似度と前記なす角度とを基にして、対応する線分を検出することを特徴とする付記１５に記載の画像処理プログラム。
【符号の説明】
【０１３１】
１００  画像処理装置
１１０  画像取得部
１２０  線分検出部
１３０  線分特徴検出部
１４０  線分対応付け検出部
１５０  ３次元構造推定部
１６０  ３次元構造保持部
１７０  カメラ位置・姿勢推定部
１８０  出力情報生成部
【図１】
2015118641.tif 000003
【図２】
2015118641.tif 000004
【図３】
2015118641.tif 000005
【図４】
2015118641.tif 000006
【図５】
2015118641.tif 000007
【図６】
2015118641.tif 000008
【図７】
2015118641.tif 000009
【図８】
2015118641.tif 000010
【図９】
2015118641.tif 000011
【図１０】
2015118641.tif 000012
【図１１】
2015118641.tif 000013
【図１２】
2015118641.tif 000014