説明

撮像装置、監視カメラ、およびカメラ画面のマスク方法

【課題】パン回転、チルト回転、ズームによって変形したカメラ画面上のプライバシ保護のためのマスク範囲を正確に算出する。
【解決手段】撮像装置10に備わるマイコン120において、マスク2次元3次元変換部154は、ズーム位置に応じた焦点距離を3次元座標のうちの1つの軸(例えば、Z軸)上に採って、撮像素子104の仕様によって決まる撮像面20(長方形)の2次元位置を3次元座標で表す。そして、マスク表示位置算出部165は、パン・チルト・ズーム後の3次元座標上の撮像面20上のマスク位置をカメラ画面21(長方形)の2次元位置に変換する際に、撮像面20のサイズとカメラ画面21のサイズとが相似であることを利用して、撮像面20およびカメラ画面21の3つの頂点からの距離を用いて、カメラ画面21の2次元上のマスク位置を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、監視カメラのパン(横振り)回転、チルト(縦振り)回転、ズームを制御可能な監視カメラシステムにおいて、プライバシ保護のため、カメラ画像の一部に映るプライバシ保護範囲をマスクする技術に関する。
【背景技術】
【0002】
パン(横振り)回転、チルト(縦振り)回転、ズームが可能な監視カメラシステムは、パン方向、チルト方向に自由に回転できるカメラ用回転台にズーム可能な監視カメラを取り付けた構造を有している。この監視カメラシステムは、外部の操作装置を介してカメラ用回転台および監視カメラのズームを操作することによって、監視カメラが映し出す映像を自由に選択できる。また、監視カメラシステムは、一般的に、複数の撮影方向が設定され、それらの撮影方向を一定の時間ごとに順次映し出すシーケンス制御機能や、監視エリアに人感センサを設置し、異常検知された際に、その方向に瞬時に監視カメラを向けさせるアラーム機能等を備えている。このような監視カメラシステムを街路等の公共な場所に設置した場合、民間の家や撮影禁止被写体等、プライバシ保護のために撮影することが好ましくない範囲をマスク処理する必要がある。
【0003】
例えば、特許文献1では、2次元のカメラ画面上のプライバシ保護範囲を表す頂点の中から代表頂点を2つ選択し、それ以外の頂点は2次元上で代表頂点との差分情報を計算して保持しておく。次に、代表頂点を3次元直交座標上に配置して、パン回転、チルト回転、ズーム処理を実行して、3次元直交座標上の代表頂点の位置を計算し、この3次元直交座標上の代表頂点の位置を2次元のカメラ画面上の代表頂点の座標に戻す。そして、代表頂点以外の頂点は予め保持した差分情報から計算することによって、処理時間を短縮できることが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−129336号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術では、2つの代表頂点のみを3次元直交座標上で取り扱っているため、パン回転、チルト回転によりプライバシ保護範囲が回転や変形した際のプライバシ保護範囲の形状を2次元上の差分データからだけでは正確に再現することができないという問題がある。
【0006】
そこで、本発明では、パン回転、チルト回転、ズームによって変形したカメラ画面上のプライバシ保護のためのマスク範囲を正確に算出する技術を提供することを課題とする。
【課題を解決するための手段】
【0007】
前記課題を解決するために、本発明に係る撮像装置は、ズーム位置に応じた焦点距離を3次元座標のうちの1つの軸(例えば、Z軸)上に採って、撮像素子の仕様によって決まる撮像面(長方形)の2次元位置を3次元座標で表す。また、本発明に係る撮像装置は、この撮像面上に表されるマスク位置を3次元座標で表してから、3次元座標上の撮像面とともにパン・チルト・ズームさせる。次に、本発明に係る撮像装置は、パン・チルト・ズーム後の3次元座標上の撮像面上のマスク位置をユーザが閲覧するカメラ画面(長方形)の2次元位置に変換する際に、撮像面のサイズとカメラ画面のサイズとが相似であることを利用して、撮像面上のマスク位置の頂点を撮像面の3つの頂点からの距離で表し、カメラ画面の3つの頂点から相似の距離にあたる位置として、カメラ画面の2次元上のマスク位置を算出する。
【発明の効果】
【0008】
本発明によれば、パン回転、チルト回転、ズームによって変形したカメラ画面上のプライバシ保護のためのマスク範囲を正確に算出する技術を提供することができる。
【図面の簡単な説明】
【0009】
【図1】監視カメラシステムの構成例を示す図である。
【図2】撮像装置の構成例を示す図である。
【図3】マイコンの機能例および外部記憶メモリに記憶される情報の例を示す図である。
【図4】パン角度0度、チルト角度0度のときの撮像面を3次元座標に配置した図である。
【図5】レンズユニットのf値と撮像素子との位置関係を示す図である。
【図6】Zテーブルの一例を示す図である。
【図7】マスク状態判定部の処理フロー例を示す図である。
【図8】カメラ画面を2次元座標に配置した図である。
【図9】撮像装置がパン回転、チルト回転したときの撮像面を3次元座標に配置した図である。
【図10】3次元座標に配置した撮像面に投影されるマスクの位置の求め方を説明する図である。
【図11】3次元座標の撮像面およびマスクと2次元座標のカメラ画面およびマスクとの位置関係を説明する図であり、(a)は撮像面におけるマスクの位置を表し、(b)はカメラ画面におけるマスクの位置を表す。
【図12】カメラ画面上のマスク形状を長方形に補正する例を示す図である。
【発明を実施するための形態】
【0010】
次に、本発明を実施するための形態(以降、「本実施形態」と称す。)について、適宜図面を参照しながら詳細に説明する。
【0011】
まず、監視カメラシステム全体の概略について、図1を用いて説明する。
図1に示すように、監視カメラシステム1は、監視カメラ12、カメラ操作装置3、および表示装置4を備えている。また、監視カメラ12およびカメラ操作装置3は、ネットワーク2を介して、通信可能に接続されている。
監視カメラ12は、パン回転、チルト回転が可能な回転台11に、外部の光を取り込むレンズユニット5と、レンズユニット5のズームを変更するとともに取り込んだ光を表示装置4に表示可能な映像信号に変換する撮像装置10とで構成されるビデオカメラを取り付けて形成される。監視カメラ12は、ネットワーク2を介して、カメラ操作装置3によって、パン回転、チルト回転、ズームの操作が可能であり、カメラ操作装置3によって指定された方向の映像を映し出すことができる。
【0012】
ネットワーク2は、例えば、IP(Internet Protocol)を用いた有線網または無線網によって構成される。
カメラ操作装置3は、複数の撮影箇所を記憶し、この記憶した撮影箇所を一定の時間で順次映し出すシーケンス機能や、監視エリアに設定した人感センサ(不図示)が異常を検知したときに、その方向に監視カメラ12を向けさせるアラーム機能を備えている。また、カメラ操作装置3は、人手によって、監視カメラ12の制御を行う機能も備えている。さらに、カメラ操作装置3は、同時に複数の監視カメラ12を制御することができ、監視カメラ12ごとにネットワーク2を介して取得した映像信号を、表示装置4に出力する。
表示装置4は、映像信号を表示するモニタである。
【0013】
図2は、撮像装置10の構成例を示している。なお、図2では、撮像装置10に含まれないカメラ操作装置3、表示装置4、レンズユニット5は、破線で表示している。まず、撮像装置10の構成について、処理の流れに従って説明する。
【0014】
撮像素子104は、CCD(Charge Coupled Device)センサを備え、外部光がレンズユニット5内のズーム機能を有するレンズ51から取り込まれ、その光量を調整するアイリス(アイリス絞り)52を経てCCDセンサに照射され、光電変換によって映像信号を出力する。
【0015】
AFE(Analog Front End Circuit)105は、入力してきた映像信号に対して、相関二重サンプリング(Correlated Double Sampling;以降、CDSと称す。)処理、アナログAGC(Automatic Gain Control)処理、ADC(Analog to Digital Converter)処理を実行する。
【0016】
画像処理LSI(Large Scale Integration)106は、信号処理部107およびマスク信号発生部108を備える。
信号処理部107は、ノイズ低減処理、感度アップ処理、色再現性向上処理等を実行する。
また、マスク信号発生部108は、信号処理部107の出力信号に対して、プライバシ保護範囲に付加するマスク信号を出力する。そして、画像処理LSI106は、信号処理部107の出力信号にマスク信号を重畳する。
なお、画像処理LSI106の機能を動作させる設定を行うために、画像処理LSI106は、マイコン120と接続しており、画像処理LSI106の制御はマイコン120によって行われる。また、画像処理LSI106は、映像信号に対する種々の処理機能を集約しており、撮像装置10の小型化に寄与している。
【0017】
DAC(Digital Analog Converter)109は、画像処理LSI106の出力であるデジタル映像信号をアナログ映像信号に変換して、カメラ映像信号出力部110を介して映像信号を出力する。なお、当該映像信号出力は、図2に示すようにカメラ操作装置3を介して表示装置4に出力される、またはカメラ操作装置3を介さずに直接表示装置4に出力されるように構成されても構わない。
【0018】
なお、図2では、撮像素子104としてCCDセンサを例として説明しているが、撮像素子104は、例えば、CMOS(Complementary Metal Oxide Semiconductor)等のCCD以外の素子であってもよく、その際にAFE105の構成はCCDの場合とは異なる。また、DAC109が存在せず、画像処理LSI106の出力信号(デジタル映像信号)をカメラ操作装置3を介して表示装置4に出力する、またはカメラ操作装置3を介さずに直接表示装置4に出力する構成であっても構わない。
【0019】
マイコン120は、モータ制御部121、制御位置情報取得部122、プライバシマスク制御部123を備える。
モータ制御部121は、制御位置情報取得部122からズーム位置情報を取得して、ズームレンズ制御用モータ140を動かして、設定したズーム位置となるように制御を行う。
制御位置情報取得部122は、撮像装置10の外部から設定されたパン角度、チルト角度、ズーム位置情報を取得する。
また、プライバシマスク制御部123は、必要に応じて、画像処理LSI106の制御を行い、プライバシ保護範囲の演算処理を行ない、その結果をマスク信号発生部108に設定する。
なお、マイコン120の一部の機能は、ソフトウェアではなく、画像処理LSI106にハードウェアとして内装されていても構わない。マイコン120の詳細については、後記する。
【0020】
外部記憶メモリ130は、各種データを記憶しておくために備えられる。外部記憶メモリ130は、マイコン120内にメモリがあるシステム構成であればマイコン120内のメモリを使用すればよいので必須のものではないが、本実施形態では、マイコン120の外部に外部記憶メモリ130を備えるものとして説明する。
【0021】
次に、図3を用いて、マイコン120の機能例および外部記憶メモリ130に記憶される情報の例について説明する(適宜、図2参照)。
まず、外部記憶メモリ130に記憶される情報について説明する。外部記憶メモリ130は、画面情報131、Z値テーブル134、角度テーブル135、マスク3次元位置情報136を記憶している。
画面情報131は、カメラ画面情報132および撮像面情報133を記憶している。
カメラ画面情報132は、最終的に表示装置4に出力する映像サイズの水平幅および垂直幅を指し、それぞれMONI_H、MONI_V(図8参照)として記憶している。
【0022】
撮像面情報133は、3次元直交座標(以降、3次元座標と称することもある。)に撮像素子104の成す面を示す撮像面20(図4参照)を配置した際のパン角度0度、チルト角度0度の時の撮像面20のサイズを記憶している。図4は、撮像面20をXYZ軸の3次元直交座標に配置した状態を示す。図4では、原点(0,0,0)から撮像面20への奥行きをZ軸としているが座標軸の決め方は任意に決めても特に問題はない。
【0023】
まず、3次元直交座標上に配置した撮像面20の水平幅と垂直幅であるCAM_H,CAM_Vを求めておく。レンズユニット5の仕様により、レンズユニット5と撮像素子104を水平面、垂直面で見た時の関係は、それぞれ図5(a)(b)に示すように表せる。撮像素子104の仕様より、1画素の水平サイズ、垂直サイズであるPux,Puyと水平画素数、垂直画素数であるHpixel,Vpixelが予めわかっている。そこで、レンズユニット5と撮像素子104との関係から水平面、垂直面の角度をそれぞれαH,αVとすると、下記の式(1),式(2)が成り立つ。ここで、W端時(画角を最も広くとった時)のレンズ51と撮像素子104の距離をf値とする。
Tan(αH) = ((Pux×Hpixel)/2)/f値 ・・・式(1)
Tan(αV) = ((Puy×Vpixel)/2)/f値 ・・・式(2)
【0024】
また、図4の撮像上の位置関係から、原点(0,0,0)から撮像面20への任意の距離をW端時の距離d_base(基準値)としたときに、下記の式(3)、式(4)が成り立つ。
Tan(αH) = (CAM_H/2)/d_base ・・・式(3)
Tan(αV) = (CAM_V/2)/d_base ・・・式(4)
【0025】
よって、式(1),式(3)と式(2),式(4)とを用いて、CAM_H,CAM_Vについて解くと下記の式(5)、式(6)が求まる。
CAM_H = (d_base×Pux×Hpixel)/f値 ・・・式(5)
CAM_V = (d_base×Puy×Vpixel)/f値 ・・・式(6)
3次元座標上のd_baseの値を決めれば、CAM_H、CAM_Vを求めることができるので、予め計算して撮像面情報133に記憶しておく。
【0026】
なお、画面情報131は、マイコン120で演算してもよいが、撮像素子104と映像信号の規格が決まれば一意的に決まるものであるので、予め記憶させておくことで処理時間を短縮させることができる。
【0027】
次に、Z値テーブル134について、以下に説明する(適宜、図2、図3参照)。
Z値テーブル134は、レンズ51と撮像素子104との間の距離f値と、図4に示すd_baseとの関係を記憶している。これは、監視カメラ12のズーム位置(W端からT端までの任意位置)の設定に依存して、レンズ51と撮像素子104との間の距離(f値)が変化するので、図4の3次元座標上のd_baseの値を変化させる必要があるためである。そこで、Z値テーブル134は、任意のズーム位置におけるd_baseが変化した際のd_nの値を予め記憶しておく。前記式(5)、式(6)を変形すると、下記の式(7)、式(8)により、あるズーム位置における焦点距離f値によりd_nの値を求めることができる。
d_n=(CAM_H×f値)/(Pux×Hpixel) ・・・式(7)
d_n=(CAM_V×f値)/(Puy×Vpixel) ・・・式(8)
【0028】
なお、d_nの値は、式(7)または式(8)のどちらか一方を使用すれば良い。Z値テーブル134は、例えば、図6に示すように、ズーム位置とd_nの値とを関連付けて作成される。Z値テーブル134は、マイコン120で演算しても良いが、処理負荷の大きな演算であり、レンズユニット5の仕様が決まれば一意的に決まるので、予めテーブルとして記憶させておくと良い。
【0029】
角度テーブル135は、角度0〜90度までのSINの値を記憶している。SIN,COSの計算は、マイコン120で処理させることも可能であるが、処理負荷が大きいため、予めテーブルとして記憶しておくことで、処理時間の短縮を図ることができる。単純には、SIN,COSの0度〜360度までの値を記憶しておけば良いが、外部記憶メモリ130のメモリ容量は有限であり極力メモリ容量を抑える必要がある。そのため、角度テーブル135には、角度0〜90度までのSINの値を記憶させておく。そして、角度0〜90度までのSINの値を用いて、少ない処理負荷で、角度0〜360度のSIN,COSの値を算出するようにしている。その処理は、マイコン120のプライバシマスク制御部123内にあるSIN・COS算出部125で実行している。
【0030】
ここで、マイコン120のプライバシマスク制御部123内のSIN・COS算出部125の処理について説明しておく。SIN・COS算出部125は、外部記憶メモリ130の角度テーブル135に記憶されたSIN0度〜SIN90度までの値を必要に応じて参照して、SIN0度〜SIN360度およびCOS0度〜COS360度の値を処理負荷の軽い計算で求めている。具体的には、任意の角度をαとした時に下記の式(9a)〜(9d)、式(10a)〜(10d)による場合分け処理により算出することが可能である。
SINα = SINα (0度 ≦ α < 90度) ・・・式(9a)
SINα = SIN(90度-α) (90度 ≦ α < 180度) ・・・式(9b)
SINα = -SIN(α-180度) (180度 ≦ α < 270度) ・・・式(9c)
SINα = -SIN(90度-(α-270度)) (270度 ≦ α< 360度) ・・・式(9d)
COSα = SIN(90度-α) (0度 ≦ α < 90度) ・・・式(10a)
COSα = -SIN(α-90度) (90度 ≦ α < 180度) ・・・式(10b)
COSα = -SIN(90度-(α-180度)) (180度 ≦ α< 270度) ・・・式(10c)
COSα = SIN(α-270度) (270度 ≦ α < 360度) ・・・式(10d)
【0031】
次に、マイコン120のプライバシマスク制御部123の機能について説明する。プライバシマスク制御部123は、マスク状態判定部124、マスク作成処理部150、マスク表示処理部160を備える。
まず、マスク状態判定部124は、プライバシマスク制御状態の判定を行う。具体的には、マスク状態判定部124は、図7に示すように、ステップS701において、プライバシマスク制御状態として、1:制御OFF、2:マスク作成、3:マスク表示のいずれかを判定する。1:制御OFFの状態の時には何も処理が行われない。2:マスク作成時には、ステップS702において、マスク作成処理部150はマスク作成処理を実行する。また、3:マスク表示時には、ステップS703において、マスク表示処理部160は、マスク表示処理を実行する。
【0032】
ステップS702のマスク作成処理は、監視カメラ12でプライバシ保護領域を覆うためのマスクを作成する状態のモードである。また、ステップS703のマスク表示処理は、監視カメラ12をパン/チルト/ズームした時に、表示装置4に表示されるカメラ画面21上で、マスク作成処理で作成したマスクによって確実にプライバシマスク保護領域を覆うように表示している状態のモードである。具体的には、画像処理LSI106のマスク信号発生部108が、マスク作成処理部150およびマスク表示処理部160の処理結果に基づいてマスク表示設定を行う。
【0033】
次に、マスク作成処理部150の機能について、図3を用いて説明する(適宜、図1、図2参照)。
マスク作成処理部150は、マスク設定情報取得部151、マスク表示位置算出部152、マスク2次元2次元変換部153、マスク2次元3次元変換部154、マスク回転処理部155を備える。
マスク設定情報取得部151は、カメラ操作部3から監視カメラ12へ通信が行われ、図8に示すカメラ画面21上に設定されたマスク23の位置(moniMASK_Hposi、moniMASK_Vposi)とそのマスク23のサイズ情報(moniMASK_Hsize、moniMASK_Vsize)とを取得する。なお、設定するマスク23は長方形とし、本実施形態では、例としてmoniMASK_HposiおよびmoniMASK_Vposiは-128〜127、moniMASK_HsizeおよびmoniMASK_Vsizeは0〜128の範囲のデータとする。ただし、マスク形状は長方形以外の例えば台形や円といった形状でも構わない。
【0034】
マスク表示位置算出部152は、moniMASK_Hposi、moniMASK_Vposi、moniMASK_Hsize、moniMASK_Vsizeに基づいて、カメラ画面21上のマスク23の頂点座標(p1_moniMASK(x1_moniMASK,y1_moniMASK)、p2_moniMASK(x2_moniMASK,y2_moniMASK)、p3_moniMASK(x3_moniMASK,y3_moniMASK)、p4_moni(x4_moniMASK,y4_moniMASK))を算出する。頂点座標は、外部記憶メモリ130の画面情報131のカメラ画面情報132からMONI_H、MONI_Vを読み出して、下記の式(11)、式(12)、式(13)、式(14)を用いて算出される。この際、カメラ画面21の座標系は図8に示すように採られるものとする。ただし、図8の座標軸の向きは一例であって、任意の方向であってもよい。
x1_moniMASK=x3_moniMASK
=(MONI_H/2)+(MONI_H/256)×(-moniMASK_Hsize+moniMASK_Hposi) ・・・式(11)
x2_moniMASK=x4_monMASKi
=(MONI_H/2)+(MONI_H/256)×(moniMASK_Hsize+moniMASK_Hposi) ・・・式(12)
y1_moniMASK=y2_moniMASK
=(MONI_V/2)−(MONI_V/256)×(moniMASK_Vsize+moniMASK_Vposi) ・・・式(13)
y3_moniMASK=y4_moniMASK
=(MONI_V/2)−(MONI_V/256)×(-moniMASK_Vsize+moniMASK_Vposi) ・・・式(14)
【0035】
マスク2次元2次元変換部153は、マスク表示位置算出部152で算出したカメラ画面21上のマスク23の頂点座標(p1_moniMASK、p2_moniMASK、p3_moniMASK、p4_moniMASK)を撮像面20上のマスク頂点座標(p1_camMASK(x1_camMASK,y1_camMASK)、p2_camMASK(x2_camMASK,y2_camMASK)、p3_camMASK(x3_camMASK,y3_camMASK)、p4_camMASK(x4_camMASK,y4_camMASK))に変換する。この変換は、外部記憶メモリ130の画面情報131の撮像面情報133からCAM_H、CAM_Vを読み出して、下記の式(15)、式(16)を用いて行なう。撮像面20上の座標系は撮像面20の中心を原点(0,0)とし、X軸は右方向、Y軸は下方向を正の向きとしている。
x*_camMASK=x*_moniMASK×CAM_H/MONI_H−CAM_H/2 ・・・式(15)
y*_camMASK=y*_moniMASK×CAM_V/MONI_V−CAM_V/2 ・・・式(16)
ただし、*は1〜4の頂点番号を表す。
【0036】
マスク2次元3次元変換部154は、マスク2次元2次元変換部153において変換した撮像面20上のマスク頂点座標(p1_camMASK、p2_camMASK、p3_camMASK、p4_camMASK)に、外部記憶メモリ130のZ値テーブル134から現在のズーム位置(f値)に対応したZ軸の値となるd_set値を取得する。この値をZ軸の値として、図9に破線で示すように、撮像面20aを配置する。なお、撮像面20aの中心の点CaはZ軸上に位置する。次に、撮像面20a上のマスク22aの2次元上の頂点座標を3次元座標上に配置する。この3次元座標上に配置したマスク頂点座標は、下記のようになる。
p1_camMASK_3d(x1_camMASK,y1_camMASK,d1_set)、
p2_camMASK_3d(x2_camMASK,y2_camMASK,d2_set)、
p3_camMASK_3d(x3_camMASK,y3_camMASK,d3_set)、
p4_camMASK_3d(x4_camMASK,y4_camMASK,d4_set)
ただし、d_set=d1_set=d2_set=d3_set=d4_setである。
【0037】
この3次元座標上に配置されたマスク22aは、パン角度0度、チルト角度0度の時に3次元座標上の撮像面20a上に配置されたものである。しかし、実際には、監視カメラ21はカメラ操作装置3からの操作によりパン角度、チルト角度がそれぞれ任意の角度の位置となっているので、パン/チルト回転した後のマスク22rは、パン/チルト回転した後の撮像面20上に配置される必要がある。なお、パン/チルト回転した後の撮像面20の頂点座標は、下記のようになる。また、撮像面20aの中心の点Caの回転後は、点Cとなる。
p1_cam_3d_r(x1_cam_r,y1_cam_r,d1_set_r)、
p2_cam_3d_r(x2_cam_r,y2_cam_r,d2_set_r)、
p3_cam_3d_r(x3_cam_r,y3_cam_r,d3_set_r)、
p4_cam_3d_r(x4_cam_r,y4_cam_r,d4_set_r)
【0038】
そこで、マスク回転処理部155は、上記のマスク22aの頂点座標(p1_camMASK_3d、p2_camMASK_3d、p3_camMASK_3d、p4_camMASK_3d)も、3次元座標上の撮像面20がパン/チルト回転した分だけ回転させて算出する。
p1_camMASK_3d_r(x1_camMASK_r,y1_camMASK_r,d1_set_r)、
p2_camMASK_3d_r(x2_camMASK_r,y2_camMASK_r,d2_set_r)、
p3_camMASK_3d_r(x3_camMASK_r,y3_camMASK_r,d3_set_r)、
p4_camMASK_3d_r(x4_camMASK_r,y4_camMASK_r,d4_set_r)
【0039】
具体的には、マスク回転処理部155は、図9に示すように、監視カメラ12がパン回転した時の角度をθ度、チルト回転した時の角度をγ度とすると、3次元座標上の原点(0,0,0)を中心に、Y軸周りにθ度回転(反時計回り)、X軸周りにγ度回転(時計回り)した時のマスク座標位置を計算すればよい。つまり、マスク座標位置は、X軸方向とY軸方向の単純な回転行列を使って算出できる。ただし、XYZ軸の取り方によって回転軸は変わるので、その際には該当する軸の回転行列を使用するものとする。本実施形態での回転処理は下記の式(17)を用いて行う。計算時の0度〜360度までのSIN,COSの値は、マイコン120のプライバシマスク制御部123内のSIN・COS算出部125によって外部記憶メモリ130の角度テーブル134を参照して、算出される。これにより、マイコン120内でSINおよびCOSをそのまま演算させた場合よりも軽い負荷で済ませることができる。また、図9に示すように、ズーム位置に応じた焦点距離を3次元座標のうちの1つの軸(例えば、Z軸)上に採って、マスク22aの3次元座標の位置を求めた後に、回転させることにより、処理負荷を低減することができ、また、演算精度を良くすることができる。
【0040】
【数1】

ただし、*は1〜4の頂点番号を表す。
【0041】
マスク回転処理部155は、回転後のマスク22rの頂点座標(p1_camMASK_3d_r、p2_camMASK_3d_r、p3_camMASK_3d_r、p4_camMASK_3d_r)を、外部記憶メモリ130のマスク3次元位置情報136に記憶する。すなわち、マスク作成処理完了後には、3次元座標上の回転後のマスク22rの位置が3次元座標上に固定される仕組みとなっている。
【0042】
また、このマスク作成処理の間は、カメラ操作部3によってカメラ画面21上にマスク23の位置を設定する(図8参照)際に、マスク表示位置算出部152で算出されたマスク23の頂点座標(p1_moniMASK、p2_moniMASK、p3_moniMASK、p4_moniMASK)を画像処理LSI106のマスク信号発生部108に設定して、表示装置4において視覚的な確認がし易いようにすることが好ましい。
【0043】
次に、マスク表示処理部160の機能について、図3を用いて説明する。マスク表示処理部160は、カメラ画面2次元2次元変換部161、撮像面2次元3次元変換部162、撮像面回転処理部163、マスク投影位置算出部164、マスク表示位置算出部165、マスク座標補正部166を備える。
【0044】
カメラ画面2次元2次元変換部161は、カメラ画面21の2次元座標を撮像面20の2次元座標に変換する処理を実行する。具体的には、カメラ画面2次元2次元変換部161は、外部記憶メモリ130の画面情報131内のカメラ画面情報132および撮像面情報133からそれぞれ、MONI_H、MONI_V、CAM_H、CAM_Vを読み出す。そして、カメラ画面2次元2次元変換部161は、図8に示すように、カメラ画面21の左上を原点(0,0)として、カメラ画面21の頂点座標(p1_moni(x1_moni,y1_moni)、p2_moni(x2_moni,y2_moni)、p3_moni(x3_moni,y3_moni)、p4_moni(x4_moni,y4_moni))は、それぞれp1_moni(0,0),、p2_moni(MONI_H,0)、p3_moni(0,MONI_V)、p4_moni(MONI_H,MONI_V)と表せる。これらのカメラ画面21の頂点を前記の式(15)、式(16)式を用いて撮像面20の頂点座標(p1_cam(x1_cam,y1_cam)、p2_cam(x2_cam,y2_cam)、p3_cam(x3_cam,y3_cam)、p4_cam(x4_cam,y4_cam))に変換する。ただし、上記の頂点座標p1_moni、p2_moni、p3_moni、p4_moniおよびp1_cam、p2_cam、p3_cam、p4_camは、MONI_H、MONI_V、CAM_H、CAM_Vから予め求めておき、外部記憶メモリ130に記憶しておいてもよいものとする。
【0045】
撮像面2次元3次元変換部162は、カメラ画面2次元2次元変換部161が算出した2次元上の撮像面20の頂点座標(p1_cam、p2_cam、p3_cam、p4_cam)を3次元座標上に配置する。撮像面2次元3次元変換部162は、外部記憶メモリ130のZ値テーブル134から現在のズーム位置に対応したd_now値を読み出して、図9に示したd_set値の代わりに、この値を撮像面20の各頂点のZ座標の値とする。この時の3次元座標上の撮像面20の頂点座標は、p1_cam_3d(x1_cam,y1_cam,d1_now)、p2_cam_3d(x2_cam,y2_cam,d2_now)、p3_cam_3d(x3_cam,y3_cam,d3_now)、p4_cam_3d(x4_cam,y4_cam,d4_now)、である。ただし、d_now=d1_now=d2_now=d3_now=d4_nowである。
【0046】
撮像面回転処理部163は、撮像面2次元3次元変換部162が算出したp1_cam_3d、p2_cam_3d、p3_cam_3d、p4_cam_3dをパン回転θ度、チルト回転γ度を回転させた時の3次元座標上の撮像面20の各頂点座標(p1_cam_3d_r(x1_cam_r,y1_cam_r,d1_now_r)、p2_cam_3d_r(x2_cam_r,y2_cam_r,d2_now_r)、p3_cam_3d_r(x3_cam_r,y3_cam_r,d3_now_r)、p4_cam_3d_r(x4_cam_r,y4_cam_r,d4_now_r))を算出する(図10参照)。具体的には、撮像面回転処理部163は、前記式(17)の回転処理を撮像面20の頂点座標に対して実行する。このように、一旦、パン角度0度、チルト角度0度における撮像面20を3次元座標のいずれかの軸(本実施形態ではZ軸)方向に配置した後で、回転することにより、処理負荷を軽減することができる。
【0047】
マスク投影位置算出部164は、撮像面回転処理部163で回転させた3次元座標上の撮像面座標と外部記憶メモリ130のマスク3次元位置情報136に記憶されているマスク座標とを用いて、図10に示すように、マスク22rを撮像面20上へ投影し、投影後のマスク22の頂点座標を算出する。具体的には、3次元座標上のマスク22rの頂点座標(p1_camMASK_3d_r、p2_camMASK_3d_r、p3_camMASK_3d_r、p4_camMASK_3d_r)が撮像面20に投影された際のマスク22の各頂点座標を(p1_mask(x1_mask,y1_mask,z1_mask)、p2_mask(x2_mask,y2_mask,z2_mask)、p3_mask(x3_mask,y3_mask,z3_mask)、p4_mask(x4_mask,y4_mask,z4_mask))としている。
【0048】
次に、前記マスク22の各頂点座標p1_mask、p2_mask、p3_mask、p4_maskの求め方について、図10を用いて説明する。
まず、撮像面20の中心点Mを始点、3次元座標上の原点0を終点とするベクトルM0(以降、始点A、終点Bとするベクトルを、ベクトルABまたは→ABと表記する。)は、撮像面20に対して垂線となるので、撮像面20の平面の法線ベクトルNとなる。撮像面20の法線ベクトルNは、撮像面20上の3つの頂点座標を使用して、p1_cam_3d_r(点E)からp3_cam_3d_r(点G)へのベクトルS(→EG)とp1_cam_3d_r(点E)からp2_cam_3d_r(点F)へのベクトルT(→EF)による外積S×Tで表せる。外積S×Tは、下記の式(18)、式(19)、式(20)によって求められる。
ベクトルS=(x3_cam_r−x1_cam_r,y3_cam_r−y1_cam_r,d3_now_r−d1_now_r)
・・・式(18)
ベクトルT=(x2_cam_r−x1_cam_r,y2_cam_r−y1_cam_r,d2_now_r−d1_now_r)
・・・式(19)
ベクトルN=外積S×T=(a,b,c) ・・・式(20)
ただし、
a=(y3_cam_r−y1_cam_r)×(d2_now_r−d1_now_r)−(d3_now_r−d1_now_r)×(y2_cam_r −y1_cam_r)、
b=(d3_now_r−d1_now_r)×(x2_cam_r−x1_cam_r)−(x3_cam_r−x1_cam_r)×(d2_now_r−d1_now_r)、
c=(x3_cam_r−x1_cam_r)×(y2_cam_r−y1_cam_r)−(y3_cam_r−y1_cam_r)×(x2_cam_r−x1_cam_r)
である。
【0049】
いま、撮像面20上へ投影されるマスク22の各頂点座標(p1_mask、p2_mask、p3_mask、p4_mask)は、3次元座標上の原点とマスク22rの頂点座標とを線で結んだ直線の延長上にあるので、係数k1,k2,k3,k4を用いて下記の式(21)で表すことができる。
p*_mask(x*_mask,y*_mask,z*_mask)=k*×p*_camMASK_3d_r(x*_camMASK_r,y*_camMASK_r,d*_set_r) ・・・式(21)
ただし、*は1〜4のマスク頂点番号を表す。
【0050】
つまり、各頂点における係数k1,k2,k3,k4を求めれば、3次元座標上の撮像面20上へ投影されるマスク22の頂点座標を求めることができる。
ここで、撮像面20の頂点p1_cam_3d_r(点E)を始点とし、撮像面20上に投影されるマスク22の各頂点座標(p1_mask(点I)、p2_mask(点J)、p3_mask(点K)、p4_mask(点L))を終点とするベクトルEI,EJ,EK,EL(不図示)は、式(21)を変形して、下記の式(22)のように表される。
(x*_mask−x*_cam_r,y*_mask−y*_cam_r,z*_mask−d*_now_r)=
(k*×x*_camMASK_r−x*_cam_r,k*×y*_camMASK_r−y*_cam_r,k*×d*_set_r−z*_cam_r)
・・・式(22)
ただし、*は1〜4のマスク頂点番号を表す。
【0051】
このベクトルEI,EJ,EK,ELと前記式(20)で求めた外積S×Tとは直角で交わっているので、この2つのベクトルの内積は0となり、式(23)となる。
ベクトルEI・外積S×T=0、
ベクトルEJ・外積S×T=0、
ベクトルEK・外積S×T=0、
ベクトルEL・外積S×T=0
・・・式(23)
【0052】
式(23)をそれぞれ係数k1,k2,k3,k4について解くと下記の式(24)となる。求めた係数k1,k2,k3,k4により撮像面20に投影されたマスク22の各頂点座標(p1_mask、p2_mask、p3_mask、p4_mask)を求めることができる。
k*=(a×x1_cam_r+b×y1_cam_r+c×z1_cam_r)/(a×x*_camMASK_r+b×y*_camMASK_r+c×d*_set_r) ・・・式(24)
ただし、*は1〜4のマスク頂点番号を表す。
【0053】
なお、式(24)において算出した係数k1,k2,k3,k4が負の値となる場合、撮像面20に対して反対方向への投影となるため、撮像面20にマスク22rが投影されることはない。そこで、その際は、撮像面20へのマスク22rの投影はなしとなる。また、式(24)の分母は、外積S×Tと撮像面20へ投影されるマスク22rの各頂点座標との内積であるので、分母が0の場合、撮像面20とマスク22の面とは垂直となり、撮像面20にマスク22rが投影されることはないので、分母0の場合も撮像面20へのマスク22の投影はなしとする。
【0054】
マスク表示位置算出部165は、マスク投影位置算出部164で求めた、撮像面20へ投影されたマスク22の各頂点座標(p1_mask、p2_mask、p3_mask、p4_mask)から、カメラ画面21に表示するマスク23aの各頂点座標を算出する(図11参照)。一般的には、3次元から2次元に変換する方法として、現状の撮像面20がパン角度、チルト角度にそれぞれθ、γ回転されているので、それをパン角度、チルト角度にそれぞれ-θ、-γ回転させて、パン角度、チルト角度をゼロの位置に戻す。そして、各頂点のZ軸の値を同値とすることで、X軸、Y軸の値に係数を掛けて変換することが可能である。しかし、実制御において回転処理で求めた座標位置は、マイコン120の演算精度の関係で理論値に対して若干ずれてしまうことが多い。そのため、回転処理後に更に逆回転処理を行うと理論値との計算誤差が更に拡大してしまい、実際のマスク表示位置と理論位置とのずれが大きくなってしまう。
【0055】
そこで、本実施形態では、逆回転処理を行わずにマスク22の頂点座標を3次元から2次元に直接変換する方法を示す。マスク表示位置算出部165は、3次元座標上の撮像面20に投影されたマスク22の頂点座標を、カメラ画面21上のマスク23aの頂点座標へ直接変換する。
図11に、撮像面20上のマスク22の頂点座標(図11(a)参照)と、カメラ画面21上のマスク23aの頂点座標(図11(b)参照)との関係を示す。3次元座標上ではマスク22の各頂点座標は撮像面20上にあるので、3次元座標上の同一平面上の点を2次元のカメラ画面21上の座標に変換すればよい。いま、図11(a)に示す3次元座標上の撮像面20およびマスク22の各頂点座標との2点間の距離を求める。例えば、撮像面20の頂点座標p1_com_3d_r(点E)とマスク22の頂点座標p1_mask(点I)との2点間の距離は、A1として求まる。同様に、撮像面20の頂点座標p2_com_3d_r(点F)とマスク22の頂点座標p1_mask(点I)との2点間の距離はB1、撮像面20の頂点座標p3_com_3d_r(点G)とマスク22の頂点座標p1_mask(点I)との2点間の距離はC1として求まる。なお、撮像面20の頂点座標(点E,F,G)とマスク22の頂点座標p2_mask(点J)との2点間の距離は、それぞれA2,B2,C2、撮像面20の頂点座標(点E,F,G)とマスク22の頂点座標p3_mask(点K)との2点間の距離は、それぞれA3,B3,C3、撮像面20の頂点座標(点E,F,G)とマスク22の頂点座標p4_mask(点L)との2点間の距離は、それぞれA4,B4,C4と求まる。そして、図11(b)でも同様に、2次元のカメラ画面21の頂点座標(点P,Q,R)とマスク23aの各頂点座標(p1_moniMASKa、p2_moniMASKa、p3_moniMASKa、p4_moniMASKa)との2点間距離についても、a1,b1,c1,a2,b2,c2,a3,b3,c3,a4,b4,c4と求めることができる。
具体的には、3次元座標上の撮像面20とマスク22の位置との関係は、2次元上のカメラ画面21とマスク23aの位置との関係と相似である。そこで、2点間の距離A1,B1,C1,・・と距離a1,b1,c1・・との関係も相似であるので、各距離の比を用いて、カメラ画面21上のマスク23aの頂点座標を計算することができる。
【0056】
ただし、2点間の距離を求める場合には、平方根の計算が必要となり、計算のための負荷が大きくなる。そこで、実際には距離の2乗を用いる。距離の代わりに距離の2乗を用いた場合であっても比率の比較であるので問題はない。
まず、距離A1,A2,・・と距離a1,a2,・・との関係について下記の式(25)が成り立つ。
|ベクトルFE|^2/A*^2=|ベクトルQP|^2/a*^2、
|ベクトルFE|^2=CAM_H^2、
|ベクトルQP|^2=MONI_H^2、
A*^2=(x*_mask−x1_cam_r)^2+(y*_mask−y1_cam_r)^2+(z*_mask−d1_now_r)^2、
a*^2=(x*_moniMASKa−0)^2+(y*_moniMASKa−0)^2
・・・式(25)
ただし、*は1〜4のマスク頂点番号を表し、^2は2乗を表す。
【0057】
次に、距離B1,B2,・・と距離b1,b2,・・との関係について下記の式(26)が成り立つ。
|ベクトルFE|^2/B*^2=|ベクトルQP|^2/b*^2、
|ベクトルFE|^2=CAM_H^2、
|ベクトルQP|^2=MONI_H^2、
B*^2=(x*_mask−x2_cam_r)^2+(y*_mask−y2_cam_r)^2+(z*_mask−d2_now_r)^2、
b*^2=(x*_moniMASKa−MINI_H)^2+(y*_moniMASKa−0)^2
・・・式(26)
ただし、*は1〜4のマスク頂点番号を表し、^2は2乗を表す。
【0058】
また、距離A1,A2,・・と距離a1,a2,・・との関係について下記(27)が成り立つ。
|ベクトルGE|^2/A*^2=|ベクトルRP|^2/a*^2、
|ベクトルGE|^2=CAM_V^2、
|ベクトルRP|^2=MONI_V^2、
A*^2=(x*_mask−x1_cam_r)^2+(y*_mask−y1_cam_r)^2+(z*_mask−d1_now_r)^2、
a*^2=(x*_moniMASKa−0)^2+(y*_moniMASKa−0)^2
・・・式(27)
ただし、*は1〜4のマスク頂点番号を表し、^2は2乗を表す。
【0059】
また、距離C1,C2,・・と距離c1,c2,・・との関係について下記(28)が成り立つ。
|ベクトルGE|^2/C*^2=|ベクトルQP|^2/c*^2、
|ベクトルGE|^2=CAM_V^2、
|ベクトルRP|^2=MONI_V^2、
C*^2=(x*_mask−x3_cam_r)^2+(y*_mask−y3_cam_r)^2+(z*_mask−d3_now_r)^2、
c*^2=(x*_moniMASKa−0)^2+(y*_moniMASKa−MONI_V)^2
・・・式(28)
ただし、*は1〜4のマスク頂点番号を表し、^2は2乗を表す。
【0060】
ここで、式(25)、式(26)をx*_moniMASKa(*は1〜4のマスク頂点番号を表す。)について解き、式(27)、式(28)をy*_moniMASKa(*は1〜4のマスク頂点番号を表す。)について解くと、下記の式(29)、式(30)のように表せて、カメラ画面21上のマスク23aの頂点座標を求めることができる。
x*_moniMASKa=((MONI_H×(CAM_H^2+A*^2−B*^2))/(2×CAM_H^2) ・・・式(29)
y*_moniMASKa=((MONI_V×(CAM_V^2+A*^2−C*^2))/(2×CAM_V^2) ・・・式(30)
ただし、*は1〜4のマスク頂点番号を表す。
【0061】
これにより、逆回転処理を行なうことなく、3次元座標上の撮像面20上のマスク22の頂点座標を2次元上のカメラ画面21上のマスク23aの頂点座標に変換することができる。マスク表示位置算出部165で求めたカメラ画面21上のマスク23aの頂点座標を、画像処理LSI106のマスク信号発生部108に設定すればマスク表示によるプライバシ保護領域を覆うことが可能となる。しかし、マスク作成処理部150で設定した長方形のマスクは、パン回転、チルト回転後に台形等の複雑な形状に変化する。そうした複雑な形状の場合、画像処理LSI106の処理負荷が大きくなってしまう場合があるので、画像処理LSI106のマスク信号発生部108に設定する前に、マスク座標補正部166は、マスク表示位置算出部165で求めたカメラ画面21上のマスク23aの頂点座標を単純な長方形のマスク形状となるように変換する。具体的には、マスク座標補正部166は、図12に示すように、変換前のマスク23aの形状を、マスク23aの形状に外接するような長方形のマスク23bの形状に変換する。
【0062】
変換後のマスク23bの頂点座標をp1_moniMASKb(x1_moniMASKb,y1_moniMASKb)、p2_moniMASKb(x2_moniMASKb,y2_moniMASKb)、p3_moniMASKb(x3_moniMASKb,y3_moniMASKb)、p4_moniMASKb(x4_moniMASKb,y4_moniMASKb)とすると、マスク23bの頂点座標を下記の式(31)で算出することでマスク形状を必ず長方形となるように変換することができる。
x1_moniMASKb=x3_moniMASKb=
MIN(x1_moniMASKa,x2_moniMASKa,x3moniMASKa,x4moniMASKa)
x2_moniMASKb=x4_moniMASKb=
MAX(x1_moniMASKa,x2_moniMASKa,x3moniMASKa,x4moniMASKa)
y1_moniMASKb=y2_moniMASKb=
MIN(y1_moniMASKa,y2_moniMASKa,y3moniMASKa,y4moniMASKa)
y3_moniMASKb=y4_moniMASKb=
MAX(y1_moniMASKa,y2_moniMASKa,y3moniMASKa,y4moniMASKa)
・・・式(31)
ただし、MAXは()の中の最大の値、MINは()の中の最小の値を出力する関数である)
【0063】
以上により、求めたマスク23bの頂点座標を画像処理LSI106のマスク信号発生部108に設定することで、監視カメラ21が回転してプライバシマスクが複雑に変形したときでも、常にプライバシ保護領域を単純なマスク形状の長方形で覆い隠すことができる。また、マスク23bを長方形とすることにより、演算量を大幅に削減することができる。
【0064】
ここで、前記した式(1)〜式(31)を用いて、プライバシマスク制御を行えることを検証するために行ったシミュレーション結果について説明する。撮像素子104は、その仕様として、1画素のセンササイズをPux=0.00000475(m)、Puy=0.00000555(m)とした。水平画素数、垂直画素数は、それぞれHpixel=768pixel、Vpixel=494pixelとし、レンズ51の仕様としてW端時のf値をf値=0.0034、d_base=256とした。この時、撮像面20のサイズCAM_H、CAM_Vは式(5)、式(6)式より下記のように求まる。
CAM_H=(d_base×Pux×Hpixel)/f値=(256×0.00000475×768)/0.0034=274.67≒275(式(5)より)。
CAM_V=(d_base×Puy×Vpixel)/f値=(256×0.00000555×494)/0.0034=206.43≒206(式(6)より)。
【0065】
映像を映し出すカメラ画面21のサイズMONI_H、MONI_Vをそれぞれ、MONI_H=740,MONI_V=480とした。また、カメラ画面21上のマスク23aの設定として、カメラ操作部3よりmoniMASK_Hsize=16,moniMASK_Vsize=16,moniMASK_Hposi=64,moniMASK_Vposi=64と設定した。カメラ画面21上のマスク23aの頂点座標は式(11)、式(12)、式(13)、式(14)より下記のように求まる。
x1_moniMASK=x3_moniMASK=(MONI_H/2)+(MONI_H/256)×(−moniMASK_Hsize+moniMASK_Hposi)=(740/2)+(740/256)×(−16+64)=508.75≒509(式(11)より)。
x2_moniMASK=x4_monMASKi=(MONI_H/2)+(MONI_H/256)×(moniMASK_Hsize+moniMASK_Hposi)=(740/2)+(740/256)×(16+64)=601.25≒601(式(12)より)。
y1_moniMASK=y2_moniMASK=(MONI_V/2)−(MONI_V/256)×(moniMASK_Vsize+moniMASK_Vposi)=(480/2)−(480/256)×(16+64)=90(式(13)より)。
y3_moniMASK=y4_moniMASK=(MONI_V/2)−(MONI_V/256)×(−moniMASK_Vsize+moniMASK_Vposi)=(480/2)−(480/256)×(−16+64)=150(式(14)より)。
【0066】
よって、カメラ画面21上のマスク23aの頂点座標は、p1_moniMASK(509,330),p2_moniMASK(601,330),p3_moniMASK(509,390),p4_moniMASK(601,390)となる。そして、このカメラ画面21上のマスク23aの頂点座標を撮像面20の座標に変換すると、CAM_H=275,CAM_V=206であるので、式(15)、式(16)を用いて下記のように求まる。
p1_camMASK(x1_camMASK,y1_camMASK)=p1_moniMASK(509×275/740−275/2,90×206/480−206/2)=(51.655,-64.375)≒(52,-64)
p2_camMASK(x2_camMASK,y2_camMASK)=p2_moniMASK(601×275/740−275/2,90×206/480−206/2)=(85.844,-64.375)≒(86,-64)
p3_camMASK(x3_camMASK,y3_camMASK)=p3_moniMASK(509×275/740−275/2,150×206/480−206/2)=(51.655,-38.625)≒(52,-39)
p4_camMASK(x4_camMASK,y4_camMASK)=p4_moniMASK(601×275/740−275/2,150×206/480−206/2)=(85.844,-38.625)≒(86,-39)
【0067】
マスク作成処理時のズーム位置をW端とするとd_set=256であるので、パン角度0度、チルト角度0度の時に3次元座標上の撮像面20上に配置したマスク22の頂点座標はp1_camMASK_3d(52,-64,256),p2_camMASK_3d(86,-64,256),p3_camMASK_3d(52,-39,256),p4_camMASK_3d(86,-39,256)となる。そして、現在のパン角度θとチルト角度γがそれぞれθ=32度、γ=45度であった場合、その角度だけ回転させた際の3次元座標上のマスク22の頂点座標は式(17)より、p1_camMASK_3d_r(116,-226,88),p2_camMASK_3d_r(145,-226,70),p3_camMASK_3d_r(125,-209,103),p4_camMASK_3d_r(154,-209,85)となる。そして、マスク作成処理が完了した際にp1_camMASK_3d_r,p2_camMASK_3d_r,p3_camMASK_3d_r,p4_camMASK_3d_rが外部記憶メモリ130のマスク3次元位置情報136に記憶される。
【0068】
マスク表示処理では、監視カメラ12がパン方向、チルト方向に回転、ズームによりカメラ画面21の撮影被写体は変化するが、その際でもマスク作成処理時に作成したプライバシマスク保護領域にマスク処理が行えるように制御を行う。まず、カメラ画面21の頂点座標は、MONI_H=740,MONI_V=480であることから、p1_moni(0,0),p2_moni(740,0),p3_moni(0,480),p4_moni(740,480)となり、これを式(15)および式(16)を用いて、撮像面20の座標に変換すると、p1_cam(-137.5,-103),p2_cam(137.5,-103),p3_cam(-137.5,103),p4_cam(137.5,103)となるので、d_now=256(W端)とすれば、p1_cam_3d(-137.5,-103,256),p2_cam_3d(137.5,-103,256),p3_cam_3d(-137.5,103,256),p4_cam_3d(137.5,103,256)となる。
【0069】
いま、監視カメラ12の現在のパン角度、チルト角度がθ1=42度、γ1=47度、ズーム位置はW端位置とすると、その時の3次元座標上の撮像面20の座標位置を式(17)より計算すると、p1_cam_3d_r(-36,-257,166),p2_cam_3d_r(169,-257,-18),p3_cam_3d_r(65,-117,278),p4_cam_3d_r(269,-117,94)となる。式(18)、式(19)、式(20)より、外積S×Tを求めると、(a,b,c)=(-25760,41544,-28700)となる。この時、マスク3次元位置情報136と式(24)より係数k1,k2,k3,k4を求めると下記のようになる。
k1=(a×x1_cam_r+b×y1_cam_r+c×z1_cam_r)/(a×x1_camMASK_r+b×y1_camMASK_r+c×d1_set_r)=(-25760×(-36)+41544×(-257)−28700×166)/(-25760×116+41544×(-226)−28700×88)≒0.974
k2=(a×x1_cam_r+b×y1_cam_r+c×z1_cam_r)/(a×x2_camMASK_r+b×y2_camMASK_r+c×d2_set_r)=(-25760×(-36)+41544×(-257)−28700×166)/(-25760×145+41544×(-226)−28700×70)≒0.959
k3=(a×x1_cam_r+b×y1_cam_r+c×z1_cam_r)/(a×x3_camMASK_r+b×y3_camMASK_r+c×d3_set_r)=(-25760×(-36)+41544×(-257)−28700×166)/(-25760×125+41544×(-209)−28700×103)≒0.977
k4=(a×x1_cam_r+b×y1_cam_r+c×z1_cam_r)/(a×x4_camMASK_r+b×y4_camMASK_r+c×d4_set_r)=(-25760×(-36)+41544×(-257)−28700×166)/(-25760×154+41544×(-209)−28700×85)≒0.962
【0070】
よって、上記係数k1,k2,k3,k4と式(21)とにより、撮像面20上に投影されるマスク22の頂点座標は、下記のようになる。
p1_mask(x1_mask,y1_mask,z1_mask)=0.974×p1_camMASK_3d_r(116,-226,88)=(113,-220,86)
p2_mask(x2_mask,y2_mask,z2_mask)=0.959×p2_camMASK_3d_r(145,-226,70)=(139,-217,67)
p3_mask(x3_mask,y3_mask,z3_mask)=0.977×p3_camMASK_3d_r(125,-209,103)=(122,-204,101)
p4_mask(x4_mask,y4_mask,z4_mask)=0.962×p4_camMASK_3d_r(154,-209,85)=(148,-201,82)
【0071】
そして、この撮像面20上に投影される3次元座標上のマスク22の頂点座標を、2次元上のカメラ画面21のマスク23aの頂点座標に、式(29)および式(30)を用いて変換する。計算結果は、式(29)より下記のように求まる。
x1_moniMASKa=((MONI_H×(CAM_H^2+A1^2−B1^2))/(2×CAM_H^2)=((740×(275^2+29970^2−15321^2))/(2×275^2)=441.6711
x2_moniMASKa=((MONI_H×(CAM_H^2+A2^2−B2^2))/(2×CAM_H^2)=((740×(275^2+42026^2−9725^2))/(2×275^2)=528.0346
x3_moniMASKa=((MONI_H×(CAM_H^2+A3^2−B3^2))/(2×CAM_H^2)=((740×(275^2+31998^2−19179^2))/(2×275^2)=432.7178
x4_moniMASKa=((MONI_H×(CAM_H^2+A4^2−B4^2))/(2×CAM_H^2)=((740×(275^2+44048^2−13577^2))/(2×275^2)=519.0813
また、式(30)より下記のように求まる。
y1_moniMASKa=((MONI_V×(CAM_V^2+A1^2−C1^2))/(2×CAM_V^2)=((480×(206^2+29970^2−49777^2))/(2×206^2)=127.98
y2_moniMASKa=((MONI_V×(CAM_V^2+A2^2−C2^2))/(2×CAM_V^2)=((480×(206^2+42026^2−9725^2))/(2×206^2)=138.3637
y3_moniMASKa=((MONI_V×(CAM_V^2+A3^2−C3^2))/(2×CAM_V^2)=((480×(206^2+31998^2−19179^2))/(2×206^2)=182.6016
y4_moniMASKa=((MONI_V×(CAM_V^2+A4^2−C4^2))/(2×CAM_V^2)=((480×(206^2+44048^2−13577^2))/(2×206^2)=192.9852
【0072】
上記で求めたカメラ画面21のマスク23aの頂点座標は長方形でないために、式(31)により長方形に変換すると、その時のマスク23bの頂点座標は下記のように求まる。
x1_moniMASKb=x3_moniMASKb
=MIN(x1_moniMASKa,x2_moniMASKa,x3moniMASKa,x4moniMASKa)
=MIN(441.6711,528.0346,432.7178,519.0813)=432.7178
x2_moniMASKb=x4_moniMASKb
=MAX(x1_moniMASKa,x2_moniMASKa,x3moniMASKa,x4moniMASKa)
=MAX(441.6711,528.0346,432.7178,519.0813)=528.0346
y1_moniMASKb=y3_moniMASKb
=MIN(y1_moniMASKa,y2_moniMASKa,y3moniMASKa,y4moniMASKa)
=MIN(127.98,138.3637,182.6016,192.9852)=127.98
y2_moniMASKb=y4_moniMASKb
=MAX(y1_moniMASKa,y2_moniMASKa,y3moniMASKa,y4moniMASKa)
=MAX(127.98,138.3637,182.6016,192.9852)=192.9852
【0073】
以上により、本実施形態の撮像装置10は、計算されたマスク23bの頂点座標を画像処理LSI106のマスク信号発生部108に設定しマスクすることで、監視カメラ12がパン、チルト、ズームした際においても、設定したプライバシ保護領域を確実にマスクすることができる。また、撮像装置10は、一旦、パン角度0度、チルト角度0度における撮像面20を3次元座標のいずれかの軸(本実施形態ではZ軸)方向に配置した後で、回転することにより、処理負荷を軽減することができる。さらに、撮像装置10は、パン・チルト・ズーム後の3次元座標上の撮像面20上のマスク位置をカメラ画面21上の2次元位置に変換する際に、撮像面20のサイズとカメラ画面21のサイズとが相似であることを利用して、撮像面20上のマスク22の頂点座標を撮像面20の3つの頂点からの距離で表し、カメラ画面21の3つの頂点から相似の距離にあたる位置として、カメラ画面の2次元上のマスク位置を算出する。このような構成をそなえているため、本実施形態の撮像装置10は、パン回転、チルト回転、ズームによって変形したカメラ画面21上のプライバシ保護のためのマスク範囲を正確に算出することができる。
【符号の説明】
【0074】
1 監視カメラシステム
3 カメラ操作装置
4 表示装置
5 レンズユニット
10 撮像装置
20 撮像面
21 カメラ画面
22,22a,22r マスク(第1のマスク)
23,23a,23b マスク(第2のマスク)
51 レンズ
52 アイリス
104 撮像素子
105 AFE
106 画像処理LSI(映像処理部)
107 信号処理部
108 マスク信号発生部
109 DAC
110 カメラ映像信号出力部
120 マイコン(映像処理部)
121 モータ制御部
122 制御位置情報取得部
123 プライバシマスク制御部
124 マスク状態判定部
125 SIN・COS算出部
130 外部記憶メモリ
131 画面情報
132 カメラ画面情報
133 撮像面情報
134 Z値テーブル
135 角度テーブル
136 マスク3次元位置情報
140 ズームレンズ制御用モータ
150 マスク作成処理部
151 マスク設定情報取得部
152 マスク表示位置算出部
153 マスク2次元2次元変換部
154 マスク2次元3次元変換部(マスク生成部)
155 マスク回転処理部(マスク生成部)
160 マスク表示処理部
161 カメラ画面2次元2次元変換部
162 撮像面2次元3次元変換部
163 撮像面回転処理部
164 マスク投影位置算出部(マスク生成部)
165 マスク表示位置算出部
166 マスク座標補正部

【特許請求の範囲】
【請求項1】
撮像素子を有し、前記撮像素子に撮像された映像信号を表示したカメラ画面上に、前記カメラ画面内の一部の被写体を見えないように覆うマスクを生成重畳して表示する、回転台に取り付け可能な撮像装置であって、
前記回転台のパン角度およびチルト角度と、ズーム位置とを取得する制御位置情報取得部と、
前記撮像素子の成す面を示す撮像面上に配置されたマスクを第1のマスクとし、パン回転およびチルト回転の中心を3次元座標の原点として、前記第1のマスクを配置して、その配置した前記第1のマスクの頂点座標を算出するマスク生成部と、
前記マスク生成部によって算出された前記第1のマスクの頂点座標を前記カメラ画面の2次元座標のマスクを示す前記第2のマスクの頂点座標に変換する際に、前記撮像面の複数の頂点と前記第1のマスクの頂点との距離と、前記カメラ画面の複数の頂点と前記第2のマスクの頂点との距離とが相似の関係となるように、前記カメラ画面の2次元座標上の前記第2のマスクの頂点座標を算出するマスク表示位置算出部と、
前記マスク表示位置算出部によって算出された前記第2のマスクの位置にマスクが設定されるように、前記カメラ画面の映像信号にマスクを重畳するマスク信号発生部と
を備えることを特徴とする撮像装置。
【請求項2】
前記マスク生成部は、
前記ズーム位置が所定のズーム位置のとき、前記撮像素子の成す面を示す撮像面上に配置されたマスクを第1のマスクとして、前記第1のマスクを3次元座標軸のうちの1軸が前記撮像面の中心を通る垂線となり、3次元座標の原点から前記所定のズーム位置となる位置に前記撮像面を配置して、その配置した前記第1のマスクの頂点座標を第1の情報として算出するマスク2次元3次元変換部と、
前記第1の情報の前記第1のマスクの頂点座標に対して、パン回転およびチルト回転後のパン角度およびチルト角度に基づいて、3次元座標の原点を中心として所定の方向に回転する変換を実行し、回転変換後の前記第1のマスクの頂点座標を第2の情報として算出し、記憶部に記憶するマスク回転処理部と、
3次元座標の原点と前記第2の情報として記憶されている前記第1のマスクの頂点とを線で結んだ直線と回転ズーム操作後の前記撮像面との交点を、パン、チルト、およびズームの操作後の前記第1のマスクの頂点座標として算出するマスク投影位置算出部と、
を備えることを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記マスク表示位置算出部によって算出された前記第2のマスクの形状が、前記カメラ画面の2次元座標の軸に平行な辺を有する長方形でない場合、当該第2のマスクの形状に外接し、前記カメラ画面を配置している2次元座標の軸に平行な辺を有する長方形に変換するマスク座標補正部
を備えることを特徴とする請求項1または請求項2に記載の撮像装置。
【請求項4】
光学レンズ、撮像素子、および前記撮像素子に撮像された映像信号の映像処理部を有して撮像画面を出力するカメラと、前記カメラを回転支持する回転台とで構成される監視カメラであって、
前記監視カメラは、
前記回転台のパン角度およびチルト角度と、ズーム位置とを取得する制御位置情報取得部と、
前記撮像素子の成す面を示す撮像面上に配置されたマスクを第1のマスクとし、パン回転およびチルト回転の中心を3次元座標の原点として、前記第1のマスクを配置して、その配置した前記第1のマスクの頂点座標を算出するマスク生成部と、
前記マスク生成部によって算出された前記第1のマスクの頂点座標を前記カメラ画面の2次元座標のマスクを示す第2のマスクの頂点座標に変換する際に、前記撮像面の複数の頂点と前記第1のマスクの頂点との距離と、前記カメラ画面の複数の頂点と前記第2のマスクの頂点との距離とが相似の関係となるように、前記カメラ画面の2次元座標上の前記第2のマスクの頂点座標を算出するマスク表示位置算出部と、
前記マスク表示位置算出部によって算出された前記第2のマスクの位置にマスクが設定されるように、前記カメラ画面の映像信号にマスクを重畳するマスク信号発生部と、
を備え、
前記撮像素子に撮像された映像信号を表示したカメラ画面上に、前記カメラ画面内の一部の被写体を見えないように覆うマスクを生成重畳して表示する
ことを特徴とする監視カメラ。
【請求項5】
前記マスク生成部は、
前記ズーム位置が所定のズーム位置のとき、前記撮像素子の成す面を示す撮像面上に配置されたマスクを第1のマスクとして、前記第1のマスクを3次元座標軸のうちの1軸が前記撮像面の中心を通る垂線となり、3次元座標の原点から前記所定のズーム位置となる位置に前記撮像面を配置して、その配置した前記第1のマスクの頂点座標を第1の情報として算出するマスク2次元3次元変換部と、
前記第1の情報の前記第1のマスクの頂点座標に対して、パン回転およびチルト回転後のパン角度およびチルト角度に基づいて、3次元座標の原点を中心として所定の方向に回転する変換を実行し、回転変換後の前記第1のマスクの頂点座標を第2の情報として算出し、記憶部に記憶するマスク回転処理部と、
3次元座標の原点と前記第2の情報として記憶されている前記第1のマスクの頂点とを線で結んだ直線と回転ズーム操作後の前記撮像面との交点を、パン、チルト、およびズームの操作後の前記第1のマスクの頂点座標として算出するマスク投影位置算出部と
を備えることを特徴とする請求項4に記載の監視カメラ。
【請求項6】
前記マスク表示位置算出部によって算出された前記第2のマスクの形状が、前記カメラ画面の2次元座標の軸に平行な辺を有する長方形でない場合、当該第2のマスクの形状に外接し、前記カメラ画面を配置している2次元座標の軸に平行な辺を有する長方形に変換するマスク座標補正部
を備えることを特徴とする請求項4または請求項5に記載の監視カメラ。
【請求項7】
撮像素子を有し、前記撮像素子に撮像された映像信号を表示したカメラ画面上に、前記カメラ画面内の一部の被写体を見えないように覆うマスクを生成重畳して表示する、回転台に取り付け可能な撮像装置のカメラ画面のマスク方法であって、
前記撮像装置は、
前記回転台のパン角度およびチルト角度と、ズーム位置とを取得する第1のステップと、
前記撮像素子の成す面を示す撮像面上に配置されたマスクを第1のマスクとし、パン回転およびチルト回転の中心を3次元座標の原点として、前記第1のマスクを配置して、その配置した前記第1のマスクの頂点座標を算出する第2のステップと、
前記第2のステップによって算出された前記第1のマスクの頂点座標を前記カメラ画面の2次元座標のマスクを示す第2のマスクの頂点座標に変換する際に、前記撮像面の複数の頂点と前記第1のマスクの頂点との距離と、前記カメラ画面の複数の頂点と前記第2のマスクの頂点との距離とが相似の関係となるように、前記カメラ画面の2次元座標上の前記第2のマスクの頂点座標を算出する第3のステップと、
前記第3のステップによって算出された前記第2のマスクの位置にマスクが設定されるように、前記カメラ画面の映像信号にマスクを重畳する第4のステップと
を実行することを特徴とするカメラ画面のマスク方法。
【請求項8】
前記撮像装置は、前記第2のステップにおいて、
前記ズーム位置が所定のズーム位置のとき、前記撮像素子の成す面を示す撮像面上に配置されたマスクを第1のマスクとして、前記第1のマスクを3次元座標軸のうちの1軸が前記撮像面の中心を通る垂線となり、3次元座標の原点から前記所定のズーム位置となる位置に前記撮像面を配置して、その配置した前記第1のマスクの頂点座標を第1の情報として算出するステップと、
前記第1の情報の前記第1のマスクの頂点座標に対して、パン回転およびチルト回転後のパン角度およびチルト角度に基づいて、3次元座標の原点を中心として所定の方向に回転する変換を実行し、回転変換後の前記第1のマスクの頂点座標を第2の情報として算出し、記憶部に記憶するステップと、
3次元座標の原点と前記第2の情報として記憶されている前記第1のマスクの頂点とを線で結んだ直線と回転ズーム操作後の前記撮像面との交点を、パン、チルト、およびズームの操作後の前記第1のマスクの頂点座標として算出するステップと
を実行することを特徴とする請求項7に記載のカメラ画面のマスク方法。
【請求項9】
前記撮像装置は、前記第4のステップにおいて、
前記第3のステップによって算出された前記第2のマスクの形状が、前記カメラ画面の2次元座標の軸に平行な辺を有する長方形でない場合、当該第2のマスクの形状に外接し、前記カメラ画面を配置している2次元座標の軸に平行な辺を有する長方形に変換するステップ
を実行することを特徴とする請求項7または請求項8に記載のカメラ画面のマスク方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−66121(P2013−66121A)
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2011−204727(P2011−204727)
【出願日】平成23年9月20日(2011.9.20)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】