(57)【要約】【課題】異なる時間に異なる視点から撮影された画像情報に基づいて、同一の被写体の３次元形状を算出すること。【解決手段】形状推定装置１００は、同一の被写体を撮影した時間差のある複数の画像情報から複数の特徴点を抽出する。形状推定装置１００は、複数の特徴点から一部の特徴点を選択し、選択した一部の特徴点に基づく被写体の３次元形状の推定に成功した場合に、複数の特徴点から一部の特徴点を除去する処理を繰り返し行うことで、複数の３次元形状を推定する。形状推定装置１００は、複数の３次元形状を統合する。【選択図】図１８
2018049396.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する形状推定方法であって、
同一の被写体を撮影した時間差のある複数の画像情報から複数の特徴点を抽出し、
複数の特徴点から一部の特徴点を選択し、選択した一部の特徴点に基づく前記被写体の３次元形状の推定に成功した場合に、前記複数の特徴点から前記一部の特徴点を除去する処理を繰り返し行うことで、複数の３次元形状を推定し、
前記複数の３次元形状を統合する
各処理を実行することを特徴とする形状推定方法。
【請求項２】
前記複数の画像情報は、同一のカメラによって異なるパラメータによりそれぞれ撮影された画像情報であり、前記統合する処理は、前記複数の３次元形状の３次元座標を、指定されたパラメータに応じて変換した後に、前記複数の３次元形状を統合することを特徴とする請求項１に記載の形状推定方法。
【請求項３】
前記推定する処理は、前記被写体の３次元形状の推定に成功した場合に、前記一部の特徴点を含む領域を複数の部分領域に分割し、複数の部分領域のうち、前記一部の特徴点以外の特徴点を含む割合が閾値未満となる部分領域を除去することを特徴とする請求項１または２に記載の形状推定方法。
【請求項４】
同一の被写体を撮影した時間差のある複数の画像情報から複数の特徴点を抽出する抽出部と、
複数の特徴点から一部の特徴点を選択し、選択した一部の特徴点に基づく前記被写体の３次元形状の推定に成功した場合に、前記複数の特徴点から前記一部の特徴点を除去する処理を繰り返し行うことで、複数の３次元形状を推定する推定部と、
前記複数の３次元形状を統合する統合部と
を有することを特徴とする形状推定装置。
【請求項５】
コンピュータに、
同一の被写体を撮影した時間差のある複数の画像情報から複数の特徴点を抽出し、
複数の特徴点から一部の特徴点を選択し、選択した一部の特徴点に基づく前記被写体の３次元形状の推定に成功した場合に、前記複数の特徴点から前記一部の特徴点を除去する処理を繰り返し行うことで、複数の３次元形状を推定し、
前記複数の３次元形状を統合する
各処理を実行させることを特徴とする形状推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、形状推定方法等に関する。
【背景技術】
【０００２】
複数の視点からカメラに撮影された被写体の画像情報を基にして、被写体の３次元形状を復元する技術がある。例えば、被写体の３次元形状は、３次元上で被写体を構成する複数の特徴点と、３次元座標とを対応付けた情報である。
【０００３】
ここで、一台のカメラを用いて視点を変えながら撮影した複数枚の画像情報を用いて３次元形状を復元する場合には、ＳｆＭ（Structure  from  Motion）と呼ばれる従来技術が用いられる。図２９および図３０は、ＳｆＭを説明するための図である。ＳｆＭは、手順１、手順２を順に実行する。
【０００４】
図２９を用いて手順１について説明する。ＳｆＭは、各画像情報から特徴点を抽出して、画像情報間で最も合致する特徴点同士をマッチングする。図２９に示す画像情報１０、１１、１２は、それぞれ、一台のカメラによって、異なる撮影方向、異なるタイミングで撮影された画像情報である。画像情報１０〜１２には、同一の被写体が含まれている。
【０００５】
ＳｆＭは、ＳＩＦＴ（Scale-Invariant  Feature  Transform）特徴量に基づき各画像情報１０〜１２の特徴点を算出する。図２９では一例として、画像情報１０から特徴点１０ａ，１０ｂ，１０ｃが算出され、画像情報１１から特徴点１１ａ，１１ｂ，１１ｃが算出され、画像情報１２から特徴点１２ａ，１２ｂ，１２ｃが算出された場合を示す。ＳｆＭは、各特徴点１０ａ〜１０ｃ，１１ａ〜１１ｃ，１２ａ〜１２ｃのマッチングをそれぞれ行う。例えば、ＳｆＭは、特徴点１０ａ，１１ａ，１２ａを対応付ける。ＳｆＭは、特徴点１０ｂ，１１ｂ，１２ｂを対応付ける。ＳｆＭは、特徴点１０ｃ，１１ｃ，１２ｃを対応付ける。
【０００６】
図３０を用いて手順２について説明する。以下の説明では、適宜、３次元上の被写体の特徴点を「マップ点」と表記し、カメラパラメータに基づき、マップ点を画像情報に投影した点を「投影点」と表記する。投影点２０ａ〜２０ｃは、マップ点３０ａ〜３０ｃを、画像情報１０上に投影した点である。投影点２１ａ〜２１ｃは、マップ点３０ａ〜３０ｃを、画像情報１１上に投影した点である。投影点２２ａ〜２２ｃは、マップ点３０ａ〜３０ｃを、画像情報１２上に投影した点である。
【０００７】
ＳｆＭは、各画像情報において、各特徴点と各投影点とを対応付け、対応付けた各特徴点と各投影点との差の２乗和が最小となるように、各マップ点の３次元座標、カメラパラメータの値を変更しながら、探索を実行する。図３０に示す例では、特徴点１０ａ〜１０ｃが、投影点２０ａ〜２０ｃにそれぞれ対応付けられる。特徴点１１ａ〜１１ｃが、投影点２１ａ〜２１ｃにそれぞれ対応付けられる。特徴点１２ａ〜１２ｃが、投影点２２ａ〜２２ｃにそれぞれ対応付けられる。対応付けた各特徴点と各投影点との差の２乗和が最小となるマップ点３０ａ〜３０ｃの３次元座標が、復元された被写体の３次元形状となる。
【０００８】
ここで、上記のＳｆＭは、画像情報中にノイズが含まれていると、ノイズに引きずられて最適値から外れたマップ点の３次元座標、カメラパラメータが推定される場合がある。
【０００９】
図３１は、ノイズの影響を説明するための図である。図３１に示す例では、ノイズとなるマップ点３０ｄが発生している。これにより、図３０で説明した対応付けに加えて、特徴点１０ｄと投影点２０ｄとの対応付け、特徴点１１ｄと投影点２１ｄとの対応付け、特徴点１２ｄと投影点２２ｄとの対応付けが行われる。上記のＳｆＭでは、対応付けた各特徴点と各投影点との差の２乗和が最小となるように、各マップ点の３次元座標、カメラパラメータの値が探索されるため、ノイズの影響を受けてしまう。この問題を解消するために、従来では、ＲＡＮＳＡＣ（Random  sample  consensus）と呼ばれる技術を用いて、ノイズを除去した後に、ＳｆＭを実行している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０００−１９４８５９号公報
【特許文献２】特開２００２−０３２７４５号公報
【特許文献３】特開２０１２−２０８７５９号公報
【特許文献４】特開２０１４−０６３３７６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した従来技術では、被写体が動体である場合には、一台のカメラで撮影した複数の画像情報から被写体の３次元形状を推定することができないという問題がある。
【００１２】
上述したＳｆＭは、被写体が静止していることが前提となっており、仮に被写体が動いてしまうと、かかる被写体がＲＡＮＳＡＣによりノイズと判定され、除去されてしまい、３次元形状を推定することができない。また、単にＲＡＮＳＡＣによるノイズ除去を行わない対応では、図３１で説明したように、ノイズ成分を含んだ状態で処理を行うため、被写体の３次元形状の推定精度が低下してしまう。
【００１３】
図３２は、従来技術の問題点を説明するための図である。図３２の画像情報１５は、時刻ｔ１において、カメラ５０により撮影された画像情報である。画像情報１６は、時刻ｔ２において、カメラ５０により撮影された画像情報である。なお、時刻ｔ１のカメラ５０の位置と、時刻ｔ２のカメラ５０の位置は異なるものとする。画像情報１５，１６には、被写体１７が存在し、被写体１７は静止している。このため、従来のＳｆＭによって、被写体１７の３次元形状を推定することが可能である。
【００１４】
画像情報１８は、時刻ｔ１において、カメラ５０により撮影された画像情報である。画像情報１９は、時刻ｔ２において、カメラ５０により撮影された画像情報である。なお、時刻ｔ１のカメラ５０の位置と、時刻ｔ２のカメラ５０の位置とは異なるものとする。画像１８，１９には、被写体１７ａと被写体１７ｂが存在し、被写体１７ａは静止しているが、被写体１７ｂは、動いているものとする。この場合には、被写体１７ｂの特徴点がノイズと見なされ、対応点フィッティング時に除去される。このため、被写体１７ａ、１７ｂのうち、被写体１７ａの３次元形状のみ推定することが可能となる。
【００１５】
なお、被写体が動体である場合には、同期した複数のカメラで撮影した複数の画像情報を用いて、３次元形状の推定を行うことができるが、制御が複雑になる場合や、コストが高くなるという問題が発生する。
【００１６】
１つの側面では、本発明は、一台のカメラで撮影した複数の画像情報から被写体の３次元形状を推定することができる形状推定方法、形状推定装置および形状推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
第１の案では、コンピュータが下記の処理を実行する。コンピュータは、同一の被写体を撮影した時間差のある複数の画像情報から複数の特徴点を抽出する。コンピュータは、複数の特徴点から一部の特徴点を選択し、選択した一部の特徴点に基づく被写体の３次元形状の推定に成功した場合に、複数の特徴点から一部の特徴点を除去する処理を繰り返し行うことで、複数の３次元形状を推定する。コンピュータは、複数の３次元形状を統合する。
【発明の効果】
【００１８】
異なる時間に異なる視点から撮影された画像情報に基づいて、同一の被写体の３次元形状を算出することができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、座標系の変換を説明するための図（１）である。
【図２】図２は、座標系の変換を説明するための図（２）である。
【図３】図３は、座標系の変換を説明するための図（３）である。
【図４】図４は、ＳｆＭの説明を補足するための図である。
【図５】図５は、ＲＡＮＳＡＣにより復元される集合Ｑの一例を示す図である。
【図６】図６は、ＲＡＮＳＡＣの計算例を説明するための図（１）である。
【図７】図７は、ＲＡＮＳＡＣの計算例を説明するための図（２）である。
【図８】図８は、ＲＡＮＳＡＣの計算例を説明するための図（３）である。
【図９】図９は、ＲＡＮＳＡＣの計算例を説明するための図（４）である。
【図１０】図１０は、ＲＡＮＳＡＣの計算例を説明するための図（５）である。
【図１１】図１１は、ＲＡＮＳＡＣの計算例を説明するための図（６）である。
【図１２】図１２は、本実施例に係る形状推定装置の処理を説明するための図（１）である。
【図１３】図１３は、本実施例に係る形状推定装置の処理を説明するための図（２）である。
【図１４】図１４は、本実施例に係る形状推定装置の処理を説明するための図（３）である。
【図１５】図１５は、本実施例に係る形状推定装置の処理を説明するための図（４）である。
【図１６】図１６は、本実施例に係る形状推定装置の処理を説明するための図（５）である。
【図１７】図１７は、３次元形状の座標変換を説明するための図である。
【図１８】図１８は、本実施例に係る形状推定装置の構成を示す機能ブロック図である。
【図１９】図１９は、画像テーブルのデータ構造の一例を示す図である。
【図２０】図２０は、３次元形状テーブルのデータ構造の一例を示す図である。
【図２１】図２１は、３次元形状に対応する画像情報の領域を削除する処理の一例を説明するための図（１）である。
【図２２】図２２は、３次元形状に対応する画像情報の領域を削除する処理の一例を説明するための図（２）である。
【図２３】図２３は、３次元形状に対応する画像情報の領域を削除する処理の一例を説明するための図（３）である。
【図２４】図２４は、統合部の処理を説明するための図（１）である。
【図２５】図２５は、統合部の処理を説明するための図（２）である。
【図２６】図２６は、座標変換を説明するための図である。
【図２７】図２７は、本実施例に係る形状推定装置の処理手順を示すフローチャートである。
【図２８】図２８は、形状推定装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【図２９】図２９は、ＳｆＭを説明するための図（１）である。
【図３０】図３０は、ＳｆＭを説明するための図（２）である。
【図３１】図３１は、ノイズの影響を説明するための図である。
【図３２】図３２は、従来技術の問題点を説明するための図である。
【発明を実施するための形態】
【００２０】
以下に、本願の開示する形状推定方法、形状推定装置および形状推定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００２１】
本実施例の説明を行う前に、カメラパラメータの説明、ＳｆＭの詳細な説明、ＲＡＮＳＡＣの詳細について説明する。
【００２２】
カメラパラメータについて説明する。カメラパラメータには、外部パラメータと内部パラメータとがある。外部パラメータには、カメラの位置を表す並進ベクトルＴと、カメラの向きを表す回転行列Ｒとがある。並進ベクトルＴは、式（１）によって示され、回転行列Ｒは、式（２）によって示される。
【００２３】
【数１】
2018049396.tif 000003
【００２４】
【数２】
2018049396.tif 000004
【００２５】
内部パラメータには、カメラの焦点距離等を表すカメラ行列Ａと、レンズの歪みを表す歪みパラメータとがある。カメラ行列Ａは、式（３）によって示される。式（３）において、ｆｘ、ｆｙは、焦点距離を示す。ｃｘ、ｃｙは、カメラが撮影した画像情報の主点（中心座標）を示す。歪みパラメータは、ｎ成分で示される。
【００２６】
【数３】
2018049396.tif 000005
【００２７】
カメラパラメータを用いた座標系の変換について説明する。図１は、座標系の変換を説明するための図（１）である。図１において、点Ｐは、３次元空間上のある点を示し、点Ｐの座標を（Ｘ，Ｙ，Ｚ）とする。点０は、カメラ位置（光心）を示す。ここで、点Ｐの座標と、点Ｐをカメラの画像平面４０に投影した際の位置Ｑ（ｕ，ｖ）との間で成り立つ関係式は、式（４）となる。式（４）に含まれる「ｓ」は、式（５）に示す条件を満たすものであり、式（６）で定義される。
【００２８】
【数４】
2018049396.tif 000006
【００２９】
【数５】
2018049396.tif 000007
【数６】
2018049396.tif 000008
【００３０】
続いて、以下の条件Ａ１、条件Ａ２を満たすように３次元座標系を変換する。図２は、座標系の変換を説明するための図（２）である。
条件Ａ１：カメラの位置が原点（０，０，０）となる。
条件Ａ２：カメラの向きがｚ軸の正の方向となり、投影面４１がｚ＝１上に乗る。
【００３１】
条件Ａ１、条件Ａ２を満たすように３次元座標系を変換する変換式は、式（７）に示すものとなる。式（７）により変換した座標を、ｚ＝１の投影面４１に投影すると、変換した座標は（ｘ／ｚ，ｙ／ｚ，１）となる。以下の説明では、座標（ｘ／ｚ，ｙ／ｚ，１）を式（８）のように置き換える。
【００３２】
【数７】
2018049396.tif 000009
【００３３】
【数８】
2018049396.tif 000010
【００３４】
投影面４１の座標（ｘ、ｙ）を、カメラの画像平面４０の座標に変換する場合の変換式は、式（９）に示すものとなる。図３は、座標系の変換を説明するための図（３）である。式（９）に、式（３）を代入することで、式（１０）に示すものとなる。
【００３５】
【数９】
2018049396.tif 000011
【００３６】
【数１０】
2018049396.tif 000012
【００３７】
上述した説明に鑑みると、図１に示した３次元座標上の点Ｐの座標（Ｘ，Ｙ，Ｚ）と、カメラの画像平面４０上の点Ｑ（ｕ，ｖ）との関係は、式（１１）によって表すことができる。また、式（１１）において、ｚ＝１として変形すると、式（１２）が成立する。
【００３８】
【数１１】
2018049396.tif 000013
【００３９】
【数１２】
2018049396.tif 000014
【００４０】
続いて、ＳｆＭの詳細な説明を行う。図４は、ＳｆＭの説明を補足するための図である。なお、下記のように変数の定義を行う。
ｎ：３次元空間上の特徴点（マップ点）の数
ｑｊ：ｊ番目の特徴点（マップ点）の３次元座標（推定対象）１≦ｊ≦ｎ
ｍ：画像情報の数
ｚｉｊ：ｉ番目の画像情報４５における、ｊ番目の特徴点の２次元座標（既知）１≦ｉ≦ｍ
Ａｉ：ｉ番目の画像情報４５を撮影したカメラの３×３カメラ行列（推定対象）
Ｒｉ：ｉ番目の画像情報４５を撮影したカメラの３×３回転行列（推定対象）
Ｔｉ：ｉ番目の画像情報４５を撮影したカメラの３×１並進成分（推定対象）
ｐｉ：Ａｉ、Ｒｉ、Ｔｉの未知のパラメータを並べたもの
【００４１】
マップ点を画像情報４５に投影した投影点の２次元座標は、式（１３）で定義される。また、式（１３）のｚ’ｉｊ（ｐｉ，ｑｊ）は、式（１４）で表すことができる。
【００４２】
【数１３】
2018049396.tif 000015
【００４３】
【数１４】
2018049396.tif 000016
【００４４】
再投影誤差の定義を行う。画像情報４５の特徴点の２次元座標ｚｉｊと、投影点ｚ’ｉｊ（ｐｉ，ｑｊ）との二乗誤差は、式（１５）で定義される。
【００４５】
【数１５】
2018049396.tif 000017
【００４６】
式（１５）で定義した二乗誤差を、各画像情報ｉと各マップ点ｊの全てで足し合わせたものを「再投影誤差」と定義する。再投影誤差は、式（１６）によって表される。
【００４７】
【数１６】
2018049396.tif 000018
【００４８】
ＳｆＭは、３次元座標ｑｉと、カメラパラメータｐｉの値を変更しながら、式（１６）で定義した再投影誤差を繰り返し算出し、再投影誤差が最小となる、３次元座標ｑｉと、カメラパラメータｐｉの値を求める。求めた３次元座標ｑｉが、被写体の３次元形状となる。
【００４９】
続いて、ＲＡＮＳＡＣの詳細について説明する。ＲＡＮＳＡＣは、以下の手順（ａ）、手順（ｂ）、手順（ｃ）、手順（ｄ）、手順（ｅ）を順に実行する。
【００５０】
手順（ａ）について説明する。ＲＡＮＳＡＣは、画像情報４５に含まれるｎ個の特徴点からｋ個の特徴点をランダムに選出する。なお、下記のように変数の定義を行う。
Ｋ：画像情報４５から選出された特徴点インデックスの集合
【００５１】
既知条件は下記のものとなる。
ｚｉｊ：ｉ番目（１≦ｉ≦ｍ）の画像情報における、ｊ番目（ｊ∈Ｋ）の特徴点の２次元座標
【００５２】
推定対象は以下のものとなる。
ｑｊ：ｊ番目の特徴点（マップ点）の３次元座標（ｊ∈Ｋ）
ｐｉ：カメラパラメータ（１≦ｉ≦ｍ）
【００５３】
手順（ｂ）について説明する。ＲＡＮＳＡＣは、式（１７）を最小にするパラメータｐｉ，ｑｊを求める。
【００５４】
【数１７】
2018049396.tif 000019
【００５５】
手順（ｃ）について説明する。ＲＡＮＳＡＣは、パラメータｐｉ，ｑｊを求めた後に、全てのｚｉｊに関して、ｚｉｊとｚ’ｉｊ（ｐｉ，ｑｊ）との距離を調べ、距離が近いものがどの程度あるかの評価関数を計算する。以下において、評価関数の計算例を示す。
【００５６】
評価関数をＦ（ｘ）とする。ただし、評価関数Ｆ（ｘ）のｘは、式（１８）で定義する。また、式（１９）に示すローカル評価値ｆを定義する。閾値ｔｈは、予め設定される値である。なお、ローカル評価値ｆは、式（２０）に示すような正規分布でもよい。σは予め設定される値である。
【００５７】
【数１８】
2018049396.tif 000020
【００５８】
【数１９】
2018049396.tif 000021
【００５９】
【数２０】
2018049396.tif 000022
【００６０】
ＲＡＮＳＡＣは、評価関数Ｆ（ｘ）を、式（２１）により計算する。
【００６１】
【数２１】
2018049396.tif 000023
【００６２】
手順（ｄ）について説明する。ＲＡＮＳＡＣは、手順（ｃ）で求めた評価関数Ｆ（ｘ）の値と、パラメータｘを、それぞれ変数Ｆ＊、ｘ＊に登録する。
【００６３】
手順（ｅ）について説明する。ＲＡＮＳＡＣは、上記の手順（ａ）〜手順（ｃ）の計算を繰り返し実行し、各繰り返しでＦ（ｘ）＞Ｆ＊となる場合に、手順（ｄ）の処理で、Ｆ＊、ｘ＊を更新する。
【００６４】
上記の手順（ａ）〜手順（ｅ）によって、求まったｘ＊を、式（２２）に示すものとする。
【００６５】
【数２２】
2018049396.tif 000024
【００６６】
上記の式（２２）に示す３次元位置、ｑ１＊、・・・、ｑｎ＊のうちで、式（２３）で定義する集合Ｑを、ノイズでない特徴点（マップ点）として、３次元形状を復元する。式（２３）の右側に記載の条件は、例えば、「ｉ番目の画像情報において、再投影誤差が閾値ｔｈ２となる割合が８割以上」のような条件であっても良い。
【００６７】
【数２３】
2018049396.tif 000025
【００６８】
図５は、ＲＡＮＳＡＣにより復元される集合Ｑの一例を示す図である。図５は、２次元空間上でパラメータを推定して、ノイズでない特徴点を抽出した例である。２次元空間上のパラメータは、直線の傾き、切片となる。ノイズでない特徴点の集合Ｑは、破線４６ａ，４６ｂに挟まれる各特徴点である。
【００６９】
ここで、ＲＡＮＳＡＣの計算例について説明する。図６〜図１１は、ＲＡＮＳＡＣの計算例を説明するための図である。図６〜図１１の横軸はｘ軸であり、縦軸はｙ軸である。ここでは一例として、２次元座標上で、直線（ｙ＝ａｘ＋ｂ）を推定する例について説明する。推定対象のパラメータは傾き「ａ」と、切片「ｂ」となる。
【００７０】
ＲＡＮＳＡＣの計算を行う際の条件を、以下に示す条件Ｂ１、条件Ｂ２、条件Ｂ３とする。
条件Ｂ１：ｙ＝２ｘ＋５の直線近辺に存在する点を２００点とする。直線近辺に存在する点をダイヤ印で示す。直線近辺に存在する点は、直線上から標準偏差０．１の正規分布に従ってずれる。
条件Ｂ２：ランダムに配置された点を２００点とする。ランダムに配置された点を四角印で示す。各点は、０≦ｘ≦１０、５≦ｙ≦２５の範囲で、ランダムに配置される。
条件Ｂ３：全４００点を、区別しない状態で、ＲＡＮＳＡＣにより直線を推定する。
【００７１】
ＲＡＮＳＡＣの計算例の手順を手順Ｃ１、手順Ｃ２、手順Ｃ３、手順Ｃ４とする。
手順Ｃ１：５点をランダムに選出する。
手順Ｃ２：５点を回帰分析してａ，ｂを算出。
手順Ｃ３：推定した直線（ｙ＝ａｘ＋ｂ）と、入力の４００点とでｙ座標の絶対値差分をそれぞれ算出する。４００点の内、絶対値差分が０．３以下となる点の数を、投票数としてカウントする。
手順Ｃ４：手順Ｃ１〜Ｃ３を繰り返し実行し、投票数の多いパラメータを現状の最適値として随時更新する。
【００７２】
ＲＡＮＳＡＣによる１回目の計算例を、図７を用いて説明する。図７において、ＲＡＮＳＡＣを実行する装置は、手順Ｃ１に従い、４００点の中から点１ａ〜１ｅをランダムに選択する。装置は、手順Ｃ２に従い、回帰分析を実行することで、ａ＝−０．６１０、ｂ＝２３．９１１２を算出する。係るａ，ｂに基づく直線は、直線１ｆとなる。装置は、手順Ｃ３に従い、投票数を算出すると、投票数は「６」となる。１回目の計算では、装置は、最適値を「ａ＝−０．６１０、ｂ＝２３．９１１２、投票数６」を初期設定する。
【００７３】
ＲＡＮＳＡＣによる２回目の計算例を、図８を用いて説明する。図８において、ＲＡＮＳＡＣを実行する装置は、手順Ｃ１に従い、４００点の中から点２ａ〜２ｅをランダムに選択する。装置は、手順Ｃ２に従い、回帰分析を実行することで、ａ＝１．５９６、ｂ＝８．９６７を算出する。係るａ，ｂに基づく直線は、直線２ｆとなる。装置は、手順Ｃ３に従い、投票数を算出すると、投票数は「２９」となる。装置は、手順Ｃ４に従い、最適値の投票数「６」と、２回目の計算例の投票数「２９」とを比較すると、２回目の計算例の投票数が上回る。このため、装置は、最適値を「ａ＝１．５９６、ｂ＝８．９６７、投票数２９」に更新する。
【００７４】
ＲＡＮＳＡＣによる３回目の計算例を、図９を用いて説明する。図９において、ＲＡＮＳＡＣを実行する装置は、手順Ｃ１に従い、４００点の中から点３ａ〜３ｅをランダムに選択する。装置は、手順Ｃ２に従い、回帰分析を実行することで、ａ＝０．６６０、ｂ＝７．５５４を算出する。係るａ，ｂに基づく直線は、直線３ｆとなる。装置は、手順Ｃ３に従い、投票数を算出すると、投票数は「１９」となる。装置は、手順Ｃ４に従い、最適値の投票数「２９」と、３回目の計算例の投票数「１９」とを比較すると、最適値の投票数が上回る。このため、装置は、最適値を「ａ＝１．５９６、ｂ＝８．９６７、投票数２９」のままにする。
【００７５】
ＲＡＮＳＡＣによる４回目の計算例を、図１０を用いて説明する。図１０において、ＲＡＮＳＡＣを実行する装置は、手順Ｃ１に従い、４００点の中から点４ａ〜４ｅをランダムに選択する。装置は、手順Ｃ２に従い、回帰分析を実行することで、ａ＝２．０３７、ｂ＝４．８８６を算出する。係るａ，ｂに基づく直線は、直線４ｆとなる。装置は、手順Ｃ３に従い、投票数を算出すると、投票数は「１９５」となる。装置は、手順Ｃ４に従い、最適値の投票数「２９」と、４回目の計算例の投票数「１９５」とを比較すると、４回目の計算例の投票数が上回る。このため、装置は、最適値を「ａ＝２．０３７、ｂ＝４．８８６、投票数１９５」に更新する。
【００７６】
ＲＡＮＳＡＣによる５回目の計算例を、図１１を用いて説明する。図１１において、ＲＡＮＳＡＣを実行する装置は、手順Ｃ１に従い、４００点の中から点５ａ〜５ｅをランダムに選択する。装置は、手順Ｃ２に従い、回帰分析を実行することで、ａ＝１．７２５、ｂ＝５．４５４を算出する。係るａ，ｂに基づく直線は、直線５ｆとなる。装置は、手順Ｃ３に従い、投票数を算出すると、投票数は「５３」となる。装置は、手順Ｃ４に従い、最適値の投票数「１９５」と、５回目の計算例の投票数「５３」とを比較すると、最適値の投票数が上回る。このため、装置は、最適値を「ａ＝２．０３７、ｂ＝４．８８６、投票数１９５」のままとする。
【００７７】
上記のように、例えば、ＲＡＮＳＡＣによる計算を行うことで、最適値「ａ＝２．０３７、ｂ＝４．８８６、投票数１９５」が推定される。
【００７８】
次に、本実施例に係る形状推定装置の処理について説明する。図１２〜図１６は、本実施例に係る形状推定装置の処理を説明するための図である。形状推定装置は、手順Ｘ１〜Ｘ６を順に実行する。
【００７９】
形状推定装置の手順Ｘ１の処理を、図１２を用いて説明する。形状推定装置は、画像情報６０と、画像情報６１とに対して、ＳｆＭを実行することで、静止物の３次元形状を推定する。図示を省略するが、形状推定装置は、画像情報６０，６１以外の他の画像情報を更に用いて、ＳｆＭを実行しても良い。
【００８０】
画像情報６０は、時刻ｔ１において、カメラ５０により撮影された画像の情報である。画像情報６１は、時刻ｔ２において、カメラ５０により撮影された画像の情報である。時刻ｔ１におけるカメラの位置と、時刻ｔ２におけるカメラの位置とは異なるものとする。画像情報６０，６１には、被写体６０ａと被写体６０ｂとが含まれる。被写体６０ａは静止物とし、被写体６０ｂを動体とする。
【００８１】
形状推定装置は、ＲＡＮＳＡＣによる処理を実行し、画像情報６０，６１に含まれるノイズを除去した後に、ＳｆＭを実行することで、被写体６０ａの３次元形状７０ａを推定する。なお、被写体６０ｂは、動体であるため、ＲＡＮＳＡＣによりノイズと見なされ除去される。
【００８２】
形状推定装置の手順Ｘ２の処理を、図１３を用いて説明する。形状推定装置は、手順Ｘ１で推定した被写体６０ａの３次元形状７０ａに対応する領域を、画像情報６０，６１から削除する。
【００８３】
形状推定装置は、３次元形状７０ａを、画像情報６０に投影し、３次元形状７０ａに対応する被写体６０ａの領域を特定し、除去することで、画像情報６０−１を生成する。形状推定装置は、３次元形状７０ａを、画像情報６１に投影し、３次元形状７０ａに対応する被写体６０ａの領域を特定し、除去することで、画像情報６１−１を生成する。
【００８４】
形状推定装置の手順Ｘ３の処理を、図１４を用いて説明する。形状推定装置は、画像情報６０−１と、画像情報６１−１に対して、ＲＡＮＳＡＣを実行すると、被写体６０ｂのうち、動きが大きく面積の小さい部分がノイズとして除去され、動きが少なく面積の大きい、足と胴の部分が残る。形状推定装置は、残った部分に対してＳｆＭを実行することで、３次元形状７０ｂを推定する。
【００８５】
形状推定装置の手順Ｘ４の処理を説明する。形状推定装置は、３次元形状７０ｂを、画像情報６０−１に投影し、３次元形状７０ｂに対応する画像情報６０−１の領域を特定し、除去することで、画像情報６０−２を生成する。形状推定装置は、３次元形状７０ｂを、画像情報６１−１に投影し、３次元形状７０ｂに対応する画像情報６１−１の領域を特定し、除去することで、画像情報６１−２を生成する。
【００８６】
形状推定装置の手順Ｘ５の処理を、図１５を用いて説明する。形状推定装置は、画像情報６０−２と、画像情報６１−２に対して、ＲＡＮＳＡＣを実行すると、例えば、被写体６０ｃのうち、最も面積の大きい顔が残り、他の部分がノイズとして除去される。形状推定装置は、残った顔に対してＳｆＭを実行することで、３次元形状７０ｃを推定する。
【００８７】
形状推定装置の手順Ｘ６を、図１６を用いて説明する。形状推定装置は、上記の手順Ｘ１〜Ｘ５で推定した各３次元形状７０ａ〜７０ｃを統合する。形状推定装置は、統合を行う場合に、基準にする時刻の指定を受け付け、受け付けた時刻に合わせて、各３次元形状７０ａ〜７０ｃの３次元座標を変換した後に、結合を実行する。
【００８８】
図１６のＹ１は、時刻ｔ１を基準にして統合する例を示す。Ｙ１に示すように、３次元形状７０ａ〜７０ｃを統合することで、３次元形状８０ａを得る。図１６のＹ２は、時刻ｔ２を基準にして統合する例を示す。Ｙ２に示すように、３次元形状７０ａ〜７０ｃを統合することで、３次元形状８０ｂを得る。
【００８９】
図１７は、３次元形状の座標変換を説明するための図である。形状推定装置が、ＳｆＭを繰り返し実行して、３次元形状７０ａ，７０ｂ，７０ｃを推定する場合に、カメラ５０の相対関係が異なっている。
【００９０】
形状推定装置が、１回目のＳｆＭを実行して３次元形状７０ａを推定した場合のカメラ５０（時刻ｔ１）の位置を、位置５０ａ（１）とし、カメラ５０（時刻ｔ２）の位置を位置５０ｂ（１）とする。形状推定装置が、２回目のＳｆＭを実行して３次元形状７０ｂを推定した場合のカメラ５０（時刻ｔ１）の位置を、位置５０ａ（２）とし、カメラ５０（時刻ｔ２）の位置を位置５０ｂ（２）とする。形状推定装置が、３回目のＳｆＭを実行して３次元形状７０ｃを推定した場合のカメラ５０（時刻ｔ１）の位置を、位置５０ａ（３）とし、カメラ５０（時刻ｔ２）の位置を位置５０ｂ（３）とする。
【００９１】
位置５０ａ（１）と位置５０ｂ（１）との相対位置を、相対位置（１）とする。位置５０ａ（２）と位置５０ｂ（２）との相対位置を、相対位置（２）とする。位置５０ａ（３）と位置５０ｂ（３）との相対位置を、相対位置（３）とする。そうすると、相対位置（１）、相対位置（２）、相対位置（３）が異なっている。
【００９２】
形状推定装置は、相対位置（１）、相対位置（２）、相対位置（３）が同じとなるように、３次元形状７０ａ〜７０ｃを座標変換した後に、統合を行う。図１７に示す例では、時刻ｔ２に撮影したカメラの位置５０ｂ（１）〜（３）を基準として、３次元形状７０ａ〜７０ｃの座標変換を行い、統合を行うことで、３次元形状８０ｂを得る例を示す。
【００９３】
次に、本実施例に係る形状推定装置の構成について説明する。図１８は、本実施例に係る形状推定装置の構成を示す機能ブロック図である。図１８に示すように、形状推定装置１００は、入力部１１０と、記憶部１２０と、制御部１３０とを有する。
【００９４】
入力部１１０は、カメラ５０により異なる時刻に撮影された画像情報の入力を受け付ける入力インタフェースである。入力部１１０は、複数の画像情報を、制御部１３０に出力する。入力部１１０が入力を受け付ける画像情報は、撮影時刻の情報が付与されているものとする。
【００９５】
記憶部１２０は、画像テーブル１２１と、３次元形状テーブル１２２と、統合形状情報１２３を有する。記憶部１２０は、ＲＡＭ（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）などのハードワイヤードロジックによっても実現できる。
【０１００】
受付部１３１は、入力部１１０から複数の画像情報を受け付ける処理部である。受付部１３１は、撮影時刻と、画像情報とを対応付けて、画像テーブル１２１に格納する。受付部１３１は、入力部１１０から、画像情報を受け付ける度に、上記処理を繰り返し実行する。
【０１０１】
抽出部１３２は、画像テーブル１２１に格納された各画像情報から特徴点を抽出し、抽出した特徴点の情報を、画像情報と対応付けて、画像テーブル１２１に格納する処理部である。例えば、抽出部１３２は、画像情報のＳＩＦＴ特徴量に基づき、特徴点および特徴点に対応する特徴量を計算する。
【０１０２】
推定部１３３は、各撮影時刻に撮影された画像情報および特徴点の情報を基にして、ＲＡＮＳＡＣによるノイズの除去、ＳｆＭによる３次元形状の推定を繰り返し実行することで、段階毎の３次元形状を推定する処理部である。例えば、推定部１３３の処理は、上述した手順Ｘ１〜Ｘ５の処理に対応する。
【０１０３】
推定部１３３は、図１２に示した手順Ｘ１の処理を実行することで、３次元形状７０ａのマップ点ｑ１〜ｑｉと、その時のカメラのパラメータｐ１〜ｐｉを推定し、３次元形状テーブル１２２に登録する。また、推定部１３３は、図１３に示した手順Ｘ２の処理を実行することで、各時刻に撮影された画像情報から、３次元形状７０ａに対応する領域を削除することで、画像情報６０−１，６１−１を生成する。
【０１０４】
推定部１３３は、図１４に示した手順Ｘ３を実行することで、３次元形状７０ｂのマップ点ｑ１〜ｑｉと、その時のカメラのパラメータｐ１〜ｐｉを推定し、３次元形状テーブル１２２に登録する。また、推定部１３３は、手順Ｘ４の処理を実行することで、３次元形状７０ｂに対応する領域を、画像情報６０−１，６１−１から削除することで、画像情報６０−２，６１−２を生成する。
【０１０５】
推定部１３３は、図１５に示した手順Ｘ５を実行することで、３次元形状７０ｃのマップ点ｑ１〜ｑｉと、その時のカメラのパラメータｐ１〜ｐｉを推定し、３次元形状テーブル１２２に登録する。
【０１０６】
ここで、推定部１３３が、推定に成功した３次元形状に対応する画像情報の領域を削除する処理の一例について説明する。図２１〜図２３は、３次元形状に対応する画像情報の領域を削除する処理の一例を説明するための図である。図２１について説明する。画像情報７５の黒丸および白丸は、画像情報７５から抽出された特徴点である。黒丸は、推定に成功した３次元形状のマップ点に対応する特徴点を示す。白丸は、その他の特徴点に対応する。以下、適宜、黒丸を第１特徴点と表記し、白丸を第２特徴点と表記する。
【０１０７】
図２２の説明に移行する。推定部１３３は、第１特徴点を含む領域に対して、ドロネー三角形分割を行う。図２２に示す例では、推定部１３３は、領域１ａ〜１αに分割する。
【０１０８】
図２３の説明に移行する。推定部１３３は、各領域１ａ〜１αについて、第２特徴点がどの程度含まれているかにより、削除する領域を判定する。例えば、ある領域に含まれる第２特徴点の数が閾値未満である場合に、該当するある領域を削除する。例えば、図２３に示す例では、領域１ａ〜１ｎ，領域１ｗ〜１αを削除し、領域１ｏ〜１ｖを残す。
【０１０９】
図１８の説明に戻る。統合部１３４は、３次元形状テーブル１２２に格納された各３次元形状を統合することで、統合形状情報１２３を生成する処理部である。統合部１３４には、各３次元形状を結合する場合の基準とするカメラの撮影時刻を事前に指定されているものとする。
【０１１０】
ここで、ｋ回目の繰り返し処理（ＳｆＭ）で推定されるカメラのパラメータと、３次元形状の位置を下記のように定義する。
Ａｉ（ｋ）：ｉ番目の画像情報を撮影したカメラの３×３カメラ行列
Ｒｉ（ｋ）：ｉ番目の画像情報を撮影したカメラの３×３回転行列
Ｔｉ（ｋ）：ｉ番目の画像情報を撮影したカメラの３×１並進成分
ｑｊ（ｋ）：ｊ番目の特徴点（マップ点）の３次元座標
【０１１１】
図２４、図２５は、統合部の処理を説明するための図である。図２４、図２５では、一例として、時刻ｔ２のカメラのパラメータを基準にして、各３次元形状７０ａ，７０ｂ，７０ｃを統合する場合について説明する。
【０１１２】
図２４について説明する。１回目のＳｆＭにより推定した３次元形状７０ａのマップ点の各座標をｑｊ（１）とする。１回目のＳｆＭにより推定した、時刻ｔ１において画像を撮影したカメラ５０のパラメータをＡ１（１），Ｒ１（１），Ｔ１（１）とする。１回目のＳｆＭにより推定した、時刻ｔ２において画像を撮影したカメラ５０のパラメータをＡ２（１），Ｒ２（１），Ｔ２（１）とする。
【０１１３】
２回目のＳｆＭにより推定した３次元形状７０ｂのマップ点の各座標をｑｊ（２）とする。２回目のＳｆＭにより推定した、時刻ｔ１において画像を撮影したカメラ５０のパラメータをＡ１（２），Ｒ１（２），Ｔ１（２）とする。２回目のＳｆＭにより推定した、時刻ｔ２において画像を撮影したカメラ５０のパラメータをＡ２（２），Ｒ２（２），Ｔ２（２）とする。
【０１１４】
３回目のＳｆＭにより推定した３次元形状７０ｃのマップ点の各座標をｑｊ（３）とする。３回目のＳｆＭにより推定した、時刻ｔ１において画像を撮影したカメラ５０のパラメータをＡ１（３），Ｒ１（３），Ｔ１（３）とする。３回目のＳｆＭにより推定した、時刻ｔ２において画像を撮影したカメラ５０のパラメータをＡ２（３），Ｒ２（３），Ｔ２（３）とする。
【０１１５】
図２５について説明する。統合部１３４は、時刻ｔ２のカメラのパラメータを基準にして、各３次元形状７０ａ，７０ｂ，７０ｃを統合する場合には、時刻ｔ２に画像情報を撮影したカメラのパラメータを全て同じにする。例えば、カメラパラメータＡ２（１），Ｒ２（１），Ｔ２（１）、Ａ２（２），Ｒ２（２），Ｔ２（２）、Ｔ２（２）、Ａ２（３），Ｒ２（３），Ｔ２（３）を「Ａ２（１），Ｒ２（１），Ｔ２（１）」で統一する。係る処理に合わせて、各３次元形状のｑｊ（ｋ）を変換する。
【０１１６】
１回目の３次元形状のｑｊ（１）を座標変換する処理について説明する。カメラパラメータＡ２（１），Ｒ２（１），Ｔ２（１）の値は変わらないので、統合部１３４は、ｑｊ（１）をそのままとする。
【０１１７】
２回目の３次元形状のｑｊ（２）を変換する処理について説明する。カメラパラメータＡ２（２），Ｒ２（２），Ｔ２（２）は「Ａ２（１），Ｒ２（１），Ｔ２（１）」統一される。このため、統合部１３４は、Ａ２（２），Ｒ２（２），Ｔ２（２）を「Ａ２（１），Ｒ２（１），Ｔ２（１）」に変換する処理に合わせて、３次元形状７０ｂのマップ点の各座標ｑｊ（２）をｑｊ（２）’に座標変換する。
【０１１８】
３回目の３次元形状のｑｊ（３）を変換する処理について説明する。カメラパラメータＡ２（３），Ｒ２（３），Ｔ２（３）は「Ａ２（１），Ｒ２（１），Ｔ２（１）」に統一される。このため、統合部１３４は、Ａ２（３），Ｒ２（３），Ｔ２（３）を「Ａ２（１），Ｒ２（１），Ｔ２（１）」に変換する処理に合わせて、３次元形状７０ｃのマップ点の各座標ｑｊ（３）をｑｊ（３）’に座標変換する。
【０１１９】
統合部１３４は、３次元形状７０ｂ，７０ｃのマップ点を座標変換した後に、３次元形状７０ａ，７０ｂ，７０ｃを統合することで、統合後の３次元形状８０ｂを得る。統合部１３４は、３次元形状８０ｂの情報を、統合形状情報１２３として、記憶部１２０に記憶させる。
【０１２０】
続いて、統合部１３４が実行する座標変換の一例について説明する。図２６は、座標変換を説明するための図である。図２６に示すように、あるマップ点の３次元座標を（Ｘ，Ｙ，Ｚ）とし、カメラのパラメータＡｉ（ｋ），Ｒｉ（ｋ），Ｔｉ（ｋ）により投影した際の投影点の２次元座標を（ｕ，ｖ）とする。座標変換後の３次元座標を（Ｘ’，Ｙ’，Ｚ’）とすると、式（２４）と式（２５）とが成立する。
【０１２１】
【数２４】
2018049396.tif 000026
【０１２２】
【数２５】
2018049396.tif 000027
【０１２３】
式（２４）の左辺と、式（２５）の左辺とが等しいため、式（２６）が成立する。また、カメラそのものは同じであるため、Ａｉ（１）＝Ａｉ（ｋ）としてもよい。これにより、式（２６）は、式（２７）となる。また、式（２７）を整理すると、変換後の３次元座標（Ｘ’，Ｙ’，Ｚ’）は、式（２８）により表すことができる。
【０１２４】
【数２６】
2018049396.tif 000028
【０１２５】
【数２７】
2018049396.tif 000029
【０１２６】
【数２８】
2018049396.tif 000030
【０１２７】
式（２８）の結果より、マップ点の３次元座標ｑｊ（ｋ）に対応するカメラパラメータＡｉ（ｋ），Ｒｉ（ｋ），Ｔｉ（ｋ）をＡｉ（１），Ｒｉ（１），Ｔｉ（１）に変換すると、変換後の３次元座標ｑｊ（ｋ）’は、式（２９）により表すことができる。ここで、Ａｉ（ｋ）＝Ａｉ（１）とする。
【０１２８】
【数２９】
2018049396.tif 000031
【０１２９】
統合部１３４は、式（２９）を基にして、上記のｑｊ（２）’およびｑｊ（３）’を算出する。そして、結合部１３４は、ｑｊ（１）、ｑｊ（２）’、ｑｊ（３）’を結合することで、３次元形状８０ｂを復元する。
【０１３０】
次に、本実施例に係る形状推定装置１００の処理手順について説明する。図２７は、本実施例に係る形状推定装置の処理手順を示すフローチャートである。図２７に示すように、形状推定装置１００の抽出部１３２は、複数の画像情報から特徴点を算出する（ステップＳ１０１）。
【０１３１】
形状推定装置１００の推定部１３３は、特定の条件を満たすか否かを判定する（ステップＳ１０２）。特定の条件は、画像情報で、削除されていない領域の面積の割合が閾値以下という条件である。または、特定の条件は、画像情報の削除されていない領域から抽出された特徴点の数が閾値以下という条件である。形状推定装置１００は、いずれか一方の特定の条件を用いても良いし、双方の特定の条件を用いても良い。
【０１３２】
推定部１３３は、特定の条件を満たさない場合には（ステップＳ１０２，Ｎｏ）、ステップＳ１０３に移行する。推定部１３３は、特定の条件を満たす場合には（ステップＳ１０２，Ｙｅｓ）、ステップＳ１０５に移行する。
【０１３３】
ステップＳ１０３について説明する。推定部１３３は、ＳｆＭおよびＲＡＮＳＡＣを実行して、「カメラのパラメータｐｉ」と「被写体の３次元形状の３次元座標ｑｉ」を推定する（ステップＳ１０３）。推定部１３３は、３次元形状を推定できた領域を各画像情報から除去し（ステップＳ１０４）、ステップＳ１０２に移行する。
【０１３４】
ステップＳ１０５について説明する。形状推定装置１００の統合部１３４は、統合する場合の基準の時刻の指定を受け付ける（ステップＳ１０５）。統合部１３４は、各３次元形状情報の３次元座標を、基準の時刻に合わせて変換する（ステップＳ１０６）。統合部１３４は、各３次元形状情報を統合する（ステップＳ１０７）。
【０１３５】
次に、本実施例に係る形状推定装置１００の効果について説明する。形状推定装置１００は、被写体を異なるタイミングで撮影した複数の画像情報に基づき、ＳｆＭによる３次元形状の推定に成功すると、推定できた３次元形状に対応する画像情報の領域を除いた残りの領域で、３次元形状を推定する処理を繰り返し実行する。そして、形状推定装置１００は、各段階で推定した３次元形状を統合することで、被写体に対応する３次元形状を求める。これにより、一台のカメラで撮影した複数の画像情報から被写体の３次元形状を推定することができる。また、被写体が動体であっても、３次元形状を推定することができる。
【０１３６】
形状推定装置１００は、各段階で推定した３次元形状の３次元座標を、指定されたカメラのパラメータに応じて変換した後に、統合を行う。これにより、各段階で推定したカメラパラメータの相対関係を統一した状態における３次元形状を結合することができる。
【０１３７】
形状推定装置１００は、推定に成功した３次元形状に対応する画像情報上の領域を複数の部分領域に分割し、複数の部分領域のうち、３次元形状に対応しない特徴点を含む割合が閾値未満となる部分領域を除去する。これにより、推定した３次元形状に対応する領域を、各画像情報から適切に除去することができる。
【０１３８】
次に、上記実施例に示した形状推定装置１００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図２８は、形状推定装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【０１３９】
図２８に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３とを有する。入力装置２０２が受け付けるデータとしては、たとえば、カメラで撮影された複数の画像情報等である。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置２０５とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０６と、ハードディスク装置２０７とを有する。そして、各装置２０１〜２０７は、バス２０８に接続される。
【０１４０】
ハードディスク装置２０７は、受付プログラム２０７ａ、抽出プログラム２０７ｂ、推定プログラム２０７ｃ、統合プログラム２０７ｄを有する。ＣＰＵ２０１は、受付プログラム２０７ａ、抽出プログラム２０７ｂ、推定プログラム２０７ｃ、統合プログラム２０７ｄを読み出してＲＡＭ２０６に展開する。
【０１４１】
受付プログラム２０７ａは、受付プロセス２０６ａとして機能する。抽出プログラム２０７ｂは、抽出プロセス２０６ｂとして機能する。推定プログラム２０７ｃは、推定プロセス２０６ｃとして機能する。統合プログラム２０７ｄは、統合プロセス２０６ｄとして機能する。
【０１４２】
受付プロセス２０６ａの処理は、受付部１３１の処理に対応する。抽出プロセス２０６ｂの処理は、抽出部１３２の処理に対応する。推定プロセス２０６ｃの処理は、推定部１３３の処理に対応する。統合プロセス２０６ｄの処理は、統合部１３４の処理に対応する。
【０１４３】
なお、各プログラム２０７ａ〜２０７ｄについては、必ずしも最初からハードディスク装置２０７に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００が各プログラム２０７ａ〜２０７ｄを読み出して実行するようにしても良い。
【０１４４】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１４５】
（付記１）コンピュータが実行する形状推定方法であって、
同一の被写体を撮影した時間差のある複数の画像情報から複数の特徴点を抽出し、
複数の特徴点から一部の特徴点を選択し、選択した一部の特徴点に基づく前記被写体の３次元形状の推定に成功した場合に、前記複数の特徴点から前記一部の特徴点を除去する処理を繰り返し行うことで、複数の３次元形状を推定し、
前記複数の３次元形状を統合する
各処理を実行することを特徴とする形状推定方法。
【０１４６】
（付記２）前記複数の画像情報は、同一のカメラによって異なるパラメータによりそれぞれ撮影された画像情報であり、前記統合する処理は、前記複数の３次元形状の３次元座標を、指定されたパラメータに応じて変換した後に、前記複数の３次元形状を統合することを特徴とする付記１に記載の形状推定方法。
【０１４７】
（付記３）前記推定する処理は、前記被写体の３次元形状の推定に成功した場合に、前記一部の特徴点を含む領域を複数の部分領域に分割し、複数の部分領域のうち、前記一部の特徴点以外の特徴点を含む割合が閾値未満となる部分領域を除去することを特徴とする付記１または２に記載の形状推定方法。
【０１４８】
（付記４）同一の被写体を撮影した時間差のある複数の画像情報から複数の特徴点を抽出する抽出部と、
複数の特徴点から一部の特徴点を選択し、選択した一部の特徴点に基づく前記被写体の３次元形状の推定に成功した場合に、前記複数の特徴点から前記一部の特徴点を除去する処理を繰り返し行うことで、複数の３次元形状を推定する推定部と、
前記複数の３次元形状を統合する統合部と
を有することを特徴とする形状推定装置。
【０１４９】
（付記５）前記複数の画像情報は、同一のカメラによって異なるパラメータによりそれぞれ撮影された画像情報であり、前記統合部は、前記複数の３次元形状の３次元座標を、指定されたパラメータに応じて変換した後に、前記複数の３次元形状を統合することを特徴とする付記４に記載の形状推定装置。
【０１５０】
（付記６）前記推定部は、前記被写体の３次元形状の推定に成功した場合に、前記一部の特徴点を含む領域を複数の部分領域に分割し、複数の部分領域のうち、前記一部の特徴点以外の特徴点を含む割合が閾値未満となる部分領域を除去することを特徴とする付記４または５に記載の形状推定装置。
【０１５１】
（付記７）コンピュータに、
同一の被写体を撮影した時間差のある複数の画像情報から複数の特徴点を抽出し、
複数の特徴点から一部の特徴点を選択し、選択した一部の特徴点に基づく前記被写体の３次元形状の推定に成功した場合に、前記複数の特徴点から前記一部の特徴点を除去する処理を繰り返し行うことで、複数の３次元形状を推定し、
前記複数の３次元形状を統合する
各処理を実行させることを特徴とする形状推定プログラム。
【０１５２】
（付記８）前記複数の画像情報は、同一のカメラによって異なるパラメータによりそれぞれ撮影された画像情報であり、前記統合する処理は、前記複数の３次元形状の３次元座標を、指定されたパラメータに応じて変換した後に、前記複数の３次元形状を統合することを特徴とする付記７に記載の形状推定プログラム。
【０１５３】
（付記９）前記推定する処理は、前記被写体の３次元形状の推定に成功した場合に、前記一部の特徴点を含む領域を複数の部分領域に分割し、複数の部分領域のうち、前記一部の特徴点以外の特徴点を含む割合が閾値未満となる部分領域を除去することを特徴とする付記７または８に記載の形状推定プログラム。
【符号の説明】
【０１５４】
１００  形状推定装置
１１０  入力部
１２０  記憶部
１２１  画像テーブル
１２２  ３次元形状テーブル
１２３  統合形状情報
１３０  制御部
１３１  受付部
１３２  抽出部
１３３  推定部
１３４  統合部
【図１】
2018049396.tif 000032
【図２】
2018049396.tif 000033
【図３】
2018049396.tif 000034
【図４】
2018049396.tif 000035
【図５】
2018049396.tif 000036
【図６】
2018049396.tif 000037
【図７】
2018049396.tif 000038
【図８】
2018049396.tif 000039
【図９】
2018049396.tif 000040
【図１０】
2018049396.tif 000041
【図１１】
2018049396.tif 000042
【図１２】
2018049396.tif 000043
【図１３】
2018049396.tif 000044
【図１４】
2018049396.tif 000045
【図１５】
2018049396.tif 000046
【図１６】
2018049396.tif 000047
【図１７】
2018049396.tif 000048
【図１８】
2018049396.tif 000049
【図１９】
2018049396.tif 000050
【図２０】
2018049396.tif 000051
【図２１】
2018049396.tif 000052
【図２２】
2018049396.tif 000053
【図２３】
2018049396.tif 000054
【図２４】
2018049396.tif 000055
【図２５】
2018049396.tif 000056
【図２６】
2018049396.tif 000057
【図２７】
2018049396.tif 000058
【図２８】
2018049396.tif 000059
【図２９】
2018049396.tif 000060
【図３０】
2018049396.tif 000061
【図３１】
2018049396.tif 000062
【図３２】
2018049396.tif 000063