カメラ設置シミュレータプログラム
【課題】 カメラの設置前に、どのような範囲を撮影することができるかシミュレーションする。
【解決手段】 所定領域の上面図6が上面窓4に表示され、上面窓4内の任意の位置に配置されたカメラ上面表示子10を、その配置位置に表示する。カメラ上面表示子14の表示に応じて、上面窓4内にカメラの水平視野表示子18を表示する。同時に立面窓12内に、カメラ立面表示子16を表示し、カメラの垂直視野表示子20を表示する。3D映像表示窓46に、カメラで撮影されると予想される3D映像を表示する。
【解決手段】 所定領域の上面図6が上面窓4に表示され、上面窓4内の任意の位置に配置されたカメラ上面表示子10を、その配置位置に表示する。カメラ上面表示子14の表示に応じて、上面窓4内にカメラの水平視野表示子18を表示する。同時に立面窓12内に、カメラ立面表示子16を表示し、カメラの垂直視野表示子20を表示する。3D映像表示窓46に、カメラで撮影されると予想される3D映像を表示する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定のエリアにカメラを設置した場合、どのように撮影されるか撮影範囲をシミュレーションするプログラムに関する。
【背景技術】
【0002】
従来、上記のシミュレーションに関連する技術として、特許文献1に開示されているものがある。これの技術は、表示画面にモニタリング対象場所のレイアウト図と、カメラの設置位置と、このカメラによって得られる映像が、レイアウト図の上でどの範囲であるかを示す映像枠の中心位置と、この映像枠の大きさとがデータとして与えられており、表示画面上にレイアウト図を表示し、このレイアウト図上にカメラの位置と、映像枠とが表示される。
【0003】
【特許文献1】特開2006−148406号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上記の技術は、設置されたカメラの位置と、レイアウト図上のどの範囲が撮影されるかを表す映像枠とで、大まかに表示するものであるので、実際にカメラを配置する前にカメラを配置したら、どのような範囲を撮影可能であるかを事前に知ることには利用できない。特に、レイアウト図においても映像枠は、映像枠の大きさと映像枠の中心位置とから算出したものであるので、正確さに欠ける。
【0005】
本発明は、カメラを実際に設置する前に、カメラを設置したらどのような範囲を撮影することができるかを正確にシミュレーションすることができるプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様のカメラ設置シミュレータプログラムは、所定エリアにおけるカメラの配置及び当該カメラの撮影範囲をシミュレーションするためのものである。前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記所定エリアのデータに基づいて当該所定エリアの一部又は全部を表すエリア画像を表示装置に表示させる処理を行う。所定エリアは、二次元表示することもできるし、三次元表示することもできる。 前記エリア画像上に、前記カメラを表すカメラ表示子を重ねて配置して表示させる処理も、コンピュータは行う。前記エリア画像上のスケール、前記カメラ表示子の配置位置、当該配置位置を基点とした前記カメラの向き、前記カメラの画角、及び前記カメラの種類のうち、少なくとも1つは任意に設定可能であり、当該設定に応じて前記カメラの前記エリア上の撮影範囲を決定する処理を、コンピュータが行う。前記エリア画像上に、前記決定された撮影範囲を表す撮影範囲表示子を重ねて表示させる処理を、コンピュータが行う。
【0007】
このように構成されたカメラ設置シミュレータプログラムでは、カメラの配置位置、向き、カメラの画角等に応じて、カメラが撮影可能な撮影範囲を決定し、その決定された撮影範囲を表している撮影範囲表示子をエリア画像上に表示している。従って、どのような範囲を撮影可能であるかを確認することができる。
【0008】
また、前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記設定に応じて当該カメラの前記エリア上の死角範囲を決定する処理と、前記表示装置に表示したエリア画像上に当該死角範囲を表す死角範囲表示子を重ねて表示させる処理とを行うこともできる。死角範囲は、例えば、カメラと、カメラの撮影範囲のうち、カメラに近い側の縁との間の撮影不能な範囲である。このように構成すると、どの範囲が撮影不能であるかを事前に知ることができ、カメラをどのように配置すれば、この死角範囲を減少させることができるか、事前に判断することができる。
【0009】
さらに、前記エリア画像は、前記所定エリアの一部又は全部を表す上面図及び立面図を含むものとすることができる。この場合、前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記カメラ表示子を前記上面図上に重ねて配置して表示させる処理と、前記カメラ表示子を配置した前記上面図上の位置に対応する立面図上の位置に、前記カメラを表す別のカメラ表示子を重ねて配置して表示させる処理と、前記上面図及び立面図上それぞれに、前記設定に応じて決定された撮影範囲及び死角範囲表示子を表示させる処理とを行う。
【0010】
このように構成すると、カメラ表示子を上面図上に配置すると、上面図及び立面図それぞれに撮影範囲と死角範囲とをそれぞれ表す撮影範囲表示子及び死角範囲表示子が表示される。従って、上面及び立面の双方から、撮影範囲及び死角を把握することができる。
【0011】
また、前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記設定に応じて決定された撮影範囲及び前記エリア画像に基づいて三次元グラフィックスを生成し、前記表示装置に表示させる処理を行うこともできる。このように構成すると、三次元で撮影範囲を見ることができ、実際の撮影画像に近い感覚で撮影範囲を把握することができる。
【0012】
さらに、前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記エリア画像上に、撮影対象を表す撮影対象表示子を重ねて配置して表示させる処理と、前記撮影範囲表示子に前記撮影対象表示子の一部又は全部が重なった場合に、前記撮影対象の三次元情報と、前記設定に応じて決定された撮影範囲及び前記エリアに基づいて、前記撮影対象表示子の重なった部分を含む三次元グラフィックスを生成し、前記表示装置に表示させる処理とを行うこともできる。撮影対象としては、種々のものがあるが、例えばエリアが建物の場合、その建物の内外を通過する人体や、建物の外部に駐車される車等がある。
【0013】
このように構成すると、実際の撮影範囲をシミュレーションした三次元グラフィックス中に、撮影対象表示子も表示され、しかもその表示は、撮影対象の三次元情報に基づいて行われているので、撮影対象が実際にどのように撮影されるかを正確に把握することができる。
【0014】
あるいは、前記カメラ設置シミュレータプログラムを実行するコンピュータは、ポインティング手段を備えたものとすることができる。例えばマウスやタブレットをポインティング手段として使用することができる。この場合、前記エリア画像上に重ねて表示されている前記カメラ表示子の位置及び前記撮影範囲表示子の範囲は、表示画面上で前記カメラ表示子および前記撮影範囲表示子を前記ポインティング手段で指定しドラッグすることで、変更が可能である。
【0015】
このように構成することによって、種々にカメラの位置や撮影範囲を変更した状態で、どのような撮影可能であるかを知ることができるので、最適なカメラの配置位置や撮影範囲を、カメラを実際に設置する前に知ることができる。
【0016】
また、前記カメラ設置シミュレータプログラムを実行するコンピュータは、ポインティング手段を備えることができる。この場合、前記エリア画像上に重ねて表示されている前記撮影対象表示子の位置及び向きは、表示画面上で前記撮影対象表示子を前記ポインティング手段で指定しドラッグすることで、変更が可能である
【0017】
このように構成することによって、撮影対象がエリア上の様々な位置に存在する場合でも、どのような撮影されるかを、カメラの設置前に知ることができる。
【0018】
また、前記所定エリアのデータは、二次元画像データとすることができる。このように構成すると、三次元画像データを使用するよりもデータ量が少なく、またコンピュータのCPUの負担が少なくなり、迅速な処理を行うことができる。特に、監視カメラの設置対象であるビル構内等の平面図(上面図)であれば、当該ビルの管理者から入手することも可能であるので、新たに上面図を作成する手間も省けるので利便性がとても高い。
【発明の効果】
【0019】
以上のように、本発明によれば、カメラを実際に設置する前に、カメラを設置したらどのような範囲を撮影することができるかをシミュレーションすることができる。
【発明を実施するための最良の形態】
【0020】
本発明の1実施形態のカメラ設置シミュレーション用プログラムは、コンピュータ、例えばパーソナルコンピュータで実行されるもので、パーソナルコンピュータの表示手段、例えば液晶表示装置の画面に、図1に示すような画像を表示する。なお、パーソナルコンピュータは、図示していないが、演算手段としてのCPU、記憶手段としてのメモリ、ハードディスク、指示手段としてのキーボード、ポインティング手段としてのマウスやタブレット等を備えている。
【0021】
画面には、ベースとなる窓2が表示されている。この窓2の左上部に、矩形の上面図窓4が表示されている。この上面図窓4内には、所定エリア、例えばカメラを設置しようとする領域、例えばビルの内外を表す上面図6が表示されている。この上面図6を表示するための表示データは、二次元画像データであり、図示していないが、ベース窓2に表示されているファイル読み込み用のタブをマウス等によって選択して、読み込まれたものであり、読み込む表示データは、種々の異なるものに変更可能である。例えば、当該ビルの管理者から受領した紙に印刷された上面図を、スキャナで読み取り、jpgデータとして取り込むことができる。上面図窓4は、上面図6の一部のみを表示しており、上面図窓4に、上面図6の他の部分を表示する場合には、上面図窓4の下部にあるスライダ4aを操作する。
【0022】
上面図窓4の斜め下方には、カメラ選択窓8が表示されている。カメラ選択窓8には、複数のカメラ、例えばビデオカメラの型番と、そのカメラの使用場所(例えば屋内用、屋外用)と、最小画角と、最大画角とが、リスト形式で表示されている。カメラの型番と使用場所とからカメラの種類を特定することができる。これらリストの内容を判断して、所望のものをマウス等で選択し、上面図6上にドラッグアンドドロップすると、カメラを表すシンボルであるカメラ表示子、例えばカメラ上面図表示子10が上面図6上に、これに重ねて表示される。同時に、上面図窓4の下方に配置されている立面図窓12内の立面図14内にも、カメラを表すシンボルである別のカメラ表示子、例えばカメラ立面図表示子16が表示される。
【0023】
同時に、カメラ上面図表示子10から伸びる水平視野表示子18が上面図6上に表示され、カメラ立面図表示子16から伸びる垂直視野表示子20が立面図14上に表示される。水平視野表示子18は、カメラが撮影可能な撮影範囲を水平面に投影した水平視野を表したもので、垂直視野表示子20は、カメラが撮影可能な撮影範囲を、その光軸が通る垂直面に投影した垂直視野を表したものである。
【0024】
これら水平視野表示子18や垂直視野表示子20をどのような大きさに表示するかを決定するために、上面図窓4内には、実線で水平基準線22が表示されており、この水平基準線22を何メートルとして認識するかを、事前にユーザーがマウス等を操作することによって設定している。同様に立面図14上に描いた基準面、例えば地面を表す地面表示子24の上方に破線で描いた高さ基準線表示子26の地面表示子24からの高さを何メートルとして認識するかを、事前にユーザーがマウス等を操作することによって設定している。また、立面図14ではカメラ立面表示子16から地面表示子24に垂直に表示されたカメラ位置表示子30と、このカメラ位置表示子30からの距離を表す目盛表示子32、32・・・が表示されている。
【0025】
水平視野表示子18及び垂直視野表示子20は、カメラ上面表示子10が上面図6に配置されたとき、予め定めた高さ、予め定めた俯角及び予め定めた方向にカメラが配置され、カメラは最大画角の状態にあると設定されて、表示されている。
【0026】
水平視野表示子18は、後述するように台形状に表示され、この台形の内側にある領域が撮影可能な範囲である。垂直視野表示子20は、立面図14に符号34で示す光軸表示子を通り地面に垂直な面に投影したカメラの撮影範囲を示しており、地面表示子24に近い近表示子20aと、地面表示子24から遠い遠表示子20bとを有している。この近表示子20aと遠表示子20bと地面表示子24とで囲われた範囲が撮影可能な範囲である。
【0027】
すなわち、図2に示すようにカメラの撮影範囲46は、カメラが地面側を向いているCCDカメラの場合、地面に底面を有する四角錘となる。これは、カメラのレンズがカバーするエリアは、円錐形であるが、その円錐形の中をCCDが四角形に切り取った形になるからである。このシミュレータでは、上面図に表示する水平視野は、図2の撮影範囲46を真上から見た形になるため、四角錘の地面に接している台形形の底面を描画したものが水平視野表示子18になる。
【0028】
また、垂直視野は、図3に示すように、カメラ光軸48を含み、地面に垂直な平面Sを考え、この平面Sに撮影範囲46を投影したものとなる。即ち、撮影範囲46におけるカメラに近い側面50と面Sとが交わって線分52ができ、視野46のカメラから遠い側面54が面Sと交わって線分56ができ、これら線分52、56と地面とからなる三角形状が垂直表示子20になる。
【0029】
この側面50とカメラとの間が撮影不能な死角範囲となり、これを地面に投影したものを上面図に表すと、カメラ上面表示子10側にある水平視野表示子18の短い縁とカメラ上面表示子10との間の破線で示した部分である。また、死角範囲を上記平面Sに投影したものを立面図に表すと、近表示子20aとカメラ位置表示子30との間のハッチングを付した部分である。
【0030】
カメラ上面表示子10は、これをマウス等でクリックして任意の方向にドラッグすることによって、配置位置を変更することができ、これによって水平視野表示子18の位置を変更することができ、水平視野表示子18をクリックして回転させることによって、カメラ上面表示子10、それの方向(光軸表示子34の方向)及び水平視野表示子18の方向を変化させることができる。
【0031】
カメラ立面表示子16は、これをマウス等でクリックして上下方向にドラッグすることにより、カメラ立面表示子16の高さ位置を変更することができ、これによって水平視野表示子18及び垂直視野表示子20の大きさ、死角範囲を変更することができる。また、垂直視野表示子20をマウス等でクリックした状態で回転させることによって俯角を変更することができ、これによって水平視野表示子18及び垂直視野表示子20の大きさ、死角範囲を変更することができる。
【0032】
上記の説明では、カメラの画角は最大の場合を前提として説明したが、水平視野表示子18または垂直視野表示子20の縁をマウス等でクリックして、内側に向かって移動させることによって画角を最小画角とした状態まで水平視野表示子18及び垂直視野表示子20を連続的に変更することができ、逆に最小画角とした状態から水平視野表示子18または垂直視野表示子20の縁をマウス等でクリックして、外側に向かって移動させることによって画角を最大画角とした状態まで水平視野表示子18及び垂直視野表示子20を連続的に変更することができる。
【0033】
カメラ選択窓8の下方には、撮影対象アイコン、例えば人物アイコン36と車アイコン38とが表示されている。人物アイコン36または車アイコン38をクリックして、上面図6にドラッグアンドドロップすると、撮影対象表示子、例えば人物上面表示子40または車上面表示子42が表示される。これら人物上面表示子40または車上面表示子42の配置位置及び方向は、ドラッグすることによって変更可能である。これらの配置位置が水平視野表示子18内であると、立面図14内に人物立面表示子44または車立面表示子(図示せず)が表示される。人物アイコン36または車アイコン38を上面図6にドラッグしたとき、人物アイコン36の場合には身長設定窓(図示せず)が、車アイコン38の場合には長さ設定窓(図示せず)が表示され、この窓にキーボードを操作して身長または長さを設定する。人物アイコンが表す人物の幅及び奥行寸法は、入力された身長に比例して設定され、同様に、車アイコン38が表す車の幅及び高さ寸法も車の長さに比例して予め設定される。従って、上述したように身長、車の長さを設定することによって、人物及び車の三次元データが全て揃う。
【0034】
カメラ選択窓8の上部の3D映像表示窓46に、水平視野表示子18及び垂直視野表示子20によって確定された撮影範囲と想定される3D映像が表示される。この3D映像は、上述したカメラ上面表示子10の配置位置及び方向と、カメラ立面表示子16の配置位置から決定されたカメラの三次元座標の位置から、地面を見た状態を上面図を座標変換することによって得た画像を、上記水平視野表示子18及び垂直視野表示子20によって規定された範囲に限定して表示したものである。但し、上面図は二次元画像データであり、上面図に表示されている様々な物体の高さデータは取得できないので、3D映像では高さは表現されていない。しかし、高さデータを使用していないので、3D映像の生成に要する時間は短縮することができる。
【0035】
但し、人物アイコン36及び車アイコン38に対応する人物及び車に対しては上述したように三次元データが揃っているので、人物上面表示子40や車上面表示子が水平視野表示子18内に全部または一部入っている場合、人物立面表示子44や車立面表示子が垂直視野表示子20内に全部または一部入っている場合、これらに対応する像が3D映像表示部46に三次元表示される。しかも、その像は、カメラから見た大きさに対応したものとして表示される。
【0036】
従って、例えばカメラを監視用に使用しようとする場合、監視したい場所に人物上面表示子40や車上面表示子42を配置し、カメラ上面表示子10の配置位置や方向を変更し、かつカメラ立面表示子16の高さや俯角を調整することによって、人物や車をどのように撮影することができるかを、3D映像表示窓44の表示から認識できる。また、人物上面表示子60や車上面表示子42をドラッグすることによって、移動する人物や車がどのように表示されるかを3D映像表示窓44の表示から認識できる。
【0037】
なお、上記の説明は、カメラ上面表示子10を1つだけ表示する場合のものであるが、複数のカメラ上面表示子10を同時に上面図6上に表示し、同時に複数のカメラの水平視野表示子18を上面図6上に表示することもできる。この場合、立面図14には、上面図でマウス等でクリックされている水平視野表示子18に対応する垂直視野表示子20のみが表示される。
【0038】
以下、水平視野表示子18及び垂直視野表示子20の表示アルゴリズムを説明する。
【0039】
まず垂直視野表示子20の表示について説明する。カメラ上面表示子16を上面図6に配置したときに、図4に示すカメラの設置高さZc、俯角ρ(高さ基準線表示子26に対応する高さ基準線58と光軸48との角度)、画角は自動的に設定される。画角が設定されると、図3に示す面S内における画角である垂直画角θvは算出される。線分52及び地面の交点Aとカメラ位置表示子30に相当するカメラ位置線60及び地面の交点0間の距離rg1と、線分56及び地面の交点Bと交点0間の距離rg2、線分52、56の長さrs1、rs2が判明すれば、線分52、56に相当する近表示子20a、遠表示子20bは表示可能になる。カメラの設置位置をCとすると、角CA0はρ+θv/2であり、角CB0はρ−θv/2であるので、rg1、rg2は、式(1)、式(2)で表され、rs1、rs2は式(3)、(4)で表される。
【0040】
rg1=Zc/(tan(ρ+(θv/2))・・・(1)
rg2=Zc/(tan(ρ−(θv/2))・・・(2)
rs1=Zc/(sin(ρ+(θv/2))・・・(3)
rs2=Zc/(sin(ρ−(θv/2))・・・(4)
【0041】
従って、立面図14において、カメラ位置表示子30から地面表示子24に沿ってrg1、rg2の位置に、カメラ位置表示子30上のZcに相当する位置から長さrs1、rs2に相当する長さの直線を描くことによって近表示子20a、遠表示子20bをそれぞれ表示することができる。カメラの設置高さZc、俯角ρ、画角のいずれかが変更されるごとに、式(1)、式(2)に基づいてrg1、rg2を演算して、近表示子20a、遠表示子20bをそれぞれ表示する。
【0042】
しかし、俯角や画角の変更によっては、遠表示子20bが図5に示すように、水平よりも上に来ることがある。即ちθv/2>ρのときがある。このとき、rg2を演算することはできない。その場合、カメラ位置表示子30から予め定めた一定距離rgeにおいて立てた垂線及び線分56の交点Dと前記垂線及び高さ基準線58の交点Eとの距離rz2が判明すれば、線分56を表示することができる。角DCEはθv/2−ρであるので、rz2は式3で表される。
【0043】
rz2=rge・tan(θv−ρ)・・・(5)
【0044】
従って、立面図14においてカメラ位置表示子30からrgeに相当する位置の垂線上にあるZc+rz2に相当する位置にカメラ位置表示子30上のZcに相当する位置から直線を描くことによって遠表示子20bを表示することができる。
【0045】
次に、水平視野表示子18の表示について説明する。図3において交点Aは、カメラ視野46の地面に投影された台形状底面のカメラ側にある上辺の両端Ar、Alの中点になる。同様に交点Bは、カメラ視野46の地面に投影された台形状底面のカメラから遠い側にある下辺の両端Br、Blの中点になる。水平視野表示子18を描くためには、Ar、Al、Br、Blの座標を算出する必要があり、そのためには交点Aから上辺の一方の端までの距離rw1、交点Bから可変の一方の端までの距離rw2、上述したrg1、rg2が必要である。rg1、rg2は、式(1)、(2)によって算出されている。
【0046】
次にrw1、rw2を算出するが、そのためには、角ArCAと角BrCBとが必要である。図6は、レンズ主点OとCCDとの関係を表した図で、fは焦点距離、WはCCDの横サイズ、θhは水平画角である。水平画角θhは、CCDにおいてレンズの焦点が中点となる横方向の線分Wの両端に対して主点Oがなす角度である。図7(a)のCCD上端においてCCDの横サイズは、Wで変化していないがレンズ主点OからCCDの上端の中点までの距離ftは焦点距離fよりも長くなり、このときの水平視野角θhtは水平画角θhよりも小さい。図7(b)においても同様で、CCD下端においてCCDの横サイズは、Wで変化していないがレンズ主点OからCCDの下端の中点までの距離fbは焦点距離fよりも長くなり、下端における水平視野角θhbは水平画角θhよりも小さくなる。これらの視野角θht、θhbは、ft、fbが求まれば算出することができる。
【0047】
そこで、図8に示すように垂直方向の断面を考える。このとき、光軸48はCCDの中央を貫いているとすると、fは式6から求められる。
【0048】
f=ft・cos(θv/2)・・・(6)
【0049】
次に、図6と図7(a)から式7、式8の関係が求められる。
【0050】
W/f=2tan(θh/2)・・・式(7)
W/ft=2tan(θht/2)・・・式(8)
【0051】
ここで式7に式6を代入すると、式9の関係が得られる。
【0052】
W/ft=2tan(θh/2)cos(θv/2)・・・式(9)
【0053】
式(9)に式(8)を代入すると、式(10)の関係が得られる。
【0054】
tan(θht/2)=tan(θh/2)cos(θv/2)・・・式(10)
【0055】
式10から式11が得られる。
【0056】
θht=2tan−1{tan(θh/2)cos(θv/2)}・・・式(11)
【0057】
ここで、ft=fbであるので、θht=θhbである。ここで、図3において求めたいrw1、rw2は式(10)を用いて式(12)、式(13)のように算出できる。
【0058】
rw1=rs1・tan(θhb/2)=rs1・tan(θh/2)cos(θv/2)・・・式(12)
rw2=rs2・tan(θht/2)=rs2・tan(θh/2)cos(θv/2)・・・式(13)
【0059】
このようにしてrg1、rg2、rw1、rw2が算出されたので、点Ar、Al、Br、Blの座標を算出することができる。
【0060】
上記のようにして求めたrg1、rg2、rw1、rw2は、ミリ単位である。上面図6上に描画するためにはミリスケールをピクセルスケールに変換する係数kwm(ピクセル/ミリ)を用いて変換する。カメラ上面表示子10が上面図6右方向に水平回転角が0radを向いているときの上面図6上での水平視野表示子18を図9に示す。このとき、カメラの上面図6上の点をCmとすると、水平視野表示子18の境界点となる点Amr、Aml、Bmr、Bmlの座標は、以下の式(14)乃至式(17)のように求められる。
【0061】
Aml=Cm+kwm(rg1,−rw1)・・・(14)
Amr=Cm+kwm(rg1,rw1)・・・・(15)
Bml=Cm+kwm(rg2,−rw2)・・・(16)
Bmr=Cm+kwm(rg2,rw2)・・・・(17)
【0062】
式(14)乃至(17)は、カメラの水平回転角が0radの場合である。図10のようにカメラの水平回転角がαradの場合には、式(18)で示す回転行列Rを考える。
【0063】
R=|cosα −sinα|
|sinα cosα| ・・・(18)
【0064】
式(14)乃至(17)の第2項に対して式(18)で表す回転角αの二次元回転行列を掛けることで、点Aml、Amr、Bml、Bmrの座標は、式(19)乃至(22)のように求められる。
【0065】
Aml=Cm+kwm・R(rg1,−rw1)・・・(19)
Amr=Cm+kwm・R(rg1,rw1)・・・・(20)
Bml=Cm+kwm・R(rg2,−rw2)・・・(21)
Bmr=Cm+kwm・R(rg2,rw2)・・・・(22)
【0066】
この座標を用いることによって上面図6上に水平カメラ視野表示子18を描画することができ、上面図6上でカメラ上面表示子10の水平回転角αが変更されるごとに、そのときのαを用いて式(19)乃至(22)を用いてAml、Amr、Bml、Bmrの新たな座標を算出し、水平視野表示子18を再描画する。
【0067】
カメラの俯角ρが小さい場合、rg2が大きな値になって上面図6内に水平視野表示子18を全て描画できないことがある。また、俯角が小さくなくても水平視野表示子18の奥行きを制限したいこともある。これらの場合、図11のように視野の奥行きを予め定めたrdに制限して描画することができる。この場合、rg2の代わりにrdを用いると、線分CBln長さrstは、式(23)で定まる。
【0068】
rst=rd/(cos(ρ−(θv/2)))・・・(23)
【0069】
ここで、式(13)において、rs2=rdとした上で、式(23)を代入すると式(24)でrw2が求まる。
【0070】
rw2=rd・(tan(θh/2)cos(θv/2))/(cos(ρ−(θv/2)))・・・(24)
【0071】
これを用い、後は上述したのと同様に計算を行えば、奥行きを制限した状態で上面図6上に水平視野表示子18を描画することができる。
【0072】
このようにして水平視野表示子18の各座標Aml、Amr、Bml、Bmrが決定されているので、カメラ立面表示子16の高さ位置、カメラ上面表示子10の上面図6上の座標位置とから確定されるカメラ位置から、前記各各座標Aml、Amr、Bml、Bmrで区画された上面図6の範囲を見た状態に、この範囲を座標変換することによって3D映像表示窓46に表示する3D映像が得られる。
【0073】
上記の実施形態では、上面図6に水平視野表示子18を、立面図14に垂直視野表示子20を表示した上に、3D映像表示窓46に撮影視野を3D表示したが、上面図6及び立面図14に代えて、撮影しようとするエリアを三次元表示する表示窓を設け、この三次元表示されたエリア内に、カメラ表示子を配置して、3D映像表示窓46に撮影範囲を3次元表示することもできる。
【0074】
或いは、3D映像表示窓44に3D映像を表示したり、人物表示子40や車表示子42を上面図6や立面図14上に表示したが、配置したカメラの水平及び垂直視野表示子18、20だけを表示するようにすることもできる。
【0075】
上記の実施形態では、水平視野表示子18を正確に描画するために、式(12)、(13)を用いてrw1、rw2を求めたが、描画精度との兼ね合いで或る程度rw1、rw2の精度が低くてもよい場合には、rw1、rw2は式(25)、(26)によって求めることもできる。
【0076】
rw1=rs1・tan(θh/2)・・・(25)
rw2=rs2・tan(θh/2)・・・(26)
【図面の簡単な説明】
【0077】
【図1】本発明の1実施形態のカメラ設置シミュレータ用プログラムに基づいてコンピュータが表示している画像を示す図である。
【図2】図1のプログラムによってシミュレーションしようとするカメラの視界を示す図である。
【図3】図2のカメラ視界と平面Sとの関係を示す図である。
【図4】俯角が大きい場合の垂直画角の範囲の表示の説明図である。
【図5】俯角が小さい場合の垂直画角の表示の説明図である。
【図6】水平画角とレンズ主点、CCDの関係を示す図である。
【図7】CCDの上端及び下端における水平視野角の説明図である。
【図8】CCDの中央、上端及び下端における焦点距離の関係を示す図である。
【図9】上面図上における水平回転角が0radの場合の水平視野表示子の表示状態を示す図である。
【図10】上面図上における水平回転角がαradの場合の水平視野表示子の表示状態を示す図である。
【図11】視野の奥行きを制限した場合のカメラ視界の説明図である。
【符号の説明】
【0078】
4 上面図表示窓
6 上面図
10 カメラ上面表示子
12 立面図表示窓
14 立面図
16 カメラ立面表示子
18 水平視野表示子
20 垂直視野表示子
【技術分野】
【0001】
本発明は、所定のエリアにカメラを設置した場合、どのように撮影されるか撮影範囲をシミュレーションするプログラムに関する。
【背景技術】
【0002】
従来、上記のシミュレーションに関連する技術として、特許文献1に開示されているものがある。これの技術は、表示画面にモニタリング対象場所のレイアウト図と、カメラの設置位置と、このカメラによって得られる映像が、レイアウト図の上でどの範囲であるかを示す映像枠の中心位置と、この映像枠の大きさとがデータとして与えられており、表示画面上にレイアウト図を表示し、このレイアウト図上にカメラの位置と、映像枠とが表示される。
【0003】
【特許文献1】特開2006−148406号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上記の技術は、設置されたカメラの位置と、レイアウト図上のどの範囲が撮影されるかを表す映像枠とで、大まかに表示するものであるので、実際にカメラを配置する前にカメラを配置したら、どのような範囲を撮影可能であるかを事前に知ることには利用できない。特に、レイアウト図においても映像枠は、映像枠の大きさと映像枠の中心位置とから算出したものであるので、正確さに欠ける。
【0005】
本発明は、カメラを実際に設置する前に、カメラを設置したらどのような範囲を撮影することができるかを正確にシミュレーションすることができるプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様のカメラ設置シミュレータプログラムは、所定エリアにおけるカメラの配置及び当該カメラの撮影範囲をシミュレーションするためのものである。前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記所定エリアのデータに基づいて当該所定エリアの一部又は全部を表すエリア画像を表示装置に表示させる処理を行う。所定エリアは、二次元表示することもできるし、三次元表示することもできる。 前記エリア画像上に、前記カメラを表すカメラ表示子を重ねて配置して表示させる処理も、コンピュータは行う。前記エリア画像上のスケール、前記カメラ表示子の配置位置、当該配置位置を基点とした前記カメラの向き、前記カメラの画角、及び前記カメラの種類のうち、少なくとも1つは任意に設定可能であり、当該設定に応じて前記カメラの前記エリア上の撮影範囲を決定する処理を、コンピュータが行う。前記エリア画像上に、前記決定された撮影範囲を表す撮影範囲表示子を重ねて表示させる処理を、コンピュータが行う。
【0007】
このように構成されたカメラ設置シミュレータプログラムでは、カメラの配置位置、向き、カメラの画角等に応じて、カメラが撮影可能な撮影範囲を決定し、その決定された撮影範囲を表している撮影範囲表示子をエリア画像上に表示している。従って、どのような範囲を撮影可能であるかを確認することができる。
【0008】
また、前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記設定に応じて当該カメラの前記エリア上の死角範囲を決定する処理と、前記表示装置に表示したエリア画像上に当該死角範囲を表す死角範囲表示子を重ねて表示させる処理とを行うこともできる。死角範囲は、例えば、カメラと、カメラの撮影範囲のうち、カメラに近い側の縁との間の撮影不能な範囲である。このように構成すると、どの範囲が撮影不能であるかを事前に知ることができ、カメラをどのように配置すれば、この死角範囲を減少させることができるか、事前に判断することができる。
【0009】
さらに、前記エリア画像は、前記所定エリアの一部又は全部を表す上面図及び立面図を含むものとすることができる。この場合、前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記カメラ表示子を前記上面図上に重ねて配置して表示させる処理と、前記カメラ表示子を配置した前記上面図上の位置に対応する立面図上の位置に、前記カメラを表す別のカメラ表示子を重ねて配置して表示させる処理と、前記上面図及び立面図上それぞれに、前記設定に応じて決定された撮影範囲及び死角範囲表示子を表示させる処理とを行う。
【0010】
このように構成すると、カメラ表示子を上面図上に配置すると、上面図及び立面図それぞれに撮影範囲と死角範囲とをそれぞれ表す撮影範囲表示子及び死角範囲表示子が表示される。従って、上面及び立面の双方から、撮影範囲及び死角を把握することができる。
【0011】
また、前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記設定に応じて決定された撮影範囲及び前記エリア画像に基づいて三次元グラフィックスを生成し、前記表示装置に表示させる処理を行うこともできる。このように構成すると、三次元で撮影範囲を見ることができ、実際の撮影画像に近い感覚で撮影範囲を把握することができる。
【0012】
さらに、前記カメラ設置シミュレータプログラムを実行するコンピュータは、前記エリア画像上に、撮影対象を表す撮影対象表示子を重ねて配置して表示させる処理と、前記撮影範囲表示子に前記撮影対象表示子の一部又は全部が重なった場合に、前記撮影対象の三次元情報と、前記設定に応じて決定された撮影範囲及び前記エリアに基づいて、前記撮影対象表示子の重なった部分を含む三次元グラフィックスを生成し、前記表示装置に表示させる処理とを行うこともできる。撮影対象としては、種々のものがあるが、例えばエリアが建物の場合、その建物の内外を通過する人体や、建物の外部に駐車される車等がある。
【0013】
このように構成すると、実際の撮影範囲をシミュレーションした三次元グラフィックス中に、撮影対象表示子も表示され、しかもその表示は、撮影対象の三次元情報に基づいて行われているので、撮影対象が実際にどのように撮影されるかを正確に把握することができる。
【0014】
あるいは、前記カメラ設置シミュレータプログラムを実行するコンピュータは、ポインティング手段を備えたものとすることができる。例えばマウスやタブレットをポインティング手段として使用することができる。この場合、前記エリア画像上に重ねて表示されている前記カメラ表示子の位置及び前記撮影範囲表示子の範囲は、表示画面上で前記カメラ表示子および前記撮影範囲表示子を前記ポインティング手段で指定しドラッグすることで、変更が可能である。
【0015】
このように構成することによって、種々にカメラの位置や撮影範囲を変更した状態で、どのような撮影可能であるかを知ることができるので、最適なカメラの配置位置や撮影範囲を、カメラを実際に設置する前に知ることができる。
【0016】
また、前記カメラ設置シミュレータプログラムを実行するコンピュータは、ポインティング手段を備えることができる。この場合、前記エリア画像上に重ねて表示されている前記撮影対象表示子の位置及び向きは、表示画面上で前記撮影対象表示子を前記ポインティング手段で指定しドラッグすることで、変更が可能である
【0017】
このように構成することによって、撮影対象がエリア上の様々な位置に存在する場合でも、どのような撮影されるかを、カメラの設置前に知ることができる。
【0018】
また、前記所定エリアのデータは、二次元画像データとすることができる。このように構成すると、三次元画像データを使用するよりもデータ量が少なく、またコンピュータのCPUの負担が少なくなり、迅速な処理を行うことができる。特に、監視カメラの設置対象であるビル構内等の平面図(上面図)であれば、当該ビルの管理者から入手することも可能であるので、新たに上面図を作成する手間も省けるので利便性がとても高い。
【発明の効果】
【0019】
以上のように、本発明によれば、カメラを実際に設置する前に、カメラを設置したらどのような範囲を撮影することができるかをシミュレーションすることができる。
【発明を実施するための最良の形態】
【0020】
本発明の1実施形態のカメラ設置シミュレーション用プログラムは、コンピュータ、例えばパーソナルコンピュータで実行されるもので、パーソナルコンピュータの表示手段、例えば液晶表示装置の画面に、図1に示すような画像を表示する。なお、パーソナルコンピュータは、図示していないが、演算手段としてのCPU、記憶手段としてのメモリ、ハードディスク、指示手段としてのキーボード、ポインティング手段としてのマウスやタブレット等を備えている。
【0021】
画面には、ベースとなる窓2が表示されている。この窓2の左上部に、矩形の上面図窓4が表示されている。この上面図窓4内には、所定エリア、例えばカメラを設置しようとする領域、例えばビルの内外を表す上面図6が表示されている。この上面図6を表示するための表示データは、二次元画像データであり、図示していないが、ベース窓2に表示されているファイル読み込み用のタブをマウス等によって選択して、読み込まれたものであり、読み込む表示データは、種々の異なるものに変更可能である。例えば、当該ビルの管理者から受領した紙に印刷された上面図を、スキャナで読み取り、jpgデータとして取り込むことができる。上面図窓4は、上面図6の一部のみを表示しており、上面図窓4に、上面図6の他の部分を表示する場合には、上面図窓4の下部にあるスライダ4aを操作する。
【0022】
上面図窓4の斜め下方には、カメラ選択窓8が表示されている。カメラ選択窓8には、複数のカメラ、例えばビデオカメラの型番と、そのカメラの使用場所(例えば屋内用、屋外用)と、最小画角と、最大画角とが、リスト形式で表示されている。カメラの型番と使用場所とからカメラの種類を特定することができる。これらリストの内容を判断して、所望のものをマウス等で選択し、上面図6上にドラッグアンドドロップすると、カメラを表すシンボルであるカメラ表示子、例えばカメラ上面図表示子10が上面図6上に、これに重ねて表示される。同時に、上面図窓4の下方に配置されている立面図窓12内の立面図14内にも、カメラを表すシンボルである別のカメラ表示子、例えばカメラ立面図表示子16が表示される。
【0023】
同時に、カメラ上面図表示子10から伸びる水平視野表示子18が上面図6上に表示され、カメラ立面図表示子16から伸びる垂直視野表示子20が立面図14上に表示される。水平視野表示子18は、カメラが撮影可能な撮影範囲を水平面に投影した水平視野を表したもので、垂直視野表示子20は、カメラが撮影可能な撮影範囲を、その光軸が通る垂直面に投影した垂直視野を表したものである。
【0024】
これら水平視野表示子18や垂直視野表示子20をどのような大きさに表示するかを決定するために、上面図窓4内には、実線で水平基準線22が表示されており、この水平基準線22を何メートルとして認識するかを、事前にユーザーがマウス等を操作することによって設定している。同様に立面図14上に描いた基準面、例えば地面を表す地面表示子24の上方に破線で描いた高さ基準線表示子26の地面表示子24からの高さを何メートルとして認識するかを、事前にユーザーがマウス等を操作することによって設定している。また、立面図14ではカメラ立面表示子16から地面表示子24に垂直に表示されたカメラ位置表示子30と、このカメラ位置表示子30からの距離を表す目盛表示子32、32・・・が表示されている。
【0025】
水平視野表示子18及び垂直視野表示子20は、カメラ上面表示子10が上面図6に配置されたとき、予め定めた高さ、予め定めた俯角及び予め定めた方向にカメラが配置され、カメラは最大画角の状態にあると設定されて、表示されている。
【0026】
水平視野表示子18は、後述するように台形状に表示され、この台形の内側にある領域が撮影可能な範囲である。垂直視野表示子20は、立面図14に符号34で示す光軸表示子を通り地面に垂直な面に投影したカメラの撮影範囲を示しており、地面表示子24に近い近表示子20aと、地面表示子24から遠い遠表示子20bとを有している。この近表示子20aと遠表示子20bと地面表示子24とで囲われた範囲が撮影可能な範囲である。
【0027】
すなわち、図2に示すようにカメラの撮影範囲46は、カメラが地面側を向いているCCDカメラの場合、地面に底面を有する四角錘となる。これは、カメラのレンズがカバーするエリアは、円錐形であるが、その円錐形の中をCCDが四角形に切り取った形になるからである。このシミュレータでは、上面図に表示する水平視野は、図2の撮影範囲46を真上から見た形になるため、四角錘の地面に接している台形形の底面を描画したものが水平視野表示子18になる。
【0028】
また、垂直視野は、図3に示すように、カメラ光軸48を含み、地面に垂直な平面Sを考え、この平面Sに撮影範囲46を投影したものとなる。即ち、撮影範囲46におけるカメラに近い側面50と面Sとが交わって線分52ができ、視野46のカメラから遠い側面54が面Sと交わって線分56ができ、これら線分52、56と地面とからなる三角形状が垂直表示子20になる。
【0029】
この側面50とカメラとの間が撮影不能な死角範囲となり、これを地面に投影したものを上面図に表すと、カメラ上面表示子10側にある水平視野表示子18の短い縁とカメラ上面表示子10との間の破線で示した部分である。また、死角範囲を上記平面Sに投影したものを立面図に表すと、近表示子20aとカメラ位置表示子30との間のハッチングを付した部分である。
【0030】
カメラ上面表示子10は、これをマウス等でクリックして任意の方向にドラッグすることによって、配置位置を変更することができ、これによって水平視野表示子18の位置を変更することができ、水平視野表示子18をクリックして回転させることによって、カメラ上面表示子10、それの方向(光軸表示子34の方向)及び水平視野表示子18の方向を変化させることができる。
【0031】
カメラ立面表示子16は、これをマウス等でクリックして上下方向にドラッグすることにより、カメラ立面表示子16の高さ位置を変更することができ、これによって水平視野表示子18及び垂直視野表示子20の大きさ、死角範囲を変更することができる。また、垂直視野表示子20をマウス等でクリックした状態で回転させることによって俯角を変更することができ、これによって水平視野表示子18及び垂直視野表示子20の大きさ、死角範囲を変更することができる。
【0032】
上記の説明では、カメラの画角は最大の場合を前提として説明したが、水平視野表示子18または垂直視野表示子20の縁をマウス等でクリックして、内側に向かって移動させることによって画角を最小画角とした状態まで水平視野表示子18及び垂直視野表示子20を連続的に変更することができ、逆に最小画角とした状態から水平視野表示子18または垂直視野表示子20の縁をマウス等でクリックして、外側に向かって移動させることによって画角を最大画角とした状態まで水平視野表示子18及び垂直視野表示子20を連続的に変更することができる。
【0033】
カメラ選択窓8の下方には、撮影対象アイコン、例えば人物アイコン36と車アイコン38とが表示されている。人物アイコン36または車アイコン38をクリックして、上面図6にドラッグアンドドロップすると、撮影対象表示子、例えば人物上面表示子40または車上面表示子42が表示される。これら人物上面表示子40または車上面表示子42の配置位置及び方向は、ドラッグすることによって変更可能である。これらの配置位置が水平視野表示子18内であると、立面図14内に人物立面表示子44または車立面表示子(図示せず)が表示される。人物アイコン36または車アイコン38を上面図6にドラッグしたとき、人物アイコン36の場合には身長設定窓(図示せず)が、車アイコン38の場合には長さ設定窓(図示せず)が表示され、この窓にキーボードを操作して身長または長さを設定する。人物アイコンが表す人物の幅及び奥行寸法は、入力された身長に比例して設定され、同様に、車アイコン38が表す車の幅及び高さ寸法も車の長さに比例して予め設定される。従って、上述したように身長、車の長さを設定することによって、人物及び車の三次元データが全て揃う。
【0034】
カメラ選択窓8の上部の3D映像表示窓46に、水平視野表示子18及び垂直視野表示子20によって確定された撮影範囲と想定される3D映像が表示される。この3D映像は、上述したカメラ上面表示子10の配置位置及び方向と、カメラ立面表示子16の配置位置から決定されたカメラの三次元座標の位置から、地面を見た状態を上面図を座標変換することによって得た画像を、上記水平視野表示子18及び垂直視野表示子20によって規定された範囲に限定して表示したものである。但し、上面図は二次元画像データであり、上面図に表示されている様々な物体の高さデータは取得できないので、3D映像では高さは表現されていない。しかし、高さデータを使用していないので、3D映像の生成に要する時間は短縮することができる。
【0035】
但し、人物アイコン36及び車アイコン38に対応する人物及び車に対しては上述したように三次元データが揃っているので、人物上面表示子40や車上面表示子が水平視野表示子18内に全部または一部入っている場合、人物立面表示子44や車立面表示子が垂直視野表示子20内に全部または一部入っている場合、これらに対応する像が3D映像表示部46に三次元表示される。しかも、その像は、カメラから見た大きさに対応したものとして表示される。
【0036】
従って、例えばカメラを監視用に使用しようとする場合、監視したい場所に人物上面表示子40や車上面表示子42を配置し、カメラ上面表示子10の配置位置や方向を変更し、かつカメラ立面表示子16の高さや俯角を調整することによって、人物や車をどのように撮影することができるかを、3D映像表示窓44の表示から認識できる。また、人物上面表示子60や車上面表示子42をドラッグすることによって、移動する人物や車がどのように表示されるかを3D映像表示窓44の表示から認識できる。
【0037】
なお、上記の説明は、カメラ上面表示子10を1つだけ表示する場合のものであるが、複数のカメラ上面表示子10を同時に上面図6上に表示し、同時に複数のカメラの水平視野表示子18を上面図6上に表示することもできる。この場合、立面図14には、上面図でマウス等でクリックされている水平視野表示子18に対応する垂直視野表示子20のみが表示される。
【0038】
以下、水平視野表示子18及び垂直視野表示子20の表示アルゴリズムを説明する。
【0039】
まず垂直視野表示子20の表示について説明する。カメラ上面表示子16を上面図6に配置したときに、図4に示すカメラの設置高さZc、俯角ρ(高さ基準線表示子26に対応する高さ基準線58と光軸48との角度)、画角は自動的に設定される。画角が設定されると、図3に示す面S内における画角である垂直画角θvは算出される。線分52及び地面の交点Aとカメラ位置表示子30に相当するカメラ位置線60及び地面の交点0間の距離rg1と、線分56及び地面の交点Bと交点0間の距離rg2、線分52、56の長さrs1、rs2が判明すれば、線分52、56に相当する近表示子20a、遠表示子20bは表示可能になる。カメラの設置位置をCとすると、角CA0はρ+θv/2であり、角CB0はρ−θv/2であるので、rg1、rg2は、式(1)、式(2)で表され、rs1、rs2は式(3)、(4)で表される。
【0040】
rg1=Zc/(tan(ρ+(θv/2))・・・(1)
rg2=Zc/(tan(ρ−(θv/2))・・・(2)
rs1=Zc/(sin(ρ+(θv/2))・・・(3)
rs2=Zc/(sin(ρ−(θv/2))・・・(4)
【0041】
従って、立面図14において、カメラ位置表示子30から地面表示子24に沿ってrg1、rg2の位置に、カメラ位置表示子30上のZcに相当する位置から長さrs1、rs2に相当する長さの直線を描くことによって近表示子20a、遠表示子20bをそれぞれ表示することができる。カメラの設置高さZc、俯角ρ、画角のいずれかが変更されるごとに、式(1)、式(2)に基づいてrg1、rg2を演算して、近表示子20a、遠表示子20bをそれぞれ表示する。
【0042】
しかし、俯角や画角の変更によっては、遠表示子20bが図5に示すように、水平よりも上に来ることがある。即ちθv/2>ρのときがある。このとき、rg2を演算することはできない。その場合、カメラ位置表示子30から予め定めた一定距離rgeにおいて立てた垂線及び線分56の交点Dと前記垂線及び高さ基準線58の交点Eとの距離rz2が判明すれば、線分56を表示することができる。角DCEはθv/2−ρであるので、rz2は式3で表される。
【0043】
rz2=rge・tan(θv−ρ)・・・(5)
【0044】
従って、立面図14においてカメラ位置表示子30からrgeに相当する位置の垂線上にあるZc+rz2に相当する位置にカメラ位置表示子30上のZcに相当する位置から直線を描くことによって遠表示子20bを表示することができる。
【0045】
次に、水平視野表示子18の表示について説明する。図3において交点Aは、カメラ視野46の地面に投影された台形状底面のカメラ側にある上辺の両端Ar、Alの中点になる。同様に交点Bは、カメラ視野46の地面に投影された台形状底面のカメラから遠い側にある下辺の両端Br、Blの中点になる。水平視野表示子18を描くためには、Ar、Al、Br、Blの座標を算出する必要があり、そのためには交点Aから上辺の一方の端までの距離rw1、交点Bから可変の一方の端までの距離rw2、上述したrg1、rg2が必要である。rg1、rg2は、式(1)、(2)によって算出されている。
【0046】
次にrw1、rw2を算出するが、そのためには、角ArCAと角BrCBとが必要である。図6は、レンズ主点OとCCDとの関係を表した図で、fは焦点距離、WはCCDの横サイズ、θhは水平画角である。水平画角θhは、CCDにおいてレンズの焦点が中点となる横方向の線分Wの両端に対して主点Oがなす角度である。図7(a)のCCD上端においてCCDの横サイズは、Wで変化していないがレンズ主点OからCCDの上端の中点までの距離ftは焦点距離fよりも長くなり、このときの水平視野角θhtは水平画角θhよりも小さい。図7(b)においても同様で、CCD下端においてCCDの横サイズは、Wで変化していないがレンズ主点OからCCDの下端の中点までの距離fbは焦点距離fよりも長くなり、下端における水平視野角θhbは水平画角θhよりも小さくなる。これらの視野角θht、θhbは、ft、fbが求まれば算出することができる。
【0047】
そこで、図8に示すように垂直方向の断面を考える。このとき、光軸48はCCDの中央を貫いているとすると、fは式6から求められる。
【0048】
f=ft・cos(θv/2)・・・(6)
【0049】
次に、図6と図7(a)から式7、式8の関係が求められる。
【0050】
W/f=2tan(θh/2)・・・式(7)
W/ft=2tan(θht/2)・・・式(8)
【0051】
ここで式7に式6を代入すると、式9の関係が得られる。
【0052】
W/ft=2tan(θh/2)cos(θv/2)・・・式(9)
【0053】
式(9)に式(8)を代入すると、式(10)の関係が得られる。
【0054】
tan(θht/2)=tan(θh/2)cos(θv/2)・・・式(10)
【0055】
式10から式11が得られる。
【0056】
θht=2tan−1{tan(θh/2)cos(θv/2)}・・・式(11)
【0057】
ここで、ft=fbであるので、θht=θhbである。ここで、図3において求めたいrw1、rw2は式(10)を用いて式(12)、式(13)のように算出できる。
【0058】
rw1=rs1・tan(θhb/2)=rs1・tan(θh/2)cos(θv/2)・・・式(12)
rw2=rs2・tan(θht/2)=rs2・tan(θh/2)cos(θv/2)・・・式(13)
【0059】
このようにしてrg1、rg2、rw1、rw2が算出されたので、点Ar、Al、Br、Blの座標を算出することができる。
【0060】
上記のようにして求めたrg1、rg2、rw1、rw2は、ミリ単位である。上面図6上に描画するためにはミリスケールをピクセルスケールに変換する係数kwm(ピクセル/ミリ)を用いて変換する。カメラ上面表示子10が上面図6右方向に水平回転角が0radを向いているときの上面図6上での水平視野表示子18を図9に示す。このとき、カメラの上面図6上の点をCmとすると、水平視野表示子18の境界点となる点Amr、Aml、Bmr、Bmlの座標は、以下の式(14)乃至式(17)のように求められる。
【0061】
Aml=Cm+kwm(rg1,−rw1)・・・(14)
Amr=Cm+kwm(rg1,rw1)・・・・(15)
Bml=Cm+kwm(rg2,−rw2)・・・(16)
Bmr=Cm+kwm(rg2,rw2)・・・・(17)
【0062】
式(14)乃至(17)は、カメラの水平回転角が0radの場合である。図10のようにカメラの水平回転角がαradの場合には、式(18)で示す回転行列Rを考える。
【0063】
R=|cosα −sinα|
|sinα cosα| ・・・(18)
【0064】
式(14)乃至(17)の第2項に対して式(18)で表す回転角αの二次元回転行列を掛けることで、点Aml、Amr、Bml、Bmrの座標は、式(19)乃至(22)のように求められる。
【0065】
Aml=Cm+kwm・R(rg1,−rw1)・・・(19)
Amr=Cm+kwm・R(rg1,rw1)・・・・(20)
Bml=Cm+kwm・R(rg2,−rw2)・・・(21)
Bmr=Cm+kwm・R(rg2,rw2)・・・・(22)
【0066】
この座標を用いることによって上面図6上に水平カメラ視野表示子18を描画することができ、上面図6上でカメラ上面表示子10の水平回転角αが変更されるごとに、そのときのαを用いて式(19)乃至(22)を用いてAml、Amr、Bml、Bmrの新たな座標を算出し、水平視野表示子18を再描画する。
【0067】
カメラの俯角ρが小さい場合、rg2が大きな値になって上面図6内に水平視野表示子18を全て描画できないことがある。また、俯角が小さくなくても水平視野表示子18の奥行きを制限したいこともある。これらの場合、図11のように視野の奥行きを予め定めたrdに制限して描画することができる。この場合、rg2の代わりにrdを用いると、線分CBln長さrstは、式(23)で定まる。
【0068】
rst=rd/(cos(ρ−(θv/2)))・・・(23)
【0069】
ここで、式(13)において、rs2=rdとした上で、式(23)を代入すると式(24)でrw2が求まる。
【0070】
rw2=rd・(tan(θh/2)cos(θv/2))/(cos(ρ−(θv/2)))・・・(24)
【0071】
これを用い、後は上述したのと同様に計算を行えば、奥行きを制限した状態で上面図6上に水平視野表示子18を描画することができる。
【0072】
このようにして水平視野表示子18の各座標Aml、Amr、Bml、Bmrが決定されているので、カメラ立面表示子16の高さ位置、カメラ上面表示子10の上面図6上の座標位置とから確定されるカメラ位置から、前記各各座標Aml、Amr、Bml、Bmrで区画された上面図6の範囲を見た状態に、この範囲を座標変換することによって3D映像表示窓46に表示する3D映像が得られる。
【0073】
上記の実施形態では、上面図6に水平視野表示子18を、立面図14に垂直視野表示子20を表示した上に、3D映像表示窓46に撮影視野を3D表示したが、上面図6及び立面図14に代えて、撮影しようとするエリアを三次元表示する表示窓を設け、この三次元表示されたエリア内に、カメラ表示子を配置して、3D映像表示窓46に撮影範囲を3次元表示することもできる。
【0074】
或いは、3D映像表示窓44に3D映像を表示したり、人物表示子40や車表示子42を上面図6や立面図14上に表示したが、配置したカメラの水平及び垂直視野表示子18、20だけを表示するようにすることもできる。
【0075】
上記の実施形態では、水平視野表示子18を正確に描画するために、式(12)、(13)を用いてrw1、rw2を求めたが、描画精度との兼ね合いで或る程度rw1、rw2の精度が低くてもよい場合には、rw1、rw2は式(25)、(26)によって求めることもできる。
【0076】
rw1=rs1・tan(θh/2)・・・(25)
rw2=rs2・tan(θh/2)・・・(26)
【図面の簡単な説明】
【0077】
【図1】本発明の1実施形態のカメラ設置シミュレータ用プログラムに基づいてコンピュータが表示している画像を示す図である。
【図2】図1のプログラムによってシミュレーションしようとするカメラの視界を示す図である。
【図3】図2のカメラ視界と平面Sとの関係を示す図である。
【図4】俯角が大きい場合の垂直画角の範囲の表示の説明図である。
【図5】俯角が小さい場合の垂直画角の表示の説明図である。
【図6】水平画角とレンズ主点、CCDの関係を示す図である。
【図7】CCDの上端及び下端における水平視野角の説明図である。
【図8】CCDの中央、上端及び下端における焦点距離の関係を示す図である。
【図9】上面図上における水平回転角が0radの場合の水平視野表示子の表示状態を示す図である。
【図10】上面図上における水平回転角がαradの場合の水平視野表示子の表示状態を示す図である。
【図11】視野の奥行きを制限した場合のカメラ視界の説明図である。
【符号の説明】
【0078】
4 上面図表示窓
6 上面図
10 カメラ上面表示子
12 立面図表示窓
14 立面図
16 カメラ立面表示子
18 水平視野表示子
20 垂直視野表示子
【特許請求の範囲】
【請求項1】
所定エリアにおけるカメラの配置及び当該カメラの撮影範囲をシミュレーションするためのカメラ設置シミュレータプログラムであって、
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記所定エリアのデータに基づいて当該所定エリアの一部又は全部を表すエリア画像を表示装置に表示させる処理と、
前記エリア画像上に、前記カメラを表すカメラ表示子を重ねて配置して表示させる処理と、
前記エリア画像上のスケール、前記カメラ表示子の配置位置、当該配置位置を基点とした前記カメラの向き、前記カメラの画角、及び前記カメラの種類のうち、少なくとも1つは任意に設定可能であり、当該設定に応じて前記カメラの前記エリア上の撮影範囲を決定する処理と、
前記エリア画像上に、前記決定された撮影範囲を表す撮影範囲表示子を重ねて表示させる処理とを行う
ことを特徴とするカメラ設置シミュレータプログラム。
【請求項2】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記設定に応じて当該カメラの前記エリア上の死角範囲を決定する処理と、
前記表示装置に表示したエリア画像上に当該死角範囲を表す死角範囲表示子を重ねて表示させる処理とを行う
ことを特徴とする請求項1記載のカメラ設置シミュレータプログラム。
【請求項3】
前記エリア画像は、前記所定エリアの一部又は全部を表す上面図及び立面図を含み、
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記カメラ表示子を前記上面図上に重ねて配置して表示させる処理と、
前記カメラ表示子を配置した前記上面図上の位置に対応する立面図上の位置に、前記カメラを表す別のカメラ表示子を重ねて配置して表示させる処理と、
前記上面図及び立面図上それぞれに、前記設定に応じて決定された撮影範囲及び死角範囲表示子を表示させる処理とを行う
ことを特徴とする請求項2記載のカメラ設置シミュレータプログラム。
【請求項4】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記設定に応じて決定された撮影範囲及び前記エリア画像に基づいて三次元グラフィックスを生成し、前記表示装置に表示させる処理を行うことを特徴とする請求項1〜3いずれかに記載のカメラ設置シミュレータプログラム。
【請求項5】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記エリア画像上に、撮影対象を表す撮影対象表示子を重ねて配置して表示させる処理と、
前記撮影範囲表示子に前記撮影対象表示子の一部又は全部が重なった場合に、前記撮影対象の三次元情報と、前記設定に応じて決定された撮影範囲及び前記エリアに基づいて、前記撮影対象表示子の重なった部分を含む三次元グラフィックスを生成し、前記表示装置に表示させる処理とを行う
ことを特徴とする請求項4記載のカメラ設置シミュレータプログラム。
【請求項6】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、ポインティング手段を備え、
前記エリア画像上に重ねて表示されている前記カメラ表示子の位置及び前記撮影範囲表示子の範囲は、表示画面上で前記カメラ表示子および前記撮影範囲表示子を前記ポインティング手段で指定しドラッグすることで、変更が可能である
ことを特徴とする請求項1〜5のうちいずれか記載のカメラ設置シミュレータプログラム。
【請求項7】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、ポインティング手段を備え、
前記エリア画像上に重ねて表示されている前記撮影対象表示子の位置及び向きは、表示画面上で前記撮影対象表示子を前記ポインティング手段で指定しドラッグすることで、変更が可能である
ことを特徴とする請求項1〜6のうちいずれか1項に記載のカメラ設置シミュレータプログラム。
【請求項8】
前記所定エリアのデータは、二次元画像データであることを特徴とする請求項1〜7いずれか記載のカメラ設置シミュレータプログラム。
【請求項1】
所定エリアにおけるカメラの配置及び当該カメラの撮影範囲をシミュレーションするためのカメラ設置シミュレータプログラムであって、
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記所定エリアのデータに基づいて当該所定エリアの一部又は全部を表すエリア画像を表示装置に表示させる処理と、
前記エリア画像上に、前記カメラを表すカメラ表示子を重ねて配置して表示させる処理と、
前記エリア画像上のスケール、前記カメラ表示子の配置位置、当該配置位置を基点とした前記カメラの向き、前記カメラの画角、及び前記カメラの種類のうち、少なくとも1つは任意に設定可能であり、当該設定に応じて前記カメラの前記エリア上の撮影範囲を決定する処理と、
前記エリア画像上に、前記決定された撮影範囲を表す撮影範囲表示子を重ねて表示させる処理とを行う
ことを特徴とするカメラ設置シミュレータプログラム。
【請求項2】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記設定に応じて当該カメラの前記エリア上の死角範囲を決定する処理と、
前記表示装置に表示したエリア画像上に当該死角範囲を表す死角範囲表示子を重ねて表示させる処理とを行う
ことを特徴とする請求項1記載のカメラ設置シミュレータプログラム。
【請求項3】
前記エリア画像は、前記所定エリアの一部又は全部を表す上面図及び立面図を含み、
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記カメラ表示子を前記上面図上に重ねて配置して表示させる処理と、
前記カメラ表示子を配置した前記上面図上の位置に対応する立面図上の位置に、前記カメラを表す別のカメラ表示子を重ねて配置して表示させる処理と、
前記上面図及び立面図上それぞれに、前記設定に応じて決定された撮影範囲及び死角範囲表示子を表示させる処理とを行う
ことを特徴とする請求項2記載のカメラ設置シミュレータプログラム。
【請求項4】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記設定に応じて決定された撮影範囲及び前記エリア画像に基づいて三次元グラフィックスを生成し、前記表示装置に表示させる処理を行うことを特徴とする請求項1〜3いずれかに記載のカメラ設置シミュレータプログラム。
【請求項5】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、
前記エリア画像上に、撮影対象を表す撮影対象表示子を重ねて配置して表示させる処理と、
前記撮影範囲表示子に前記撮影対象表示子の一部又は全部が重なった場合に、前記撮影対象の三次元情報と、前記設定に応じて決定された撮影範囲及び前記エリアに基づいて、前記撮影対象表示子の重なった部分を含む三次元グラフィックスを生成し、前記表示装置に表示させる処理とを行う
ことを特徴とする請求項4記載のカメラ設置シミュレータプログラム。
【請求項6】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、ポインティング手段を備え、
前記エリア画像上に重ねて表示されている前記カメラ表示子の位置及び前記撮影範囲表示子の範囲は、表示画面上で前記カメラ表示子および前記撮影範囲表示子を前記ポインティング手段で指定しドラッグすることで、変更が可能である
ことを特徴とする請求項1〜5のうちいずれか記載のカメラ設置シミュレータプログラム。
【請求項7】
前記カメラ設置シミュレータプログラムを実行するコンピュータは、ポインティング手段を備え、
前記エリア画像上に重ねて表示されている前記撮影対象表示子の位置及び向きは、表示画面上で前記撮影対象表示子を前記ポインティング手段で指定しドラッグすることで、変更が可能である
ことを特徴とする請求項1〜6のうちいずれか1項に記載のカメラ設置シミュレータプログラム。
【請求項8】
前記所定エリアのデータは、二次元画像データであることを特徴とする請求項1〜7いずれか記載のカメラ設置シミュレータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−105802(P2009−105802A)
【公開日】平成21年5月14日(2009.5.14)
【国際特許分類】
【出願番号】特願2007−277419(P2007−277419)
【出願日】平成19年10月25日(2007.10.25)
【出願人】(000223182)ティーオーエー株式会社 (190)
【Fターム(参考)】
【公開日】平成21年5月14日(2009.5.14)
【国際特許分類】
【出願日】平成19年10月25日(2007.10.25)
【出願人】(000223182)ティーオーエー株式会社 (190)
【Fターム(参考)】
[ Back to top ]