以下、添付図面に従って、ネットワークカメラなどの撮像装置に本発明を適用した場合の実施形態について詳説する。
図1は、本実施形態における撮像装置の構成を示すブロック図である。図1において、2は、撮像光学系、4は、赤外線遮断フィルター(Infrared Cut Filter;以下、IRCFと称する場合がある)、6は、撮像素子、8は、映像信号処理回路、10は、符号化回路、12は、バッファである。
また、図1における14は、通信回路(以下、I/Fと称する場合がある)、16は、通信端子、18は、輝度測定回路、20は、判定回路、22は、計時回路、24は、赤外線カットフィルター駆動回路(以下、IRCF駆動回路と称する場合がある)である。さらに、図1における26は、中央演算処理回路(以下、CPUと称する場合がある)である。なお、図1における28は、電気的に消去可能な不揮発性メモリ(Electrically Erasable Programmable Read Only Memory;以下EEPROMと称する場合がある)である。
以下に図1を参照して動作を説明する。撮像される被写体からの光線は、撮像光学系2とIRCF4を介して、撮像素子6に入射され光電変換される。IRCF4は、IRCF駆動回路24からの駆動信号に基づき、不図示の駆動機構により撮像光学系2と撮像素子6との間の光路上から挿脱される。本実施形態では、IRCF4が当該光路上に挿入されている場合には、通常の撮影(可視光撮影)がなされ、IRCF4が当該光路上から抜去されている場合には、赤外線撮影がなされるように構成される。
なお、本実施形態における撮像素子6は、CCDやCMOSなどで構成される。また、本実施形態における撮像素子6は、撮像光学系2により結像された被写体の像を映像信号として出力する撮像部に相当する。
また、本明細書における通常の撮影(可視光撮影)とは、被写体からの光をIRCF4を介して撮像素子6に入射させて撮影することを意味する。また、本明細書における赤外線撮影とは、被写体からの光を、IRCF4を介することなく、撮像素子6に入射させて撮影することを意味する。したがって、本実施形態では、通常の撮影がなされる状態は、第1の撮像モードに相当し、赤外線撮影がなされる状態は、第2の撮像モードに相当する。
本実施形態では、赤外線撮影がなされる場合には、CPU26の指示によって、映像信号処理回路8からは輝度信号だけが符号化回路10に出力される。符号化された輝度信号は、バッファ12に出力され、I/F14でパケット化がなされ、通信端子16を介して外部に送信される。一方、通常撮影がなされる場合には、CPU26の指示によって、映像信号処理回路8からは輝度信号と色差信号とが符号化回路10に出力される。符号化された映像信号は、同様にバッファ12、I/F14、および、通信端子16を介して外部に送信される。
なお、本実施形態における通信端子16は、たとえば、LANケーブルが接続される端子(LAN端子)などで構成される。
I/F14には、不図示の外部クライアントからIRCF4の挿脱に関する設定コマンドが送信される。
不図示の外部クライアントが、IRCF4を上記光路上への挿入指示コマンドを送信した場合、当該コマンドはI/F14にて適切なパケット処理がなされ、CPU26に入力される。当該の挿入指示コマンドはCPU26で解読される。CPU26は、IRCF駆動回路24を介して、IRCF4を上記光路上に挿入する。
なお、この挿入指示コマンドは、たとえば、後述の、IrCutFilterフィールドの値がOnに設定されたSetImagingSettingsコマンドである。
不図示の外部クライアントが、上記光路上からのIRCF抜去指示コマンドを送信した場合、同様に、当該コマンドはI/F14にて適切なパケット処理がなされ、CPU26に入力される。当該の抜去指示コマンドは、CPU26で解読され、CPU26は、IRCF駆動回路24を介して、IRCF4を上記光路上から抜去する。
なお、この抜去指示コマンドは、たとえば、後述の、IrCutFilterフィールドの値がOffに設定されたSetImagingSettingsコマンドである。
本実施形態では、不図示の外部クライアントは、上記IRCF4の光路上からの抜去を、本実施形態の撮像装置が決定するように設定するためのコマンドを送付することができるようになっている。当該コマンドは、例えば、Auto設定のコマンドと称される。
なお、このAuto設定のコマンド(Auto設定コマンド)は、たとえば、後述の、IrCutFilterフィールドの値がAutoに設定されたSetImagingSettingsコマンドである。
また、本実施形態においては、当該Auto設定コマンド内のオプションフィールドに、IRCF4の挿脱に関する省略可能な動作パラメータを付加できる構成になっている。
上記の省略可能なパラメータとは、本実施形態では、例えば、被写体輝度の変化により本実施形態の撮像装置が上記IRCFを光路上に挿入するか、あるいは、抜去するかを決定するための輝度閾値である。
なお、このAuto設定コマンド内のオプションフィールドは、たとえば、後述の、IrCutFilterAutoAdjustmentフィールドである。また、この輝度閾値(のパラメータ)は、たとえば、後述の、BrightnessOffsetフィールドの値である。
当該のパラメータが、上記したAuto設定コマンド内のオプションフィールドに存在した場合、図1のCPU26は、当該の閾値を判定回路20に設定する。輝度測定回路18では、映像信号処理回路8から出力される輝度信号に基づき、現在の被写体輝度を測定して判定回路20に出力する。したがって、本実施形態における輝度測定回路18は、被写体輝度を測光するための測光部に相当する。
なお、本実施形態におけるCPU26は、たとえば、EEPROM28に予め格納されている閾値情報の値に輝度閾値パラメータを加算することで閾値を算出し、算出した閾値を判定回路20に設定するように構成されていても良い。
また、本実施形態におけるEEPROM28は、たとえば、複数の閾値情報と、これら複数の閾値情報のそれぞれに対応付けられた輝度閾値パラメータとを記憶するように構成されていても良い。さらに、本実施形態におけるCPU26は、たとえば、輝度閾値パラメータに対応する閾値情報をEEPROM28から読み出し、読み出した閾値情報により示される閾値を判定回路20に設定するように構成されていても良い。
判定回路20では、上記設定された輝度閾値と輝度測定回路から出力された現在の輝度値とを比較して、判定結果をCPU26に出力する。出力された判定結果が現在の輝度値が閾値を上回っているという判定結果であった場合、CPU26は、IRCF4を光路上に挿入し、通常撮影を行わせる。また、CPU26に入力された判定結果が、現在の輝度値が閾値以下であるという判定結果であった場合、CPU26はIRCF4を光路上から抜去して赤外線撮影を行わせるようになっている。
上記した省略可能な被写体輝度閾値のパラメータが、上記Auto設定コマンド内のオプションフィールドに存在しなかった場合、本実施形態の撮像装置は、予め記憶されている閾値情報に基き上記の閾値を決定する。当該閾値は、本実施形態では、例えばEEPROM28に予め格納してあり、CPU26は当該閾値をEEPROM28から読み出して判定回路20に設定するようになっている。
したがって、本実施形態におけるCPU26は、Auto設定コマンド内のオブションフィールドに輝度閾値パラメータが存在するか否かを判定する輝度閾値パラメータ判定部として機能する。より詳細には、CPU26は、後述のSetImagingSettingsコマンドに後述のIrCutFilterAutoAjustmentフィールドが含まれるか否かを判定するAdjustmentフィールド判定手段として機能する。
なお、本実施形態では、EEPROM28に予め記憶されている閾値情報などのデータは、制御情報に相当する。また、本実施形態において、EEPROM28に予め記憶されている閾値情報は、所定の閾値情報に相当する。
また、上記したAuto設定コマンドにおける他の省略可能なパラメータは、例えば、IRCFの挿脱動作を遅延させる遅延時間であっても良い。当該パラメータが、上記したAuto設定コマンド内のオプションフィールドに存在した場合、CPU26は、当該の遅延時間パラメータを計時回路22に設定する。なお、この遅延時間パラメータは、たとえば、後述の、ResponseTimeフィールドである。
計時回路22は、時間を計測し、設定された遅延時間が経過すると時間経過を示す信号をCPU26に出力する。当該の時間経過信号を入力されたCPU26は、IRCF駆動回路24を介してIRCF4を挿脱する。
当該遅延時間パラメータが、上記したAuto設定コマンド内のオプションフィールドに存在しなかった場合、本実施形態の撮像装置は、予め記憶されている遅延時間情報に基き上記の閾値を決定する。当該遅延時間は、本実施形態では、例えばEEPROM28に予め格納してあり、CPU26は当該遅延時間をEEPROM28から読み出して判定回路20に設定するようになっている。なお、当該遅延時間パラメータが、上記したAuto設定コマンド内のオプションフィールドに存在しなかった場合、即時、IRCFの挿脱を行うようにして、遅延時間を設定しないように構成しても良い。
したがって、本実施形態におけるCPU26は、Auto設定コマンド内のオブションフィールドに遅延時間パラメータが存在するか否かを判定する遅延時間パラメータ判定部として機能する。より詳細には、CPU26は、後述のIrCutFilterAutoAdjustmentフィールドにResponseTimeフィールドが含まれるか否かを判定するResponseTimeフィールド判定部として機能する。
上述のIRCFを光路上に挿脱するためのコマンドは、本実施形態では、例えばOpen Network Video Interface Forum(以下ONVIFと称する場合がある)規格に基づいて定められている。ONVIF規格では、例えば、XML Schema Definition言語(以下XSDと称することがある)を用いて上記コマンドの定義を行う。
なお、本実施形態の撮像装置は、上記ONVIF規格のNetwork Video Transmitter(以下NVTと称する場合がある)として動作する。つまり、本実施形態の撮像装置は、ONVIF仕様に従ってデータを送受信することができる。
図2(a)乃至図2(e)は、上記XSDによる、上記コマンドを定義するためのデータ構造の定義例を示す。図2(a)では、IrCutFilterModesという名前を持つデータが、データ型ImagingSettings20内に定義される。IrCutFilterModesという名前を持つデータは、IrCutFilterMode型を持つデータであり、当該のデータ型は図2(b)で定義されている。
図2(b)に示すように、本実施形態では、IrCutFilterMode型は、ON、OFF、または、AUTOのいずれかの値をとることができるデータ型となっている。
また、図2(c)は、IrCutFilterAutoAdjustment型のIrCutFilterAutoAdjustmentという名前を持つデータを定義している。本実施形態では、当該のIrCutFilterAutoAdjustmentデータは、上記IrCutFilterMode型がAUTOの値を持つ時に、オプションフィールドに設定される。このデータは、例えば、上記したデータ型ImagingSettings20内に定義される。
図2(d)は、上記IrCutFilterAutoAdjustment型の内容を示す図である。当該のデータ型は、XSDのcomplexType宣言により複雑型として定義される。また、当該のデータ型例ではsequence指定子により、その要素の順番が定義通りに出現することを指定している。
IrCutFilterAutoAdjustment型において、第一要素であるBoundaryTypeは、後述のIrCutFilterAutoBoundaryType型を持つデータである。当該のデータBoundaryTypeは、必ず一個が、当該のIrCutFilterAutoAdjustment型内に現れなければならないようになっている。
次の要素は、BrightnessOffsetであり、当該のデータはXSDにおけるPrimitive Datatypeに定義されているfloat単精度浮動小数点データ型であることを示している。当該のBrightnessOffsetは前述の輝度閾値パラメータである。当該のデータBrightnessOffsetは、XSDのminOccurs指定子により、省略されても良いようになっている。
3番目の要素は、ResponseTimeであり、XSDにおけるPrimitive Datatypeに定義されているduration時間間隔データ型である。当該のデータResponseTimeも、XSDのminOccurs指定子により、省略されても良い構造になっている。当該のデータResponseTimeにより、前述の遅延時間パラメータが指定される。
図2(e)は、上記したIrCutFilterAutoBoundaryType型の定義例を示す図である。当該のデータ型は、XSDのsimpleType宣言によって単純型として定義される。また、当該のデータ型では、restriction指定子によって、値を制限された文字列型として定義されている。IrCutFilterAutoBoundaryType型では、図2(e)に示すように、その値が、Common、Off、On、及び、Extendedの値をとることができる文字列型になっている。
上記したように、本実施形態においては、IRCFの挿脱を制御するためのAuto設定コマンドに、オプションのパラメータを付加することができる構成になっている。当該のオプションは、例えば、以下のようなオプションとなっていても良い。
オプション1.被写体輝度が高輝度から低輝度へ変化した場合に、IRCFを抜去するための輝度閾値
オプション2.被写体輝度が高輝度から低輝度へ変化する際、前記被写体輝度が上記オプション1の輝度閾値を下回ってから、実際にIRCFを抜去する動作を完了するまでの遅延時間
オプション3.被写体輝度が低輝度から高輝度へ変化した場合に、IRCFを挿入するための輝度閾値
オプション4.被写体輝度が低輝度から高輝度へ変化する際、前記被写体輝度が上記オプション3の輝度閾値を超えてから、実際にIRCFを抜去する動作を完了するまでの遅延時間
本実施形態では、上述のXSDを用いたデータ定義により、前述のAuto設定コマンドにおける上記のオプション1乃至オプション4を表現することが可能となっている。ONVIF規格においては、上記のAuto設定コマンドは、例えば、SetImagingSettingsコマンドとして発行される。
図3は、上記SetImagingSettingsコマンドの構成例を示す。図3(a)は、上記オプションフィールドを含む、SetImagingSettingsコマンドの構成を示す図である。図3(a)において、IrCutFilterフィールドの値がAUTOになっていることにより、IRCFの挿脱を撮像装置自身に自動で制御させることが指示される。本実施形態では、IrCutFilterフィールドの値がAUTOの場合、その後にIrCutFilterAutoAdjustmentフィールドを記述することができるようになっている。上述したように、当該のIrCutFilterAutoAdjustmentフィールドは省略することもできる。
上述したように、IrCutFilterAutoAdjustmentフィールドの内部には、BoundaryTypeフィールド、BrightnessOffsetフィールド、及び、ResponseTimeフィールドが記述される。また、上述したように、BrightnessOffsetフィールド、及び、ResponseTimeフィールドは、省略可能になっている。
上記BoundaryTypeフィールドによって、IRCFの挿入、抜去のいずれの場合に、当該IrCutFilterAutoAdjustmentフィールドに指定される動作を有効にするのかを、指定することができる。BoundaryTypeフィールドの値がOnの場合、IRCFが挿入されるとき有効になり、BoundaryTypeフィールドの値がOffの場合、IRCFが抜去されるとき有効になる。また、BoundaryTypeフィールドの値がCommonの場合、挿入、抜去両方の場合に、有効になるようになっている。また、上述したように、上記BrightnessOffsetの値によって輝度閾値が、上記ResponseTimeフィールドによって遅延時間が、夫々設定される。
図3(b)は、上記ResponseTimeフィールドが省略された場合の、上記SetImagingSettingsコマンドの構成を示す。このようにResponseTimeフィールドが省略された場合、上述したように本実施形態の撮像装置は、撮像装置自身が遅延時間パラメータの動作を決定する。本実施形態では、例えばEEPROM28に予め格納してあり、CPU26は当該遅延時間をEEPROM28から読み出して判定回路20に設定するようになっている。また、図3(b)では、IRCFが挿入されるときに、IrCutFilterAutoAdjustmentフィールドに指定される動作が有効になるように、BoundaryTypeフィールドの値にOnの値が設定されている。
図3(c)は、上記BrightnessOffsetフィールドおよびResponseTimeフィールドが省略された場合の、上記SetImagingSettingsコマンドの構成を示す。このようにBrightnessOffsetフィールドが省略された場合、本実施形態の撮像装置は、当該撮像装置に予め記憶されている閾値情報に基き輝度閾値を決定する。上述したように、輝度閾値は、本実施形態では例えばEEPROM28に予め格納してあり、CPU26は当該閾値をEEPROM28から読み出して判定回路20に設定するようになっている。
図3(d)は、上記IrCutFilterAutoAdjustmentフィールドを省略した場合の、上記SetImagingSettingsコマンドの構成を示す。本実施形態の撮像装置は、IrCutFilterAutoAdjustmentフィールドが省略されたIRCFを自動設定するSetImagingSettingsコマンドを受信した場合、全てのIRCF挿脱の制御を当該撮像装置自身が決定する。
続いて、図4を参照して、本実施形態における、輝度閾値と遅延時間パラメータとが設定された場合の動作について説明する。
図4において101は被写体輝度の時間的変化を示すグラフ、102はIRCF4を挿入するための輝度閾値、103はIRCF4を抜去するための輝度閾値である。図4では、日暮れの時間帯などのように、被写体輝度が時間的に低下していく場合を示している。図4のように被写体輝度が低下してIRCF4を抜去するための輝度閾値103を下回るとCPU26は計時回路22に遅延時間を設定して計時動作を開始する。
図4では、点Aにおいて被写体輝度が輝度閾値103を下回っている。このときの時刻はt1である。本実施形態では、計時回路22に設定された遅延時間により、CPU26は、当該遅延時間が経過するまではIRCF4を抜去しない。すなわち、CPU26は、被写体輝度が輝度閾値103を下回っている状態が維持された時間よりも、計時回路22に設定された遅延時間が長くない場合には、撮像光学系2の光路上からIRCF4を抜去しない。
この動作により、被写体輝度が輝度閾値103に対して頻繁に交叉しても、通常撮影と赤外線撮影とを頻繁に切り替えることがない。
その後、当該遅延時間が経過して時刻t2に達すると、CPU26はIRCFを抜去して赤外線撮影に移行させる。すなわち、CPU26は、被写体輝度が輝度閾値103を下回っている状態が維持された時間よりも、計時回路22に設定された遅延時間が長い場合には、撮像光学系2の光路上からIRCF4を抜去する。
このときの被写体輝度値は、例えば、点Bのように輝度閾値103を安定的に下回る確率をあげることができる。当該の動作は、蛍光灯など照明によるフリッカの影響が有る場合にも、同様である。
当該動作により、本実施形態では、IRCFの挿脱に関連する詳細な設定を、ユーザが行うことができる構成になっている。また、当該動作により、本実施形態では、撮像被写体の輝度レベルが閾値付近であった場合においても、IRCFの挿脱が頻繁に行われることを防ぐ効果がある。また、当該動作により、本実施形態では、照明のフリッカなどにより撮像被写体の輝度値が変化する場合においても、IRCFの挿脱が頻繁に行われることを防ぐ効果がある。
なお、CPU26は、被写体輝度が輝度閾値102を上回っている状態が維持された時間よりも、計時回路22に設定された遅延時間が長くない場合には、撮像光学系2の光路上にIRCF4を挿入しない。一方、CPU26は、被写体輝度が輝度閾値102を上回っている状態が維持された時間よりも、計時回路22に設定された遅延時間が長い場合には、撮像光学系2の光路上にIRCF4を挿入する。
次に図5を用いて、本実施形態に典型的なコマンド及びレスポンスの授受動作(コマンドトランザクション)について説明する。図5では、ITU−T Recommendation Z.120規格で定義される、いわゆるメッセージ・シークエンス・チャートを用いて上記コマンドトランザクションを記述している。
最初に、不図示のクライアントと本実施形態の撮像装置がネットワークで接続される。クライアントは上述したIRCFの設定を行うコマンド(SetImagingSettingsコマンド)の有無を調べるため以下のように動作する。まず、GetServicesコマンドを撮像装置に送信して、Imaging Serviceの有無を調べる。
図5では、GetServicesResponseによって、当該撮像装置がImaging Serviceをサポートしていることが示されている。次に、クライアントは、IRCFの設定行うことができるVideo Sourceを示すtokenを調べるために、GetVideoSourcesコマンドを送信する。図5では、本実施形態の撮像装置はGetVideoSourcesResponseで上記tokenを返している。
なお、Video Sourceを示すtokenとは、Video Sourceを一意に識別することができる情報であり、英数字で表わされる情報である。
次にクライアントは、上記Video Sourceを示すtokenを含むGetOptionsコマンドを、撮像装置のImaging Serviceを示すアドレスに送信する。これは、上記のIRCFの設定を行うコマンドの有無、及び、IRCFの設定を行うコマンドに関するオプションを調べるためである。
本実施形態の撮像装置は、図5に示すように、上記IrCutFilterフィールドとそのオプションを含むGetOptionsReponseをクライアントに返す。次に、クライアントは、現在のIRCFの状態を問い合わせるために、上記Video Sourceを示すtokenを含むGetImagingSettingsコマンドを、撮像装置のImaging Serviceを示すアドレスに送信する。
本実施形態の撮像装置は、図5に示すように当該GetImagingSettingsコマンドに対して、現在のIRCFの状態をIrCutFilterフィールドに含ませてGetImagingSettingsResponseを返す。この応答により、クライアントは現在の撮像装置の状態を検知する。図5に示す本実施形態においては、IRCFは光路上に挿入されている。
次にクライアントは、IRCFの設定を自動制御にするために、上記Video Sourceを示すtokenを含むSetImagingSettingsコマンドを、撮像装置のImaging Serviceを示すアドレスに送信する。図5に示した例では、クライアントはIrCutFilterフィールドにAUTOの値を設定し、かつ、IrCutFilterAutoAdjustmentフィールドを設定してSetImagingSettingsコマンドを送信している。
図5においては、本実施形態の撮像装置は、当該のSetImagingSettingsコマンドが成功裏に実行されたことを示すために、引数を省略したSetImagingSettingsResponseをクライアントに返す。
ここで、SetImagingSettingsコマンド内の、IrCutFilterAutoAdjustmentフィールドでは、BrightnessOffsetフィールドで輝度閾値が、ResponseTimeフィールドで遅延時間が設定できる。また、BrightnessOffsetフィールド、及び、ResponseTimeフィールドは、省略可能となっている。また、本実施形態のSetImagingSettingsコマンドでは、IrCutFilterAutoAdjustmentフィールド自身も省略することができる。
図5においては、当該のSetImagingSettingsコマンドが成功裏に実行されたことにより、IRCFの挿脱制御を当該撮像装置自身が決定するAuto設定となる。
上述のように、本実施形態では、SetImagingSettingsコマンドについて、IrCutFilterAutoAdjustmentフィールドを省略可能に構成している。従って、ユーザは輝度閾値や遅延時間などを意識することなく、IRCFの制御をAuto設定にすることが可能なので、ユーザの操作性を向上することができる効果がある。
なお、本実施形態の撮像装置は、現在のIRCFの状態によらず、IRCFの設定を許容している。従って、図5において、GetImagingSettingsコマンドとGetImagingSettingsResponseとのコマンドトランザクションは省略することができる。
また、本実施形態では、IrCutFilterフィールド(IrCutFilterタグ)に対応する値がONに設定されたSetImagingSettingsコマンドは、第一の命令に相当する。そして、IrCutFilterタグに対応する値がOFFに設定されたSetImagingSettingsコマンドは、第二の命令に相当する。さらに、IrCutFilterタグに対応する値がAUTOに設定されたSetImagingSettingsコマンドは、第三の命令に相当する。
また、本実施形態では、SetImagingSettingsコマンドに含まれるIrCutFilterAutoAdjustmentフィールド(IrCutFilterAutoAdjustmentタグ)に対応する値は、付加情報に相当する。そして、IrCutFilterAutoAdjustmentタグに含まれるResponseTimeフィールド(ResponseTimeタグ)に対応する値は、反応時間情報に相当する。
また、本実施形態では、BrightnessOffsetを用いたが、これに限るものではない。たとえば、BrightnessOffsetの代わりに、BoundaryOffsetという名前を持つデータを用いても良い。
このBoundaryOffsetは、IrCutFilterAutoBoundaryOffset型のデータである。このIrCutFilterAutoBoundaryOffset型の値は、float単精度浮動小数点データ型の値である。さらに、このIrCutFilterAutoBoundaryOffset型の値は、−1.0から1.0の間に制限される。
さらに、BoundaryOffsetフィールドの値は、0が初期値(デフォルト)である。また、BoundaryOffsetの値は、−1.0に近づくにつれて、輝度閾値が低く(小さく)なるように補正することを示す。一方、BoundaryOffsetの値は、1.0に近づくにつれて、輝度閾値が高く(大きく)なるように補正することを示す。
これにより、本実施形態の撮像装置が対応することのできない範囲の値(つまり、大きすぎる値または小さすぎる値)が、不図示の外部クライアントによりBoundaryOffsetとして設定されてしまうことを防止することができる。
また、本実施形態に対して、XSDにより、たとえば、IrCutFilterAutoAdjustmentOptionsという名前を持つデータを、データ型ImagingOptions20内にさらに定義しても良い。このIrCutFilterAutoAdjustmentOptionsという名前を持つデータは、IrCutFilterAutoAdjustmentOptions型のデータである。
ここで、IrCutFilterAutoAdjustmentOptions型は、XSDのcomplexType宣言により複雑型として定義される。また、IrCutFilterAutoAdjustmentOptions型は、その要素の順番が定義通りに出現す(記述され)るように、sequence指定子により指定される。
たとえば、IrCutFilterAutoAdjustmentOptions型の第一要素は、IrCutFilterAutoBoundaryType型のBoundaryTypeという名前を持つデータである。また、IrCutFilterAutoAdjustmentOptions型の第2要素は、float単精度浮動小数点データ型のBoundaryOffsetという名前を持つデータである。なお、このデータの値の範囲は、制限されている。
さらに、IrCutFilterAutoAdjustmentOptions型の第三要素は、XSDにおけるPrimitive Datatypeに定義されるduration時間間隔データ型の、ResponseTimeという名前を持つデータである。
なお、IrCutFilterAutoAdjustmentOptions型における第二要素および第三要素は、XSDのminOccurs指定子で指定されることにより、省略することができる。
さらに、Video Sourceを示すTokenを含むGetOptionsコマンドを不図示の外部クライアントから受信した場合に、次のような動作をするように本実施形態の撮像装置を構成しても良い。すなわち、IrCutFilterAutoAdjustmentOptionsという名前を持つデータを含むGetOptionsReponseを不図示の外部クライアントに返す(送信する)という動作である。
また、Video Sourceを示すtokenを含むGetImagingSettingsコマンドを不図示の外部クライアントから受信した場合に、次のような動作をするように本実施形態の撮像装置を構成しても良い。すなわち、IrCutFilterAutoAdjustmentOptionsという名前を持つデータを含むGetImagingSettingsResponseを不図示の外部クライアントに返す(送信する)という動作である。
これにより、IrCutFilterAutoAdjustment型のデータのうち本実施形態の撮像装置が対応しているデータを、不図示の外部クライアントに知らせることができる。
また、本実施形態では、IrCutFilterフィールドの値がOnに設定されたSetImagingSettingsコマンドをI/F14がCPU26に入力した場合に、次のような動作をするようにCPU26を構成した。すなわち、CPU26は、撮像光学系2の光路内にIRCF4を配置させるように、IRCF駆動回路24を制御するような動作である。しかしながら、このような構成に限るものではない。
たとえば、IrCutFilterフィールドの値がOnに設定されたSetImagingSettingsコマンドをI/F14がCPU26に入力した場合に、次のような動作をするようにCPU26を構成しても良い。
すなわち、撮像素子6から出力された映像信号に対するゲインを後述のデジタルナイトモードよりも下げるように、映像信号処理回路8に指示するようにCPU26を構成しても良い。より詳細には、撮像素子6から出力された映像信号の各色のゲインを後述のデジタルナイトモードよりも下げるように、映像信号処理回路8に指示するようにCPU26を構成しても良い。
ここで、撮像素子6から出力された映像信号の各色のゲインを後述のデジタルナイトモードよりも下げた状態とは、この映像信号の各色に対応する値に基づいて算出されたゲインを用いて、この映像信号を補正している状態(デイモードと称す)である。また、本実施形態における映像信号処理回路8は、撮像素子6から出力された映像信号のホワイトバランスの調整を行うホワイトバランス調整部として機能する。
さらに、本実施形態では、IrCutFilterフィールドの値がOffに設定されたSetImagingSettingsコマンドをI/F14がCPU26に入力した場合に、次のような動作をするようにCPU26を構成した。すなわち、CPU26は、撮像光学系2の光路外にIRCF4を配置させるように、IRCF駆動回路24を制御するような動作である。しかしながら、このような構成に限るものではない。
たとえば、IrCutFilterフィールドの値がOffに設定されたSetImagingSettingsコマンドをI/F14がCPU26に入力した場合に、次のような動作をするようにCPU26を構成しても良い。
すなわち、撮像素子6から出力された映像信号に対するゲインをデイモードよりも増幅させるように、映像信号処理回路8に指示するようにCPU26を構成しても良い。より詳細には、撮像素子6から出力された映像信号の各色のゲインをデイモードよりも増幅させるように、映像信号処理回路8に指示するようにCPU26を構成しても良い。
なお、本明細書では、撮像素子6から出力された映像信号の各色のゲインをデイモードよりも増幅させた状態を、デジタルナイトモードと称する。
このようにCPU26を構成した場合、CPU26は、デイモードまたはデジタルナイトモードを選択する選択部として機能する。
また、本実施形態における撮像装置に対してステッピングモーターなどの動力源を追加し、追加した動力源により、撮像光学系2がパン方向またはチルト方向に回転するように構成しても良い。さらに、本実施形態における撮像装置に対し、半球形状に形成されたドームカバーを追加しても良い。このドームカバーは、透明性を有し、半球形状に形成される。
また、BoundaryTypeフィールドなどの順番が定義通りに記述されていないIrCutFilterAutoAdjustmentフィールドを含むSetImagingSettingsコマンドを、本実施形態の撮像装置が受信する場合もあり得る。たとえば、BoundaryOffsetフィールドが先頭に記述されているIrCutFilterAutoAdjustmentフィールドを含むSetImagingSettingsコマンドを、本実施形態の撮像装置が受信する場合である。
このような場合、エラーを示す情報を含むSetImagingSettingsResponseを不図示の外部クライアントに送信するように、本実施形態の撮像装置を構成しても良い。
続いて、図6乃至11を参照しながら、上述の実施形態について詳細に説明する。なお、以下の説明では、上述の実施形態に対応するものと同一の要素には同一符合を付し、その説明を省略することがある。
そして、本明細書において、フィールドの値とは、タグに対応する値を意味する。たとえば、IrCutFilterAutoAdjustmentフィールドの値とは、<IrCutFilterAutoAdjustment>タグに対応する値を意味する。
また、たとえば、BoundaryTypeフィールドの値とは、<BoundaryType>タグに対応する値を意味する。たとえば、BoundaryOffsetフィールドの値とは、<BoundaryType>タグに対応する値を意味する。たとえば、ResponseTimeフィールドの値とは、<ResponseTime>タグに対応する値を意味する。
次に、本実施形態における撮像装置は、動画像を撮影する監視カメラであり、より詳細には、監視に用いられるネットワークカメラであるものとする。また、本実施形態における撮像装置は、壁面や天井に設置されるものとする。なおかつ、本実施形態における撮像装置は、PoE(Power Over Ethernet)に対応しており、LANケーブルを介して電力を供給されるものとする。
さらに、本実施形態では、撮像装置および外部のクライアント装置は、撮像システムを構成する。
図6は、本実施形態における撮像装置の詳細な構成を示すブロック図である。図6におけるゲイン設定回路7は、CPU26の指示に従って、撮像素子6から出力された映像信号に対するゲインを設定する。
たとえば、CPU26は、撮像光学系2の光路にIRCF4を挿入するようにIRCF駆動回路24に指示するとともに、撮像素子6から出力された映像信号に対するゲインを第1のゲインに設定するようにゲイン設定回路7に指示する。
また、CPU26は、撮像光学系2の光路からIRCF4を抜去するようにIRCF駆動回路24に指示するとともに、撮像素子6から出力された映像信号に対するゲインを第2のゲインに設定するようにゲイン設定回路7に指示する。なお、第2のゲインは、第1のゲインよりも大きい。
次に、図6における映像信号処理回路8は、CPU26の指示に従って、撮像素子6から出力された映像信号のダイナミックレンジを変更する。たとえば、CPU26は、映像信号処理回路8に指示し、撮像光学系2の光路にIRCF4を挿入するようにIRCF駆動回路24に指示するとともに、撮像素子6から出力された映像信号のダイナミックレンジを第1のダイナミックレンジに変更する。
また、CPU26は、映像信号処理回路8に指示し、撮像光学系2の光路からIRCF4を抜去するようにIRCF駆動回路24に指示するとともに、撮像素子6から出力された映像信号のダイナミックレンジを第2のダイナミックレンジに変更する。なお、第2のダイナミックレンジは、第1のダイナミックレンジよりも広い。
そして、図6における撮像素子駆動回路23は、CPU26の指示に従って、撮像素子6を駆動する。たとえば、CPU26は、撮像光学系2の光路にIRCF4を挿入するようにIRCF駆動回路24に指示するとともに、撮像素子6の電荷蓄積時間を第1の電荷蓄積時間に設定するように撮像素子駆動回路23に指示する。
また、CPU26は、撮像光学系2の光路からIRCF4を抜去するようにIRCF駆動回路24に指示するとともに、撮像素子6の電荷蓄積時間を第2の電荷蓄積時間に設定するように撮像素子駆動回路23に指示する。なお、第2の電荷蓄積時間は、第1の電荷蓄積時間よりも長い。
その上、図6におけるCPU26は、画像処理機能を備える。例えば、CPU26は、撮像光学系2の光路にIRCF4を挿入するようにIRCF駆動回路24に指示するとともに、撮像素子6から出力された映像信号が第1の明るさ(のレベル)になるように画像処理を施す。
また、CPU26は、撮像光学系2の光路からIRCF4を抜去するようにIRCF駆動回路24に指示するとともに、撮像素子6から出力された映像信号が第2の明るさ(のレベル)になるように画像処理を施す。なお、第2の明るさは、第1の明るさよりも明るい。
さらに、本実施形態におけるCPU26は、赤外線撮影がなされる場合には、撮像素子6から出力される映像信号のカラーバランスが崩れるため、撮像素子6から出力される映像信号を白黒映像信号にして、I/F14から送信させるものとする。このとき、本実施形態における撮像装置の撮像モードは、白黒モードであると呼ぶことにする。
また、本実施形態におけるCPU26は、通常の撮影がなされる場合には、撮像素子6から出力される映像信号の色再現性を重視し、撮像素子6から出力される映像信号をカラー映像信号にして、I/F14から送信させるものとする。このとき、本実施形態における撮像装置の撮像モードは、カラーモードであると呼ぶことにする。
続いて、図7は、XSDでコマンドを定義するためのデータ構造の定義例を詳細に示す。図7(a)は、図2(a)と同様であるので、その説明を省略する。また、図7(b)は、図2(b)と同様であるので、その説明を省略する。また、図7(c)は、図2(c)と同様であるので、その説明を省略する。
図7(d)は、IrCutFilterAutoAdjustment型の内容を示す図である。当該のデータ型は、XSDのcomplexType宣言により複雑型として定義される。また、当該のデータ型例ではsequence指定子により、その要素の順番が定義通りに出現することを指定している。
IrCutFilterAutoAdjustment型において、第一要素であるBoundaryTypeは、図2(d)におけるBoundaryTypeと同様であるので、その説明を省略する。なお、このBoundaryTypeは、後述のIrCutFilterAutoBoundaryType型を持つデータである。
次の要素は、BoundaryOffsetであり、当該のデータはXSDにおけるPrimitive Datatypeに定義されているfloat単精度浮動小数点データ型であることを示している。当該のBoundaryOffsetは、前述の輝度閾値パラメータである。当該のデータBoundaryOffsetは、XSDのminOccurs指定子により、省略されても良いようになっている。
なお、本実施形態における<BoudaryOffset>タグに対応する値は、本実施形態の撮像装置により撮像される被写体の明るさに関する明るさ情報に相当する。また、<BoundaryOffset>タグに対応する値の範囲は、所定の範囲に制限されている。具体的には、<BoundaryOffset>タグに対応する値の範囲は、−1.0から1.0の間に制限される。
3番目の要素は、図2(d)におけるResponseTimeと同様であるので、その説明を省略する。なお、本実施形態における<ResponseTime>タグに対応する値は、IRCF駆動回路24によるIRCF4の挿脱の反応時間に関する反応時間情報に相当する。
したがって、本実施形態における<BoundaryOffset>タグに対応する値および<ResponseTime>タグに対応する値は、IRCF4の挿脱に関する自動調整情報に相当する。
図7(e)は、上記したIrCutFilterAutoBoundaryType型の定義例を詳細に示す図である。当該のデータ型は、XSDのsimpleType宣言によって単純型として定義される。また、当該のデータ型では、restriction指定子によって、値を制限された文字列型として定義されている。
IrCutFilterAutoBoundaryType型では、図7(e)に示すように、その値が、Common、ToOn、ToOff、及び、Extendedの値をとることができる文字列型になっている。
なお、図7(e)におけるCommonは、図2(e)におけるCommonに相当する。また、図7(e)におけるToOnは、図2(e)におけるOnに相当する。さらに、図7(e)におけるToOffは、図2(e)におけるOffに相当する。
続いて、図8は、上記SetImagingSettingsコマンドの構成例を詳細に示す。図8(a)は、上記オプションフィールドを含む、SetImagingSettingsコマンドの構成を示す図である。図8(a)において、IrCutFilterフィールドの値がAUTOになっていることにより、IRCFの挿脱を撮像装置自身に自動で制御させることが指示される。
したがって、本実施形態では、IrCutFilterフィールドの値がAUTOになっているSetImagingSettingsコマンドは、自動挿脱制御命令に相当する。なお、自動挿脱制御命令とは、IRCF駆動回路24によるIRCF4の挿脱を本実施形態の撮像装置に自動で制御させるための命令である。
本実施形態では、IrCutFilterフィールドの値がAUTOの場合、その後にIrCutFilterAutoAdjustmentフィールドを記述することができるようになっている。上述したように、当該のIrCutFilterAutoAdjustmentフィールドは省略することもできる。
上述したように、IrCutFilterAutoAdjustmentフィールドの内部には、BoundaryTypeフィールド、BoundaryOffsetフィールド、及び、ResponseTimeフィールドが記述される。
すなわち、図8(a)で示すように、SetImagingSettingsコマンドには、<BoundaryType>タグ、<BoundaryOffset>タグおよび<ResponseTime>タグのそれぞれをこの順に記述することができる。
さらに、上述したように、BoundaryOffsetフィールド、及び、ResponseTimeフィールドは、省略可能になっている。
また、上述したが、上記BoundaryTypeフィールドによって、IRCFの挿入、抜去のいずれの場合に、当該IrCutFilterAutoAdjustmentフィールドに指定される動作を有効にするのかを、指定することができる。
すなわち、BoundaryTypeフィールドの値がToOnの場合、IRCFが挿入されるとき有効になり、BoundaryTypeフィールドの値がToOffの場合、IRCFが抜去されるとき有効になる。
また、BoundaryTypeフィールドの値がCommonの場合、挿入、抜去両方の場合に、有効になるようになっている。また、上述したように、上記BoundaryOffsetの値によって輝度閾値が、上記ResponseTimeフィールドによって遅延時間が、夫々設定される。
したがって、本実施形態では、値としてToOnが対応付けられた<BoudaryType>タグは、挿入指定可能情報に相当する。この挿入指定可能情報は、この<BoundaryType>タグに対応付けられた<BoundaryOffset>タグの値や<ResponseTime>タグの値に基づき、CPU26が次のような判定を行うことを指定することができる。すなわち、撮像光学系2の光路にIRCF4を挿入するか否かの判定である。
また、本実施形態では、値としてToOffが対応付けられた<BoundaryType>タグは、抜去指定可能情報に相当する。この抜去指定可能情報は、この<BoundaryType>タグに対応付けられた<BoundaryOffset>タグの値や<ResponseTime>タグの値に基づき、CPU26が次のような判定を行うことを指定することができる。すなわち、撮像光学系2の光路からIRCF4を抜去するか否かの判定である。
また、本実施形態では、値としてCommonが対応付けられた<BoundaryType>タグは、共通指定可能情報に相当する。この共通指定可能情報は、この<BoundaryType>タグに対応付けられた<BoundaryOffset>タグの値や<ResponseTime>タグの値を、CPU26が次の2つの判定に共通して用いることを指定する。すなわち、撮像光学系2の光路にIRCF4を挿入するか否かの判定、および撮像光学系2の光路からIRCF4を抜去するか否かの判定である。
図8(b)は、上記ResponseTimeフィールドが省略された場合の、上記SetImagingSettingsコマンドの構成を示す。このようにResponseTimeフィールドが省略された場合、上述したように本実施形態の撮像装置は、撮像装置自身が遅延時間パラメータの動作を決定する。
本実施形態では、例えばEEPROM28に予め格納してあり、CPU26は当該遅延時間をEEPROM28から読み出して判定回路20に設定するようになっている。また、図8(b)では、IRCFが挿入されるときに、IrCutFilterAutoAdjustmentフィールドに指定される動作が有効になるように、BoundaryTypeフィールドの値にToOnの値が設定されている。
図8(c)は、上記BoundaryTypeフィールドの値が、Commonの場合の、上記SetImagingSettingsコマンドの構成を示す。この場合、IRCF4の挿入、抜去両方の場合に、上記BoundaryOffsetの値、及び、上記ResponseTimeの値が有効になるようになっている。
また、上述したように、上記BoundaryOffsetの値によって輝度閾値が、上記ResponseTimeフィールドによって遅延時間が、夫々設定される。
図8(d)は、上記IrCutFilterAutoAdjustmentフィールドを省略した場合の、上記SetImagingSettingsコマンドの構成を示す。
ここで、本実施例の撮像装置は、次のようなSetImagingSettingsコマンドを受信した場合に、全てのIRCF挿脱の制御を当該撮像装置自身が決定するようになっている。即ち、IrCutFilterAutoAdjustmentフィールドが省略されたIRCFを自動設定するSetImagingSettingsコマンドである。
図8(e)は、上記IrCutFilterフィールドの値がONの場合の、上記SetImagingSettingsコマンドの構成を示す。また、図8(f)は、上記IrCutFilterフィールドの値がOFFの場合の、上記SetImagingSettingsコマンドの構成を示す。
本実施例では、図8(e)や図8(f)のような場合、IrCutFilterAutoAdjustmentフィールドは設定されない構成になっている。
図8(g)は、IrCutFilterタグに対応する値がAUTOの場合の、SetImagingSettingsコマンドの構成を示す。
このSetImagingSettingsコマンドは、値としてToOnが設定されたBoundaryTypeタグに対応する第1のIrCutFilterAutoAdjustmentタグを含む。さらに、このSetImagingSettingsコマンドは、値として「ToOff」が設定されたBoundaryTypeタグに対応する、第2のIrCutFilterAutoAdjustmentタグも含む。
したがって、CPU26は、IRCF4を挿入するか否かの判定に、第1のIrCutFilterAutoAdjustmentTypeタグに対応する、BoundaryOffsetタグおよびResponseTimeタグのそれぞれに対応する値を用いる。
また、CPU26は、IRCF4を抜去するか否かの判定に、第2のIrCutFilterAutoAdjustmentTypeタグに対応する、BoundaryOffsetタグおよびResponseTimeタグのそれぞれに対応する値を用いる。
また、SetImagingSettingsコマンドには、ToOnの値が対応付けられた<BoundaryType>タグ、ToOffの値が対応付けられた<BoundaryType>タグのそれぞれを、この順に記述することができる。(SetImagingSettingsコマンドは、ToOnの値が対応付けられた<BoundaryType>タグ、ToOffの値が対応付けられた<BoundaryType>タグのそれぞれを、この順に記述可能である。)
続いて、図9を参照して、本実施形態のクライアント装置の構成を詳細に説明する。図9は、本発明の実施形態に係る、クライアント装置の構成を示すブロック図である。なお、本実施形態のクライアント装置は、上記ONVIF規格のNetwork VideoReciever(以下NVRと称する場合がある)として動作する。つまり、本実施例のクライアント装置は、ONVIF仕様に従ってデータを送受信することができる。
図9において、408は入力部、414はディジタルインターフェイス部(以下、I/Fと称することがある)、416はインターフェイス端子、422は表示部、426は中央演算処理ユニット(以下、CPUと称することがある)、428はメモリである。
図9に示すクライアント装置は、典型的にはパーソナルコンピュータ(以下、PCと称することがある)などの汎用コンピュータである。入力部408は、例えば、キーボード、マウスなどのポインティング・デバイスなどが使用される。また、表示部422としては、例えば、液晶表示装置、プラズマ・ディスプレイ表示装置、ブラウン管などの陰極線管(以下CRTと称することがある)表示装置などが使用される。
たとえば、CPU26は、I/F414に指示し、GetOptionsコマンドを本実施形態の撮像装置に送信する。また、CPU26は、I/F414に指示し、GetOptionsResponseを本実施形態の撮像装置から取得する。
また、CPU26は、I/F414に指示し、SetImagingSettingsコマンドを、本実施形態の撮像装置に送信する。このSetImagingSettingsコマンドに含まれる<BoundaryType>タグに対応する値は、GetOptionsResponseに含まれる<img20:Mode>タグ(後述)に対応する値と一致する。
続いて、図5におけるGetOptionsコマンドおよびGetOptionsResponseについて、図10を用いて詳細に説明する。図10(a)は、VideoSourceTokenタグに対応する値が0のGetOptionsコマンドを示す。
図10(b)、図10(c)のそれぞれは、GetOptionsResponseの一例を示したものである。
ここで、撮像光学系2の光路にIRCF4を挿入する際および撮像光学系2の光路からIRCF4を抜去する場合のそれぞれについて、IrCutFilterAutoAdjustmentを共通で指定することができる撮像装置を想定する。図10(b)は、このような想定の撮像装置が送信するGetOptionsResponseである。
また、撮像光学系2の光路にIRCF4を挿入する際および撮像光学系2の光路からIRCF4を抜去する場合のそれぞれについて、IrCutFilterAutoAdjustmentを別々に指定することができる撮像装置を想定する。図10(c)は、このような想定の撮像装置が送信するGetOptionsResponseである。
図10(b)において、<ImagingOptions20>タグには、3つの<img20:IrCutFilterModes>タグが対応付けられている。この3つの<Img20:IrCutFilterModes>タグのそれぞれは、ON、OFF、AUTOに対応付けられている。
したがって、図10(b)で想定されている撮像装置は、IrCutFilterフィールドの値としてON、OFFおよびAUTOが設定されたSetImagingSettingsコマンドにしたがって、動作することができる。
また、図10(b)において、<IrCutFilterAutoAdjustmentOptions>タグには、次の3つのタグが対応付けられている。すなわち、<img20:Mode>タグ、<img20:BoudaryOffset>タグおよび<img20:ResponseTime>タグである。
ここで、<img20:Mode>タグは、Commonが対応付けられている。これにより、図10(b)に示したGetOptionsResponseは、次のようなことを示すことになる。
すなわち、CPU26により用いられる<IrCutFilterAutoAdjustment>タグの情報を、撮像光学系2の光路にIRCF4を挿入する場合およびこの光路からIRCF4を抜去する場合のそれぞれについて共通で指定可能であることである。
また、<img20:BoundaryOffset>タグは、trueが対応付けられている。したがって、図10(b)で想定されている撮像装置は、<BoundaryOffset>タグに対応する値が設定されたSetImagingSettingsコマンドにしたがって、動作することができる。
さらに、<img20:ResponseTime>タグは、<img20:Min>タグおよび<img20:Max>タグが対応付けられている。したがって、図10(b)で想定されている撮像装置は、<ResponseTime>に対応する値として、0秒以上30分以内の時間が設定されたSetImagingSettingsコマンドに基づき、動作することができる。
また、図10(c)において、(図10(b)と同様、)<ImagingOptions20>タグには、3つの<img20:IrCutFilterModes>タグが対応付けられている。この3つの<Img20:IrCutFilterModes>タグのそれぞれは、ON、OFF、AUTOに対応付けられている。
また、図10(c)において、<IrCutFilterAutoAdjustmentOptions>タグには、次の4つのタグが対応付けられている。すなわち、2つの<img20:Mode>タグ、<img20:BoudaryOffset>タグおよび<img20:ResponseTime>タグである。
ここで、2つの<img20:Mode>タグのそれぞれは、ToOn、ToOffが対応付けられている。これにより、図10(c)に示したGetOptionsResponseは、次のようなことを示すことになる。
すなわち、CPU26により用いられる<IrCutFilterAutoAdjustment>タグの情報を、撮像光学系2の光路にIRCF4を挿入する場合およびこの光路からIRCF4を抜去する場合のそれぞれについて別々に指定可能であることである。
また、<img20:Mode>タグは、trueが対応付けられている。さらに、<img20:ResponseTime>タグは、<img20:Min>タグおよび<img20:Max>タグが対応付けられている。
なお、図10(b)および図10(c)で示したように、本実施形態では、<img20:Mode>タグに対応付けられた情報は、挿脱指定情報に相当する。
続いて、図11を用いて、本実施形態の撮像装置によるIRCF4の挿脱制御を説明する。ここで、図11は、本実施形態の撮像装置によるIRCF4の挿脱制御処理を説明するためのフローチャートである。
ここで、本実施形態の撮像装置は、図10(c)で想定した撮像装置であるものとする。さらに、この撮像装置は、図8(g)に示すSetImagingSettingsコマンドを受信したものとする。なお、図11で示す処理は、このSetImagingSettingsコマンドを受信した後に、CPU26による実行が開始されるものとする。
ステップS1101では、CPU26は、撮像光学系2の光路内にIRCF4が挿入されているか否かを判定する。
そして、CPU26は、撮像光学系2の光路内にIRCF4が挿入されていると判定した場合には、ステップS1102に処理を進める。一方、CPU26は、撮像光学系2の光路内にIRCF4が挿入されていないと判定した場合には、ステップS1107に処理を進める。
ステップS1102では、CPU26は、被写体輝度が所定の輝度閾値よりも低いか否かを判定する。具体的には、CPU26は、輝度測定回路18から出力された被写体輝度と、値がToOnに設定された<BoundaryType>タグに対応付けられた<BoundaryOffset>タグに対応する値と、に基づき、判定回路20に判定させる。
たとえば、CPU26は、値がToOnに設定された<BoundaryType>タグに対応付けられた<BoundaryOffset>タグの値(0.16)に対応する閾値情報をEEPROM28から読み出す。次に、CPU26は、読み出した閾値情報により示される輝度閾値を判定回路20に設定する。
そして、判定回路20は、輝度測定回路18から出力された被写体輝度がCPU26により設定された輝度閾値よりも低いか否かを判定する。
CPU26は、輝度測定回路18から出力された被写体輝度がCPU26に設定された輝度閾値よりも低いと判定回路20が判定した場合には、ステップS1103に処理を進める。一方、CPU26は、輝度測定回路18から出力された被写体輝度がCPU26に設定された輝度閾値よりも低くないと判定回路20が判定した場合には、ステップS1101に処理を戻す。
ステップS1103では、CPU26は、計時回路22に指示し、計時を開始させる。具体的には、CPU26は、値がToOnに設定された<BoundaryType>タグに対応付けられた<ResponseTime>タグに対応する値(1分30秒)を、計時回路22に設定し、計時を開始させる。
ステップS1104は、ステップS1102と同様であるので、その説明を省略する。
ステップS1105では、CPU26は、ステップS1103で計時を開始してから、所定時間が経過したか否かを判定する。具体的には、CPU26は、計時回路22により時間経過信号を入力されたか否かを判定する。
そして、CPU26は、計時回路22により時間経過信号を入力された場合には、ステップS1103で計時を開始してから所定時間が経過したと判定し、ステップS1106に処理を進める。一方、CPU26は、計時回路22により時間経過信号を入力されなかった場合には、ステップS1103で計時を開始してから所定時間が経過していないと判定し、ステップS1104に処理を戻す。
ステップS1106では、CPU26は、IRCF駆動回路24に指示し、撮像光学系2の光路にIRCF4を挿入する。なお、本実施形態におけるIRCF駆動回路24は、撮像光学系2の光路にIRCF4を挿脱する挿脱部に相当する。また、本実施形態におけるCPU26は、IRCF駆動回路24を自動で制御する制御部に相当する。
ステップS1107では、CPU26は、被写体輝度が所定の輝度閾値よりも高いか否かを判定する。具体的には、CPU26は、輝度測定回路18から出力された被写体輝度と、値がToOffに設定された<BounadryType>タグに対応付けられた<BoundaryOffset>タグに対応する値と、に基づき、判定回路20に判定させる。
たとえば、CPU26は、値がToOffに設定された<BoundaryType>タグに対応付けられた<BoundaryOffset>タグの値(−0.62)に対応する閾値情報をEEPROM28から読み出す。次に、CPU26は、読み出した閾値情報により示される輝度閾値を判定回路20に設定する。
そして、判定回路20は、輝度測定回路18から出力された被写体輝度がCPU26により設定された輝度閾値よりも高いか否かを判定する。
CPU26は、輝度測定回路18から出力された被写体輝度がCPU26に設定された輝度閾値よりも高いと判定回路20が判定した場合には、ステップS1108に処理を進める。一方、CPU26は、輝度測定回路18から出力された被写体輝度がCPU26に設定された輝度閾値よりも高くないと判定回路20が判定した場合には、ステップS1101に処理を戻す。
ステップS1108では、CPU26は、計時回路22に指示し、計時を開始させる。具体的には、CPU26は、値がToOffに設定された<BoundaryType>タグに対応付けられた<ResponseTime>タグに対応する値(1分10秒)を、計時回路22に設定し、計時を開始させる。
ステップS1109は、ステップS1107と同様であるので、その説明を省略する。
ステップS1110は、ステップS1105と同様であるので、その説明を省略する。
ステップS1111では、CPU26は、IRCF駆動回路24に指示し、撮像光学系2の光路からIRCF4を抜去する。
続いて、図10(b)で想定した撮像装置が本実施形態の撮像装置である場合についても、図11を用いて説明する。この場合、本実施形態の撮像装置は、図8(c)に示すSetImagingSettingsコマンドを受信したものとする。なお、図11に関する以下の説明では、上述の図11の説明との相違点についてのみ説明する。
ステップS1102では、CPU26は、被写体輝度が所定の輝度閾値よりも低いか否かを判定する。具体的には、CPU26は、輝度測定回路18から出力された被写体輝度と、値がCommonに設定された<BoundaryType>タグに対応付けられた<BoundaryOffset>タグに対応する値と、に基づき、判定回路20に判定させる。
たとえば、CPU26は、値がCommonに設定された<BoundaryType>タグに対応付けられた<BoundaryOffset>タグの値(0.52)に対応する閾値情報をEEPROM28から読み出す。次に、CPU26は、読み出した閾値情報により示される輝度閾値を判定回路20に設定する。
そして、判定回路20は、輝度測定回路18から出力された被写体輝度がCPU26により設定された輝度閾値よりも低いか否かを判定する。
CPU26は、輝度測定回路18から出力された被写体輝度がCPU26に設定された輝度閾値よりも低いと判定回路20が判定した場合には、ステップS1103に処理を進める。一方、CPU26は、輝度測定回路18から出力された被写体輝度がCPU26に設定された輝度閾値よりも低くないと判定回路20が判定した場合には、ステップS1101に処理を戻す。
ステップS1103では、CPU26は、計時回路22に指示し、計時を開始させる。具体的には、CPU26は、値がCommonに設定された<BoundaryType>タグに対応付けられた<ResponseTime>タグに対応する値(1分15秒)を、計時回路22に設定し、計時を開始させる。
ステップS1107では、CPU26は、被写体輝度が所定の輝度閾値よりも高いか否かを判定する。具体的には、CPU26は、輝度測定回路18から出力された被写体輝度と、値がCommonに設定された<BounadryType>タグに対応付けられた<BoundaryOffset>タグに対応する値と、に基づき、判定回路20に判定させる。
たとえば、CPU26は、値がCommonに設定された<BoundaryType>タグに対応付けられた<BoundaryOffset>タグの値(−0.52)に対応する閾値情報をEEPROM28から読み出す。次に、CPU26は、読み出した閾値情報により示される輝度閾値を判定回路20に設定する。
そして、判定回路20は、輝度測定回路18から出力された被写体輝度がCPU26により設定された輝度閾値よりも高いか否かを判定する。
CPU26は、輝度測定回路18から出力された被写体輝度がCPU26に設定された輝度閾値よりも高いと判定回路20が判定した場合には、ステップS1108に処理を進める。一方、CPU26は、輝度測定回路18から出力された被写体輝度がCPU26に設定された輝度閾値よりも高くないと判定回路20が判定した場合には、ステップS1101に処理を戻す。
ステップS1108では、CPU26は、計時回路22に指示し、計時を開始させる。具体的には、CPU26は、値がCommonに設定された<BoundaryType>タグに対応付けられた<ResponseTime>タグに対応する値(1分15秒)を、計時回路22に設定し、計時を開始させる。
なお、図5を用いて述べたように、本実施形態の撮像装置は、外部のクライアント装置にネットワークを介して、GetOptionsResponseを送信した後に、この外部のクライアント装置からネットワークを介して次のようなコマンドを受信する。
たとえば、<IrCutFilter>タグに対応する値としてAUTOの値が記述され、且つ<IrCutFilterAutoAdjustment>タグが記述されたSetImagingSettingsコマンドである。さらに、この<IrCutFilterAutoAdjustment>タグには、<BoundaryType>タグが記述される。
上述したように、本実施形態では、<IrCutFilterAutoAdjustment>タグには、1個の<BoundaryType>タグが必ず対応付けられていなければならない。
そこで、本実施形態では、<IrCutFilterAutoAdjustment>タグが含まれたSetImagingSettingsコマンドを受信した場合に、次のような判定をするように、CPU26を構成しても良い。
すなわち、この受信したSetImagingSettingsコマンドに含まれた<IrCutFilterAutoAdjustment>タグに,1個の<BoundaryType>タグが含まれているか否かの判定である。そして、CPU26が含まれていないと判定した場合には、このSetImagingSettingsコマンドに対する返信として、エラー情報を外部のクライアント装置に返信させるように通信回路14を制御するよう、CPU26を構成しても良い。
また、本実施形態では、値としてCommonが対応付けられた<img20:Mode>タグが対応付けられたGetOptionsResponseを外部のクライアント装置に送信した撮像装置のCPU26は、以下のように構成されていてもよい。
すなわち、<IrCutFilterAutoAdjustment>タグが含まれたSetImagingSettingsコマンドを受信した場合に、次のような判定をするように、CPU26を構成しても良い。
つまり、この受信したSetImagingSettingsコマンドに含まれた<IrCutFilterAutoAdjustment>タグに、値としてCommonが対応付けられた<BoundaryType>タグが含まれているか否かの判定である。
そして、CPU26により含まれていないと判定された場合には、このSetImagingSettingsコマンドに対する返信として、エラー情報を外部のクライアント装置に返信させるように通信回路14を制御するよう、CPU26を構成しても良い。本実施形態では、このCPU26は、第1の判定手段に相当する。
また、本実施形態では、図10(c)に示したGetOptionsResponseを外部のクライアント装置に送信した撮像装置のCPU26は、以下のように構成されていてもよい。
すなわち、<IrCutFilterAutoAdjustment>タグが含まれたSetImagingSettingsコマンドを受信した場合に、次のような判定をするように、CPU26を構成しても良い。
つまり、この受信したSetImagingSettingsコマンドに含まれた<IrCutFilterAutoAdjustment>タグに、2つの<BoundaryType>タグが含まれているか否かの判定である。具体的には、これら2つの<BoundaryType>タグとは、値としてToOnが対応付けられた<BoundaryType>タグと、値としてToOffが対応付けられた<BondaryType>タグである。
そして、CPU26により含まれていないと判定された場合には、このSetImagingSettingsコマンドに対する返信として、エラー情報を外部のクライアント装置に返信させるように通信回路14を制御するよう、CPU26を構成しても良い。本実施形態では、このCPU26は、第2の判定手段に相当する。
また、本実施形態では、図10(c)に示したGetOptionsResponseを外部のクライアント装置に送信した撮像装置のCPU26は、以下のように構成されていてもよい。
すなわち、<IrCutFilterAutoAdjustment>タグが含まれたSetImagingSettingsコマンドを受信した場合に、次のような判定をするように、CPU26を構成しても良い。
つまり、この受信したSetImagingSettingsコマンドに含まれた<IrCutFilterAutoAdjustment>タグに、値としてCommonが対応付けられた<BoundaryType>タグが含まれているか否かの判定である。そして、CPU26により含まれていると判定された場合には、このSetImagingSettingsコマンドに対する返信として、エラー情報を外部のクライアント装置に返信させるように通信回路14を制御するよう、CPU26を構成しても良い。
また、本実施形態では、図10(b)に示したGetOptionsResponseを外部のクライアント装置に送信した撮像装置のCPU26は、以下のように構成されていてもよい。
すなわち、<IrCutFilterAutoAdjustment>タグが含まれたSetImagingSettingsコマンドを受信した場合に、次のような判定をするように、CPU26を構成しても良い。
つまり、この受信したSetImagingSettingsコマンドに含まれた<IrCutFilterAutoAdjustment>タグに、Common以外の値が対応付けられた<BoundaryType>タグが含まれているか否かの判定である。
例えば、Common以外の値が対応付けられた<BoundaryType>タグとは、値としてToOnが対応付けられた<BoundaryType>タグと、値としてToOffが対応付けられた<BondaryType>タグである。
そして、CPU26により含まれていると判定された場合には、このSetImagingSettingsコマンドに対する返信として、エラー情報を外部のクライアント装置に返信させるように通信回路14を制御するよう、CPU26を構成しても良い。
また、本実施形態では、通常、輝度閾値は、本実施形態の撮像装置に設定可能な輝度閾値を、−1.0から1.0の値に正規化されて、外部クライアントから設定される。しかしながら、外部クライアントの不具合などにより、上記の値の範囲外の数値が設定されることも考えられる。このような場合に対処するために、本実施形態の撮像装置は、例えば、上記の値範囲外の数値が設定された場合、設定可能な上限値、あるいは、下限値に丸めて設定する。
上記BoundaryOffsetの値として−1.0より小さい値、例えば−2.5を受信した場合、本実施形態の撮像装置は、当該BoundaryOffset値を−1.0として使用する。また、上記BoundaryOffsetの値として1.0よりも大きい値、例えば3.1を受信した場合、本実施形態の撮像装置は、当該BoundaryOffset値を1.0として使用するようになっている。
なお、上記の実施形態では、上記BoundaryOffsetの値として、設定可能な範囲外の値が設定された場合、設定可能な上限値、あるいは、下限値に丸めて使用するように構成しているが、これに限るものではない。
例えば、外部のクライアントから受信した上記SetImagingSettingsコマンドに対してエラーを返すように構成しても良い。この場合、本実施形態の撮像装置が返すSetImagingSettingsResponseには、上記BoundaryOffset値が不正である旨のレスポンス・コードが記述されて送信される。
したがって、本実施形態において、BoundaryOffset値が不正である旨のレスポンスコードが記述されたSetImagingSettingsResponseは、エラー情報に相当する。ここで、エラー情報は、IrCutFilterフィールドの値がAutoに設定されたSetImagingSettingsコマンドに対する返信である。
また、本実施形態における、IrCutFilterAutoAdjustmentフィールドとは、例えば、Autoモードでのみ用いられる、赤外線遮断フィルタの切り換えタイミングを調整するためのオプショナルなパラメータであると言える。
また、本実施例における、BoundaryTypeは、例えば、BoundaryOffsetやResponseTimeと言ったパラメータがどの境界で用いられるのかを特定する。ここで、特定される境界とは、例えば、赤外線遮断フィルタを自動で切り換えるための境界である。ここで、BoundaryTypeの値「Common」は、赤外線遮断フィルタを有効に自動で切り替える場合の境界のみならず、赤外線遮断フィルタを無効に自動で切り替える場合の境界にも、これらパラメータが用いられることを意味する。また、BoundaryTypeの値「ToOn」及び「ToOff」夫々は、赤外線遮断フィルタを有効に自動で切り替えるための境界、および赤外線遮断フィルタを無効に自動で切り替えるための境界のうち一方に、これらパラメータが用いられることを意味する。
また、本実施形態における、BoundaryOffsetフィールドは、例えば、赤外線遮断フィルタの有効(On)/無効(Off)の切り換えのための境界露光レベルを調整する。このBoundaryOffsetフィールドの値は、例えば、−1.0から+1.0に正規化された値であり、単位はない。さらに、BoundaryOffsetフィールドの値は、0が初期値であり、且つ、−1.0が最も暗く、+1.0が最も明るい。
なお、本実施形態におけるGetServicesコマンドとは、このコマンドを受信した装置(例えば、本実施形態の撮像装置)が提供する機能を問い合わせるコマンドである。また、本実施形態におけるImaging Serviceとは、露出、シャッタースピード、防振などの撮像に関する設定を行うサービスである。
また、本実施形態の撮像装置およびクライアント装置は、本実施形態におけるXSDで定義されたコマンドを、ファイル形式で保存する。
また、本実施形態の撮像装置のImaging Serviceを示すアドレスは、この撮像装置のVideo Analytics Serviceを示すアドレス、およびこの撮像装置のPTZ Serviceを示すアドレスと同じであるものとする。しかしながら、これに限られるものではない。たとえば、これらのアドレスのそれぞれは、互いに異なっていてもよい。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。