(57)【要約】【課題】データフローループ内でのビデオ処理の非効率性を回避する。【解決手段】本明細書で説明される方法およびシステムの実施形態は、複数の異なるデバイスからのビデオデータストリームのキャプチャおよびビデオデータストリームの処理を可能にする。ビデオデータストリームは、各種データプロトコルが、一般的に分散されている異なるタイプのオペレーティングシステム上の同じワーカープロセッサですべて処理できるように合成される。ある実施形態では、モバイルデバイス（携帯電話等）をデバイスとして使用し、連続ビデオファイルを符号化し、連続ビデオファイルにタイムスタンプを押し、連続ビデオファイルをファイルサーバにプッシュしてビデオデータの安定したストリームを生成するために、モバイルデバイス上にビデオセンサアプリケーションを展開する。【選択図】  図６
2020149704.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによる実行時に前記プロセッサにビデオ処理方法を実行させる命令が格納されたコンピュータ可読媒体であって、前記ビデオ処理方法は、
複数のビデオデータストリームを処理してシーンに関連するリアルタイム情報を含む処理済みビデオデータを生成する複数のビデオ解析ワーカープロセスを実行するステップを含み、前記複数のビデオデータストリームは、異なるタイプの複数のデバイスから生じたものであり、
前記複数のビデオ解析ワーカープロセスは、
固定ビデオストリームのバックグラウンド画像を推定することに基づいて移動物体を検出し、
移動物体を「既知物体」及び「ノイズ」の１つとして分類し、
時間の経過とともに１つの物体の軌跡を追跡する、コンピュータ可読媒体。
【請求項２】
前記方法は、車両速度、歩行者速度、ある場所に入る人、およびある場所から出た人を含む人を読み取り可能なデータを検出するために、移動物体のビデオデータのみを処理する前記ビデオ解析ワーカープロセスをさらに含む、請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記方法は、
前記複数のビデオデータストリームから処理されたデータを収集して格納し、
異なるタイプのビデオデータストリームに対する前記プロセッサの依存性を構造的に除去し、
前記複数のデバイスから前記ビデオデータを合成し、
処理されたデータを出力としてパッケージ化して提供する前記ビデオ解析ワーカープロセスをさらに含む、請求項１に記載のコンピュータ可読媒体。
【請求項４】
前記方法は、前記複数のデバイスのうちの１つであるモバイルデバイス上でビデオセンサアプリケーションを実行することをさらに含み、前記ビデオセンサアプリケーションは、前記モバイルデバイスを使用して各種機能を実行し、前記機能は、
連続ビデオファイルを符号化すること、
連続ビデオファイルにタイムスタンプを押すこと、
連続ビデオファイルをファイルサーバにプッシュして、安定したビデオデータストリームを生成することを含む、請求項１に記載のコンピュータ可読媒体。
【請求項５】
前記方法は、シーンに関するグラフィック情報およびテキスト情報をリアルタイムで表示する１つまたは複数のユーザインターフェースに対して処理済みデータを利用可能にするビデオ解析ワーカープロセスをさらに含む、請求項１に記載のコンピュータ可読媒体。
【請求項６】
コンピュータにより実行されるビデオデータを処理する方法であって、
異なるタイプのビデオデータストリームを生成する、異なる場所にある異なるタイプの複数のソースから複数のビデオデータストリームを受信する複数の専用ビデオ解析プロセッサと、
前記複数の専用ビデオ解析プロセッサは、異なるタイプのビデオデータストリームを処理してシーンに関連するリアルタイム情報を含む処理済みビデオデータを生成する複数のビデオ解析ワーカープロセスを実行し、
前記複数のソースのうちの１つであるモバイルデバイス上でビデオセンサアプリケーションを実行するステップを含み、前記ビデオセンサアプリケーションは、前記モバイルデバイスを使用して各種機能を実行し、前記機能は、
連続ビデオファイルを符号化すること、
連続ビデオファイルにタイムスタンプを押すこと、
連続ビデオファイルをファイルサーバにプッシュして、安定したビデオデータストリームを生成することを含む、方法。
【請求項７】
前記複数のビデオデータストリームを処理して、前記複数のビデオデータストリームからの地理的位置情報および時間基準情報を統合して、前記複数のソースから生成された類似の地理的位置情報および時間基準情報を有する処理済みビデオデータを比較できるようにする前記複数のビデオ解析ワーカープロセスを含む、請求項６に記載の方法。
【請求項８】
複数の異なるタイプのビデオストリームから処理済みデータを収集して格納し、
異なるタイプのビデオデータストリームに対する専用ビデオ解析プロセッサの依存性を構造的に除去し、
前記複数のソースからのビデオデータを合成し、
処理済みデータを出力としてパッケージ化して提供する前記複数のビデオ解析ワーカープロセスをさらに含む、請求項６に記載の方法。
【請求項９】
前記複数のビデオ解析ワーカープロセスは、複数のオペレーティングシステム上でインスタンス化され、かつ複数のオペレーティングシステム上で実行可能となるように、前記ビデオ解析ワーカープロセスが、複数のアプリケーションプログラミングインターフェースを介してアクセス可能となっており、前記複数のオペレーティングシステムは、Ｌｉｎｕｘ、Ｍａｃ  ＯＳ、およびＷｉｎｄｏｗｓを含む、請求項６に記載の方法。
【請求項１０】
前記複数のビデオ解析ワーカープロセスは、中央処理装置（ＣＰＵ）の活動、可用性、およびデータストレージ容量のレベルを報告する、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載された実施形態は、ビデオデータ処理の分野、特に物体検出及びパターン認識に関する。
【背景技術】
【０００２】
画像認識、パターン認識、物体検出、その他の目的でデジタルビデオデータを処理するための各種技術が存在する。典型的に、ビデオデータは、一つのタイプのデバイスによって捕捉され、次に、そのデバイスまたは別の処理デバイスによって解析される。例えば、一つの方法は、人間の行動に関する視覚情報を含むビデオ入力から視覚画像プリミティブを取得することを含む。プリミティブは、観察されたプリミティブ・シーケンスと変換されたプリミティブ・シーケンスとの間の距離メトリックに応じてトランザクションのシーケンスから変換された最適であると仮定されるプリミティブのシーケンスに時間的に整列される。別の方法は、一つまたは複数のカメラによって捕捉された画像から基準画像と探査画像とを用いて移動ターゲットを検出する。移動ターゲットは、基準画像と探査画像に共通なエピポーラ方向の位置に関連する基準画像及び探査画像における対応する部分の方向に基づいて基準画像及び探査画像から検出され、検出された移動ターゲットがディスプレイ上に表示される。
【０００３】
現在のビデオデータの処理技術は、典型的には一つのタイプのビデオ入力データについて動作する。多数のソースから集められた大量のデータソースを利用できるようにすることは、個々の提供者にとっては可能ではなかった。
【０００４】
更に、大量のストリーミングビデオデータを効果的に処理することは困難であることが実証されている。
多数の異なるタイプのソースからデジタルビデオデータを受信し、生のデータを異なるソースからの単一のデータソースとして解析して、ある時点での及びある期間に亘っての両方におけるシーンについての事実を決定することができるシステム及び方法があることが好ましい。
【図面の簡単な説明】
【０００５】
【図１】一実施形態による活動モニタリングシステムのブロック図である。
【図２】一実施形態による一つのビデオ処理アルゴリズムを示すフローチャートである。
【図３】一実施形態による、より詳細なビデオデータからの活動エリアの検出を示すフローチャートである。
【図４】一実施形態による、より詳細なビデオデータからの待機ラインの区分化の導出示すフローチャートである。
【図５】一実施形態による、より詳細なビデオデータからの属性の測定値の導出を示すフローチャートである。
【図６】一実施形態によるビデオデータからの待機ラインの区分化を示す図である。
【図７】画像に組み込まれた現時点で計算された属性を有する、ビデオカメラによって捕捉された待機ラインを有するユーザインターフェースディスプレイを示す。
【図８】実施形態に係るバーチャルターンスタイルを示す図である。
【発明を実施するための形態】
【０００６】
本明細書で説明する実施形態は、環境の様々な局面の状態を判定するために、複数のソースからビデオデータを処理するシステムおよび方法を含む。説明のためおよび説明の容易さのために、記載されたシステムおよび方法は、プレイスメーター（Ｐｌａｃｅｍｅｔｅｒ）システムまたはプレイスメーターとして呼称される。プレイスメーターは、ビデオストリームを使用して物理的世界の活動レベルを測定し、人と企業が物理的な場所や都市とより効果的かつ効率的に対話できるようにする。
【０００７】
一実施形態では、プレイスメーター・システムは、各種ソースからの入力ビデオストリームを使用する。ソースは、防犯カメラ等の現存のビデオフィード、固定された場所のシンプルなウェブカムに配置されたスマートフォンを介してシステムユーザまたはビデオフィードといくらかのビデオ解析ソフトウェアを含む埋め込みセンサーによって提供されたビデオフィードを含む。システムは、ビデオフィードを管理し、ビデオフィードをデータに処理し、データを格納し、解析値および予測値を計算するソフトウェアを実行する特別にプログラムされたプロセッサからなるバックエンドサブシステムを含む。
【０００８】
様々な新規なビデオアルゴリズムは、ビデオ信号をデータおよび測定値に変換することに特化したシステムの一部である。新規なデータアルゴリズムは、ビデオフィードからの測定値を低解像度の活動マップや気象情報、およびローカルイベントと組み合わせて、空間と時間における場所の活動を推測する。出力インターフェイスには、ビデオから抽出されたデータを人が読み取り可能な情報と有用な行動に変換するためのツールが含まれている。
【０００９】
図１は、一実施形態によるプレイスメーター・システム構成１００のブロック図である。入力ビデオソース１０２は、公衆カメラ、防犯カメラ、モバイル・アプリケーション、及びデジタルビデオストリームを捕捉することが可能な他のデバイスを含む。入力ビデオソース１０２は、（従来技術では困難な）長期間に亘る連続ストリーミングを行うための独自のプロトコルを含む。帯域幅の設定を再構築し、かつ確認（及び固定）するためにフィードバックループが使用される。
【００１０】
入力ビデオソースの特質及び品質は非常に多様である。本実施形態は、タイプやサポートに関係なく、あらゆる可能性のあるビデオソースの処理及び解析を支援する。これらのソースは、標準のビデオストリームの形態の現存するビデオカメラ、ウェブサイトに適正にアップデートされるｊｐｇファイル形式の現存する公衆ビデオフィード、簡単なウェブカム、防犯目的でインストールされる防犯カメラ（防犯カメラのフィードは、データを抽出して処理されるべくプレイスメーターによって取り込むことができる）、プレイスメーターのビデオセンシングアプリケーションを稼動する旧式の携帯電話から到来するビデオストリームまたはビデオファイルを含む。プレイスメーターのセンシングアプリケーションは、実際のビデオストリームを生成するか、またはビデオファイルを再要求（encore）し、ビデオファイルをＦＴＰサーバまたはアマゾンＳ３サーバ等のホストされるストレージサーバにプッシュする。スマートフォンをビデオセンサとして用いることにより、ファイルによりデータを簡単にストリーム出力する捕捉デバイスを簡単にセットアップし、かつ構成することが可能となる。このことは、カメラを設定し、カメラのフィードをインターネット上の異なるネットワーク場所にエクスポートする主要な問題を解決する。
【００１１】
システムは、これら各種の記載されたソースから到来するビデオフレームを取り入れるための統一されたフレームワークを提供し、かつビデオフレームから抽出された地理的に配置されたデータまたはタイムスタンプが押されたデータを比較することができるようにビデオフレームの地理位置情報及び時間基準を統一する。
【００１２】
エンコードされ、タイムスタンプが押され、ＦＴＰサーバにプッシュされたスマートフォンの連続ビデオファイルを用いる実施形態は、ループにおいてビデオストリーミングサーバを設けることなく、むしろ簡易なファイルサーバでビデオコンテンツの安定したストリームを生成する独創的な方法である。開示された方法は、携帯電話を用いたデータストリーミングに関する多くの現存の問題を解決する。これらの本題は、非既存のプロトコル（よって実施が周知されていない）等の基本的な問題から、法的問題（例えば、ＧＰＬソフトウェアは、アップルストアまたはグーグルアップス等の分散型アプリケーションネットワーク上で使用することが許可されていない）、及び携帯電話とビデオアルゴリズムプロセッサとの間に存在する脆弱で高性能なストリーミングサーバを維持することを含んでの高い経費に及ぶ。
【００１３】
これらのビデオフィードは、複数のタイプのエンティティによって生成される。複数のタイプのエンティティは、ビデオフィードを所有し、かつビデオフィードを無料で提供する会社またはエンティティ（例えば、ニューヨークにおけるＤＯＴ）と、ビデオフィードを所有し、かつビデオフィードを価値のあるデータに変換することの引替えにビデオフィードをシステムに提供する会社またはエンティティ（例えば、リテイラー）と、所有しかつ動作するビデオフィードへのアクセスに対して課金する会社または組織（例えば、アースカム（earthcam））と、金銭的な交換がない会社（例えば、会社は最低限の無料データと交換で会社のフィードを提供する）と、旧式のスマートフォンを使用するか、または旧式の携帯電話を提供して、電話をウィンドウまたは壁面に掛けて、旧式の電話でプレイスメーターセンシングアプリケーションを稼動することにより、新たなプレイスメータービデオフィードを作成する個々の提供者とを含む。これらの個人を募集するために使用される報酬は、金銭的なものか、または自身のフィードまたは、フィードのプレイスメーターネットワークからプレイスメーターが抽出するデータから個人が取得する価値のある物に基づく。
【００１４】
データの洞察及びデータの解析を行わせるために全てのこれらのソースをコンパイルすることは、合成された全ての単一データソースよりもよりスケーリングネットワーク効果を有する。このことは、多数のソース（個々の提供者を含む）からのデータを合成された安定したソースに集めることによりある程度可能となる。
【００１５】
バックエンドサブシステム１０４は、入力ビデオソース１０２からビデオデータストリームを受信する。管理モジュール１１２は、ビデオデータストリームを受信するフィード管理モジュールである。他の管理モジュールは、ワーカー管理モジュール１１４、位置管理及び地理的知識モジュール１１６、及びデータストレージモジュール１１８を含む。データストレージモジュール１１８は、バックエンドサブシステム１０４内に存在する単一のモジュールとして示されている。しかしながら、実際のデータストレージは、インターネットのどこかに分散することができ、典型的には分散されている。データストレージモジュール１１８は、従ってデータ管理モジュールであり、可能な限りは実際のデータストレージであり、全てではないが、データは局所的に格納される。
【００１６】
入力ビデオソース１０２は、提供者マネージャ１１０とも通信する。提供者マネージャ１１０は、位置及び所有者を含んで、各種入力ビデオソースをモニタリングし、かつ追跡する。ある場合には、個々の所有者はシステムでビデオデータを利用可能にすることに対して代金を支払う。ビデオ解析ワーカー１０６は、以下に詳細に説明するようなビデオ解析ワーカープロセスを実行する役割を有する複数の専用プロセッサを表す。解析されたビデオデータは、データストレージマネージャ１１８によって格納され、データアナリティクス（ｄａｔａ  ａｎａｌｙｔｉｃｓ）１０８によって更に解析される。データアナティクス１０８は、データアナティクスプロセスを実行する専用のプロセッサを表す。データアナティクス１０８は、更に外部データソース１２２へのアクセスを有し、外部データソース１２２は、気象情報、ビデオデータ等の場所に関連するイベント情報等のデータを提供する。データアナティクス１０８は、外部データとビデオ解析ワーカー１０６の出力とを合成して、データストレージマネージャ１１８に格納されるより意味のある出力データを生成し、ユーザインターフェース及びアプリケーション１２０に出力する。ユーザインターフェース及びアプリケーション１２０は、ユーザに極めて容易にアクセス可能な形式で利用可能な処理済みのビデオデータを作成する。ユーザインターフェース１２０は、各種実施形態において、パーソナルコンピュータ及びモバイルデバイスを含む、処理能力、通信能力、及び表示能力を有するコンピューティングデバイス上で利用可能である。
【００１７】
一実施形態において、バックエンドシステムは、マルチレイヤシステムであり、マルチレイヤシステムの役割は、全ての現存のビデオストリーム及びビデオストリームのソースを登録すること、ソースが提供者である場合、利用可能性情報及びコンタクト情報を格納して、それらソースの利用可能性に基づいてデータを提供するか、または支払いを行うこと、異なるサブシステムにおける全てのビデオフィードを処理し、このシステムにデータを報告する「ワーカー」プロセスを管理すること、ビデオストリームから抽出されたデータを集めて格納すること、各種ソース（例えば、ビデオ測定、気象ＡＰＩ）からの全てのデータを統合して合成すること、アプリケーション用またはシステムの出力としてのデータをパッケージングし、供給すること、及び各種ソースのデータについてビデオアルゴリズムプロセッサの依存性を構造的に除去することを含む。
【００１８】
バックエンドの一態様によれば、バックエンドは、全ての入力ソース及びワーカープロセスが異なるタイプのネットワーク及び環境に亘ってどのように分散されるかについて調整する役割を有する。アプリケーションプログラムインターフェース（ＡＰＩ）は、ワーカープロセス（十分なＲＡＭ及びＣＰＵパワーを有するＬｉｎｕｘ（登録商標）、Ｍａｃ
ＯＳ（商標）またはＷｉｎｄｏｗｓ（登録商標）等の何らかのオペレーティングシステム上で稼動するワーカーソフトウェアプロセス）用に形成され、ワイドエリアネットワーク（ＷＡＮ）を介してプレイスメーターバックエンドに登録し、個々のフィードを対応するアルゴリズムパラメータ及びアルゴリズム仕様に割当て、フィードの処理、および同じＡＰＩエンドポイントファミリーに戻る出力データの報告を開始する。これらのワーカープロセスは、活動のレベル、ＣＰＵ及びＲＡＭの占有率及び利用可能性についても報告する。そのようなシステムを用いて、プレイスメーターは、ワーカープロセスを多くの多様な環境においてインスタンス化して（instantiate）、ＣＰＵパワーに寄与する利用可能
なプラットフォームを活用することができる。
【００１９】
システムは、各種ビデオアルゴリズム及び各種データアルゴリズムを実行する。一実施形態において、ビデオアルゴリズムは、３層スタックに基づく。一実施形態では、３つのアルゴリズムの層は、ビデオフィードが静止視点及び０．２フレーム／秒を超える平均フレームレートを有しているという仮定に基づくが、実施形態はそれに限定されない。
【００２０】
ビデオアルゴリズム
移動物体検出層は、画像における移動する物体または移動する部分を検出する。移動物体検出は、カラー画像の各チャネルの値のガウシアン分布、または結合チャネルの振幅を用いて各ポイントをモデリングすることにより、固定ビデオストリームのバックグラウンド（ｂａｃｋｇｒｏｕｎｄ）画像を推定することに基づく。各画素は、カラー画像の全てのチャネルに関するガウシアン分布、３つのカラーチャネルの線形結合として表される画素輝度に関するガウシアン分布としてモデル化される。
【００２１】
そのようなモデルは、画像の各座標点に対して作成され、メモリに格納される。新たなフレームがシステムに到達すると、ガウシアンモデルの推定は、画素値の経時的合計Ｓと、２乗値の合計Ｔとを格納することにより同じ座標において各画素の新たな値で更新される。観察の総計がＮであるとすると、ガウシアンモデルの平均および標準偏差は、平均値に関してはＳ／Ｎとして、標準偏差の２乗値に関しては（２Ｓ−Ｓ＊Ｓ）／Ｎとして評価される。
【００２２】
ガウシアン値を平均及び標準偏差における潜在的変化に対して調節するために、これらの値は、移動タイムウィンドウについて計算される。移動平均に亘って全ての値を計算することの複雑性を低減するために、半距離オーバラッピング手法が使用される。Ｍが、平均及び標準偏差が推定される最小ウィンドウサイズ（サンプルの数）である場合、２つの組（現在の総計の組および将来の総計の組）のオーバラップ総計及び２乗総計は、常に格納される。各組は、サンプルの数、値の総計、及び２乗値の総計を有する。第１の組がＭ個のサンプルに到達すると、第２の組は、リセットされ、続いて、各新たなフレームを用いて更新される。第１の組がＭ＊２個のサンプルに到達すると、将来の組がＭ個のサンプルに到達する。将来の組の値は、現在の組の値にコピーされ、将来の組がリセットされる。この方法では、Ｍ個の第１のサンプルの後の任意の時点において、ガウシアンモデルの推定は、常にＭ個のサンプルを超えており、Ｍ＊２個のサンプルのウィンドウについて時間の経過とともに調節される。Ｍは、典型的には、アプリケーション及びビデオフレームレートに応じて１０〜１０００の範囲に設定される。
【００２３】
新たなフレームが入力されると、画像の各画素位置に関して、最初に現在の値がバックグラウンドの一部か否かが評価される。そのようにするために、現在の画素値の間の正規化距離が、各色チャネルに関して各チャネルに対するバックグラウンド平均値を用いて計算される。正規化距離は、バックグラウンド画像用の標準偏差に調節された、最も近い平均に対する現在のポイントの距離である。この距離は、各チャネルの振幅または全てのチャネルの平均に関して正規化される。上記のように計算された生の距離は、平均値の均一係数で除算される。
【００２４】
正規化距離が、所定の閾値よりも大きい場合、画素はフォアグラウンド（ｆｏｒｅｇｒｏｕｎｄ）画素として分類され、かつ移動物体に割当てられる。そうでない場合、画素は、バックグラウンドの一部として見なされ、画素は、フロントエンドマスクに割当てられず、現在のバックグラウンドモデルを更新するために使用される。
【００２５】
いずれかの時点で、アルゴリズムは、バックグラウンドにおいて急激な変化があったものと推定し、候補バックグラウンドポイントを維持する。そのポイントは、更新されるか、または検出された各ポイントに関してフォアグラウンドポイントとして付与される。
【００２６】
画像が非常に大きい場合、画像が整数因子によって副次サンプルに分割されて、バックグラウンドの低解像度バージョンを評価することができる。バックグラウンド統計は、ｎ個のフレーム毎に一度更新することもできる。これは、ビデオの大きさ及びフレームレートに関係なくアルゴリズムをリアルタイムに行うのに非常に効率が良い。そのようなプロセスのＣＰＵ占有率は、これら２つのパラメータを用いて制御及び決定される。これは、利用可能な計算パワーまたは所望の計算パワーに基づいてアルゴリズムの反応性及び正確性を線形的に調節するための独特な方法である。
【００２７】
物体分類層は、移動フォアグラウンド物体（前に記載の層を参照して記載されている）を既知の物体または「ノイズ」の部類に分類する。一実施形態において、ここでは、ハールピラミッドアプローチ（Ｈａａｒ  Ｐｙｒａｍｉｄ  ａｐｐｒｏａｃｈ）のカスタム化されたバージョンが使用される。全ての移動物体が検出されると、それらは、ハールに似た特徴のカスケード分類（ピー．エー．ビオラ（Ｐ．Ａ．Ｖｉｏｌａ）、エム．ジェイ．ジョーンズ（Ｍ．Ｊ．Ｊｏｎｅｓ）、ロバストなリアルタイム顔検出（Ｒｏｂｕｓｔ  Ｒｅａｌ−Ｔｉｍｅ  Ｆａｃｅ  Ｄｅｔｅｃｔｉｏｎ）、ＩＣＣＶ  ２００１）に基づいて典型的な教師付き学習アプローチを用いて分類される。
【００２８】
実施形態によれば、システムは、訓練され、かつテストされ、アルゴリズムは、移動物体についてのみ稼動することで、訓練および入力する画像の組の可能性及び多様性が低減される。要するに、分類手法は、他の可能性があるマトリックスの画素から一つのタイプの物体を認識することとは対照的に、互いから移動する市街地物体を認識するためにのみ必要とされる。
【００２９】
追跡層は、一つの任意の物体の軌跡を時間の経過とともに検出する。システムは、現存する既知のフォアグラウンド物体または新たに合成された物体に基づく画像における軌跡のホリスティックモデル（ｈｏｌｉｓｔｉｃ  ｍｏｄｅｌ）に基づいて新規なアプローチを使用する。
【００３０】
解析層は、タイプ情報及び軌跡情報を用いて車両速度または歩行者速度、及びある場所に入るか、または出る人等の高レベルの人間が読み取り可能なデータを検出する。建物のレイアウト、車両交通の流れ、歩行者通行の流れに基づいて推定を引き出すことができる。
【００３１】
データアルゴリズム：ライン解析
実施形態は、上記のビデオアルゴリズムの主スタックから得られたデータに基づいて特定のタスクを行うデータアルゴリズムを含む。データアルゴリズムの事例としてライン解析について以下に詳細に説明する。
【００３２】
ライン解析は、ラインのビデオを用いて何人の人がラインに待機し、人が全体のラインを超えるのにどれほどの時間がかかったのかを検出するデータアルゴリズムである。実施形態は、待機するラインをリアルタイムのビデオシーケンスで解析する。アルゴリズムの目標は、ラインに加わる誰かがいるかどうかを決定するプロセスにおいて有用なライン属性のリアルタイムの推定である。例えば、現時点でラインに待機している人の数と、現在の待機時間とが抽出される。現在の待機時間は、この時点でラインに加わる人がいる場合にラインで待機しなければならない時間の近似である。図２を参照すると、解析は、新たな捕捉されたビデオフレーム毎に繰り返される３つのプロセス：１）活動エリアの検出、２）待機ライン区分化、３）属性の測定を含む。
【００３３】
図３を参照すると、第１のステップは、潜在的に人の活動があるビデオシーケンスにおける活動エリアを検出する。このステップは、以前に説明した移動フォアグラウンド検出を用いて行われる。現在のフレームは、プロセス（１．１）の移動検出及びプロセス（１．２）のフォアグラウンド検出を受けた入力である。一つのインスタンスにおけるこれらのプロセスの出力は、活動マスクを作成するように合成されて、（１．４）の輪郭抽出プロセスを受ける。このプロセスの出力は、入力ビデオデータからの待機ラインを本質的にモデリングする活動輪郭である。別のインスタンスにおけるプロセス（１．１）及び（１．２）の出力は、プロセス（１．３）のバックグラウンドモデルの更新を受ける。予測されたバックグラウンドが生成され、予測されたバックグラウンドは、プロセス（１．２）のフォアグラウンド検出に戻される。
【００３４】
プロセス（１．１）は、現在のフレーム入力の開始により具体的に稼動する。現在のフレーム入力は、プロセスＺ＾（−１）、絶対値差分、及び二値化閾値を含む非線形時間ドメインハイパスフィルターを通過する。非線形時間ドメインハイパスフィルターを通過した後、彩度を有するＲ面、Ｇ面、Ｂ面が追加される。この出力は、空間ドメイン中央値フィルタを通る。フィルタリングされると、出力は２つの経路のいずれかに進む。一つのインスタンスにおいて、出力は、時間ドメインローパスフィルタリング及び二値化閾値を有する非線形時間ドメインローパスフィルタを通る。フィルタを通った後、マスクを有するコピーが作成され、二値化閾値が求められる。この出力は、高活動エリアと見なされ、他のインスタンスによって生成される低活動エリアに加算される。その他のインスタンスにおいて、空間ドメインフィルタからの出力は、上記した同じ線形時間ドメインローパスフィルタを通過する前に、色が反転され、ノイズのあるフレームが排除される。この出力は、低活動エリアである。低活動エリアは、高活動エリアから減算されて、移動を伴うエリアが得られる。
【００３５】
プロセス（１．２）が、現在のフレーム及び予測されたバックグラウンドの入力を伴って開始される。現在のフレームと予測されたバックグラウンドとの絶対値差分が求められ、彩度を有するＲ面、Ｇ面、Ｂ面が加えられる。絶対値差分は、バックグラウンド（ＭＡＤＢ）と合成され、この二値化閾値が求められる。
【００３６】
プロセス（１．３）は、入力としての活動マスクを用いて開始することにより具体的に稼動する。活動マスクは、オープニングプロセスを介して送信され、マスクが展開される。ＭＡＭがそのプロセスの出力に導入されて、バックグラウンドが変化しないマスクエリアが、コピーされて、予測されたバックグラウンドと合成されるべく送信される。ＭＡＭが導入された後、プロセスは、マスクを反転して、バックグラウンドが変化するエリアを取得して、これらのマスクエリアを用いて現在のフレームのコピーを作成する。プロセスは、マスクのコピーも取得して、そのコピーを予測されたバックグラウンドと合成する。これらのコピーの加重合計が求められ、変化していないバックグラウンドのマスクされたコピーと合成される。
【００３７】
プロセス（１．４）の輪郭抽出は、活動マスクの入力に伴い開始される。活動マスクにオープニングが適用され、出力がＴＣ８９アルゴリズムを介して処理されて、活動輪郭が得られる。
【００３８】
図４を参照すると、第２のステージでは、第１のステップからどのエリアが実際に待機ラインと一致するかということが推測され、あらゆる他の周囲の活動が排除される。待機ライン区分化により、前のブロックから活動輪郭が求められ、活動輪郭のどれが実際に待機ラインに属しているかが判定される。アルゴリズムは、ラインヘッドがどこにあるのかを探すための手動で定義されたエリアを必要とする。ラインヘッドは、ラインにおいて人がアクセスしようとして待機しているポイントにあり、まさにアクセスしようとしている人によって構成される。そのようなラインヘッドが見つかった場合、曲線モデルを当てはめることによりラインの第１のセグメントの残りが求められる。ラインが人または遮蔽物体の間隙により不連続である場合、他の潜在的なラインの断片が探索され、かつモデルに含められる。最後に、観察があまりノイズを有していない場合、現在のフレームにおいて発見されたラインを用いて長期的なラインモデルが更新される。
【００３９】
待機ラインの画像に間隙がある状況があり得る。この状況は、人が互いに非常に離れて立っていることに起因するか、またはラインが木またはライトポール等の遮蔽物体の後ろを通っていることによる。これらの状況に対処するために、ラインの第１の輪郭のエンドポイントの後に展開している輪郭が探索される。輪郭がある条件に合致する場合、輪郭がラインの尾部に付加され、エンドポイントが更新され、潜在的なライン輪郭が発見されなくなるまでサーチプロセスが繰り返される。
【００４０】
図４を参照すると、より詳細には、待機ライン区分化のプロセスは、入力としての活動輪郭を用いて開始される。動作（２．１）では、ラインの第１の輪郭が完了して入力が生成され、その入力が動作（２．２）で処理されて、輪郭に亘る開始ポイントから最適な経路が求められる。この動作の出力は、動作（２．３）で処理されて、断片化された輪郭に亘って第１の輪郭の終了ポイントからの経路が延長される。（２．３）の出力が動作（２．４）で処理されて、ラインモデルが更新されて、ラインの曲線モデル及びライン輪郭の２つの出力が作成される。
【００４１】
ラインの第１の輪郭を見つける動作（２．１）は、活動輪郭の入力に伴って開始される。活動輪郭は、動作によって処理されて、ユーザが定義したラインスタートボックスに接触する輪郭が求められる。動作の出力は、ソートされて、最大のエリアを有する輪郭が求められる。この動作からの出力は、ラインの第１の輪郭である。
【００４２】
輪郭に亘る開始ポイントからの最適な経路を求める動作（２．２）は、入力のラインの第１の輪郭を用いる。ラインの第１の輪郭は処理されて、輪郭の曲率が抽出される。この処理の出力は曲率がローパスフィルタリングされる。曲率のフィルタリングの後、曲率の最大値が得られる。この出力の結果は、開始ポイントと利益のあるスコアＢを最大化する最大値との間の輪郭の経路を提供する。このプロセスの出力は、最適な曲線モデルである。
【００４３】
断片化された経路に亘って第１の輪郭の終了ポイントからの経路が延長する動作（２．３）は、最適な曲線モデルを入力として取得することにより動作する。続いて、最適な曲線モデルの終了ポイントが求められる。次に、最適な曲線ポイントの回りの局所間隔における派生物が求められる。次の動作は、反復プロセスに対する初期化プロセスであり、初期化プロセスでは、現在のラインの第１の輪郭がＳに格納され、全ての他の輪郭がＲに格納され、曲線の終了ポイントが経路の組Ｐの第１の要素として加えられ、この第１の要素は、添字インデックスｉからゼロを割当てることにより繰り返される。反復プロセスは、Ｒ内のラインの第１の輪郭Ｓに近く、かつ微妙な折り返しは含まない全ての輪郭要素Ｎに亘って行われ、これら２つの判断は、入力閾値マップに基づいて行われる。閾値マップは、プロセスのこの部分における入力である。出力は、２つの結果に関して解析される。Ｎのサイズが０である場合、延長経路（ｐ）が求められ、Ｎのサイズが０でなく、Ｓ＝Ｎである場合、ＲからＮが除去される。このプロセスは、現在の最適な曲線の終了ポイントから最遠のポイントのＮにおける全ての要素の平均を再計算する。派生物はこの見積もられた平均値を用いて更新される。現在の最適な曲線の終了ポイントが、派生物に亘って見積もりが最も高いＮにおける輪郭のポイントと等しくされる。このプロセスの出力が、延長された経路Ｐに加えられ、閾値マップを用いたＮの計算の反復が生じる。
【００４４】
ラインモデルを更新する動作（２．４）は、延長された経路（ｐ）の入力に伴って開始される。経路は、固定された数のポイントに副次サンプル化される。副次サンプルは、延長された経路（ｐ）の総合長さを求めるために使用され、総合長さから総合長さの逆関数が減算されて、ガウシアン推定器に入力され、かつ正規化に使用されるΔＬが生成される。
【００４５】
正規化されたΔＬが非常に高いと判定された場合、ラインの曲線モデルが求められる。正規化されたΔＬが非常に高いと判定されなかった場合、ラインのモデルは、ラインの曲線モデルを出力する前に、Ｐを用いて更新される。
【００４６】
図５及び６を参照すると、第３のステップは、関心箇所の属性を推定する。待機ラインに関して測定可能な２つの属性（ラインにおける人の数及び平均待機時間）がある。人の数は、ライン長さから発見的人口密度係数を用いて推定される。待機時間は、ライン長さ及び平均ライン速度から推測される。
【００４７】
ラインに待機している人の数の推定は、人口密度関数のラインモデルに沿った線積分である。密度関数の変数は、グラウンド面（ｇｒｏｕｎｄ  ｐｌａｎｅ）上の距離であるので、画像画素からグラウンド面の距離単位への変換は、最初に適用される必要がある。変換は、特定のカメラの内在パラメータ及び外因性パラメータに関して予め計算される。密度関数は、数値積分され、従って、結果の適切な正確性を確実なものとするために第１のスーパーサンプリングステップが必要とされる。
【００４８】
低品質の映像素材において、時には個々の人を区別することが不可能なことがあるため、全体のラインを進むのにかかる時間を知るために待機している人を追跡することが通常実現できない。代わりに、待機時間を推定するこのアプローチは、ライン長さを平均ライン速度で除算することを含む。ライン速度は、連続フレームの各ペアに亘る一組の特定箇所のライン輪郭へのオプティカルフローを計算することにより推定される。
【００４９】
特定箇所は、ライン輪郭エリアに亘ってシャイ−トマシ（Ｓｈｉ−Ｔｏｍａｓｉ）コーナー検出［１］を行うことにより見つけられる。オプティカルフローは、ルーカス−カナデ（Ｌｕｃａｓ−Ｋａｎａｄｅ）アルゴリズム［２］のピラミッド型のバージョンを用いて計算される。ノイズのあるフローベクトル（ラインを歩行する人に関するありえない速度に伴うもの）は、結果の組から除去される。ライン速度を平均速度で除算したときに、結果として生じる待機時間は多数のフレームである。この数量は、カメラのフレームレートによる。秒への変換は、結果をカメラフレームレートで除算することにより達成される。システムは各種フレームレートのビデオストリームを扱わなければならないので、この測定値を提供するフレームレート推定器が設けられる。
【００５０】
図５を参照すると、詳細には、推定することができる多くの属性のうちのいくつかは、３．１の人の数の推定及び３．２の平均待機時間の推定を含む。人の数を推定するために、ラインの曲線モデルがスーパーサンプリングされ、カメラ−グラウンド面間の変換を用いて画素における出力長さが実際のグラウンドユニットに区分化される。人の密度関数は、実際のラインに亘って積分され、人の数の推定値が生成される。
【００５１】
３．２を参照すると、ライン輪郭を変換し、最短の長さモデルに関する輪郭を取得し、ラインの曲線モデルの変換値を用いることにより平均待機時間が推定される。輪郭からマスク輪郭が生成される。続いて、（現在のフレームを用いて）マスクを有するコピーを使用してこのマスクされたフレームにおけるシャイ−トマシ特徴が求められる。また、（変換された現在のフレームを用いて）反転変換されたマスクを有するコピーを使用して、第２のコピーにおけるシャイ−トマシ特徴が求められる。両方のコピーからのシャイ−トマシ特徴は、ルーカス?カナデのピラミッド型オプティカルフローへの入力であり、その入力は、フローベクトルを算出するために供給される。続いて、ノイズのあるフリーベクトルは、フィルタリングにより除去されて、結果的に生じるベクトルは、ラインモデルに亘って射影される。
【００５２】
カメラ−グラウンド面間の変換を用いてカメラベクトルがグラウンドベクトルに変換され平均化されて、ライン速度の推定値が生成され、その推定値は、ガウシアン推定器を通して処理されたものと通さないものとの両方についてライン速度の異常値がフィルタリングされる。フィルタリングされたライン速度は、時間ドメインローパスフィルタを通して処理されて、平均待機フレーム（ライン長さがライン速度で除算されたもの）が得られる。平均待機フレームは、フィルタリングされ、待機フレーム推定器を用いてフレームから秒に変換されて、平均待機が生成される。
【００５３】
図７は、画像に組み込まれた現時点で計算された属性を有する、カメラによって捕捉された待機ラインを有するユーザインターフェースディスプレイを示す。
付加的なデータアルゴリズム
軌跡を用いた建物の入り口の自動検出：多くの軌跡の開始及び終了が建物の入り口であるエリア
上記した認識及び追跡アルゴリズムは、歩行者、車両、及び他のタイプの市街地要素の軌跡を検出、認識及び追跡することが可能である。このアルゴリズムの出力に基づき、人または車両の開始ポイント及び終了ポイントを検出することも可能である。ビデオストリームのエリアを検出することができ、その検出には、より多くの人または車両が長時間（典型的には２４時間）に亘って軌跡を開始または終了することが必要である。これらのエリアは、ビデオストリームの境界にない場合、これら要素が、現れるか、または消失するエリアとなる。
【００５４】
これらエリアのうちのいくつかは、樹冠、光景が隠れる大規模な物体等の遮蔽のエリアであり得る。そのような場合、軌跡の開始ポイント及び終了ポイントに対する明確な境界があり、遮蔽があるところでは、軌跡は全く開始あるいは終了されない。
【００５５】
軌跡がより散乱しかつ分散された状態で現れるか、または消失するような場合、おそらく建物の入り口であるということが分かる。
建物の入り口または出口を自動的に検出するために、ビデオストリーム上のマップ上の全ての開始ポイント又は終了ポイントを表現する。続いて、これらのポイントの地理的な分布の局所ウィンドウ解析を行う。モーメント解析または簡単な交差点距離解析を用いるか、または主要なコンポーネント解析を用いる。モーメントおよび距離は、建物の入り口が大きなインジケータを示すことを証明する。これは、建物を自動的に検出するのみならず、入ったり出たりする人をカウントすることを開始するのに非常に有用である。その入り口エリアにおける全ての軌跡の開始は、一人の人が建物を出るときにカウントされる。これらの入出を連続的にカウントすることにより、検出エラーに関する数を統計的に修正して、任意の場所における占有及び往来のリアルタイムのカウント値を得ることができる。このことは、人、車、あらゆるタイプの車両に関して有効である。
【００５６】
市街地シーンの自動区分化：人または車両が画像において平均的にどこに位置しているかを解析することにより、どこが歩道、道路、バイクルート、及び道路横断であるのかを自動的に検出することができる。
【００５７】
上記したものと同じアルゴリズムを用いて、市街地エリアの異なるタイプの要素についての軌跡情報を得る。このデータ解析に関して、歩行者、車両、公共輸送車両、自転車について焦点を合わせる。全ての軌跡をビデオフィードのマップ（ビデオフィード画素に対応する画素）に加えることにより、各タイプの要素がどこに移動し、かつ画像のどこに存在しているかについてのマップを得ることができる。歩行者の場合、これらのエリアは、たいてい歩道、交差道路、公園、広場であり得る。車両の場合、道路であり得る。自転車については、自転車レーンであり得る。非重複時間において車両及び歩行者が検出される場合、これは横断歩道であり得る。このマップは、物体の検出及び分類が非常に正確でない場合であっても全く正確である。実施形態は、典型的には１０%未満の偽陽性率及び５０%を超える検出率を有する検出器を用いて動作する。
【００５８】
このアプローチを用いて、画像のマップが自動的に組み立てられ、分類結果を改善することができる。次のプロセスでは、このマップに基づいて検出スコアを掲示することができ、歩道エリアにおける歩行者の検出スコアが増加し、非分類のエリア（建物、空他）において減少する。また、直前に記載した事後アプローチと対照的な事前の最適化アプローチにおいて画像の場所に基づいてアルゴリズムパラメータを調節することができる。
【００５９】
「バーチャルターンスタイル」（Ｖｉｒｔｕａｌ  ｔｕｒｎｓｔｉｌｅ）アプローチ：何人の人がビデオ上に描かれたラインを横切るかをカウントする。
データ解析において、グループが考慮される。アルゴリズムは、第１のステップにおいて自己較正を行って、人の平均規模を測定する。これを行うために、アルゴリズムは、閾値を超える全ての移動物体のサイズを登録する。アルゴリズムは、それらを大抵は人であると推測する。アルゴリズムは、それらのうちの少なくとも任意のパーセントＮは、グループに合成されない。全てのサイズを指示した場合、Ｎ＊総合要素／１００の要素は、特有の人のサイズを表す。これは、何人の人がラインを横切る塊内に存在しているのかを推定するのに使用される。人と要素との間には常にオーバラップが存在していると推定され、回帰関数において塊における画素の数から塊における人の数に変わる。代替的に、グラウンドトゥルース（ｇｒｏｕｎｄ  ｔｒｕｔｈ）アプローチを用いてパラメータを調節して、線形パート当たり回帰関数（ｌｉｎｅａｒ  ｐｅｒ  ｐａｒｔ  ｒｅｇｒｅｓｓｉｏｎ  ｆｕｎｃｔｉｏｎ）を有するようにする。この場合、線形パート当たりのモデル（一組の連結されたセグメント）が関数ｆ（ｘ）＝ｎとして設計され、ここで、ｘは、画素の数であり、ｎは見積もった人の数である。線形回帰を用いて開始され、サンプルが２で除算されて２つのサブセットが設定され、所望の数のセグメント（典型的には８）に到達するまで繰り返される。
【００６０】
この方法論は、図８に示すように、スマートフォンカメラで捕捉されたＮＹＣにおける９−１１メモリアルパークの景色でテストされた。通常の状態では９８%までの正確性がある。平均の状態での正確性は８６%に達する。
【００６１】
本明細書に記載されたシステム及び方法の態様は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルアレイロジック（ＰＡＬ）デバイス、電気的プログラマブルロジック及びメモリデバイス、及びスタンダードなセルベースのデバイス等のプログラマブルロジックデバイス（ＰＬＤ）、及び特定用途向け集積回路（ＡＳＩＣ）を含む各種回路に機能的にプログラムされたものとして実施され得る。システムの態様を実施する他の可能性のあるものとしては、メモリを有するマイクロコントローラ（電気的消去書き込み可能なリードオンリーメモリ（ＥＥＰＲＯＭ等））、埋め込み式マイクロプロセッサ、ファームウェア、ソフトウェアその他を含む。更に、システムの態様は、ソフトウェアベースの回路エミュレーション、個別ロジック（シーケンシャル及びコンビナトリアル）、カスタムデバイス、ファジー（ニューラル）ロジック、量子デバイス、上記デバイスタイプのいずれかの混成を有するマイクロプロセッサにおいて実施され得る。もちろん、基盤デバイス技術が各種部品タイプ、例えば相補金属酸化物半導体（ＣＭＯＳ）等の金属酸化物半導体電界効果トランジスタ（ＭＯＳＦＥＴ）技術、エミッタ結合ロジック（ＥＣＬ）等のバイポーラ技術、重合体技術（例えば、シリコン共役重合体及び金属共役重合体金属構造）、混合アナログ及びデジタル他において提供されてもよい。
【００６２】
本明細書に開示された各種機能または処理は、各種コンピュータ読み取り可能な媒体に具現化されたデータおよび／または命令として記述され、動作の点で、レジスタトランスファ、ロジック部品、トランジスタ、レイアウト配置、および／または他の特性に具現化され得る。そのようなフォーマット化されたデータおよび／または命令が具体化されたコンピュータ読み取り可能な媒体は、各種フォーム（例えば、光学、磁気または半導体ストレージ媒体）の不揮発性ストレージ媒体及びそのようなフォーマット化されたデータおよび／または命令を無線、光学、または有線信号伝達媒体を介して転送するために使用され得る搬送波、またはそれらの組み合わせを含むが、これらに限定されない。そのようなフォーマット化されたデータおよび／または命令を搬送波で転送する例は、インターネットおよび／またはコンピュータネットワークを介して一つまたは複数のデータ転送プロトコル（ＨＴＴＰ、ＦＴＰ、ＳＭＴＰ他）により転送（アップロード、ダウンロード、電子メール他）することを含むが、これに限定されない。一つまたは複数のコンピュータ読み取り可能な媒体を介してコンピュータシステム内に受信する場合、システムの下で部品および／またはプロセスのそのようなデータおよび／または命令ベースの記述された表現は、一つまたは複数の他のコンピュータプログラムと連動してコンピュータシステム内の処理エンティティ（例えば、一つまたは複数のプロセッサ）によって処理され得る。
【００６３】
文脈上明確に別段の要求がない限り、明細書および特許請求の範囲を通して、用語「備える」、「備えている」等は、排他的または網羅的な意味とは対照的に包括的な意味で解釈され、換言すると、含むがそれに限定されないという意味である。単数または複数の数字を使用する語は、それぞれ複数または単数をも含む。さらに、「本明細書」、「以下の」、「上の」、「下の」および類似の用語の単語は、本出願全体を指し、本出願の特定の部分を指すものではない。用語「または」が２つ以上の項目のリストを参照するのに使用されるとき、その用語は、リスト内の項目のいずれか、リスト内のすべての項目、およびリスト内の項目の組み合わせの解釈のすべてをカバーする。
【００６４】
システムおよび方法の図示された実施形態の上記の説明は、網羅的であること、またはシステムおよび方法を開示された厳密な形態に限定することを意図したものではない。システム構成要素および方法の特定の実施形態および実施例は、説明の目的で本明細書に記載されているが、当業者が認識するように、システム、構成要素および方法の範囲内で各種同等の変更が可能である。本明細書で提供されるシステムおよび方法の教示は、上記のシステムおよび方法だけでなく、他の処理システムおよび方法にも適用することができる。
【００６５】
上述の各種実施形態の要素および動作は、さらなる実施形態を提供するために組み合わせることができる。上記及び他の変更は、上記の詳細な説明に照らして、システム及び方法に対して行うことができる。
【００６６】
一般に、以下の特許請求の範囲において、使用される用語は、システムおよび方法を明細書および特許請求の範囲に開示される特定の実施形態に限定するものと解釈されるべきではなく、特許請求の範囲の下で動作するすべての処理システムを含むものと解釈されるべきである。したがって、システムおよび方法は、本開示によって制限されず、代わりにシステムおよび方法の範囲は、特許請求の範囲によって完全に決定される。
【００６７】
システムおよび方法の特定の態様は、いくつかの請求項の形態で以下に示されるが、本発明者は、任意の数の請求形態においてシステムおよび方法の各種態様を企図する。例えば、システムおよび方法の1つの側面のみが機械読み取り可能な媒体に具体化されるとして列挙されてもよいが、他の態様も同様に機械読み取り可能な媒体に具体化されてもよい。したがって、本発明者らは、システムおよび方法の他の態様のためのそのような追加請求形態を追求するために、出願後に追加の請求を加える権利を留保する。
【図１】
2020149704.tif 000003
【図２】
2020149704.tif 000004
【図３】
2020149704.tif 000005
【図４】
2020149704.tif 000006
【図５】
2020149704.tif 000007
【図６】
2020149704.tif 000008
【図７】
2020149704.tif 000009
【図８】
2020149704.tif 000010