(57)【要約】【課題】表面に文字が描画されている物体について、簡易な構成で精度良く３次元座標データを取得する。【解決手段】画像処理装置が、文字を含む被写体を異なる視点から撮影した複数の撮影画像を示す入力画像データ及び前記複数の撮影画像それぞれに対応する撮影パラメータを取得する手段と、前記文字の前記複数の撮影画像上における位置に基づいて、前記複数の撮影画像間における画素位置の対応関係を示す対応位置情報を生成する解析手段と、前記撮影パラメータと前記対応位置情報とに基づいて、前記被写体の３次元座標データを推定する手段とを有することを特徴とする。【選択図】図４
2015176586.tif 000002
【特許請求の範囲】
【請求項１】
文字を含む被写体を異なる視点から撮影した複数の撮影画像を示す入力画像データ及び前記複数の撮影画像それぞれに対応する撮影パラメータを取得する手段と、
前記文字の前記複数の撮影画像上における位置に基づいて、前記複数の撮影画像間における画素位置の対応関係を示す対応位置情報を生成する解析手段と、
前記撮影パラメータと前記対応位置情報とに基づいて、前記被写体の３次元座標データを推定する手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記解析手段は、前記複数の撮影画像のそれぞれについて、当該撮影画像の被写体に含まれる文字と当該文字の撮影画像上における位置とを表す文字情報を生成し、生成した文字情報に基づいて、前記対応位置情報を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記解析手段は、前記複数の撮影画像のそれぞれに対し文字抽出処理を行ない、当該文字抽出処理によって抽出された文字について、前記文字情報を生成することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記解析手段は、前記文字に対応するテンプレートデータを用いたテンプレートマッチングにより画素位置の対応付けを行って、前記対応位置情報を生成することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記テンプレートデータは、前記被写体に含まれる複数の文字の種類及び位置関係を示すデータであることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記解析手段は、前記複数の撮影画像の中から選択された基準画像における注目文字と、前記基準画像に含まれる前記注目文字以外の文字のうち、前記注目文字からの距離が小さい方からＮ個（Ｎは所定の自然数）の文字を抽出し、当該抽出された文字の種類及び位置関係を示すデータを前記テンプレートデータとして生成する手段を更に含むことを特徴とする請求項４又は５に記載の画像処理装置。
【請求項７】
前記解析手段は、前記複数の撮影画像のうち前記基準画像以外の参照画像において、前記注目文字と同じ文字である参照文字と、前記参照画像に含まれる前記参照文字以外の文字のうち、前記参照文字からの距離が小さい方からＮ個（Ｎは所定の自然数）の文字を抽出し、当該抽出された文字の種類及び位置関係を示すデータを参照データとして生成する手段を更に含み、前記テンプレートデータと前記参照データとを用いて、前記テンプレートマッチングを行なうことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記解析手段は、前記テンプレートデータと前記参照データとの類似度を導出し、導出された類似度が最大となる参照データに含まれる参照文字の位置を前記注目文字の位置と関連付けることにより、前記対応位置情報を生成することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記解析手段は、導出された前記類似度が所定の閾値よりも大きい場合に、前記参照文字の位置を前記注目文字の位置と関連付けることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記解析手段は、前記参照文字が前記参照画像中に１つしか存在しない場合は、前記類似度の導出を行なうことなく、当該参照文字の位置と前記注目文字の位置とを関連付けることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記撮影パラメータは、光軸と撮像面の中心との位置関係を表す内部パラメータ行列、３次元空間の原点に対するカメラの回転を表す回転行列及び３次元空間の原点に対するカメラの平行移動を表す平行移動ベクトルであることを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
文字を含む被写体を異なる視点から撮影した複数の撮影画像を示す入力画像データ及び前記複数の撮影画像それぞれに対応する撮影パラメータを取得するステップと、
前記文字の前記複数の撮影画像上における位置に基づいて、前記複数の撮影画像間における画素位置の対応関係を示す対応位置情報を生成する解析ステップと、
前記撮影パラメータと前記対応位置情報とに基づいて、前記被写体の３次元座標データを推定するステップと
を含むことを特徴とする画像処理方法。
【請求項１３】
コンピュータを請求項１乃至１１のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は異なる視点位置から撮影した複数の画像に基づき被写体の３次元座標データを取得するための技術に関する。
【背景技術】
【０００２】
従来、複数の視点位置から撮影した入力画像を用いて被写体の３次元形状を算出する技術が知られている（例えば、特許文献１）。この特許文献１の技術は、複数の入力画像間で画素の対応付けを行い、対応付けられた画素位置の差について三角測量の原理を適用することにより、当該画素に対応する被写体上の点について３次元座標の推定処理を実行するものであった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２３２７７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では、画素の対応付けを行う際に、特定のパターンやマーカーの位置を手がかりにしている。そのため、パターン光を照射する手段が別途必要で全体の構成が複雑になったり、被写体に予めマーカーを付与する手間が掛かるといった課題があった。
【課題を解決するための手段】
【０００５】
本発明に係る画像処理装置は、文字を含む被写体を異なる視点から撮影した複数の撮影画像を示す入力画像データ及び前記複数の撮影画像それぞれに対応する撮影パラメータを取得する手段と、前記文字の前記複数の撮影画像上における位置に基づいて、前記複数の撮影画像間における画素位置の対応関係を示す対応位置情報を生成する解析手段と、前記撮影パラメータと前記対応位置情報とに基づいて、前記被写体の３次元座標データを推定する手段とを有することを特徴とする。
【発明の効果】
【０００６】
本発明は、表面に文字が描画されている物体について、簡易な構成で精度良く３次元座標データを取得することを可能とする。
【図面の簡単な説明】
【０００７】
【図１】本実施形態における画像処理装置のシステム構成を示すブロック図。
【図２】本実施形態における概要機能構成を示す図。
【図３】本実施形態における画像処理の流れを示すフローチャート。
【図４】本実施形態における画像間対応付け処理の流れを示すフローチャート。
【図５】本実施形態におけるテンプレートデータおよび参照データを説明する図。
【図６】本実施形態における被写体の３次元データを説明する図。
【発明を実施するための形態】
【０００８】
以下、本発明を実施する為の形態について図面を用いて説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【実施例１】
【０００９】
本実施形態では、異なる視点位置からの複数の撮影画像に含まれる文字を抽出し、各撮影画像間において同じ文字同士を対応付けることにより、特定のマーカーやパターン光を用いることなく画素位置の対応付けを行う。そして、対応付けの結果に基づいて被写体の３次元データを算出する。文字同士の対応付けは、撮影画像より抽出した文字情報からテンプレートを作成し、これを用いたテンプレートマッチングにより行う。そのため、撮影画像の画素値からテンプレートを作成する場合に比べ、撮影画像間での明るさの違いといったノイズの影響を受けずに、より高精度なマッチングが可能である。また、撮影画像から抽出した複数の文字からテンプレートを作成することにより、被写体に同一の文字が複数存在する場合にも精度良く対応付けを行うことができる。以下、詳しく説明する。
【００１０】
図１は、本実施例における画像処理装置のシステム構成例を示す図である。画像処理装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、システムバス１０４、入力Ｉ／Ｆ１０５、ＨＤＤ  Ｉ／Ｆ１０６、出力Ｉ／Ｆ１０７で構成される。
【００１１】
ＣＰＵ１０１は、ＲＡＭ１０３をワークメモリとして、ＲＯＭ１０２及びハードディスクドライブ（ＨＤＤ）１２０に格納されたプログラムを実行し、システムバス１０４を介して後述する各部を制御する。入力インタフェイス（Ｉ／Ｆ）１０５は、キーボードやマウス、デジタルカメラ、スキャナなどの入力デバイス１１０を接続する、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェイスである。ＣＰＵ１０１は、入力Ｉ／Ｆ１０５を介して入力デバイス１１０から各種データを読み込むことが可能である。ＨＤＤインタフェイス（Ｉ／Ｆ）１０６は、ＨＤＤ１２０や光ディスクドライブなどの二次記憶装置を接続する、例えばシリアルＡＴＡ（ＳＡＴＡ）等のインタフェイスである。ＣＰＵ１０１は、ＨＤＤＩ／Ｆ１０６を介して、ＨＤＤ１２０からのデータ読み出し、およびＨＤＤ１２０へのデータ書き込みが可能である。さらにＣＰＵ１０１は、ＨＤＤ１２０に格納されたデータをＲＡＭ１０３に展開し、同様に、ＲＡＭ１０３に展開されたデータをＨＤＤ１２０に保存することが可能である。そしてＣＰＵ１０１は、ＲＡＭ１０３に展開したデータをプログラムとみなし、実行することができる。出力インタフェイス（Ｉ／Ｆ）１０７は、モニタやプリンタ等の出力デバイス１３０を接続する、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェイスである。ＣＰＵ１０１は、出力インタフェイス１０７を介して出力デバイス１３０にデータを送り、表示や記録を実行させることができる。なお、ＵＳＢやＩＥＥＥ１３９４等の双方向通信インタフェイスを利用すれば、入力Ｉ／Ｆ１０５と出力Ｉ／Ｆ１０７を一つにまとめることができる。
【００１２】
図２は、画像処理装置１００のソフトウェア構成を示す機能ブロック図である。入力部２０１は、異なる視点から撮影された複数の撮影画像を示す入力画像データと、各撮影画像の撮影パラメータを、入力デバイス１１０や図示しないデータベースから取得する。解析部２０２は、入力画像データに対し文字抽出処理を行い、各撮影画像に写っている被写体上の文字と当該文字の撮影画像上における位置を表す情報（以下、文字情報）を生成する。さらに解析部２０２は、撮影画像毎に生成した文字情報に基づいて、各撮影画像における画素位置を対応付ける処理（以下、画像間対応付け処理）を行い、複数の撮影画像における画素位置の対応関係を示す情報（対応位置情報）を生成する。生成された対応位置情報は、推定部２０３へ送られる。推定部２０３は、撮影画像毎に生成された対応位置情報と、各撮影画像に対応する撮影パラメータとを用いて、撮影画像に写っている被写体上の文字の３次元座標データを導出する処理（以下、３次元座標推定処理）を行なう。導出された３次元座標データは、ＨＤＤ１２０等に格納される。
【００１３】
図３は、画像処理装置１００における一連の処理の動作手順を示すフローチャートである。この一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムを、ＲＯＭ１０２あるいはＨＤＤ１２０からＲＡＭ１０３上に読み込んだ後に、ＣＰＵ１０１によって該プログラムを実行することによって実現される。
【００１４】
ステップ３０１において、入力部２０１は、様々な視点位置から同一の被写体を撮影した複数の撮影画像を示す入力画像データと、各撮影画像の撮影パラメータを取得する。撮影パラメータには、その画像を撮影した際のカメラの内部パラメータ行列と回転行列、平行移動ベクトルが含まれる。ここで、内部パラメータ行列とは、光軸と撮像面の中心との位置関係を表す例えば３×３行列である。また、回転行列及び平行移動ベクトルは、それぞれ３次元空間の原点に対するカメラの回転を表す例えば３×３の行列、および、平行移動を表す例えば３×１のベクトルである。これらの行列やベクトルは、撮影時に一般的なカメラキャリブレーションを行うことにより求めることができる。そして、撮影画像とその撮影パラメータとのセットが視点位置毎に保持されているデータベース等から、入力部２０１はこれらを取得する。或いは、デジタルカメラや各種センサ等の入力デバイス１０６から、撮影画像と共に撮影時の値を撮影パラメータとして取得する。取得した入力画像データと撮影パラメータは、ＲＡＭ１０３やＨＤＤ１２０等に記憶される。
【００１５】
ステップ３０２において、解析部２０２は、ＲＡＭ１０３等から処理対象とする入力画像データを読み出し、視点の異なる撮影画像のそれぞれから文字を抽出する処理を行なう。そして、抽出された文字とその撮影画像上の画素位置とを対応付けて、上述の文字情報を生成する。文字の抽出には、公知のＯＣＲ等の技術が利用可能である。また、文字の位置は、例えば文字に外接する図形の重心位置や、あるいは、文字自体を図形と見なした時の重心位置とすればよい。なお、文字抽出処理において予め認識率の低い文字がわかっている場合には、その文字を文字情報から除外してもよい。これにより、以下で説明する対応付け処理において、誤った文字同士が対応付けられることを防止することができる。
【００１６】
ステップ３０３において、解析部２０２は、生成された文字情報を用いて、各撮影画像に含まれる文字同士の対応付け（各撮影画像間における画素位置の対応付け）を行う。図４はこの対応付け処理の詳細を示すフローチャートである。
【００１７】
ステップ４０１において、解析部２０２は、入力画像データ内の複数の撮影画像のうちのいずれか１つを基準画像に決定する。この際、複数の撮影画像からランダムに１の撮影画像を決定してもよいし、ユーザが入力デバイス１１０を介して指定してもよい。ステップ４０２において、解析部２０２は、決定された基準画像の中から処理対象とする注目文字を、当該基準画像の文字情報を参照して決定する。ステップ４０３において、解析部２０２は、決定された注目文字についてのテンプレートデータを、基準画像の文字情報を用いて生成する。具体的には、まず、基準画像に含まれる注目文字以外の文字Ｃの基準画像上における位置（Ｘ，Ｙ）を用いて、注目文字からの距離Ｄを求める。そして、求めた距離Ｄが小さい方からＮ個（Ｎは所定の自然数であり、テンプレートのサイズに相当）の文字Ｃｉ（ｉ＝０，１，…，Ｎ−１）を抽出し、その抽出された文字の位置（Ｘｉ，Ｙｉ）と注目文字からの距離Ｄｉを組にしてテンプレートデータとする。
【００１８】
ステップ４０４において、解析部２０２は、入力画像データ内の複数の撮影画像のうち、基準画像に決定された撮影画像を除く他の撮影画像の中から１の参照画像を決定する。ステップ４０５において、解析部２０２は、決定された参照画像の文字情報を参照して、当該参照画像中に注目文字と同一の文字が存在するかどうかを判定する。参照画像中に注目文字と同一の文字が存在すると判定された場合は、その文字を参照文字としてＲＡＭ１０３等に記憶し、ステップ４０６に進む。一方、参照画像中に注目文字と同一の文字が存在しないと判定された場合（基準画像上の注目文字の画素位置に対応する参照画像上の画素位置が存在しない場合）は、ステップ４０９へ進む。
【００１９】
ステップ４０６において、解析部２０２は、テンプレートデータの生成と同様の方法で、参照文字について参照データを生成する。詳細には、参照画像の文字情報に含まれる文字ｃの参照画像上における位置（ｘ，ｙ）を用いて、参照文字からの距離ｄを求める。そして、求めた距離ｄが小さい方からＮ個の文字ｃｉ（ｉ＝０，１，…，Ｎ−１）を抽出し、抽出された文字の位置（ｘｉ，ｙｉ）と参照文字からの距離ｄｉを組にして参照データとする。図５は、テンプレートデータに対応する参照データが取得される様子を説明する図である。図５では、第１の視点５０１から撮影された画像を基準画像、視点５０２から撮影された画像を参照画像として、被写体である本に含まれる文字列中の注目文字「ま」について、テンプレートデータと３種類の参照データが生成される様子を示している。
【００２０】
ステップ４０７において、解析部２０２は、参照データとテンプレートデータとの類似度を導出する。ここで、類似度Ｓは、参照データに含まれる文字ｃｉおよび距離ｄｉが、それぞれテンプレートデータに含まれる文字Ｃｉおよび距離Ｄｉと全て一致する場合に最大となるように、例えば式（１）を用いて算出する。
【００２１】
【数１】
2015176586.tif 000003
【００２２】
上記式（１）においてｆ（Ｃｉ，ｃｉ）は、Ｃｉとｃｉが同じ文字である場合に１、異なる文字である場合に０となる関数である。また、ｗ（Ｃｉ，ｃｉ）は、注目文字あるいは参照文字に対する周囲の文字の相対位置に基づく重み付け係数であり、例えば式（２）を用いて算出する。
【００２３】
【数２】
2015176586.tif 000004
【００２４】
ここで、大きな値の類似度Ｓが導出された参照データにおける参照文字は、注目文字に対応する被写体上の文字が参照画像上に撮影されたものであると考えられる。そこで、ステップ４０８において、解析部２０２は、類似度Ｓが最大となる参照データに含まれる参照文字の位置を注目文字の位置と関連付けて記憶する。なお、参照データの最大類似度Ｓｍａｘが予め定めた閾値よりも大きい場合にのみ、参照文字と注目文字の位置を関連付けるようにしてもよい。これにより、注目文字が誤った参照文字と対応付けられることを防止することができる。
【００２５】
ステップ４０９において、解析部２０２は、入力画像データにおける基準画像を除くすべての撮影画像が、参照画像として処理されたかどうかを判定する。未処理の撮影画像があればステップ４０４に戻って次の参照画像を決定し、ステップ４０５〜ステップ４０８の処理を繰り返す。一方、すべての撮影画像が参照画像として処理されていれば、ステップ４１０へ進む。ステップ４１０において、解析部２０２は、基準画像の文字情報を参照して、未だ対応付けがなされていない文字が基準画像中に存在するかどうかを判定する。基準画像中に対応付け処理が施されていない文字が存在する場合にはステップ４０２へ戻って、次の注目文字を決定し、ステップ４０３〜ステップ４０９の処理を繰り返す。一方、基準画像中のすべての文字について対応付け処理が完了している場合は、ステップ４１１へ進む。
【００２６】
ステップ４１１において、解析部２０２は、上述の処理によって得られた結果（注目文字の画素位置と参照文字の画素位置との対応関係）を、対応位置情報としてＲＡＭ等に保存する。なお、ある１つの参照画像中に参照文字が１つしか存在しない場合は、その参照画像については類似度の導出処理を行わずに、当該参照文字の位置と注目文字の位置とを関連付けてもよい。これにより、対応付け処理の負荷を軽減することができる。以上が、対応付け処理の内容である。対応付け処理によって得られた対応位置情報は、推定部２０３に送られる。
【００２７】
図３のフローチャートの説明に戻る。ステップ３０４において、推定部２０３は、入力部２０１から受け取った撮影パラメータと解析部２０２から受け取った対応位置情報とに基づいて、入力画像データに係る被写体の３次元座標を推定する。ある点の３次元空間における座標をＰ＝（ｘ，ｙ，ｚ）Ｔ、第１の撮影画像ｇ１と第２の撮影画像ｇ２上における位置をそれぞれｐ１＝（ｕ１，ｖ１）Ｔ、ｐ２＝（ｕ２，ｖ２）Ｔとすると、一般的に下記の式（３）の関係が成り立つ。
【００２８】
【数３】
2015176586.tif 000005
【００２９】
ここで、Ｍｋ，Ｒｋ，ｔｋ（ｋ＝１，２）は、撮影画像ｇｋを撮影した際の、内部パラメータ行列、回転行列、平行移動ベクトルをそれぞれ示している。そして、上記式（３）は、３次元座標Ｐについての連立方程式と看做すことができる。すなわち、異なる視点から撮影された２枚の撮影画像上における位置と、各撮影画像を撮影した際の撮影パラメータを式（３）に与えて解くことにより、対応する被写体上の点の３次元座標を得ることができる。具体的には、以下のとおりである。
【００３０】
１）ステップ３０３で生成された対応位置情報の中から、入力画像データのうち少なくとも２つの撮影画像間で関連付けられた画素位置の組み合わせを選択する。２）ステップ３０１で取得した撮影パラメータを参照して、当該選択された画素位置の組合せに係る撮影画像についての、撮影時の内部パラメータ行列、回転行列、平行移動ベクトル、を取得する。３）選択された画素位置の組合せ、及び取得した撮影時の内部パラメータ行列、回転行列、平行移動ベクトルを上記式（３）に代入して解く。
【００３１】
なお、画素位置が３つ以上の撮影画像間で対応付けられている場合には、対応付けられた画素位置の中から適当な２つの画素位置を選択して座標の算出を行えばよい。あるいは、対応付けられた画素位置の中から２つを選択して成る画素位置の組を複数作成し、各組について得られた３次元座標の値の平均値を解として求めてもよい。
【００３２】
以上の処理を対応位置情報に含まれる全ての画素位置の組み合わせについて行って得られた座標群のデータが、被写体の３次元座標データとなる。図６は、図５に示した被写体（本）について生成された３次元座標データを示している。図６（ａ）は被写体と撮影時の視点の位置関係を示しており、同（ｂ）は当該被写体の３次元座標データを示している。図６（ｂ）における黒点（●）は、各文字の３次元座標上の位置をプロットした点であり、各文字位置の３次元座標を頂点とするメッシュは、被写体の概形となっているのが分かる。本実施例によれば、特定のマーカーやパターン光を用いることなく、被写体の３次元座標データを取得することが可能となる。
【００３３】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015176586.tif 000006
【図２】
2015176586.tif 000007
【図３】
2015176586.tif 000008
【図４】
2015176586.tif 000009
【図５】
2015176586.tif 000010
【図６】
2015176586.tif 000011