"予め作業現場に設置されたラインマーカと、作業者が携行するカメラと、作業現場の画像と指示情報を表示して作業者に提供する表示装置と、前記カメラで作業現場を撮影して得た撮影画像中の前記ラインマーカの画像位置に基づいてカメラ作業者の位置と向きを計測し、作業者に対して提供する情報画像を作業現場の画像に重ねて前記表示装置に表示させる情報処理を行う情報処理装置を備えた現場作業支援システムにおけるラインマーカの配置方法において、前記ラインマーカは、前記カメラの位置の計測誤差が最小となるように、遺伝的アルゴリズムにより最適化配置処理を行うことで決定された位置に配置することを特徴とするマーカの配置方法。請求項1において、ラインマーカの位置の決定は、1画像処理によって得られるコードマークに含まれる誤差の大きさの推定し、21の結果と誤差計算手法及び遺伝的アルゴリズムを用いて、様々なラインマーカ配置における作業現場内のトラッキングの誤差の大きさを推定し、徐々に高い精度が期待できるラインマーカ配置を繰り返し計算により求めることにより行うことを特徴とするマーカの配置方法。拡張現実感技術を利用して作業者の作業を支援するためには、高精度のトラッキング作業現場における作業者の位置と方向をリアルタイムに計測する技術が必要である。現在のトラッキング技術として、作業現場にマーカを貼付しておき、作業者が携行するカメラで作業現場を撮影して得た撮影画像中のマーカに基づいてカメラ作業者の位置と向きを計測する技術が提案されているが、作業現場の全体で高精度にトラッキングを行うことは困難であり、計測精度が場所によって高低する。計測精度が低い状態で作業者に対して情報例えば、作業指示を提供すると、間違った作業指示となって作業ミスを誘発する恐れがある。本発明の目的は、現場作業支援システムにおけるトラッキング誤差の軽減を実現するのに好ましいマーカ配置方法を提案することにある。本発明は、予め作業現場に設置されたラインマーカと、作業者が携行するカメラと、作業現場の画像と指示情報を表示して作業者に提供する表示装置と、前記カメラで作業現場を撮影して得た撮影画像中の前記ラインマーカの画像位置に基づいてカメラ作業者の位置と向きを計測し、作業者に対して提供する情報画像を作業現場の画像に重ねて前記表示装置に表示させる情報処理を行う情報処理装置を備えた現場作業支援システムにおけるラインマーカの配置方法において、前記ラインマーカは、前記カメラの位置の計測誤差が最小となるように、遺伝的アルゴリズムにより最適化配置処理を行うことで決定された位置に配置することを特徴とする。具体的には、ラインマーカに対して、1画像処理によって得られるコードマークに含まれる誤差の大きさの推定し、21の結果と誤差計算手法及び遺伝的アルゴリズムを用いて、様々なラインマーカ配置における作業現場内のトラッキングの誤差の大きさを推定し、徐々に高い精度が期待できるラインマーカ配置を繰り返し計算により求める、ことにより実現する。本発明は、予め作業現場に設置されたラインマーカと、作業者が携行するカメラと、作業現場の画像と指示情報を表示して作業者に提供する表示装置と、前記カメラで作業現場を撮影して得た撮影画像中の前記ラインマーカの画像位置に基づいてカメラ作業者の位置と向きを計測し、作業者に対して提供する情報画像を作業現場の画像に重ねて前記表示装置に表示させる情報処理を行う情報処理装置を備えた現場作業支援システムにおけるラインマーカの配置において、トラッキング誤差を軽減するのに好ましいラインマーカの配置が可能となる。本発明は、予め作業現場に設置されたラインマーカと、作業者が携行するカメラと、作業現場の画像と指示情報を表示して作業者に提供する表示装置と、前記カメラで作業現場を撮影して得た撮影画像中の前記ラインマーカの画像位置に基づいてカメラ作業者の位置と向きを計測し、作業者に対して提供する情報画像を作業現場の画像に重ねて前記表示装置に表示させる情報処理を行う情報処理装置を備えた現場作業支援システムにおける前記ラインマーカの配置方法におけるトラッキング誤差の軽減を実現するために好ましいマーカ配置方法として、前記カメラの位置の計測誤差が最小となるように、遺伝的アルゴリズムにより最適化配置処理を行うことで決定された位置に配置することにより実現するものであり、具体的には、ラインマーカに対して、1画像処理によって得られるコードマークに含まれる誤差の大きさを推定し、21の結果と誤差計算手法及び遺伝的アルゴリズムを用いて、様々なラインマーカ配置における作業現場内のトラッキングの誤差の大きさを推定し、徐々に高い精度が期待できるラインマーカ配置を繰り返し計算により求めるように行うことにより実現する。図1は、現場作業支援システムの機能ブロック図である。作業現場作業する施設を撮影するカメラ1は、作業者が装着するAR機能付きのHMDHeadMountedDisplay2の頭上に該HMD2を装着した作業者の顔の向きの前方向作業者の視界方向を撮影するように取り付ける。この実施例は、表示装置をHMDを利用する例で説明するが、HMDに限らず、タブレットPCを採用しても実施することができる。また、カメラの向きは、ラインマーカの貼り付け位置との関係で、必ずしも作業者の顔の向きではなく、ラインマーカを天井面に貼り付けて設置するときは、カメラを上方向に向けてラインマーカを撮影してトラッキングを行うように変形することもできる。カメラ1は、図2に示すように、3台のカメラ1a,1b,1cを横に並べて作業現場を広角度に撮影することができるように構成する。この実施例ではカメラを3台使用する例で説明するが、2台あるいは4台で実施するように変形することができる。現場作業支援のための各種の情報処理を実行する情報処理装置携帯型のパーソナルコンピュータ3は、基本的には、前記カメラ1から撮影画像を入力して画像処理することによって作業現場における作業者の位置および向きを計測し、HMD2の表示画面に作業現場の撮影画像または予め記憶している設計情報に基づいて生成した作業現場のCG画像と指示情報を重ねて表示させる情報処理を行う。作業現場4には設計情報に基づいて各種の機器4141a,41b...が設置されており、その幾つかの機器41a,41f...にはラインマーカ55a,5b...が予め既知の位置に貼付される。このラインマーカ5は、カメラ1の撮影画像中の位置から該カメラ1の位置と向き作業者の位置と向きを算出するための画像情報として使用する。各ラインマーカ5は、図3に示すように、細長い帯状の基材51の表面に11ビットのコードマーク5252a~52kを長さ方向に所定の間隔で並べて設け、裏面を施設内の幾つかの機器41a,41f...の表面に貼付して設置するように構成する。通常は、所定の高さ位置に縦長垂直状態に設置するのが望ましい。この実施例では、ラインマーカ5は、コードマーク52が11ビットの例を示したが、このビット数は必要に応じて自由に変更することができる。ちなみに、ビット数を増やすと、誤り訂正できるビット数を増加したり、一度に利用できるラインマーカの数を増加させることができる。各ラインマーカ5に設けたコードマーク52は、30mm×30mmの正方形が0,30mm×60mmの長さ方向の長方形が1のビットデータを表し、上から7ビットをマーカIDビット、下4ビットを誤り訂正ビットとして使用する。図示のラインマーカ5のコードデータは、01010000101である。この実施例では、コードマーク52を30mm×30mmの正方形、30mm×60mmの長さ方向の長方形の例を示したが、ラインマーカ5を貼り付ける場所の大きさや、ラインマーカ5とカメラ1の間の平均距離によって、コードマーク52の大きさを、すべてのコードマーク52に対して統一して変更することができる。HMD2の表示画面21には、作業現場4の撮影画像CG画像21a上に指示情報画像21bを重ねた状態で表示する。図示の例は、作業現場に設置されている機器バルブ41g,41hの開放操作を指示し、機器バルブ41i~41kについては開放操作を禁止することを指示する指示情報を表示した状態である。このような画像表示は、情報処理装置3がカメラ1から入力した作業現場4の撮影画像情報中のラインマーカ5のコードマーク画像の画像位置情報に基づいて該作業現場4における作業者の位置および向きを計測し、作業現場4の撮影画像または予め記憶している設計情報に基づいて作業者の位置と向きを基準にして生成した作業現場のCG画像21aに該作業現場4の機器41に対して行う作業内容を予め設定して記憶させた作業指示情報作業指示情報画像や作業禁止指示情報画像21b1,21b2を読み出して重ねて表示する情報処理を行うことによって実現する。このように作業現場4の撮影画像中のラインマーカ5のコードマーク画像位置情報に基づいて該作業現場における作業者の位置および向きを計測するためには、各ラインマーカ5のコードマーク画像が正確な形状で撮影画像21a中に存在しなければならない。しかしながら、カメラ1のレンズの歪み補正が不十分である場合には、撮影画像を処理してラインマーカの位置を認識すると誤差が生じる。そして、この誤差を含んだ位置情報に基づいてカメラ1作業者の位置や姿勢を計算すると、当然に、誤差が発生する。しかも、誤差には、更に、作業現場4の機器41に対するラインマーカ5の取り付け誤差予め設定した取り付け位置情報と実際の取り付け位置間の誤差や計算処理上の誤差情報処理装置3が扱う数字の桁数の制約や求解の最適化計算を途中で止めることによる誤差などが加わる。この発明は、カメラ1のレンズの歪み、カメラの解像度が有限であること、ラインマーカの貼り付け位置の情報に誤りや誤差が含まれること、照明が不完全であること等に因る計測誤差に起因するトラッキング誤差により作業者HMD2に誤った指示情報を提供表示するのを防止するものである。図4を参照して、カメラ1のレンズ補正が不十分であるために発生する誤差について説明する。図4のaは、レンズ補正が完全な状態にあるカメラ1で撮影した撮影画像21a中のラインマーカ5のコードマーク画像列5aであり、各コードマーク画像53は、直線状に並んだ状態に写る。しかしながら、レンズ補正が不十分なカメラ1で撮影した撮影画像21a中のラインマーカ5のコードマーク画像列5bの各コードマーク画像54は、bに示すように、わん曲して並んだ状態に写る。この実施例1の現場作業支援システムは、このようなカメラ1のレンズの歪みに因る誤差トラッキング誤差の大きさを推定して作業者に提供する情報を制御編集する構成である。図5は、このような制御を実現するために情報処理装置3が実行する情報処理のフローチャートである。ステップS301カメラ1から作業現場施設内の撮影画像情報を取得する。ステップS302取得した撮影画像情報を画像処理することによりラインマーカ5のコードマーク画像列を認識し、各コードマーク画像の重心位置を求める。この処理は、撮影画像中に存在する総てのラインマーカ5のコードマーク画像列に対して行う。具体的には、画像を2値化してラベリングし、正方形,長方形領域を検索し、正方形と長方形の領域が直線状に所定数ラインマーカ5のコードマーク数並んでいるものを検索してコードマーク画像列ラインマーカ5として認識し、コードマーク画像列の正方形を0,長方形を1としてマーカIDを認識する。また、コードマーク画像列の両端のコードマーク画像の重心位置をコードマーク画像列ラインマーカ5の両端の両端の位置とするように行う。ステップS303カメラ1のレンズの予め分かっている歪みパラメータを用いてステップS302の処理結果を補正する。ステップS304撮影画像中のコードマーク画像列の位置からラインマーカ5とカメラ1の相対的な位置関係を計算トラッキングする。ステップS305ステップS304の処理で得たカメラ1の位置情報、カメラ1の各種のパラメータ、ラインマーカ5の貼付位置情報を用いて、コードマーク画像列が撮影画像のどの位置に写り込んでいるべきかを計算逆算する。図6aは、撮影画像中に写り込んでいるラインマーカ5のコードマーク画像列と認識した両端のコードマーク画像の位置を示し、bは、計算によって求められたコードマーク画像列の両端のコードマーク画像の写り込み予定位置を示している。ステップS306画像処理によって認識したコードマーク画像列の端の位置図6aとトラッキングの結果から逆算したコードマーク画像列の端の位置図6bの撮影画像上での距離diRPを求める。ここで、iは、コードマーク画像列の端の通し番号最大値は、コードマーク画像列の数の2倍になる、diRPの最大値をdMAXRPとする。ステップS307ステップS302で求めたラインマーカ5の各コードマーク画像の重心位置を用いてコードマーク画像列を直線で近似し、近似した直線とコードマーク画像列の2端間の距離diRVを求める。そして、diRVの最大値をdMAXRPとする。図7a~dは、先のステップにおいて撮影画像中のコードマーク画像列aから各コードマーク画像の重心を求め、そして、本ステップ307において、最小二乗法により各コードマーク画像の重心に最も近い直線を求め、次いで、近似した直線とコードマーク画像列の2端間の距離diRVを求める内容を図示したものである。ステップS308ステップS302で求めたラインマーカ5の各コードマーク画像の重心位置から求められる各コードマーク画像間の距離とラインマーカ5のマーカIDが示す該ラインマーカ5の実際の寸法から計算できる各コードマーク画像間の距離の差diRHを各コードマーク画像毎に求める図8参照。ここで、diRHの最大値をdMAXRHとする。ステップS309数1式を用いて、撮影画像から認識したコードマーク画像列の位置に含まれる可能性がある誤差の最大値最大誤差推定値dMAXを求める。ステップS310各トラッキング毎の予想されるトラッキング誤差の大きさを推定する。トラッキング誤差の大きさを推定する計算アルゴリズムは、後述する。ステップS311推定したトラッキング誤差の大きさに応じてHMDに表示して作業者に提供する情報を制御する。例えば、推定したトラッキング誤差が所定値よりも小さいときには作業指示作業禁止情報を表示して作業者に提供し、推定したトラッキング誤差が所定値以上のときには作業指示情報を表示せずにトラッキング誤差を減少させるための撮影画像情報を入力するためにカメラ1の向き作業者の顔の向きを変えるように指示する警告情報を表示する。前記ステップS310におけるトラッキング誤差の大きさの推定は、例えば、次ぎのような計算アルゴリズムによって行うことができる。この実施例において使用するトラッキング誤差の計算アルゴリズムにおいて、トラッキングの誤差を計算する手法は、以下の要件を満たす必要がある。1プラント内部で拡張現実感を利用する場合、想定する誤差よりも大きな誤差が発生する可能性がある場合、作業者に間違った指示を出してしまう可能性があり、危険である。そのため、トラッキングの誤差の計算方法は、90の確立で10mm以内の計測誤差の様な確率的な結果ではなく、最大誤差が13mmの様な絶対的な結果を計算できる必要がある。2ラインマーカの最適化では、様々なラインマーカ配置における誤差を繰り返し計算する必要がある。そのため、誤差の計算方法は、十分高速である必要がある。拡張現実感を利用するユーザ作業者は、発電プラントにおける作業を想定する。また、その支援の内容も、特定の作業現場へのナビゲーションや、配管に流れる流体の量や種類の指示等、プラント設備を眺めた際の情報提示を想定する。この場合、作業者の頭の位置作業者が装着するカメラの位置は、1高さがほぼ一定作業者の身長程度である、2左右上下の首振り回転は頻繁に行うが、首を傾けることは希である、という特徴があると考えられる。そこで、この実施例1では、これらの特徴を利用して、トラッキング誤差の計算アルゴリズムを簡略化する。座標系と各種定義図9に座標系の定義を示す。スクリーン座標系の原点は、カメラ撮影画像の中心とし、x軸をカメラ撮影画像の左から右方向に、y軸を上方向とする。カメラ座標系の原点は、カメラの焦点位置とし、z軸方向をカメラの撮影視野方向、x軸とy軸をスクリーン座標と平行とする。カメラの位置姿勢は、6自由度のベクトルカメラの位置で3自由度、カメラの姿勢で3自由度で表現される。カメラとラインマーカコードマーク画像列を用いたトラッキングでは、1つのラインマーカから計算の基準となる特徴点を複数認識して利用する場合もあるが、この実施例1では、1つのラインマーカから1つの特徴点を認識するものと仮定し、特に断りが無い限り、以下ではラインマーカと特徴点は同義とする。Cをカメラの真の位置姿勢とし、Qii=1,2,..,nをラインマーカの3次元位置とする。nはカメラに写ったマーカの総数。今、Cの位置姿勢にあるカメラでラインマーカを撮影した時、カメラ撮影画像上で、位置Mii=1,2,..,nにラインマーカが写ったと認識されたとするMiは2次元ベクトル。この結果を用いてカメラの位置姿勢を推定した結果をCestとする。位置Miに、カメラの解像度が有限であること、レンズの補正が充分でないこと等が原因で、最大でΔの誤差が含まれているとする。この時、ラインマーカのカメラ撮影画像上での位置Mii=1,2,..,nが、下記式数2を満たす位置にくるカメラの位置姿勢Cの集合は、Cestのまわりのある程度の大きさを持った領域となる。この実施例1では、この領域をTERTrackingErrorRegionと呼ぶ。図10にTERの概念図を示す。カメラの真の位置Cは、このTERの領域の中に含まれるため、トラッキング誤差の最大値を求める計算アルゴリズムはTERの領域の中で、Cestから最も離れた点を求め、その点とCestの距離の差を求めるアルゴリズムである。誤差限界曲線の計算この実施例1において使用するトラッキング誤差の計算アルゴリズムでは、カメラが移動する高さが作業者の身長でほぼ変化せず、左右上下の回転のみを行うという仮定のもと、以下の流れでTERを求める。1画像処理により認識されたラインマーカのすべての2個の組み合わせに関し、ラインマーカのカメラ撮影画像上でのx座標がそれぞれ、x1±△、x2±△の範囲内に常に入るカメラの位置姿勢の集合の境界誤差限界曲線と呼ぶを求める。2画像処理により認識されたすべてのラインマーカに関し、ラインマーカのカメラ撮影画像上でのy座標がy±△の範囲内に常に入るカメラの位置姿勢の集合の誤差限界曲線を求めるyはカメラが真の位置にあるときにカメラ撮影画像上に写るラインマーカのy座標。3前記1と2で求められた誤差限界曲線で囲まれる領域をTERとする。以下の説明では、n個のラインマーカがカメラで撮影され、その位置が認識されたと仮定するnの値は3以上とする。x座標に関する誤差限界曲線の計算図11において、点PAおよび点PBをラインマーカQAxa,ya,zaおよびQBxb,yb,zbのx-z平面上への射影点とする。点Aを線分CPAとカメラスクリーンのx軸との交点とし、点Bを線分CPBとカメラスクリーンのX軸との交点とする。点A,A1,A2,B,B1,B2は全てカメラスクリーンのX軸上にあるとし、∥A1A∥=∥AA2∥=∥B2B∥=∥BB1∥=△とする。このとき、ラインマーカのカメラ撮影画像上での真の座標x座標は、点A1と点A2の間および点B1と点B2との間にくる。すなわち、以下の式を満たす位置姿勢Cが形成する領域の中に、カメラの真の位置姿勢Cが含まれる。ここで、α2=∠A2CB2およびα1=∠A1CB1である。これらの2つの角度は、以下の4つの式を計算することにより求めることができる。ここで、Dは、カメラスクリーンの中心、fはカメラのレンズの焦点距離である。∠PACPB=α1および∠PACPB=α2を満たす位置姿勢Cの集合は、図12に示すように円となる。従って、式数3を満たす位置姿勢Cの集合は、図12における灰色に塗られた領域となる。図12中のCircle1とCircle2の求め方は同じであるため、以下ではCircle1の求め方を示す。まず、Circle1の中心を求める。点FをCircle1上の点であり、∥PAF∥=∥PBF∥を満たすとする。また、Eを線分PAPB上の点とし、∥PAE∥=∥PBE∥を満たすとする。この時、線分EFは、線分PAPBの垂直2等分線となる。従って、線分EF上にCircle1の中心Oが存在する。ここで、∥OF∥=∥OPB∥=Rであり、∠PAFPB=α1であるためRはCircle1の半径、∠OFPB∠OPBF=α1/2が成り立つ。従って、以下の式によりCircle1の半径Rを求めることができる。線分PAPBとx軸のなす角はγ=atan/で計算でき、線分PAOとx軸のなす角はθ=-で計算できる。従って、Circle1の中心は以下の式数9,数10で計算できる。以上の方法で求められる円を以下ではX座標に関する誤差限界曲線と呼ぶ。y座標に関する誤差限界曲線の計算図13において、点PAを、ラインマーカQAのx-z平面上への射影点、点Aを線分CQAとスクリーンとの交点とする。点A1、A2を∥A1A∥=∥AA2∥=△を満たすスクリーン上の点とし、線分A1A2はスクリーンのy軸に平行であるとする。点Dをスクリーンの中心とする∥CD∥=f。点Eは点Aのx-y平面上への射影点である。y座標に関する誤差限界曲線の計算方法このとき、ラインマーカのカメラ撮影画像上での真のy座標は、点A1と点A2の間の間に来る。すなわち、以下の式を満たす位置姿勢Cが形成する領域の中に、カメラの真の位置姿勢Cが必ず含まれる。ここでβ2=∠A2CPAおよびβ1=∠A1CPAである、β2=∠QACPAおよび∠QACPA=β1を満たすCは共に点PAを中心とする円となり、その円の半径は∥QAPA∥ctanβ2および∥QAPA∥ctan∠β1で計算できる。ここでである。以上の方法で求められる円を以下ではy座標に関する誤差限界曲線と呼ぶ。TERからのトラッキング誤差の計算方法先に求めた全ての誤差限界曲線で囲まれる領域の中にカメラの真の位置が含まれる。そこで、総ての誤差限界曲線で囲まれる領域とカメラの真の位置との間で最も離れている点と、カメラの真の位置との距離を求めることができれば、トラッキングを実行する際に起こりうる誤差の最大値を求めることができる。図14に総ての誤差限界曲線で囲まれる領域TERを求める方法の概念図を示す。以下では説明を簡単にするために、カメラ撮影画像で認識されたラインマーカの数が3個の場合を説明する。ラインマーカの数がn個の場合は、ラインマーカの数が3個の場合の計算方法の内、円の交点を求める際の円の組み合わせの数が増えるだけである。図14に示すように、ラインマーカQA、QB、QCのカメラ座標系におけるx-z平面への射影点をそれぞれPA、PB、PCとする。図14に示すArea1は、ラインマーカQAおよびQBのx座標に関する誤差限界曲線に囲まれる領域であり、この領域内に真のカメラの位置姿勢が含まれる。QAおよびQC、QBおよびQCの組み合わせに関しても同様の領域を求める。Area2は、ラインマーカQAのy座標に関する誤差限界曲線に囲まれる領域であり、この領域内に真のカメラの位置姿勢が含まれる。QBおよびQCに関しても同様の領域を求める。以上により求められた領域この場合は合計6領域に共通して含まれる領域がTERとなり、この中に真のカメラの位置姿勢が含まれる。前述の様に、誤差を含んだラインマーカの認識位置を用いて求めたカメラの位置と、TER領域内で最も離れた位置の距離が、トラッキングを実行する際に起こりうる誤差の最大値となる。ここで、誤差を含んだラインマーカの認識位置を用いて求めたカメラの位置からの最も離れたTER領域内の位置は、必ず誤差限界曲線同士の交点の内の1つであるという性質を用いると、トラッキングを実行する際に起こりうる誤差の最大値を求めることができる。以上の流れを纏めると、認識されたラインマーカの総数がn個の場合、トラッキングを実行する際に起こりうる誤差の最大値を求めるためには、x座標に関する誤差限界曲線としてnC2×2個、y座標に関する誤差限界曲線として2n個の円を求め、それらの全ての円計n個の組み合わせに関して交点を求める必要がある。従って、トラッキングの誤差を求めるのに必要な計算量は、認識されるラインマーカの数の2乗に比例して大きくなるが、同時に認識されるラインマーカの総数は多い場合でも10程度であり、計算量としてはそれほど多くはならない。認識されるラインマーカの総数が10以上になる場合は、トラッキングに利用されないラインマーカが多くなるため非効率である。この場合は、作業現に貼り付けて設置するラインマーカの数を減らすべきである。次に、この実施例の適用例について、図17及び図18を参照して説明する。図17に示すように、10m×15mの部屋内に6本のラインマーカ長さ約60cm5を貼付して設置し、カメラDragonflyBWXGA,f=6.37mm1を1m間隔で格子状に移動2m~11mし、実際のカメラの位置手作業で計測とトラッキングの結果の差をトラッキング誤差として計算することにより、図18に示すような結果が得られた。ここで、施設作業領域内におけるラインマーカ配置の最適化について説明する。ラインマー力配置の最適化アルゴリズムラインマーカ配置の最適化アルゴリズムの目標は、拡張現実感の作業者がある領域内を移動する場合、ラインマーカの貼り付け位置を調整することにより、その領域内のトラッキングの精度を向上させることである。作業者が移動する領域とラインマーカを貼り付けることができる領域に関する情報を元に、直接、解析的な計算により最適なラインマーカ配置を求めることは、計算手法が非常に複雑になるため非常に困難である。そこで、この実施例では、遺伝的アルゴリズムを用いた適化繰り返し計算により、ラインマーカの貼り付け位置を求めることにした。その際、想定するトラッキング手法の応用先が、プラント内部での作業支援であることを考慮すると、ラインマーカを貼り付けることができる領域は、細長い配管の表面や壁や天井等の平面になると考えられる。そこで、ここでは、マーカを貼り付けることができる領域の形状を直線および平面の2種類とすることにした。染色体のコード化この実施例で使用する遺伝的アルゴリズムにおける個々の染色体は、環境に貼り付けるラインマーカの個数と同数の遺伝子を持ち、1つの遺伝子が、1つのラインマーカの位置情報を持つ。染色体Mtiは、で定義される。ここで、nは環境に貼り付けるラインマーカの個数、fは染色体の個体番号、tは世代番号である。すなわち、mtikは、t番目の世代として求められた、f番目のラインマーカ配置におけるk番目のラインマーカの貼り付け位置を表す。評価関数e=gx,Mを、ラインマーカ配置Mにおける位置姿勢xでのトラッキング誤差とする。この実施例では、この計算に前述したトラッキング誤差の計算方法を用いるが、そのためには、ラインマーカ配置、カメラの解像度、カメラのピクセルサイズ、レンズの焦点距離等の情報から、カメラにどのラインマーカが写っており、どのラインマーカが認識されるかを判断する必要がある。これは、カメラの視野と方向を解析的な計算で求め、ラインマーカの配置情報をもとにその視野内にラインマーカが入っているかどうかを調べることにより容易に判断できる。ただし、実際には、カメラの視野内にラインマーカが入っていても、カメラ画像上でのラインマーカの大きさが小さすぎる等の理由のために認識できない場合も起こりうるために、カメラとラインマーカの間の距離がある閾値以上の場合には、そのラインマーカが認識されないと判断する処理が必要である。ただし、以下では、説明を簡単にするために、カメラの視野に入ったラインマーカはその距離に関係なく、総て認識されるものとする。ラインマーカの配置を最適化するために遺伝的アルゴリズムを用いるにあたり、その評価関数は、最適化の基準に応じて設定するべきである。この実施例では、プラント内部で拡張現実感を利用する際のラインマーカの配置を最適化することを考えるが、その場含、作業者に提示する情報の正確性が問題になる。すなわち、トラッキングの精度が悪く、間違った位置や方向情報を作業者に提供してしまうと、ヒューマンエラーを誘発する原因となってしまうため、これは避けるべきである。従って、この実施例では、ラインマーカ配置最適化の1つの例として、作業者が移動する範囲内全体での最も大きい誤差の大きさを最小化することを今回の評価関数設定の目標とする。この様なラインマーカ配置の最適化の目標を定めた場合、本来は、作業者が移動する範囲内で起こりうる総ての位置姿勢に関してトラッキングの位置姿勢を評価し、その最大値を求めることが理想であるが、そのためには膨大な位置姿勢におけるトラッキング誤差の計算を繰り返す必要があり計算量が膨大になるために現実的ではない。そこでこの実施例では、予め定めた有限の位置姿勢に関してトラッキングの誤差を計算し、その結果の中の最大値を小さくする方向でラインマーカの配置を変化させる。すなわち、この実施例では、遺伝的アルゴリズムにおける評価関数を以下の式で定義する。ここで、xjはj番目のカメラの位置姿勢であり、npは評価に用いられる位置姿勢の総数である。この方法を用いると、予め選定された位置姿勢では、トラッキングの精度が上がり、それ以外の位置姿勢では、トラッキングの精度が下がる可能性がある。しかし、一般に、カメラに写るラインマーカの種類と数が同じである場合、隣り合う位置姿勢のトラッキングの精度は似た傾向になる傾向があり、予め選定された位置姿勢の周辺に関しても、トラッキングの精度が向上すると予想される。そのため、拡張現実感で支援する作業の特性や領域の配置に応じて、高いトラッキング精度が要求される領域の周辺で多くの位置姿勢を選定し、低いトラッキング精度で十分な領域では、少数の位置姿勢を選定すれば、目的の特性を持ったラインマーカ配置を得ることができると考えられる。ただし、この方法ではトラッキングの誤差の最大値は10mmであるのような精度を保証することはできない。従って、この実施例で提案する遺伝的アルゴリズムを用いたラインマーカの最適化手法を実用化する場合には、前述した様に、実際にトラッキングを行う際にも、ラインマーカの配置情報とトラッキングによって得られた位置姿勢を元に、前述のトラッキング誤差の計算アルゴリズムを実行し、誤差の大きさを推定し、その結果を基に情報提示をするかどうかを判断するべきである。初期化この実施例では、遺伝的アルゴリズムの第1世代として、染色体の遺伝子の数を、ラインマーカを貼り付けることができる領域の数と同数ラインマーカを配置可能な領域1つに対して1つのラインマーカを配置とし、各遺伝子にラインマーカを貼り付けることができる領域の範囲内でランダムに定められた位置情報を持たせる。再初期化この実施例では、初期化の際にラインマーカの初朗配置をランダムに定めるため、評価の対象となる位置姿勢の中で、カメラに十分な数のラインマーカが写らない位置姿勢ができる可能性がある。この場合、ラインマーカの初期配置を何回か繰り返し定め直すと、カメラに十分な数のラインマーカが写るようになる可能性もあるが、必ず十分な数のラインマーカが写るようになるとは限らない。そこで、この実施例では、初期化の際にカメラに十分な数のラインマーカが写らない位置姿勢ができた場合には、その位置姿勢でのカメラに写るように新しいラインマーカを1つ配置する位置は、ラインマーカを貼り付けることができる領域内からランダムに定める。この処理をこの実施例では再初期化と呼ぶ。この際、遺伝的アルゴリズムにおける染色体が持つ遺伝子の数は1つ増えることになる。ラインマーカを貼り付けることができる領域の制限が原因で、問題となる位置姿勢でのカメラに写るように新しいラインマーカを貼り付けることができない場合、目的とする領域でのトラッキングが実現できないと判断される。この場合は、ラインマーカを貼り付けることができる領域を新たに確保する必要がある。交叉交叉は一般に用いられる遺伝的アルゴリズムと同様、2つの親染色体をランダムに選択し、遺伝子のある一点で入れ替えることにより行うすなわち、hを1nの範囲内のランダムな整数とした場合、交叉は以下の式で表ざれる。突然変異この実施例における突然変異は、以下の式で表現される。ここで、hは1nの範囲内のランダムな整数であり、mt1ihは、h番目のラインマーカを貼り付ける新しい位置の候補予め設定されたラインマーカを貼り付けることができる領域の範囲内でランダムに選ぶである。選択この実施例における選択はルーレット選択を用いるすなわち、番目の染色体が選択される確率を以下の式で計算する。ここで、fMiおよびfMkは、i番目およびk番目の染色体の評価関数値、pは染色体の総数人口である。この実施例では、一般の遺伝的アルゴリズムと同様に、上記確率に応じて優秀な染色体を残し、優秀ではない染色体を削除する。遺伝的アルゴリズムの染色体総数と世代数の設定遺伝的アルゴリズムを実行するにあたり生成する染色体の総数は、環境に貼り付けられるラインマーカの総数に応じて決定するべきである。すなわち、1つのラインマーカに対してk個の位置の候補を評価する為には、ラインマーカの総数がn個の場合、最低nk個の染色体を生成するべきである。遺伝的アルゴリズムでは一般に、交叉を実行する世代数が多くなるほど、より適切な結果が得られる。しかし、非常に大きい世代数まで交叉させると、計算量が多くなり、結果を得るまでに要する時問が長くなる。どの世代で計算をうち切るべきかに関する詳しい議論はこの実施例では行わないが、実際の現場で拡張現実感を利用することを考えた場合、必ずしも最適なラインマーカ配置を求める必要はなく、現場で要求される精度を満たしたラインマーカ配置が求められれば最適でなくても良いとも考えられる。従って、遺伝的アルゴリズムで実行する世代数は、使用するコンピュータの性能や費やすことができる時問によっても変化するが、基本的には、評価関数で得られた値を元に、要求される精度のトラッキングを実現できるラインマーカ配置が求まったかどうかを各世代で判断し、既に求まっている場合には、そこで計算をうち切るという方針が適切であると考えられる。提案手法の試用とその結果この実施例で提案する遺伝的アルゴリズムを用いたラインマーカの最適化手法の効果を確認するために、シミュレーションベースの評価実験を行った。実験に用いた疑似プラント環境図15にこの評価実験で用いた疑似プラント環境を示す。この環境は大きさが奥行き8m、幅10m、高さ4mの直方体であり、ラインマーカを貼り付けることができる領域として、直線状の領域と平面状の領域の2種類の領域を設定した。これらの領域は、プラント内部に多数存在する配管の表面や、プラントの壁、天井、床等を想定している。表1に、この実験で想定したラインマーカを貼り付け可能な領域の種類と大きさ、位置等を示す。図15中、灰色の円がラインマーカ、ラインマーカから出る矢印をラインマーカの移動可能方向を示す。なお、ワールド座標系の原点を、図15における左手前の隅に設定し、右向きをx軸、上向きをy軸、手前方向をz軸とする。実際にトラッキングを実行する際には、画像処理によりラインマーカの位置と種類を認識する必要があるため、ラインマーカはある程度の大きさを持ち、互いに重なり合った配置はできない。そこで、この実験では、突然変異でラインマーカの新しい位置を生成する際に、ラインマーカ間の最小距離を50mmとする制限を加えた。表2に、この実験で評価関数を求める際に用いるカメラの位置姿勢を示す、図15における矢印の位置と方向が、カメラの位置姿勢を表している。カメラの位置姿勢は、8つの位置と各位置における3姿勢の計24位置姿勢で構成しており、プラント内部において近傍に点検すべき機器や配管がある等の理由により、高精度にトラッキングを行う必要がある位置姿勢であると想定する。しかし、実際にこれらの24位置姿勢のみにおけるトラッキングの誤差を小さくすることを目標に既述の遺伝的アルゴリズムを実行した場合には、局所的に高精度が実現され、その隣接する領域で低精度になるラインマーカ配置が求められてしまうため、この実施例では、遺伝的アルゴリズムの各世代で、トラッキング誤差を評価する位置姿勢を設定した24位置姿勢の周りで微少変化させることにした。すなわち、位置に関してx軸方向とz軸方向に100mm、姿勢に関して左右見回し方向に5度の範囲で評価する位置姿勢を毎世代で変化させた。表3に、実験で用いた遺伝的アルゴリズムの各パラメータを示す。カメラは解像度が1024x766pixels、レンズの焦点距離は3.94mm、ピクセルサイズは0.00465mmとし、△は0.5ピクセルとした。実験結果図16に、遺伝的アルゴリズムを用いたマーカ配置の最適化を200世代まで、20回実行した際の各世代におけるトラッキング誤差の最大値の平均値最良値最悪値を示す。今回の設定条件では、初期化を行った際に十分な数のラインマーカを撮影できない位置姿勢が生じたため、再初期化が2回行われ、最終的なラインマーカの個数は11個となった第1世代では、最も悪い場合で150mm程度あったトラッキング誤差の最大値が、50世代あたりから、50mm程度まで減少していることが確認できる。この実施例で提案するマーカ配置の最適化手法の実行速度に関して、1世代分の計算に要する時問は、Core2Duo266GHzを搭載したパソコンを用いた場合、1~2秒程度であった実行ソフトウエアはCを用いて開発した。表4に、最適化する前のラインマーカ配置第1世代および200世代におけるラインマーカ配置を示す。これを見ると、1ラインマーカ間の距離が長い方が精度が高い、2ラインマーカが直線状に並ぶと精度が低い、3ラインマーカ配置のz軸方向奥行き方向の距離が長い方が、精度が高い、ことが確認できる。実際にプラントでのラインマーカ配置の最適化に適用する際の注意点この実施例で提案する手法を、実際の原子力発電プラントでのラインマーカ配置の最適化に適用する際には、以下の点を注意する必要がある。1この実施例では、カメラのレンズの歪みは適切に補正されているという前提でラインマーカの最適化手法を提案している。なんらかの理由で、カメラのレンズの歪みを適切に補正することができない場合は、この実施例で提案する手法を適当して得られた結果は、参考資料として利用するべきである。2この実施例では、カメラ画像上でのラインマーカの認識誤差△は、既知であるとした。△は、ラインマーカのデザイン、照明条件等で異なることが予想され、実際に本研究で提案する手法を用いるためには、△を実測する必要がある。3この実施例では、ラインマーカの配置を最適化するにあたり、遺伝的アルゴリズムを実行する際の各種パラメータ計算を実行する世代数、突然変異の割合等として、実際にどのような値を用いるべきかの厳密な議論は行っていない。これらのパラメータは、最適化の収束速度や、最終的なトラッキング誤差の大きさに影響することが予想される。将来的には、これらのパラメータとして、どのような値を設定するべきかを検討することが望ましい。結論と今後の課題この実施例では広い範囲でトラッキングの誤差を小さくできるラインマーカ配置を求めることができる新しい手法の実現を目指し、カメラの解像度が有限であることに起因するカメラ画像上でのラインマーカの位直の認識誤差からトラッキングの誤差を計算するTECアルゴリズムと、遺伝的アルゴリズムを用いたラインマーカの最適化手法を提案した。原子力発電プラント内でのトラッキングをシミュレーションする評価実験により、提案する手法により、実用的な時間内でトラッキングの誤差を小さくできるラインマーカ配置を求めることができることを確認した。"