(58)【調査した分野】(Int.Cl.,DB名)
基点から対象の表面までの奥行きを計測して得た複数の三次元座標データによって構成された前記対象の三次元モデルを記憶し、それぞれ前記基点からの死角である奥行き未計測領域との境界に位置する前記三次元座標データとなる、前記基点からの向きが互いに隣接し且つ当該基点からの奥行きが所定値以上異なる手前データと奥データとのうち手前データは、前記対象のエッジが存在することを示すエッジ肯定値を付与されている三次元モデル記憶手段と、
前記三次元モデルを任意の位置姿勢にて模擬撮影する仮想カメラを設定する仮想カメラ設定手段と、
前記仮想カメラの撮影面にて、前記エッジ肯定値を有する三次元座標データの投影位置をエッジ画素とする仮想エッジ画像を生成する仮想エッジ画像生成手段と、
を備えたことを特徴とする三次元モデル処理装置。
対象の表面の位置を表す複数の三次元座標データによって構成され、前記対象の表面に前記三次元座標データが得られていない領域が存在する三次元モデルであって、前記三次元座標データはそれが表す前記位置に前記対象のエッジが存在する可能性の高さを表すエッジ存在度を付与されている三次元モデルを記憶する三次元モデル記憶手段と、
前記対象を撮影するカメラの位置姿勢を、前記エッジ存在度が所定値以上である前記三次元座標データを用いて求める校正手段と、
を備えたことを特徴とするカメラ校正システム。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態(以下実施形態という)として、監視カメラが設置された空間の三次元モデル(空間モデル)を利用して監視カメラを校正するカメラ校正システムの例を説明する。このカメラ校正システムには、上記空間を三次元計測した計測データから当該空間の空間モデルを生成し、また、当該空間モデルから任意視点のエッジ画像を生成する三次元モデル処理装置の例が含まれる。
【0020】
[カメラ校正システム1の構成]
図1はカメラ校正システム1の概略の構成を示すブロック図である。カメラ校正システム1は、三次元計測装置2、監視カメラ3、監視装置4及び三次元データ処理装置5からなる。
【0021】
三次元計測装置2は、監視カメラ3が設置された部屋を三次元計測して距離画像を取得すると共に、それと同期して部屋を撮影してRGB画像を取得し、部屋の距離画像およびRGB画像を含めた計測データを三次元データ処理装置5に出力する。例えば三次元計測装置2はRGBDカメラであり、投射したレーザー光が対象表面との往復にかかる時間から距離を計測するTOF(Time Of Flight)方式の距離センサ、および当該距離センサと同期して同一視野のRGB画像を撮影するカラーカメラを組み合わせた装置である。なお、カメラは濃淡画像を取得するモノクロカメラであってもよい。すなわち、三次元計測装置2は、計測位置(基点)から所定対象の表面までの奥行きを三次元計測して所定対象の三次元データを三次元データ処理装置5に出力し、好適にはさらに、三次元計測と同期して同一基点から所定対象を撮影し、所定対象の二次元画像を三次元データ処理装置5に出力する。
【0022】
監視カメラ3は校正対象のカメラである。例えば、複数の監視カメラ3がそれぞれ部屋の天井に設置され、天井から部屋を撮影し、監視画像と、予め付与されたカメラIDを監視装置4に出力する。また、監視カメラ3の校正時には監視カメラ3は監視画像とカメラIDを三次元データ処理装置5に出力する。
【0023】
監視装置4は三次元データ処理装置5から監視カメラ3の位置姿勢(撮影位置姿勢)を含むカメラパラメータを入力され、これを格納する。撮影位置姿勢は、実空間を模した世界座標系における監視カメラ3の撮影位置(光点位置)および撮影姿勢(光軸方向とその回転角)である。そして、この監視カメラ3の撮影位置姿勢を求める処理が校正である。
【0024】
また、監視装置4は監視カメラ3からの監視画像を解析して部屋内を移動する人物を追跡し、不審行動を検知する。不審人物を検知する際、監視装置4は校正されたカメラパラメータを基に監視画像から抽出した変化領域の実サイズなどを求めて変化領域が人によるものか否かなどの判定を行う。
【0025】
三次元データ処理装置5は例えば、PC(Personal Computer)などのコンピュータで構成される。三次元データ処理装置5は三次元計測装置2から入力された計測データを用いて空間モデルを生成する。また、三次元データ処理装置5は監視カメラ3から監視画像とカメラIDとを入力され、監視画像と空間モデルとを基に監視カメラ3を校正し、校正結果である監視カメラ3の撮影位置姿勢を含むカメラパラメータを、対応するカメラIDと共に監視装置4に出力する。カメラパラメータには、撮影位置姿勢の他に焦点距離、解像度(幅方向画素数、高さ方向画素数)、レンズ歪みなどが含まれる。これらのうち撮影位置姿勢以外は基本的に変動しない。そのため、撮影位置姿勢以外のカメラパラメータについては監視カメラ3の仕様を参照して得た値、或いは予めの計測により得た値を予め三次元データ処理装置5に記憶させておく。
【0026】
三次元データ処理装置5は計測データ入力部50、記憶部51、監視画像入力部52、制御部53、出力部54及びユーザーインターフェース部55を含む。
【0027】
計測データ入力部50は三次元計測装置2と制御部53とを接続する通信インターフェース回路であり、三次元計測装置2から計測データを入力され、これを制御部53に出力する。
【0028】
記憶部51はROM (Read Only Memory)、RAM (Random Access Memory)等の記憶装置であり、各種プログラムや各種データを記憶し、制御部53との間でこれらの情報を入出力する。
【0029】
監視画像入力部52は監視カメラ3と制御部53とを接続する通信インターフェース回路であり、監視カメラ3から撮影画像及びカメラIDを入力され、これらを制御部53に出力する。
【0030】
制御部53はCPU(Central Processing Unit)、DSP(Digital Signal Processor)、MCU(Micro Control Unit)等の演算装置を用いて構成される。制御部53は記憶部51からプログラムを読み出して実行することで後述する各手段として機能する。
【0031】
出力部54は制御部53と監視装置4とを接続する通信インターフェース回路であり、制御部53から監視カメラ3のカメラパラメータ及びカメラIDを入力され、これらを監視装置4に出力する。
【0032】
ユーザーインターフェース部55はキーボード、マウス、ディスプレイ等からなるユーザーインターフェース機器である。例えば、設置作業者などのユーザーにより使用され、計測データ中の床面領域を指定するなど各種パラメータの入力作業に用いられる。
【0033】
[空間モデル生成時の三次元データ処理装置5]
図2は三次元計測装置2から入力された計測データを用いて空間モデルを生成するときの三次元データ処理装置5の機能ブロック図である。記憶部51は空間モデル記憶手段510および計測パラメータ記憶手段511として機能する。また制御部53は座標変換手段530、エッジ存在度付与手段531として機能する。エッジ存在度付与手段531は変化点抽出手段532とエッジ存在度判定手段533とを含む。
【0034】
空間モデル記憶手段510は空間モデル、つまり三次元計測装置2の計測により得た所定対象の三次元モデルを記憶する三次元モデル記憶手段である。空間モデルは、座標変換手段530が変換した複数の三次元座標データ(ポイントクラウドなどと称される)、各三次元座標データと対応付けられた輝度データ、およびエッジ存在度付与手段531により各三次元座標データに付与されたエッジ存在度からなる。ここで、三次元座標データはその位置に物体表面が存在することを意味する。輝度データはその位置における物体表面の色や輝度を表す。エッジ存在度は対応する三次元座標データの位置にエッジが存在する可能性の高さを表す値であり、本実施形態ではエッジ存在度の値域を0.0以上1.0以下であると定義する。エッジ存在度についてはさらに後述する。
【0035】
計測パラメータ記憶手段511は三次元計測装置2の計測時の位置姿勢(計測位置姿勢)を含む計測パラメータを記憶する。計測位置姿勢は、実空間を模した世界座標系における三次元計測装置2の計測位置(光点位置)および計測姿勢(光軸方向とその回転角)で表される。計測位置姿勢は座標変換手段530により算出される。あるいは別途実測した計測位置姿勢をユーザーインターフェース部55から予め入力し、これらを記憶してもよい。
【0036】
計測パラメータには、計測位置姿勢の他に焦点距離、解像度(幅方向画素数、高さ方向画素数)などがある。計測位置姿勢以外は基本的に変動しないため、三次元計測装置2の仕様を参照して得た値、或いは予めの計測により得た値を予め記憶させておく。なお画角は焦点距離と解像度とから導出可能である。また、計測パラメータから計測時の投影面が導出できる。
【0037】
座標変換手段530は計測データ入力部50経由で三次元計測装置2から入力された計測データを世界座標系の三次元座標データに座標変換して空間モデル記憶手段510に記憶させる。また、座標変換手段530は計測データから計測時の三次元計測装置2の計測位置姿勢を算出し、算出した計測位置姿勢を計測パラメータ記憶手段511に記憶させる。
【0038】
座標変換処理の概略の手順は、(a)距離画像から計測位置を原点とするローカル座標系における三次元点群を計算し、(b)ローカル座標系に世界座標系の基準を設定して世界座標系における計測位置姿勢RTを推定し、(c)RTを使ってローカル座標系の三次元点群を世界座標系の三次元座標データに変換するというものである。以下、各手順を説明する。
【0039】
手順(a)では、次式に従い、まず各画素(x,y)の画素値すなわち奥行き値がdである距離画像(x,y,d)の座標系を三次元計測装置2の光点(計測位置)を原点としたローカル座標系の三次元点群(Xc,Yc,Zc)に変換する。
【数1】
【0040】
ただし、距離画像の中心画素位置を(cx,cy)とする。fは三次元計測装置2の焦点距離である。
【0041】
手順(b)では、計測位置姿勢RTを算出するために、ローカル座標系の三次元点群のうち床面である点をユーザインターフェース部55を用いて選択入力させ、この選択入力に基づいて計測位置直下の床面の座標値を算出する。これにより例えば、床面をXY平面、高さ方向をZ軸、床面上の計測位置直下点を原点とする世界座標系における計測位置姿勢RT(3×4の行列)を算出することができる。
【0042】
手順(c)では手順(b)で求めたRTを利用して次式に従い、ローカル座標系の三次元点群を世界座標系の三次元座標データ(X,Y,Z)に変換する。
【数2】
【0043】
さらに、座標変換手段530はRGB画像の各画素値を輝度データとして、各画素と対応する距離画像の画素の変換先の三次元座標データと対応付けて、空間モデル記憶手段510に記憶させる。
【0044】
図3は三次元計測装置2を用いた部屋600の計測の様子を示す模式的な斜視図である。部屋600は、例えば警備対象となる部屋であり、天井には校正対象の監視カメラ3が設置されている。また、部屋600には床601や机602が存在し、床601には模様603が形成されている。ちなみに後述するように、カメラ校正システム1は机602の縁などのエッジを監視カメラ3の校正の基準として利用する。
【0045】
監視カメラの設置作業者は三次元計測装置2を用いて部屋600を三次元計測する。三次元計測装置2は計測位置650及び計測姿勢651で表される計測位置姿勢にて、各画素が計測位置650から床601や机602の表面の複数点それぞれまでの奥行きを表す距離画像を出力する。さらに、三次元計測装置2は、部屋600を同一の計測位置姿勢にて撮影したRGB画像を出力する。ここで、三次元計測装置2は基本的に撮影位置652及び撮影姿勢653で表される監視カメラ3の撮影位置姿勢とは異なる計測位置姿勢にて部屋600を計測する。
【0046】
三次元計測装置2が出力する距離画像およびRGB画像が表す領域は
図3において白抜き表示した領域である。この領域を計測領域と呼ぶ。計測領域は部屋600の全体を網羅できず、オクルージョンが原因で未計測領域が生じる。
図3において網掛け表示した未計測領域は机602によるオクルージョンが原因で生じた領域であり、基点(計測位置650)からの死角である。また、
図3において斜線表示した画角外領域は三次元計測装置2の画角外であった領域である。
【0047】
図4は空間モデルのデータ例を示す模式図であり、例えば、三次元座標データ、輝度データ、エッジ存在度を対応付けたテーブル形式で空間モデル記憶手段510に記憶されている。ちなみに、
図4に示すデータはいずれも計測領域のデータである。1番目の三次元座標データは空間モデルにおいて座標(X1,Y1,Z1)に物体の表面があり、その色はRGB表色系での(R1,G1,B1)であり、エッジ存在度の値“1.0”は当該座標に机602の縁などのエッジが存在することを示す。2番目の三次元座標データも同様に、空間モデルにおいて座標(X2,Y2,Z2)に物体表面のエッジが存在し、その色が(R2,G2,B2)であることを示す。3番目の三次元座標データは空間モデルにおいて座標(X3,Y3,Z3)に物体の表面があり、その色はRGB表色系での(R3,G3,B3)であり、エッジ存在度の値“0.0”はそこにエッジが存在する可能性が小さいことを示す。
【0048】
さて、距離画像にて奥行きが変化する点は物体の縁などに生じる、カメラの校正などに有用なエッジである。しかし奥行き変化点が空間モデルにおいて未計測領域との境界に位置する三次元座標データであると実際にエッジが存在していても利用できない問題が生じる。しかも物体の縁の近傍はオクルージョンが生じやすいため、有用なエッジが失われやすい。例えば
図3の監視カメラ3が撮影する監視画像には未計測領域が含まれる。部屋600を計測した空間モデルを用いて監視カメラ3が撮影する監視画像を模擬すると、未計測領域の境界には机602の縁と床601の平面とが混在する。共に未計測領域との境界に位置する机602の縁の三次元座標データと床601の平面の三次元座標データとを識別できない限り机602の縁に現れる有用なエッジを棄てざるを得ない。本発明ではエッジ存在度付与手段531により当該有用なエッジが存在する三次元座標データを識別し、識別した三次元座標データにエッジが存在することを示すエッジ肯定値を付与することで、有用なエッジを活用可能な三次元モデルを生成する。
【0049】
エッジ存在度付与手段531は空間モデルを構成する複数の三次元座標データにエッジ存在度を付与する。既に述べたようにエッジ存在度は対応する三次元座標データの位置にエッジが存在する可能性の高さを表す値であり、三次元座標データがエッジの位置であるか否かを識別するための情報である。
【0050】
対象表面でのエッジは、物体の凹凸により特定視点からの奥行きが大きく変化する三次元座標データが示す位置、同じく物体の凹凸により法線方向が大きく変化する三次元座標データが示す位置、物体表面の模様等により輝度が大きく変化する三次元座標データが示す位置に現れる。エッジ存在度付与手段531は変化点抽出手段532及びエッジ存在度判定手段533により、これらの三次元座標データにエッジ肯定値を付与し空間モデル記憶手段510に記憶させる。
【0051】
変化点抽出手段532は空間モデルを構成する複数の三次元座標データの中から奥行き変化点、法線方向変化点および輝度変化点を抽出し、これらをエッジ存在度判定手段533に出力する。
【0052】
まず、奥行き変化点の抽出について説明する。変化点抽出手段532は、計測位置から計測した距離画像上で隣り合う画素間で奥行きの差を算出して予め定めたしきい値Tdと比較し、しきい値Td以上の奥行きの差が算出された画素と対応する三次元座標データを奥行き変化点として抽出する。距離画像上で隣り合う画素と対応する三次元座標データは、空間モデルにおいて基点(計測位置)からの向き(視線方向)が互いに隣接する三次元座標データである。例えば、距離画像に所定のエッジオペレータを適用して各画素の奥行きエッジ強度を算出し、奥行きエッジ強度が予め定めたしきい値Te以上の画素と対応する三次元座標データを奥行き変化点として抽出すればよい。TeはTd以上の奥行きの差を抽出し損なわない範囲に設定しておく。
【0053】
エッジオペレータにはソーベルオペレータ(Sobel Operator)を用いることができるが、ラプラシアンフィルタ(Laplacian Filter)など他の公知のオペレータを用いてもよい。
【0054】
本実施形態では三次元計測装置2から入力される距離画像を奥行き変化点の抽出に用いる。一方、三次元計測装置2からの距離画像を直接用いずに、空間モデルと計測パラメータとから上記距離画像を再現し、再現した距離画像から奥行き変化点を抽出してもよい。具体的には、空間モデルを構成する複数の三次元座標データそれぞれについて計測位置からの奥行きを算出し、算出した奥行きを計測パラメータが表す投影面に投影すれば上記距離画像を再現できる。なお、再現する距離画像の画角は三次元計測装置2の画角に合わせる。計測時には記憶部51に距離画像を格納せずに座標変換手段530の処理だけを行っておき、エッジ存在度付与手段531の処理は計測後の別時刻に実行できる。当該構成は記憶部51の容量や制御部53の処理能力が低いときに有効である。
【0055】
次に法線方向変化点の抽出について説明する。変化点抽出手段532は対象表面の形状を表す空間モデルにおいて対象表面の法線方向が予め定めたしきい値Tn以上の変化を示す三次元座標データを法線方向変化点として抽出する。まず変化点抽出手段532は、各画素とその周辺の三次元座標データとを用いて法線ベクトルを算出する。具体的には注目画素の三次元座標データをP0とし、注目画素の周辺の点(例えば右隣)の三次元座標データをP1、注目画素の周辺の他の点(例えば下隣)の三次元座標データをP2とする。注目画素の三次元位置から周辺の点までのベクトルをそれぞれVec1=P1−P0,Vec2=P2−P0とする。法線ベクトルはVec1とVec2との外積から算出することができ、法線ベクトルNorm=Vec1×Vec2となる。次に、変化点抽出手段532は各画素の法線ベクトルとその周辺画素の法線ベクトルとのなす角度を算出し、その総和がしきい値Tn以上である画素を法線方向変化点として抽出する。法線方向変化点は空間に存在する物体の凹凸部分にて抽出される。
【0056】
次に輝度変化点の抽出について説明する。変化点抽出手段532は計測位置姿勢にて空間モデルが表す空間を撮影したRGB画像から隣接画素との輝度差が予め定めたしきい値Ti以上である輝度変化点を抽出する。本実施形態では輝度差としてエッジ強度を利用する。変化点抽出手段532は上述のRGB画像の各画素に所定のエッジオペレータを適用して当該画素とその周囲画素とのエッジ強度を算出し、エッジ強度がしきい値Ti以上である画素を輝度変化点として抽出する。輝度変化点は空間に存在する物体の模様部分などにて抽出される。
【0057】
本実施形態では三次元計測装置2から入力されるRGB画像を輝度変化点の抽出に用いる。一方、三次元計測装置2からのRGB画像を直接用いずに、空間モデルと計測パラメータとから上記RGB画像を再現し、再現したRGB画像から輝度変化点を抽出してもよい。具体的には、空間モデルを構成する複数の三次元座標データについて対応する輝度データを計測パラメータが表す投影面に投影するレンダリング処理によりRGB画像を再現できる。なお、再現するRGB画像の画角は三次元計測装置2の画角に合わせる。計測時には記憶部51にRGB画像を格納せずに座標変換手段530の処理だけを行っておき、エッジ存在度付与手段531の処理は計測後の別時刻に実行できる。当該構成は記憶部51の容量や制御部53の処理能力が低いときに有効である。
【0058】
エッジ存在度判定手段533は変化点抽出手段532により抽出された奥行き変化点、法線方向変化点および輝度変化点それぞれについてエッジ存在度を判定し空間モデル記憶手段510に記憶させる。
【0059】
エッジ存在度判定手段533は奥行き変化点の三次元座標データのうち手前側の三次元座標データ(手前データ)に、エッジが存在することを示すエッジ存在度としてエッジ肯定値を付与し、奥側の三次元座標データ(奥データ)にはエッジ肯定値を付与しない。この取り扱いについて説明する。手前データと奥データとの間の奥行きのギャップからは、それら三次元座標データ間にて他の三次元座標データが得られず対象表面形状が計測されていない、つまり未計測領域となっていること、及び手前データと奥データとは当該未計測領域の境界に位置していることが推察される。しかしながら、手前データは三次元計測装置2から見て物体の凸部の先端位置にて抽出されるので、エッジの位置であるとすることができる。一方、奥データについてはそれが位置する対象表面とそれに隣接する未計測領域での対象表面とが平滑につながっている可能性を否定できないため、エッジの位置とすることは妥当ではない。よって上述のように手前データのみをエッジの位置とする。これにより未計測領域との境界に位置する三次元座標データのうち、実際に物体の外形部分のエッジが存在する三次元座標データに、エッジが存在することを示すエッジ存在度(エッジ肯定値)を付与でき、実際にエッジが存在する可能性が低い三次元座標データに、エッジが存在しないことを示すエッジ存在度(エッジ否定値)を付与できる。
【0060】
本実施形態では、エッジ肯定値を1.0、エッジ否定値を0.0とする。すなわち、エッジ存在度判定手段533は奥行き変化点の三次元座標データのうち手前側の三次元座標データに対するエッジ存在度を1.0と判定し、奥側の三次元座標データに対するエッジ存在度を0.0と判定し、判定したエッジ存在度を空間モデル記憶手段510に記憶させる。例えば、エッジ存在度判定手段533は、各奥行き変化点に注目し、計測位置姿勢にて計測された距離画像上で隣接する奥行き変化点に奥行き値がしきい値Td以上大きなもの、つまり奥側の三次元座標データが存在すれば、注目している奥行き変化点は手前側の三次元座標データであるとしてそのエッジ存在度を1.0と判定し、存在しなければエッジ存在度を0.0と判定する。
【0061】
次にエッジ存在度判定手段533は、法線方向変化点に対応する三次元座標データにエッジ肯定値を付与する。具体的には、エッジ存在度判定手段533は変化点抽出手段532により抽出された法線方向変化点のうち奥行き変化点ではない三次元座標データに対するエッジ存在度を1.0と判定し、判定したエッジ存在度を空間モデル記憶手段510に記憶させる。これにより物体の外形以外の凹凸部分にエッジ肯定値を付与できる。
【0062】
さらにエッジ存在度判定手段533は、変化点抽出手段532により抽出された各輝度変化点について、当該輝度変化点と対応する位置の三次元座標データにエッジ肯定値を付与する。具体的には、エッジ存在度判定手段533は、輝度変化点のうち奥行き変化点ではない三次元座標データに対するエッジ存在度を1.0と判定し、判定したエッジ存在度を空間モデル記憶手段510に記憶させる。これにより模様部分などにエッジ肯定値を付与できる。
【0063】
さらにエッジ存在度判定手段533は、上記以外の三次元座標データ、すなわち、奥行き変化点でなく、且つ法線方向変化点でもなく、且つ輝度変化点でもない三次元座標データに対するエッジ存在度を0.0と判定し、判定したエッジ存在度を空間モデル記憶手段510に記憶させる。
【0064】
ここで
図5及び
図6を用いて奥行き変化点に対するエッジ存在度の付与の例を説明する。
図5は、部屋600を計測位置650から計測した距離画像750の模式図であり、
図5(a)は距離画像750の全体を示し、
図5(b)は距離画像750の一部領域751を示している。また、
図6は部屋600を計測して得られた空間モデル800を上方からみた模式図である。
図6において網かけ部は未計測領域803であり、領域804は床601の平面を表す三次元座標データ群、また領域805は机602の上面を表す三次元座標データ群である。
【0065】
図5(a)は
図3に示したような位置関係で三次元計測装置2により取得した距離画像であり、その画角内には机602と床601が存在する。一部領域751は机の縁602を含む5×5画素の領域であり、小さい四角は画素を表し、当該四角内の数値は奥行き値を表している。奥行き値の単位はセンチメートル(cm)である。しきい値Tdは10cmとし、領域751の中では、領域752および領域753として示した奥行きエッジ強度の高い10画素が奥行き変化点として抽出される。領域752の画素754に対応する
図6の三次元座標データ801は机602側面の縁部分の1点を表しておりエッジが実在する三次元座標データであるが、これに対し領域753の画素755に対応する
図6の三次元座標データ802は床601の平面上の1点を表しておりエッジが実在しない三次元座標データである。これら三次元座標データ801,802は共に未計測領域803との境界に位置する。
【0066】
距離画像上で画素754について隣り合う画素との奥行き値を比較すると、しきい値Tdを超えて40cm大きい画素が存在するため、画素754は手前の奥行き変化点と判定され、画素754と対応する机602の縁部分の三次元座標データ801に対してエッジ肯定値1.0が付与される。
【0067】
他方、距離画像上で画素755について隣り合う画素との奥行き値を比較すると、画素755よりも大きな奥行き値の画素が存在しないため、画素755は奥の奥行き変化点と判定され、画素755と対応する床601の三次元座標データ802に対してエッジ否定値0.0が付与される。
【0068】
このようにして未計測領域803との境界に位置する三次元座標データのうち、エッジが実在する三次元座標データには、エッジ肯定値を付与でき、エッジが実在する可能性が低い三次元座標データには、エッジ否定値を付与できる。
【0069】
図7はエッジ存在度の例を説明するための部屋600の空間モデルの模式図である。
図7において、実線部(直線P1−P2,P1−P3,P1−P5,P2−P4,P3−P4,P3−P6,P4−P7,P5−P6,P6−P7部および直線群S)の三次元座標データにエッジ肯定値1.0が付与され、それ以外の三次元座標データにエッジ否定値0.0が付与されている。
【0070】
これら実線部のうち直線P1−P2,P1−P5,P2−P4およびP4−P7部の三次元座標データには手前の奥行き変化点としてエッジ肯定値1.0が付与されている。手前の奥行き変化点と判定されたこれらの三次元座標データは未計測領域(網掛け部)との境界に位置し、従来技術ではカメラ校正等に利用できなかったエッジであるが、本発明ではエッジ肯定値が付与されカメラ校正等に利用可能となる。
【0071】
実線部のうち直線P1−P3,P3−P4,P3−P6,P5−P6およびP6−P7部の三次元座標データには法線方向変化点または輝度変化点としてエッジ肯定値1.0が付与され、また、実線部のうち直線群Sには輝度変化点としてエッジ肯定値1.0が付与されている。
【0072】
[カメラ校正時の三次元データ処理装置5]
図8は部屋600の空間モデルを用いて、部屋600に設置された監視カメラ3を校正するときの三次元データ処理装置5の概略の機能ブロック図である。
【0073】
記憶部51は空間モデル記憶手段510として機能し、制御部53は実エッジ画像生成手段535、仮想カメラ設定手段536、仮想エッジ画像生成手段537およびエッジ画像照合手段538などとして機能する。
【0074】
実エッジ画像生成手段535は監視カメラ3(実カメラ)から入力された各監視画像(実画像)からエッジを抽出してエッジ画像を生成し、生成したエッジ画像を、対応するカメラIDと共にエッジ画像照合手段538に出力する。後述する仮想エッジ画像生成手段537が生成するエッジ画像と区別するために、ここで生成するエッジ画像を実エッジ画像と呼ぶ。
【0075】
実エッジ画像生成手段535は監視画像における周囲画素との輝度差が予め定めたしきい値Ti以上である輝度変化点に対応する画素に画素値“1”、それ以外の画素に画素値“0”を設定して実エッジ画像を生成する。本実施形態では輝度差としてエッジ強度を利用する。実エッジ画像生成手段535は監視画像の各画素にソーベルオペレータなど所定のエッジオペレータを適用しエッジ強度を算出する。
【0076】
仮想カメラ設定手段536は空間モデル内で部屋600を任意の位置姿勢にて模擬撮影する仮想カメラを複数設定し、設定した仮想カメラのカメラパラメータを仮想エッジ画像生成手段537に出力する。仮想カメラのカメラパラメ―タに含まれる位置姿勢は校正対象である監視カメラ3の撮影位置姿勢の候補である。カメラパラメータのうち位置姿勢以外の焦点距離、解像度、レンズ歪みなどは予め記憶させてある監視カメラ3の値を用いる。
【0077】
仮想カメラ設定手段536は空間モデルのXYZ座標系において原点から予め定めた微小間隔でX方向、Y方向、Z方向に仮想カメラの位置を移動させると共に仮想カメラの姿勢(ピッチ角、ヨー角、ロール角)を予め定めた微小間隔で変更して総当たり的に複数の仮想カメラを設定してもよいが、ユーザーインターフェース部55から予め監視カメラ3の設置仕様等に基づく設定範囲を入力し、当該範囲内に仮想カメラを設定することでカメラ校正の処理量を減ずることができる。例えば、設置仕様が鉛直下方に向けて天井設置する仕様であれば、天井高を予め入力しておくことで、仮想カメラのZ方向の移動範囲とピッチ角の変動範囲を大幅に狭くできる。また、設置仕様に定められたX座標、Y座標、Z座標、ピッチ角、ヨー角、ロール角を予め入力し、入力した各値を中心として予め定めた設置誤差範囲内に一定の微小間隔で複数の仮想カメラを設定してもよいし、入力した各値から離れるに従って広がる微小間隔で複数の仮想カメラを設定してもよい。
【0078】
仮想エッジ画像生成手段537は、仮想カメラ設定手段536が設定した各カメラパラメータが表す撮影面に部屋600の空間モデルを投影してエッジ画像を生成し、生成したエッジ画像をエッジ画像照合手段538に出力する。ここで生成するエッジ画像を仮想エッジ画像と呼ぶ。
【0079】
具体的には、空間モデルを構成する三次元座標データのうちエッジ存在度がエッジ肯定値“1.0”である三次元座標データを撮影面に投影し、エッジ存在度がエッジ否定値“0.0”である三次元座標データを投影しないことで、仮想カメラの撮影面にて、エッジ肯定値を有する三次元座標データの投影位置をエッジ画素とする仮想エッジ画像を生成する。なお、この際、Zバッファ法、Zソート法などの隠面消去法により、仮想カメラの撮影位置から見て手前の面の三次元座標データのみを投影する。
【0080】
距離画像の奥行き変化点にて上述のようにしてエッジ存在度を定義したことにより、当該奥行き変化点に対応して空間モデルに生じる未計測領域の境界にて実在するエッジを仮想エッジ画像に含ませることができる。
【0081】
ここで、計測視点からの距離よりも仮想視点からの距離の方が遠い三次元座標データにエッジが実在していても、当該仮想視点に監視カメラ3が存在した場合に得られる監視画像においては、当該三次元座標データと対応する画素位置の解像度が低下してエッジが抽出されない場合がある。そこで、空間モデルを構成する三次元座標データに対応付けられた輝度データを各仮想視点が表す撮影面に投影した投影像(レンダリング画像)からエッジ画像を生成し、仮想エッジ画像を、生成したエッジ画像と仮想エッジ画像との論理積画像に置き換えてもよい。特にこのとき、仮想視点からの距離が遠い三次元座標データについては、レンダリング画像の1画素に複数の三次元座標データが投影される。仮想エッジ画像生成手段537はこれら複数の三次元座標データに対応付けられた輝度データの平均値を投影先の画素に設定する。なお、レンダリング画像に投影される未計測領域には外れ値(例えばRGB値(255,255,255))を与えておけばよい。このようにするとレンダリング画像における未計測領域との境界から実在しないエッジが抽出され得るが、このエッジは仮想エッジ画像との論理積演算により消去されるため問題とならない。この輝度データの平均化によって、解像度の低下によるエッジの不抽出を再現でき、実エッジ画像と仮想エッジ画像の照合精度を向上させることができる。
【0082】
エッジ画像照合手段538は実エッジ画像生成手段535が生成した実エッジ画像と仮想エッジ画像生成手段537が仮想カメラのカメラパラメータごとに生成した仮想エッジ画像との類似度を算出し、実エッジ画像に類似する仮想エッジ画像を与える仮想カメラの位置姿勢を監視カメラ3の位置姿勢と決定する。例えばエッジ画像照合手段538は最も類似度が高い仮想カメラの位置姿勢を監視カメラ3の位置姿勢と決定する。
【0083】
ここで、類似度はエッジ位置の一致度合いに応じた値になるように定義される。例えば、エッジ位置の一致数を仮想エッジ画像のエッジ画素数、または実エッジ画像のエッジ画素数と仮想エッジ画像のエッジ画素数との和で除した値を類似度としてもよい。また例えば、仮想エッジ画像の各エッジ位置から実エッジ画像の最近傍エッジ位置までの距離、または実エッジ画像の各エッジ位置から仮想エッジ画像の最近傍エッジ位置までの距離を累積し、その累積値の逆数に応じた値を仮想エッジ画像のエッジ画素数、または実エッジ画像のエッジ画素数と仮想エッジ画像のエッジ画素数との和で除した値を類似度としてもよい。また、類似度に、輝度データの一致度合いを重み付け加算して類似度を補正してもよい。この場合、監視画像と上記レンダリング画像との間で対応する画素同士で画素値の正規化相関値を輝度データの一致度合いとすることができる。
【0084】
ちなみに、本発明に係る三次元モデル処理装置は、空間モデル記憶手段510、エッジ存在度付与手段531、仮想カメラ設定手段536および仮想エッジ画像生成手段537を含み、本発明に係るカメラ校正システムは、当該三次元モデル処理装置と、実エッジ画像生成手段535およびエッジ画像照合手段538とを含んで構成される。
【0085】
[空間モデル生成時のカメラ校正システム1の動作]
図9及び
図10は空間モデル生成時のカメラ校正システム1の動作の概略のフロー図である。三次元計測装置2が部屋600の計測を行うと、三次元計測装置2から三次元データ処理装置5に計測データが入力される。三次元データ処理装置5は入力された計測データに対して
図9及び
図10に示す一連の処理を行い、部屋600の空間モデルを生成する。
【0086】
計測データ入力部50は三次元計測装置2から計測データ、すなわち計測位置姿勢にて計測した距離画像と、同計測位置姿勢にて撮影したRGB画像とを取得し、これらを制御部53に入力する(ステップS10)。
【0087】
制御部53は座標変換手段530として動作し、座標変換手段530は、ステップS10にて取得した距離画像から計測位置姿勢を算出して、計測パラメータ記憶手段511として機能する記憶部51に記憶させる(ステップS11)。
【0088】
座標変換手段530は、ステップS11にて算出した計測位置姿勢を用い、ステップS10にて取得した距離画像の各画素を三次元座標データに変換して空間モデル記憶手段510として機能する記憶部51に記憶させる(ステップS12)。さらに、後段の処理のために距離画像の画素と三次元座標データとの対応関係も空間モデル記憶手段510に一時記憶させておく。また、座標変換手段530は、ステップS10にて取得したRGB画像の各画素値を、対応する距離画像の画素の変換先となった三次元座標データに輝度データとして紐づけて空間モデル記憶手段510に記憶させる。
【0089】
また、制御部53はエッジ存在度付与手段531として動作し、ステップS13〜S25の処理を行う。まず、エッジ存在度付与手段531の変化点抽出手段532は、ステップS10にて取得した距離画像の各画素におけるエッジ強度を算出して、エッジ強度がしきい値Te以上である画素を奥行き変化点として抽出する(ステップS13)。
【0090】
次にエッジ存在度付与手段531のエッジ存在度判定手段533は、変化点抽出手段532が抽出した奥行き変化点を順次、注目変化点に設定してエッジ存在度を付与するステップS14〜S18のループ処理を実行する。
【0091】
エッジ存在度判定手段533は、距離画像上で注目変化点の8近傍画素にて抽出された各奥行き変化点の奥行き値から注目変化点の奥行き値を減じて奥行き差を算出し、算出した各奥行き差をしきい値Tdと比較する(ステップS15)。8近傍点のうちに奥行き差がしきい値Td以上のものが1つでもあれば(S15にてYESの場合)、注目している奥行き変化点にはしきい値Td以上奥の隣接奥行き変化点があり、従って注目している三次元座標データは計測位置からの奥行きが所定値以上の変化を示す変化点の三次元座標データのうち手前側の三次元座標データであるとして、注目している三次元座標データに対応付けてエッジ存在度1.0を空間モデル記憶手段510に記憶させる(ステップS16)。
【0092】
このエッジ存在度付与により、未計測領域の境界に位置するものも含めて、計測位置姿勢にて観測される物体の外形部分の三次元座標データにエッジが存在することが識別可能となる。そしてエッジ存在度1.0が付与された空間モデルを用いることにより未計測領域の境界に位置するエッジを有効活用することが可能となる。
【0093】
一方、8近傍点のうちに奥行き差がしきい値Td以上のものが1つもなければ(S15にてNOの場合)、注目している三次元座標データは計測位置からの奥行きが所定値以上の変化を示す変化点の三次元座標データのうち奥側の三次元座標データであるとして、注目している三次元座標データに対応付けてエッジ存在度0.0を空間モデル記憶手段510に記憶させる(ステップS17)。
【0094】
このエッジ存在度付与により、未計測領域の境界に位置する三次元座標データのうちエッジが存在する可能性の低い三次元座標データが識別可能になる。
【0095】
エッジ存在度判定手段533は、全ての奥行き変化点を処理したか確認し(ステップS18)、未処理のものがある場合は(S18にてNOの場合)ステップS14に戻り、次の奥行き変化点の処理を行う。一方、全ての奥行き変化点を処理し終えた場合は処理をステップS19に進める(S18にてYESの場合)。
【0096】
変化点抽出手段532は、ステップS10にて取得した距離画像の各画素における法線方向を算出して各画素の法線方向とその周囲画素の法線方向との差を算出し、差がしきい値Tn以上の周囲画素が存在する画素を法線方向変化点として抽出する(ステップS19)。
【0097】
また、変化点抽出手段532は、ステップS10にて取得した二次元画像の各画素におけるエッジ強度を算出し、エッジ強度がしきい値Ti以上である画素を輝度変化点として抽出する(ステップS20)。
【0098】
エッジ存在度判定手段533は、変化点抽出手段532が抽出した法線方向変化点および輝度変化点を順次、注目変化点に設定してエッジ存在度を判定するステップS21〜S24のループ処理を実行する。ちなみに当該ループ処理では、同一の三次元座標データに対応する法線方向変化点および輝度変化点はひとつにまとめて処理すればよい。
【0099】
エッジ存在度判定手段533は、注目変化点が既に奥行き変化点として処理したものか否かを確認し(ステップS22)、奥行き変化点として処理していない場合は(S22にてNOの場合)、注目変化点として注目している三次元座標データに対応付けてエッジ存在度1.0を空間モデル記憶手段510に記憶させる(ステップS23)。
【0100】
一方、注目変化点がすでに奥行き変化点として処理したものである場合は(S22にてYESの場合)、ステップS23をスキップすることでステップS16,S17で付与したエッジ存在度を維持する。
【0101】
エッジ存在度判定手段533は、全ての法線方向変化点および輝度変化点を処理したか確認し(ステップS24)、未処理のものがある場合は(S24にてNOの場合)ステップS21に戻り、次の変化点の処理を行う。一方、全ての法線方向変化点および輝度変化点を処理し終えた場合は処理をステップS25に進める(S24にてNOの場合)。
【0102】
エッジ存在度判定手段533は、空間モデル記憶手段510に記憶されている空間モデルにおいて未だエッジ存在度が付与されていない三次元座標データを抽出し、抽出した三次元座標データにエッジ存在度0.0を対応付けて空間モデル記憶手段510に記憶させる(ステップS25)。
【0103】
複数の計測位置650・計測姿勢651にて計測データを取得する場合には、各計測データについて上述の処理を行うことができ、これにより未計測領域を減らし、より多くのエッジを抽出することが可能である。
【0104】
[カメラ校正時のカメラ校正システム1の動作]
図11はカメラ校正時のカメラ校正システム1の動作の概略のフロー図である。部屋600に設置された監視カメラ3が部屋600の撮影を行うと、監視カメラ3から三次元データ処理装置5に監視画像が入力される。三次元データ処理装置5は入力された監視画像に対して
図11に示す一連の処理を行い、監視カメラ3の校正を行う。
【0105】
監視画像入力部52は監視カメラ3から監視画像を取得し、これを制御部53に入力する(ステップS50)。制御部53は実エッジ画像生成手段535として動作し、ステップS50にて取得した監視画像の各画素にエッジオペレータを適用して実エッジ画像を生成する(ステップS51)。
【0106】
次に制御部53は仮想カメラ設定手段536として動作し、空間モデルの座標系に互いに位置姿勢の異なる複数の仮想カメラを設定する(ステップS52)。
【0107】
そして、制御部53は仮想エッジ画像生成手段537として動作し、ステップS52にて設定された各仮想カメラの撮影面に仮想エッジ画像を生成する(ステップS53)。具体的には、仮想エッジ画像生成手段537は空間モデル記憶手段510から部屋600の空間モデルを読み出し、ステップS52にて設定された各仮想カメラのカメラパラメータが表す撮影面にエッジ存在度1.0が付与された三次元座標データを投影して仮想エッジ画像を生成する。また同投影面に輝度データをレンダリングし、レンダリングした画像の各画素にエッジオペレータを適用してエッジ画像を生成し、仮想エッジ画像を、生成したエッジ画像との論理積画像に更新する。
【0108】
制御部53はエッジ画像照合手段538として動作し、ステップS51にて生成した実エッジ画像と、ステップS53にて生成した仮想カメラごとの仮想エッジ画像それぞれとの類似度を算出する(ステップS54)。エッジ画像照合手段538は、ステップS54にて算出した仮想カメラごとの類似度に基づいて、最大の類似度が算出された仮想カメラの位置姿勢を検出し、検出した仮想カメラの位置姿勢を監視カメラ3の位置姿勢と決定して監視カメラ3のカメラIDと共に出力部54に入力する(ステップS55)。
【0109】
ここで決定される監視カメラ3の位置姿勢は、空間モデルにおいて未計測領域の境界に位置するエッジをも利用して求めた高精度な推定結果となっている。
【0110】
出力部54は、監視カメラ3の位置姿勢とカメラIDを監視装置4に入力する。監視装置4は入力された監視カメラ3の位置姿勢を格納し、以降の監視処理にて利用する。
【0111】
[変形例]
(1)上記実施形態においては、エッジ存在度付与手段531がエッジ存在度としてエッジ否定値“0.0”またはエッジ肯定値“1.0”のいずれかの値を付与する例を示したが、エッジ肯定値として2種類以上のエッジ存在度を付与してもよい。その場合、エッジ存在度付与手段531は、例えば、奥行き変化点に対しては0.5、法線方向変化点に対しては0.8、輝度変化点に対しては1.0、法線方向変化点且つ輝度変化点である変化点に対しては0.8のエッジ存在度を付与する。そして、エッジ画像照合手段538は仮想エッジ画像のエッジ位置をエッジ存在度で重み付けて実エッジ画像との類似度を算出する。例えば、縁に丸みのある机などでは、奥行き変化点および法線方向変化点として検出される机の縁のエッジの位置が計測位置姿勢と撮影位置姿勢の違いによって微小にずれる。一方、輝度変化点として検出される平面上のエッジはこのようなずれは生じにくい。このように複数種類のエッジ肯定値を用いることで、より実際的なエッジ情報を三次元モデルに付与できる。
【0112】
(2)上記実施形態では、三次元モデルとして所定空間を計測して得た空間モデルを例示したが、三次元モデルは什器等の所定物体を計測して得た物体モデルであってもよい。
【0113】
(3)上記実施形態では、三次元座標データが三次元空間中の点を表すポイントクラウド形式の三次元モデルを例示したが、物体面の頂点座標の集合を含むメッシュモデル形式の三次元モデルであってもよい。その場合、例えば、任意の頂点座標のペアを三次元座標データとし(つまり直線単位の三次元座標データとし)、エッジ存在度付与手段531は当該三次元座標データに対してエッジ存在度を付与する。
【0114】
(4)上記実施形態においては監視カメラ3が1台の例を説明したが、監視カメラは2台以上でもよく、その場合は各監視カメラに上記例と同様の処理を繰り返せばよい。
【0115】
(5)上記実施形態においては、撮影位置姿勢が固定されたカメラを校正するカメラ校正システムを例示したが、本発明は、パン・チルト動作するカメラ、ロボット等の移動体に設置されたカメラ、人が手持ちしたカメラなど撮影位置姿勢が変動するカメラを校正するカメラ校正システムにも適用することができる。すなわち、これらのカメラを校正する場合は、撮影位置姿勢が変動した後の撮影画像が入力されるたびに校正を行えばよい。
【0116】
(6)上記実施形態では、エッジ存在度を付与した三次元モデルを投影して仮想エッジ画像を生成する例を示したが、エッジ存在度を付与した空間モデルは投影せずとも三次元データ間の位置合わせや照合の精度を向上させる効果を奏する。例えば、互いに異なる複数の計測視点から計測して得た空間モデル或いは物体モデルのそれぞれにエッジ存在度を付与し、これら複数の空間モデル或いは複数の物体モデルを、エッジが存在することを示すエッジ存在度が付与された三次元座標データを重視して位置合わせすれば、位置合わせ精度を向上させることができる。また例えば、所定物体を計測して得た物体モデルにエッジ存在度を付与して、該物体モデルと未知物体を計測して得た三次元データとを照合して物体認識を行う際に、エッジが存在することを示すエッジ存在度が付与された三次元座標データを重視して照合を行えば照合精度を向上させることができる。
【0117】
(7)上記実施形態では、仮想エッジ画像を利用してカメラを校正する例を示したが、当該仮想エッジ画像を利用して物体照合の精度を向上させることも可能である。例えば、所定物体を計測して得た物体モデルにエッジ存在度を付与して仮想エッジ画像を生成し、撮影画像から生成した実エッジ画像との照合を行えば、撮影画像に写っている物体が所定物体であるか否かを判定する精度を向上させることができる。