以下、本発明の実施の形態(以下実施形態という)として、監視カメラが設置された空間の三次元モデル(空間モデル)を利用して監視カメラを校正するカメラ校正システムの例を説明する。このカメラ校正システムには、上記空間を三次元計測した計測データから当該空間の空間モデルを生成し、また、当該空間モデルから任意視点のエッジ画像を生成する三次元モデル処理装置の例が含まれる。
[カメラ校正システム1の構成]
図1はカメラ校正システム1の概略の構成を示すブロック図である。カメラ校正システム1は、三次元計測装置2、監視カメラ3、監視装置4及び三次元データ処理装置5からなる。
三次元計測装置2は、監視カメラ3が設置された部屋を三次元計測して距離画像を取得すると共に、それと同期して部屋を撮影してRGB画像を取得し、部屋の距離画像およびRGB画像を含めた計測データを三次元データ処理装置5に出力する。例えば三次元計測装置2はRGBDカメラであり、投射したレーザー光が対象表面との往復にかかる時間から距離を計測するTOF(Time Of Flight)方式の距離センサ、および当該距離センサと同期して同一視野のRGB画像を撮影するカラーカメラを組み合わせた装置である。なお、カメラは濃淡画像を取得するモノクロカメラであってもよい。そして、三次元計測装置2による三次元計測と撮影とは少なくとも対象の共通部分を計測領域に含ませて、複数の計測位置姿勢にて行われる。すなわち、三次元計測装置2は、複数の計測位置姿勢にて所定対象を三次元計測して所定対象の三次元データを三次元データ処理装置5に出力し、さらに、三次元計測と同期して各計測位置姿勢にて所定対象を撮影し、各計測位置姿勢それぞれにて所定対象を撮影した二次元画像を三次元データ処理装置5に出力する。
監視カメラ3は校正対象のカメラである。例えば、複数の監視カメラ3がそれぞれ部屋の天井に設置され、天井から部屋を撮影し、監視画像と、予め付与されたカメラIDを監視装置4に出力する。また、監視カメラ3の校正時には監視カメラ3は監視画像とカメラIDを三次元データ処理装置5に出力する。
監視装置4は三次元データ処理装置5から監視カメラ3の位置姿勢(撮影位置姿勢)を含むカメラパラメータを入力され、これを格納する。撮影位置姿勢は、実空間を模した世界座標系における監視カメラ3の撮影位置(光点位置)および撮影姿勢(光軸方向とその回転角)である。そして、この監視カメラ3の撮影位置姿勢を求める処理が校正である。
また、監視装置4は監視カメラ3からの監視画像を解析して部屋内を移動する人物を追跡し、不審行動を検知する。不審人物を検知する際、監視装置4は校正されたカメラパラメータを基に監視画像から抽出した変化領域の実サイズなどを求めて変化領域が人によるものか否かなどの判定を行う。
三次元データ処理装置5は例えば、PC(Personal Computer)などのコンピュータで構成される。三次元データ処理装置5は三次元計測装置2から入力された計測データを用いて空間モデルを生成する。また、三次元データ処理装置5は監視カメラ3から監視画像とカメラIDとを入力され、監視画像と空間モデルとを基に監視カメラ3を校正し、校正結果である監視カメラ3の撮影位置姿勢を含むカメラパラメータを、対応するカメラIDと共に監視装置4に出力する。カメラパラメータには、撮影位置姿勢の他に焦点距離、解像度(幅方向画素数、高さ方向画素数)、レンズ歪みなどが含まれる。これらのうち撮影位置姿勢以外は基本的に変動しない。そのため、撮影位置姿勢以外のカメラパラメータについては監視カメラ3の仕様を参照して得た値、或いは予めの計測により得た値を予め三次元データ処理装置5に記憶させておく。
三次元データ処理装置5は計測データ入力部50、記憶部51、監視画像入力部52、制御部53、出力部54及びユーザーインターフェース部55を含む。
計測データ入力部50は三次元計測装置2と制御部53とを接続する通信インターフェース回路であり、三次元計測装置2から計測データを入力され、これを制御部53に出力する。
記憶部51はROM (Read Only Memory)、RAM (Random Access Memory)等の記憶装置であり、各種プログラムや各種データを記憶し、制御部53との間でこれらの情報を入出力する。
監視画像入力部52は監視カメラ3と制御部53とを接続する通信インターフェース回路であり、監視カメラ3から撮影画像及びカメラIDを入力され、これらを制御部53に出力する。
制御部53はCPU(Central Processing Unit)、DSP(Digital Signal Processor)、MCU(Micro Control Unit)等の演算装置を用いて構成される。制御部53は記憶部51からプログラムを読み出して実行することで後述する各手段として機能する。
出力部54は制御部53と監視装置4とを接続する通信インターフェース回路であり、制御部53から監視カメラ3のカメラパラメータ及びカメラIDを入力され、これらを監視装置4に出力する。
ユーザーインターフェース部55はキーボード、マウス、ディスプレイ等からなるユーザーインターフェース機器である。例えば、設置作業者などのユーザーにより使用され、計測データ中の床面領域を指定するなど各種パラメータの入力作業に用いられる。
[空間モデル生成時の三次元データ処理装置5]
図2は三次元計測装置2から入力された計測データを用いて空間モデルを生成するときの三次元データ処理装置5の機能ブロック図である。記憶部51は空間モデル記憶手段510および計測パラメータ記憶手段511として機能する記憶手段である。また制御部53は座標変換手段530、変化点対応付け手段531およびエッジ存在度付与手段532として機能する。
空間モデル記憶手段510は三次元計測装置2の計測により得た所定対象の空間モデル、つまり三次元計測装置2の計測により得た所定対象の三次元モデルを記憶する記憶手段である。空間モデルは、三次元計測装置2により計測され座標変換手段530が変換した複数の三次元座標データ(ポイントクラウドなどと称される)、各三次元座標データと対応付けられた輝度データ、およびエッジ存在度付与手段532により各三次元座標データに付与されたエッジ存在度からなる。ここで、三次元座標データはその位置に物体表面が存在することを意味し、複数の三次元座標データによって対象の表面形状を表す。輝度データはその位置における物体表面の色や輝度を表す。エッジ存在度は対応する三次元座標データの位置にエッジが存在する可能性の高さを表す値であり、本実施形態ではエッジ存在度の値域を0.0以上1.0以下であると定義する。エッジは、物体の凹凸や物体表面の模様等により輝度が大きく変化する三次元座標データが示す位置に現れる。エッジ存在度についてはさらに後述する。
計測パラメータ記憶手段511は三次元計測装置2の計測時の位置姿勢(計測位置姿勢)を含む計測パラメータを記憶する。計測位置姿勢は、実空間を模した世界座標系における三次元計測装置2の計測位置(光点位置)および計測姿勢(光軸方向とその回転角)で表される。計測位置姿勢は座標変換手段530により算出される。あるいは別途実測した計測位置姿勢をユーザーインターフェース部55から予め入力し、これらを記憶してもよい。三次元計測装置2の計測は複数の位置姿勢で行われ、計測パラメータ記憶手段511は各計測時の位置姿勢を記憶する。
計測パラメータには、計測位置姿勢の他に焦点距離、解像度(幅方向画素数、高さ方向画素数)などがある。計測位置姿勢以外は基本的に変動しないため、三次元計測装置2の仕様を参照して得た値、或いは予めの計測により得た値を予め記憶させておく。なお画角は焦点距離と解像度とから導出可能である。また、計測パラメータから計測時の投影面が導出できる。
座標変換手段530は計測データ入力部50経由で三次元計測装置2から入力された計測データを世界座標系の三次元座標データに座標変換して空間モデル記憶手段510に記憶させる。また、座標変換手段530は計測データから計測時の三次元計測装置2の計測位置姿勢を算出し、算出した計測位置姿勢を計測パラメータ記憶手段511に記憶させる。
座標変換処理の概略の手順は、(a)計測位置姿勢ごとに距離画像から計測位置を原点とするローカル座標系における三次元点群を計算し、(b)或る1つの計測位置姿勢のローカル座標系を基準座標系として複数の計測位置姿勢の三次元点群を基準座標系に統合し、(c)基準座標系に世界座標系の基準を設定して世界座標系における計測位置姿勢RTを推定し、(d)RTを使って基準座標系の三次元点群を世界座標系の三次元座標データに変換するというものである。以下、各手順を説明する。
手順(a)では、計測位置姿勢ごとに、次式に従い、まず各画素(x,y)の画素値すなわち奥行き値がdである距離画像(x,y,d)の座標系を三次元計測装置2の光点(計測位置)を原点としたローカル座標系の三次元点群(Xc,Yc,Zc)に変換する。
ただし、距離画像の中心画素位置を(cx,cy)とする。fは三次元計測装置2の焦点距離である。
手順(b)では、ローカル座標系の1つを基準座標系に定め、複数のローカル座標系を基準座標系に統合する。例えば計測位置姿勢α2のローカル座標系を、計測位置姿勢α1の基準座標系に統合するには、計測位置姿勢α1で計測した三次元点群と計測位置姿勢α2で計測した三次元点群とで共通する位置を計測した三次元点を複数個推定してそれらを対応付ける。そして、複数の対応付けから、計測位置姿勢α2のローカル座標系を計測位置姿勢α1の基準座標系に変換するための変換行列RT1を算出する。
手順(c)では、計測位置姿勢RTを算出するために、基準座標系の三次元点群のうち床面である点をユーザインターフェース部55を用いて選択入力させ、この選択入力に基づいて、基準座標系の計測位置直下の床面の座標値を算出する。これにより例えば、床面をXY平面、高さ方向をZ軸、基準に定めた計測位置直下の床面上の点を原点とする世界座標系における計測位置姿勢RT0を算出することができる。そして次式に従い計測位置姿勢RTを算出する。
RT=RT0・RT1
手順(d)では各計測位置姿勢について手順(c)で求めたRTを利用して次式に従い、当該計測位置姿勢でのローカル座標系の三次元点群を世界座標系の三次元座標データ(X,Y,Z)に変換する。
さらに、座標変換手段530はRGB画像の各画素の画素値である輝度データとして、各画素と対応する距離画像の画素の変換先の三次元座標データと対応付けて、空間モデル記憶手段510に記憶させる。
図3は三次元計測装置2を用いた部屋600の計測の様子を示す模式的な斜視図である。部屋600は、例えば警備対象となる部屋であり、天井には校正対象の監視カメラ3が設置されている。また、部屋600には床601や机602が存在し、床601には模様603が形成されている。ちなみに後述するように、カメラ校正システム1は机602の縁などのエッジを監視カメラ3の校正の基準として利用する。
監視カメラの設置作業者は三次元計測装置2を用いて部屋600を三次元計測する。三次元計測装置2は計測位置650a及び計測姿勢651aで表される第一の計測位置姿勢にて、各画素が計測位置650aから床601や机602の表面の複数点それぞれまでの奥行きを表す距離画像を出力すると共に、部屋600を第一の計測位置姿勢にて撮影したRGB画像を出力する。このときの計測を第一の計測と称する。
さらに、設置作業者が三次元計測装置2を移動させ、異なる計測位置姿勢にて部屋600を三次元計測する。このときの計測を第二の計測と称する。すなわち、三次元計測装置2は、計測位置650b及び計測姿勢651bで表される第二の計測位置姿勢にて、各画素が計測位置650bから床601や机602の表面の複数点それぞれまでの奥行きを表す距離画像を出力すると共に、部屋600を第二の計測位置姿勢にて撮影したRGB画像を出力する。ちなみに監視カメラ3は基本的に第一の計測位置姿勢および第二の計測位置姿勢とは異なる撮影位置652・撮影姿勢653にて部屋600を撮影する。
三次元計測装置2が出力する距離画像およびRGB画像が表す領域を計測領域と呼ぶ。計測領域は部屋600の全体を網羅できず、オクルージョンが原因で未計測領域が生じる。図3において白抜き表示した領域は第一の計測による計測領域である。また図3において網掛け表示した領域は第一の計測で生じた未計測領域であり、机602によるオクルージョンが原因で生じた第一の計測位置姿勢からの死角である。また、図3において斜線表示した領域は第一の計測において三次元計測装置2の画角外であった画角外領域である。
図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”はそこにエッジが存在する可能性が小さいことを示す。
さて、エッジは物体の縁などに生じる、カメラの校正などに有用な特徴点である。しかし空間モデルにおいて未計測領域との境界に位置する三次元座標データにエッジが存在していても利用できない問題が生じる。しかも物体の縁の近傍はオクルージョンが生じやすいため、有用なエッジが失われやすい。例えば図3の監視カメラ3が撮影する監視画像には第一の計測で生じた未計測領域が含まれる。部屋600を計測した空間モデルを用いて監視カメラ3が撮影する監視画像を模擬すると、未計測領域の境界には机602の縁と床601の平面とが混在する。共に未計測領域との境界に位置する机602の縁の三次元座標データと床601の平面の三次元座標データとを識別できない限り机602の縁に現れる有用なエッジを棄てざるを得ない。本発明では変化点対応付け手段531およびエッジ存在度付与手段532により当該有用なエッジが存在する三次元座標データを識別し、識別した三次元座標データにエッジが存在することを示すエッジ肯定値を付与することで、有用なエッジを活用可能な三次元モデルを生成する。
変化点対応付け手段531は各RGB画像から輝度変化点を抽出し、計測位置姿勢を用いて輝度変化点に対応する位置の三次元座標データを検出する。具体的には変化点対応付け手段531は各RGB画像において周囲画素との輝度差が所定値以上である輝度変化点を抽出し、計測位置姿勢を用いて輝度変化点と対応する位置の三次元座標データを検出し、検出した対応関係をエッジ存在度付与手段532に出力する。
ここで輝度変化点の抽出について説明する。本実施形態では輝度差としてエッジ強度を利用する。変化点対応付け手段531は第一の計測位置姿勢にて撮影したRGB画像の各画素に所定のエッジオペレータを適用して当該画素とその周囲画素とのエッジ強度を算出し、エッジ強度がしきい値Ti以上である画素を第一の輝度変化点として抽出する。同様に、第二の計測位置姿勢にて撮影したRGB画像の各画素に所定のエッジオペレータを適用して当該画素とその周囲画素とのエッジ強度を算出し、エッジ強度がしきい値Ti以上である画素を第二の輝度変化点として抽出する。
本実施形態では三次元計測装置2から入力されるRGB画像を輝度変化点の抽出に用いる。一方、三次元計測装置2からのRGB画像を直接用いずに、空間モデルと計測パラメータとから上記RGB画像を再現し、再現したRGB画像から輝度変化点を抽出してもよい。具体的には、空間モデルを構成する複数の三次元座標データについて対応する輝度データを計測パラメータが表す投影面に投影するレンダリング処理によりRGB画像を再現できる。なお、再現するRGB画像の画角は三次元計測装置2の画角に合わせる。計測時には記憶部51にRGB画像を格納せずに座標変換手段530の処理だけを行っておき、変化点対応付け手段531の処理は計測後の別時刻に実行できる。当該構成は記憶部51の容量や制御部53の処理能力が低いときに有効である。エッジオペレータにはソーベルオペレータ(Sobel Operator)を用いることができるが、ラプラシアンフィルタ(Laplacian Filter)など他の公知のオペレータを用いてもよい。
次に、複数の計測位置姿勢それぞれにて抽出される輝度変化点と三次元座標データとの対応関係の検出について説明する。第一の計測と第二の計測とで実空間の同じ位置を計測していても、量子化の影響により、両者で得られる三次元座標データは最大で1画素分だけずれる。このずれを考慮して対応関係を検出する。
ところで、各計測において撮影したRGB画像の画素と、当該計測において得た三次元座標データとは、座標変換手段530が各計測時の計測パラメータを用いて行った変換処理において既に1対1で紐づけられている、或いは変化点対応付け手段531がRGB画像を再現するために各計測時の計測パラメータを用いて行った投影処理により既に1対1で紐づけられている。次に示す対応関係の検出ではこの紐づけを活用する。
第一の計測位置姿勢にて撮影したRGB画像から抽出された輝度変化点に紐づけられている三次元座標データを特定する。そして、特定した三次元座標データを、第二の計測位置姿勢にて撮影したRGB画像に、第二の計測位置姿勢を含む計測パラメータを用いて投影し、投影先の画素が輝度変化点であるか確認する。
投影先の画素が輝度変化点であれば、投影先の画素と紐づけられている三次元座標データと投影元の三次元座標データの間の三次元距離を算出して、当該三次元距離が1画素分の誤差の範囲内であるかを確認する。そして、三次元距離が誤差の範囲内である場合に、投影元の三次元座標データおよび投影先の画素と紐づけられている三次元座標データのそれぞれに対して、第一の計測位置姿勢にて撮影したRGB画像の輝度変化点および第二の計測位置姿勢にて撮影したRGB画像の輝度変化点との対応関係を検出したことになる。
他方、投影先の画素が輝度変化点でなければ投影元の三次元座標データと輝度変化点の対応関係は検出されなかったことになる。
なお、上述した方法の代わりに、第一の計測位置姿勢を用いて各三次元座標データを第一の計測にて撮影したRGB画像に投影し、および第二の計測位置姿勢を用いて各三次元座標データを第二の計測にて撮影したRGB画像に投影して、投影先の画素が輝度変化点であるか否かを確認することによって、三次元座標データと輝度変化点の対応関係を検出してもよい。
エッジ存在度付与手段532は空間モデルを構成する複数の三次元座標データに輝度変化点との対応が検出された数に応じたエッジ存在度を付与する。すなわち、変化点対応付け手段531が検出した輝度変化点と三次元座標データとの対応関係を参照して、三次元座標データに輝度変化点と対応が検出された数に応じた高さのエッジ存在度を付与する。具体的には、三次元座標データごとに当該三次元座標データとの対応が検出された第一の輝度変化点および第二の輝度変化点の数を計数する。エッジ存在度付与手段532は、計数値が2以上である三次元座標データに対してはエッジ存在度を1.0と判定し、計数値が2未満である三次元座標データに対してはエッジ存在度を0.0と判定する。また対応関係が検出されなかった三次元座標データに対してはエッジ存在度を0.0と判定する。エッジ存在度付与手段532は、判定したエッジ存在度を空間モデル記憶手段510に記憶させる。これにより未計測領域との境界に位置する三次元座標データのうち、実際に物体の外形部分のエッジが存在する三次元座標データに、エッジが存在することを示すエッジ存在度を付与でき、実際にエッジが存在する可能性が低い三次元座標データに、エッジが存在しないことを示すエッジ存在度を付与できる。
図5および図6は上述した対応関係の例を示す模式図である。図5は部屋600を異なる計測位置姿勢で撮影したRGB画像の例を示す模式図であり、図5(a)のRGB画像750は第一の計測位置姿勢(計測位置650a、計測姿勢651a)にて撮影したものであり、図5(b)のRGB画像760は部屋600を第二の計測位置姿勢(計測位置650b、計測姿勢651b)にて撮影したものである。また、図6は、RGB画像750と空間モデル800との間での輝度変化点の対応関係、RGB画像760と空間モデル800の間での輝度変化点の対応関係を示した模式図である。図6(a)は各計測位置姿勢や輝度変化点などの位置関係を示す部屋600の空間モデルの模式的な斜視図であり、図6(b)は対応関係を表形式で表したものである。
図5(a)に示すRGB画像750の互いに隣接する画素751と画素752は輝度変化点として抽出される。このうち、図6(a)に示すように、画素751に対応する三次元座標データ801が表す位置には実際に机852の縁のエッジが存在する。一方、画素752に対応する三次元座標データ803が表す位置は実際には床851の平面上の位置でありエッジは存在しない。
RGB画像750上では隣り合う画素(751,752)どうしが輝度変化点として抽出されるが、図6(a)に示すように、空間モデル中で対応する三次元座標(801,803)は離れており、その間には第一の計測における未計測領域850が介在している。つまり第一の計測位置姿勢にて撮影したRGB画像750の輝度変化点と対応する三次元座標データには、その位置にエッジが存在するものとしないものが混在している。そして、空間モデル中での当該混在に係る三次元座標データの場所は第一の計測における未計測領域の境界である。
第二の計測位置姿勢を含む計測パラメータを用いて三次元座標データ801をRGB画像760に投影する。投影先は画素761となる。画素761には机852の縁が写っており、画素761は輝度変化点として抽出される。画素761と紐づけられている三次元座標データ802は三次元座標データ801と同じく机852の縁を計測したデータであり、三次元座標データ802と三次元座標データ801との間には1画素分の誤差に満たない三次元距離が算出される。この結果、三次元座標データ801と802とに対して画素751および画素761との対応関係が検出される(図6(b)参照)。つまり三次元座標データ801と802に対してはそれぞれ2つの輝度変化点との対応関係が検出される。
一方、RGB画像750にて輝度変化点として抽出されたもう1つの画素752は三次元座標データ803と対応している。第二の計測位置を含む計測パラメータを用いて三次元座標データ803をRGB画像760に投影すると投影先は画素762となる。しかし床851上の平面部分が写っている画素762は輝度変化点として抽出されない。この結果、三次元座標データ803に対してはRGB画像750の輝度変化点との対応関係だけが検出される(図6(b)参照)。つまり三次元座標データ803に対しては輝度変化点との対応関係が1つだけ検出される。
図7はエッジ存在度付与の例を示す模式図であり、図7(a)は部屋600の空間モデルの模式的な斜視図にて三次元座標データの例であるQ1〜Q14の位置を示しており、図7(b)はQ1〜Q14における輝度変化点対応数およびエッジ存在度を表形式で示している。図6を参照して説明したように、三次元座標データ801(Q7)には、第一の計測位置姿勢にて撮影したRGB画像750から抽出された輝度変化点(画素751)との対応関係、および第二の計測位置姿勢にて撮影したRGB画像760から抽出された輝度変化点(画素761)との対応関係が検出され、三次元座標データQ7と対応する輝度変化点数は2と計数される。輝度変化点数に応じ、三次元座標データQ7にはエッジ存在度1.0が付与される。同様に、机602の縁に位置する三次元座標データQ1〜Q6,Q8,Q9に対しても輝度変化点数は2と計数されてエッジ存在度1.0が付与される。
また、図6を参照して説明したように、三次元座標データ803(Q11)には、第一の計測位置姿勢にて撮影したRGB画像750から抽出された輝度変化点751との対応関係は検出されたものの、第二の計測位置姿勢にて撮影したRGB画像760から抽出された輝度変化点との対応関係は検出されなかった。そのため、三次元座標データQ11と対応する輝度変化点数は1と計数される。輝度変化点数に応じ、三次元座標データQ11にはエッジ存在度0.0が付与される。同様に、床601の平面上で未計測領域(第一の計測において生じた未計測領域)との境界に位置する三次元座標データQ10,Q12に対しても輝度変化点数は1と計数されてエッジ存在度0.0が付与される。
また、床601の平面上で図3に示した模様603の縁に位置する三次元座標データQ14に対する輝度変化点数は2であり、輝度変化点数に応じてエッジ存在度1.0が付与される。
また、床601の平面上で未計測領域との境界でも模様603の縁でもない位置にある三次元座標データQ13に対する輝度変化点数は0であり、輝度変化点数に応じてエッジ存在度0.0が付与される。
図8はエッジ存在度の例を説明するための部屋600の空間モデルの模式図である。図8において、実線部(直線P1−P2,P1−P3,P1−P5,P2−P4,P3−P4,P3−P6,P4−P7,P5−P6,P6−P7部および直線群S)の三次元座標データにエッジ存在度1.0が付与され、それ以外の三次元座標データにエッジ存在度0.0が付与されている。
これら実線部のうち直線P1−P2,P1−P5,P2−P4およびP4−P7部の三次元座標データは未計測領域(網掛け部)との境界に位置し、従来技術ではカメラ校正等に利用できなかったエッジであるが、本発明ではエッジが存在することを示すエッジ存在度が付与されカメラ校正等に利用可能となる。
[カメラ校正時の三次元データ処理装置5]
図9は部屋600の空間モデルを用いて、部屋600に設置された監視カメラ3を校正するときの三次元データ処理装置5の概略の機能ブロック図である。
記憶部51は空間モデル記憶手段510として機能し、制御部53は実エッジ画像生成手段535、仮想カメラ設定手段536、仮想エッジ画像生成手段537およびエッジ画像照合手段538などとして機能する。
実エッジ画像生成手段535は監視カメラ3(実カメラ)から入力された各監視画像(実画像)からエッジを抽出してエッジ画像を生成し、生成したエッジ画像を、対応するカメラIDと共にエッジ画像照合手段538に出力する。後述する仮想エッジ画像生成手段537が生成するエッジ画像と区別するために、ここで生成するエッジ画像を実エッジ画像と呼ぶ。
実エッジ画像生成手段535は監視画像における周囲画素との輝度差が予め定めたしきい値Ti以上である輝度変化点に対応する画素に画素値“1”、それ以外の画素に画素値“0”を設定して実エッジ画像を生成する。本実施形態では輝度差としてエッジ強度を利用する。実エッジ画像生成手段535は監視画像の各画素にソーベルオペレータなど所定のエッジオペレータを適用しエッジ強度を算出する。
仮想カメラ設定手段536は空間モデル内で部屋600を任意の位置姿勢にて模擬撮影する仮想カメラを複数設定し、設定した仮想カメラのカメラパラメータを仮想エッジ画像生成手段537に出力する。仮想カメラのカメラパラメ―タに含まれる位置姿勢は校正対象である監視カメラ3の撮影位置姿勢の候補である。カメラパラメータのうち位置姿勢以外の焦点距離、解像度、レンズ歪みなどは予め記憶させてある監視カメラ3の値を用いる。
仮想カメラ設定手段536は空間モデルのXYZ座標系において原点から予め定めた微小間隔でX方向、Y方向、Z方向に仮想カメラの位置を移動させると共に仮想カメラの姿勢(ピッチ角、ヨー角、ロール角)を予め定めた微小間隔で変更して総当たり的に複数の仮想カメラを設定してもよいが、ユーザーインターフェース部55から予め監視カメラ3の設置仕様等に基づく設定範囲を入力し、当該範囲内に仮想カメラを設定することでカメラ校正の処理量を減ずることができる。例えば、設置仕様が鉛直下方に向けて天井設置する仕様であれば、天井高を予め入力しておくことで、仮想カメラのZ方向の移動範囲とピッチ角の変動範囲を大幅に狭くできる。また、設置仕様に定められたX座標、Y座標、Z座標、ピッチ角、ヨー角、ロール角を予め入力し、入力した各値を中心として予め定めた設置誤差範囲内に一定の微小間隔で複数の仮想カメラを設定してもよいし、入力した各値から離れるに従って広がる微小間隔で複数の仮想カメラを設定してもよい。
仮想エッジ画像生成手段537は、仮想カメラ設定手段536が設定した各カメラパラメータが表す撮影面に部屋600の空間モデルを投影してエッジ画像を生成し、生成したエッジ画像をエッジ画像照合手段538に出力する。ここで生成するエッジ画像を仮想エッジ画像と呼ぶ。
具体的には、空間モデルを構成する三次元座標データのうちエッジ存在度が“1.0”である三次元座標データを撮影面に投影し、エッジ存在度が“0.0”である三次元座標データを投影しないことで、仮想カメラの撮影面にて、エッジ存在度1.0を有する三次元座標データの投影位置をエッジ画素とする仮想エッジ画像が生成される。
上述のようにして複数の計測位置姿勢でのRGB画像を用いた輝度変化点対応数に応じてエッジ存在度を定義したことにより、計測時のオクルージョンによって空間モデルに生じる未計測領域の境界にて、実在するエッジを仮想エッジ画像に含ませることができ、一方、実在しないエッジを排除することができる。
ここで、計測視点からの距離よりも仮想視点からの距離の方が遠い三次元座標データにエッジが実在していても、当該仮想視点に監視カメラ3が存在した場合に得られる監視画像においては、当該三次元座標データと対応する画素位置の解像度が低下してエッジが抽出されない場合がある。そこで、空間モデルを構成する三次元座標データに対応付けられた輝度データを各仮想視点が表す撮影面に投影した投影像(レンダリング画像)からエッジ画像を生成し、仮想エッジ画像を、生成したエッジ画像と仮想エッジ画像との論理積画像に置き換えてもよい。特にこのとき、仮想視点からの距離が遠い三次元座標データについては、レンダリング画像の1画素に複数の三次元座標データが投影される。仮想エッジ画像生成手段537はこれら複数の三次元座標データに対応付けられた輝度データの平均値を投影先の画素に設定する。なお、レンダリング画像に投影される未計測領域には外れ値(例えばRGB値(255,255,255))を与えておけばよい。このようにするとレンダリング画像における未計測領域との境界から実在しないエッジが抽出され得るが、このエッジは仮想エッジ画像との論理積演算により消去されるため問題とならない。この輝度データの平均化によって、解像度の低下によるエッジの不抽出を再現でき、実エッジ画像と仮想エッジ画像の照合精度を向上させることができる。
エッジ画像照合手段538は実エッジ画像生成手段535が生成した実エッジ画像と仮想エッジ画像生成手段537が仮想カメラのカメラパラメータごとに生成した仮想エッジ画像との類似度を算出し、実エッジ画像に類似する仮想エッジ画像を与える仮想カメラの位置姿勢を監視カメラ3の位置姿勢と決定する。例えばエッジ画像照合手段538は最も類似度が高い仮想カメラの位置姿勢を監視カメラ3の位置姿勢と決定する。
ここで、類似度はエッジ位置の一致度合いに応じた値になるように定義される。例えば、エッジ位置の一致数を仮想エッジ画像のエッジ画素数、または実エッジ画像のエッジ画素数と仮想エッジ画像のエッジ画素数との和で除した値を類似度としてもよい。また例えば、仮想エッジ画像の各エッジ位置から実エッジ画像の最近傍エッジ位置までの距離、または実エッジ画像の各エッジ位置から仮想エッジ画像の最近傍エッジ位置までの距離を累積し、その累積値の逆数に応じた値を仮想エッジ画像のエッジ画素数、または実エッジ画像のエッジ画素数と仮想エッジ画像のエッジ画素数との和で除した値を類似度としてもよい。また、類似度に、輝度データの一致度合いを重み付け加算して類似度を補正してもよい。この場合、監視画像と上記レンダリング画像との間で対応する画素同士で画素値の正規化相関値を輝度データの一致度合いとすることができる。
ちなみに、本発明に係る三次元モデル処理装置は、空間モデル記憶手段510、変化点対応付け手段531、エッジ存在度付与手段532、仮想カメラ設定手段536および仮想エッジ画像生成手段537を含み、本発明に係るカメラ校正システムは、当該三次元モデル処理装置と、実エッジ画像生成手段535およびエッジ画像照合手段538とを含んで構成される。
[空間モデル生成時のカメラ校正システム1の動作]
図10は空間モデル生成時のカメラ校正システム1の動作の概略のフロー図である。三次元計測装置2が部屋600の計測を行うと、三次元計測装置2から三次元データ処理装置5に計測データが入力される。三次元データ処理装置5は入力された計測データに対して図10に示す一連の処理を行い、部屋600の空間モデルを生成する。
計測データ入力部50は三次元計測装置2から計測データ、すなわち第一の計測位置姿勢にて計測した距離画像と第一の計測位置姿勢にて撮影したRGB画像、および第二の計測位置姿勢にて計測した距離画像と第二の計測位置姿勢にて撮影したRGB画像を取得し、これらを制御部53に入力する(ステップS10)。
制御部53は座標変換手段530として動作し、座標変換手段530は、ステップS10にて取得した距離画像から第一の計測位置姿勢および第二の計測位置姿勢を算出して、計測パラメータ記憶手段511として機能する記憶部51に記憶させる(ステップS11)。
座標変換手段530は、ステップS11にて算出した第一の計測位置姿勢および第二の計測位置姿勢を用い、ステップS10にて取得した距離画像の各画素を三次元座標データに変換して空間モデル記憶手段510として機能する記憶部51に記憶させる(ステップS12)。さらに、後段の処理のために距離画像の画素と三次元座標データとの対応関係も空間モデル記憶手段510に一時記憶させておく。また、座標変換手段530は、ステップS10にて取得したRGB画像の各画素値を、対応する距離画像の画素の変換先となった三次元座標データに輝度データとして紐づけて空間モデル記憶手段510に記憶させる。なお、RGB画像の複数の画素と対応する三次元座標データに対する輝度データは、対応する複数の画素の平均画素値とすればよい。
また、制御部53は変化点対応付け手段531として動作し、ステップS13〜S16の処理を行う。まず、変化点対応付け手段531は、ステップS11にて取得した複数の計測位置姿勢を順次、注目位置姿勢に設定する(ステップS13)。
変化点対応付け手段531はステップS10にて取得したRGB画像のうち注目位置姿勢のRGB画像から輝度変化点を抽出する(ステップS14)。具体的には注目位置姿勢のRGB画像の各画素におけるエッジ強度を算出し、エッジ強度がしきい値Ti以上である画素を輝度変化点として抽出する。
変化点対応付け手段531はステップS14にて抽出した輝度変化点と対応する三次元座標データを空間モデルの中から検出する(ステップS15)。
変化点対応付け手段531は全ての計測位置姿勢を処理したか確認し(ステップS16)、未処理のものがある場合は(S16にてNOの場合)ステップS13に戻り、次の計測位置姿勢の処理を行う。
一方、全ての計測位置姿勢を処理し終えた場合は(S16にてYESの場合)、制御部53はエッジ存在度付与手段532として動作し、ステップS17〜S21の処理を行う。
エッジ存在度付与手段532は、空間モデルを構成する複数の三次元座標データを順次、注目データに設定し(ステップS17)、ステップS15で検出した対応関係を参照し、注目データと対応する輝度変化点の数(すなわち計測位置姿勢の数)を計数する(ステップS18)。注目データとの対応が検出された輝度変化点の数が2以上であれば、エッジ存在度付与手段532は空間モデル記憶手段510の注目データに対応付けてエッジ存在度1.0を記憶させる。一方、注目データとの対応が検出された輝度変化点の数が2未満であれば空間モデル記憶手段510の注目データに対応付けてエッジ存在度0.0を記憶させる。なお、注目データとの対応関係が検出されなかった場合も2未満の場合に含める。
エッジ存在度付与手段532は、全ての三次元座標データを処理したか確認し(ステップS21)、未処理のものがある場合は(S21にてNOの場合)ステップS17に戻り、次の三次元座標データの処理を行う。一方、全ての三次元座標データを処理し終えるとモデル生成処理は終了する(S21にてYESの場合)。
[カメラ校正時のカメラ校正システム1の動作]
図11はカメラ校正時のカメラ校正システム1の動作の概略のフロー図である。部屋600に設置された監視カメラ3が部屋600の撮影を行うと、監視カメラ3から三次元データ処理装置5に監視画像が入力される。三次元データ処理装置5は入力された監視画像に対して図11に示す一連の処理を行い、監視カメラ3の校正を行う。
監視画像入力部52は監視カメラ3から監視画像を取得し、これを制御部53に入力する(ステップS50)。制御部53は実エッジ画像生成手段535として動作し、ステップS50にて取得した監視画像の各画素にエッジオペレータを適用して実エッジ画像を生成する(ステップS51)。
次に制御部53は仮想カメラ設定手段536として動作し、空間モデルの座標系に互いに位置姿勢の異なる複数の仮想カメラを設定する(ステップS52)。
そして、制御部53は仮想エッジ画像生成手段537として動作し、ステップS52にて設定された各仮想カメラの撮影面に仮想エッジ画像を生成する(ステップS53)。具体的には、仮想エッジ画像生成手段537は空間モデル記憶手段510から部屋600の空間モデルを読み出し、ステップS52にて設定された各仮想カメラのカメラパラメータが表す撮影面にエッジ存在度1.0が付与された三次元座標データを投影して仮想エッジ画像を生成する。また同投影面に輝度データをレンダリングし、レンダリングした画像の各画素にエッジオペレータを適用してエッジ画像を生成し、仮想エッジ画像を、生成したエッジ画像との論理積画像に更新する。
制御部53はエッジ画像照合手段538として動作し、ステップS51にて生成した実エッジ画像と、ステップS53にて生成した仮想カメラごとの仮想エッジ画像それぞれとの類似度を算出する(ステップS54)。エッジ画像照合手段538は、ステップS54にて算出した仮想カメラごとの類似度に基づいて、最大の類似度が算出された仮想カメラの位置姿勢を検出し、検出した仮想カメラの位置姿勢を監視カメラ3の位置姿勢と決定して監視カメラ3のカメラIDと共に出力部54に入力する(ステップS55)。
ここで決定される監視カメラ3の位置姿勢は、空間モデルにおいて未計測領域の境界に位置するエッジをも利用して求めた高精度な推定結果となっている。
出力部54は、監視カメラ3の位置姿勢とカメラIDを監視装置4に入力する。監視装置4は入力された監視カメラ3の位置姿勢を格納し、以降の監視処理にて利用する。
[変形例]
(1)上記実施形態では、互いに異なる2つの計測位置姿勢にて計測を行う例を示したが、3以上の計測位置姿勢にて計測を行ってもよい。
(2)上記実施形態においては、エッジ存在度付与手段532が“0.0”または“1.0”のいずれかエッジ存在度を付与する例を示したが、3種類以上のエッジ存在度を付与してもよい。その場合、エッジ存在度付与手段532は、例えば、輝度変化点対応数が0または1の三次元座標データにエッジ存在度“0.0”、輝度変化点対応数が2の三次元座標データにエッジ存在度“0.5”、輝度変化点対応数が3の三次元座標データにエッジ存在度“0.625”、輝度変化点対応数が4の三次元座標データにエッジ存在度“0.75”、輝度変化点対応数が5の三次元座標データにエッジ存在度“0.875”、輝度変化点対応数が6以上の三次元座標データにはエッジ存在度“1.0”を付与する。そして、エッジ画像照合手段538は仮想エッジ画像のエッジ位置をエッジ存在度で重み付けて実エッジ画像との類似度を算出する。
(3)上記実施形態では、三次元モデルとして所定空間を計測して得た空間モデルを例示したが、三次元モデルは什器等の所定物体を計測して得た物体モデルであってもよい。
(4)上記実施形態では、三次元座標データが三次元空間中の点を表すポイントクラウド形式の三次元モデルを例示したが、物体面の頂点座標の集合を含むメッシュモデル形式の三次元モデルであってもよい。その場合、例えば、任意の頂点座標のペアを三次元座標データとし(つまり直線単位の三次元座標データとし)、エッジ存在度付与手段532は当該三次元座標データに対してエッジ存在度を付与する。
(5)上記実施形態においては監視カメラ3が1台の例を説明したが、監視カメラは2台以上でもよく、その場合は各監視カメラに上記例と同様の処理を繰り返せばよい。
(6)上記実施形態においては、撮影位置姿勢が固定されたカメラを校正するカメラ校正システムを例示したが、本発明は、パン・チルト動作するカメラ、ロボット等の移動体に設置されたカメラ、人が手持ちしたカメラなど撮影位置姿勢が変動するカメラを校正するカメラ校正システムにも適用することができる。すなわち、これらのカメラを校正する場合は、撮影位置姿勢が変動した後の撮影画像が入力されるたびに校正を行えばよい。
(7)上記実施形態では、エッジ存在度を付与した三次元モデルを投影して仮想エッジ画像を生成する例を示したが、エッジ存在度を付与した空間モデルは投影せずとも三次元データ間の位置合わせや照合の精度を向上させる効果を奏する。例えば、互いに異なる複数の計測視点から計測して得た空間モデル或いは物体モデルのそれぞれにエッジ存在度を付与し、これら複数の空間モデル或いは複数の物体モデルを、エッジが存在することを示すエッジ存在度が付与された三次元座標データを重視して位置合わせすれば、位置合わせ精度を向上させることができる。また例えば、所定物体を計測して得た物体モデルにエッジ存在度を付与して、該物体モデルと未知物体を計測して得た三次元データとを照合して物体認識を行う際に、エッジが存在することを示すエッジ存在度が付与された三次元座標データを重視して照合を行えば照合精度を向上させることができる。
(8)上記実施形態では、仮想エッジ画像を利用してカメラを校正する例を示したが、当該仮想エッジ画像を利用して物体照合の精度を向上させることも可能である。例えば、所定物体を計測して得た物体モデルにエッジ存在度を付与して仮想エッジ画像を生成し、撮影画像から生成した実エッジ画像との照合を行えば、撮影画像に写っている物体が所定物体であるか否かを判定する精度を向上させることができる。