(58)【調査した分野】(Int.Cl.,DB名)
前記プロセッサはさらに、前記ビデオストリームを符号化する前に前記低関心エリアに対するノイズ低減プロセスを増加させるように前記カメラに命令することを決定するように構成され、
前記低関心エリアにおける前記ビデオストリームのビットレートを減少させる前記命令は、前記ビデオストリームを符号化する前に前記低関心エリアに対するノイズ低減プロセスを増加させる命令を含む請求項8〜11のいずれか一項に記載のコンピュータシステム。
【発明を実施するための形態】
【0024】
以下の詳細な説明は、添付図面を参照する。異なる図面における同じ参照番号は、同一または類似の要素を特定する。
【0025】
本明細書に記載される実装は、注視ヒートマップ(gaze heat map)に関する。監視カメラは、関心エリアのビデオをディスプレイにストリーミングする。ビデオストリームは、高い帯域幅要件を有する可能性があり、かなりのネットワーク帯域幅を消費する可能性がある。さらに、ビデオストリームを処理するには、プロセッサおよびメモリリソースが必要となる可能性がある。本明細書で「オペレータ」または「ユーザ」と呼ばれるディスプレイを見ている人は、ディスプレイに表示されたシーンの特定のエリアを高い関心のものと見出す可能性があり、シーンの他のエリアを低い関心のものと見出す可能性がある。例えば、カメラが通路とドアとを有するエリアを監視している場合、オペレータは、ドアと通路を見るのにかなりの時間量を費やす可能性があり、ドアの周りの壁を見るのに比較的少ない時間量を費やす可能性がある。
【0026】
アイトラッカー(アイトラッキングシステム)を使用して、オペレータの注視エリア(gaze area)を特定し、それにより、オペレータが見ているディスプレイの一部、またはディスプレイグループ内の1以上のディスプレイを特定することができる。ある時間間隔にわたって、特定の時間間隔にわたって特定のカメラからのビデオストリームを表示するディスプレイ上の特定の位置をオペレータが見ている時間量を示す履歴注視ヒートマップ(historical gaze heat map)が生成され得る。時間間隔は、ビデオストリームの予測される変動に基づいて選択することができる。いくつかの実装では、時間間隔は少なくとも1日とすることができる。他の実装では、時間間隔は1日よりも長くてもよい(例えば、1週間、1ヶ月など)。
【0027】
履歴注視ヒートマップは、例えば、オペレータの注視点(gaze point)がピクセルまたはピクセルのセットに対応する時間の長さを表す割り当てられた値を用いて、ビデオストリームのフレーム内のピクセルまたはピクセルのセットの各々に値を割り当てることができる。例えば、ピクセルまたはピクセルのセットへのより高い割り当て値は、ピクセルまたはピクセルのセットに対応するビデオストリームフレームの位置を見ているオペレータによって費やされるより長い時間量に対応し得る。
【0028】
履歴注視ヒートマップは、ビデオストリームに対して低関心エリアを決定するために使用することができ、カメラは、低関心エリアにおけるビデオストリームのビットレートを減少させるように命令されることが可能である。ビデオストリームの低関心エリアにおけるビデオストリームのビットレートを低減させることは、ネットワークリソースを節約し、カメラおよび監視ステーションの監視システムに対してプロセッサおよびメモリの負荷を低減させるという技術的効果をもたらすことができる。いくつかの実装では、ビデオストリームは複数のビデオストリームを含んでもよく、ディスプレイは複数のディスプレイを含んでもよい。
【0029】
さらに、いくつかの実装では、ビデオストリームに対する高関心エリアは、履歴注視ヒートマップに基づいて決定することができ、カメラは、高関心エリアにおけるビデオストリームのビットレートを高めるように命令されることが可能である。
【0030】
履歴注視ヒートマップは、特定のデータ点に対して追加の情報を格納することができ、追加の情報は、特定のパラメータに関して注視ヒートマップを精緻化するために使用することができる。一例として、注視ヒートマップ内のビデオストリームの各位置(例えばピクセル、ピクセルのセットなど)に対して、追加の情報は、注視情報(gaze information)が収集された特定の時刻または特定の曜日を特定する情報を含んでもよい。したがって、特定の時刻または曜日に対するビデオストリームに対して収集される注視情報の複数のインスタンスに基づいて、履歴注視ヒートマップから異なる時刻または曜日に対する注視ヒートマップを検索することができる。したがって、例えば、第1の低関心エリアは、第1の時刻または曜日の複数のインスタンスにわたって第1の時刻または曜日に対して生成された履歴注視ヒートマップに基づいて、第1の時刻または曜日に対して決定することができ、第2の低関心エリアは、第2の時刻または曜日の複数のインスタンスにわたって第2の時刻または曜日に対して生成された履歴注視ヒートマップに基づいて、第2の時刻または曜日に対して決定することができる。
【0031】
別の一例として、注視ヒートマップ内のビデオストリームの各位置に対して、追加の情報は、注視情報が収集されたときの特定のカメラ設定を特定する情報を含んでもよい。したがって、異なるカメラ設定に対する注視ヒートマップを、履歴注視ヒートマップから検索することができる。例えば、カメラに対するパン、ズーム、チルト、回転、または画像タイプ(例えば、通常対広角など)の設定を選択することができ、履歴ヒートマップのサブセットは、カメラ設定の選択に基づいて生成することができ、選択されたカメラ設定に対するビデオストリームの低関心エリアを、注視ヒートマップのサブセットに基づいて決定することができる。
【0032】
さらに別の一例として、注視ヒートマップ内のビデオストリームの各位置に対して、追加の情報は、特定のイベントタイプを特定する情報を含んでもよい。イベントタイプは、生成された警報に基づいて、監視されるエリアに関連付けられ、ビデオ管理システムによって管理されるカレンダーに記録されたイベントに基づいて、オペレータによって入力された手動の情報に基づいて、および/または、イベントを特定する別の技術に基づいて、特定することができる。イベントタイプは、履歴注視ヒートマップの特定の変化に関連付けることができる。将来、イベントタイプが検出された場合、低関心エリアは、履歴注視ヒートマップの関連付けられた変化に基づいて変更することができる。例えば、ドアセンサは、ドアが開かれたことを示すことができ、オペレータの注視は、作動しているドアセンサの特定の時間内にドアに関連付けられたエリアに変化する可能性がある。ドアセンサとの関連付けが行われた後、ドアセンサが将来作動すると、ドアに関連付けられた低関心エリアは高関心エリアに変更されてもよく、ドアのためのビットレートが増加させられ得る。
【0033】
ビットレートは、センサアレイによるビデオデータの取り込み点から、ネットワーク接続を介してディスプレイに符号化されたビデオストリームを送信するまでの処理経路に沿った多数の点のうちのいずれかで低減させることができる。一例として、低関心エリアにおけるビデオストリームのビットレートを減少させるようにカメラに命令することは、低関心エリアに関連付けられたセンサ用のサンプリングレートを低減させるようにカメラに命令することを含んでもよい。別の一例として、低関心エリアにおけるビデオストリームのビットレートを減少させるようにカメラに命令することは、ビデオストリームを符号化する前に低関心エリアに対する解像度を下げるようにカメラに命令することを含んでもよい。さらに別の一例として、低関心エリアにおけるビデオストリームのビットレートを減少させるようにカメラに命令することは、ビデオストリームを符号化する前に低関心エリアに対するノイズ低減プロセスを増加するようにカメラに命令することを含んでもよい。さらに別の一例として、低関心エリアにおけるビデオストリームのビットレートを減少させるようにカメラに命令することは、低関心エリアに関連付けられた符号化処理ユニットに対する圧縮パラメータ値を増加させるようにカメラに命令することを含んでもよい。
【0034】
図1は、一実施形態における例示的な環境100を示すブロック図である。環境100は、例えば、エリアを守るため、または公共安全を提供するための監視システムであり得る。
図1に示すように、環境100は、カメラ110−1〜110−M、ネットワーク120、監視ステーション125−1〜125−N、ディスプレイ130−1〜130−N、アイトラッカー140−1〜140−N、および/またはビデオ管理システム(VMS)150を含んでもよい。
【0035】
カメラ110−1〜110−M(個別に「カメラ110」または複数の「カメラ110」)は、監視エリア106の画像および/またはビデオを取り込む。監視エリア106は、1以上のカメラ110によって監視することができる。例えば、2つのカメラは、物体102−1を含むエリア106−1を監視することができる。物体102は、任意の物体(例えば、ドア、人、動物、車両、車両上のナンバープレートなど)を含んでもよい。
【0036】
カメラ110は、可視光、赤外光、および/または他の非可視電磁放射線(例えば、紫外光、遠赤外光、テラヘルツ放射線、マイクロ波放射線など)を使用して画像データを取り込むことができる。カメラ110は、レーダ撮像のための熱カメラおよび/またはレーダ装置を含んでもよい。取り込まれた画像データは、連続画像シーケンス(例えば、ビデオ)、限定された画像シーケンス、静止画像、および/またはそれらの組み合わせを含んでもよい。カメラ110は、画像を取り込みデジタル化するためのデジタルカメラおよび/または画像を取り込んでアナログ形式で画像データを格納するためのアナログカメラを含んでもよい。
【0037】
カメラ110は、1以上の2次元アレイ(例えば、画像データまたはビデオデータ)に配列されたデータを生成するセンサを含んでもよい。本明細書で使用される場合、「ビデオデータ」および「ビデオ」は、より一般的にそれぞれ「画像データ」および「画像」と呼ぶことができる。したがって、「画像データ」または「画像」は、特に明記しない限り、「ビデオデータ」および「ビデオ」を含むことを意味する。同様に、「ビデオデータ」または「ビデオ」は、特に明記しない限り、静止画像を含み得る。さらに、いくつかの実装では、「ビデオデータ」は音声データを含み得る。
【0038】
VMS150のクライアントであり、ディスプレイ130−1〜130−Nに接続されたコンピュータ装置が、監視ステーション125−1〜125−Nに含まれ得る(それぞれ個別に「ディスプレイ130」および「監視ステーション125」)。一実施形態では、監視ステーション125−1〜125−Nはまた、アイトラッカー140−1〜140−N(個別に「アイトラッカー140」)に結合される。監視ステーション125およびディスプレイ130は、オペレータ(
図1には図示せず)がカメラ110からの画像を見ることを可能にする。アイトラッカー140は、ディスプレイ130を見ているオペレータの注視を追跡する。監視ステーション125、ディスプレイ130、およびアイトラッカー140の各々は、オペレータが環境100内に示される監視システムとインタラクトするための「クライアント」とすることができる。
【0039】
ディスプレイ130は、1以上のカメラ110からのビデオストリームを受信して表示する。1つのディスプレイ130は、単一のカメラ110または複数のカメラ110からの画像を(例えば、ディスプレイ130上の複数のフレームまたはウィンドウ内に)示すことができる。単一のディスプレイ130はまた、単一のカメラからの異なるフレームの画像を表示することもできる。すなわち、単一のカメラは、例えば、広角レンズまたは魚眼レンズを含んでもよく、複数のエリア106の画像を提供することができる。異なるエリア106からの画像は、異なるウィンドウおよび/またはフレームで別々にディスプレイ130上に分離して表示させることができる。ディスプレイ130は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、有機LED(OLED)ディスプレイ、陰極線管(CRT)ディスプレイ、プラズマディスプレイ、レーザビデオディスプレイ、電気泳動ディスプレイ、量子ドットディスプレイ、ビデオプロジェクタ、および/または任意の他のタイプのディスプレイ装置を含んでもよい。
【0040】
アイトラッカー140は、VMS150(または環境100内の任意の他の装置)がオペレータの目がどこに集中しているかを判定することを可能にするセンサ(例えば、カメラ)を含む。例えば、一組の近赤外光ビームは、オペレータの目に向けられ、オペレータの角膜で反射を引き起こすことができる。反射は、アイトラッカー140に含まれるカメラによって追跡され、オペレータの注視エリアを決定することができる。注視エリアは、注視点および中心窩の焦点(focus)のエリアを含んでもよい。例えば、オペレータは、監視ステーション125のディスプレイ130の前に座ることができる。アイトラッカー140は、ディスプレイ130のどの部分にオペレータが焦点を合わせているかを決定する。各ディスプレイ130は、単一のアイトラッカー140に関連付けることができる。あるいはまた、アイトラッカー140は、複数のディスプレイ130に対応することができる。この場合、アイトラッカー140は、オペレータがどのディスプレイに、および/またはそのディスプレイ130のどの部分に焦点を合わせているかを判定することができる。
【0041】
アイトラッカー140はまた、ユーザの存在、注意のレベル、焦点、眠気、意識、および/または他の状態を判定することもできる。アイトラッカー140はまた、ユーザの身元を判定することもできる。アイトラッカー140からの情報は、経時的なオペレータの行動内に洞察を得るために、またはオペレータの現在の状態を判定するために使用することができる。いくつかの実装では、ディスプレイ130およびアイトラッカー140は、オペレータが着用するバーチャルリアリティ(VR)ヘッドセット内に実装することができる。オペレータは、VRヘッドセットへの入力として1以上のカメラ110を使用してエリア106の仮想検査を実行することができる。
【0042】
ネットワーク120は、1以上の回線交換ネットワークおよび/またはパケット交換ネットワークを含んでもよい。例えば、ネットワーク120は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、PSTN(Public Switched Telephone Network)、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク、無線ネットワーク、および/またはこれらのまたは他のタイプのネットワークの組み合わせを含んでもよい。
【0043】
VMS150は、カメラ110、ディスプレイ130、および/またはアイトラッカー140の動作を統合する1以上のコンピュータ装置(例えば、サーバ装置など)を含んでもよい。VMS150は、カメラ110からの画像データを受信して格納することができる。VMS150はまた、VMS150に格納された画像データまたはカメラ110からストリーミングされた画像データを見るための、監視ステーション125のオペレータのためのユーザインターフェースを、提供することもできる。VMS150は、カメラ110に、オペレータの注視エリアの外側にある領域のビットレートを低減させるように命令することによってシステムリソースを節約するためのルールエンジンを含んでもよい。
【0044】
いくつかの実施形態では、環境100は、別個のVMS150を含まない。代わりに、VMS150によって提供されるサービスは、監視ステーション125(例えば、ディスプレイ130に関連付けられたコンピュータ装置)および/またはカメラ110自体によって、または環境100内の装置間に分散された方法で提供される。例えば、カメラ110は、オペレータの注視エリアの外側にある領域に対してビットレートを低減させるようにカメラ110に命令することによって、システムリソースを節約するルールエンジンを含んでもよい。同様に、VMS150は、カメラ110によって実行されるものとして説明された動作を実行することができる。
【0045】
図1には、環境100の例示的なコンポーネントが示されているが、他の実装では、環境100は、
図1に示されているよりも少ないコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、または追加のコンポーネントを含んでもよい。追加的または代替的に、任意の1つの装置(または装置の任意のグループ)が、1以上の他の装置によって実行されるものとして説明された機能を実行することができる。
【0046】
図2は、一実施形態におけるカメラ110の例示的なコンポーネントを示すブロック図である。
図2に示すように、カメラ110は、光学チェーン210、センサアレイ220、バス225、画像プロセッサ230、コントローラ240、メモリ245、ビデオエンコーダ250、および/または通信インターフェース260を含んでもよい。一実施形態では、カメラ110は、カメラ110をパン、チルト、回転、および/またはズームするための1以上のモータコントローラ270(例えば、3つ)および1以上のモータ272(例えば、3つ)を含んでもよい。
【0047】
光学チェーン210は、入射放射線(例えば、光、可視光、赤外線波、ミリ波など)をセンサアレイ220に導き、入射放射線に基づいて画像を取り込むエンクロージャを含む。光学チェーン210は、入射放射線を監視エリアからセンサアレイ220上に収集して集束させる1以上のレンズ212を含む。
【0048】
センサアレイ220は、センサアレイ220上に入射するまたは降り注ぐ放射線(例えば、光)を検知、検出、および測定するためのセンサのアレイを含んでもよい。放射線は、可視光波長範囲、赤外線波長範囲、または他の波長範囲とすることができる。
【0049】
センサアレイ220は、例えば、電荷結合素子(CCD)アレイおよび/またはアクティブピクセルアレイ(例えば、相補型金属酸化物半導体(CMOS)センサアレイ)を含んでもよい。センサアレイ220はまた、(例えば、カメラ110が熱カメラまたは検出器を含む場合)マイクロボロメータを含むこともできる。
【0050】
センサアレイ220は、センサアレイ220に入射する放射線(例えば、光)を示す(例えば、特性または特徴を記述する)データを出力する。例えば、センサアレイ220から出力されるデータは、センサアレイ220内の1以上のピクセルに入射する情報(例えば、光の強度(例えば、照度)、色など)を含んでもよい。センサアレイ220に入射する光は、光学チェーン210内のレンズの結果として光が集束させられ得る「画像」であり得る。いくつかの実装では、コントローラ240は、センサアレイ220のうちの特定のセンサまたはセンサのセットのサンプリングレートをオフにする、および/または低減させることによって、センサアレイ220の特定の領域に関連付けられたビットレートを低減させることができる。
【0051】
センサアレイ220は、センサアレイ220上に降り注ぐ画像を検出するので、「画像センサ」と考えることができる。この用語が本明細書で使用されるとき、「画像」は、センサアレイ220に入射する放射線を示す(例えば、光の特性または特徴を記述する)データを含む。したがって、「画像」という用語はまた、「画像センサデータ」または画像を記述する任意のデータまたはデータセットを意味するために使用することもできる。さらに、「ピクセル」は、放射線の測定(例えば、センサアレイ220に入射する光を示す測定)が行われるセンサアレイ220の任意の領域またはエリアを意味することができる。ピクセルは、センサアレイ220内の1以上(または1未満)のセンサに対応することができる。別の実施形態では、センサアレイ220は、走査ハードウェア(例えば、回転ミラー)を使用して画像を形成することができるリニアアレイ、または画像センサデータを生成するために画像プロセッサ230および/またはコントローラ240に依存する可能性のある非アレイセンサであってもよい。
【0052】
バス225は、カメラ110内のコンポーネントが互いに通信することを可能にする通信経路を含む。コントローラ240および/または画像プロセッサ230は、センサアレイ220によって取り込まれた画像データ上で信号処理動作を実行する。センサアレイ220によって取り込まれた画像上で画像処理(例えば、画像プロセッサ230は、ノイズ低減、フィルタリング、スケーリングなど)を行うことができる。コントローラ240は、カメラ110の動作を制御することができ、カメラ110の他のコンポーネント(例えば、センサアレイ220、画像プロセッサ230、ビデオエンコーダ250、通信インターフェース260、および/またはモータコントローラ270)に命令を提供することができる。
【0053】
コントローラ240および/または画像プロセッサ230は、命令を解釈して実行する任意のタイプのシングルコアまたはマルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ、および/または処理ロジック(またはプロセッサ、マイクロプロセッサ、および/または処理ロジックのファミリ)を含んでもよい。コントローラ240および/または画像プロセッサ230は、ハードウェアアクセラレータ(例えば、グラフィックス処理ユニット(GPU)、汎用グラフィックス処理ユニット(GPGPU)、セル(Cell)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、および/または別のタイプの集積回路または処理ロジック)を含むか、またはそれに結合することができる。
【0054】
コントローラ240はまた、カメラ110の所望の焦点および位置(例えば、チルト、パン、回転、ズームなど)を決定して制御することもできる。そうするために、コントローラ240は、1以上のモータコントローラ270にコマンドを送信して、カメラ110をチルト、パン、回転、および/またはズームするための1以上のモータ272、または光学式ズームレンズ212を駆動する。
【0055】
メモリ245は、情報および/または命令を格納する任意のタイプの揮発性および/または不揮発性の記憶装置を含んでもよい。メモリ245は、ランダムアクセスメモリ(RAM)または任意のタイプの動的記憶装置、リードオンリメモリ(ROM)デバイス、または任意のタイプの静的記憶装置、磁気または光記録メモリデバイスおよびその対応するドライブ、またはリムーバブルメモリデバイスを含んでもよい。メモリ245は、カメラ110による使用のための情報および命令(例えば、アプリケーションおよび/またはオペレーティングシステム)およびデータ(例えば、アプリケーションデータ)を格納することができる。メモリ245は、1以上のビットレート低減係数および/または特定のセンサアレイ取り込み、画像処理、および/または1以上のビットレート低減係数が適用される符号化プロセスおよび/またはパラメータを特定する情報を格納することができる。
【0056】
メモリ245は、コントローラ240、画像プロセッサ230、ビデオエンコーダ250、および/または通信インターフェース260による実行のための命令を格納することができる。ソフトウェア命令は、別のコンピュータ可読媒体または別の装置からメモリ245に読み込むことができる。ソフトウェア命令は、コントローラ240、画像プロセッサ230、ビデオエンコーダ250、および/または通信インターフェース260に、本明細書に記載のプロセスを実行させることができる。例えば、カメラ110は、メモリ245内に格納されたソフトウェア命令を実行する、コントローラ240、画像プロセッサ230、および/またはビデオエンコーダ250に応答して、画像処理(例えば、符号化、ノイズ低減化、トランスコード、オブジェクトの検出など)に関連する動作を実行することができる。あるいはまた、本明細書で説明するプロセスを実装するために、配線接続された回路(例えば、ロジック)をソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用してもよい。
【0057】
ビデオエンコーダ250は、1以上のビデオコーデック(例えば、H.262/MPEG(Moving Pictures Experts Group)−2コーデック、H.263/MPEG−2Part2コーデック、H.264/MPEG−4コーデック、H.265/MPEG−HHVEC(High Efficiency Video Coding)コーデック、および/または別のタイプのコーデック)に基づいてビデオデータを圧縮することができる。
【0058】
通信インターフェース260は、入力および/または出力ポート、入力および/または出力システム、および/または他の装置へのデータの送信を促進する他の入力および出力コンポーネントを含む回路および論理回路を含む。例えば、通信インターフェース260は、有線通信のためのネットワークインターフェースカード(例えば、イーサネット(登録商標)カード)、または無線通信のための無線ネットワークインターフェース(例えば、LTE(Long Term Evolution)、WiFi、Bluetoothなど)カードを含んでもよい。
【0059】
図2は、カメラ110の例示的なコンポーネントを示しているが、他の実施形態では、カメラ110は、
図2に示されているものよりも少ないコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、または追加のコンポーネントを含んでもよい。追加的または代替的に、カメラ110の1以上のコンポーネントは、カメラ110の1以上の他のコンポーネントによって実行されるように説明された機能を実行することができる。例えば、コントローラ240は、画像プロセッサ230によって実行されるように説明された機能を実行することができ、その逆も可能である。代替的または追加的に、カメラ110は、
図3に関して以下に説明されるようなコンピューティングモジュールを含んでもよい。
【0060】
図3は、一実施形態におけるコンピューティングモジュール300の例示的なコンポーネントを示すブロック図である。装置(例えば、VMS150、アイトラッカー140、監視ステーション125、および/またはディスプレイ130)は、1以上のコンピューティングモジュール300を含んでもよい。
図3に示されるように、コンピューティングモジュール300は、バス310、プロセッサ320、メモリ330、および/または通信インターフェース360を含んでもよい。いくつかの実施形態では、コンピューティングモジュール300はまた、入力装置340および/または出力装置350をも含み得る。
【0061】
バス310は、コンピューティングモジュール300のコンポーネントまたは他の装置の間の通信を可能にする経路を含む。プロセッサ320は、命令を解釈して実行する任意のタイプのシングルコアプロセッサ、マルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ、および/または処理ロジック(またはプロセッサ、マイクロプロセッサ、および/または処理ロジックのファミリ)を含んでもよい。プロセッサ320は、特定用途向け集積回路(ASIC)、FPGA、および/または別のタイプの集積回路または処理ロジックを含んでもよい。プロセッサ320は、ハードウェアアクセラレータ(例えば、GPU、GPGPU、Cell、FPGA、ASIC、および/または別のタイプの集積回路または処理ロジック)を含むか、またはそれに結合することができる。
【0062】
メモリ330は、プロセッサ320によって実行される情報および/または命令を格納することができる任意のタイプの動的記憶装置、および/またはプロセッサ320によって使用される情報を格納することができる任意のタイプの不揮発性記憶装置を含んでもよい。例えば、メモリ330は、RAMまたは他のタイプの動的記憶装置、ROM装置または他のタイプの静的記憶装置、磁気および/または光記録メモリ装置およびその対応するドライブ(例えば、ハードディスクドライブ、光学式ドライブなど)および/または取り外し可能な形態のメモリ(例えば、フラッシュメモリ)を含んでもよい。
【0063】
メモリ330は、プロセッサ320によって実行される命令を格納することができる。ソフトウェア命令は、別のコンピュータ可読媒体または別の装置からメモリ330に読み込むことができる。ソフトウェア命令は、プロセッサ320に本明細書に記載のプロセスを実行させることができる。あるいはまた、配線接続された回路(例えば、ロジック)をソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用して、本明細書に記載のプロセスを実行することができる。
【0064】
オペレーティングシステムは、コンピューティングモジュール300のハードウェアおよびソフトウェアリソースを管理するためのソフトウェア命令を含んでもよい。例えば、オペレーティングシステムは、Linux(登録商標)、Windows、OS X、Android、組み込みオペレーティングシステムなどを含んでもよい。特定のコンピューティングモジュール300が内部に見つかった装置に応じて、アプリケーションおよびアプリケーションデータは、ネットワークサービスを提供するか、またはアプリケーションを含んでもよい。
【0065】
通信インターフェース360は、コンピューティングモジュール300が他のコンポーネント、装置、および/またはシステムと通信することを可能にする送信機および/または受信機(例えば、トランシーバ)を含んでもよい。通信インターフェース360は、無線通信(例えば、高周波、赤外線、および/または視覚光学など)、有線通信(例えば、導線、ツイストペアケーブル、同軸ケーブル、伝送ライン、光ファイバケーブル、および/または導波路など)、またはそれらの組み合わせを介して通信することができる。通信インターフェース360は、ベースバンド信号を高周波(RF)信号に変換するトランシーバ、またはその逆のトランシーバを含んでもよく、アンテナアセンブリを含んでもよい。
【0066】
通信インターフェース360は、入力および/または出力ポート、入力および/または出力システム、および/または他の装置へのデータの送信を促進する他の入力および出力コンポーネントを含む論理コンポーネントを含んでもよい。例えば、通信インターフェース360は、有線通信のためのネットワークインターフェースカード(例えば、イーサネットカード)および/または無線通信のための無線ネットワークインターフェース(例えば、WiFi)カードを含んでもよい。通信インターフェース460はまた、ケーブル、Bluetooth(登録商標)無線インターフェース、RFID(radio−frequency identification)インターフェース、NFC(near-field communication)無線インターフェース、および/または1つの形態から別の形態にデータを変換する他のタイプのインターフェースを介した通信のためのユニバーサルシリアルバス(USB)ポートを含んでもよい。
【0067】
いくつかの実装では、コンピューティングモジュール300はまた、入力装置340および出力装置350も含んでもよい。入力装置340は、ユーザがコンピューティングモジュール300に情報を入力することを可能にすることができる。入力装置370は、例えば、キーボード、マウス、ペン、マイクロフォン、リモートコントロール、オーディオ取り込み装置、画像および/またはビデオ取り込み装置、タッチスクリーンディスプレイ、および/または別のタイプの入力装置を含んでもよい。
【0068】
出力装置350は、情報をユーザへ出力することができる。出力装置350は、ディスプレイ、プリンタ、スピーカ、および/または別のタイプの出力装置を含んでもよい。入力装置340および出力装置350は、ユーザがコンピューティングモジュール300によって実行されるアプリケーションとインタラクトすることを可能にすることができる。「ヘッドレス」装置(例えば、配備されたリモートカメラ)の場合、入力および出力は、主として入力装置340および出力装置350ではなく通信インターフェース360を介して行われる。
【0069】
以下で詳細に説明するように、コンピューティングモジュール300は、履歴注視ヒートマップに基づいてビットレート調整に関する特定の動作を実行することができる。コンピューティングモジュール300は、コンピュータ可読媒体(例えば、メモリ330)に含まれるソフトウェア命令を実行するプロセッサ320に応答して、これらの動作を実行することができる。コンピュータ可読媒体は、非一時的メモリデバイスとして定義され得る。メモリデバイスは、単一の物理メモリデバイス内に実装されてもよいし、複数の物理メモリデバイスにわたって分散されてもよい。ソフトウェア命令は、別のコンピュータ可読媒体または別の装置からメモリ330に読み込まれてもよい。メモリ330に含まれるソフトウェア命令は、プロセッサ320に本明細書に記載のプロセスを実行させることができる。あるいはまた、本明細書に記載のプロセスを実施するためにソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、配線接続された回路を使用することができる。したがって、本明細書に記載の実装は、ハードウェア回路およびソフトウェアの特定の組み合わせに限定されない。
【0070】
コンピューティングモジュール300は、データの受信、送信、および/または処理を支援する他のコンポーネント(図示せず)を含んでもよい。さらに、コンピューティングモジュール300内のコンポーネントの他の構成も可能である。他の実装では、コンピューティングモジュール300は、
図3で示されたものよりも少ないコンポーネント、異なるコンポーネント、追加のコンポーネント、または異なる配置のコンポーネントを含んでもよい。追加的または代替的に、コンピューティングモジュール300の1以上のコンポーネントは、コンピューティングモジュール300の1以上の他のコンポーネントによって実行されるものとして説明された1以上のタスクを実行することができる。
【0071】
図4は、一実施形態においてアイトラッカー140を有するディスプレイ130を見ているオペレータ402の例示的な環境400を示す。ディスプレイ130は、オペレータ402に情報を表示するための任意のタイプのディスプレイを含んでもよい。オペレータ402は、ディスプレイ130を見て、監視ステーション125上で動作しているアプリケーションを介してVMS150とインタラクトすることができる。例えば、オペレータ402は、エリア106のビデオを見ることができる。
【0072】
アイトラッカー140は、監視ステーション125がオペレータ402の目がどこに集中しているかを判定することを可能にするセンサ(例えば、カメラ)を含む。
図4では、例えば、オペレータ402はディスプレイ130の前に座っており、アイトラッカー140内のセンサがオペレータ402の目を検出する。例えば、アイトラッカー140は、ディスプレイ130上の位置(例えば、1以上のピクセルに関連付けられたピクセル値)として表すことができる注視点410を決定することができる。オペレータとディスプレイ130の相対的な位置に基づいて、オペレータ402の中心窩視野に対応する中心窩視野エリア420(または「エリア420」)を見積もることができる。中心窩視野は、目の詳細な視覚知覚に対応し、およそ1〜2球面度に対応する。したがって、ディスプレイ130上のエリア420は計算され、完全な視力を有するオペレータ402の視野の一部に対応すると理解することができる。
【0073】
別の一実施形態では、中心窩視野エリア420は、特定のオペレータ402に対して設定手順中に実験的に決定することができる。中心窩視野エリア420は、オペレータ402の周辺視野に対応する、中心窩視野エリア420の外側の周辺視野エリア430とは対照的である。注視点410は、エリア420のほぼ中央にあり、注視点410からオペレータ402の目までの視線に対応する。一実施形態では、注視点410を特定する情報は、VMS150に伝達することができる。
【0074】
図5Aは、オペレータ402の視点からのディスプレイ130を示している。
図5Aに示されるように、ディスプレイ130は、注視点410、中心窩視野エリア420、および周辺視野エリア430を含む。ディスプレイ130はまた、ビデオフレーム520を含み、ビデオフレーム520内においてビデオストリームがオペレータ402に提示される。この例では、フレーム520は、エリア106のカメラ110からのビデオストリームを示し、これは、ドアと、移動しているように見える個人とをたまたま含んでいる。オペレータ402の中心窩視野エリア420は、個人を包含し、注視点410は個人の顔面上に直接存在する。他方、フレーム520に表示されるドアは、オペレータ402の周辺視野エリア430に現れる。
【0075】
いくつかの実装では、注視ヒートマップは、注視点410に基づいて生成することができる。他の実装では、注視ヒートマップは、中心窩視野エリア420に基づいて生成することができる。さらに他の実装では、注視ヒートマップは、注視点410のサイズと中心窩視野エリア420のサイズとの間のどこかのサイズのエリアに基づいて生成することができる。さらに他の実装では、注視ヒートマップは、中心窩視野エリア420よりも大きく中心に揃ったエリアに基づいて生成することができる。
【0076】
図5Bはまた、オペレータ402の視点からのディスプレイ130を示している。しかしながら、
図5Aとは対照的に、
図5Bのディスプレイ130は、多数のフレーム520−1〜520−N(個別に「フレーム520」、または複数の「フレーム520」)を示している。各フレーム520−1〜520−Nは、異なるビデオストリームを提示することができるので、オペレータ402は複数のエリアを監視することができる。異なるストリームは、異なるカメラ110−1〜110−Mによって生成され得る。他の実施形態では、各フレーム520−1〜520−Nは、オペレータの前に配置された異なるディスプレイ130(例えば、壁面上、オペレータの前で円弧状、等)に表示することができる。代替的または追加的に、各フレーム520−1〜520−Nは、共通のカメラ110−xによって生成された異なるストリームを表示することができる。例えば、カメラ110−xは、「魚眼」レンズを使用し、拡張された角度エリアからビデオを取り込むことができる。ビデオは、魚眼レンズによって導入された歪みを低減して、フレーム520−1から520−Nに別々に提示することができる異なるエリアに対応する別々のビデオストリームに、拡張された角度エリアを分離するように処理することができる。
図5Aと同様に、
図5Bのディスプレイ130は、注視点410、中心窩視野エリア420、および周辺視野エリア430を含む。
【0077】
この例では、フレーム520−1は、エリア106−1のカメラ110−1からのビデオストリームを示すことができ、ビデオフレーム520−2は、エリア106−2のカメラ110−2からのビデオストリームを示すことができる。
図5B内のオペレータ402の中心窩視野エリア420は、フレーム520−1の大部分を包含し、注視点410は個人の顔に近い。フレーム520に表示されるドアはまた、中心窩視野エリア420にある。他方、他のフレーム520−2〜520−Nは、オペレータ402の周辺視野エリア430にある。注視点410および/または中心窩視野エリア420の位置は、他のフレーム520とは異なる可能性のある後続の処理のために特定のフレーム520−xを選択および/または指定するために使用することができる。例えば、
図5Bに示すように、注視点410を使用して、そのフレーム520−1がオペレータにとって関心のあるフレームであることを示すために使用することができる。したがって、ビデオ監視システムは、フレーム520−1におけるビデオストリームの提示を改善するために、フレーム520−1により多くのリソース(例えば、帯域幅および/または処理リソース)を割り当てることができ、オペレータの焦点(例えば、周辺視覚内)ではないフレームに対応する他のストリームに割り当てられたリソースを低減させることができる。
【0078】
図6は、カメラ110、ディスプレイ130、およびVMS150の機能的コンポーネントの図である。カメラ110の機能的コンポーネントは、例えば、メモリ245に格納された命令を実行するコントローラ240を介して実装することができる。あるいはまた、カメラ110に含まれる一部または全部の機能的コンポーネントは、配線接続された回路を介して実装することができる。ディスプレイ130および/またはVMS150の機能的コンポーネントは、例えば、メモリ330に格納された命令を実行するプロセッサ320を介して実装することができる。あるいはまた、ディスプレイ130および/またはVMS150に含まれる一部または全部の機能的コンポーネントは、配線接続された回路を介して実装することができる。
【0079】
図6に示されるように、カメラ110は、センサアレイマネージャ610、画像プロセッサ620、エンコーダ630、およびクライアントインターフェース640を含んでもよく、監視ステーション125は、デコーダ650およびディスプレイインターフェース660を含んでもよく、VMS150は、アイトラッカーインターフェース670、リソースマネージャ680、カメラデータベース(DB)685、およびカメラインターフェース690を含んでもよい。
【0080】
カメラ110からのビデオストリームは、ディスプレイ130への以下の処理経路に従うことができる。センサアレイマネージャ610は、センサアレイ220にビデオストリームの画像のセットを取り込むように命令する。画像プロセッサ620は、取り込まれた画像に画像処理(例えば、ノイズ低減動作および/またはスケーリング動作)を実行することができる。次に、エンコーダ630は、コーデック(例えば、MPEG−4など)を使用して画像を圧縮することができる。次に、クライアントインターフェース640は、符号化された画像をコンテナ(例えば、MPEG−4Part14(MP4)など)にカプセル化し、ネットワーク120を介してデータユニットを介して監視ステーション125にコンテナ化された符号化された画像を送信してディスプレイ130に表示することができる。デコーダ650は、コンテナから符号化された画像を取り出すことができ、画像を復号し、復号された画像をディスプレイインターフェース660に提供することができる。ディスプレイインターフェース660は、復号された画像をバッファ内に格納することができ、ディスプレイ130上にビデオストリームとしてバッファからの復号された画像をストリーミングすることができる。
【0081】
リソースマネージャ680は、環境100に関連付けられたリソースを管理することができる。例えば、リソースマネージャ680は、カメラ110からネットワーク120を介して監視ステーション125および関連付けられたディスプレイ130へのデータの送信に関連するネットワークリソース、および/またはカメラ110、監視ステーション125、および/またはディスプレイ130に関連するプロセッサリソースおよびメモリリソースを管理することができる。リソースマネージャ680は、履歴注視ヒートマップに基づいて決定された低関心エリアに対して、カメラ110からディスプレイ130へのビデオストリームに関連するビットレートを低減させるようにカメラ110に命令することができる。アイトラッカーインターフェース670は、アイトラッカー140と通信するように構成されてもよい。例えば、アイトラッカーインターフェース670は、アイトラッカー140に関連する特定のアプリケーションプログラミングインターフェース(API)を使用してアイトラッカー140からの特定のビデオストリームに関連付けられた注視エリアを特定する情報を得ることができる。
【0082】
リソースマネージャ680は、アイトラッカーインターフェース670を介してアイトラッカー140から注視情報を収集することができ、ある時間間隔にわたって、収集された注視情報に基づいて履歴注視ヒートマップを生成することができる。リソースマネージャ580は、生成された履歴注視ヒートマップをカメラDB685に格納することができる。リソースマネージャ580は、生成された履歴注視ヒートマップに基づいてカメラ110に対して1以上の低関心エリアおよび/または1以上の高関心エリアを決定することができる。次に、リソースマネージャ580は、1以上の低関心エリアに対してビットレートを低減させ、および/または1以上の高関心エリアに対してビットレートを増加させるようにカメラに命令することができる。
【0083】
カメラDB685は、特定のカメラ110に関する情報を格納することができる。カメラDB685に格納され得る例示的な情報については、
図7Aを参照して後述する。カメラインターフェース690は、カメラ110と通信するように構成されてもよく、カメラ110に関連する特定のAPIを介してリソースマネージャ680から命令を送信することができる。
【0084】
センサアレイマネージャ610は、1以上のセンサアレイパラメータを格納、管理、および/または適用することができる。例えば、センサアレイマネージャ610は、センサアレイ220内の特定のセンサをオンにするべきかオフにするべきかを管理するパラメータ、特定のセンサ用のサンプリングレート、特定のセンサ用の感度係数、および/または他のタイプのセンサパラメータを格納することができる。さらに、センサアレイマネージャ610は、センサアレイ220によって取り込まれた画像のタイプを決定するために、センサアレイ220のための1以上の設定を格納することができる。例えば、第1の設定は通常の画像に対応することができ、第2の設定は、広角またはパノラマ画像に対応することができ、第3の設定は、低い照明設定に対応することができるなどである。センサアレイマネージャ610は、VMS150によって決定された注視ヒートマップに基づいて、センサアレイ220の低関心エリアのビットレートを調整するために、VMS150からの命令を受信して、格納されたパラメータのうちの1以上を調整することができる。
【0085】
画像プロセッサ620は、1以上の画像処理パラメータを格納、管理、および/または適用することができる。例えば、画像プロセッサ620は、ノイズ低減プロセス(例えば、ローパスフィルタ)に関連するパラメータ、スケーリング処理に関連するパラメータ、および/またはビデオストリームの領域に関連付けられたビットレートを変化させるのに使用することができる他のタイプの画像処理パラメータを格納することができる。画像プロセッサ620は、VMS150によって決定された注視ヒートマップに基づいてビデオストリームの低関心エリアにおけるビットレートを調整するために、格納されたパラメータのうちの1以上を調整するためのVMS150からの命令を受信することができる。
【0086】
エンコーダ630は、イントラフレーム(フレーム内)符号化パラメータおよびインターフレーム(フレーム間)符号化パラメータを含む1以上の符号化パラメータを格納、管理、および/または適用することができる。例えば、エンコーダ630は、ビデオストリームの特定の領域および/またはオブジェクトに対する量子化パラメータ(QP)を格納し、離散コサイン変換(DCT)のための係数のセット、予測誤差パラメータの平均絶対差(MAD)、および/または他の符号化パラメータを格納することができる。エンコーダ630は、VMS150によって決定された注視ヒートマップに基づいてビデオストリームの低関心エリアにおけるビットレートを調整するために、格納された符号化パラメータのうちの1以上を調整するためのVMS150からの命令を受信することができる。
【0087】
クライアントインターフェース640は、1以上の画像送信パラメータを格納、管理、および/または適用することができる。例えば、クライアントインターフェース640は、QoS(Quality of Service)パラメータを格納することができる。クライアントインターフェース640は、VMS150によって決定された注視ヒートマップに基づいてビデオストリームの低関心エリアにおけるビットレートを調整するために、格納された符号化パラメータの1以上を調整するためのVMS150からの命令を受け取ることができる。
【0088】
図6は、カメラ110、ディスプレイ130、およびVMS150の例示的な機能的コンポーネントを示しているが、他の実装では、カメラ110、ディスプレイ130、またはVMS150は、
図6に示されたものよりも少ない機能的コンポーネント、異なる機能的コンポーネント、異なる配置の機能的コンポーネント、または追加の機能的コンポーネントを含んでもよい。また、カメラ110、ディスプレイ130、およびVMS150のコンポーネント(またはコンポーネントの任意のグループ)のうちの任意の1つは、カメラ110、ディスプレイ130、およびVMS150の1以上の他の機能的コンポーネントによって実行されるものとして説明された機能を実行することができる。
【0089】
図7Aは、
図6のカメラデータベースの例示的コンポーネントの図である。
図7Aに示すように、カメラDB685は、1以上のカメラレコード701を格納することができる。各カメラレコード701は、特定のカメラ110に関連する情報を格納することができる。カメラレコード701は、カメラ識別子(ID)フィールド710、注視ヒートマップ720、低関心エリアフィールド730、およびビットレート低減フィールド740を含んでもよい。
【0090】
カメラIDフィールド710は、特定のカメラ110に関連付けられた1以上のIDを格納することができる。例えば、カメラIDは、特定のカメラ110に対するメディアアクセスコントロール(MAC)アドレス、特定のカメラ110に対するインターネットプロトコル(IP)アドレス、VMS150によって特定のカメラ110に割り当てられた名前、および/または別のタイプのIDを格納することができる。さらに、カメラIDフィールド710は、特定のカメラ110に対する製造・モデル情報および/または特定のカメラ110にインストールされたソフトウェアバージョンを格納することができる。また、カメラIDフィールド710は、VMS150が特定のカメラ110との安全な接続を確立することを可能にする、特定のカメラ110に対する認証情報を含んでもよい。
【0091】
注視ヒートマップ720は、特定のカメラ110に対する注視ヒートマップ情報を格納することができる。例えば、ビデオストリームの各位置(例えば、ピクセル、ピクセルのセットなど)は、注視情報を示すデータ点のセットと関連付けられ得る。注視ヒートマップ720内に格納され得る例示的な情報については、
図7Bを参照して後述する。
【0092】
低関心エリアフィールド730は、特定のカメラ110に対して1以上の低関心エリアを特定する情報を格納することができる。さらに、1以上の高関心エリアもまた、低関心エリアフィールド730内で特定することができる。また、低関心エリアフィールド730は、特定の時刻、特定の曜日、特定のカメラ110に対する特定のパン、チルト、ズーム、回転、および/または画像タイプの設定、特定のイベントタイプ、特定のオペレータ、および/または他のタイプのパラメータに対して、1以上の低関心エリアを特定することができる。各低関心エリアは、特定のカメラ110からのビデオストリーム内のピクセルのセットとして特定され得る。
【0093】
ビットレート低減フィールド740は、特定の状況において適用されるべき1以上のビットレート低減係数を特定することができる。また、ビットレート低減フィールド740は、特定のカメラ110に関連付けられたビデオストリームに現在適用されている1以上のビットレート低減係数を特定することができる。例えば、ビットレート低減フィールド740は、1以上のセンサアレイマネージャ610パラメータ、1以上の画像プロセッサ620パラメータ、1以上のエンコーダパラメータ、および/または1以上のクライアントインターフェース640パラメータを特定することができる。エンコーダパラメータは、ビットレートに影響を与えるように調整することができる異なる規格の符号化プロファイルを含んでもよい。例えば、H.264ビデオ符号化規格を使用する場合、選択可能な符号化プロファイルには、Baseline,Extended,Main,High,High 10、High 4:2:2、およびHigh 4:4:4 Predictiveが含まれる。追加的または代替的に、より低いレベルの符号化パラメータを調整して、ビットレートをさらに調整してもよい。例えば、MPEG符号化規格に対して、量子化スケーリング行列を選択して、符号化されたイントラフレームのビットレートを低減させるために量子化を増加させることができる。さらに、変化閾値レベルを調整して、符号化されたインターフレームに対する圧縮率を変更してもよい。例えば、Pフレームおよび/またはBフレームを符号化するときに、動きのための閾値を上げることができ、こうして符号化されたビデオストリームに対してビットレートを下げるより少ない変化が符号化される。
【0094】
図7Aは、カメラDB685の例示的なコンポーネントを示しているが、他の実装では、カメラDB685は、
図7Aに示されるものよりも少ないコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、または追加のコンポーネントを格納することができる。
【0095】
図7Bは、注視ヒートマップ720の例示的なコンポーネントを示している。
図7Bに示すように、注視ヒートマップ720は、一組の位置レコード750を含んでもよい。各位置レコード750は、カメラレコード701に関連するカメラ110のビデオストリーム内の特定の位置についての注視情報および追加情報を格納することができる。位置レコード750は、位置フィールド752、値フィールド754、および1以上の注視情報レコード760を含んでもよい。
【0096】
位置フィールド752は、特定の位置を特定することができる。例えば、位置フィールド752は、カメラ110からのビデオフレームの、ピクセル、サブピクセル、ピクセルの組、エリア、および/または別のサブユニットを特定することができる。値フィールド754は、特定の位置に関連付けられた1以上の注視ヒートマップの値を格納することができる。例えば、値フィールド754は、多数回の注視点410の正規化された値、または特定の時間間隔の特定の位置に含まれる注視情報の他の尺度(例えば、中心窩視野エリア420、注視点410の周りの指定された半径を有するエリアなど)を格納することができる。特定の時間間隔が進行中である場合、値フィールド754は、新たな注視情報がアイトラッカー140から受信されると、更新され続けることができる。
【0097】
さらに、値フィールド754は、追加の値を格納することができる。例えば、値フィールド754は、パラメータ(例えば、時刻、カメラ設定など)に基づいてフィルタリングされた注視情報レコード760のサブセットに対応する値を格納することができる。さらに、値フィールド754は、低関心エリアを決定するための1以上の閾値、および/または高関心エリアを決定するための1以上の閾値を格納することができる。例えば、異なる閾値は、カメラ110からのビデオストリームに対する帯域幅および/またはプロセッサ負荷の所望の低減に基づいて設定することができる。帯域幅および/またはプロセッサ負荷のより高い低減が選択される場合、より高い閾値を選択することができ、これは、より多くの位置が注視ヒートマップ720からフィルタリングされる結果をもたらす可能性があり、より高い低関心エリアをもたらす。
【0098】
各注視情報レコード760は、特定の位置に関連付けられた特定の注視情報データ点に関する情報を格納することができる。注視情報レコード760は、注視点フィールド762、タイムスタンプフィールド764、カメラ設定フィールド766、オペレータフィールド768、およびイベントタイプフィールド770を含んでもよい。
【0099】
注視点フィールド762は、特定の注視点データ点を特定することができる。例えば、注視点フィールド762は、アイトラッカー140から受信した注視情報データを格納することができる。タイムスタンプフィールド764は、特定の注視点データ点のタイムスタンプ(例えば、時間および日付)を含んでもよい。カメラ設定フィールド766は、特定の注視点データ点に関連付けられた1以上のカメラ設定を特定することができる。カメラ設定情報は、ディスプレイ130に関連するコンピュータ装置から、および/またはカメラインターフェース690を介してカメラ110から受信することができる。カメラ設定情報は、パン設定、チルト設定、回転設定、および/またはズーム設定を特定する情報を含んでもよい。さらに、カメラ設定情報は、特定の画像タイプ設定(例えば、標準角設定、広角設定、魚眼レンズ設定、カラーフィルタ設定、光源設定、センサアレイ設定(例えば、可視光、赤外光など)、および/または別のタイプの画像タイプ設定)を特定することができる。
【0100】
オペレータフィールド768は、注視点データ点に関連付けられた特定のオペレータを特定することができる。例えば、異なるオペレータは、ビデオフレームの異なる部分を見ることを好む場合がある。オペレータは、例えば、ディスプレイ130に関連付けられたコンピュータ装置から得られたログイン情報に基づいて特定することができる。イベントタイプフィールド770は、特定の注視点データ点に関連付けられたイベントタイプを特定することができる。例えば、VMS150は、特定の注視点データ点が取得された時点で特定のセンサ(例えば、モーションセンサ、ドアセンサ、火災警報センサ、マイクロフォン、人数計測センサ、ガレージ内の車両センサ、および/または別のタイプのセンサ)がカメラ110に接続されて起動されたというデータを取得することができる。さらに、VMS150は、監視エリア106に関連付けられたカレンダー情報(例えば、特定のエリアのためにスケジュールされたイベント(例えば、会議のために予約された会議室、スケジュールされている保守、スケジュールされている火災警報など))を受信するように構成されてもよい。
【0101】
図7Bは、注視ヒートマップ720の例示的なコンポーネントを示しているが、他の実装では、注視ヒートマップ720は、
図7Bに示されるものよりも少ないコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、または追加のコンポーネントを格納することができる。
【0102】
図8は、本明細書に記載される一実装に係る注視エリアに基づいてビットレートを制御するプロセスのフローチャートである。1つの実装では、
図8のプロセスは、VMS150によって実行することができる。他の実装では、
図8のプロセスの一部または全部は、VMS150とは別個の、および/またはVMS150を含む別の装置または装置のグループ(例えば、カメラ110および/または監視ステーション125)によって実行され得る。
【0103】
図8のプロセスは、カメラからビデオストリームを受信すること(ブロック810)と、ビデオストリームをディスプレイ上に表示すること(ブロック820)と、を含んでもよい。例えば、オペレータは、監視ステーション125および/またはディスプレイ130に関連付けられたコンピュータ装置にログインすることができ、1以上のカメラ110を構成するためにVMS150にログインすることができる。VMS150は、監視エリア106のビデオストリームをディスプレイ130に提供するようにカメラ110を構成してもよく、ディスプレイ130は、カメラ110からビデオストリームデータを受信し続け、ビデオストリームデータを表示し続けることができる。
【0104】
アイトラッキングセンサを介してディスプレイを見ているオペレータに対して、注視情報が取得され得る(ブロック830)。例えば、アイトラッカー140は、注視点410および/または中心窩視野エリア420を決定するためにオペレータの目を監視し、決定された注視点410および/または中心窩視野エリア420に基づいて注視エリアを決定することができる。決定された注視エリアを特定する情報は、VMS150のリソースマネージャ680に提供され得る。あるいはまた、アイトラッカー140からの生データがVMS150に提供されてもよく、VMS150は生データに基づいて注視エリアを決定してもよい。
【0105】
取得された注視情報に基づいて、ビデオストリームのための履歴注視ヒートマップが生成され得る(ブロック840)。例えば、VMS150は、ビデオストリームの各位置に対して注視情報を追加することができ、オペレータの注視点410(および/または中心窩視野エリア420)が何回またはどれくらいの頻度でその位置に出現したかを示す各位置の値を生成することができる。VMS150は、生成された値を使用して、ビデオストリームに対して低関心(および/または高関心)エリアを特定することができる。
【0106】
いくつかの実装では、VMS150は、オペレータまたは管理者が見るために利用可能とすることができる注視ヒートマップのグラフィック表示を生成することができる。VMS150は、グラフィック表示内において注視ヒートマップ内の各値に陰影または色を割り当てることができる。例えば、オペレータの注視点410と頻繁に関連付けられた位置に対応する高い値に暗い陰影または色を割り当てることができ、オペレータの注視点410とより低い頻度で関連付けられた位置に対応する低い値に明るい陰影または色を割り当てることができる。
【0107】
ビデオストリームに対する低関心エリアは、生成された履歴注視ヒートマップに基づいて決定することができる(ブロック850)。例えば、VMS150は、履歴注視ヒートマップを分析して、履歴注視の出現頻度が低いエリアを特定することができる。低関心エリアの閾値が、ビデオストリーム内の特定の位置(例えば、ピクセルまたはピクセルのセット)に対して設定され、その位置が低関心エリアの要件を満たすかどうかを決定することができる。一例として、オペレータが単位時間当たり(例えば、1時間当たり)に閾値回数未満の位置を見る場合、その位置は低関心エリアとして指定することができる。別の一例として、オペレータが、ビデオストリームを見ている総時間量のうちの閾値パーセンテージ未満の時間、その位置を見る場合、その位置は低関心エリアとして指定することができる。同様の手順を使用して、高関心エリアを特定することができる。例えば、オペレータが、単位時間当たり(例えば、1時間当たり)に閾値回数以上の位置を見る場合、および/またはオペレータが、ビデオストリームを見ている総時間量のうちの閾値パーセンテージを超える時間、その位置を見る場合、その位置を高関心エリアとして指定することができる。
【0108】
カメラDB685の注視ヒートマップ720に関して上述したように、注視ヒートマップ内の各位置は、各注視情報データ点に対して追加情報(例えば、時間および日付情報、カメラ設定情報、オペレータ情報、および/またはイベントタイプ情報)を含んでもよい。追加情報は、注視ヒートマップに含まれる任意のパラメータに関して注視ヒートマップを精緻化するために使用することができる。精緻化された注視ヒートマップを使用して、特定のパラメータに関して低関心(および/または高関心)エリアを生成することができる。
【0109】
したがって、異なる低関心エリア(および/または高関心エリア)が、履歴注視ヒートマップに対する異なるフィルタリング基準に対して選択されてもよい。例えば、異なる時刻、異なる曜日、異なるカメラ設定、異なるオペレータ、および/または異なるイベントタイプに対して異なる低関心エリアが選択され得る。
【0110】
さらに、いくつかの実装では、精緻化された注視ヒートマップのグラフィック表示を生成することができ、オペレータまたは管理者が見るために利用可能にすることができる。したがって、例えば、特定の時刻に対する注視ヒートマップのグラフィック表示が生成され得る。
【0111】
カメラは、低関心エリアにおけるビデオストリームのビットレートを減少させるように命令されてもよい(ブロック860)。例えば、VMS150は、特定のカメラ110に対するビットレート低減フィールド740から、1以上のビットレート低減係数(例えば、センサアレイビットレート低減係数、画像処理ビットレート低減係数、符号化ビットレート低減係数、および/または画像送信ビットレート低減係数)を選択することができる。一例として、VMS150は、低関心エリアに関連付けられたセンサアレイ220内のセンサのサブセットのサンプリングレートを調整するように、低関心エリアをダウンサンプリングするように(例えば、解像度を下げるように)、低関心エリアにおいてノイズ低減プロセスを増加させるように、低関心エリアにおいて符号化圧縮パラメータを増加させるように、および/または低関心エリアにおいてビットレートを低減させることができる別のパラメータを調整するように選択することができる。
【0112】
図9A〜
図9Dは、本明細書に記載の1以上の実装に係る例示的な注視ヒートマップシナリオの図である。
図9Aに示すように、ディスプレイ130上のビデオフレームセット901は、4つの異なるカメラ110からのビデオストリームを含んでもよい。フレーム910は、オフィスビルの入口ロビーを監視するカメラからのビデオストリームを表示する。ロビーは、入り口のドア、前庭、および廊下を含んでいる。フレーム912は、ドアまでの通路を備えた駐車場を監視するカメラからのビデオストリームを表示する。フレーム914は、小個室(キュービクル)を有するオフィススイートを監視するカメラからのビデオストリームを表示する。フレーム916は、路地に開口する裏口を監視するカメラからのビデオストリームを表示する。
【0113】
図9Bは、ビデオフレームセット901に対して生成された注視ヒートマップ902のセットを示す。注視ヒートマップ902のセットは、注視ヒートマップ720に記憶された情報のグラフィック表示に対応することができる。注視ヒートマップ720の特定の位置752での値が閾値以下である場合、その位置は、グラフィック表示内で、または低関心エリアを決定する目的で、注視ヒートマップ720に含まれないものとして指定することができる。注視ヒートマップ720のグラフィック表示は、オペレータまたは管理者に対して、または要求に基づいて生成され、表示することができる。また、特定された低関心エリアが、注視ヒートマップとともに表示されてもよい。いくつかの実装では、ユーザまたはオペレータは、注視ヒートマップ720のグラフィック表示を表示するグラフィカルユーザインターフェースを介して、1以上の低関心エリアを手動で選択することができ、または特定された低関心エリアを手動で調整することができる。
【0114】
注視ヒートマップ920は、フレーム910に対応する。注視ヒートマップ920は、オペレータがメインドアと、人々がメインドアから前庭および側部廊下へと歩く通路とを見ることに大部分の時間を費やしていることを示している。フレーム910は、これらのエリア内で歩いている、または立っている人はほとんどいないので、オペレータが比較的低い時間量を見るのに費やしているフレーム910のエリアに対応する低関心エリア922および低関心エリア924を含む。
【0115】
注視ヒートマップ930は、フレーム912に対応する。注視ヒートマップ930は、オペレータが建物の入り口および駐車場の歩道を見るのに大部分の時間を費やしていることを示している。フレーム912は、低関心エリア932、低関心エリア934、および低関心エリア936を含み、これらはオペレータが比較的低い時間量を見るのに費やしているフレーム912のエリア(例えば、歩道の隣の芝生)に対応する。
【0116】
注視ヒートマップ940は、フレーム914に対応する。注視ヒートマップ940は、オペレータが小個室および小個室間の通路を見るのに大部分の時間を費やしていることを示している。フレーム914は、低関心エリア942、低関心エリア944、および低関心エリア946を含み、これらは、オペレータがあまり頻繁には見ないフレーム914のエリア(例えば、小個室の上の壁または前景内で小個室を分離する壁)に対応する。
【0117】
注視ヒートマップ950は、フレーム916に対応する。注視ヒートマップ950は、オペレータが、人々が喫煙するために出ていく階段および近くのエリア、および近くに歩いて出かける際に時々通る裏口に通じる路地を見るのに時間の大部分を費やしていることを示している。フレーム916は、あまり多くの歩行者交通を見ないので、オペレータが比較的低い時間量を見るのに費やしている低関心エリア952を含む。
【0118】
図9Cおよび
図9Dは、異なる時刻に対する注視ヒートマップ903および904のセットを示す。
図9Cに示すように、注視ヒートマップ903は、フレーム910、912、914、および916のビデオストリームを提供するカメラ110に関連付けられた建物に従業員が入る朝のラッシュアワー時間に対応することができる。路地に開口する裏口を監視しているカメラからのビデオストリームに対するフレーム916は、朝の時間の間は、この時間中にこのエリアを頻繁に訪れる人はいないので、オペレータからの注目を集める可能性はない。したがって、フレーム916の全体を低関心エリア954として指定することができ、フレーム916に対するビデオストリーム全体のビットレートをこれらの時間中に低減させることができる。
【0119】
図9Dに示されるように、注視ヒートマップ904は、従業員がフレーム910、912、914、916のビデオストリームを提供するカメラ110に関連付けられた建物を離れている夜間に対応することができる。フレーム910および914は、この時間中にオペレータからの注目をあまり集めないかもしれない。例えば、オペレータは、ロビーへのフロントドアを監視し続けてもよいが、夜間に人は移動しないので、ロビーの前庭を監視しなくてもよい。したがって、低関心エリア922および924は、夜間に低関心エリア928に拡大することができる。同様に、オペレータは、フレーム914内の小個室を観察するのに時間をあまり費やさない可能性があり、夜間に低関心エリア942、944、および946を低関心エリア948および949に変更することができる。
【0120】
この出願は、本特許出願と同日に出願された以下の特許出願を参照として本明細書に援用する。2016年12月30日に出願された「注視制御されたビットレート(Gaze Controlled Bit Rate)」と題された米国特許出願第15/395,856号(代理人整理番号P160069/US(0090−0022)、2016年12月30日に出願された「ビデオ管理システムにおける注視に基づく警報マスキング(Alarm Masking Based on Gaze in Video Management System)」と題された米国特許出願第15/395,403号(代理人整理番号P160191(0090−0023))、および2016年12月30日に出願された「注視に基づくブロックレベルフレームレート制御(Block Level Frame Rate Control Based on Gaze)」と題された米国特許出願第15/395,790号(代理人整理番号P160193(0090−0024))。
【0121】
以上、様々な好ましい実施形態について、添付図面を参照して説明してきた。しかしながら、特許請求の範囲に記載された本発明のより広い範囲から逸脱することなく、様々な修正および変更を行うことができ、追加の実施形態が実施可能であることは明らかであろう。したがって、本明細書および図面は、限定的ではなく例示的な意味で考慮されるべきである。
【0122】
例えば、
図8に関して一連のブロックを説明してきたが、ブロックの順序は、他の実装で変更することができる。また、依存していないブロックおよび/または信号フローは、並行して実行することができる。
【0123】
上述したようなシステムおよび/または方法は、図に示す実装において、ソフトウェア、ファームウェア、およびハードウェアの多くの異なる形態で実施することができることは明らかであろう。これらのシステムおよび方法を実施するために使用される実際のソフトウェアコードまたは特殊化された制御ハードウェアは、本実施形態を限定するものではない。したがって、システムおよび方法の動作および挙動は、特定のソフトウェアコードを参照することなく説明された。すなわち、ソフトウェアおよび制御ハードウェアは、本明細書の記載に基づいてシステムおよび方法を実施するように設計可能であることが理解される。
【0124】
さらに、上述の特定の部分は、1以上の機能を実行するコンポーネントとして実装されてもよい。本明細書で使用されるコンポーネントは、ハードウェア(例えば、プロセッサ、ASIC、またはFPGA)またはハードウェアとソフトウェアの組み合わせ(例えば、ソフトウェアを実行するプロセッサ)を含んでもよい。本明細書で使用される「例示的」という用語は、「例示のための一例として」を意味する。
【0125】
本明細書中で使用される場合、用語「含む(comprises)」および「含む(comprising)」は、記載された構成、整数、工程、またはコンポーネントの存在を特定するものと解釈されるが、1以上の他の構成、整数、工程、コンポーネント、またはそれらのグループの存在または追加を除外しない。
【0126】
本明細書で使用される用語「ロジック」は、1以上のメモリデバイス内に格納された命令を実行するように構成された1以上のプロセッサの組み合わせを指すことができる、ハードウェア回路を指すことができる、および/またはそれらの組み合わせを指すことができる。さらに、ロジックは、単一のデバイス内に含まれることができる、または複数の(場合によっては遠隔の)デバイスに分散させることができる。
【0127】
本発明を説明および定義する目的で、本明細書では、「実質的に」という用語は、定量的な比較、値、測定値、または他の表現に起因する可能性のある不確実性の固有の程度を表すために利用される。「実質的に」という用語はまた、本明細書では、定量的表現が、問題の主題の基本機能に変化をもたらすことなく、記載された基準から変動する程度を表すためにも利用される。
【0128】
本出願で使用されている要素、動作、または命令は、本実施形態にとって重大であるまたは必須であるとは、そのように明示的に記載されていない限り、解釈されるべきではない。また、本明細書で使用する場合、冠詞「a」は、1以上の項目を含むことを意図している。さらに、「に基づいて」というフレーズは、特に断りのない限り、「少なくとも部分的に基づいて」を意味することを意図している。