(57)【特許請求の範囲】
【請求項１】
撮像素子を有し、前記撮像素子に撮像された映像信号を表示したカメラ画面上に、前記カメラ画面内の一部の被写体を見えないように覆うマスクを生成重畳して表示する、回転台に取り付け可能な撮像装置であって、
前記回転台のパン角度およびチルト角度と、ズーム位置とを取得する制御位置情報取得部と、
前記撮像素子の成す面を示す撮像面上に配置されたマスクを第１のマスクとし、パン回転およびチルト回転の中心を３次元座標の原点として、前記第１のマスクを配置して、その配置した前記第１のマスクの頂点座標を算出するマスク生成部と、
前記マスク生成部によって算出された前記第１のマスクの頂点座標を前記カメラ画面の２次元座標のマスクを示す前記第２のマスクの頂点座標に変換する際に、前記撮像面の複数の頂点と前記第１のマスクの頂点との距離と、前記カメラ画面の複数の頂点と前記第２のマスクの頂点との距離とが相似の関係となるように、前記カメラ画面の２次元座標上の前記第２のマスクの頂点座標を算出するマスク表示位置算出部と、
前記マスク表示位置算出部によって算出された前記第２のマスクの位置にマスクが設定されるように、前記カメラ画面の映像信号にマスクを重畳するマスク信号発生部と
を備えることを特徴とする撮像装置。
【請求項２】
前記マスク生成部は、
前記ズーム位置が所定のズーム位置のとき、前記撮像素子の成す面を示す撮像面上に配置されたマスクを第１のマスクとして、前記第１のマスクを３次元座標軸のうちの１軸が前記撮像面の中心を通る垂線となり、３次元座標の原点から前記所定のズーム位置となる位置に前記撮像面を配置して、その配置した前記第１のマスクの頂点座標を第１の情報として算出するマスク２次元３次元変換部と、
前記第１の情報の前記第１のマスクの頂点座標に対して、パン回転およびチルト回転後のパン角度およびチルト角度に基づいて、３次元座標の原点を中心として所定の方向に回転する変換を実行し、回転変換後の前記第１のマスクの頂点座標を第２の情報として算出し、記憶部に記憶するマスク回転処理部と、
３次元座標の原点と前記第２の情報として記憶されている前記第１のマスクの頂点とを線で結んだ直線と回転ズーム操作後の前記撮像面との交点を、パン、チルト、およびズームの操作後の前記第１のマスクの頂点座標として算出するマスク投影位置算出部と、
を備えることを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記マスク表示位置算出部によって算出された前記第２のマスクの形状が、前記カメラ画面の２次元座標の軸に平行な辺を有する長方形でない場合、当該第２のマスクの形状に外接し、前記カメラ画面を配置している２次元座標の軸に平行な辺を有する長方形に変換するマスク座標補正部
を備えることを特徴とする請求項１または請求項２に記載の撮像装置。
【請求項４】
光学レンズ、撮像素子、および前記撮像素子に撮像された映像信号の映像処理部を有して撮像画面を出力するカメラと、前記カメラを回転支持する回転台とで構成される監視カメラであって、
前記監視カメラは、
前記回転台のパン角度およびチルト角度と、ズーム位置とを取得する制御位置情報取得部と、
前記撮像素子の成す面を示す撮像面上に配置されたマスクを第１のマスクとし、パン回転およびチルト回転の中心を３次元座標の原点として、前記第１のマスクを配置して、その配置した前記第１のマスクの頂点座標を算出するマスク生成部と、
前記マスク生成部によって算出された前記第１のマスクの頂点座標を前記カメラ画面の２次元座標のマスクを示す第２のマスクの頂点座標に変換する際に、前記撮像面の複数の頂点と前記第１のマスクの頂点との距離と、前記カメラ画面の複数の頂点と前記第２のマスクの頂点との距離とが相似の関係となるように、前記カメラ画面の２次元座標上の前記第２のマスクの頂点座標を算出するマスク表示位置算出部と、
前記マスク表示位置算出部によって算出された前記第２のマスクの位置にマスクが設定されるように、前記カメラ画面の映像信号にマスクを重畳するマスク信号発生部と、
を備え、
前記撮像素子に撮像された映像信号を表示したカメラ画面上に、前記カメラ画面内の一部の被写体を見えないように覆うマスクを生成重畳して表示する
ことを特徴とする監視カメラ。
【請求項５】
前記マスク生成部は、
前記ズーム位置が所定のズーム位置のとき、前記撮像素子の成す面を示す撮像面上に配置されたマスクを第１のマスクとして、前記第１のマスクを３次元座標軸のうちの１軸が前記撮像面の中心を通る垂線となり、３次元座標の原点から前記所定のズーム位置となる位置に前記撮像面を配置して、その配置した前記第１のマスクの頂点座標を第１の情報として算出するマスク２次元３次元変換部と、
前記第１の情報の前記第１のマスクの頂点座標に対して、パン回転およびチルト回転後のパン角度およびチルト角度に基づいて、３次元座標の原点を中心として所定の方向に回転する変換を実行し、回転変換後の前記第１のマスクの頂点座標を第２の情報として算出し、記憶部に記憶するマスク回転処理部と、
３次元座標の原点と前記第２の情報として記憶されている前記第１のマスクの頂点とを線で結んだ直線と回転ズーム操作後の前記撮像面との交点を、パン、チルト、およびズームの操作後の前記第１のマスクの頂点座標として算出するマスク投影位置算出部と
を備えることを特徴とする請求項４に記載の監視カメラ。
【請求項６】
前記マスク表示位置算出部によって算出された前記第２のマスクの形状が、前記カメラ画面の２次元座標の軸に平行な辺を有する長方形でない場合、当該第２のマスクの形状に外接し、前記カメラ画面を配置している２次元座標の軸に平行な辺を有する長方形に変換するマスク座標補正部
を備えることを特徴とする請求項４または請求項５に記載の監視カメラ。
【請求項７】
撮像素子を有し、前記撮像素子に撮像された映像信号を表示したカメラ画面上に、前記カメラ画面内の一部の被写体を見えないように覆うマスクを生成重畳して表示する、回転台に取り付け可能な撮像装置のカメラ画面のマスク方法であって、
前記撮像装置は、
前記回転台のパン角度およびチルト角度と、ズーム位置とを取得する第１のステップと、
前記撮像素子の成す面を示す撮像面上に配置されたマスクを第１のマスクとし、パン回転およびチルト回転の中心を３次元座標の原点として、前記第１のマスクを配置して、その配置した前記第１のマスクの頂点座標を算出する第２のステップと、
前記第２のステップによって算出された前記第１のマスクの頂点座標を前記カメラ画面の２次元座標のマスクを示す第２のマスクの頂点座標に変換する際に、前記撮像面の複数の頂点と前記第１のマスクの頂点との距離と、前記カメラ画面の複数の頂点と前記第２のマスクの頂点との距離とが相似の関係となるように、前記カメラ画面の２次元座標上の前記第２のマスクの頂点座標を算出する第３のステップと、
前記第３のステップによって算出された前記第２のマスクの位置にマスクが設定されるように、前記カメラ画面の映像信号にマスクを重畳する第４のステップと
を実行することを特徴とするカメラ画面のマスク方法。
【請求項８】
前記撮像装置は、前記第２のステップにおいて、
前記ズーム位置が所定のズーム位置のとき、前記撮像素子の成す面を示す撮像面上に配置されたマスクを第１のマスクとして、前記第１のマスクを３次元座標軸のうちの１軸が前記撮像面の中心を通る垂線となり、３次元座標の原点から前記所定のズーム位置となる位置に前記撮像面を配置して、その配置した前記第１のマスクの頂点座標を第１の情報として算出するステップと、
前記第１の情報の前記第１のマスクの頂点座標に対して、パン回転およびチルト回転後のパン角度およびチルト角度に基づいて、３次元座標の原点を中心として所定の方向に回転する変換を実行し、回転変換後の前記第１のマスクの頂点座標を第２の情報として算出し、記憶部に記憶するステップと、
３次元座標の原点と前記第２の情報として記憶されている前記第１のマスクの頂点とを線で結んだ直線と回転ズーム操作後の前記撮像面との交点を、パン、チルト、およびズームの操作後の前記第１のマスクの頂点座標として算出するステップと
を実行することを特徴とする請求項７に記載のカメラ画面のマスク方法。
【請求項９】
前記撮像装置は、前記第４のステップにおいて、
前記第３のステップによって算出された前記第２のマスクの形状が、前記カメラ画面の２次元座標の軸に平行な辺を有する長方形でない場合、当該第２のマスクの形状に外接し、前記カメラ画面を配置している２次元座標の軸に平行な辺を有する長方形に変換するステップ
を実行することを特徴とする請求項７または請求項８に記載のカメラ画面のマスク方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視カメラのパン（横振り）回転、チルト（縦振り）回転、ズームを制御可能な監視カメラシステムにおいて、プライバシ保護のため、カメラ画像の一部に映るプライバシ保護範囲をマスクする技術に関する。
【背景技術】
【０００２】
パン（横振り）回転、チルト（縦振り）回転、ズームが可能な監視カメラシステムは、パン方向、チルト方向に自由に回転できるカメラ用回転台にズーム可能な監視カメラを取り付けた構造を有している。この監視カメラシステムは、外部の操作装置を介してカメラ用回転台および監視カメラのズームを操作することによって、監視カメラが映し出す映像を自由に選択できる。また、監視カメラシステムは、一般的に、複数の撮影方向が設定され、それらの撮影方向を一定の時間ごとに順次映し出すシーケンス制御機能や、監視エリアに人感センサを設置し、異常検知された際に、その方向に瞬時に監視カメラを向けさせるアラーム機能等を備えている。このような監視カメラシステムを街路等の公共な場所に設置した場合、民間の家や撮影禁止被写体等、プライバシ保護のために撮影することが好ましくない範囲をマスク処理する必要がある。
【０００３】
例えば、特許文献１では、２次元のカメラ画面上のプライバシ保護範囲を表す頂点の中から代表頂点を２つ選択し、それ以外の頂点は２次元上で代表頂点との差分情報を計算して保持しておく。次に、代表頂点を３次元直交座標上に配置して、パン回転、チルト回転、ズーム処理を実行して、３次元直交座標上の代表頂点の位置を計算し、この３次元直交座標上の代表頂点の位置を２次元のカメラ画面上の代表頂点の座標に戻す。そして、代表頂点以外の頂点は予め保持した差分情報から計算することによって、処理時間を短縮できることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１２９３３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、２つの代表頂点のみを３次元直交座標上で取り扱っているため、パン回転、チルト回転によりプライバシ保護範囲が回転や変形した際のプライバシ保護範囲の形状を２次元上の差分データからだけでは正確に再現することができないという問題がある。
【０００６】
そこで、本発明では、パン回転、チルト回転、ズームによって変形したカメラ画面上のプライバシ保護のためのマスク範囲を正確に算出する技術を提供することを課題とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するために、本発明に係る撮像装置は、ズーム位置に応じた焦点距離を３次元座標のうちの１つの軸（例えば、Ｚ軸）上に採って、撮像素子の仕様によって決まる撮像面（長方形）の２次元位置を３次元座標で表す。また、本発明に係る撮像装置は、この撮像面上に表されるマスク位置を３次元座標で表してから、３次元座標上の撮像面とともにパン・チルト・ズームさせる。次に、本発明に係る撮像装置は、パン・チルト・ズーム後の３次元座標上の撮像面上のマスク位置をユーザが閲覧するカメラ画面（長方形）の２次元位置に変換する際に、撮像面のサイズとカメラ画面のサイズとが相似であることを利用して、撮像面上のマスク位置の頂点を撮像面の３つの頂点からの距離で表し、カメラ画面の３つの頂点から相似の距離にあたる位置として、カメラ画面の２次元上のマスク位置を算出する。
【発明の効果】
【０００８】
本発明によれば、パン回転、チルト回転、ズームによって変形したカメラ画面上のプライバシ保護のためのマスク範囲を正確に算出する技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】監視カメラシステムの構成例を示す図である。
【図２】撮像装置の構成例を示す図である。
【図３】マイコンの機能例および外部記憶メモリに記憶される情報の例を示す図である。
【図４】パン角度０度、チルト角度０度のときの撮像面を３次元座標に配置した図である。
【図５】レンズユニットのｆ値と撮像素子との位置関係を示す図である。
【図６】Ｚテーブルの一例を示す図である。
【図７】マスク状態判定部の処理フロー例を示す図である。
【図８】カメラ画面を２次元座標に配置した図である。
【図９】撮像装置がパン回転、チルト回転したときの撮像面を３次元座標に配置した図である。
【図１０】３次元座標に配置した撮像面に投影されるマスクの位置の求め方を説明する図である。
【図１１】３次元座標の撮像面およびマスクと２次元座標のカメラ画面およびマスクとの位置関係を説明する図であり、（ａ）は撮像面におけるマスクの位置を表し、（ｂ）はカメラ画面におけるマスクの位置を表す。
【図１２】カメラ画面上のマスク形状を長方形に補正する例を示す図である。
【発明を実施するための形態】
【００１０】
次に、本発明を実施するための形態（以降、「本実施形態」と称す。）について、適宜図面を参照しながら詳細に説明する。
【００１１】
まず、監視カメラシステム全体の概略について、図１を用いて説明する。
図１に示すように、監視カメラシステム１は、監視カメラ１２、カメラ操作装置３、および表示装置４を備えている。また、監視カメラ１２およびカメラ操作装置３は、ネットワーク２を介して、通信可能に接続されている。
監視カメラ１２は、パン回転、チルト回転が可能な回転台１１に、外部の光を取り込むレンズユニット５と、レンズユニット５のズームを変更するとともに取り込んだ光を表示装置４に表示可能な映像信号に変換する撮像装置１０とで構成されるビデオカメラを取り付けて形成される。監視カメラ１２は、ネットワーク２を介して、カメラ操作装置３によって、パン回転、チルト回転、ズームの操作が可能であり、カメラ操作装置３によって指定された方向の映像を映し出すことができる。
【００１２】
ネットワーク２は、例えば、ＩＰ（Internet Protocol）を用いた有線網または無線網によって構成される。
カメラ操作装置３は、複数の撮影箇所を記憶し、この記憶した撮影箇所を一定の時間で順次映し出すシーケンス機能や、監視エリアに設定した人感センサ（不図示）が異常を検知したときに、その方向に監視カメラ１２を向けさせるアラーム機能を備えている。また、カメラ操作装置３は、人手によって、監視カメラ１２の制御を行う機能も備えている。さらに、カメラ操作装置３は、同時に複数の監視カメラ１２を制御することができ、監視カメラ１２ごとにネットワーク２を介して取得した映像信号を、表示装置４に出力する。
表示装置４は、映像信号を表示するモニタである。
【００１３】
図２は、撮像装置１０の構成例を示している。なお、図２では、撮像装置１０に含まれないカメラ操作装置３、表示装置４、レンズユニット５は、破線で表示している。まず、撮像装置１０の構成について、処理の流れに従って説明する。
【００１４】
撮像素子１０４は、ＣＣＤ（Charge Coupled Device）センサを備え、外部光がレンズユニット５内のズーム機能を有するレンズ５１から取り込まれ、その光量を調整するアイリス(アイリス絞り)５２を経てＣＣＤセンサに照射され、光電変換によって映像信号を出力する。
【００１５】
ＡＦＥ（Analog Front End Circuit）１０５は、入力してきた映像信号に対して、相関二重サンプリング(Correlated Double Sampling；以降、ＣＤＳと称す。)処理、アナログＡＧＣ（Automatic Gain Control）処理、ＡＤＣ（Analog to Digital Converter）処理を実行する。
【００１６】
画像処理ＬＳＩ（Large Scale Integration）１０６は、信号処理部１０７およびマスク信号発生部１０８を備える。
信号処理部１０７は、ノイズ低減処理、感度アップ処理、色再現性向上処理等を実行する。
また、マスク信号発生部１０８は、信号処理部１０７の出力信号に対して、プライバシ保護範囲に付加するマスク信号を出力する。そして、画像処理ＬＳＩ１０６は、信号処理部１０７の出力信号にマスク信号を重畳する。
なお、画像処理ＬＳＩ１０６の機能を動作させる設定を行うために、画像処理ＬＳＩ１０６は、マイコン１２０と接続しており、画像処理ＬＳＩ１０６の制御はマイコン１２０によって行われる。また、画像処理ＬＳＩ１０６は、映像信号に対する種々の処理機能を集約しており、撮像装置１０の小型化に寄与している。
【００１７】
ＤＡＣ(Digital Analog Converter)１０９は、画像処理ＬＳＩ１０６の出力であるデジタル映像信号をアナログ映像信号に変換して、カメラ映像信号出力部１１０を介して映像信号を出力する。なお、当該映像信号出力は、図２に示すようにカメラ操作装置３を介して表示装置４に出力される、またはカメラ操作装置３を介さずに直接表示装置４に出力されるように構成されても構わない。
【００１８】
なお、図２では、撮像素子１０４としてＣＣＤセンサを例として説明しているが、撮像素子１０４は、例えば、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）等のＣＣＤ以外の素子であってもよく、その際にＡＦＥ１０５の構成はＣＣＤの場合とは異なる。また、ＤＡＣ１０９が存在せず、画像処理ＬＳＩ１０６の出力信号（デジタル映像信号）をカメラ操作装置３を介して表示装置４に出力する、またはカメラ操作装置３を介さずに直接表示装置４に出力する構成であっても構わない。
【００１９】
マイコン１２０は、モータ制御部１２１、制御位置情報取得部１２２、プライバシマスク制御部１２３を備える。
モータ制御部１２１は、制御位置情報取得部１２２からズーム位置情報を取得して、ズームレンズ制御用モータ１４０を動かして、設定したズーム位置となるように制御を行う。
制御位置情報取得部１２２は、撮像装置１０の外部から設定されたパン角度、チルト角度、ズーム位置情報を取得する。
また、プライバシマスク制御部１２３は、必要に応じて、画像処理ＬＳＩ１０６の制御を行い、プライバシ保護範囲の演算処理を行ない、その結果をマスク信号発生部１０８に設定する。
なお、マイコン１２０の一部の機能は、ソフトウェアではなく、画像処理ＬＳＩ１０６にハードウェアとして内装されていても構わない。マイコン１２０の詳細については、後記する。
【００２０】
外部記憶メモリ１３０は、各種データを記憶しておくために備えられる。外部記憶メモリ１３０は、マイコン１２０内にメモリがあるシステム構成であればマイコン１２０内のメモリを使用すればよいので必須のものではないが、本実施形態では、マイコン１２０の外部に外部記憶メモリ１３０を備えるものとして説明する。
【００２１】
次に、図３を用いて、マイコン１２０の機能例および外部記憶メモリ１３０に記憶される情報の例について説明する（適宜、図２参照）。
まず、外部記憶メモリ１３０に記憶される情報について説明する。外部記憶メモリ１３０は、画面情報１３１、Ｚ値テーブル１３４、角度テーブル１３５、マスク３次元位置情報１３６を記憶している。
画面情報１３１は、カメラ画面情報１３２および撮像面情報１３３を記憶している。
カメラ画面情報１３２は、最終的に表示装置４に出力する映像サイズの水平幅および垂直幅を指し、それぞれMONI_H、MONI_V（図８参照）として記憶している。
【００２２】
撮像面情報１３３は、３次元直交座標（以降、３次元座標と称することもある。）に撮像素子１０４の成す面を示す撮像面２０（図４参照）を配置した際のパン角度０度、チルト角度０度の時の撮像面２０のサイズを記憶している。図４は、撮像面２０をＸＹＺ軸の３次元直交座標に配置した状態を示す。図４では、原点（０，０，０）から撮像面２０への奥行きをＺ軸としているが座標軸の決め方は任意に決めても特に問題はない。
【００２３】
まず、３次元直交座標上に配置した撮像面２０の水平幅と垂直幅であるCAM_H，CAM_Vを求めておく。レンズユニット５の仕様により、レンズユニット５と撮像素子１０４を水平面、垂直面で見た時の関係は、それぞれ図５（ａ）（ｂ）に示すように表せる。撮像素子１０４の仕様より、１画素の水平サイズ、垂直サイズであるPux，Puyと水平画素数、垂直画素数であるHpixel，Vpixelが予めわかっている。そこで、レンズユニット５と撮像素子１０４との関係から水平面、垂直面の角度をそれぞれαH，αVとすると、下記の式(1)，式(2)が成り立つ。ここで、Ｗ端時（画角を最も広くとった時）のレンズ５１と撮像素子１０４の距離をｆ値とする。
Tan(αH) = ((Pux×Hpixel)/2)/ｆ値            ・・・式(1)
Tan(αV) = ((Puy×Vpixel)/2)/ｆ値            ・・・式(2)
【００２４】
また、図４の撮像上の位置関係から、原点（０，０，０）から撮像面２０への任意の距離をＷ端時の距離d_base(基準値)としたときに、下記の式(3)、式(4)が成り立つ。
Tan(αH) = (CAM_H/2)/d_base                  ・・・式(3)
Tan(αV) = (CAM_V/2)/d_base                  ・・・式(4)
【００２５】
よって、式(1)，式(3)と式(2)，式(4)とを用いて、CAM_H，CAM_Vについて解くと下記の式(5)、式(6)が求まる。
CAM_H = (d_base×Pux×Hpixel)/ｆ値          ・・・式(5)
CAM_V = (d_base×Puy×Vpixel)/ｆ値          ・・・式(6)
３次元座標上のd_baseの値を決めれば、CAM_H、CAM_Vを求めることができるので、予め計算して撮像面情報１３３に記憶しておく。
【００２６】
なお、画面情報１３１は、マイコン１２０で演算してもよいが、撮像素子１０４と映像信号の規格が決まれば一意的に決まるものであるので、予め記憶させておくことで処理時間を短縮させることができる。
【００２７】
次に、Ｚ値テーブル１３４について、以下に説明する（適宜、図２、図３参照）。
Ｚ値テーブル１３４は、レンズ５１と撮像素子１０４との間の距離ｆ値と、図４に示すd_baseとの関係を記憶している。これは、監視カメラ１２のズーム位置(Ｗ端からＴ端までの任意位置)の設定に依存して、レンズ５１と撮像素子１０４との間の距離(ｆ値)が変化するので、図４の３次元座標上のd_baseの値を変化させる必要があるためである。そこで、Ｚ値テーブル１３４は、任意のズーム位置におけるd_baseが変化した際のd_nの値を予め記憶しておく。前記式(5)、式(6)を変形すると、下記の式(7)、式(8)により、あるズーム位置における焦点距離ｆ値によりd_nの値を求めることができる。
d_n＝(CAM_H×ｆ値)/(Pux×Hpixel)              ・・・式(7)
d_n＝(CAM_V×ｆ値)/(Puy×Vpixel)              ・・・式(8)
【００２８】
なお、d_nの値は、式(7)または式(8)のどちらか一方を使用すれば良い。Ｚ値テーブル１３４は、例えば、図６に示すように、ズーム位置とd_nの値とを関連付けて作成される。Ｚ値テーブル１３４は、マイコン１２０で演算しても良いが、処理負荷の大きな演算であり、レンズユニット５の仕様が決まれば一意的に決まるので、予めテーブルとして記憶させておくと良い。
【００２９】
角度テーブル１３５は、角度０〜９０度までのSINの値を記憶している。SIN，COSの計算は、マイコン１２０で処理させることも可能であるが、処理負荷が大きいため、予めテーブルとして記憶しておくことで、処理時間の短縮を図ることができる。単純には、SIN，COSの０度〜３６０度までの値を記憶しておけば良いが、外部記憶メモリ１３０のメモリ容量は有限であり極力メモリ容量を抑える必要がある。そのため、角度テーブル１３５には、角度０〜９０度までのSINの値を記憶させておく。そして、角度０〜９０度までのSINの値を用いて、少ない処理負荷で、角度０〜３６０度のSIN，COSの値を算出するようにしている。その処理は、マイコン１２０のプライバシマスク制御部１２３内にあるSIN・COS算出部１２５で実行している。
【００３０】
ここで、マイコン１２０のプライバシマスク制御部１２３内のSIN・COS算出部１２５の処理について説明しておく。SIN・COS算出部１２５は、外部記憶メモリ１３０の角度テーブル１３５に記憶された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)
【００３１】
次に、マイコン１２０のプライバシマスク制御部１２３の機能について説明する。プライバシマスク制御部１２３は、マスク状態判定部１２４、マスク作成処理部１５０、マスク表示処理部１６０を備える。
まず、マスク状態判定部１２４は、プライバシマスク制御状態の判定を行う。具体的には、マスク状態判定部１２４は、図７に示すように、ステップＳ７０１において、プライバシマスク制御状態として、１：制御ＯＦＦ、２：マスク作成、３：マスク表示のいずれかを判定する。１：制御ＯＦＦの状態の時には何も処理が行われない。２：マスク作成時には、ステップＳ７０２において、マスク作成処理部１５０はマスク作成処理を実行する。また、３：マスク表示時には、ステップＳ７０３において、マスク表示処理部１６０は、マスク表示処理を実行する。
【００３２】
ステップＳ７０２のマスク作成処理は、監視カメラ１２でプライバシ保護領域を覆うためのマスクを作成する状態のモードである。また、ステップＳ７０３のマスク表示処理は、監視カメラ１２をパン／チルト／ズームした時に、表示装置４に表示されるカメラ画面２１上で、マスク作成処理で作成したマスクによって確実にプライバシマスク保護領域を覆うように表示している状態のモードである。具体的には、画像処理ＬＳＩ１０６のマスク信号発生部１０８が、マスク作成処理部１５０およびマスク表示処理部１６０の処理結果に基づいてマスク表示設定を行う。
【００３３】
次に、マスク作成処理部１５０の機能について、図３を用いて説明する（適宜、図１、図２参照）。
マスク作成処理部１５０は、マスク設定情報取得部１５１、マスク表示位置算出部１５２、マスク２次元２次元変換部１５３、マスク２次元３次元変換部１５４、マスク回転処理部１５５を備える。
マスク設定情報取得部１５１は、カメラ操作部３から監視カメラ１２へ通信が行われ、図８に示すカメラ画面２１上に設定されたマスク２３の位置（moniMASK_Hposi、moniMASK_Vposi）とそのマスク２３のサイズ情報（moniMASK_Hsize、moniMASK_Vsize）とを取得する。なお、設定するマスク２３は長方形とし、本実施形態では、例としてmoniMASK_HposiおよびmoniMASK_Vposiは-128〜127、moniMASK_HsizeおよびmoniMASK_Vsizeは0〜128の範囲のデータとする。ただし、マスク形状は長方形以外の例えば台形や円といった形状でも構わない。
【００３４】
マスク表示位置算出部１５２は、moniMASK_Hposi、moniMASK_Vposi、moniMASK_Hsize、moniMASK_Vsizeに基づいて、カメラ画面２１上のマスク２３の頂点座標（p1_moniMASK(x1_moniMASK,y1_moniMASK)、p2_moniMASK(x2_moniMASK,y2_moniMASK)、p3_moniMASK(x3_moniMASK,y3_moniMASK)、p4_moni(x4_moniMASK,y4_moniMASK)）を算出する。頂点座標は、外部記憶メモリ１３０の画面情報１３１のカメラ画面情報１３２からMONI_H、MONI_Vを読み出して、下記の式(11)、式(12)、式(13)、式(14)を用いて算出される。この際、カメラ画面２１の座標系は図８に示すように採られるものとする。ただし、図８の座標軸の向きは一例であって、任意の方向であってもよい。
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)
【００３５】
マスク２次元２次元変換部１５３は、マスク表示位置算出部１５２で算出したカメラ画面２１上のマスク２３の頂点座標（p1_moniMASK、p2_moniMASK、p3_moniMASK、p4_moniMASK）を撮像面２０上のマスク頂点座標（p1_camMASK(x1_camMASK,y1_camMASK)、p2_camMASK(x2_camMASK,y2_camMASK)、p3_camMASK(x3_camMASK,y3_camMASK)、p4_camMASK(x4_camMASK,y4_camMASK)）に変換する。この変換は、外部記憶メモリ１３０の画面情報１３１の撮像面情報１３３からCAM_H、CAM_Vを読み出して、下記の式(15)、式(16)を用いて行なう。撮像面２０上の座標系は撮像面２０の中心を原点（０，０）とし、Ｘ軸は右方向、Ｙ軸は下方向を正の向きとしている。
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の頂点番号を表す。
【００３６】
マスク２次元３次元変換部１５４は、マスク２次元２次元変換部１５３において変換した撮像面２０上のマスク頂点座標（p1_camMASK、p2_camMASK、p3_camMASK、p4_camMASK）に、外部記憶メモリ１３０のＺ値テーブル１３４から現在のズーム位置(ｆ値)に対応したＺ軸の値となるd_set値を取得する。この値をＺ軸の値として、図９に破線で示すように、撮像面２０ａを配置する。なお、撮像面２０ａの中心の点ＣａはＺ軸上に位置する。次に、撮像面２０ａ上のマスク２２ａの２次元上の頂点座標を３次元座標上に配置する。この３次元座標上に配置したマスク頂点座標は、下記のようになる。
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である。
【００３７】
この３次元座標上に配置されたマスク２２ａは、パン角度０度、チルト角度０度の時に３次元座標上の撮像面２０ａ上に配置されたものである。しかし、実際には、監視カメラ２１はカメラ操作装置３からの操作によりパン角度、チルト角度がそれぞれ任意の角度の位置となっているので、パン／チルト回転した後のマスク２２ｒは、パン／チルト回転した後の撮像面２０上に配置される必要がある。なお、パン／チルト回転した後の撮像面２０の頂点座標は、下記のようになる。また、撮像面２０ａの中心の点Ｃａの回転後は、点Ｃとなる。
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)
【００３８】
そこで、マスク回転処理部１５５は、上記のマスク２２ａの頂点座標（p1_camMASK_3d、p2_camMASK_3d、p3_camMASK_3d、p4_camMASK_3d）も、３次元座標上の撮像面２０がパン／チルト回転した分だけ回転させて算出する。
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)
【００３９】
具体的には、マスク回転処理部１５５は、図９に示すように、監視カメラ１２がパン回転した時の角度をθ度、チルト回転した時の角度をγ度とすると、３次元座標上の原点（０，０，０）を中心に、Ｙ軸周りにθ度回転(反時計回り)、Ｘ軸周りにγ度回転(時計回り)した時のマスク座標位置を計算すればよい。つまり、マスク座標位置は、Ｘ軸方向とＹ軸方向の単純な回転行列を使って算出できる。ただし、ＸＹＺ軸の取り方によって回転軸は変わるので、その際には該当する軸の回転行列を使用するものとする。本実施形態での回転処理は下記の式(17)を用いて行う。計算時の0度〜360度までのSIN,COSの値は、マイコン１２０のプライバシマスク制御部１２３内のSIN・COS算出部１２５によって外部記憶メモリ１３０の角度テーブル１３４を参照して、算出される。これにより、マイコン１２０内でSINおよびCOSをそのまま演算させた場合よりも軽い負荷で済ませることができる。また、図９に示すように、ズーム位置に応じた焦点距離を３次元座標のうちの１つの軸（例えば、Ｚ軸）上に採って、マスク２２ａの３次元座標の位置を求めた後に、回転させることにより、処理負荷を低減することができ、また、演算精度を良くすることができる。
【００４０】
【数１】
0005389879.tif 000002
ただし、*は1〜4の頂点番号を表す。
【００４１】
マスク回転処理部１５５は、回転後のマスク２２ｒの頂点座標（p1_camMASK_3d_r、p2_camMASK_3d_r、p3_camMASK_3d_r、p4_camMASK_3d_r）を、外部記憶メモリ１３０のマスク３次元位置情報１３６に記憶する。すなわち、マスク作成処理完了後には、３次元座標上の回転後のマスク２２ｒの位置が３次元座標上に固定される仕組みとなっている。
【００４２】
また、このマスク作成処理の間は、カメラ操作部３によってカメラ画面２１上にマスク２３の位置を設定する（図８参照）際に、マスク表示位置算出部１５２で算出されたマスク２３の頂点座標（p1_moniMASK、p2_moniMASK、p3_moniMASK、p4_moniMASK）を画像処理ＬＳＩ１０６のマスク信号発生部１０８に設定して、表示装置４において視覚的な確認がし易いようにすることが好ましい。
【００４３】
次に、マスク表示処理部１６０の機能について、図３を用いて説明する。マスク表示処理部１６０は、カメラ画面２次元２次元変換部１６１、撮像面２次元３次元変換部１６２、撮像面回転処理部１６３、マスク投影位置算出部１６４、マスク表示位置算出部１６５、マスク座標補正部１６６を備える。
【００４４】
カメラ画面２次元２次元変換部１６１は、カメラ画面２１の２次元座標を撮像面２０の２次元座標に変換する処理を実行する。具体的には、カメラ画面２次元２次元変換部１６１は、外部記憶メモリ１３０の画面情報１３１内のカメラ画面情報１３２および撮像面情報１３３からそれぞれ、MONI_H、MONI_V、CAM_H、CAM_Vを読み出す。そして、カメラ画面２次元２次元変換部１６１は、図８に示すように、カメラ画面２１の左上を原点（０，０）として、カメラ画面２１の頂点座標（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)と表せる。これらのカメラ画面２１の頂点を前記の式(15)、式(16)式を用いて撮像面２０の頂点座標（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から予め求めておき、外部記憶メモリ１３０に記憶しておいてもよいものとする。
【００４５】
撮像面２次元３次元変換部１６２は、カメラ画面２次元２次元変換部１６１が算出した２次元上の撮像面２０の頂点座標（p1_cam、p2_cam、p3_cam、p4_cam）を３次元座標上に配置する。撮像面２次元３次元変換部１６２は、外部記憶メモリ１３０のＺ値テーブル１３４から現在のズーム位置に対応したd_now値を読み出して、図９に示したd_set値の代わりに、この値を撮像面２０の各頂点のＺ座標の値とする。この時の３次元座標上の撮像面２０の頂点座標は、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である。
【００４６】
撮像面回転処理部１６３は、撮像面２次元３次元変換部１６２が算出したp1_cam_3d、p2_cam_3d、p3_cam_3d、p4_cam_3dをパン回転θ度、チルト回転γ度を回転させた時の３次元座標上の撮像面２０の各頂点座標（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)）を算出する（図１０参照）。具体的には、撮像面回転処理部１６３は、前記式(17)の回転処理を撮像面２０の頂点座標に対して実行する。このように、一旦、パン角度０度、チルト角度０度における撮像面２０を３次元座標のいずれかの軸（本実施形態ではＺ軸）方向に配置した後で、回転することにより、処理負荷を軽減することができる。
【００４７】
マスク投影位置算出部１６４は、撮像面回転処理部１６３で回転させた３次元座標上の撮像面座標と外部記憶メモリ１３０のマスク３次元位置情報１３６に記憶されているマスク座標とを用いて、図１０に示すように、マスク２２ｒを撮像面２０上へ投影し、投影後のマスク２２の頂点座標を算出する。具体的には、３次元座標上のマスク２２ｒの頂点座標（p1_camMASK_3d_r、p2_camMASK_3d_r、p3_camMASK_3d_r、p4_camMASK_3d_r）が撮像面２０に投影された際のマスク２２の各頂点座標を（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)）としている。
【００４８】
次に、前記マスク２２の各頂点座標p1_mask、p2_mask、p3_mask、p4_maskの求め方について、図１０を用いて説明する。
まず、撮像面２０の中心点Ｍを始点、３次元座標上の原点０を終点とするベクトルＭ０（以降、始点Ａ、終点Ｂとするベクトルを、ベクトルＡＢまたは→ＡＢと表記する。）は、撮像面２０に対して垂線となるので、撮像面２０の平面の法線ベクトルＮとなる。撮像面２０の法線ベクトルＮは、撮像面２０上の３つの頂点座標を使用して、p1_cam_3d_r（点Ｅ）からp3_cam_3d_r（点Ｇ）へのベクトルＳ（→ＥＧ）とp1_cam_3d_r（点Ｅ）からp2_cam_3d_r（点Ｆ）へのベクトルＴ（→ＥＦ）による外積Ｓ×Ｔで表せる。外積Ｓ×Ｔは、下記の式(18)、式(19)、式(20)によって求められる。
ベクトルＳ＝(x3_cam_r−x1_cam_r，y3_cam_r−y1_cam_r，d3_now_r−d1_now_r)
・・・式(18)
ベクトルＴ＝(x2_cam_r−x1_cam_r，y2_cam_r−y1_cam_r，d2_now_r−d1_now_r)
・・・式(19)
ベクトルＮ＝外積Ｓ×Ｔ＝（ａ，ｂ，ｃ）                            ・・・式(20)
ただし、
ａ＝(y3_cam_r−y1_cam_r)×(d2_now_r−d1_now_r)−(d3_now_r−d1_now_r)×(y2_cam_r −y1_cam_r)、
ｂ＝(d3_now_r−d1_now_r)×(x2_cam_r−x1_cam_r)−(x3_cam_r−x1_cam_r)×(d2_now_r−d1_now_r)、
ｃ＝(x3_cam_r−x1_cam_r)×(y2_cam_r−y1_cam_r)−(y3_cam_r−y1_cam_r)×(x2_cam_r−x1_cam_r)
である。
【００４９】
いま、撮像面２０上へ投影されるマスク２２の各頂点座標（p1_mask、p2_mask、p3_mask、p4_mask）は、３次元座標上の原点とマスク２２ｒの頂点座標とを線で結んだ直線の延長上にあるので、係数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のマスク頂点番号を表す。
【００５０】
つまり、各頂点における係数k1，k2，k3，k4を求めれば、３次元座標上の撮像面２０上へ投影されるマスク２２の頂点座標を求めることができる。
ここで、撮像面２０の頂点p1_cam_3d_r（点Ｅ）を始点とし、撮像面２０上に投影されるマスク２２の各頂点座標（p1_mask（点Ｉ）、p2_mask（点Ｊ）、p3_mask（点Ｋ）、p4_mask（点Ｌ））を終点とするベクトルＥＩ，ＥＪ，ＥＫ，ＥＬ（不図示）は、式(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のマスク頂点番号を表す。
【００５１】
このベクトルＥＩ，ＥＪ，ＥＫ，ＥＬと前記式(20)で求めた外積Ｓ×Ｔとは直角で交わっているので、この２つのベクトルの内積は０となり、式(23)となる。
ベクトルＥＩ・外積Ｓ×Ｔ＝０、
ベクトルＥＪ・外積Ｓ×Ｔ＝０、
ベクトルＥＫ・外積Ｓ×Ｔ＝０、
ベクトルＥＬ・外積Ｓ×Ｔ＝０
・・・式(23)
【００５２】
式(23)をそれぞれ係数k1，k2，k3，k4について解くと下記の式(24)となる。求めた係数k1，k2，k3，k4により撮像面２０に投影されたマスク２２の各頂点座標（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のマスク頂点番号を表す。
【００５３】
なお、式(24)において算出した係数k1，k2，k3，k4が負の値となる場合、撮像面２０に対して反対方向への投影となるため、撮像面２０にマスク２２ｒが投影されることはない。そこで、その際は、撮像面２０へのマスク２２ｒの投影はなしとなる。また、式(24)の分母は、外積Ｓ×Ｔと撮像面２０へ投影されるマスク２２ｒの各頂点座標との内積であるので、分母が０の場合、撮像面２０とマスク２２の面とは垂直となり、撮像面２０にマスク２２ｒが投影されることはないので、分母０の場合も撮像面２０へのマスク２２の投影はなしとする。
【００５４】
マスク表示位置算出部１６５は、マスク投影位置算出部１６４で求めた、撮像面２０へ投影されたマスク２２の各頂点座標（p1_mask、p2_mask、p3_mask、p4_mask）から、カメラ画面２１に表示するマスク２３ａの各頂点座標を算出する（図１１参照）。一般的には、３次元から２次元に変換する方法として、現状の撮像面２０がパン角度、チルト角度にそれぞれθ、γ回転されているので、それをパン角度、チルト角度にそれぞれ-θ、-γ回転させて、パン角度、チルト角度をゼロの位置に戻す。そして、各頂点のＺ軸の値を同値とすることで、Ｘ軸、Ｙ軸の値に係数を掛けて変換することが可能である。しかし、実制御において回転処理で求めた座標位置は、マイコン１２０の演算精度の関係で理論値に対して若干ずれてしまうことが多い。そのため、回転処理後に更に逆回転処理を行うと理論値との計算誤差が更に拡大してしまい、実際のマスク表示位置と理論位置とのずれが大きくなってしまう。
【００５５】
そこで、本実施形態では、逆回転処理を行わずにマスク２２の頂点座標を３次元から２次元に直接変換する方法を示す。マスク表示位置算出部１６５は、３次元座標上の撮像面２０に投影されたマスク２２の頂点座標を、カメラ画面２１上のマスク２３ａの頂点座標へ直接変換する。
図１１に、撮像面２０上のマスク２２の頂点座標（図１１（ａ）参照）と、カメラ画面２１上のマスク２３ａの頂点座標（図１１（ｂ）参照）との関係を示す。３次元座標上ではマスク２２の各頂点座標は撮像面２０上にあるので、３次元座標上の同一平面上の点を２次元のカメラ画面２１上の座標に変換すればよい。いま、図１１（ａ）に示す３次元座標上の撮像面２０およびマスク２２の各頂点座標との２点間の距離を求める。例えば、撮像面２０の頂点座標p1_com_3d_r（点Ｅ）とマスク２２の頂点座標p1_mask（点Ｉ）との２点間の距離は、Ａ１として求まる。同様に、撮像面２０の頂点座標p2_com_3d_r（点Ｆ）とマスク２２の頂点座標p1_mask（点Ｉ）との２点間の距離はＢ１、撮像面２０の頂点座標p3_com_3d_r（点Ｇ）とマスク２２の頂点座標p1_mask（点Ｉ）との２点間の距離はＣ１として求まる。なお、撮像面２０の頂点座標（点Ｅ，Ｆ，Ｇ）とマスク２２の頂点座標p2_mask（点Ｊ）との２点間の距離は、それぞれＡ２，Ｂ２，Ｃ２、撮像面２０の頂点座標（点Ｅ，Ｆ，Ｇ）とマスク２２の頂点座標p3_mask（点Ｋ）との２点間の距離は、それぞれＡ３，Ｂ３，Ｃ３、撮像面２０の頂点座標（点Ｅ，Ｆ，Ｇ）とマスク２２の頂点座標p4_mask（点Ｌ）との２点間の距離は、それぞれＡ４，Ｂ４，Ｃ４と求まる。そして、図１１（ｂ）でも同様に、２次元のカメラ画面２１の頂点座標（点Ｐ，Ｑ，Ｒ）とマスク２３ａの各頂点座標（p1_moniMASKa、p2_moniMASKa、p3_moniMASKa、p4_moniMASKa）との２点間距離についても、ａ１，ｂ１，ｃ１，ａ２，ｂ２，ｃ２，ａ３，ｂ３，ｃ３，ａ４，ｂ４，ｃ４と求めることができる。
具体的には、３次元座標上の撮像面２０とマスク２２の位置との関係は、２次元上のカメラ画面２１とマスク２３ａの位置との関係と相似である。そこで、２点間の距離Ａ１，Ｂ１，Ｃ１，・・と距離ａ１，ｂ１，ｃ１・・との関係も相似であるので、各距離の比を用いて、カメラ画面２１上のマスク２３ａの頂点座標を計算することができる。
【００５６】
ただし、２点間の距離を求める場合には、平方根の計算が必要となり、計算のための負荷が大きくなる。そこで、実際には距離の２乗を用いる。距離の代わりに距離の２乗を用いた場合であっても比率の比較であるので問題はない。
まず、距離Ａ１，Ａ２，・・と距離ａ１，ａ２，・・との関係について下記の式(25)が成り立つ。
|ベクトルＦＥ|^2／A*^2＝|ベクトルＱＰ|^2／a*^2、
|ベクトルＦＥ|^2＝CAM_H^2、
|ベクトルＱＰ|^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は２乗を表す。
【００５７】
次に、距離Ｂ１，Ｂ２，・・と距離ｂ１，ｂ２，・・との関係について下記の式(26)が成り立つ。
|ベクトルＦＥ|^2／B*^2＝|ベクトルＱＰ|^2／b*^2、
|ベクトルＦＥ|^2＝CAM_H^2、
|ベクトルＱＰ|^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は２乗を表す。
【００５８】
また、距離Ａ１，Ａ２，・・と距離ａ１，ａ２，・・との関係について下記(27)が成り立つ。
|ベクトルＧＥ|^2／A*^2＝|ベクトルＲＰ|^2／a*^2、
|ベクトルＧＥ|^2＝CAM_V^2、
|ベクトルＲＰ|^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は２乗を表す。
【００５９】
また、距離Ｃ１，Ｃ２，・・と距離ｃ１，ｃ２，・・との関係について下記(28)が成り立つ。
|ベクトルＧＥ|^2／C*^2＝|ベクトルＱＰ|^2／c*^2、
|ベクトルＧＥ|^2＝CAM_V^2、
|ベクトルＲＰ|^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は２乗を表す。
【００６０】
ここで、式(25)、式(26)をx*_moniMASKa(*は1〜4のマスク頂点番号を表す。)について解き、式(27)、式(28)をy*_moniMASKa(*は1〜4のマスク頂点番号を表す。)について解くと、下記の式(29)、式(30)のように表せて、カメラ画面２１上のマスク２３ａの頂点座標を求めることができる。
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のマスク頂点番号を表す。
【００６１】
これにより、逆回転処理を行なうことなく、３次元座標上の撮像面２０上のマスク２２の頂点座標を２次元上のカメラ画面２１上のマスク２３ａの頂点座標に変換することができる。マスク表示位置算出部１６５で求めたカメラ画面２１上のマスク２３ａの頂点座標を、画像処理ＬＳＩ１０６のマスク信号発生部１０８に設定すればマスク表示によるプライバシ保護領域を覆うことが可能となる。しかし、マスク作成処理部１５０で設定した長方形のマスクは、パン回転、チルト回転後に台形等の複雑な形状に変化する。そうした複雑な形状の場合、画像処理ＬＳＩ１０６の処理負荷が大きくなってしまう場合があるので、画像処理ＬＳＩ１０６のマスク信号発生部１０８に設定する前に、マスク座標補正部１６６は、マスク表示位置算出部１６５で求めたカメラ画面２１上のマスク２３ａの頂点座標を単純な長方形のマスク形状となるように変換する。具体的には、マスク座標補正部１６６は、図１２に示すように、変換前のマスク２３ａの形状を、マスク２３ａの形状に外接するような長方形のマスク２３ｂの形状に変換する。
【００６２】
変換後のマスク２３ｂの頂点座標をp1_moniMASKb(x1_moniMASKb,y1_moniMASKb)、p2_moniMASKb(x2_moniMASKb,y2_moniMASKb)、p3_moniMASKb(x3_moniMASKb,y3_moniMASKb)、p4_moniMASKb(x4_moniMASKb,y4_moniMASKb)とすると、マスク２３ｂの頂点座標を下記の式(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は()の中の最小の値を出力する関数である)
【００６３】
以上により、求めたマスク２３ｂの頂点座標を画像処理ＬＳＩ１０６のマスク信号発生部１０８に設定することで、監視カメラ２１が回転してプライバシマスクが複雑に変形したときでも、常にプライバシ保護領域を単純なマスク形状の長方形で覆い隠すことができる。また、マスク２３ｂを長方形とすることにより、演算量を大幅に削減することができる。
【００６４】
ここで、前記した式(1)〜式(31)を用いて、プライバシマスク制御を行えることを検証するために行ったシミュレーション結果について説明する。撮像素子１０４は、その仕様として、１画素のセンササイズをPux＝0.00000475(m)、Puy＝0.00000555(m)とした。水平画素数、垂直画素数は、それぞれHpixel＝768pixel、Vpixel＝494pixelとし、レンズ５１の仕様としてＷ端時のｆ値をｆ値＝0.0034、d_base＝256とした。この時、撮像面２０のサイズCAM_H、CAM_Vは式(5)、式(6)式より下記のように求まる。
CAM_H＝(d_base×Pux×Hpixel)/ｆ値＝(256×0.00000475×768)/0.0034＝274.67≒275（式(5)より）。
CAM_V＝(d_base×Puy×Vpixel)/ｆ値＝(256×0.00000555×494)/0.0034＝206.43≒206（式(6)より）。
【００６５】
映像を映し出すカメラ画面２１のサイズMONI_H、MONI_Vをそれぞれ、MONI_H＝740，MONI_V＝480とした。また、カメラ画面２１上のマスク２３ａの設定として、カメラ操作部３よりmoniMASK_Hsize＝16，moniMASK_Vsize＝16，moniMASK_Hposi＝64，moniMASK_Vposi＝64と設定した。カメラ画面２１上のマスク２３ａの頂点座標は式(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)より）。
【００６６】
よって、カメラ画面２１上のマスク２３ａの頂点座標は、p1_moniMASK(509,330)，p2_moniMASK(601,330)，p3_moniMASK(509,390)，p4_moniMASK(601,390)となる。そして、このカメラ画面２１上のマスク２３ａの頂点座標を撮像面２０の座標に変換すると、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)
【００６７】
マスク作成処理時のズーム位置をＷ端とするとd_set＝256であるので、パン角度０度、チルト角度０度の時に３次元座標上の撮像面２０上に配置したマスク２２の頂点座標は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度であった場合、その角度だけ回転させた際の３次元座標上のマスク２２の頂点座標は式(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が外部記憶メモリ１３０のマスク３次元位置情報１３６に記憶される。
【００６８】
マスク表示処理では、監視カメラ１２がパン方向、チルト方向に回転、ズームによりカメラ画面２１の撮影被写体は変化するが、その際でもマスク作成処理時に作成したプライバシマスク保護領域にマスク処理が行えるように制御を行う。まず、カメラ画面２１の頂点座標は、MONI_H＝740，MONI_V＝480であることから、p1_moni(0,0)，p2_moni(740,0)，p3_moni(0,480)，p4_moni(740,480)となり、これを式(15)および式(16)を用いて、撮像面２０の座標に変換すると、p1_cam(-137.5,-103)，p2_cam(137.5,-103)，p3_cam(-137.5,103)，p4_cam(137.5,103)となるので、d_now＝256(Ｗ端)とすれば、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)となる。
【００６９】
いま、監視カメラ１２の現在のパン角度、チルト角度がθ１＝42度、γ１＝47度、ズーム位置はＷ端位置とすると、その時の３次元座標上の撮像面２０の座標位置を式(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)より、外積Ｓ×Ｔを求めると、(a,b,c)＝(-25760,41544,-28700)となる。この時、マスク３次元位置情報１３６と式(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
【００７０】
よって、上記係数k1，k2，k3，k4と式(21)とにより、撮像面２０上に投影されるマスク２２の頂点座標は、下記のようになる。
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)
【００７１】
そして、この撮像面２０上に投影される３次元座標上のマスク２２の頂点座標を、２次元上のカメラ画面２１のマスク２３ａの頂点座標に、式(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
【００７２】
上記で求めたカメラ画面２１のマスク２３ａの頂点座標は長方形でないために、式(31)により長方形に変換すると、その時のマスク２３ｂの頂点座標は下記のように求まる。
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
【００７３】
以上により、本実施形態の撮像装置１０は、計算されたマスク２３ｂの頂点座標を画像処理ＬＳＩ１０６のマスク信号発生部１０８に設定しマスクすることで、監視カメラ１２がパン、チルト、ズームした際においても、設定したプライバシ保護領域を確実にマスクすることができる。また、撮像装置１０は、一旦、パン角度０度、チルト角度０度における撮像面２０を３次元座標のいずれかの軸（本実施形態ではＺ軸）方向に配置した後で、回転することにより、処理負荷を軽減することができる。さらに、撮像装置１０は、パン・チルト・ズーム後の３次元座標上の撮像面２０上のマスク位置をカメラ画面２１上の２次元位置に変換する際に、撮像面２０のサイズとカメラ画面２１のサイズとが相似であることを利用して、撮像面２０上のマスク２２の頂点座標を撮像面２０の３つの頂点からの距離で表し、カメラ画面２１の３つの頂点から相似の距離にあたる位置として、カメラ画面の２次元上のマスク位置を算出する。このような構成をそなえているため、本実施形態の撮像装置１０は、パン回転、チルト回転、ズームによって変形したカメラ画面２１上のプライバシ保護のためのマスク範囲を正確に算出することができる。
【符号の説明】
【００７４】
１  監視カメラシステム
３  カメラ操作装置
４  表示装置
５  レンズユニット
１０  撮像装置
２０  撮像面
２１  カメラ画面
２２，２２ａ，２２ｒ  マスク（第１のマスク）
２３，２３ａ，２３ｂ  マスク（第２のマスク）
５１  レンズ
５２  アイリス
１０４  撮像素子
１０５  ＡＦＥ
１０６  画像処理ＬＳＩ（映像処理部）
１０７  信号処理部
１０８  マスク信号発生部
１０９  ＤＡＣ
１１０  カメラ映像信号出力部
１２０  マイコン（映像処理部）
１２１  モータ制御部
１２２  制御位置情報取得部
１２３  プライバシマスク制御部
１２４  マスク状態判定部
１２５  SIN・COS算出部
１３０  外部記憶メモリ
１３１  画面情報
１３２  カメラ画面情報
１３３  撮像面情報
１３４  Ｚ値テーブル
１３５  角度テーブル
１３６  マスク３次元位置情報
１４０  ズームレンズ制御用モータ
１５０  マスク作成処理部
１５１  マスク設定情報取得部
１５２  マスク表示位置算出部
１５３  マスク２次元２次元変換部
１５４  マスク２次元３次元変換部（マスク生成部）
１５５  マスク回転処理部（マスク生成部）
１６０  マスク表示処理部
１６１  カメラ画面２次元２次元変換部
１６２  撮像面２次元３次元変換部
１６３  撮像面回転処理部
１６４  マスク投影位置算出部（マスク生成部）
１６５  マスク表示位置算出部
１６６  マスク座標補正部
【図１】
0005389879.tif 000003
【図２】
0005389879.tif 000004
【図３】
0005389879.tif 000005
【図４】
0005389879.tif 000006
【図５】
0005389879.tif 000007
【図６】
0005389879.tif 000008
【図７】
0005389879.tif 000009
【図８】
0005389879.tif 000010
【図９】
0005389879.tif 000011
【図１０】
0005389879.tif 000012
【図１１】
0005389879.tif 000013
【図１２】
0005389879.tif 000014