(58)【調査した分野】(Int.Cl.,DB名)
前記複数の異なるビットレート低減係数に基づいて前記注視エリアの外側の前記ビデオストリームのビットレートを減少させるように前記カメラに命令するとき、前記プロセッサは、
前記注視エリアの外側の前記ビデオストリームのエリアに関連付けられたセンサ用のサンプリングレートを低減させるように前記カメラに命令するように、または、
前記ビデオストリームを符号化する前に、前記注視エリアの外側の前記ビデオストリームのエリアに対して解像度を低下させるように前記カメラに命令するように、さらに構成される請求項11に記載のコンピュータ装置。
前記複数の異なるビットレート低減係数に基づいて前記注視エリアの外側の前記ビデオストリームのビットレートを減少させるように前記カメラに命令するとき、前記プロセッサは、
前記ビデオストリームを符号化する前に前記注視エリアの外側の前記ビデオストリームのエリアに対してノイズ低減プロセスを増加させるように前記カメラに命令するように、さらに構成される請求項11に記載のコンピュータ装置。
前記複数の異なるビットレート低減係数に基づいて前記注視エリアの外側の前記ビデオストリームのビットレートを減少させるように前記カメラに命令するとき、前記プロセッサは、
前記注視エリアの外側の前記ビデオストリームのエリアに関連付けられた符号化処理ユニットの圧縮パラメータ値を増加させるように前記カメラに命令するように、さらに構成される請求項11に記載のコンピュータ装置。
【図面の簡単な説明】
【0023】
【
図1】本明細書に記載の一実装に係るアイトラッキングを含む例示的な環境を示すブロック図である。
【
図2】本明細書に記載の一実装に係るカメラの例示的なコンポーネントを示すブロック図である。
【
図3】本明細書に記載の一実装に係るコンピューティングモジュールの例示的なコンポーネントを示すブロック図である。
【
図4】オペレータが、本明細書に記載の一実装に係るアイトラッカーを有するディスプレイを見る環境を示す。
【
図5A】本明細書に記載の1以上の実装に係るオペレータの観点からの表示を示す。
【
図5B】本明細書に記載の1以上の実装に係るオペレータの観点からの表示を示す。
【
図6】
図1のコンポーネントのうちのいくつかの機能的コンポーネントの図である。
【
図7】
図6のカメラデータベースの例示的なコンポーネントの図である。
【
図8】本明細書に記載の一実装に係る注視エリアに基づいてビットレートを制御するプロセスのフローチャートである。
【
図9A】本明細書に記載の1以上の実装に係る例示的なビットレート低減シナリオの図である。
【
図9B】本明細書に記載の1以上の実装に係る例示的なビットレート低減シナリオの図である。
【
図9C】本明細書に記載の1以上の実装に係る例示的なビットレート低減シナリオの図である。
【0024】
以下の詳細な説明は、添付図面を参照する。異なる図面における同じ参照番号は、同一または類似の要素を特定する。
【0025】
本明細書で説明される実装は、注視制御された(gaze controlled)ビットレートに関する。監視カメラは、関心エリアのビデオをディスプレイにストリーミングする。ビデオストリームは、高い帯域幅要件を有する可能性があり、かなりのネットワーク帯域幅を消費する可能性がある。さらに、ビデオストリームを処理するには、プロセッサリソースおよびメモリリソースが必要となる可能性がある。本明細書で「オペレータ」または「ユーザ」と呼ばれるディスプレイを見ている人は、任意の所与の時間にディスプレイの一部分を見ることしかできない。さらに、オペレータは、複数のカメラから複数のディスプレイを見ることを任されている可能性があり、一度に1つのディスプレイに注視(gaze)を向けることしかできない。アイトラッカーを使用して、オペレータの注視エリア(gaze area)を特定し、したがってオペレータが見ていないディスプレイの一部、またはディスプレイグループ内の1以上のディスプレイを特定することができる。したがって、オペレータが見ていないビデオストリームの部分のビデオストリームのビットレートを低減させることは、ネットワークリソースを節約し、カメラおよび監視ステーションの監視システムのためのプロセッサおよびメモリの負荷を低減させるという技術的効果をもたらすことができる。
【0026】
ビデオ管理システムは、ディスプレイを含むクライアント装置を管理することができる。ディスプレイは、カメラからビデオストリームを受信し、ビデオストリームをディスプレイに表示することができる。ビデオ管理システムは、アイトラッキングセンサを介して、ディスプレイを見ているユーザに対して注視エリアを特定する情報を取得し、注視エリアからディスプレイの縁部まで勾配を生成し、生成された勾配に基づいて注視エリアの外側のビデオストリームのビットレートを低減させるようにカメラに命令することができる。いくつかの実装では、ビデオストリームは複数のビデオストリームを含んでもよく、ディスプレイは複数のディスプレイを含んでもよい。
【0027】
勾配は、1以上のビットレート低減係数によって定義され得る。ビデオストリームのある領域に対するビットレート低減係数は、適用されるビット低減なしの領域に対するビットレートと比較して、その領域のビットレートが低減される程度を示すことができる。一例として、勾配を生成することは、注視エリアの縁部から、注視エリアの縁部からのある設定距離までの第1の領域に対して第1のビットレート低減係数を定義することと、設定距離からディスプレイの縁部までの第2の領域に対する、第1のビットレート低減係数よりも高い第2のビットレート低減係数を定義することと、を含んでもよい。別の一例として、勾配を生成することは、注視エリアの縁部からディスプレイの縁部まで線形に減少するビットレート低減係数を定義することを含んでもよい。さらに別の一例として、勾配を生成することは、注視エリアがディスプレイの外側にあると判定することと、注視エリアがディスプレイの外側にあると判定することに応答して、ビデオストリーム全体に対するビットレートを減少させることと、を含んでもよい。さらに別の一例として、勾配を生成することは、注視エリアにおけるビデオストリームのビットレートを増加させるようにカメラに命令することを含んでもよい。
【0028】
実際のビットレートを予測することできない可能性があるため、ビットレート低減係数を使用して、実際のビットレート値ではなくビットレート低減を定義することができる。実際のビットレートは、ビデオストリームの特性に基づいて特定のビデオストリームに対して達成可能な圧縮量に依存する可能性がある。したがって、実際には、高いビットレート低減係数を有する第1の領域が、ビットレート低減の無いまたは低いビットレート低減係数を有する第2の領域よりも高いビットレートをもたらすことが、特定の状況において発生する可能性がある。これは、第1の領域内の画像データが(例えば、イントラフレーム圧縮のために)より多く圧縮可能かもしれないためである。
【0029】
ビデオ管理システムは、ビデオストリームのある領域に対するビットレートに他の調整を行うことができる。一例として、予測される注視軌跡(gaze trajectory)は、注視エリアの動きに基づいて計算することができ、予測された注視軌跡に沿ってビットレートを増加させることができる。別の一例として、動く物体は、ビデオストリーム内で検出することができ、注視エリアは、動く物体に相関することができる。注視エリアが移動物体に向かって移動し始めると、移動物体に関連付けられたビットレート低減係数は減少する可能性がある。
【0030】
ビットレートは、センサアレイによるビデオデータの取り込み点からネットワーク接続を介してディスプレイに符号化されたビデオストリームを送信するまでの処理経路に沿った多くの点のいずれかで低減させることができる。一例として、注視エリアの外側のビデオストリームのビットレートを減少させるようにカメラに命令することは、注視エリアの外側のビデオストリームのエリアに関連付けられたセンサ用のサンプリングレートを低減させるようカメラに命令することを含んでもよい。別の一例として、注視エリアの外側のビデオストリームのビットレートを減少させるようにカメラに命令することは、ビデオストリームを符号化する前に注視エリアの外側のビデオストリームのエリアの解像度を低下させるようにカメラに命令することを含んでもよい。さらに別の一例として、注視エリアの外側のビデオストリームのビットレートを減少させるようにカメラに命令することは、ビデオストリームを符号化する前に注視エリアの外側のビデオストリームのエリアに対してノイズ低減プロセスを増加するようにカメラに命令することを含んでもよい。さらに別の一例として、注視エリアの外側のビデオストリームのビットレートを減少させるようにカメラに命令することは、注視エリアの外側のビデオストリームのエリアに関連する符号化処理ユニットに対して圧縮パラメータ値を増加させるようにカメラに命令することを含む。
【0031】
図1は、一実施形態における例示的な環境100を示すブロック図である。環境100は、例えば、エリアを守るため、または公共安全を提供するための監視システムであり得る。
図1に示すように、環境100は、カメラ110−1〜110−M、ネットワーク120、監視ステーション125−1〜125−N、ディスプレイ130−1〜130−N、アイトラッカー140−1〜140−N、および/またはビデオ管理システム(VMS)150を含んでもよい。
【0032】
カメラ110−1〜110−M(個別に「カメラ110」、またはまとめて「カメラ110」)は、監視エリア106の画像および/またはビデオを取り込む。監視エリア106は、1以上のカメラ110によって監視することができる。例えば、2つのカメラが物体102−1を含むエリア106−1を監視することができる。物体102は、任意の物体(例えば、ドア、人、動物、車両、車両上のナンバープレートなど)を含んでもよい。
【0033】
カメラ110は、可視光、赤外光、および/または他の非可視電磁放射線(例えば、紫外光、遠赤外光、テラヘルツ放射線、マイクロ波放射線など)を使用して画像データを取り込むことができる。カメラ110は、レーダ撮像のための熱カメラおよび/またはレーダ装置を含んでもよい。取り込まれた画像データは、連続画像シーケンス(例えば、ビデオ)、限定された画像シーケンス、静止画像、および/またはそれらの組み合わせを含んでもよい。カメラ110は、画像を取り込みデジタル化するためのデジタルカメラおよび/または画像を取り込んでアナログ形式で画像データを格納するためのアナログカメラを含んでもよい。
【0034】
カメラ110は、1以上の2次元アレイ(例えば、画像データまたはビデオデータ)に配列されたデータを生成するセンサを含んでもよい。本明細書で使用される場合、「ビデオデータ」および「ビデオ」は、より一般的にそれぞれ「画像データ」および「画像」と呼ぶことができる。したがって、「画像データ」または「画像」は、特に明記しない限り、「ビデオデータ」および「ビデオ」を含むことを意味する。同様に、「ビデオデータ」または「ビデオ」は、特に明記しない限り、静止画像を含み得る。さらに、いくつかの実装では、「ビデオデータ」は音声データを含み得る。
【0035】
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内に示される監視システムとインタラクトするための「クライアント」とすることができる。
【0036】
ディスプレイ130は、1以上のカメラ110からのビデオストリームを受信して表示する。1つのディスプレイ130は、単一のカメラ110または複数のカメラ110からの画像を(例えば、ディスプレイ130上の複数のフレームまたはウィンドウ内に)示すことができる。単一のディスプレイ130はまた、単一のカメラからの異なるフレームの画像を表示することもできる。すなわち、単一のカメラは、例えば、広角レンズまたは魚眼レンズを含んでもよく、複数のエリア106の画像を提供することができる。異なるエリア106からの画像は、異なるウィンドウおよび/またはフレームで別々にディスプレイ130上に分離して表示させることができる。ディスプレイ130は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、有機LED(OLED)ディスプレイ、陰極線管(CRT)ディスプレイ、プラズマディスプレイ、レーザビデオディスプレイ、電気泳動ディスプレイ、量子ドットディスプレイ、ビデオプロジェクタ、および/または任意の他のタイプのディスプレイ装置を含んでもよい。
【0037】
アイトラッカー140は、VMS150(または環境100内の任意の他の装置)がオペレータの目がどこに集中しているかを判定することを可能にするセンサ(例えば、カメラ)を含む。例えば、一組の近赤外光ビームは、オペレータの目に向けられ、オペレータの角膜で反射を引き起こすことができる。反射は、アイトラッカー140に含まれるカメラによって追跡され、オペレータの注視エリアを決定することができる。注視エリアは、注視点および中心窩の焦点(focus)のエリアを含んでもよい。例えば、オペレータは、監視ステーション125のディスプレイ130の前に座ることができる。アイトラッカー140は、ディスプレイ130のどの部分にオペレータが焦点を合わせているかを決定する。各ディスプレイ130は、単一のアイトラッカー140に関連付けることができる。あるいはまた、アイトラッカー140は、複数のディスプレイ130に対応することができる。この場合、アイトラッカー140は、オペレータがどのディスプレイに、および/またはそのディスプレイ130のどの部分に焦点を合わせているかを判定することができる。
【0038】
アイトラッカー140はまた、ユーザの存在、注意のレベル、焦点、眠気、意識、および/または他の状態を判定することもできる。アイトラッカー140はまた、ユーザの身元を判定することもできる。アイトラッカー140からの情報は、経時的なオペレータの行動内に洞察を得るために、またはオペレータの現在の状態を判定するために使用することができる。いくつかの実装では、ディスプレイ130およびアイトラッカー140は、オペレータが着用するバーチャルリアリティ(VR)ヘッドセット内に実装することができる。オペレータは、VRヘッドセットへの入力として1以上のカメラ110を使用してエリア106の仮想検査を実行することができる。
【0039】
ネットワーク120は、1以上の回線交換ネットワークおよび/またはパケット交換ネットワークを含んでもよい。例えば、ネットワーク120は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、PSTN(Public Switched Telephone Network)、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク、無線ネットワーク、および/またはこれらのまたは他のタイプのネットワークの組み合わせを含んでもよい。
【0040】
VMS150は、カメラ110、ディスプレイ130、および/またはアイトラッカー140の動作を統合する1以上のコンピュータ装置(例えば、サーバ装置など)を含んでもよい。VMS150は、カメラ110からの画像データを受信して格納することができる。VMS150はまた、VMS150に格納された画像データまたはカメラ110からストリーミングされた画像データを見るための、監視ステーション125のオペレータのためのユーザインターフェースを、提供することもできる。VMS150は、カメラ110に、オペレータの注視エリアの外側にある領域のビットレートを低減させるように命令することによってシステムリソースを節約するためのルールエンジンを含んでもよい。
【0041】
いくつかの実施形態では、環境100は、別個のVMS150を含まない。代わりに、VMS150によって提供されるサービスは、監視ステーション125(例えば、ディスプレイ130に関連付けられたコンピュータ装置)および/またはカメラ110自体によって、または環境100内の装置間に分散された方法で提供される。例えば、カメラ110は、オペレータの注視エリアの外側にある領域に対してビットレートを低減させるようにカメラ110に命令することによって、システムリソースを節約するルールエンジンを含んでもよい。同様に、VMS150は、カメラ110によって実行されるものとして説明された動作を実行することができる。
【0042】
図1には、環境100の例示的なコンポーネントが示されているが、他の実装では、環境100は、
図1に示されているよりも少ないコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、または追加のコンポーネントを含んでもよい。追加的または代替的に、任意の1つの装置(または装置の任意のグループ)が、1以上の他の装置によって実行されるものとして説明された機能を実行することができる。
【0043】
図2は、一実施形態におけるカメラ110の例示的なコンポーネントを示すブロック図である。
図2に示すように、カメラ110は、光学チェーン210、センサアレイ220、バス225、画像プロセッサ230、コントローラ240、メモリ245、ビデオエンコーダ250、および/または通信インターフェース260を含んでもよい。一実施形態では、カメラ110は、カメラ110をパン、チルト、回転、および/またはズームするための1以上のモータコントローラ270(例えば、3つ)および1以上のモータ272(例えば、3つ)を含んでもよい。
【0044】
光学チェーン210は、入射放射線(例えば、光、可視光、赤外線波、ミリ波など)をセンサアレイ220に導き、入射放射線に基づいて画像を取り込むエンクロージャを含む。光学チェーン210は、入射放射線を監視エリアからセンサアレイ220上に収集して集束させる1以上のレンズ212を含む。
【0045】
センサアレイ220は、センサアレイ220上に入射するまたは降り注ぐ放射線(例えば、光)を検知、検出、および測定するためのセンサのアレイを含んでもよい。放射線は、可視光波長範囲、赤外線波長範囲、または他の波長範囲とすることができる。
【0046】
センサアレイ220は、例えば、電荷結合素子(CCD)アレイおよび/またはアクティブピクセルアレイ(例えば、相補型金属酸化物半導体(CMOS)センサアレイ)を含んでもよい。センサアレイ220はまた、(例えば、カメラ110が熱カメラまたは検出器を含む場合)マイクロボロメータを含むこともできる。
【0047】
センサアレイ220は、センサアレイ220に入射する放射線(例えば、光)を示す(例えば、特性または特徴を記述する)データを出力する。例えば、センサアレイ220から出力されるデータは、センサアレイ220内の1以上のピクセルに入射する情報(例えば、光の強度(例えば、照度)、色など)を含んでもよい。センサアレイ220に入射する光は、光学チェーン210内のレンズの結果として光が集束させられ得る「画像」であり得る。いくつかの実装では、コントローラ240は、センサアレイ220のうちの特定のセンサまたはセンサのセットのサンプリングレートをオフにする、および/または低減させることによって、センサアレイ220の特定の領域に関連付けられたビットレートを低減させることができる。
【0048】
センサアレイ220は、センサアレイ220上に降り注ぐ画像を検出するので、「画像センサ」と考えることができる。この用語が本明細書で使用されるとき、「画像」は、センサアレイ220に入射する放射線を示す(例えば、光の特性または特徴を記述する)データを含む。したがって、「画像」という用語はまた、「画像センサデータ」または画像を記述する任意のデータまたはデータセットを意味するために使用することもできる。さらに、「ピクセル」は、放射線の測定(例えば、センサアレイ220に入射する光を示す測定)が行われるセンサアレイ220の任意の領域またはエリアを意味することができる。ピクセルは、センサアレイ220内の1以上(または1未満)のセンサに対応することができる。別の実施形態では、センサアレイ220は、走査ハードウェア(例えば、回転ミラー)を使用して画像を形成することができるリニアアレイ、または画像センサデータを生成するために画像プロセッサ230および/またはコントローラ240に依存する可能性のある非アレイセンサであってもよい。
【0049】
バス225は、カメラ110内のコンポーネントが互いに通信することを可能にする通信経路を含む。コントローラ240および/または画像プロセッサ230は、センサアレイ220によって取り込まれた画像データ上で信号処理動作を実行する。センサアレイ220によって取り込まれた画像上で画像処理(例えば、画像プロセッサ230は、ノイズ低減、フィルタリング、スケーリングなど)を行うことができる。コントローラ240は、カメラ110の動作を制御することができ、カメラ110の他のコンポーネント(例えば、センサアレイ220、画像プロセッサ230、ビデオエンコーダ250、通信インターフェース260、および/またはモータコントローラ270)に命令を提供することができる。
【0050】
コントローラ240および/または画像プロセッサ230は、命令を解釈して実行する任意のタイプのシングルコアまたはマルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ、および/または処理ロジック(またはプロセッサ、マイクロプロセッサ、および/または処理ロジックのファミリ)を含んでもよい。コントローラ240および/または画像プロセッサ230は、ハードウェアアクセラレータ(例えば、グラフィックス処理ユニット(GPU)、汎用グラフィックス処理ユニット(GPGPU)、セル(Cell)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、および/または別のタイプの集積回路または処理ロジック)を含むか、またはそれに結合することができる。
【0051】
コントローラ240はまた、カメラ110の所望の焦点および位置(例えば、チルト、パン、回転、ズームなど)を決定して制御することもできる。そうするために、コントローラ240は、1以上のモータコントローラ270にコマンドを送信して、カメラ110をチルト、パン、回転、および/またはズームするための1以上のモータ272、または光学式ズームレンズ212を駆動する。
【0052】
メモリ245は、情報および/または命令を格納する任意のタイプの揮発性および/または不揮発性の記憶装置を含んでもよい。メモリ245は、ランダムアクセスメモリ(RAM)または任意のタイプの動的記憶装置、リードオンリメモリ(ROM)デバイス、または任意のタイプの静的記憶装置、磁気または光記録メモリデバイスおよびその対応するドライブ、またはリムーバブルメモリデバイスを含んでもよい。メモリ245は、カメラ110による使用のための情報および命令(例えば、アプリケーションおよび/またはオペレーティングシステム)およびデータ(例えば、アプリケーションデータ)を格納することができる。メモリ245は、1以上のビットレート低減係数および/または特定のセンサアレイ取り込み、画像処理、および/または1以上のビットレート低減係数が適用される符号化プロセスおよび/またはパラメータを特定する情報を格納することができる。
【0053】
メモリ245は、コントローラ240、画像プロセッサ230、ビデオエンコーダ250、および/または通信インターフェース260による実行のための命令を格納することができる。ソフトウェア命令は、別のコンピュータ可読媒体または別の装置からメモリ245に読み込むことができる。ソフトウェア命令は、コントローラ240、画像プロセッサ230、ビデオエンコーダ250、および/または通信インターフェース260に、本明細書に記載のプロセスを実行させることができる。例えば、カメラ110は、メモリ245内に格納されたソフトウェア命令を実行する、コントローラ240、画像プロセッサ230、および/またはビデオエンコーダ250に応答して、画像処理(例えば、符号化、ノイズ低減化、トランスコード、オブジェクトの検出など)に関連する動作を実行することができる。あるいはまた、本明細書で説明するプロセスを実装するために、配線接続された回路(例えば、ロジック)をソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用してもよい。
【0054】
ビデオエンコーダ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)コーデック、および/または別のタイプのコーデック)に基づいてビデオデータを圧縮することができる。
【0055】
通信インターフェース260は、入力および/または出力ポート、入力および/または出力システム、および/または他の装置へのデータの送信を促進する他の入力および出力コンポーネントを含む回路および論理回路を含む。例えば、通信インターフェース260は、有線通信のためのネットワークインターフェースカード(例えば、イーサネット(登録商標)カード)、または無線通信のための無線ネットワークインターフェース(例えば、LTE(Long Term Evolution)、WiFi、Bluetooth(登録商標)など)カードを含んでもよい。
【0056】
図2は、カメラ110の例示的なコンポーネントを示しているが、他の実施形態では、カメラ110は、
図2に示されているものよりも少ないコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、または追加のコンポーネントを含んでもよい。追加的または代替的に、カメラ110の1以上のコンポーネントは、カメラ110の1以上の他のコンポーネントによって実行されるように説明された機能を実行することができる。例えば、コントローラ240は、画像プロセッサ230によって実行されるように説明された機能を実行することができ、その逆も可能である。代替的または追加的に、カメラ110は、
図3に関して以下に説明されるようなコンピューティングモジュールを含んでもよい。
【0057】
図3は、一実施形態におけるコンピューティングモジュール300の例示的なコンポーネントを示すブロック図である。装置(例えば、VMS150、アイトラッカー140、監視ステーション125、および/またはディスプレイ130)は、1以上のコンピューティングモジュール300を含んでもよい。
図3に示されるように、コンピューティングモジュール300は、バス310、プロセッサ320、メモリ330、および/または通信インターフェース360を含んでもよい。いくつかの実施形態では、コンピューティングモジュール300はまた、入力装置340および/または出力装置350をも含み得る。
【0058】
バス310は、コンピューティングモジュール300のコンポーネントまたは他の装置の間の通信を可能にする経路を含む。プロセッサ320は、命令を解釈して実行する任意のタイプのシングルコアプロセッサ、マルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ、および/または処理ロジック(またはプロセッサ、マイクロプロセッサ、および/または処理ロジックのファミリ)を含んでもよい。プロセッサ320は、特定用途向け集積回路(ASIC)、FPGA、および/または別のタイプの集積回路または処理ロジックを含んでもよい。プロセッサ320は、ハードウェアアクセラレータ(例えば、GPU、GPGPU、Cell、FPGA、ASIC、および/または別のタイプの集積回路または処理ロジック)を含むか、またはそれに結合することができる。
【0059】
メモリ330は、プロセッサ320によって実行される情報および/または命令を格納することができる任意のタイプの動的記憶装置、および/またはプロセッサ320によって使用される情報を格納することができる任意のタイプの不揮発性記憶装置を含んでもよい。例えば、メモリ330は、RAMまたは他のタイプの動的記憶装置、ROM装置または他のタイプの静的記憶装置、磁気および/または光記録メモリ装置およびその対応するドライブ(例えば、ハードディスクドライブ、光学式ドライブなど)および/または取り外し可能な形態のメモリ(例えば、フラッシュメモリ)を含んでもよい。
【0060】
メモリ330は、プロセッサ320によって実行される命令を格納することができる。ソフトウェア命令は、別のコンピュータ可読媒体または別の装置からメモリ330に読み込むことができる。ソフトウェア命令は、プロセッサ320に本明細書に記載のプロセスを実行させることができる。あるいはまた、配線接続された回路(例えば、ロジック)をソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用して、本明細書に記載のプロセスを実行することができる。
【0061】
オペレーティングシステムは、コンピューティングモジュール300のハードウェアおよびソフトウェアリソースを管理するためのソフトウェア命令を含んでもよい。例えば、オペレーティングシステムは、Linux(登録商標)、Windows、OS X、Android、組み込みオペレーティングシステムなどを含んでもよい。特定のコンピューティングモジュール300が内部に見つかった装置に応じて、アプリケーションおよびアプリケーションデータは、ネットワークサービスを提供するか、またはアプリケーションを含んでもよい。
【0062】
通信インターフェース360は、コンピューティングモジュール300が他のコンポーネント、装置、および/またはシステムと通信することを可能にする送信機および/または受信機(例えば、トランシーバ)を含んでもよい。通信インターフェース360は、無線通信(例えば、高周波、赤外線、および/または視覚光学など)、有線通信(例えば、導線、ツイストペアケーブル、同軸ケーブル、伝送ライン、光ファイバケーブル、および/または導波路など)、またはそれらの組み合わせを介して通信することができる。通信インターフェース360は、ベースバンド信号を高周波(RF)信号に変換するトランシーバ、またはその逆のトランシーバを含んでもよく、アンテナアセンブリを含んでもよい。
【0063】
通信インターフェース360は、入力および/または出力ポート、入力および/または出力システム、および/または他の装置へのデータの送信を促進する他の入力および出力コンポーネントを含む論理コンポーネントを含んでもよい。例えば、通信インターフェース360は、有線通信のためのネットワークインターフェースカード(例えば、イーサネットカード)および/または無線通信のための無線ネットワークインターフェース(例えば、WiFi)カードを含んでもよい。通信インターフェース460はまた、ケーブル、Bluetooth(商標)無線インターフェース、RFID(radio−frequency identification)インターフェース、NFC(near-field communication)無線インターフェース、および/または1つの形態から別の形態にデータを変換する他のタイプのインターフェースを介した通信のためのユニバーサルシリアルバス(USB)ポートを含んでもよい。
【0064】
いくつかの実装では、コンピューティングモジュール300はまた、入力装置340および出力装置350も含んでもよい。入力装置340は、ユーザがコンピューティングモジュール300に情報を入力することを可能にすることができる。入力装置340は、例えば、キーボード、マウス、ペン、マイクロフォン、リモートコントロール、オーディオ取り込み装置、画像および/またはビデオ取り込み装置、タッチスクリーンディスプレイ、および/または別のタイプの入力装置を含んでもよい。
【0065】
出力装置350は、情報をユーザへ出力することができる。出力装置350は、ディスプレイ、プリンタ、スピーカ、および/または別のタイプの出力装置を含んでもよい。入力装置340および出力装置350は、ユーザがコンピューティングモジュール300によって実行されるアプリケーションとインタラクトすることを可能にすることができる。「ヘッドレス」装置(例えば、配備されたリモートカメラ)の場合、入力および出力は、主として入力装置340および出力装置350ではなく通信インターフェース360を介して行われる。
【0066】
以下で詳細に説明するように、コンピューティングモジュール300は、注視エリアに基づいてビットレート調整に関する特定の動作を実行することができる。コンピューティングモジュール300は、コンピュータ可読媒体(例えば、メモリ330)に含まれるソフトウェア命令を実行するプロセッサ320に応答して、これらの動作を実行することができる。コンピュータ可読媒体は、非一時的メモリデバイスとして定義され得る。メモリデバイスは、単一の物理メモリデバイス内に実装されてもよいし、複数の物理メモリデバイスにわたって分散されてもよい。ソフトウェア命令は、別のコンピュータ可読媒体または別の装置からメモリ330に読み込まれてもよい。メモリ330に含まれるソフトウェア命令は、プロセッサ320に本明細書に記載のプロセスを実行させることができる。あるいはまた、本明細書に記載のプロセスを実施するためにソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、配線接続された回路を使用することができる。したがって、本明細書に記載の実装は、ハードウェア回路およびソフトウェアの特定の組み合わせに限定されない。
【0067】
コンピューティングモジュール300は、データの受信、送信、および/または処理を支援する他のコンポーネント(図示せず)を含んでもよい。さらに、コンピューティングモジュール300内のコンポーネントの他の構成も可能である。他の実装では、コンピューティングモジュール300は、
図3で示されたものよりも少ないコンポーネント、異なるコンポーネント、追加のコンポーネント、または異なる配置のコンポーネントを含んでもよい。追加的または代替的に、コンピューティングモジュール300の1以上のコンポーネントは、コンピューティングモジュール300の1以上の他のコンポーネントによって実行されるものとして説明された1以上のタスクを実行することができる。
【0068】
図4は、一実施形態においてアイトラッカー140を有するディスプレイ130を見ているオペレータ402の例示的な環境400を示す。ディスプレイ130は、オペレータ402に情報を表示するための任意のタイプのディスプレイを含んでもよい。オペレータ402は、ディスプレイ130を見て、監視ステーション125上で動作しているアプリケーションを介してVMS150とインタラクトすることができる。例えば、オペレータ402は、エリア106のビデオを見ることができる。
【0069】
アイトラッカー140は、監視ステーション125がオペレータ402の目がどこに集中しているかを判定することを可能にするセンサ(例えば、カメラ)を含む。
図4では、例えば、オペレータ402はディスプレイ130の前に座っており、アイトラッカー140内のセンサがオペレータ402の目を検出する。例えば、アイトラッカー140は、ディスプレイ130上の位置(例えば、1以上のピクセルに関連付けられたピクセル値)として表すことができる注視点410を決定することができる。オペレータとディスプレイ130の相対的な位置に基づいて、オペレータ402の中心窩視野に対応する中心窩視野エリア420(または「エリア420」)を見積もることができる。中心窩視野は、目の詳細な視覚知覚に対応し、およそ1〜2球面度に対応する。したがって、ディスプレイ130上のエリア420は計算され、完全な視力を有するオペレータ402の視野の一部に対応すると理解することができる。
【0070】
別の一実施形態では、中心窩視野エリア420は、特定のオペレータ402に対して設定手順中に実験的に決定することができる。中心窩視野エリア420は、オペレータ402の周辺視野に対応する、中心窩視野エリア420の外側の周辺視野エリア430とは対照的である。注視点410は、エリア420のほぼ中央にあり、注視点410からオペレータ402の目までの視線に対応する。一実施形態では、注視点410を特定する情報は、VMS150に伝達することができる。
【0071】
図5Aは、オペレータ402の視点からのディスプレイ130を示している。
図5Aに示されるように、ディスプレイ130は、注視点410、中心窩視野エリア420、および周辺視野エリア430を含む。ディスプレイ130はまた、ビデオフレーム520を含み、ビデオフレーム520内においてビデオストリームがオペレータ402に提示される。この例では、フレーム520は、エリア106のカメラ110からのビデオストリームを示し、これは、ドアと、移動しているように見える個人とをたまたま含んでいる。オペレータ402の中心窩視野エリア420は、個人を包含し、注視点410は個人の顔面上に直接存在する。他方、フレーム520に表示されるドアは、オペレータ402の周辺視野エリア430に現れる。
【0072】
いくつかの実装では、オペレータの注視エリアは、中心窩視野エリア420に対応するものとして指定することができる。他の実装では、オペレータの注視エリアは、注視点410および中心窩視野エリア420に基づいて異なるエリアに対応するものとして指定することができる。一例として、オペレータの注視エリアは、注視点410の大きさと中心窩視野エリア420との間のどこかの大きさで指定することができる。別の一例として、オペレータの注視エリアは、中心窩視野エリア420よりも大きく、かつ中心に位置するエリアとして指定することができる。
【0073】
指定された注視エリアに基づいて、異なる動作がトリガされ、その結果、アイトラッカー140によって生成された情報は、ビデオ管理システムに対するユーザ入力として解釈されることができる。例えば、アイトラッカー140−1は、オペレータ402がカメラ110−1からのビデオストリームを示すフレーム520−1を見ていると判断した場合、ステーション125−1、VMS150、および/またはカメラ110−1は、オペレータの注視エリアの外側にあるフレーム520のエリアに関連付けられたビデオストリームのエリアに対するビットレートを低減させることができる。
【0074】
図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を含む。
【0075】
この例では、フレーム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により多くのリソース(例えば、帯域幅および/または処理リソース)を割り当てることができ、オペレータの焦点(例えば、周辺視覚内)ではないフレームに対応する他のストリームに割り当てられたリソースを低減させることができる。
【0076】
図6は、カメラ110、ディスプレイ130、およびVMS150の機能的コンポーネントの図である。カメラ110の機能的コンポーネントは、例えば、メモリ245に格納された命令を実行するコントローラ240を介して実装することができる。あるいはまた、カメラ110に含まれる一部または全部の機能的コンポーネントは、配線接続された回路を介して実装することができる。ディスプレイ130および/またはVMS150の機能的コンポーネントは、例えば、メモリ330に格納された命令を実行するプロセッサ320を介して実装することができる。あるいはまた、ディスプレイ130および/またはVMS150に含まれる一部または全部の機能的コンポーネントは、配線接続された回路を介して実装することができる。
【0077】
図6に示されるように、カメラ110は、センサアレイマネージャ610、画像プロセッサ620、エンコーダ630、およびクライアントインターフェース640を含んでもよく、監視ステーション125は、デコーダ650およびディスプレイインターフェース660を含んでもよく、VMS150は、アイトラッカーインターフェース670、リソースマネージャ680、カメラデータベース(DB)685、およびカメラインターフェース690を含んでもよい。
【0078】
カメラ110からのビデオストリームは、ディスプレイ130への以下の処理経路に従うことができる。センサアレイマネージャ610は、センサアレイ220にビデオストリームの画像のセットを取り込むように命令する。画像プロセッサ620は、取り込まれた画像に画像処理(例えば、ノイズ低減動作および/またはスケーリング動作)を実行することができる。次に、エンコーダ630は、コーデック(例えば、MPEG−4など)を使用して画像を圧縮することができる。次に、クライアントインターフェース640は、符号化された画像をコンテナ(例えば、MPEG−4Part14(MP4)など)にカプセル化し、ネットワーク120を介してデータユニットを介して監視ステーション125にコンテナ化された符号化された画像を送信してディスプレイ130に表示することができる。デコーダ650は、コンテナから符号化された画像を取り出すことができ、画像を復号し、復号された画像をディスプレイインターフェース660に提供することができる。ディスプレイインターフェース660は、復号された画像をバッファ内に格納することができ、ディスプレイ130上にビデオストリームとしてバッファからの復号された画像をストリーミングすることができる。
【0079】
リソースマネージャ680は、環境100に関連付けられたリソースを管理することができる。例えば、リソースマネージャ680は、ネットワーク120を介してカメラ110から監視ステーション125および関連付けられたディスプレイ130へのデータの送信に関連付けられたネットワークリソース、および/またはカメラ110、監視ステーション125、および/またはディスプレイ130に関連付けられたプロセッサおよびメモリリソースを管理することができる。リソースマネージャ680は、オペレータの注視エリアの外側にあるビデオストリームの領域に対して、カメラ110からディスプレイ130へのビデオストリームに関連付けられたビットレートを低減させるようにカメラ110に命令することができる。アイトラッカーインターフェース670は、アイトラッカー140と通信するように構成されてもよい。例えば、アイトラッカーインターフェース670は、アイトラッカー140に関連付けられた特定のAPI(Application Programming Interface)を使用してアイトラッカー140から特定のビデオストリームに関連付けられた注視エリアを特定する情報を取得することができる。
【0080】
リソースマネージャ680は、アイトラッカーインターフェース670を介してアイトラッカー140から注視エリア情報を収集することができ、カメラDB685内に格納された情報に基づいて1以上のビットレート低減係数を決定することができ、1以上のビットレート低減係数をビデオストリームの1以上の領域に適用するように1以上のカメラ110に命令することができる。カメラDB685は、特定のカメラ110に関する情報を格納することができる。カメラDB685内に格納可能な例示的な情報については、
図7を参照して後述する。カメラインターフェース690は、カメラ110と通信するように構成されてもよく、リソースマネージャ680からカメラ110に関連付けられた特定のAPIを介して命令を送信してもよい。
【0081】
センサアレイマネージャ610は、1以上のセンサアレイパラメータを格納、管理、および/または適用することができる。例えば、センサアレイマネージャ610は、センサアレイ220内の特定のセンサをオンにするべきかオフにするべきか、特定のセンサ用のサンプリングレート、特定のセンサ用の感度係数、および/または他のタイプのセンサパラメータを支配するパラメータを格納することができる。さらに、センサアレイマネージャ610は、センサアレイ220によって取り込まれた画像のタイプを判定するために、センサアレイ220のための1以上の設定を格納することができる。例えば、第1の設定は、通常の画像に対応することができ、第2の設定は、広角またはパノラマ画像に対応することができ、第3の設定は、低い照明設定に対応することができるなどである。センサアレイマネージャ610は、VMS150によって決定された注視エリア情報に基づいて、センサアレイ220の領域におけるビットレートを調整するために、VMS150からの命令を受信して、格納されたパラメータのうちの1以上を調整することができる。
【0082】
画像プロセッサ620は、1以上の画像処理パラメータを格納、管理、および/または適用することができる。例えば、画像プロセッサ620は、ノイズ低減プロセス(例えば、ローパスフィルタ)に関連するパラメータ、スケーリング処理に関連するパラメータ、および/またはビデオストリームの領域に関連付けられたビットレートを変化させるのに使用することができる他のタイプの画像処理パラメータを格納することができる。画像プロセッサ620は、VMS150によって決定された注視エリア情報に基づいてビデオストリームの領域におけるビットレートを調整するために、格納されたパラメータのうちの1以上を調整するためのVMS150からの命令を受信することができる。
【0083】
エンコーダ630は、イントラフレーム符号化パラメータおよびインターフレーム符号化パラメータを含む1以上の符号化パラメータを格納、管理、および/または適用することができる。例えば、エンコーダ630は、ビデオストリームの特定の領域および/または物体に対する量子化パラメータ(QP)を格納し、離散コサイン変換(DCT)のための係数のセット、予測誤差パラメータのMAD(Mean Absolute Difference)、および/または他の符号化パラメータを格納することができる。エンコーダ630は、VMS150によって決定された注視エリア情報に基づいてビデオストリームの領域におけるビットレートを調整するために、格納された符号化パラメータの1以上を調整するために、VMS150からの命令を受信することができる。
【0084】
クライアントインターフェース640は、1以上の画像送信パラメータを格納、管理、および/または適用することができる。例えば、クライアントインターフェース640は、サービスの質(QoS)パラメータを格納することができる。クライアントインターフェース640は、VMS150によって決定された注視エリア情報に基づいてビデオストリームの領域におけるビットレートを調整するために、格納された符号化パラメータのうちの1以上を調整するためのVMS150からの命令を受信することができる。
【0085】
図6は、カメラ110、ディスプレイ130、およびVMS150の例示的な機能的コンポーネントを示しているが、他の実装では、カメラ110、ディスプレイ130、またはVMS150は、
図6に示されたものよりも少ない機能的コンポーネント、異なる機能的コンポーネント、異なる配置の機能的コンポーネント、または追加の機能的コンポーネントを含んでもよい。また、カメラ110、ディスプレイ130、およびVMS150のコンポーネント(またはコンポーネントの任意のグループ)のうちの任意の1つは、カメラ110、ディスプレイ130、およびVMS150の1以上の他の機能的コンポーネントによって実行されるものとして説明された機能を実行することができる。
【0086】
図7は、
図6のカメラデータベースの例示的なコンポーネントの図である。
図7に示すように、カメラDB685は、1以上のカメラレコード701を格納することができる。各カメラレコード701は、特定のカメラ110に関する情報を格納することができる。カメラレコード701は、カメラ識別子(ID)フィールド710、注視エリアフィールド720、勾配フィールド730、およびビットレート低減フィールド740を含んでもよい。
【0087】
カメラIDフィールド710は、特定のカメラ110に関連付けられた1以上のIDを格納することができる。例えば、カメラIDは、特定のカメラ110に対するメディアアクセスコントロール(MAC)アドレス、特定のカメラ110に対するインターネットプロトコル(IP)アドレス、VMS150によって特定のカメラ110に割り当てられた名前、および/または別のタイプのIDを格納することができる。さらに、カメラIDフィールド710は、特定のカメラ110に対する製造・モデル情報および/または特定のカメラ110にインストールされたソフトウェアバージョンを格納することができる。また、カメラIDフィールド710は、VMS150が特定のカメラ110との安全な接続を確立することを可能にする、特定のカメラ110に対する認証情報を含んでもよい。
【0088】
注視エリアフィールド720は、特定のカメラ110に対して現在または最近特定された注視エリアを特定する情報を含んでもよい。例えば、注視エリアフィールド720は、注視点410、中心窩視野エリア420、および/または別の指定された注視エリアを特定することができる。さらに、注視エリアフィールド720は、特定のカメラ110に関連付けられたビデオストリームに対する注視エリアに関連付けられた履歴情報を含んでもよい。履歴注視エリア情報(historical gaze area information)は、例えば、特定のカメラ110に関連付けられたビデオストリームに対する注視軌跡を予測するために使用されることができる。
【0089】
勾配フィールド730は、特定のカメラ110に関連付けられたビットレート低減係数勾配を特定する情報を格納することができる。例えば、勾配フィールド730は、可能な勾配のセットを格納してもよく、可能な勾配のセットから選択されたまたはアクティブな勾配を特定する指標を格納してもよい。勾配は、1以上のビットレート低減係数(例えば、注視エリアの縁部から、注視エリアの縁部からある設定距離までの第1の領域に対する第1のビットレート低減係数、および設定距離からディスプレイの縁部までの第2の領域に対する、第1のビットレート低減係数よりも高い第2のビットレート低減係数)によって定義することができる。別の一例として、勾配は、注視エリアの縁部からディスプレイの縁部まで線形に減少するビットレート低減係数を定義することができる。さらに別の一例として、勾配は、非線形に減少するビットレート低減係数(例えば、指数関数的に減少するビットレート低減係数、対数的に減少するビットレート低減係数など)を定義することができる。
【0090】
さらに、勾配フィールド730は、ビットレートを調整するための追加の命令および/または仕様を含んでもよい。さらなる例として、勾配フィールド730は、注視エリアがディスプレイの外側にある場合、ビデオストリーム全体に対してビットレートを減少させるべきであることを特定することができる。別の一例として、勾配を生成することは、注視エリアにおけるビデオストリームのビットレートを増加させるようにカメラに命令することを含んでもよい。さらに別の一例として、注視軌跡は、注視エリアが領域内に移動していることを示す場合に、勾配フィールド730は、ビットレートが低減された領域におけるビットレートを増加するように特定することができる。
【0091】
ビットレート低減フィールド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フレームを符号化するときに、動きのための閾値を上げてもよく、こうして符号化されたビデオストリームに対してビットレートを下げるより少ない変化が符号化される。
【0092】
図8は、本明細書に記載される一実装に係る注視エリアに基づいてビットレートを制御するプロセスのフローチャートである。1つの実装では、
図8のプロセスは、VMS150によって実行することができる。他の実装では、
図8のプロセスの一部または全部は、VMS150とは別個の、および/またはVMS150を含む別の装置または装置のグループ(例えば、カメラ110および/または監視ステーション125)によって実行され得る。
【0093】
図8のプロセスは、カメラからビデオストリームを受信すること(ブロック810)と、ビデオストリームをディスプレイ上に表示すること(ブロック820)と、を含んでもよい。例えば、オペレータは、監視ステーション125および/またはディスプレイ130に関連付けられたコンピュータ装置にログインすることができ、1以上のカメラ110を構成するためにVMS150にログインすることができる。VMS150は、監視エリア106のビデオストリームをディスプレイ130に提供するようにカメラ110を構成してもよく、ディスプレイ130は、カメラ110からビデオストリームデータを受信し続け、ビデオストリームデータを表示し続けることができる。
【0094】
注視エリアを特定する情報は、ディスプレイを見ているユーザおよび/またはオペレータに対して取得することができる(ブロック830)。例えば、アイトラッカー140は、注視点410および/または中心窩視野エリア420を決定するためにユーザの目を監視し、決定された注視点410および/または中心窩視野エリア420に基づいて注視エリアを決定することができる。決定された注視エリアを特定する情報は、VMS150のリソースマネージャ680に提供することができる。あるいはまた、アイトラッカー140からの生データをVMS150に提供することができ、VMS150は生データに基づいて注視エリアを決定することができる。
【0095】
勾配は、注視エリアからディスプレイの縁部に向かって生成することができる(ブロック840)。例えば、リソースマネージャ680は、カメラ110に関連付けられたビデオストリームに対して勾配を生成することができる。勾配フィールド730からの特定の勾配は、1以上のパラメータに基づいて選択することができる。一例として、低いネットワーク負荷の時間の間に、より控えめな勾配(例えば、注視エリアの縁部からディスプレイの縁部に向かって線形に減少するビットレート低減係数)を選択することができ、高いネットワーク負荷の時間の間に、(例えば、注視エリアの外側のすべての領域に対してビットレート低減係数を適用する)より厳しい勾配を選択することができる。別の一例として、特定のカメラ110には重要度が割り当てられ、より高い重要度に関連付けられた第1のカメラ110には、より低い重要度に関連付けられた第2のカメラ110よりも控えめな勾配を割り当てることができる。さらに別の一例として、異なるユーザおよび/または監視ステーション125に重要度が割り当てられ、勾配が割り当てられた重要度に基づいて選択されてもよい。
【0096】
生成された勾配に基づいて、注視エリアの外側のビデオストリームのビットレートを減少させるようにカメラに命令することができる(ブロック850)。例えば、VMS150は、特定のカメラ110に対してビットレート低減フィールド740から、1以上のビットレート低減係数(例えば、センサアレイビットレート低減係数、画像処理ビットレート低減係数、符号化ビットレート低減係数、および/または画像送信ビットレート低減係数)を選択することができる。一例として、VMS150は、ビデオストリームの領域に関連付けられたセンサアレイ220内のセンサのサブセットのサンプリングレートを調整するように、ビデオストリームの領域をダウンサンプリングする(例えば、解像度を低下させる)ように、ビデオストリームの領域におけるノイズ低減プロセスを増加させるように、符号化圧縮パラメータを増加させるように、および/またはビデオストリームの領域においてビットレートを低減させることができる別のパラメータを調整するように選択することができる。
【0097】
特定のビットレート低減係数は、1以上のパラメータに基づいて選択することができる。一例として、ビットレート低減係数は、ビデオストリームに関連付けられた特定のカメラ110の製造元およびモデルに基づいて選択することができる。別の一例として、ビットレート低減係数は、予測されたビットレートの低減に基づいて(例えば、特定のカメラ110の履歴データに基づいて)選択することができ、最も高い予測されたビットレート低減に関連付けられたビットレート低減係数が選択されてもよい。さらに別の一例として、ビットレート低減係数は、ユーザによって選択された手動設定に基づいて選択されてもよい。別の一例では、ビットレートの低減は、シーンのコンテンツおよび/または検出された物体と関連付けてもよい。
【0098】
図9A〜
図9Cは、本明細書に記載された1以上の実装に係る例示的なビットレート低減シナリオの図である。
図9Aは、ディスプレイ130上の第1の例示的なビットレート低減シナリオ901を示している。
図9Aに示されるように、中心窩視野エリア420として指定された注視エリアは、ディスプレイ130の右下隅にある。勾配は、第1のビット低減エリア910および第2のビット低減エリア920によって設定することができる。第1のビット低減エリア910は、中心窩視野エリア420の縁部から設定距離まで延びるものとして定義することができる。設定距離は、例えば、動きを検出する可能性が高い周辺視野エリアに基づいて決定することができる。別の一例として、設定距離は、中心窩視野エリア420の縁部からディスプレイ130の縁部に向かう距離のパーセンテージ(例えば、縁部までの距離の30%、縁部までの距離の50%など)に対応することができる。第2のビット低減エリア920は、設定距離からディスプレイ130の縁部に向かってより遠くに延びるものとして定義することができる。
【0099】
第1のビット低減エリア910は、第1のビットレート低減係数に関連付けることができ、第2のビット低減エリア920は、第1のビットレート低減係数よりも高い第2のビットレート低減係数に関連付けることができる。したがって、第2のビット低減エリア920は、低ビットレートで低品質ビデオストリームを提供することができ、第1のビット低減エリア910は、より高い品質およびビットレートでビデオストリームを提供することができ、中心窩視野エリア420は、ビットレートが公称ビデオ圧縮レートから低減されていない高品質ビデオストリームを提供することができる。いくつかの実装では、(例えば、圧縮値を下げることによって、ノイズ低減を低減させることによって、センサのサブセットのサンプリングレートを増加することなどによって)中心窩視野エリア420内のビットレートを増加させることができる。
【0100】
図9Bは、ディスプレイ130上の第2の例示的なビットレート低減シナリオ902を示す。
図9Aに示されるように、中心窩視野エリア420として指定される注視エリアは、再び、ディスプレイ130の右下隅に存在する。中心窩視野エリア420からディスプレイ130の縁部に向かってビットレート低減係数を線形に増加させることを含む勾配を設定することができる。領域930、932、934、936、938、940、および942は、ビットレート低減係数を増加させること、に関連しており、したがってビットレートおよびビデオ品質を減少させることに関連付けることができる。
【0101】
図9Cは、ディスプレイ130上の第3の例示的なビットレート低減シナリオ903を示す。シナリオ903では、高いビットレート低減係数を使用して、中心窩視野エリア420の外側のエリア950に対するビットレートが低減される。ビットレートが低減された後、注視エリアは、軌跡960が前の注視エリア970から現在の注視エリア980に確立されるときに変化し始める。軌跡960は、領域990に対応する注視エリアの将来の軌跡を予測するために使用することができる。これに応答して、領域990内のビットレートの低減は、注視エリアに関連付けられた高いビットレートまで低減されたビットレートを戻して増加させることによって取り除くことができる。したがって、ユーザの注視は、領域990に降り注ぐと予想され、ビットレートは、ユーザの注視が領域990に到達する前に領域990内で増加させることができる。これにより、オペレータの注視が領域990に当たるときと、ユーザが領域990内で高品質ビデオストリームを見ることができるときとの間の遅延時間または待ち時間を防ぐことができる。軌跡は、注視エリア970の以前の軌道を記憶する追跡アルゴリズムを使用して予測することができ、注視エリア970の動きの将来の変化を予測するために統計技術を使用することができる。一実施形態では、ビデオストリーム内の認識された物体間の相関は、注視エリア970の予測される動きの決定に影響する可能性がある。例えば、関心のある物体は、ユーザの注意を引き付けることが期待できるので、関心のある物体の外観および/または関心のある物体の軌跡は、注視エリア970の予測される軌跡の計算に影響を及ぼす可能性がある。
【0102】
この出願は、本特許出願と同日に出願された以下の特許出願を参照として本明細書に援用する。2016年12月30日に出願された「注視ヒートマップ(Gaze Heat Map)」と題された米国特許出願第15/395,893号(代理人整理番号P160085/US(0090−0018)、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)」と題された米国特許出願第5/395,790号(代理人整理番号P160193(0090−0024))。
【0103】
以上、様々な好ましい実施形態について、添付図面を参照して説明してきた。しかしながら、特許請求の範囲に記載された本発明のより広い範囲から逸脱することなく、様々な修正および変更を行うことができ、追加の実施形態が実施可能であることは明らかであろう。したがって、本明細書および図面は、限定的ではなく例示的な意味で考慮されるべきである。
【0104】
例えば、
図8に関して一連のブロックを説明してきたが、ブロックの順序は、他の実装で変更することができる。また、依存していないブロックおよび/または信号フローは、並行して実行することができる。
【0105】
上述したようなシステムおよび/または方法は、図に示す実装において、ソフトウェア、ファームウェア、およびハードウェアの多くの異なる形態で実施することができることは明らかであろう。これらのシステムおよび方法を実施するために使用される実際のソフトウェアコードまたは特殊化された制御ハードウェアは、本実施形態を限定するものではない。したがって、システムおよび方法の動作および挙動は、特定のソフトウェアコードを参照することなく説明された。すなわち、ソフトウェアおよび制御ハードウェアは、本明細書の記載に基づいてシステムおよび方法を実施するように設計可能であることが理解される。
【0106】
さらに、上述の特定の部分は、1以上の機能を実行するコンポーネントとして実装されてもよい。本明細書で使用されるコンポーネントは、ハードウェア(例えば、プロセッサ、ASIC、またはFPGA)またはハードウェアとソフトウェアの組み合わせ(例えば、ソフトウェアを実行するプロセッサ)を含んでもよい。本明細書で使用される「例示的」という用語は、「例示のための一例として」を意味する。
【0107】
本明細書中で使用される場合、用語「含む(comprises)」および「含む(comprising)」は、記載された構成、整数、工程、またはコンポーネントの存在を特定するものと解釈されるが、1以上の他の構成、整数、工程、コンポーネント、またはそれらのグループの存在または追加を除外しない。
【0108】
本明細書で使用される用語「ロジック」は、1以上のメモリデバイス内に格納された命令を実行するように構成された1以上のプロセッサの組み合わせを指すことができる、ハードウェア回路を指すことができる、および/またはそれらの組み合わせを指すことができる。さらに、ロジックは、単一のデバイス内に含まれることができる、または複数の(場合によっては遠隔の)デバイスに分散させることができる。
【0109】
本発明を説明および定義する目的で、本明細書では、「実質的に」という用語は、定量的な比較、値、測定値、または他の表現に起因する可能性のある不確実性の固有の程度を表すために利用される。「実質的に」という用語はまた、本明細書では、定量的表現が、問題の主題の基本機能に変化をもたらすことなく、記載された基準から変動する程度を表すためにも利用される。
【0110】
本出願で使用されている要素、動作、または命令は、本実施形態にとって重大であるまたは必須であるとは、そのように明示的に記載されていない限り、解釈されるべきではない。また、本明細書で使用する場合、冠詞「a」は、1以上の項目を含むことを意図している。さらに、「に基づいて」というフレーズは、特に断りのない限り、「少なくとも部分的に基づいて」を意味することを意図している。