(57)【要約】【課題】  指標の設置位置、姿勢、形状、寸法の検討、指標作成、指標設置といった、指標画像によるカメラ位置姿勢推定に必要となる指標初期設定作業の工数を軽減し、短い時間でカメラ位置姿勢推定に適切な指標を設置可能とする為の技術を提供すること。【解決手段】  現実空間を模した仮想空間を、当該現実空間中に定義された座標系に一致させて設定した場合に、所望の視点から見た当該仮想空間の画像上で、指標を配置する指示位置に対応する現実空間中の位置を求め（Ｓ４００）、指標が画像上で占める領域に対応する現実空間中の領域を求める（Ｓ４０４）。【選択図】  図１
2006267026.tif 000002
【特許請求の範囲】
【請求項１】
現実空間を模した仮想空間を、当該現実空間中に定義された座標系に一致させて設定した場合に、所望の視点から見た当該仮想空間の画像を生成する生成工程と、
前記生成工程で生成した画像を所定の表示画面上に表示する表示工程と、
前記画像上で、指標を配置する箇所を指示する位置指示工程と、
前記画像上で指示された位置に対応する前記現実空間中の位置を求める第１の計算工程と、
前記指標が前記画像上で占める領域を設定する設定工程と、
前記設定工程で設定した領域に対応する前記現実空間中の領域を求める第２の計算工程と、
前記計算工程で計算した位置を示すデータ、及び前記第２の計算工程で計算した領域を示すデータをメモリに格納する格納工程と
を備えることを特徴とする画像処理方法。
【請求項２】
前記第１の計算工程では、前記視点の位置と前記画像上で指示された位置とを結ぶ直線と前記仮想空間との交点位置を求め、
前記格納工程では、前記第１の計算工程で求めた当該交点位置を、前記画像上で指示された位置に対応する前記現実空間中の位置として前記メモリに格納することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記第２の計算工程では、
前記画像上における前記指標の輪郭上に有限個数の点を設定する点設定工程と、
前記点設定工程で設定した点と前記視点とを結ぶ直線と、前記仮想空間との交点を求める処理を、前記輪郭上のそれぞれの点について行う交点計算工程とを備え、
前記格納工程では、前記交点計算工程が求めた交点群で表現される形状の領域を、前記設定工程で設定した領域に対応する前記現実空間中の領域とすべく、前記交点計算工程が求めたそれぞれの交点の位置を示すデータを前記メモリに格納することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
それぞれの位置姿勢で撮像して複数枚の画像を取得する取得工程と、
画像内に写っているそれぞれの指標の当該画像内におけるばらつきの度合いを計算する処理をそれぞれの画像について行う計算工程と、
それぞれの画像について求めたばらつきの度合いを報知する第１の報知工程と
を備えることを特徴とする画像処理方法。
【請求項５】
更に、それぞれの画像について求めたばらつきの度合いが所定範囲内に収まっている場合には、その旨を報知する第２の報知工程を備えることを特徴とする請求項４に記載の画像処理方法。
【請求項６】
現実空間を模した仮想空間を、当該現実空間中に定義された座標系に一致させて設定した場合に、所望の視点から見た当該仮想空間の画像を生成する生成手段と、
前記生成手段が生成した画像を表示する表示手段と、
前記画像上で、指標を配置する箇所を指示する位置指示手段と、
前記画像上で指示された位置に対応する前記現実空間中の位置を求める第１の計算手段と、
前記指標が前記画像上で占める領域を設定する設定手段と、
前記設定手段が設定した領域に対応する前記現実空間中の領域を求める第２の計算手段と、
前記計算手段が計算した位置を示すデータ、及び前記第２の計算手段が計算した領域を示すデータを格納する格納手段と
を備えることを特徴とする画像処理装置。
【請求項７】
それぞれの位置姿勢で撮像して複数枚の画像を取得する取得手段と、
画像内に写っているそれぞれの指標の当該画像内におけるばらつきの度合いを計算する処理をそれぞれの画像について行う計算手段と、
それぞれの画像について求めたばらつきの度合いを報知する第１の報知手段と
を備えることを特徴とする画像処理装置。
【請求項８】
コンピュータに請求項１乃至５の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の指標を配置した現実空間の画像を用いて、この画像を撮像した撮像装置の位置姿勢を求める為の技術に関するものである。
【背景技術】
【０００２】
カメラの焦点距離、主点、レンズ歪みといったカメラ固有にカメラ内部に存在するカメラ内部パラメータ、もしくは、カメラの位置姿勢といったカメラが外界に対してどのように存在しているかを表すカメラ外部パラメータを校正するために、３次元空間座標内に置かれた座標値が既知の複数の指標をカメラで撮像して指標画像を生成し、各指標の空間座標値と指標の画像座標値を用いて、カメラ校正アルゴリズムに基づき推定する方法がある。
【０００３】
カメラ校正アルゴリズムには、すべての指標が１平面上に分布していない（３次元的に分布した）指標を基にする方法、２次元的（平面上）に分布した指標を基にする方法があり、指標を空間に配置する容易さや、非線形な内部パラメータであるレンズ歪みの校正も行える方法へ発展できるなどの利点から広く一般的に利用されている。
【０００４】
これは、古くはロジャー・ツサイらの提案（非特許文献１を参照）をはじめとして、数多くの提案がなされている。
【非特許文献１】Ｒｏｇｅｒ  Ｙ。Ｔｓａｉ、”Ａ  Ｖｅｒｓａｔｉｌｅ  Ｃａｍｅｒａ  ＣａｌｉｂｒａｔｉｏｎＴｅｃｈｎｉｑｕｅ  ｆｏｒ  Ｈｉｇｈ−Ａｃｃｕｒａｃｙ  ３Ｄ  Ｍａｃｈｉｎｅ  Ｍｅｔｒｏｌｏｇｙ  Ｕｓｉｎｇ  Ｏｆｆ−ｔｈｅ  Ｓｈｅｌｆ  ＴＶＣａｍｅｒａｓ  ａｎｄ  Ｌｅｎｓｅｓ”、ＩＩＩＥ  Ｊ。Ｒｏｂｏｔｉｃｓａｎｄ  Ａｕｔｏｍａｔｉｏｎ、Ｖｏｌ。ＲＡ−３、Ｎｏ。４、ｐｐ。３２３−３４４、１９８７
【発明の開示】
【発明が解決しようとする課題】
【０００５】
指標画像からカメラ位置姿勢を推定する処理をカメラの位置姿勢に依存せずに行うためには、常に使用する位置推定アルゴリズムに必要な数の指標が指標画像上に存在してなくてはならない。
【０００６】
また、カメラ位置姿勢に依存せず、位置姿勢推定の精度を一定に保つためには、常に指標画像上に均一に指標が配置されてなくてはならない。
【０００７】
これらの実現のために、カメラ位置姿勢を推定する環境において下記の指標初期設定作業を行っているのが現状である。
【０００８】
（１）  カメラ位置姿勢の取り得る範囲を検討する。（カメラ位置姿勢可動範囲検討）
（２）  （１）で検討した位置姿勢可動範囲にカメラを設置して撮像を行い、撮像画像から指標の設置位置を検討する。(指標位置検討)
（３）  （２）で検討した指標設置位置に指標を設置した場合の撮像画像上の指標の形状を検討する。（指指標形状検討）
（４）  （２）で検討した指標設置位置とカメラとの距離から、使用する位置姿勢推定アルゴリズムが認識可能であるように指標の大きさを検討する。（指標寸法検討）
（５）  以上の検討を踏まえて指標を作成する。（指標作成）
（６）  作成した指標を（２）で検討した位置に設置する。（指標設置）
（７）  （１）で検討した位置姿勢可動範囲にカメラを設置して、撮像画像（指標画像）から位置姿勢推定可能か調べる。（カメラ位置姿勢推定確認）
（８）  （１）で検討した位置姿勢可動範囲にカメラを設置して、カメラ位置姿勢推定の精度が均一であるか調べる。（カメラ位置姿勢推定精度確認）
（９）  （７）において位置姿勢推定に失敗したり、（８）において位置姿勢推定精度が大きく変化したりする場合は（１）に戻って繰り返し行う。
【０００９】
指標初期設定作業は作業者の経験・慣れを必要とする上、十分経験を積んだ作業者であって繰り返し作業が必要となることが多く、時間と労力がかかるものであった。
【００１０】
本発明は以上のような問題を鑑み、指標の設置位置、姿勢、形状、寸法の検討、指標作成、指標設置といった、指標画像によるカメラ位置姿勢推定に必要となる指標初期設定作業の工数を軽減し、短い時間でカメラ位置姿勢推定に適切な指標を設置可能とする為の技術を提供することを目的とする。
【００１１】
また、カメラ位置姿勢可動範囲において、指標画像による位置姿勢推定の精度を均一に保つことを目的とする。
【課題を解決するための手段】
【００１２】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１３】
即ち、現実空間を模した仮想空間を、当該現実空間中に定義された座標系に一致させて設定した場合に、所望の視点から見た当該仮想空間の画像を生成する生成工程と、
前記生成工程で生成した画像を所定の表示画面上に表示する表示工程と、
前記画像上で、指標を配置する箇所を指示する位置指示工程と、
前記画像上で指示された位置に対応する前記現実空間中の位置を求める第１の計算工程と、
前記指標が前記画像上で占める領域を設定する設定工程と、
前記設定工程で設定した領域に対応する前記現実空間中の領域を求める第２の計算工程と、
前記計算工程で計算した位置を示すデータ、及び前記第２の計算工程で計算した領域を示すデータをメモリに格納する格納工程と
を備えることを特徴とする。
【００１４】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１５】
即ち、それぞれの位置姿勢で撮像して複数枚の画像を取得する取得工程と、
画像内に写っているそれぞれの指標の当該画像内におけるばらつきの度合いを計算する処理をそれぞれの画像について行う計算工程と、
それぞれの画像について求めたばらつきの度合いを報知する第１の報知工程と
を備えることを特徴とする。
【００１６】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１７】
即ち、現実空間を模した仮想空間を、当該現実空間中に定義された座標系に一致させて設定した場合に、所望の視点から見た当該仮想空間の画像を生成する生成手段と、
前記生成手段が生成した画像を表示する表示手段と、
前記画像上で、指標を配置する箇所を指示する位置指示手段と、
前記画像上で指示された位置に対応する前記現実空間中の位置を求める第１の計算手段と、
前記指標が前記画像上で占める領域を設定する設定手段と、
前記設定手段が設定した領域に対応する前記現実空間中の領域を求める第２の計算手段と、
前記計算手段が計算した位置を示すデータ、及び前記第２の計算手段が計算した領域を示すデータを格納する格納手段と
を備えることを特徴とする。
【００１８】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１９】
即ち、それぞれの位置姿勢で撮像して複数枚の画像を取得する取得手段と、
画像内に写っているそれぞれの指標の当該画像内におけるばらつきの度合いを計算する処理をそれぞれの画像について行う計算手段と、
それぞれの画像について求めたばらつきの度合いを報知する第１の報知手段と
を備えることを特徴とする。
【発明の効果】
【００２０】
本発明の構成により、指標の設置位置、姿勢、形状、寸法の検討、指標作成、指標設置といった、指標画像によるカメラ位置姿勢推定に必要となる指標初期設定作業の工数を軽減し、短い時間でカメラ位置姿勢推定に適切な指標を設置することができる。
【００２１】
また、カメラ位置姿勢可動範囲において、指標画像による位置姿勢推定の精度を均一に保つことができる。
【発明を実施するための最良の形態】
【００２２】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２３】
［第１の実施形態］
本実施形態では、撮像装置の位置姿勢が固定されている場合において、現実空間中に配置する指標の配置位置を求める処理について説明する。なお、配置する指標の使用目的については上述の通り、複数の指標を配した現実空間の画像を用いて、この画像を撮像した撮像装置の位置姿勢を推定する（求めたり、補正したりする処理を含む）為に用いられるものである。
【００２４】
図１は、本実施形態に係る画像処理装置として機能するコンピュータのハードウェア構成を示すブロック図である。このコンピュータには一般のＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等が用いられる。
【００２５】
同図に示す如く、ＣＰＵ１１０、メモリ１２０、ＨＤＤ（ハードディスクドライブ）１３０、Ｉ／Ｆ（インターフェース）１５０、表示装置１７０、キーボード１８０、マウス１９０により構成されている。
【００２６】
ＣＰＵ１１０は本コンピュータ全体の制御を行うと共に、本コンピュータが行う後述の各処理を実行する。
【００２７】
メモリ１２０は、ＨＤＤ１３０からロードされたプログラムやデータを一時的に記憶する為のエリア、ＣＰＵ１１０が各処理を実行する際に用いるエリアなど、様々なエリアを提供することができる。
【００２８】
ＨＤＤ１３０にはＯＳ（オペレーティングシステム）や、本コンピュータが行う後述の各処理をＣＰＵ１１０に実行させるためのプログラムやデータが保存されており、これらの一部若しくは全部はＣＰＵ１１０による制御に従ってメモリ１２０にロードされ、ＣＰＵ１１０による処理対象となる。
【００２９】
Ｉ／Ｆ１５０は、ＣＰＵ１１０による処理結果である画像や文字を示す信号を表示装置１７０に出力する。
【００３０】
表示装置１７０はＣＲＴや液晶画面などにより構成されており、ＣＰＵ１１０による処理結果を画像や文字などでもって表示する。
【００３１】
キーボード１８０、マウス１９０は本コンピュータの操作者が操作することで、各種の指示をＣＰＵ１１０に対して入力することができる。
【００３２】
次に、このような構成を備えるコンピュータが行う処理、即ち、現実空間中に配置する指標の配置位置を求める処理について、同処理のフローチャートを示す図２を用いて以下説明する。なお、同図のフローチャートに従った処理をＣＰＵ１１０に実行させるためのプログラムやデータはＨＤＤ１３０に保存されており、これは必要に応じてＣＰＵ１１０による制御に従って適宜メモリ１２０にロードされるので、ＣＰＵ１１０がロードされたプログラムやデータを用いて処理を行うことで、本コンピュータは以下説明する各処理を実行することになる。
【００３３】
先ず、ＨＤＤ１３０に保存されている「現実空間を模した仮想空間のデータ」をメモリ１２０にロードする（ステップＳ３１０）。ここで、「現実空間を模した仮想空間のデータ」とは、「指標を配置する現実空間の物理的状態を仮想空間中に構築するためのモデルデータ（以下、現実空間モデルデータと呼称する）」である。本実施形態ではこのモデルデータはポリゴンでもって構成されているものとして説明する。
【００３４】
また、この仮想空間は、その座標系が、現実空間中に定義された座標系と一致するように設定されているものとする（即ち仮想空間における原点と、この原点で互いに直交する３軸（ｘ軸、ｙ軸、ｚ軸）は、それぞれ、現実空間中に定義したそれらと一致している）。よって、仮想空間中におけるある１点と、この１点に対応する現実空間中の１点とは同じ座標値でもって表されることになる。
【００３５】
次に、ＣＰＵ１１０は、仮想空間中に配置する撮像装置（視点）の位置姿勢を設定するためのＧＵＩを表示装置１７０の表示画面上に表示し、位置姿勢の入力を受け付ける（ステップＳ３１４）。図３は、仮想空間中に配置する視点の位置姿勢を入力するためのＧＵＩの表示例を示す図で、領域３５１〜３５６はそれぞれ、視点の位置（ｘ、ｙ、ｚ）と姿勢（ａｚｉｍｕｔｈ，ｅｌｅｖａｔｉｏｎ，ｒｏｌｌ）とを入力するための領域である。
【００３６】
本コンピュータの操作者はキーボード１８０やマウス１９０を用いてそれぞれの領域３５１〜３５６に所望の数値を入力する。そして入力が完了し、ボタン画像３５７を指示すると、ＣＰＵ１１０はこれを検知し、領域３５１〜３５６に入力された位置姿勢のデータをメモリ１２０に格納する。なお、同図のＧＵＩでは位置姿勢はY-X-Zオイラー角で定義されるものとしているが、これに限るものではなく、回転軸と回転角などでもって表現するようにしてもよい。その場合、ステップＳ３１４で表示するＧＵＩの構成は適宜変更する必要がある。
【００３７】
また、視点の位置姿勢の入力方法についてはこのように数値を入力する形態に限定するものではなく、表示装置１７０の表示画面上でアイコンを操作することで視点の位置姿勢を設定するようにしても良い。その場合、ステップＳ３１４では、図４に示すＧＵＩが表示装置１７０の表示画面上に表示されることになる。
【００３８】
図４は、視点の位置姿勢をアイコンでもって設定するためのＧＵＩの表示例を示す図である。同図のＧＵＩには、現実空間モデルを俯瞰する位置姿勢の視点から見える仮想空間の画像が表示されている。この画像上の２１０は、視点の位置姿勢を示すためのアイコンであり、このアイコン２１０の端部２１５の位置が視点の位置を示しており、アイコンの向きが視点の姿勢（視線方向）を示している。よって、本コンピュータの操作者は、キーボード１８０やマウス１９０を用いてこのアイコン２１０の位置や姿勢を変更させることで、仮想空間中に設定する視点の位置や姿勢を変更し、設定することができる。
【００３９】
更に、図４に示したＧＵＩが表示する画像に加えて、図５に示す如く、アイコン２１０の位置から、アイコン２１０の姿勢方向に延長した線分２２０を表示し、この線分の一端（線分２２０が現実空間モデルと交差する点）の位置を操作することで、アイコン２１０の姿勢を変更するようにしても良い。この場合、変更後の一端の位置とアイコン２１０の位置とを結ぶ線分を視線方向とするようにアイコン２１０の姿勢（視点の姿勢）は変更される。図５は、視点の位置姿勢をアイコンでもって設定するためのＧＵＩの表示例を示す図である。
【００４０】
このように、視点の位置姿勢の設定方法については様々なものが考えられ、１つの方法に限定するものではない。
【００４１】
図２に戻って、処理をステップＳ３１６に進め、ステップＳ３１４で設定された位置姿勢を有する視点から見える仮想空間の画像を生成し、表示装置１７０の表示画面上に表示する（ステップＳ３１６）。なお、所定の位置姿勢を有する視点から見える仮想空間の画像を生成する処理については周知のであるので、これに関する説明は省略する。
【００４２】
図６は、ステップＳ３１６で生成する仮想空間の画像の一例を示す図である。この画像は、ステップＳ３１４で設定した位置姿勢を有する視点から見える現実空間を模した仮想空間の画像である。
【００４３】
次に、操作者はキーボード１８０やマウス１９０を用いて、現実空間中に配置する指標を、ステップＳ３１６で表示された仮想空間画像上で設定する。
【００４４】
操作者は仮想空間画像上における所望の位置をマウス１９０でもってクリックすると、ＣＰＵ１１０は、画像上におけるクリック位置に指標アイコンを表示する。当然、複数箇所をクリックした場合にはそれぞれのクリック位置に指標アイコンが表示される。図７は、仮想空間画像上で４カ所クリックした場合の表示例を示す図で、２５０ａ〜２５０ｄはそれぞれ、仮想空間画像上において操作者がクリックした位置を示す指標アイコンである。なお、指標アイコンは、クリック位置が視覚的に分かるようなものであれば、どのようなアイコンを用いても良い。
【００４５】
また、表示した指標アイコン上にマウスカーソルを移動させ、ドラッグすることで、指標アイコンの表示位置を変更することもできる。また、画像外に指標アイコンを移動させることで、その指標アイコンを削除することもできる。このように、１以上の指標アイコンを仮想空間画像上に配置したり、画像上の位置を移動させたり、削除したりすることができる。なお、そのための操作方法については上述のようなものに限定しない。
【００４６】
よってステップＳ３１８では、仮想空間画像上でクリックを検知すると、クリック位置をメモリ１２０に記録するし、指標アイコンの位置を移動させる操作を検知すると、メモリ１２０に記録しているこの指標アイコンの位置をその操作に応じて変更するし、指標アイコンを削除する操作を受けると、メモリ１２０に記録されているこの指標アイコンの位置を削除する。このようにして、ＣＰＵ１１０は、操作者によって設定された指標アイコンの位置データをメモリ１２０内に管理する。
【００４７】
そして、ステップＳ３１８でメモリ１２０に関している各指標アイコンの仮想空間画像上の位置に、指標アイコンを表示する（ステップＳ３２０）。
【００４８】
そして、仮想空間画像上における指標の設定を終了する旨の操作、例えば、マウス１９０をダブルクリックする操作を検知すると、処理をステップＳ３２２を介してステップＳ３２４に進めるが、検知していない限りはステップＳ３１８、Ｓ３２０の処理を繰り返す。
【００４９】
そして次に、メモリ１２０に管理しているそれぞれの指標アイコンの位置データを用いて、仮想空間画像上における指標アイコンが示す位置が、現実空間中のどの位置に対応するものであるのかを求める（ステップＳ３２４）。
【００５０】
ステップＳ３２４における処理について詳細に説明する。図８は、仮想空間画像上における指標アイコンの位置に対応する現実空間中の位置を求める処理を説明する図である。同図において２８０は視点、２８２は視点２８０の視線、２７０は仮想空間画像、２５０ａは指標アイコン、２６０ａは視点２８０の位置と仮想空間画像２７０上における指標アイコン２５０ａの位置とを通る直線と、現実空間モデル８００との交点を示している。ここで、視線２８２は仮想空間画像２７０の中心位置を通っている。
【００５１】
仮想空間画像２７０は、現実空間モデル８００で表現される仮想空間を視点２８０から見た画像である。従って、２６０ａの位置は、この位置と視点２８０の位置とを結ぶ直線と画像面（仮想空間画像２７０）との交点位置に投影される。この交点位置が２５０ａの位置である。
【００５２】
よって、視点２８０の位置と仮想空間画像２７０上における指標アイコン２５０ａの位置とを通る直線と、現実空間モデル８００との交点を求めれば、この交点の位置を、仮想空間画像２７０における指標アイコン２５０ａの位置に対応する現実空間中の位置として求めることができる。ここで、求めた交点の座標位置は、仮想空間におけるものであるが、上述の通り、仮想空間と現実空間とは座標系を一致させているので、仮想空間において求めた座標値はそのまま現実空間における座標値とすることができる。
【００５３】
このようにして、仮想空間画像２７０上における任意の点が、現実空間中のどの位置に対応するものであるのかを求めることができる。なお、交点を求める為の詳細な方法については広く一般に知られるところであり、詳細な説明はここでは省略する。
【００５４】
そしてステップＳ３２４で求めたそれぞれの指標アイコンの仮想空間画像上の位置に対応する現実空間中の位置を示すデータを保存する旨の指示がキーボード１８０やマウス１９０によって入力された場合には、ＣＰＵ１１０はこれを検知して処理をステップＳ３３０を介してステップＳ３３２に進め、ＨＤＤ１３０に保存する（ステップＳ３３２）。
【００５５】
以上の説明により、本実施形態によって、実際に指標を現実空間に配置する前に、コンピュータ上で簡便な操作でもって現実空間における指標の配置をシミュレートすることができるので、結果として、指標の配置を行うまでの作業工程を軽減させることができる。
【００５６】
なお、本実施形態で説明したＧＵＩの操作方法については上記限定するものではない。また、本実施形態では現実空間モデルはポリゴンでもって構成されているとして説明したが、これに限定するものではない。
【００５７】
［第２の実施形態］
本実施形態では、第１の実施形態で説明した現実空間における指標の配置位置の算出に加え、指標の形状をも求める。なお、このような処理を行うためのコンピュータについては第１の実施形態と同じものを用いるものとする。
【００５８】
図９は、現実空間における指標の配置位置の算出に加え、指標の形状をも求める処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１１０に実行させるためのプログラムやデータはＨＤＤ１３０に保存されており、これは必要に応じてＣＰＵ１１０による制御に従って適宜メモリ１２０にロードされるので、ＣＰＵ１１０がロードされたプログラムやデータを用いて処理を行うことで、本コンピュータは以下説明する各処理を実行することになる。
【００５９】
先ず、上記ステップＳ３１０からステップＳ３２４の処理を行い、操作者が設定した各指標アイコンの現実空間における位置データをＨＤＤ１３０に保存する（ステップＳ４００）。
【００６０】
ここで、上記処理で決定した指標配置位置に実際に指標を配置した現実空間を、上記視点の位置姿勢で配置した撮像装置によって撮像した場合に得られる指標画像には、１以上の指標が写っているのであるが、それぞれの指標は様々な形、サイズで写っている。以降の処理では、それぞれの指標は、撮像装置との距離、位置姿勢関係に関係なく、指標画像上では同じ形、サイズでもって写るように、それぞれの指標の形状（形、サイズ）を求める。
【００６１】
そのためには先ず、ＣＰＵ１１０は表示装置１７０の表示画面上に、指標画像上で指標が写った場合に、全ての指標が写るべきサイズを入力するためのＧＵＩを表示し、入力を待つ（ステップＳ４０２）。この入力は換言すれば、各指標が指標画像上で示す領域を設定することに相当する。本実施形態では、全ての指標は指標画像上で円形として写るとするので、入力すべき情報はこの円の面積とする。
【００６２】
図１０は、指標画像上で指標が写った場合に、全ての指標が写るべきサイズを入力するためのＧＵＩの表示例を示す図で、操作者はキーボード１８０やマウス１９０を用いて領域１００１に所望のサイズを示す数値（本実施形態では円の面積）を入力する。そして入力後、ボタン画像１００２を指示すると、ＣＰＵ１１０はこれを検知し、処理をステップＳ４０４に進め、それぞれの指標が指標画像上でステップＳ４０２で入力された面積の円でもって表示されるように、それぞれの指標の形状を求める（ステップＳ４０４）。
【００６３】
ステップＳ４０４における処理の詳細について説明する。図１１は、指標画像の一例を示す図である。同図に示す如く、画像上には４つの指標１１０１〜１１０４が写っているが、どれも視点との距離、位置姿勢関係が異なるため、サイズ、形が異なって写っている。これでは、例え指標を十分な大きさで作成したつもりであっても、画像上で指標と見なすための閾値を下回る為に、撮像装置位置姿勢推定に使えない可能性もある。また、撮像装置の視線方向と指標の設置される現実空間物体上の平面が正対していないかぎり、指標画像上の見かけの指標は歪んでしまう。撮像装置位置姿勢推定アルゴリズムにおいてほとんどの場合、指標の位置は指標画像における領域の重心で決定されることが多いが、この重心を領域から求める場合、歪んでいると誤差の原因となる。
【００６４】
本実施形態ではこのことに鑑み、それぞれの指標の形状を、全て同じサイズ、同じ形で指標画像上に写るように、予め求めておき、求めた形状で指標を作成し、現実空間に配置する。
【００６５】
図１２は、ステップＳ４０４で形状が決まったそれぞれの指標を現実空間中に配置した場合に、指標画像上に移る指標を示す図である。同図において１２０１から１２０４はそれぞれ指標画像上に写っている指標で、同図に示す如く、それぞれの指標は全て同じサイズ、形で写っている。
【００６６】
以下では、ステップＳ４０４における処理の詳細について説明する。
【００６７】
図１３は、指標画像上で所望のサイズの円で表示される指標と撮像装置との関係を示す図である。同図においてＰｅは撮像装置（視点）、ｄは視点Ｐｅの視線、ｍは指標画像面、Ｃは指標画像面ｍの中心位置で、指標画像面ｍと視線ｄとの交点位置でもある。Ｗは所望のサイズの円で表示されている指標の表示領域、Ｍｃは表示領域Ｗの中心位置、Ｍｒは表示領域Ｗの半径、Ｐ１，Ｐ２，、、Ｐｎはそれぞれ、表示領域Ｗの円周（輪郭）上に均等に配置された有限個数の点を示す。この点の数については特に限定するものではないが、多いほど最終的に得られる「指標の形状」をより正確に求めることができる。
【００６８】
ＣＰＵ１１０は先ず、視点ＰｅとＰ１，Ｐ２，、、Ｐｎのそれぞれとを結ぶ線分ＰｅＰ１、ＰｅＰ２、、、ＰｅＰｎを求める。
【００６９】
図１４は、線分ＰｅＰ１、ＰｅＰ２、、、ＰｅＰｎのそれぞれを延長した場合に、現実空間モデルと生ずる交点を示す図である。同図においてｐはこの交点の存在するポリゴンを示す。
【００７０】
そして、第１の実施形態で用いた「線分と現実空間モデルとの交点を求める方法」を用いれば、線分ＰｅＰ１と現実空間モデル（同図ではポリゴンｐ）との交点はＰ１’、線分ＰｅＰ２と現実空間モデルとの交点はＰ２’、、、線分ＰｅＰｎと現実空間モデルとの交点はＰｎ’として求めることができる。そして、Ｐ１’、Ｐ２’、、、Ｐｎ’を順に繋ぐと、同図ｍ’で示す領域が得られる。この領域が、領域Ｗを現実空間に投影した領域に相当するものである。また、この領域ｍ’の中心Ｍｃ’は、Ｍｃを現実空間中に投影した位置にあるものである。このように、指標画像上における点を現実空間中に投影する処理については第１の実施形態で説明しているので、これに関する説明は省略する。
【００７１】
よって、現実空間中にＰ１’、Ｐ２’、、、Ｐｎ’に相当する点を設け、それぞれの点を順に繋ぐことで得られる領域ｍ’を指標として用いれば、この指標は指標画像上では領域Ｗとして写る。
【００７２】
このような処理をその他の指標についても同様にして行うことで、それぞれの指標が領域Ｗと同様の形状でもって指標画像上に写るように、それぞれの指標の形状を求めることができる。
【００７３】
従ってステップＳ４０４では、表示装置１７０の表示画面上に表示されている仮想空間画像上の指標アイコンの位置にステップＳ４０２で指示された面積を有する円領域を設定し、この円領域の円周上に複数点を設定し、視点の位置から円領域の円周上に設定したそれぞれの点に向かう直線と現実空間モデルとの交点を求める。求めたそれぞれの交点の位置データは、この指標アイコンが示す指標の形状データである。
【００７４】
なお、図１５に示すように、Ｍｃ’を通る水平線、鉛直線のｐへの射影ｈｌｉｎｅおよびｖｌｉｎｅ、ｈｌｉｎｅおよびｖｌｉｎｅと指標輪郭の射影との交点Ｐｖ１’、Ｐｖ２’、Ｐｈ１’、Ｐｈ２’を計算し、図１６に示すように指標の印刷画像上に印字すれば正確な姿勢で指標を設置することが可能である。
【００７５】
図９に戻って、ステップＳ４０４で求めたそれぞれの指標の形状を示すデータを保存する旨の指示がキーボード１８０やマウス１９０によって入力された場合には、ＣＰＵ１１０はこれを検知して処理をステップＳ４３０を介してステップＳ４３２に進め、ＨＤＤ１３０に保存する（ステップＳ４３２）。なお、保存するのはここでは位置データそのものであるが、これに限定するものではなく、上記説明の場合には領域ｍ’を特定するデータであれば、その他の情報であっても良い。
【００７６】
よって、得られた形状データを用いて指標を作成する場合には、形状データが示す点群の位置データを用いて重心位置、重心位置を通る水平線、鉛直線を印した指標の画像を作成し、これを紙に印字したものを、計算された位置姿勢に設置してやれば良い。
【００７７】
また、全ての指標が均等の大きさでもって指標画像上に表示されるので、指標画像から指標らしきものが検出されても、この均等の大きさ以下であれば指標ではないと判断することができ、画像にノイズが付加されていても、問題なく対応することができる。
【００７８】
なお、本実施形態では指標の形状は円形であるとして説明したが、円形に限定するものではない。また、本実施形態では指標画像上に写る指標の表示サイズの入力を数値入力でもって行うようにしたが、これに限定するものではなく、例えば、仮想空間画像上において指標アイコンの位置を含む領域を「指標が写る領域」として直接マウス１９０等でもって指定するようにしても良い。
【００７９】
［第３の実施形態］
第１，２の実施形態では、撮像装置の位置姿勢が固定されているとして、指標の配置位置やその形状を求めていた。これにより、撮像装置の位置姿勢が固定されている場合には、その位置姿勢推定の精度を高めることができた。
【００８０】
本実施形態では撮像装置がある範囲内でもって位置姿勢を変更する場合であっても、この撮像装置の位置姿勢推定精度を均一にする。なお、本実施形態で用いるコンピュータについては第１の実施形態と同じものを用いる。
【００８１】
なお、本実施形態では撮像装置の位置姿勢可動範囲については説明を容易にするために、連続値ではなく離散的な有限の値（図１８に示すように、３組の位置姿勢（位置：Ｅｉ（ｉ＝１，２，３）、姿勢ＥｉＰ（ｉ＝１，２，３））の場合について説明する。
【００８２】
なお、上述した場合は明らかに離散値であるが、位置Ｅｉ（ｉ＝１，２，３，，，ｎ）姿勢ＥｉＰｊ（ｉ＝１，２，３，，，ｎ，ｊ＝１，２，３，，，ｍ）として、ｎ、ｍを十分大きな数にすれば離散間隔が小さくなり、実質的には連続的な可動範囲で位置姿勢推定精度を均一にすることが可能である。
【００８３】
図１７は、撮像装置がある範囲内でもって位置姿勢を変更する場合であっても、この撮像装置の位置姿勢推定精度を均一にする為に行う処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１１０に実行させるためのプログラムやデータはＨＤＤ１３０に保存されており、これは必要に応じてＣＰＵ１１０による制御に従って適宜メモリ１２０にロードされるので、ＣＰＵ１１０がロードされたプログラムやデータを用いて処理を行うことで、本コンピュータは以下説明する各処理を実行することになる。
【００８４】
先ず、上記ステップＳ３１０における処理と同様にして、現実空間モデルのデータをメモリ１２０にロードする（ステップＳ４１０）。次に、図４に示すようなＧＵＩを用いて、撮像装置の位置の入力を受け付ける（ステップＳ４１４）。例えば、操作者がアイコン２１０の位置を所望の位置に移動させ、そこでキーボード１８０やマウス１９０の所定のボタンを押下すると、ＣＰＵ１１０はこれを検知して、そのときの撮像装置の位置を示すデータをメモリ１２０に登録する。このような処理を複数回行えば、メモリ１２０には撮像位置を示すデータが複数個登録されていることになる。
【００８５】
次に、操作者はこのＧＵＩにおいて、撮像対象とする点を１つ指示するので、ＣＰＵ１１０は、ステップＳ４１４で設定したそれぞれの撮像位置からこの１点を見るための姿勢を計算し、計算したそれぞれの姿勢を示すデータをメモリ１２０に登録する（ステップＳ４１５）。以上のようにして複数組の撮像位置姿勢をメモリ１２０に登録するのであるが、その登録形態については特に限定するものではない。
【００８６】
本実施形態ではメモリ１２０には、撮像装置の位置の可動範囲Ｅｉ（ｉ＝１，２，３）、姿勢の可動範囲ＥｉＰ（ｉ＝１，２，３）が登録されたことになる。
【００８７】
次に、ＣＰＵ１１０は、それぞれの位置姿勢から見える現実空間モデルの画像（仮想空間の画像）を生成し、表示装置１７０の表示画面上に表示する（ステップＳ４１６）。図１９はそれぞれの位置姿勢から見える現実空間モデルの画像Ｖ１，Ｖ２，Ｖ３を示す図で、それぞれの画像Ｖ１〜Ｖ３は、表示装置１７０の表示画面上に一覧表示される。
【００８８】
次に、操作者は、それぞれの画像上に、第１の実施形態で説明した操作方法でもって、指標アイコンを配置したり、移動させたり、削除したり等の操作を行うことができるので、ＣＰＵ１１０はこの操作を受け付け、それぞれの指標アイコンの位置データをメモリ１２０内に管理する（ステップＳ４１８）。
【００８９】
そして、ステップＳ４１８でメモリ１２０に関している各指標アイコンの仮想空間画像上の位置に、指標アイコンを表示する（ステップＳ４２０）。
【００９０】
ここで、操作者が画像Ｖ１上に指標アイコンを配置したり、配置した指標アイコンの位置を移動させたりすると、ＣＰＵ１１０は上記ステップＳ３２４における処理と同様の処理を行い、この指標アイコンの画像Ｖ１上における位置に対応する、現実空間中の位置を求める（ステップＳ４１８）。そして、求めた位置を画像Ｖ２，Ｖ３のそれぞれの画像面に投影し、画像Ｖ２、Ｖ３内に投影される場合には、この投影された位置に、指標アイコンを表示する（ステップＳ４２０）。
【００９１】
即ち、１つの画像内に指標アイコンを配置した場合に、配置した指標アイコンに対応する現実空間中の位置が他の画像にも写り得る場合には、写る位置に指標アイコンを配置する。
【００９２】
これは指標アイコンを削除した場合についても同様で、１つの画像内で指標アイコンを削除すると、削除した指標アイコンの現実空間中における位置を求め、求めた位置をその他の画像の画像面に投影した場合に、画像内に投影される場合には、この投影された位置に表示されている指標アイコンを削除する。
【００９３】
図２０は、現実空間とそれぞれの画像Ｖ１〜Ｖ３との関係を示す図である。このように、ある位置姿勢Ｅ１，Ｅ１Ｐで撮像した画像上に設置した指標が、他の位置姿勢Ｅ２、Ｅ２Ｐ、Ｅ３、Ｅ３Ｐで撮像した画像でどの位置に見えるのかを確認することができる。
【００９４】
図１７に戻って、次に、仮想空間画像上における指標の設定を終了する旨の操作、例えば、マウス１９０をダブルクリックする操作を検知すると、処理をステップＳ４２２を介してステップＳ４２４に進めるが、検知していない限りはステップＳ４１８、Ｓ４２０の処理を繰り返す。
【００９５】
次に、それぞれの画像Ｖ１〜Ｖ３について、指標配置評価指数を求める（ステップＳ４２４）。指標配置評価指数は、画像内における指標のばらつきの度合いを示すものであり、画像内における指標アイコンの配置位置を（ｘk、ｙk）、ｋ＝１，２，、、ｎとすると、以下の式で定義される。
【００９６】
n
Ｄ＝Σ｛（ｘk−ｘl）＋（ｙk−ｙl）｝
k,l=1
この指標配置評価指数は画像内におけるそれぞれの指標アイコン同士の距離の総和値であり、Ｄの値が大きいほど、画像内に配置されたそれぞれの指標アイコンはばらついており、逆にＤの値が小さいほど、画像内に配置されたそれぞれの指標アイコンは密に配置されていることになる。
【００９７】
そして、計算した指標配置評価指数を画像の近傍位置に表示する（ステップＳ４２６）。即ち、画像Ｖ１について求めた指標配置評価指数Ｄ１を画像Ｖ１の表示位置近傍に表示し、画像Ｖ２について求めた指標配置評価指数Ｄ２を画像Ｖ２の表示位置近傍に表示し、画像Ｖ３について求めた指標配置評価指数Ｄ３を画像Ｖ３の表示位置近傍に表示する。
【００９８】
ここで、それぞれの指標配置評価指数Ｄ１〜Ｄ３同士の値が近い値である場合（換言すれば、それぞれの指標配置評価指数Ｄ１〜Ｄ３が所定の範囲内に収まっている場合）は、どの位置姿勢から見ても、画像内における指標の均一性があまり変わらないことを示している。
【００９９】
よって、操作者は表示装置１７０の表示画面上に表示されているそれぞれの指標配置評価指数Ｄ１〜Ｄ３を見て均一性を判断し、更なる均一性が必要であると判断した場合には所望の均一性を得るべく、指標アイコンを更に配置したり配置済みのものを移動させたりして、再度指標配置評価指数を得、これを見て判断するといった操作を繰り返す。
【０１００】
よって、ＣＰＵ１１０は、操作者に対して均一性を数値として報知すべく、それぞれの指標配置評価指数Ｄ１〜Ｄ３同士の差を計算して表示装置１７０の表示画面上に表示するようにしても良いし、それぞれの指標配置評価指数Ｄ１〜Ｄ３が所定範囲内に収まっている場合には、その旨を表示装置１７０の表示画面上に表示することで報知するようにしても良い。なお、報知形態についてはこのほかにも音声を用いたものも考えられ、特に限定するものではない。
【０１０１】
よってＣＰＵ１１０は、指標アイコンの配置や移動、削除を行う処理を行う限りは処理をステップＳ４１８〜ステップＳ４２６の処理を繰り返すのであるが、このような処理の終了する旨の操作がキーボード１８０やマウス１９０を用いて入力され、且つこの時点でメモリ１２０に管理されている全ての指標の位置データを保存する旨の指示が入力された場合には、これを検知し、処理をステップＳ４２８，Ｓ４４０を介してステップＳ４４２に進め、この時点でメモリ１２０に管理されている全ての指標の位置データをＨＤＤ１３０に保存する（ステップＳ４４２）。
【０１０２】
なお、本実施形態に係る処理は上記第２の実施形態と組み合わせても良く、例えば、１つの画像に対する指標の配置処理を様々な位置姿勢を有する視点からの画像に対して行った後、それぞれの画像に対して配置した指標の移動や削除、新たなる指標の配置など、指標の編集を行うようにしても良い。
【０１０３】
［第４の実施形態］
図２１は、本実施形態に係るコンピュータのハードウェア構成を示す図で、同図に示す如く、本実施形態に係るコンピュータには、図１に示した第１の実施形態に係るコンピュータの構成に画像読み取り部１４０を加え、この画像読み取り部１４０に撮像装置１６０を接続する。
【０１０４】
撮像装置１６０は複数のレンズを有するステレオカメラ装置であり、撮影と共に撮影した画像上の被写体までの距離を取得することが可能な装置である。この距離と画像から自動的に現実空間モデルデータを作成する。作成するための具体的方法としては一般的に利用されている技術を用いればよい。また本実施形態ではステレオカメラ装置を想定したが、これに限られるものではなく、レーザースキャナーのような装置を使ってもよいもののとする。
【０１０５】
このようにして生成された現実空間モデルデータを利用することで、現実空間モデルデータを作成する際に必要となる現実空間の実測、データ入力の工程を行う必要がなくなり、労力を軽減することができる。
【０１０６】
また、上記各実施形態によって、事前に指標設置位置、寸法、形状を検討することが可能になり、カメラ設置現場の占有を不要にする効果が得られる。これは特に、複数の業者が入り混じって一斉に作業を行い、設置及び設定のための時間制約が厳しい展示会やイベントなどの会場に設置する場合に有効である。
【０１０７】
［その他の実施形態］
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１０８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１０】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１１１】
【図１】本発明の第１の実施形態に係る画像処理装置として機能するコンピュータのハードウェア構成を示すブロック図である。
【図２】現実空間中に配置する指標の配置位置を求める処理のフローチャートである。
【図３】仮想空間中に配置する視点の位置姿勢を入力するためのＧＵＩの表示例を示す図である。
【図４】視点の位置姿勢をアイコンでもって設定するためのＧＵＩの表示例を示す図である。
【図５】視点の位置姿勢をアイコンでもって設定するためのＧＵＩの表示例を示す図である。
【図６】ステップＳ３１６で生成する仮想空間の画像の一例を示す図である。
【図７】仮想空間画像上で４カ所クリックした場合の表示例を示す図である。
【図８】仮想空間画像上における指標アイコンの位置に対応する現実空間中の位置を求める処理を説明する図である。
【図９】現実空間における指標の配置位置の算出に加え、指標の形状をも求める処理のフローチャートである。
【図１０】指標画像上で指標が写った場合に、全ての指標が写るべきサイズを入力するためのＧＵＩの表示例を示す図である。
【図１１】指標画像の一例を示す図である。
【図１２】ステップＳ４０４で形状が決まったそれぞれの指標を現実空間中に配置した場合に、指標画像上に移る指標を示す図である。
【図１３】指標画像上で所望のサイズの円で表示される指標と撮像装置との関係を示す図である。
【図１４】線分ＰｅＰ１、ＰｅＰ２、、、ＰｅＰｎのそれぞれを延長した場合に、現実空間モデルと生ずる交点を示す図である。
【図１５】Ｍｃ’を通る水平線、鉛直線のｐへの射影ｈｌｉｎｅおよびｖｌｉｎｅ、ｈｌｉｎｅおよびｖｌｉｎｅと指標輪郭の射影との交点Ｐｖ１’、Ｐｖ２’、Ｐｈ１’、Ｐｈ２’を示す図である。
【図１６】指標の印刷画像の一例を示す図である。
【図１７】撮像装置がある範囲内でもって位置姿勢を変更する場合であっても、この撮像装置の位置姿勢推定精度を均一にする為に行う処理のフローチャートである。
【図１８】３組の位置姿勢を説明する図である。
【図１９】それぞれの位置姿勢から見える現実空間モデルの画像Ｖ１，Ｖ２，Ｖ３を示す図である。
【図２０】現実空間とそれぞれの画像Ｖ１〜Ｖ３との関係を示す図である。
【図２１】本発明の第４の実施形態に係るコンピュータのハードウェア構成を示す図である。
【図１】
2006267026.tif 000003
【図２】
2006267026.tif 000004
【図３】
2006267026.tif 000005
【図４】
2006267026.tif 000006
【図５】
2006267026.tif 000007
【図６】
2006267026.tif 000008
【図７】
2006267026.tif 000009
【図８】
2006267026.tif 000010
【図９】
2006267026.tif 000011
【図１０】
2006267026.tif 000012
【図１１】
2006267026.tif 000013
【図１２】
2006267026.tif 000014
【図１３】
2006267026.tif 000015
【図１４】
2006267026.tif 000016
【図１５】
2006267026.tif 000017
【図１６】
2006267026.tif 000018
【図１７】
2006267026.tif 000019
【図１８】
2006267026.tif 000020
【図１９】
2006267026.tif 000021
【図２０】
2006267026.tif 000022
【図２１】
2006267026.tif 000023