JP2018196016A - 情報処理装置、情報処理方法およびプログラム - Google Patents
情報処理装置、情報処理方法およびプログラム Download PDFInfo
- Publication number
- JP2018196016A JP2018196016A JP2017099066A JP2017099066A JP2018196016A JP 2018196016 A JP2018196016 A JP 2018196016A JP 2017099066 A JP2017099066 A JP 2017099066A JP 2017099066 A JP2017099066 A JP 2017099066A JP 2018196016 A JP2018196016 A JP 2018196016A
- Authority
- JP
- Japan
- Prior art keywords
- camera
- information processing
- processing apparatus
- orientation
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Closed-Circuit Television Systems (AREA)
- Studio Devices (AREA)
Abstract
【課題】図面上にカメラを配置する際に、意図した方向を向くようにして、カメラ配置の手間を軽減する情報処理装置を提供する。【解決手段】図面上でカメラのレイアウト決定を支援する際に、図面に配置するカメラと1つ以上のオブジェクトの其々について位置の指定を受け付け、位置を指定されたカメラについて、カメラ−オブジェクト関連テーブルによる距離に基づいてオブジェクトの優先度を算出して、オブジェクトに対応づけられた優先度に基づいてカメラの向きを決定する。【選択図】図11
Description
本発明は、監視カメラを設置する前に、図面上で監視カメラの配置をシミュレーションする情報処理装置であり、特にカメラの向きの制御に関するものである。
建築図面を利用して監視カメラの配置をシミュレーションする技術において、図面上の各監視カメラが撮影可能な範囲を表示することで、図面に配置されている監視カメラのカバーする範囲を視認し易くする技術がある。
また、特許文献1では、カメラごとに撮影可能な範囲を定義した上で、ユーザが任意の撮影点を指定すると、指定した撮影点を撮影できるカメラの撮影可能範囲を表示し、撮影点を撮影するために適切なカメラをユーザが容易に選択できる技術を開示している。
特許文献1では、ユーザが指示した1つの撮影点について適切なカメラを確認することはできたが、複数の撮影点を総合的に考慮してカメラ配置を決定することができなかった。
上述した課題を解決するために、本発明に係わる情報処理装置は、図面上でカメラのレイアウト決定を支援する情報処理装置であって、表示部に図面を表示させる表示制御手段と、前記図面に配置するカメラと1つ以上のオブジェクトの其々について、位置の指定を受け付ける受け付け手段と、前記受け付け手段によって位置を指定されたカメラについて、前記オブジェクトに対応づけられた優先度に基づいてカメラの向きを決定する決定手段と、を有することを特徴とする。
本発明によれば、カメラの周囲のオブジェクトに基づいてカメラ向きを簡単に設定し、カメラレイアウトの手間を軽減することができるようになる。
以下、本発明を実施するための形態の一例としての監視カメラのレイアウト決定を支援する情報処理装置を、図面を参照して詳細に説明する。
<<実施例1>>
<情報処理装置の構成>
図1は、監視カメラのレイアウト決定を支援するための情報処理装置の概略構成を示す図である。
<情報処理装置の構成>
図1は、監視カメラのレイアウト決定を支援するための情報処理装置の概略構成を示す図である。
図1において、CPU101は、中央処理装置である。ROM102は読み出し専用メモリであり、ランダムアクセスメモリRAM103とともに、バス104を介してCPU101に接続されている。CPU101は、ROM102またはRAM103に格納されたプログラムを直接実行することができる。
バス104には、入力インターフェース105、HDDインターフェース107、ビデオインターフェース109、出力インターフェース111も接続されている。キーボードやマウス、スキャナ、カメラなどの入力デバイス106は、入力インターフェース105を経由することで、CPU101に情報を入力することが可能である。
ハードディスクデバイスや光ディスクデバイス、ソリッドステートドライブ(SSD)などの二次記憶装置108は、HDDインターフェース107を経由することでCPU101から読み書き可能である。二次記憶装置108上に格納されたデータは不図示のダイレクトメモリアクセスコントローラ(DMAC)などを用いて、RAM103上に展開することができ、同様に、RAM103上に展開されているデータを、二次記憶装置108に保存することも可能である。CPU101は、二次記憶装置108からRAM103上に展開されたデータをプログラムコードとみなし、実行することも可能である。
モニタ110上には、CPU101にビデオインターフェース109を操作させることで、任意の文字や画像をCPU101から表示制御させることが可能である。プリンタやプロッタといった出力デバイス112は、出力インターフェース111を経由することでCPU101から情報を送付することが可能である。入力デバイス106の場合と同様に、CPU101は、出力インターフェース111を経由することで、出力デバイス112のデバイス情報や機能情報を読み取ることも可能である。また、入力デバイス106や出力デバイス112は、ネットワーク上の別の情報処理装置と共有されていてもよい。GPU113は、画像処理用のプロセッサ部であり、画像処理の様に単純で膨大なデータを処理する場合は、CPU101よりも高速に動作することができる。
<全体概要>
図2は、カメラの向きを適切な向きに設定するため、図1で示した構成を備える情報処理装置201で動作するレイアウト支援プログラムによって実現される機能構成の概略を示すブロック図である。
図2は、カメラの向きを適切な向きに設定するため、図1で示した構成を備える情報処理装置201で動作するレイアウト支援プログラムによって実現される機能構成の概略を示すブロック図である。
制御部202はプログラム全体の制御を行い、入力部203〜カメラ向き算出部205や後の後述の各種テーブルの初期化や処理の指示を行う。なお、レイアウト支援プログラムは、図面を読み込んだり、スケールを設定したり、レイアウトデータを読み込んだり、保存したり、カメラや壁などの各種オブジェクトを配置した状態で図面を印刷したりする機能(不図示)も持つ。そして、制御部202はこれらの各機能構成に対しての指示も行えるように構成されている。
入力部203は制御部202からの指示を受けて、マウスなどの入力デバイス106からの入力を受け付け、図面上の入力内容をRAM103に保存する。例えば、オブジェクトを図面上に配置するときにRAM103に保存する内容として、後述するウィンドウ座標系におけるオブジェクトの位置を示す座標がある。
配置部204は制御部202からの指示を受けて、図面上に配置するオブジェクトの位置、大きさ、向き(配置方向)を決定してモニタ110に表示する。カメラ向き算出部205は配置部204からの指示を受け、後述する各種テーブルの情報(距離や優先度、手前フラグ等)を更新するとともに、これらのテーブルで管理する情報に基づいて、カメラの向き(配置方向)を算出する。
<データ形式>
RAM103は、図面上に配置する各種オブジェクトの位置やサイズといった情報を3次元データとして保持している。なお、2次元データで保持していても本発明は実現可能である。
RAM103は、図面上に配置する各種オブジェクトの位置やサイズといった情報を3次元データとして保持している。なお、2次元データで保持していても本発明は実現可能である。
ここで、3次元データと2次元データの変換手法について説明する。例えばOpen Graphics Library(以下OpenGL)で使われている方法がある。OpenGLでは、3次元データを2次元データに変換する際に、各種座標系を経て変換される。OpenGLを利用する場合は、まず、各種オブジェクトの大きさや形などの情報をローカル座標系でRMA103が保持し、図面上に配置する際に、GPU113がワールド座標系に変換してRAM103に保持する。その後、ワールド座標系において、モニタ110に表示するための視点を設定し、その視点を原点とする新たな座標系である視点座標系にGPU113が変換する。その後、投影変換により視点座標系においてモニタ110に表示したい範囲をCPU113が切り出して正規化デバイス座標系に変換し、最後にビューポート変換を行いウィンドウ座標系で2次元のデバイスピクセルに変換する。ワールド座標系において図面や各種オブジェクトを配置するが、ワールド座標系の1単位がリアルな世界で何メートルかを表すスケールS(メートル/ワールド座標系1単位)を用いることで、リアルな世界の大きさに変換することができる。これらの変換は主に行列変換を用いるが、2次元から3次元の変換は逆順に逆行列を適用することで逆変換することができる。逆変換によって、例えば、リアルな世界の位置(メートル単位)が、ワールド座標系における位置(ワールド座標系)に変換される。この時、変換後の3次元データのうち、1次元だけを固定する必要がある。例えば、Z軸上で正の位置に、原点を向く視点を設定した場合、Z軸方向を高さ方向としてZ値を0で固定すると、XY平面上に変換できる。なお、ここではメートルを単位としたが、フィートなど別の単位を用いても構わない。また、上述の変換処理はGPU113が行うように説明しているが、変換処理の一部または全部をCPU101が行うようにしてもよい。ここで説明した、各種変換や逆変換はよく知られているため、以下において詳細な説明は省略する。
<レイアウト支援プログラムのユーザインターフェース>
図4は、図1の構成を有する情報処理装置で動作するレイアウト支援プログラムのユーザインターフェースの一部を示したものであり、モニタ110に表示されるも内容の一例を示す。
図4は、図1の構成を有する情報処理装置で動作するレイアウト支援プログラムのユーザインターフェースの一部を示したものであり、モニタ110に表示されるも内容の一例を示す。
図4において、カメラ追加ボタン401、机追加ボタン402、壁追加ボタン403、レジ追加ボタン404、入り口追加ボタン405、人追加ボタン406などはフロアマップ表示部410に其々の描画オブジェクトを追加するためのボタンである。図示しないが、車など、その他のオブジェクトも追加することができるようにしてもよい。これらの、各種追加ボタンはトグルボタンになっており、各ボタンを押した後にフロアマップ表示部410上の任意の位置をマウスでクリック等して指定することで、クリックした位置に各オブジェクトを配置することができる。
図面411はフロアマップ表示部410内に読み込んだ図面である。図面411は、図面読み込みボタン415を押下することで、情報処理装置のファイルシステムを参照し、読み込む候補のフォルダやファイル一覧を表示させ、表示された内容からユーザが選択することで読み込むことができるが、詳細な説明は省略する。机422やレジ424、カメラ421はフロアマップ表示部410にユーザが配置したオブジェクトである。フロアマップ表示部410に配置済みオブジェクトをマウスで選択し、ドラッグ&ドロップで再配置したり、形や大きさを変えたりすることもできる。
また、フロアマップ表示部410には、スケールSが関連付けられている。スケールSは読み込んだ図面ごとにユーザが指定できる。例えば、ワールド座標系に配置した図面上にスケール線がある場合、フロアマップ410上で、スケール線の両端をユーザが指定し、上述の逆変換を行うことでワールド座標系における長さを算出できる。そして、指定したスケール線の長さが何メートルかをユーザが指定することで、「指定したメートル/ワールド座標系での長さ」の割り算を行い、スケールSを算出することができる(不図示)。このように、スケールSを用いることで、図面411に対して、適切な大きさで机422などを表示することが可能となる。原点412は図面411の左下の角に位置し、原点412から右にX軸413が伸び、原点412から上にY軸414が伸びている。XY軸の単位はメートルであり、図面上のオブジェクト位置をXY座標値で表すことができる。なお、ここではメートルを単位としたが、フィートなど別の単位を用いても構わない。また、説明の簡便のために、原点の位置はフロアマップ410内に読み込んだ図面の左下としたが、フロアマップ表示部410上の任意の位置を原点としても構わない。
<フロアマップ情報テーブル>
図10は、フロアマップ情報テーブル1000の概略を示す。フロアマップ情報テーブル1000はレイアウト支援プログラム201の起動時に作成され、フロアマップ表示部410の表示内容に関する情報を含み、RAM103に保存されている。
図10は、フロアマップ情報テーブル1000の概略を示す。フロアマップ情報テーブル1000はレイアウト支援プログラム201の起動時に作成され、フロアマップ表示部410の表示内容に関する情報を含み、RAM103に保存されている。
スケール情報1001は、図4で説明したフロアマップ410に関連付けられるスケールSの内容を示しており図の例ではワールド座標系に変換すると1mに対応することを示している。図面パス1002は、図4の説明した図面411のパス(情報処理装置における格納場所を示すアドレス)を保存する。このパスは図面読み込みボタン415を押下した際にユーザが指定したファイルに基づいて入力部203が格納する。ピクセル密度1003は、後述する最大距離903を算出する際に使用する情報である。例えば、16cmの幅の顔の識別に40ピクセルが必要だとすると、40/16=2.5(ピクセル/cm)以上のピクセル密度があればよいと考えることができる。
本実施例では、ピクセル密度をフロアマップ情報テーブル1000に関連付けているが、配置するレジや人などのオブジェクトごとに設定したり、他のテーブルと関連付けたりしてもよい。
<カメラ配置処理フロー>
以下、図3のフローチャートを用いて、レイアウト支援プログラム201における、図面上にカメラを配置する処理の流れの概略を説明する。以下、簡便のため、高さ方向を表すZ軸について、Z=0の平面上に図面を配置したものとし、Z軸正方向から原点(X,Y,Z)=(0,0,0)を見た平面図(上面図)を例に説明する。
以下、図3のフローチャートを用いて、レイアウト支援プログラム201における、図面上にカメラを配置する処理の流れの概略を説明する。以下、簡便のため、高さ方向を表すZ軸について、Z=0の平面上に図面を配置したものとし、Z軸正方向から原点(X,Y,Z)=(0,0,0)を見た平面図(上面図)を例に説明する。
ステップS301において、入力部203はユーザがマウスなどの入力デバイス106でカメラ追加ボタン401をクリックする等のカメラオブジェクトの指定を受け付ける。そして、入力部203は押下中の追加ボタンを特定できる情報(例えば後述するオブジェクト種別ID501と機種ID701などのユニークな値)をRAM103に保存する。
ステップS302において、入力部203はユーザがマウスなどの入力デバイス106でフロアマップ表示部410上をクリックする等の位置指定を受け付けて、指定された位置をウィンドウ座標系についてピクセル値でRAM103に保存する。次に、配置部204は、先に述べた2次元から3次元への逆変換により、ピクセル値に基づいてワールド座標系におけるオブジェクト配置位置を算出し、RAM103に保存する。
ステップS303において、カメラ向き算出部205は、配置するカメラ周囲の各種オブジェクトの情報などを元に、配置するカメラの最適な向きを算出する。算出処理の詳細は図11を用いて後述する。
以上のステップS301〜S303の処理によって、図面上に配置済みの各種オブジェクトの情報を元に、配置するカメラの向きを最適な方向に向けて配置することができる。
<オブジェクト種別テーブル>
図5は、オブジェクト種別テーブル500の概略を示しており、本テーブルはカメラや机といったオブジェクトごとの情報をエントリとして管理するテーブルで、二次記憶装置108に予め保存される。また、レイアウト支援プログラム201起動時にあらかじめRAM103に展開されている。
図5は、オブジェクト種別テーブル500の概略を示しており、本テーブルはカメラや机といったオブジェクトごとの情報をエントリとして管理するテーブルで、二次記憶装置108に予め保存される。また、レイアウト支援プログラム201起動時にあらかじめRAM103に展開されている。
オブジェクト種別ID501は、オブジェクトの種別(後述のオブジェクト種別502)ごとにふられるユニークな識別子である。オブジェクト種別502は、カメラや机といった、オブジェクトの種類を示す情報である。重み503は、オブジェクト種別ごとに設定され、カメラの向きを決める際に参照される、重みである。重み503は、簡単に説明すると、数値が大きいほど、そのオブジェクトの方を向き、逆に小さいほど、そのオブジェクトを向かない、性質を持つ数値である。もちろん、ユーザが入力デバイス106を操作し、各設定値を変更したり、新しいレコードや設定を追加したりしてもよい。
なお、図示しないが、オブジェクトの3次元データに含まれる各頂点を示すデータ(頂点データ)や、オブジェクトのテクスチャなどの情報もオブジェクト種別テーブル500に含まれる。
<配置オブジェクトテーブル>
図6は、配置オブジェクトテーブル600の概略を示しており、本テーブルはフロアマップ表示部410に配置した、各種オブジェクトに関する情報を管理するテーブルで、RAM103に保存される。追加ボタン401が押下されると、配置オブジェクトテーブル600に新規レコードが作成され、入力部203がユーザの操作に応じて情報を格納する。なお、ここで図示しない操作により追加処理がキャンセルされると、作成されたレコードは削除されて元に戻る。
図6は、配置オブジェクトテーブル600の概略を示しており、本テーブルはフロアマップ表示部410に配置した、各種オブジェクトに関する情報を管理するテーブルで、RAM103に保存される。追加ボタン401が押下されると、配置オブジェクトテーブル600に新規レコードが作成され、入力部203がユーザの操作に応じて情報を格納する。なお、ここで図示しない操作により追加処理がキャンセルされると、作成されたレコードは削除されて元に戻る。
オブジェクトID601は、フロアマップ表示部410に配置済みのオブジェクト(以下、単に配置済みオブジェクトと称す)を一意に特定できるユニークな識別子であり、レコード生成時にエントリ(行)が追加される。オブジェクト種別ID602は、配置済みオブジェクトがどのオブジェクトの種類であるかを示す情報であり、ユーザが押下したオブジェクト追加ボタンに応じて、入力部203がオブジェクト種別テーブル500を参照して格納する。座標603は、入力部203によって設定される情報であり、配置済みオブジェクトの3次元のワールド座標系における位置を示す。なお、リアルな世界の座標に変換したい場合は、フロアマップ表示部410に関連付けられているスケールSを用いて算出できる。
座標603は、例えばカメラ追加ボタン401を押下した後にフロアマップ表示部410上をマウスでクリックして、位置が決まった時に入力部203が保存する。大きさ604は、ワールド座標系における配置済みオブジェクトの大きさであり、向き605は、配置済みオブジェクトの向きを示す情報ある。例えば、オブジェクト種別がカメラの場合は、次の2つの角度で向きを表す。1つ目は、原点を中心としてXY平面上に円の周方向の角度(X軸方向を0度、Y軸方向を90度とする)である。2つ目は、XY平面からZ軸についてマイナス方向に傾いた角度、いわゆる俯角である。カメラ以外のオブジェクトについても同様である。なお、どのオブジェクトも、俯角の代わりに、Z軸方向をプラス方向に向いた角度としてもよい。また、クォータニオンを用いて向きを表してもよい。また、XYZ空間の単位ベクトルで向きを表してもよい。
<カメラ−オブジェクト関連テーブル>
図7は、カメラ−オブジェクト関連テーブル700である。本テーブルは、フロアマップ表示部410に配置済みのカメラオブジェクト(以降、配置済みカメラオブジェクトと称す)に対する、カメラ以外の配置済みオブジェクトとの関係についての情報を格納するテーブルで、RAM103に保存される。図6の配置オブジェクトテーブル600と同様に、カメラ−オブジェクト関連テーブル700も、追加ボタン401を押した時点で、レコードが作成され、追加処理がキャンセルされるとレコードは削除される。
図7は、カメラ−オブジェクト関連テーブル700である。本テーブルは、フロアマップ表示部410に配置済みのカメラオブジェクト(以降、配置済みカメラオブジェクトと称す)に対する、カメラ以外の配置済みオブジェクトとの関係についての情報を格納するテーブルで、RAM103に保存される。図6の配置オブジェクトテーブル600と同様に、カメラ−オブジェクト関連テーブル700も、追加ボタン401を押した時点で、レコードが作成され、追加処理がキャンセルされるとレコードは削除される。
オブジェクト701は、オブジェクトID601と同じIDである。距離702には、配置済みのカメラオブジェクトと各配置済みオブジェクトとの距離を保存する。優先度703は、配置済みオブジェクトのオブジェクト種別ごとに決められた重み503と、距離702とから、算出される数値である。手前フラグ704は、該当するカメラから見て、各配置済みオブジェクトの手前に遮る別のオブジェクトがあれば、falseが設定され、遮るオブジェクトがなければtrueが設定される、手前フラグである。手前フラグ704は、該当するカメラから見ることができる配置済みオブジェクトだけがtrueになる。例えば、カメラ向き算出部205がワールド座標系における、該当するカメラの座標603から、各配置済みオブジェクトの座標603を結ぶ線分を考える。次に、この線分と、他の配置済みオブジェクトの頂点データで構成するポリゴンとの交点が見つかれば、遮るオブジェクトがあると判定でき、カメラ向き算出部205が手前フラグ704にfalseを設定する。なお、各配置済みオブジェクトの座標603ではなくて、各配置済みオブジェクトの各頂点や頂点で構成するポリゴンとカメラの座標603との線分を考えても、本発明は実現可能である。
考慮フラグ705は、後述するステップS1105とステップS1106において、処理対象か否かを管理するために、後述するステップS1104で設定される、フラグである。向き706は、カメラ向き算出部205が取得したもので、配置済みオブジェクトの座標603から、配置するカメラの座標603を向く単位ベクトルで表される。なお、ここで、配置済みオブジェクトの座標603からの単位ベクトルとしたが、配置済みオブジェクトを構成するポリゴンの任意の点から、配置するカメラの座標603を向く単位ベクトルとしてもよい。
<カメラ機種テーブル>
図8は、カメラ機種テーブル800であり、カメラ機種に関する情報を格納するテーブルで、二次記憶装置108に予め保存される。レイアウト支援プログラム201起動時にRAM103に展開される。
図8は、カメラ機種テーブル800であり、カメラ機種に関する情報を格納するテーブルで、二次記憶装置108に予め保存される。レイアウト支援プログラム201起動時にRAM103に展開される。
機種ID801は、カメラの機種を一意に特定できるユニークな識別子である。カメラ追加ボタン401に関連付けられており、押下したカメラ追加ボタン401ごとに、機種ID801が対応付けられている。機種名802は、カメラの機種名を示し、最低撮影距離803は、カメラがこの距離より被写体に近づくとフォーカスが合わなくなるという距離を示す情報である。画角最小値804は、カメラで設定可能な最小の画角を表し、画角最大値805は、カメラで設定可能な最大の画角を表し、映像サイズ806は、カメラで選択可能な映像サイズのリストを示している。
<配置カメラテーブル>
図9は、配置カメラテーブル900であり、配置しようとするカメラに関する情報を格納するテーブルで、RAM103に保存される。図6の配置オブジェクトテーブル600と同様に、配置カメラテーブル900も、追加ボタン401を押した時点で、レコードが作成され、追加処理がキャンセルされたらレコードは削除される。
図9は、配置カメラテーブル900であり、配置しようとするカメラに関する情報を格納するテーブルで、RAM103に保存される。図6の配置オブジェクトテーブル600と同様に、配置カメラテーブル900も、追加ボタン401を押した時点で、レコードが作成され、追加処理がキャンセルされたらレコードは削除される。
オブジェクトID901は、オブジェクトID601と同じものであり、機種ID902は、機種ID801と同じIDである。最大距離903は、カメラ向き算出部205がカメラ向きを算出する際に、使用する配置済みオブジェクトとの距離の最大値を示す。画角904は、配置した時に設定する画角である。
例では、画角最大値805が設定されているが、別の値でも構わない。選択映像サイズ905は、カメラを実際に配置した時に設定する映像サイズである。この例では、映像サイズ806に示される最大のサイズが設定されているが、他の値が選択されていても構わない。例では、最大距離903は、4.21mとなっており、算出方法は次のとおりである。
画角904が122.1°で、選択映像サイズ905が1280x960の場合に、ピクセル密度1003が2.5(ピクセル/cm)以上を要求する場合、許容できる最大距離903をXメートルとすると、X×tan(62.6/2)=(1280/2)/(2.5×100)という計算式が成り立ち、この式から最大距離X=4.21メートルという数値を得ることができる。なお、簡便のため最大距離903として無限大(もしくは、最大距離903を最大値)を設定しても構わない。
<カメラ向きを決定する処理について>
図11は、ステップS303における、配置するカメラの最適な向きを算出する処理の詳細を表すフローチャートである。
図11は、ステップS303における、配置するカメラの最適な向きを算出する処理の詳細を表すフローチャートである。
ステップS1101において、カメラ向き算出部205は、配置するカメラと各配置済みオブジェクトとの間に他のオブジェクトがあれば、図7のカメラ−オブジェクト関連テーブル700の手前フラグ704にfalseを設定する。なければtrueを設定する。ステップS1102において、カメラ向き算出部205は、配置済みオブジェクトごとに、配置するカメラとの距離を算出する。カメラと配置済みオブジェクトの位置は、図6の配置オブジェクトテーブルの座標603から取得できる。この2点から3次元距離を算出して、スケールSをかけることで距離を算出できる。算出した距離は、図7のカメラ−オブジェクト関連テーブルの距離702に保存する。
ステップS1103において、カメラ向き算出部205は、図5のオブジェクト種別テーブルの重み503を取得してRAM103に格納する。格納した重み503と、図7のカメラ−オブジェクト関連テーブルの距離702とから、オブジェクトの優先度を算出して、図7のカメラ−オブジェクト関連テーブルの優先度703に保存する。優先度703の算出方法は図12を用いて後述する。
ステップS1104において、カメラ向き算出部205は、配置するカメラからの距離702が、最低撮影距離803から最大距離903の範囲内にあり、かつ、優先度703が正数で、手前フラグ704がtrueの配置済みオブジェクトがあるかを判定する。該当する配置済みオブジェクトがあれば、該当するオブジェクトの考慮フラグ705にtrueを設定し、その他のオブジェクトの考慮フラグ705にfalseを設定して、ステップS1105へと進む。該当するオブジェクトがなければ、優先度703が負数で、かつ手前フラグ704がtrueの配置済みオブジェクトの考慮フラグ705をtrueに設定し、その他のオブジェクトの考慮フラグ705にfalseを設定して、ステップS1106へと進む。なお、ここで、最低撮影距離803から最大距離903の範囲内の距離に配置済みオブジェクトがあるか判定したが、別の方法で範囲を定めても本発明は実現可能である。
ステップS1105において、カメラ向き算出部205は、考慮フラグ705がtrueの配置済みオブジェクトの中で、優先度703が最大値のオブジェクトの座標603を取得する。次に、配置するカメラから、該当する配置済みオブジェクトへ向くベクトルを算出し、オブジェクト向き605に設定して、カメラを該当する配置済みオブジェクトに向ける。
ステップS1106において、カメラ向き算出部205は、考慮フラグ705がtrueの配置済みオブジェクトの、距離702、優先度703、向き706から、向きを算出し、オブジェクト向き605に設定して、カメラを該当する配置済みオブジェクトに向ける。オブジェクト向き605の算出方法については、図13を用いて後述する。
<オブジェクト配置例>
図12〜14は、オブジェクトを配置する例である。ここで、説明を簡略化するために、XY平面だけ考える。なお、Z方向を考慮しても本発明は実現可能である。また、配置するカメラは、図9の配置カメラテーブルに示した値が設定されているものとする。また、図12〜14の符号について、図4の説明で記載した内容と同一のものについては同じ符号を付すとともにその符号の示す内容の説明は省略する。なお、図面411は読み込んでいるものとするが、図が煩雑になるため図12〜15の中には示していない。
図12〜14は、オブジェクトを配置する例である。ここで、説明を簡略化するために、XY平面だけ考える。なお、Z方向を考慮しても本発明は実現可能である。また、配置するカメラは、図9の配置カメラテーブルに示した値が設定されているものとする。また、図12〜14の符号について、図4の説明で記載した内容と同一のものについては同じ符号を付すとともにその符号の示す内容の説明は省略する。なお、図面411は読み込んでいるものとするが、図が煩雑になるため図12〜15の中には示していない。
図12は、壁1201、1202が配置されているフロアマップ410上に、カメラ1203を配置する例である。ステップS1102により、各種テーブルを参照し、カメラ1203から、壁1201への距離702を1.0m、壁1202への距離702を、2.0mと算出されたとする。ステップS1103において、カメラ向き算出部205が(優先度703=重み503/距離702)という計算式によって優先度703を算出する。
図5のオブジェクト種別テーブルより、重み503を取得する。例えば、壁オブジェクトの重み503は−3とする。壁1201の優先度703は、具体的には、(−3)/1.0 = −3と算出される。同様に、壁1202の優先度703は、優先度703の−3を距離702の2mで割って、−1.5と算出される。ステップS1104により、カメラ−オブジェクト関連テーブルで、考慮フラグ705がtrueのオブジェクトは、負数のものしかないため、ステップS1106に進み、下記のようにオブジェクト向きを算出する。
壁1201から見た、カメラ1203の向き706は、XY平面で考えると(1,0)で表される。壁1202から見た、カメラ1203の向き706は、(0,−1)である。このとき、各オブジェクトの向き706に、正規化された優先度703をかけて、和を取ると、オブジェクト向き605となる。
以下、具体的な数値を当てはめて例示する。壁1201の優先度703は−3であり、壁1202の優先度は−1.5なので、それぞれを正規化すると、
ABS(−3/4.5)=0.66・・
ABS(−1.5/4.5)=0.33・・
になる。そして、オブジェクト向き605は、
オブジェクト向き605=0.67×(1,0)+0.33×(0,−1)=(0.67,−0.33)=−26.57°
となる。
ABS(−3/4.5)=0.66・・
ABS(−1.5/4.5)=0.33・・
になる。そして、オブジェクト向き605は、
オブジェクト向き605=0.67×(1,0)+0.33×(0,−1)=(0.67,−0.33)=−26.57°
となる。
図13は、壁1301、および入り口1302が配置されているフロアマップ410上に、カメラ1303を配置する例である。ステップS1102により、カメラ1303から、壁1301への距離702を2m、入り口1302への距離702を4mと算出される。ステップS1103により、オブジェクト種別テーブルより重みを取得して、壁1301と入り口1302の優先度を算出すると、それぞれ、(−3)/2=−1.5、(8)/4=2となる。ステップS1104により、考慮フラグ705がtrueの正数のオブジェクトがあるため、ステップS1105に進む。ステップS1105により、カメラ1303は、優先度が最大値で範囲内にある、入り口1302を向く。
図14は、壁1401、レジ1402、1404が配置されているフロアマップ401上に、カメラ1403を配置する例である。ステップS1101により、レジ1404は、壁1401があるため、カメラ1403からは見えないため、レジ1404の手前フラグ704はfalseが設定される。ステップS1102により、カメラ1403から、壁1401への距離702を1m、レジ1402への距離702を4mと算出される。なお、先に手前フラグを算出してfalseであることがわかっているので、レジ1404への距離702は算出しない。ステップS1103により、オブジェクト種別テーブルより重みを取得して、壁1401とレジ1402の優先度を算出すると、それぞれ、(−3)/1=−3、(10)/4=5となる。ステップS1104により、考慮フラグ705がtrueの正数のオブジェクトがあるため、ステップS1105に進む。ステップS1105により、カメラ1403は、優先度が最大値で範囲内にある、レジ1402を向く。
<後からオブジェクトを配置する例>
図15は、カメラ1502〜1504が配置されているフロアマップ410上に、レジ1501を配置する例である。図16を用いて説明する。ステップS1601において、ステップS1101と同様に、カメラ1502〜1504と、レジ1501の間に他のオブジェクトがないかを算出する。そして、図7で説明した、カメラ−オブジェクト関連テーブルのカメラとオブジェクトが逆の関係になった、同様なテーブル(図示せず)に手前フラグを格納する。以下、オブジェクト−カメラ関連テーブルと呼ぶ。また、オブジェクト−カメラ関連テーブルには、701〜706と同じ項目があるものとする。
図15は、カメラ1502〜1504が配置されているフロアマップ410上に、レジ1501を配置する例である。図16を用いて説明する。ステップS1601において、ステップS1101と同様に、カメラ1502〜1504と、レジ1501の間に他のオブジェクトがないかを算出する。そして、図7で説明した、カメラ−オブジェクト関連テーブルのカメラとオブジェクトが逆の関係になった、同様なテーブル(図示せず)に手前フラグを格納する。以下、オブジェクト−カメラ関連テーブルと呼ぶ。また、オブジェクト−カメラ関連テーブルには、701〜706と同じ項目があるものとする。
ステップS1602において、ステップS1102と同様に、各オブジェクト間の距離を算出し、オブジェクト−カメラ関連テーブルの距離702に格納する。ステップS1603において、オブジェクト−カメラ関連テーブルから、手前フラグ704がtrueで、もっとも距離702が短いカメラを探索し、該当するカメラをレジ1501に向ける。
オブジェクトを配置する前に、上記動作をするか否かをあらかじめ設定してもよいし、オブジェクト配置中に、例えば、Shiftキーを押下しながら実施すると、上記動作をするようにしてもよい。
<その他の実施例>
追加ボタン401を押した後に、フロアマップ表示部410上をクリックしてオブジェクトを配置した直後の処理を記載してきたが、配置前にフロアマップ表示部410上のマウスカーソルの位置をもとにして処理しても構わない。例えば、フロアマップ上でマウスカーソルを動かすと、リアルタイムに配置しようとするカメラの向きを確認できる。また、図示しないが、カメラからの映像をシミュレーションして表示する場合に、リアルタイムにシミュレーション映像を確認できるため、より配置が適切か確認しやすくなる。
追加ボタン401を押した後に、フロアマップ表示部410上をクリックしてオブジェクトを配置した直後の処理を記載してきたが、配置前にフロアマップ表示部410上のマウスカーソルの位置をもとにして処理しても構わない。例えば、フロアマップ上でマウスカーソルを動かすと、リアルタイムに配置しようとするカメラの向きを確認できる。また、図示しないが、カメラからの映像をシミュレーションして表示する場合に、リアルタイムにシミュレーション映像を確認できるため、より配置が適切か確認しやすくなる。
また、配置済みのカメラを移動する時にも、本発明は適用可能である。例えば、一旦配置したカメラをマウスで選択してドラッグを開始した時点で、リアルタイムにカメラの向きを適切な方向に向けることができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (9)
- 図面上でカメラのレイアウト決定を支援する情報処理装置であって、
表示部に図面を表示させる表示制御手段と、
前記図面に配置するカメラと1つ以上のオブジェクトの其々について、位置の指定を受け付ける受け付け手段と、
前記受け付け手段によって位置を指定されたカメラについて、前記オブジェクトに対応づけられた優先度に基づいてカメラの向きを決定する決定手段と、
を有することを特徴とする情報処理装置。 - 前記受け付け手段で、前記オブジェクトの大きさの指定を受け付けることを特徴とする請求項1に記載の情報処理装置。
- 前記決定手段は、オブジェクトに関連付けた重みと、前記カメラと前記オブジェクトの距離から、カメラの向きを決定することを特徴とする請求項1または2に記載の情報処理装置。
- 前記決定手段は、前記カメラと前記オブジェクトとの間に他のオブジェクトがある場合に、当該他のオブジェクトに遮られているオブジェクトの情報を、カメラ向きの決定に用いないことを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
- 図面上でカメラのレイアウト決定を支援する情報処理方法であって、
表示部に図面を表示させる表示制御工程と、
前記図面に配置するカメラと1つ以上のオブジェクトの其々について、位置の指定を受け付ける受け付け工程と、
前記受け付け工程において位置を指定されたカメラについて、前記オブジェクトに対応づけられた優先度に基づいてカメラの向きを決定する決定工程と、
を有することを特徴とする情報処理方法。 - 前記受け付け工程で、前記オブジェクトの大きさの指定を受け付けることを特徴とする請求項5に記載の情報処理装置。
- 前記決定工程は、オブジェクトに関連付けた重みと、前記カメラと前記オブジェクトの距離から、カメラの向きを決定することを特徴とする請求項5または6に記載の情報処理方法。
- 前記決定工程は、前記カメラと前記オブジェクトとの間に他のオブジェクトがある場合に、当該他のオブジェクトに遮られているオブジェクトの情報を、カメラ向きの決定に用いないことを特徴とする請求項5乃至7のいずれか一項に記載の情報処理方法。
- コンピュータを
図面上でカメラのレイアウト決定を支援する情報処理装置であって、
表示部に図面を表示させる表示制御手段と、
前記図面に配置するカメラと1つ以上のオブジェクトの其々について、位置の指定を受け付ける受け付け手段と、
前記受け付け手段によって位置を指定されたカメラについて、前記オブジェクトに対応づけられた優先度に基づいてカメラの向きを決定する決定手段として機能させるためのコンピュータが読み取り可能なプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017099066A JP2018196016A (ja) | 2017-05-18 | 2017-05-18 | 情報処理装置、情報処理方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017099066A JP2018196016A (ja) | 2017-05-18 | 2017-05-18 | 情報処理装置、情報処理方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018196016A true JP2018196016A (ja) | 2018-12-06 |
Family
ID=64570691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017099066A Withdrawn JP2018196016A (ja) | 2017-05-18 | 2017-05-18 | 情報処理装置、情報処理方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018196016A (ja) |
-
2017
- 2017-05-18 JP JP2017099066A patent/JP2018196016A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5991423B2 (ja) | 表示装置、表示方法、表示プログラムおよび位置設定システム | |
JP2014215646A (ja) | 表示制御装置、表示制御方法、情報設定装置、情報設定方法および情報提供システム | |
US20130187905A1 (en) | Methods and systems for capturing and moving 3d models and true-scale metadata of real world objects | |
JP6310149B2 (ja) | 画像生成装置、画像生成システム及び画像生成方法 | |
JP6096634B2 (ja) | 仮想現実を用いた3次元地図表示システム | |
CN107329671B (zh) | 模型显示方法和装置 | |
JP6768123B2 (ja) | 拡張現実方法及び装置 | |
JP2020098568A (ja) | 情報管理装置、情報管理システム、情報管理方法および情報管理プログラム | |
JP2023172893A (ja) | 対象物の双方向な三次元表現の制御方法、制御装置及び記録媒体 | |
US8438199B1 (en) | System and method for identifying and highlighting a graphic element | |
JP2019094620A (ja) | 橋梁点検支援装置、橋梁点検支援方法、プログラム、モバイル端末装置 | |
US20180039715A1 (en) | System and method for facilitating an inspection process | |
JP5625700B2 (ja) | 三次元cadプログラム、装置および三次元cadの処理方法 | |
JP7192953B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2018196016A (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP6564259B2 (ja) | 画像処理装置、画像処理方法 | |
JP6405539B2 (ja) | 多視点画像に対するラベル情報の処理装置及びそのラベル情報の処理方法 | |
CN113836337A (zh) | Bim的展示方法、装置、设备及存储介质 | |
JP2009123076A (ja) | 3次元cadシステムプログラム | |
JP7045863B2 (ja) | 情報管理システム、情報管理方法、及びプログラム | |
US10380806B2 (en) | Systems and methods for receiving and detecting dimensional aspects of a malleable target object | |
JP6091676B2 (ja) | 3次元地図表示システム | |
JP2017091561A (ja) | 表示制御装置、表示制御方法、表示制御プログラム、情報提供システム、情報設定装置、情報設定方法および情報設定プログラム | |
JP7279887B1 (ja) | 建物情報管理システム、画像生成方法及び建物情報管理プログラム | |
JP5964611B2 (ja) | 3次元地図表示システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200331 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20200703 |