(57)【要約】      （修正有）【課題】異なるコンテキスト情報に適応して画像内のオブジェクトを分析する方法を提供する。【解決手段】オブジェクトを分析する方法３３０は、画像の画像テンソルを決定する工程１１０と、画像のコンテキスト情報１０２を受け取り、コンテキスト情報のコンテキストテンソルを決定する工程１２０と、結合テンソルを形成するために画像テンソルとコンテキストテンソルとを結合する工程１３０と、結合テンソルをフィルタリングする工程１３５と、結合テンソルに基づいてオブジェクトの属性としての前景マスクを推定する工程１４０と、を備える。【選択図】図１
2019220174.tif 000002
【特許請求の範囲】
【請求項１】
画像内のオブジェクトを分析する方法であって、
画像の画像テンソルを決定する工程と、
前記画像のコンテキスト情報を決定する工程と、
前記決定されたコンテキスト情報のコンテキストテンソルを決定する工程と、
結合テンソルを形成するために、前記画像テンソル及び前記コンテキストテンソルを結合する工程と、
前記結合テンソルに基づいて前記オブジェクトの属性を推定する工程と、
を備える方法。
【請求項２】
フィルタリングされたテンソルを形成するために前記結合テンソルをフィルタリングするフィルタサブネットワークを適用する工程をさらに備える、請求項１に記載の方法。
【請求項３】
各工程が畳み込みニューラルネットワークによって行われる、請求項１に記載の方法。
【請求項４】
前記属性が、前景マスク及び特徴のうちのいずれか１つである、請求項３に記載の方法。
【請求項５】
前記オブジェクトの前記属性を推定する前記工程が、二次元行列、又はベクトルを出力する、請求項４に記載の方法。
【請求項６】
前記コンテキスト情報が、前記オブジェクトの逸脱角度、気象情報、カメラ設定、時刻、及び環境情報のうちのいずれか１つである、請求項３に記載の方法。
【請求項７】
前記畳み込みニューラルネットワークが、連続学習方法又は並列学習方法によって学習される、請求項３に記載の方法。
【請求項８】
前記コンテキストテンソルを前記決定する前記工程が、一次元ベクトルをテンソルに再形成することを含む、請求項３に記載の方法。
【請求項９】
前記結合テンソルが、前記画像テンソル及び前記コンテキストテンソルの合計、又は前記画像テンソル及び前記コンテキストテンソルの連結に基づいて形成される、請求項３に記載の方法。
【請求項１０】
前記コンテキスト情報が、前記コンテキストテンソルを置き換えるための利用不可値を含む、請求項３に記載の方法。
【請求項１１】
画像内のオブジェクトを分析するシステムであって、
プロセッサと、
プロセッサと通信するメモリと、を備え、
前記メモリは、前記プロセッサによって実行可能なアプリケーションプログラムを有し、前記プロセッサは、前記画像内の前記オブジェクトを分析する方法を実行するために、前記アプリケーションプログラムを実行し、
前記方法は、
前記画像の画像テンソルを決定する工程と、
前記画像のコンテキスト情報を決定する工程と、
前記決定されたコンテキスト情報のコンテキストテンソルを決定する工程と
結合テンソルを形成するために、前記画像テンソル及び前記コンテキストテンソルを結合する工程と、
前記結合テンソルに基づいて前記オブジェクトの属性を推定する工程と、
を含む、システム。
【請求項１２】
前記方法が、フィルタリングされたテンソルを形成するために前記結合テンソルをフィルタリングするフィルタサブネットワークを適用する工程をさらに備える、請求項１１に記載のシステム。
【請求項１３】
各工程が畳み込みニューラルネットワークによって行われ、前記畳み込みニューラルネットワークは、前記メモリに格納された前記アプリケーションプログラムのうちの１つである、請求項１１に記載のシステム。
【請求項１４】
前記属性が、前景マスク及び特徴のうちのいずれか１つである、請求項１３に記載のシステム。
【請求項１５】
前記オブジェクトの属性を推定する前記工程が、二次元行列、又はベクトルを出力する、請求項１４に記載のシステム。
【請求項１６】
前記コンテキスト情報が、前記オブジェクトの逸脱角度、気象情報、カメラ設定、時刻、及び環境情報のうちのいずれか１つである、請求項１３に記載のシステム。
【請求項１７】
前記畳み込みニューラルネットワークが、連続学習方法又は並列学習方法によって学習される、請求項１３に記載のシステム。
【請求項１８】
前記コンテキストテンソルを前記決定する前記工程が、一次元ベクトルをテンソルに再形成することを含む、請求項１３に記載のシステム。
【請求項１９】
前記結合テンソルが、前記画像テンソルと前記コンテキストテンソルとの合計、又は前記画像テンソルと前記コンテキストテンソルとの連結に基づいて形成される、請求項１３に記載のシステム。
【請求項２０】
前記コンテキスト情報は、前記コンテキストテンソルを置き換えるための利用不可値を含む、請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、一般に画像処理に関し、及び、特に、人工ニューラルネットワークを用いて画像のコンテキスト情報に基づいて画像内のオブジェクトの属性を決定することに関する。
【背景技術】
【０００２】
ショッピングセンター、駐車場、列車の駅などの公共施設は、ビデオカメラの大規模ネットワークを使用する監視の対象となることが増えている。大規模ビデオ監視の応用分野は、セキュリティ、安全性、交通管理、及びビジネス分析を含む。
【０００３】
これらのアプリケーションの多くにおける重要なタスクは、複数のカメラビューにわたる迅速かつロバストなオブジェクトマッチングである。「ハンドオフ」と呼ばれる一例では、オブジェクトマッチングは、重複する視野を有する第一及び第二のカメラにわたって持続的に追跡される複数のオブジェクトに適用される。「オブジェクト同定」と呼ばれる別の例では、オブジェクトマッチングは、重複しない視野を有するネットワーク内の複数のカメラにわたって対象の特定のオブジェクトを位置特定することに適用される。以下の説明では、「オブジェクトマッチング」という用語は、「ハンドオフ」、「オブジェクト同定」、「オブジェクト識別」、及び「オブジェクト認識」という用語を含むものと理解されるだろう。
【０００４】
カメラは、一度に画像を取り込む。画像は、視覚的要素から構成される。用語「画素」、「画素位置」、及び「画像位置」は、本明細書を通して、取り込まれた画像内の視覚要素のうちの１つを指すために交換可能に使用される。画像の各画素は、その特定の画素で取り込まれたシーンの特性を特徴付ける１つ又は複数の値によって説明される。一例では、単一の強度値が、その画素位置におけるシーンの輝度を特徴付ける。別の例において、値の三つ組は、その画素位置におけるシーンの色を特徴付ける。さらに、画像内の「領域」、「画像領域」又は「セル」は、１つ又は複数の空間的に隣接する視覚要素の集合を指す。
【０００５】
「バウンディングボックス」は、画像内のオブジェクトを囲む直線で囲まれた画像領域を指す。本開示では、バウンディングボックスは、対象のオブジェクトを含み、それはビデオ監視の適用において通常は歩行者である。
【０００６】
オブジェクトマッチングのための一般的なアプローチは、各オブジェクトについて「外観シグネチャ」を抽出するステップと、及び、異なるオブジェクト間の類似性を計算するために外観シグネチャを使用するステップと、を含む。本明細書全体を通して、「外観シグネチャ」という用語は、オブジェクトの外観又は画像の領域を合計する値のセットを指し、「外観モデル」、「特徴記述子」及び「特徴ベクトル」という用語を含むものと理解されるであろう。
【０００７】
外観シグネチャを取得するステップの１つは、オブジェクト自体に属する撮像画像の１つの領域（前景としても知られている）と、シーンに属する取り込まれた画像の別の領域（背景としても知られている）とを分離することである。このプロセスは、一般に「前景分離」又は「前景背景分類」として知られている。
【０００８】
そのような分析を実行するために一般に使用されるツールの１つは、人工ニューラルネットワーク（ＡＮＮ）を使用することである。人工ニューラルネットワークは、ノードのセット、重みのセット、及び接続とも呼ばれるエッジのセットを含む。各エッジは重み付けされ、ＡＮＮの２つのノードを接続する。重み付けされたエッジは、重み付けされた接続とも呼ばれる。人工ニューラルネットワークは、学習入力例及び学習出力例のセットを使用して学習される。例えば、学習入力は、画像のＲＧＢ画素であってもよく、出力は、各画素が前景の一部であるという尤度であってもよい。以下、このような出力を「前景マスク」と呼ぶ。
【０００９】
人工ニューラルネットワークの１つのタイプは、畳み込みニューラルネットワーク（ＣＮＮ）と呼ばれる。ＣＮＮは、重みと共にＡＮＮノードを層に配置する。「畳み込み」、「最大プーリング」、「正規化線形関数（ＲｅＬＵ）」、及び「ソフトマックス」などの演算子は、ＣＮＮの１つ又は複数の層（サブネットワークとも呼ばれる）によって実行される。各層及びサブネットワークは、ＣＮＮの次の層及びサブネットワークのノード入力値をそれぞれ計算する。
【００１０】
各層が演算を実行する例では、第一の層は、例えば画像データであり得るＣＮＮへの入力である。各演算子（すなわち、この例では層）を介して、ＣＮＮは、次の層のノード入力値を計算する。最後のレイヤは出力レイヤであり、これは、各画素が画像データの前景（第一のレイヤへの入力である）の一部である尤度であってもよい。前景分離のためのＣＮＮは、一般に、上記演算子と同様に「デコンボリューション」演算子を使用する。ＣＮＮは、別のデータセットを使用する前に、１つのデータセットを使用して学習されてもよい。このプロセスは、一般に「事前学習」として知られている。事前学習は、後続の学習、及び最終的には画像の前景分離のためのより良好な初期重みを提供する。
【００１１】
以下に、ＣＮＮが実行できる演算のいくつかを説明する。
【００１２】
畳み込みは、一般に知られているフィルタ演算であり、図１０に示されている。図１０は、「ｃｏｎｖ３×３」演算を示し、これは、与えられた二次元層１０２０に適用されている３×３線形フィルタ１０１０を意味する。３×３線形フィルタ１０１０の二次元層１０２０への適用は、新しい二次元層１０３０の形成をもたらす。
【００１３】
例えば、Ｉ（ｘ，ｙ）を座標（ｘ，ｙ）を有する二次元層１０２０とし、ｆ（ｕ，ｖ）（ｕ＝−１、０、１、ｖ＝−１、０、１）を「３×３カーネル」１０１０とする。ｆ（ｕ，ｖ）の値は、カーネルの「重み」としても知られている。（ｉ＊ｆ）によって表される、層１０２０にｃｏｎｖ３×３を適用したことによる出力は、
【数１】
2019220174.tif 000003
である。
【００１４】
３×３以外の異なるサイズの畳み込みカーネルを有することも可能である。さらに、三次元層に畳み込みを適用することも可能である。
【数２】
2019220174.tif 000004
【００１５】
ここで、入力三次元層は、サイズＷ×Ｈ×Ｃを有する。
【００１６】
ｄｅｃｏｎｖで表されるデコンボリューションは、一般に知られているフィルタ演算である。デコンボリューション演算の一例を図１１に示す。二次元層１１１０の入力が与えられると、ゼロパディングが二次元層１１２０の要素間に挿入される。各要素１１１１の値は、間にゼロ値要素を伴って、新しい位置１１２１に単にコピーされる。次いで、畳み込み（図１０参照）がパディングされた層に適用され、デコンボリューションされた層１１３０を形成する。異なるサイズのカーネル及び異なる数のパディング要素が適用されることができる。特に、二次元層１１２０内にゼロ要素の余分な行及び列をパディングすることによって、入力層１１１０のちょうど二倍のサイズであるデコンボリューションされた層１１３０を得ることができる。
【００１７】
最大プーリングは、二次元層を収縮させるためのフィルタである。２×２のフィルタを仮定すると、最
大プーリング演算は、その二次元層を隣接する２×２の重なり合わない多くの領域に分割する。各領域の最大要素は、結果として得られる二次元層に対する要素を形成する。その結果として得られる層は、入力層の半分の寸法を有する。
【００１８】
一般にｆｃで示される全結合層は、線形演算を適用するフィルタである。ｘ（ｉ）、ｙ（ｊ）（ｉ＝１、２、３、．．．、Ｉ、ｊ＝１、２、３、．．．、Ｊ）をそれぞれ入力ベクトル及び出力ベクトルとする。ｗ（ｊ，ｉ）、ｂ（ｊ）をそれぞれ重み及びバイアスとする。出力ｙ（ｊ）は、
【数３】
2019220174.tif 000005
である。
【００１９】
ＣＮＮのようなツールを供給されても、前景分離は依然として困難な問題である。１つの課題はＣＮＮを異なるコンテキスト情報に適応させることであって、それは１つの環境での前景分離のために学習されたＣＮＮは、異なる環境に対してうまく機能しない可能性があるからである。コンテキスト情報（本開示ではコンテキストとも呼ばれる）は、画像に関連するが、その画像の視覚要素又はメタデータの一部ではない追加情報を指す。この用語「コンテキスト」又は「コンテキスト情報」については、以下で詳細に説明する。
【００２０】
群衆計数のための１つの従来の方法は、複数のコンテキストに適応するために、適応畳み込みニューラルネットワーク（ＡＣＮＮ）を使用する。ＡＣＮＮは、コンテキスト情報に従って畳み込みの重みを変更することができる畳み込み層（又はサブネットワーク）を有する。しかし、重みがコンテキスト情報によって制御されるので、これらの畳み込み演算層がコンテキスト情報なしで事前学習されることは困難である。
【００２１】
計算コストは別の課題である。ＣＮＮは、多数の画像を処理するための莫大な計算コストを被っている。この問題は、ＣＮＮが、デスクトップコンピュータよりも少ない処理リソースを有する携帯製品、例えば、カメラに組み込まれる必要がある場合に、より困難になる。
【発明の概要】
【００２２】
本明細書は、画像のコンテキスト情報を使用するＣＮＮを使用する前景分離のための方法及びシステムを提供する。
【００２３】
本発明の目的は、既存の構成の１つ又は複数の欠点を実質的に克服するか、又は少なくとも改善することである。
【００２４】
本開示の一態様は、画像の画像テンソルを決定する工程と、前記画像のコンテキスト情報を決定する工程と、前記決定されたコンテキスト情報のコンテキストテンソルを決定する工程と、結合テンソルを形成するために、前記画像テンソル及び前記コンテキストテンソルを結合する工程と、前記結合テンソルに基づいて前記オブジェクトの属性を推定する工程と、を備える、前記画像内の前記オブジェクトを分析する方法である。
【００２５】
本開示の別の態様は、システムであって、プロセッサと、プロセッサと通信するメモリであって、前記メモリは、前記プロセッサによって実行可能なアプリケーションプログラムを有し、前記プロセッサが、前記アプリケーションプログラムを実行して、前記画像内の前記オブジェクトを分析する方法を実行し、前記方法が、前記画像の画像テンソルを決定する工程と、前記画像のコンテキスト情報を決定する工程と、前記決定されたコンテキスト情報のコンテキストテンソルを決定する工程と結合テンソルを形成するために、前記画像テンソル及び前記コンテキストテンソルを結合する工程と、前記結合テンソルに基づいて前記オブジェクトの属性を推定する工程と、を含む、メモリと、を備える、前記画像内の前記オブジェクトを分析するシステムである。
【図面の簡単な説明】
【００２６】
以下の図面を参照して、本発明の１つ又は複数の実施形態を説明する。
【００２７】
【図１】図３に示される方法のオブジェクト属性を推定するサブプロセスのフローチャート図である。
【００２８】
【図２】図３に示される方法のオブジェクト属性を推定する別のサブプロセスのフローチャート図である。
【００２９】
【図３】本開示の一態様によるオブジェクト属性推定方法を示すフローチャート図である。
【００３０】
【図４】図３の方法によって処理されている画像のコンテキストの例示である。
【００３１】
【図５】図４に示される例示のコンテキスト情報を決定するフローチャート図である。
【００３２】
【図６】図１及び２に示されるサブプロセスで使用される二つのテンソルを結合する連結方法を示す。
【００３３】
【図７】図３に示されるオブジェクト属性推定方法で使用されるＣＮＮを学習する方法のフローチャート図である。
【００３４】
【図８Ａ】図３に示される方法が実施されることができる汎用コンピュータシステムの概略ブロック図である。
【００３５】
【図８Ｂ】図３に示される方法が実施されることができる汎用コンピュータシステムの概略ブロック図である。
【００３６】
【図９】図３に示されるオブジェクト属性推定方法で使用されるＣＮＮを学習する代替方法のフローチャート図である。
【００３７】
【図１０】ＣＮＮにおける畳み込み演算を示す。
【００３８】
【図１１】ＣＮＮにおけるデコンボリューション演算を示す。
【００３９】
【図１２】図１及び２に示されるサブプロセスで使用される二つのテンソルを結合する合計方法を示す。
【発明を実施するための形態】
【００４０】
添付の図面のいずれか１つ又は複数において、ステップ及び／又は特徴へと参照が行われ、それらが同じ参照番号を有する場合、これらのステップ及び／又は特徴は、その反対の意図が現れない限り、本説明の目的のために、同じ機能又は操作を有する。
【００４１】
「背景技術」の節及び従来技術の構成に関する上記の節に含まれる議論は、それぞれの公開及び／又は使用を通じて公開知識を形成しているかもしれない文書又はデバイスの議論に関することに留意されたい。そのような議論は、本発明者又は特許出願人による表現として解釈されるべきではなく、そのような文書又はデバイスは、いかなる形であれ、当技術分野における技術常識の一部を形成する。
【００４２】
図３は、そのような推定を実行するためにＣＮＮを使用するオブジェクト属性推定方法を実行する方法３００を示す。方法３００は、画像を入力として受け取り、受信画像内のオブジェクトの推定属性（例えば、前景マスク、特性）を出力する。方法３００は、図８Ａ及び図８Ｂに表される汎用コンピュータシステムによって実装することができる。
【００４３】
［コンピュータ構造］
図８Ａ及び図８Ｂは、説明された様々な構成が実施されることができる汎用コンピュータシステム８００を表す。
【００４４】
図８Ａに示すように、コンピュータシステム８００は、コンピュータモジュール８０１、キーボード８０２、マウス・ポインタ・デバイス８０３、スキャナ８２６、カメラ８２７、及びマイクロフォン８８０などの入力デバイス、並びにプリンタ８１５、ディスプレイ・デバイス８１４、及びスピーカ８１７を含む出力デバイスを含む。外部変調器−復調器（モデム）送受信デバイス８１６は、接続８２１を介して通信ネットワーク８２０と通信する及び通信を受け取るために、コンピュータモジュール８０１によって使用されてもよい。通信ネットワーク８２０は、インターネット、セルラー通信ネットワーク、又はプライベートワイドエリアネットワーク（ＷＡＮ）などのようなＷＡＮであってもよい。接続８２１が電話回線である場合、モデム８１６は、従来の「ダイヤルアップ」モデムであってもよい。あるいは、接続８２１が大容量（例えばケーブル）接続である場合、モデム８１６はブロードバンドモデムであってもよい。無線モデムはまた、通信ネットワーク８２０への無線接続のために使用されてもよい。
【００４５】
コンピュータモジュール８０１は、一般に、少なくとも１つのプロセッサユニット８０５と、メモリユニット８０６とを含む。例えば、メモリユニット８０６は半導体ランダムアクセスメモリ（ＲＡＭ）及び半導体リードオンリメモリ（ＲＯＭ）を有していてもよい。コンピュータモジュール８０１は、ビデオディスプレイ８１４、スピーカ８１７、及びマイクロフォン８８０に結合するオーディオ・ビデオ・インターフェース８０７と、キーボード８０２、マウス８０３、スキャナ８２６、カメラ８２７、及び任意選択でジョイスティック又は他のヒューマン・インターフェース・デバイス（図示せず）に結合するＩ／Ｏインターフェース８１３と、並びに外部モデム８１６及びプリンタ８１５のためのインターフェース８０８と、を含む、複数の入力／出力（Ｉ／Ｏ）インターフェースもまた含む。いくつかの実装形態では、モデム８１６は、コンピュータモジュール８０１内、例えば、インターフェース８０８内に組み込まれてもよい。コンピュータモジュール８０１はローカルネットワークインターフェース８１１も有し、それがローカルエリアネットワーク（ＬＡＮ）として知られるローカルエリア通信ネットワーク８２２への接続８２３を介したコンピュータシステム８００の結合を可能にする。図８Ａに示されるように、ローカル通信ネットワーク８２２は、接続８２４を介してワイドネットワーク８２０に結合することもでき、接続８２４は、通常は、いわゆる「ファイアウォール」デバイス又は同様の機能のデバイスを含む。ローカルネットワークインターフェース８１１は、イーサネット（登録商標）回路カード、ブルートゥース（登録商標）無線構成、又はＩＥＥＥ８０２．１１無線構成を備えていてもよいが、インターフェース８１１のために多数の他のタイプのインターフェースが使用されてもよい。
【００４６】
Ｉ／Ｏインターフェース８０８及び８１３は、シリアル及びパラレル接続のいずれか又は両方を提供することができ、前者は、通常は、ユニバーサルシリアルバス（ＵＳＢ）規格に従って実装され、対応するＵＳＢコネクタ（図示せず）を有する。記憶デバイス８０９が提供され、通常はハードディスクドライブ（ＨＤＤ）８１０を含む。フロッピーディスク・ドライブ及び磁気テープ・ドライブ（図示せず）などのような他の記憶デバイスも使用されることができる。光ディスクドライブ８１２は、通常は、データの不揮発性ソースとして機能するように提供される。このような光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク（商標））、ＵＳＢ−ＲＡＭ、ポータブル、外部ハードドライブ、及びフロッピーディスクのような携帯型メモリデバイスは、システム８００への適切なデータソースとして使用されてもよい。
【００４７】
コンピュータモジュール８０１の構成要素８０５〜８１３は、通常は、相互接続されたバス８０４を介して、当業者に知られているコンピュータシステム８００の従来の演算モードをもたらす手段で通信する。例えば、プロセッサ８０５は、接続８１８を使用してシステムバス８０４に結合される。同様に、メモリ８０６及び光ディスクドライブ８１２は、接続８１９によってシステムバス８０４に結合される。説明された構成が実施されることのできるコンピュータの例は、ＩＢＭ−ＰＣ及び互換機、Ｓｕｎスパークステーション、Ａｐｐｌｅ  Ｍａｃ（商標）又は同様のコンピュータシステムを含む。
【００４８】
以下に説明される方法３００及び他の方法はコンピュータシステム８００を使用して実装されてもよく、描かれる図３、１、２、５、７及び９は、コンピュータシステム８００内で実行可能な１つ又は複数のソフトウェアアプリケーションプログラム８３３として実装されてもよい。特に、方法３００のステップは、コンピュータシステム８００内で実行されるソフトウェア８３３内の命令８３１（図８Ｂ参照）によってなされる。ソフトウェア命令８３１は、それぞれが１つ又は複数の特定のタスクを実行するための１つ又は複数のコードモジュールとして形成されることができる。ソフトウェアはまた、２つの別個の部分に分割されてもよく、そこでは、第一の部分及び対応するコードモジュールは説明された方法を実行し、第二の部分及び対応するコードモジュールは第一の部分とユーザとの間のユーザインターフェースを管理する。
【００４９】
ソフトウェアは、例えば、以下に説明される記憶デバイスを含むコンピュータ可読媒体に格納されてもよい。ソフトウェア８３３は、通常、ＨＤＤ８１０又はメモリ８０６に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム８００に読み込まれ、次いで、コンピュータシステム８００によって実行される。したがって、例えば、ソフトウェア８３３は、光ディスクドライブ８１２によって読み取られる光学的に読み取り可能なディスク記憶媒体（例えば、ＣＤ−ＲＯＭ）８２５に格納されてもよい。そのようなソフトウェア又はコンピュータ可読媒体に記録されたコンピュータプログラムを有するコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータシステム８００におけるコンピュータプログラム製品の使用は、好ましくは、説明された方法を実装するための都合の良い装置をもたらす。
【００５０】
いくつかの場合では、アプリケーションプログラム８３３は、１つ又は複数のＣＤ−ＲＯＭ８２５上で符号化されてユーザに供給され、及び対応するドライブ８１２を介して読み取られてもよく、又は、ネットワーク８２０又は８２２からユーザによって読み取られてもよい。さらに、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム８００に読み込まれることもできる。コンピュータ可読記憶媒体は、実行及び／又は処理のために、記録された指示及び／又はデータをコンピュータシステム８００に提供する任意の非一時的有形記憶媒体を指す。そのような記憶媒体の例には、そのようなデバイスがコンピュータモジュール８０１の内蔵又は外付けであるか否かに関わらず、フロッピーディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイ（商標）ディスク、ハードディスクドライブ、ＲＯＭ若しくは集積回路、ＵＳＢメモリ、光磁気ディスク、又はＰＣＭＣＩＡカードなどのコンピュータ可読カード等が含まれる。ソフトウェア、アプリケーションプログラム、命令、及び／又はデータのコンピュータモジュール８０１への提供にも関与し得る一時的又は非有形のコンピュータ可読伝送媒体の例には、別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続と同じく無線又は赤外線伝送チャネルを含み、並びに電子メール伝送及びウェブサイト等に記録された情報を含むインターネット又はイントラネットを含む。
【００５１】
アプリケーションプログラム８３３の第二の部分及び上述の対応するコードモジュールは、表示部８１４上にレンダリングされるか、又は他の方法で表される１つ又は複数のグラフィカルユーザインターフェース（ＧＵＩ）を実装するために実行されることができる。通常、キーボード８０２及びマウス８０３の操作を通じて、コンピュータシステム８００及びアプリケーションのユーザは、ＧＵＩに関連付けられたアプリケーションに制御コマンド及び／又は入力を提供するために、機能的に適応可能な方法でインターフェースを操作してもよい。スピーカ８１７を介して出力されるスピーチプロンプト及びマイクロフォン８８０を介して入力されるユーザ音声コマンドを利用するオーディオ・インターフェースなど、機能的に適応可能なユーザインターフェースの他の形態も実装されてもよい。
【００５２】
図８Ｂは、プロセッサ８０５及び「メモリ」８３４の詳細な概略ブロック図である。メモリ８３４は、図８Ａのコンピュータモジュール８０１によってアクセスされ得る全てのメモリモジュール（ＨＤＤ８０９及び半導体メモリ８０６を含む）の論理的な集合を表す。
【００５３】
コンピュータモジュール８０１が最初に電源投入されると、パワーオン自己テスト（ＰＯＳＴ）プログラム８５０を実行する。ＰＯＳＴプログラム８５０は、通常、図８Ａの半導体メモリ８０６のＲＯＭ８４９に格納される。ソフトウェアを格納するＲＯＭ８４９などのようなハードウェアデバイスは、ファームウェアと呼ばれることもある。ＰＯＳＴプログラム８５０は、適切な機能を保証するためにコンピュータモジュール８０１内のハードウェアを検査し、並びに、通常プロセッサ８０５、メモリ８３４（８０９、８０６）、及び、通常ＲＯＭ８４９に格納されてもいる基本入出力システムソフトウェア（ＢＩＯＳ）モジュール８５１を、正しい演算のために確認する。一度ＰＯＳＴプログラム８５０が正常に動作すると、ＢＩＯＳ８５１は、図８Ａのハードディスクドライブ８１０を起動する。ハードディスクドライブ８１０の起動は、ハードディスクドライブ８１０上に常駐するブートストラップローダプログラム８５２を、プロセッサ８０５を介して引き起こす。これにより、オペレーティングシステム８５３がＲＡＭメモリ８０６に読み込まれ、そこでオペレーティングシステム８５３が演算を開始する。オペレーティングシステム８５３は、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインターフェース、及び一般的なユーザインターフェースを含む様々な高レベル機能を実現するための、プロセッサ８０５によって実行可能なシステム・レベル・アプリケーションである。
【００５４】
オペレーティングシステム８５３は、コンピュータモジュール８０１上で動作する各プロセス又はアプリケーションが、別のプロセスに割り当てられたメモリと衝突することなく実行するのに十分なメモリを有することを保証するよう、メモリ８３４（８０９、８０６）を管理する。さらに、図８Ａのシステム８００で利用可能な異なるタイプのメモリは、各プロセスが効果的に動作できるように、適切に使用されなければならない。したがって、集約的なメモリ８３４は、メモリの特定のセグメントがどのように割り当てられるかを示すことを意図するものではなく（特に断らない限り）、むしろコンピュータシステム８００によってアクセス可能なメモリ及びそのようなものがどのように使用されるかの一般的なビューを提供することを意図するものである。
【００５５】
図８Ｂに示されるように、プロセッサ８０５は、制御ユニット８３９、算術論理ユニット（ＡＬＵ）８４０、及びキャッシュメモリと呼ばれることもあるローカル又は内部メモリ８４８を含む複数の機能モジュールを含む。キャッシュメモリ８４８は、通常、レジスタセクション内に多数の記憶レジスタ８４４〜８４６を含む。１つ又は複数の内部バス８４１は、これらの機能モジュールを機能的に相互接続する。プロセッサ８０５は、通常、接続８１８を使用して、システムバス８０４を介して外部デバイスと通信するための１つ又は複数のインターフェース８４２も有する。メモリ８３４は、接続８１９を使用してバス８０４に結合される。
【００５６】
アプリケーションプログラム８３３は、条件分岐及びループ命令を含むことができる一連の命令８３１を含む。プログラム８３３は、プログラム８３３の実行に使用されるデータ８３２を含んでもよい。命令８３１及びデータ８３２は、それぞれメモリ位置８２８、８２９、８３０及び８３５、８３６、８３７に格納される。命令８３１の相対サイズ及びメモリ位置８２８〜８３０に応じて、メモリ位置８３０に示される命令によって表されるように、特定の命令を単一のメモリ位置に格納することができる。あるいは、命令は、メモリ位置８２８及び８２９に示される命令セグメントによって表されるように、それぞれが別個のメモリ位置に格納される複数の部分へと分離されてもよい。
【００５７】
一般に、プロセッサ８０５には、そこで実行される命令のセットが与えられる。プロセッサ８０５は後続の入力を待機し、その入力にはプロセッサ８０５が別の命令セットを実行することによって反応する。各入力は、入力デバイス８０２、８０３のうちの１つ又は複数によって生成されたデータ、ネットワーク８２０、８０２のうちの１つを介して外部ソースから受信データ、記憶デバイス８０６、８０９のうちの１つから取り出されたデータ、又は対応するリーダー８１２に挿入された記憶媒体８２５から取り出されたデータを含む、いくつかのソースのうちの１つ又は複数から提供することができ、すべて図８Ａに表される。命令のセットの実行は、場合によっては、データの出力をもたらしてもよい。実行はまた、データ又は変数をメモリ８３４に格納することを含んでもよい。
【００５８】
開示された構成は入力変数８５４を使用し、それが対応するメモリ位置８５５、８５６、８５７内のメモリ８３４に格納される。開示された構成は出力変数８６１を生成し、それが対応するメモリ位置８６２、８６３、８６４内のメモリ８３４に格納される。中間変数８５８は、メモリ位置８５９、８６０、８６６、及び８６７に格納されてもよい。
【００５９】
図８Ｂのプロセッサ８０５を参照すると、レジスタ８４４、８４５、８４６、算術論理ユニット（ＡＬＵ）８４０、及び制御ユニット８３９は、プログラム８３３を構成する命令セット内のすべての命令に対して「フェッチ、デコード、及び実行」サイクルを実行するのに必要なマイクロオペレーションのシーケンスを実行するために協働する。各フェッチ、デコード、及び実行サイクルは、以下を含む。
【００６０】
フェッチ演算であって、メモリ位置８２８、８２９、８３０から命令８３１を取り出す又は読み取るフェッチ演算と、
どの命令が取り出されたのか制御ユニット８３９が判断するデコード演算と、及び
制御ユニット８３９及び／又はＡＬＵ８４０が命令を実行する実行演算。
【００６１】
その後、次の命令のためのさらなるフェッチ、デコード、及び実行サイクルが実行されてもよい。同様に、制御ユニット８３９がメモリ位置８３２に値を格納する又は書き込む格納サイクルが実行されてもよい。
【００６２】
図３、１、２、５、７及び９のプロセス内の各ステップ及びサブプロセスは、プログラム８３３の一つ又は複数のセグメントと関連付けられ、並びに、プログラム８３３の記されたセグメントのための命令セット内のすべての命令のためのフェッチ、デコード、及び実行サイクルを実行するために協働するプロセッサ８０５の内のレジスタセクション８４４、８４５、８４７と、ＡＬＵ８４０と、及び制御ユニット８３９によって実行される。
【００６３】
［オブジェクト属性推定方法］
図３は、ＣＮＮを使用してオブジェクト属性推定を決定する方法３００を示す。方法３００は、画像を入力として受け取り、受け取った画像の推定オブジェクト属性（例えば、前景マスク、特性）を出力する。方法３００は、コンピュータシステム８００によって実行可能なソフトウェアアプリケーションプログラム８３３として実装される。
【００６４】
方法３００は、入力として画像を受け取り、ステップ３１０で開始する。ステップ３１０では、方法３００は、受信画像上の物体を検出する。オブジェクトは、人、動物、車両等であってもよい。
【００６５】
そのオブジェクトが人物である場合、人物を検出するために適切な人物検出方法が使用されてもよい。人物検出方法の一例は、教師付き機械学習方法である。この人物検出方法は、人物の標本画像の設定に基づいて、画像領域を人物を含むものとして分類する。人物検出方法の出力は、受信画像内の人物を包含するバウンディングボックスである。この例示的な使用事例では、バウンディングボックスによって囲まれる画像領域は、「人物画像」と呼ばれる。
【００６６】
以下、人物を検出する例を用いて方法３００を説明する。しかし、当業者には理解されるように、方法３００は、受信画像内の任意の特定のオブジェクト（例えば、動物、車両等）を検出するために使用することができる。
【００６７】
一度受信画像内のオブジェクトが検出されると、方法３００はステップ３１０からサブプロセス３２０に進む。
【００６８】
サブプロセス３２０では、受信画像に関連するコンテキストが方法３００によって決定される。コンテキストは、画像に関連するが、その画像の視覚要素の一部ではない追加情報を指す。コンテキストは、画像が晴れた、曇った、雨が降った、又は雪が降った日に取り込まれたどうかに関するバイナリフラグなどのような気象情報とすることができる。コンテキストは、焦点、カメラの色バランス、及び画像圧縮率などのカメラ設定とすることができる。コンテキストは、画像が取り込まれる時刻とすることができる。コンテキストは、屋外及び屋内などのような環境情報とすることができる。コンテキストは、フロア座標に対するカメラの高さ、ヨー角、ピッチ角、及びロール角などのような、カメラの位置及び向きとすることができる。
【００６９】
画像自体がコンテキストを示してもよいが、コンテキストは、画像の視覚要素又はメタデータの明示的な一部ではない。例えば、雪を示す画像は雪の色の視覚的要素を含むが、その画像のこの視覚的要素は雪の存在を示さない。それゆえに、コンテキスト情報は画像に関連しなければならない。
【００７０】
コンテキスト情報は、スカラー、ベクトル、テンソル、及びそれらの結合として表されることができる。コンテキスト情報は、分布、強度値、インデックス、程度、バイナリフラグ、及び他のタイプの測定値を表すことができる。本開示において方法３００を説明するための一例として使用されるコンテキスト情報は、カメラの消失点に起因して画像内で検出された人物の逸脱角度である。
【００７１】
図４は、カメラの消失点に起因する人物の逸脱角度の一例を示す図である。シーン内でまっすぐ立っている人物４１０は、画像４２０内に取り込まれる。人物４１０が直立しているにもかかわらず、画像内の人物４１０が傾けられているように見える理由は、投影ジオメトリでは、画像４２０内の上方向が、画像４２０の消失点４４０に依存するからである。その人物が消失点４４０の真上の位置４５０にある場合、同じ人物は傾けられているようには見えないだろう。傾斜角４３０は、逸脱角度と呼ばれる。
【００７２】
図５は、（サブプロセス３２０で実行される）受信画像４２０で検出された人物４１０の逸脱角度を決定する方法５００を表す。方法５００は、コンピュータシステム８００によって実行可能なソフトウェアアプリケーションプログラム８３３として実装される。
【００７３】
方法５００は、ステップ５１０において、受信画像４２０内の検出された人物４１０の頭部位置を検出することによって開始する。頭部検出方法の例としては、Ｖｉｏｌａ−Ｊｏｎｅｓ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｅｒ、Ｒ−ＣＮＮ（Ｒｅｇｉｏｎ  Ｐｒｏｐｏｓａｌｓ  ｗｉｔｈ  ＣＮＮｓ）などがある。１つの頭部検出方法は、教師付き機械学習方法を使用する。この頭部検出方法は、頭部の標本画像のセットに基づいて、画像領域を頭部を含むものとして分類する。頭部検出方法の出力は、受信画像４２０内の（ｘ，ｙ）座標における頭部の中心の推定である。次いで、方法５００は、検出された人物４１０の頭部の座標が決定されると、ステップ５１０からステップ５２０に進む。
【００７４】
ステップ５２０では、方法５００は、受信画像４２０において検出された人物４１０の逸脱角度を計算する。人物４１０の逸脱角度を計算する一例は、以下の通りである。
【００７５】
（ｈｘ，ｈｙ）は、ステップ５１０で決定された頭部の座標を示すものとする。画像４２０の消失点４４０の座標を（ｖｘ，ｖｙ）とする。（ｖｘ，ｖｙ）座標は、カメラの仕様の一部として決定されてもよく、又は（カメラ較正プロセス中などにおいて）他の手段によって決定されてもよい。次いで、逸脱角度４３０は、以下の式を使用して計算することができる。
【数４】
2019220174.tif 000006
【００７６】
座標（０，０）が画像４２０の左上隅に位置するという画像規約を仮定する。説明を容易にするために、この例における逸脱角度４３０は−１５．５度であると仮定されるだろう。
【００７７】
方法５００は、逸脱角度が計算されると、ステップ５２０からステップ５３０に進む。
【００７８】
ステップ５３０において、方法５００は、逸脱角度４３０を分布として表す。分布は、Ｎ個のビンのヒストグラムであって、例えばそこでＮは８である。Ｎは１６、２０などのような他の実数値であることができる。この例では、ビンの値が、（１）「−２０度未満」、（２）「−２０〜−１０度」、（３）「−１０〜−５度」、（４）「−５〜０度」、（５）「０〜５度」、（６）「５〜１０度」、（７）「１０〜２０度」、（８）「２０より大きい度」の分類と関連付けられている。
【００７９】
−１５．５度の例示的な逸脱角度４３０は、「−２０〜−１０度」の第二のビンに存在し、したがって、８つのビンのヒストグラムは、［０，１，０，０，０，０，０，０］である。
【００８０】
１つの代替例では、逸脱角度４３０は、逸脱角度４３０が特定のグループに属する尤度に基づいて分布させることができる。例えば、顔検出アルゴリズムは、複数の頭部座標の尤度を返してもよく、又は消失点がある範囲を有する場合、逸脱角度４３０の分布は、重み付きヒストグラム、例えば［０．１，０．７，０．２，０，０，０，０］となるだろう。さらに、逸脱角度を信頼できるように決定できない場合、分布は同一であり得る（例えば、［０．１２５，０．１２５，０．１２５，０．１２５，０．１２５，０．１２５，０．１２５，０．１２５］）。
【００８１】
方法５００は、ステップ５３０の終了時に終了する。
【００８２】
図３のサブプロセス３２０に戻って参照すると、上述の方法５００を使用して、この例では８つの値の分布であるコンテキスト情報を決定した後、方法３００は、サブプロセス３２０からステップ３３０に進む。
【００８３】
サブプロセス３３０では、方法３００は、受信画像内のオブジェクトの属性を推定する。属性は、オブジェクトに関連するマスク（例えば、前景マスク）、及び特性（例えば、オブジェクトの一部の位置、オブジェクトの色など）とすることができる。サブプロセス３３０の例が図１及び図２に示される。
【００８４】
図１は、受信画像のオブジェクトのマスク（すなわち、前景マスク）を推定するサブプロセス３３０の一例を示す。サブプロセス３３０は、２つの入力、すなわち、人物画像１０１及びコンテキスト情報１０２を受け取る。人物画像１０１は、方法３００のステップ３１０で取得される。人物画像は、Ｗ×Ｈの直線で囲まれる画像領域である。コンテキスト情報は、方法３００のサブプロセス３２０において決定され、このサブプロセス３２０は、この例では、８個の数のベクトルを生成するために図５の方法５００によって実行される。
【００８５】
サブプロセス３３０によって実行される各ステップ（すなわち、ステップ１１０、１２０、１３０、１３５、１４０）は、ＣＮＮのサブネットワークによって実装され、そこでは、サブネットワークはＣＮＮの１つ又は複数の層を含む。それゆえに、各ステップ１１０、１２０、１３０、１３５、及び１４０は、それぞれ、サブネットワーク１１０、１２０、１３０、１３５、及び１４０とも呼ばれ得る。本開示では、参照番号１１０、１２０、１３０、１３５、及び１４０は、その特定のステップを実行するために取得されるステップ又は使用されるサブネットワークのいずれかを指すことができる。
【００８６】
図１に表されるサブプロセス３３０は、人物画像１０１が受け取られるステップ１１０で開始し、及びコンテキスト情報１０２（ステップ３２０で導出される）が受け取られるステップ１２０で開始する。一構成では、ステップ１１０及び１２０は、並列して行われる。ステップ１１０では、人物画像１０１のテンソルを形成する。このテンソルは「画像テンソル」として知られており、コンテキストとは無関係である。テンソルは、ベクトルを高次元に並べたものを指す数学用語であり、一般に、ＲＧＢ画像のベクトルは３つの要素を持つ。
【００８７】
画像１０１は、Ｗ画素×Ｈ画素のサイズを有する。各画素は、その画素のそれぞれのＲＧＢ値を表す３つの値を含む。それゆえに、画像１０１は、サイズＷ×Ｈ×Ｃを有する第一のテンソルによって表されることができ、ここでは、Ｃは３となり、ＲＧＢ値を表す。
【００８８】
以下は、画像センサを決定するために第一のテンソルに対して実行される一連の演算の例を提供する。画像テンソルを決定するために使用することができる他の一連の演算がある。
【００８９】
この例では、第一のテンソルは、サイズＷ×Ｈ×Ｃ１の第二のテンソルを決定するために、畳み込み３×３演算（式２参照）を使用して畳み込まれる。Ｃ１の値は、畳み込み３×３演算が第一のテンソルに適用される回数を表し、その度に、異なる重み（すなわち、式２に示される）が適用される。実験から、Ｃ１＝１２８は、第一のテンソルを畳み込むための最適な回数を提供することが発見される。
【００９０】
次いで、第二のテンソルは、サイズＷ×Ｈ×Ｃ２の第三のテンソルを決定するために、畳み込み３×３演算（式２参照）を使用して畳み込まれる。Ｃ１と同様に、Ｃ２の値は、畳み込み３×３演算が第二のテンソルに適用される回数を表す。実験から、Ｃ２＝１２８は、第二のテンソルを畳み込むための最適な回数を提供することが発見される。
【００９１】
次いで、第二のテンソルのサイズを縮小するために、第三のテンソルに対して最大プーリング演算が実行される。この例では、第三のテンソルは、サイズＷ１×Ｈ１×Ｃ２を有し、ここで、Ｗ１はＷ未満であり、Ｈ１はＨ未満である。
【００９２】
次いで、ｃｏｎｖ３×３、最大プーリング、及びｃｏｎｖ３×３のように、さらなる演算が各連続するテンソルに適用される。それゆえに、第一のテンソルから開始して、サイズＷｉ×Ｈｉ×Ｃｉの画像テンソルを決定するために、以下の演算｛ｃｏｎｖ３×３，ｃｏｎｖ３×３，最大プーリング，ｃｏｎｖ３×３，最大プーリング，ｃｏｎｖ３×３，最大プーリング，ｃｏｎｖ３×３｝が実行され、ここでＷｉはＷの１／８であり、ＨｉはＨの１／８であり、Ｃｉは１２８である。
【００９３】
他の一連の演算は、第一のテンソルから画像テンソルを決定するために使用されることができる。
【００９４】
一度ステップ１１０で画像テンソルが決定されると、サブプロセス３３０はステップ１３０に進む。
【００９５】
前述したように、ステップ１２０は、ステップ１１０と同時に行うことができる。あるいは、ステップ１２０は、ステップ１１０の前又は後に行うことができる。ステップ１２０は、コンテキスト情報１０２（８つの分布値のベクトルによって表される）からコンテキストテンソルを形成する。コンテキストテンソルは、コンテキストテンソルと画像テンソルとの結合を容易にするために、画像テンソルと同じサイズを有するべきである（図１２の配置に示されるように）。しかしながら、別の構成（図６に説明される構成を参照）では、コンテキストテンソルは、図６に関連して説明されるように、画像テンソルと同じサイズを有する必要はない。それゆえに、図１２に示される構成では、コンテキストテンソルは、サイズＷｉ×Ｈｉ×Ｃｉを有するべきである。
【００９６】
サイズＷｉ×Ｈｉ×Ｃｉのコンテキストテンソルを生成するための１つの構成は、８つの分布値（すなわち、上記の方法５００で決定されたコンテキスト情報１０２）のベクトルを１２８のベクトル（すなわち、Ｃｉの値）に変換するために、１つ又は複数の全結合層（上記の式３を参照）を使用することである。次いで、サイズＷｉ×Ｈｉ×Ｃｉのコンテキストテンソルを形成するために、１２８のベクトルがＷｉ×Ｈｉ次元にわたって複製される。
【００９７】
代替構成の一つは、サイズＴの第一のテンソルを生成することであり、ここでＴはＷｉ×Ｈｉ×Ｃｔの積である。ＣｔはＣｉと同じ値であることができる。あるいは、Ｃｔは、任意の値であることができる。次いで、１つ又は複数の全結合層（上記の式３を参照）は、８つの分布値のベクトル（すなわち、上記の方法５００で決定されたコンテキスト情報１０２）をＴサイズの第一のテンソルに変換するために、使用されることができる。次いで、サイズＴ×１×１の第一のテンソルが、サイズＷｉ×Ｈｉ×Ｃｉのコンテキストテンソルになるように再配置される（及び必要に応じてパディングされる）。
【００９８】
コンテキスト情報１０２をコンテキストテンソルに変換するために使用されることができる他の構成がある。
【００９９】
一度ステップ１２０でコンテキストテンソルが決定されると、サブプロセス３３０はステップ１３０に進む。
【０１００】
ステップ１３０では、サブプロセス３３０は、（ステップ１１０で決定された）画像テンソルと（ステップ１２０で決定された）コンテキストテンソルとを結合し、及びＣｃ×Ｗｉ×Ｈｉの結合テンソルを出力する。Ｃｃの値は、以下に例示されるように、画像テンソルとコンテキストテンソルとを結合する方法に依存する。
【０１０１】
一構成では、画像テンソル及びコンテキストテンソルは、図１２に示されるように、要素ごとの合計によって結合される。画像テンソル１２０は、要素１２１１を有し、ここでその要素１２１１はＷｉ×Ｈｉ×Ｃｉの画像テンソルの次元を占める。図１２は、簡略化のために、要素１２１１のうちの１つのみを示す。同様に、コンテキストテンソル１２２０は、要素１２２１を有し、ここでその要素１２１１はＷｉ×Ｈｉ×Ｃｉの画像テンソルの次元を占める。図１２は、簡略化のために、要素１２２１のうちの１つのみを示す。
【０１０２】
画像テンソル１２１０内の各要素１２１１は、コンテキストテンソル１２２０内の対応する要素１２２１に加算される（１２４０）。結合テンソル１２３０は、要素１２３１によって形成され、要素１２３１は対応する要素１２１１及び１２２１の合計である。要素１２１１及び１２２１のいずれかが複素数である場合、合計は、通常の複素数和を指す。要素１２１１及び１２２１のいずれかがベクトルである場合、合計は、その通常のベクトル和を指す。この要素ごとの合計方法では、３つのテンソル（すなわち、画像テンソル１２１０、コンテキストテンソル１２２０、及び結合テンソル１２３０）は、同じ次元、すなわち、Ｗｉ×Ｈｉ×Ｃｉを有する。
【０１０３】
別の構成では、画像テンソル及びコンテキストテンソルは、図６に示されるように連結される。画像テンソル６１０及びコンテキストテンソル６２０は、連結演算６４０によって結合テンソル６３０に結合される。結合テンソル６３０は、画像テンソル６１０及びコンテキストテンソル６２０にそれぞれ対応する２つのサブブロック６５０及び６６０を含む。図１２と同様に、図６は、簡略化のために、画像テンソル６１０及びコンテキストテンソル６２０内の要素６１１及び６２１のうちの１つのみをそれぞれ示す。それゆえに、テンソル６１０及び６２０が連結された後、画像テンソル６１０内の要素６１１は、サブブロック６５０内の要素６３１と同じ値を有し、コンテキストテンソル６２０内の要素６２１は、サブブロック６６０内の要素６３２と同じ値を有する。結果として、Ｃｃ＋Ｃｉ＝Ｃｉである。それゆえに、連結テンソル６３０は、サイズＷｉ×Ｈｉ×Ｃｃを有する。図１２に説明された構成とは対照的に、図６に示された構成は、同じサイズを有するコンテキストテンソルと画像テンソルを必要としない。
【０１０４】
一度画像テンソルとコンテキストテンソルが結合されると、サブプロセス３３０はステップ１３０からステップ１３５に進む。
【０１０５】
ステップ１３５では、サブプロセス３３０は、サイズＣｆ×Ｗｉ×Ｈｉのフィルタリングされたテンソルを出力するために、結合テンソル（例えば、１２３０、６３０）をフィルタリングする。このステップは、コンテキスト情報１０２によって調整される画像テンソルを生成する。フィルタは、１つ又は複数の畳み込み演算を含むことができる。一構成では、フィルタは、｛ｃｏｎｖ１×１，ｃｏｎｖ１×１｝の一連の演算である。Ｃｆは、ステップ１３５で実行される結合演算に依存する。
【０１０６】
別の構成では、ステップ１３５で実行される一連の演算は、ステップ１３０又はステップ１４０のいずれかで実行されることができる。
【０１０７】
結合テンソル（例えば、１２３０、６３０）がフィルタリングされたならば、サブプロセス３３０はステップ１３５からステップ１４０に進む。
【０１０８】
ステップ１４０では、サブプロセス３３０は、画像１０１内のオブジェクトの属性（この例では、前景マスク１５０）を表す１×Ｗ×Ｈテンソルを出力するために、フィルタリングされたテンソルを処理する。ステップ１４０は、その属性（この例では、前景マスク１５０）を決定するための認識ステップである。認識は、複数の畳み込み演算、デコンボリューション演算、プーリング演算、及び全結合演算を含むことができる。例えば、認識ステップは以下の一連のステップ｛ｄｅｃｏｎｖ，ｃｏｎｖ３×３，ｄｅｃｏｎｖ，ｃｏｎｖ３×３，ｄｅｃｏｎｖ，ｃｏｎｖ３×３，ｃｏｎｖ３×３｝であることができる。
【０１０９】
図１の例では、その属性は、画像１０１内のオブジェクト（すなわち、人物）の前景マスク１５０である。
【０１１０】
別の例では、その属性は、画像１０１内の人の身体部分とすることができる。この場合、その属性は、識別される特定の身体部分に対するマスクである。
【０１１１】
別の例では、その属性は、画像１０１内の人物が帽子を被っているかどうか、又は画像１０１内の人物が傘を持っているかどうかであることができる。
【０１１２】
別の例では、その属性は、キーポイント検出（画像１０１内の人物の頭部の位置などのような）とすることができる。
【０１１３】
前景マスク１５０内の各画素は０と１との間の範囲内の値を有し、その値は、この画素が前景（すなわち、画像１０１内の人物の一部）である尤度を表す。次いで、しきい値は、そのしきい値より下の任意の値が背景の一部であるとみなされ、しきい値より上の任意の値が前景の一部であるとみなされるように、前景マスク１５０に適用されることができる。一例では、しきい値は０．５に設定され、０．５より上の任意の値は前景の一部であり、０．５より下の任意の値は背景の一部である。
【０１１４】
サブプロセス３３０は、ステップ１４０の終了時に終了する。
【０１１５】
図２は、サブプロセス３３０を実行するための代替方法のフローチャート図を示す。図２に示されるサブプロセス３３０の方法は、図１に示されるサブプロセス３３０の方法に基づいているが、ステップ２２０、ステップ２３０、及びステップ２３５が追加されている。
【０１１６】
サブプロセス３３０によって実行される各ステップ（すなわち、ステップ１１０、１２０、１３０、１３５、１４０）は、ＣＮＮのサブネットワークによって実装され、ここで、サブネットワークは、ＣＮＮの１つ又は複数の層を含む。それゆえに、各ステップ１１０、１２０、１３０、１３５、１４０、２２０、２３０、及び２３５は、それぞれ、サブネットワーク１１０、１２０、１３０、１３５、１４０、２２０、２３０、及び２３５とも呼ばれ得る。本開示では、参照番号１１０、１２０、１３０、１３５、１４０、２２０、２３０、及び２３５は、その特定のステップを実行するために取得されるステップ又は使用されるサブネットワークのいずれかを指すことができる。
【０１１７】
ステップ２２０は、ステップ１２０で実行される演算と同一であってもよい。ステップ２２０は、サイズＣｉ×Ｗｉ×Ｈｉのコンテキストテンソルを形成するために、コンテキスト情報１０２を取得し、ステップ１２０と同様の演算を適用する。しかしながら、ステップ１２０及び２２０は、異なる演算を実行し、ＣＮＮにおいて異なるサブネットワークレイアウトを有することが可能である。
【０１１８】
ステップ２３０はステップ１３０と同様である。その相違点は、ステップ１３０が画像テンソル及びコンテキストテンソルを入力として受け取り、一方でステップ２３０がステップ１３５で生成されたフィルタリングされたテンソル及びステップ２２０からのコンテキストテンソルを入力として受け取ることである。
【０１１９】
ステップ２３５はステップ１３５と同様である。
【０１２０】
図２に示される代替方法は、追加のステップ２２０、２３０、及び２３５により、前景マスク１５０の精度に改善を提供する。ステップ２２０、２３０、及び２３５と同様のさらなる追加のステップを提供することによって、より長い計算時間というコストと共に、マスク１５０の精度をさらに改善することが可能である。
【０１２１】
図１と同様に、図２のマスク１５０は、画像１０１内のオブジェクト（すなわち、人物）の前景マスクである。
【０１２２】
応用シナリオに応じて、図１及び２のプロセスを複数のハードウェアに分割することが可能であり、それは利点になり得る。図２のみが別個のハードウェアで実装されるように示されているが、図１のプロセスは同様に分割されることができる。一例では、点線ボックス２５０によってグループ化されたコンテキスト情報１０２、１２０、２２０に関連するプロセスは、１つのハードウェア内に存在することができ、一方で点線ボックス２６０によってグループ化された残りのプロセスは、別のハードウェア内に存在することができる。例えば、点線ボックス２５０及び２６０は、ＰＣ及びネットワークカメラ、又は２つの別個のＰＣ、又は２つの別個のネットワークカメラに存在することができる。１つのハードウェアによって生成された１２０及び２２０によって生成されたコンテキストテンソルは、通信方法（例えば、ＷＡＮ８２０）を介して別のハードウェアに転送される。通信方法としては、ネットワーク、バス、記録媒体を用いることができる。
【０１２３】
このような構成の１つの理由は、同じコンテキストを共有する複数のカメラが存在することであり、例えば、コンテキストは天候状態である。その場合、テンソルは、一度だけ計算される必要があり、すべてのカメラに共有される。別の理由は、計算負荷を複数のハードウェアに分散させることである。
【０１２４】
「コンテキストなしのネットワーク」という用語は、コンテキスト情報なしにオブジェクトの属性（例えば、前景マスク、特性）を決定するために使用されることができる、点線ボックス２６０にグループ化されたステップのためのＣＮＮサブネットワークを指すものとする。コンテキストなしのネットワークの場合、ステップ１３０及び２３０は、コンテキストテンソルを、そのコンテキストが利用不可であることを示す利用不可値で置き換えることができる。利用不可であることは、ゼロ、固定数、又は乱数とすることができる値によって表されてもよい。コンテキストが利用不可である１つの例は、破線２５０によってグループ化されたハードウェアが存在しないか、又は機能しない場合である。別の例は、コンテキスト情報１０２、ステップ１２０、又はステップ２２０が存在しないか、又は機能していない場合である。
【０１２５】
「コンテキスト付きのネットワーク」という用語は、コンテキスト情報１０２を有するオブジェクトの属性（例えば、前景マスク１５０、特性）を決定する、図２及び図１に示されるすべてのステップ（又はサブネットワーク）（すなわち、点線ボックス２５０及び２６０にグループ化されたサブネットワーク）を指すものとする。
【０１２６】
［学習］
ＣＮＮにおける重みは、サブプロセス３３０によって推定された属性の精度を決定する。重みを得るプロセスは、学習と呼ばれる。図１及び２で使用されるＣＮＮは、二つの学習方法で学習されることができる。方法１は、「コンテキストなしのネットワーク」（すなわち、点線ボックス２６０にグループ化されたサブネットワーク）を最初に学習を行い、次いで、初期重みとして「コンテキストなしのネットワーク」から得られた重みを使用して、「コンテキスト付きのネットワーク」（すなわち、点線ボックス２５０及び２６０にグループ化されたサブネットワーク）を学習する。方法２は、両方のネットワーク（すなわち、点線ボックス２５０及び２６０にグループ化されたサブネットワーク）を一緒に学習する。
【０１２７】
［学習方法１（連続学習方法）］
図７は、第一の学習方法７００のフローチャートを表す。方法７００は、ステップ７０５で開始し、コンテキストなしのネットワーク（すなわち、点線ボックス２６０内のサブネットワーク）並びにコンテキスト付きのネットワーク（すなわち、点線ボックス２５０及び２６０にグループ化されたサブネットワーク）の両方において、０及び１の間の乱数を使用して重みが初期化される。次いで、方法７００は、ステップ７０５から事前学習ステップ７１５に進む。
【０１２８】
事前学習ステップ７１５は、ステップ７１０及び７２０を含む。事前学習ステップの目標は、「コンテキストなしのネットワーク」、すなわち、サブネットワーク１１０、１３０、２３０、１３５、２３５、及び１４０（図１及び図２を参照）の重みを決定することである。
【０１２９】
ステップ７１０では、方法７００は、コンテキスト情報なしで学習データを受け取る。学習データは、学習入力及び出力インスタンスのセットである。前景マスク決定の例では、学習入力は人物画像であり、学習出力は正しい前景マスクである。その出力インスタンスは、「グラウンドトゥルース」とも呼ばれる。「グラウンドトゥルース」前景マスクは、手作業によって決定される可能性が高く、例えば、人間のオペレータが前景領域を手動で作成する。人物画像は、人物検出のステップ３１０と同様の自動化されたプロセスによって計算されることができる。あるいは、人物画像は、人間のオペレータによって手動で選択されることができる。
【０１３０】
人物が帽子を着用しているか否かの別の例では、学習データは、人物画像のインスタンスと、帽子を着用しているか否かの正しい出力と、の対を有する。
【０１３１】
次いで、方法７００は、ステップ７１０からステップ７２０に進む。
【０１３２】
ステップ７２０は、ステップ７１０で得られた学習データを使用して、「コンテキストなしのネットワーク」、すなわち、点線ボックス２６０で指定されたサブネットワーク（すなわち、サブネットワーク１１０、１３０、１３５、２３０、２３５、及び１４０）の重みを決定する。これらの重みは、逆伝播アルゴリズムを使用して更新されることができる。逆伝播アルゴリズムに利用可能な多くのＣＮＮプラットフォームが存在する。逆伝播アルゴリズムに使用されることができるプラットフォームの一例は、チェイナープラットフォームである。
【０１３３】
事前学習ステップ７１５の後、ステップ７２０で得られた重みは重み７２５として保存される。「コンテキストなしのネットワーク」２６０の重み７２５は、コンテキスト情報１０２なしの前景マスク１５０を決定するために使用されることができる。
【０１３４】
次いで、方法７００は、ステップ７２０から微調整ステップ７３５に進む。
【０１３５】
微調整ステップ７３５は、ステップ７３０及び７４０を含む。微調整ステップ７３５は、コンテキスト情報に基づいて属性（例えば、前景マスク、特性）推定精度を改良する。微調整ステップの目標は、「コンテキスト付きのネットワーク」、すなわち、図２に示されるすべてのサブネットワークの重みを決定することである。
【０１３６】
ステップ７３０は、コンテキスト情報と共に学習データを受け取る。学習データは、学習入力及び出力インスタンスのセットであり、学習入力がコンテキスト情報も加えて有することを除いて、ステップ７１０で使用されるものと同一のフォーマットを有する。コンテキスト情報は、ステップ３２０と同様の自動化プロセスによって収集されることができる。あるいは、コンテキスト情報は、手動プロセスによって収集されることができる。
【０１３７】
次いで、サブプロセス３３０は、ステップ７３０からステップ７４０に進む。
【０１３８】
ステップ７４０は、図２のすべてのサブネットワークの重みを決定する。これらの重みは、逆伝播アルゴリズムを使用して更新することができる。さらに、多くの利用可能なＣＮＮプラットフォームが存在する。一例では、逆伝播を実行するために、チェイナープラットフォームが実行されることができる。
【０１３９】
ステップ７４０で決定された重みは重み７４５として保存され、これは「コンテキスト付きのネットワーク」で使用されることができる。
【０１４０】
方法７００は、ステップ７４０の終了時に終了する。
【０１４１】
学習方法１の１つの利点は、コンテキスト付きの学習サンプルの要求がより少なく済むことである。一般に、コンテキストなしの学習サンプルを収集することは、コンテキスト付きの学習サンプルを収集することよりも容易である。例えば、インターネットから多数の画像を収集することができるが、画像のコンテキスト情報は、通常、利用可能ではない。それゆえに、第一の学習方法は、データ準備の総コストを低減する。
【０１４２】
第一の学習方法の別の利点は、異なるコンテキストの異なるネットワークを学習するための学習時間及び計算コストがより少ないことである。一度事前学習された重み７２５のセットが得られると、重み７２５は、多くの異なるコンテキストにおいて多くのネットワークの微調整ステップ７３５を実行するために使用されることができる。
【０１４３】
［学習方法２（並列学習方法）］
図９は、第二の学習方法のフローチャートを表す。第二の学習方法は、ネットワーク、すなわち「コンテキストなしのネットワーク」及び「コンテキスト付きのネットワーク」の両方を学習する。
【０１４４】
方法９００は、ステップ９１０で開始し、コンテキストなしのネットワーク（すなわち、点線ボックス２６０内のサブネットワーク）並びにコンテキスト付きのネットワーク（すなわち、点線ボックス２５０及び２６０にグループ化されたサブネットワーク）の両方において、重みが０及び１の間の乱数に初期化される。コンテキストなしのネットワーク及びコンテキスト付きのネットワークの重みは、ネットワークの共通部分（すなわち、点線ボックス２６０内のサブネットワーク）が同じ重み値を有するように初期化される。次いで、方法９００は、ステップ９１０からステップ９２０に進む。
【０１４５】
ステップ９２０はコンテキスト付きの学習データを受け取り、その学習データは、入力データ及び出力インスタンスの対を有する、ステップ７３０で説明されたものと同じデータである。方法９００は、ステップ９２０からステップ９３０に進む。
【０１４６】
その学習データセット内の各学習インスタンス９３０について、順方向伝播アルゴリズム９４１が「コンテキストなしのネットワーク」に適用され、及び、順方向伝播アルゴリズム９４２が「コンテキスト付きのネットワーク」に適用される。アルゴリズム９４１及び９４２からそれぞれ２つのコスト関数が得られる。チェイナープラットフォームは、順方向伝播を実行するために使用されることができる。次いで、方法９００は、アルゴリズム９４１及び９４２からステップ９５０に進む。
【０１４７】
ステップ９５０は、アルゴリズム９４１及び９４２によって計算された２つのコスト関数の平均を計算する。次いで、方法９００は、ステップ９５０からステップ９６０に進む。
【０１４８】
ステップ９６０は、ステップ９５０で得られた同じ平均値を使用して、「コンテキストなしのネットワーク」及び「コンテキスト付きのネットワーク」のそれぞれに別個に逆伝播を実行する。各逆伝播アルゴリズムは、各ネットワークにおける各重みに対する勾配値を出力する。
【０１４９】
これまでのところ、ステップ及びアルゴリズム９４１、９４２、９５０、及び９６０は、２つのネットワークが関連していないと仮定する。しかし、実際には、２つのネットワークのサブネットワークの多くは、同じプロセス、すなわち、ステップ１１０、１３０、１３５、２３０、２３５、及び１４０を指す。これらのサブネットワークは、重複サブネットワークのように呼ばれる。この学習方法の概念は、重複サブネットワークにおける重みが２つのネットワークにわたって同一であるべきであるということである。したがって、更新勾配値は、両方のネットワークにおけるこれらのサブネットワークについて同じであるべきである。重みが同一であるべきであるという制約を有する２つのサブネットワークを更新することは、「重み共有」技術として知られている。
【０１５０】
方法９００は、ステップ９６０からステップ９７０に進む。
【０１５１】
ステップ９７０は、各ネットワークの重複サブネットワークの重みを、その各ネットワークの重複サブネットワークの平均重みで置き換える。より具体的には、「コンテキストなしのネットワーク」の一部であるサブネットワーク１４０における第一の重みが、ｖ１の勾配値を有するとする。「コンテキスト付きのネットワーク」の一部であるサブネットワーク１４０における第一の重みが、ｖ２の勾配値を有するとする。同じサブネットワークにおいて同じ重みを参照しているとしても、勾配値は、それらが、一方がコンテキスト情報を有し、及び他方がコンテキスト情報を有さない、２つの別個の順方向伝播から得られるので、２つのネットワークにおいて異なる。ｖ３はｖ１とｖ２の合計を２で割ったものとする。ステップ９７０では、「コンテキストなしのネットワーク」内のサブネットワーク１４０における第一の重みのｖ１の勾配値がｖ３で置き換えられる。同様に、「コンテキスト付きのネットワーク」内のサブネットワーク１４０における第一の重みのｖ２の勾配値も、ｖ３で置き換えられる。ステップ９７０では、この平均化プロセスが、重複サブネットワークにおける各重みに適用される。
【０１５２】
方法９００は、ステップ９７０からステップ９８１及び９８２に進む。
【０１５３】
ステップ９８１及びステップ９８２は、「コンテキストなしのネットワーク」及び「コンテキスト付きのネットワーク」における重みを別個に更新するために、その勾配値を使用する。これは、多くのＣＮＮプラットフォームにおける標準プロセスである。次いで、方法９００は、ステップ９８１及び９８２からステップ９９０に進む。
【０１５４】
ステップ９９０は、学習データ内のすべてのインスタンスが処理されたかどうかを決定する。ＮＯの場合、方法９００は、次の学習インスタンスで学習を継続するために、ステップ９９０からステップ９３０に進む。それゆえに、方法９００は、すべての学習インスタンスが２つのネットワークを学習するために使用されるまで継続する。ＹＥＳの場合、方法９００は終了する。
【０１５５】
学習方法２の１つの利点は、たとえそれが２つのネットワークについて学習しているとしても、各重複サブネットワークの重みが同じであることである。言い換えれば、「コンテキスト付きネットワーク」は、「コンテキスト付き」及び「コンテキストなし」の両方の機能を実行することができる。これは、利用不可値が、通常のコンテキストテンソルと同じように演算することを可能にする。
【０１５６】
実行時に、コンテキストが利用可能でない場合、前景マスク１５０は、「コンテキスト付きのネットワーク」を使用して決定され、コンテキスト情報をゼロに設定することができる。これは、「コンテキスト付きのネットワーク」のみが、使用のために格納される必要があることを意味する。一方、図７で説明されたような学習方法１が使用される場合、コンテキストなしのネットワーク及びコンテキスト付きのネットワークの両方が、使用されるネットワークがコンテキスト情報が利用可能であるかどうかに依存するので、使用のために格納される必要があるだろう。並列学習方法（すなわち、学習方法２）は、ハードウェアで使用されるメモリ空間を低減することができる。
【０１５７】
［コンテキストの利用不可］
学習方法２を使用して学習された「コンテキスト付きのネットワーク」は、コンテキスト情報１０２が利用可能でない場合であっても、出力（この例では、前景マスク１５０）を計算する能力を有する。これは、「コンテキスト付きのネットワーク」の１３０及び２３０のサブネットワークへの入力であるコンテキストテンソルが、既に格納されている利用不可値を有しうる可能性があるからである。したがって、利用不可値を使用することは、「コンテキスト付きのネットワーク」を「コンテキストなしのネットワーク」と同等にするだろう。
【０１５８】
１つのシナリオでは、点線ボックス２６０及び２５０にグループ化されたネットワーク内のプロセスは、異なるハードウェア上で処理されることができるが、一時的に故障した通信又はハードウェアにより、点線ボックス２６０にグループ化されたネットワーク内のプロセスは、点線ボックス２５０にグループ化されたネットワークからコンテキストテンソルを取得することができない。このような場合、点線ボックス２６０内のサブネットワークは、点線ボックス２５０にグループ化されたサブネットワークからのコンテキスト情報なしで、正しく動作することができる。コンテキスト情報が再び利用可能である場合、点線ボックス２６０にグループ化されたサブネットワークは、コンテキスト情報を再び使用することによって精度を改善することができる。
【０１５９】
［ユースケース例（身体部分分離）］
方法３００は、身体部分を分離するために使用されることができる。身体部分分離は、人物画像１０１が与えられると、各画素に対するベクトルを出力するアプリケーションを指す。ベクトルは値を含み、各値は、ある身体部分に属するものとしてその画素によって示されている身体部分の尤度を示す。例えば、ベクトルは、ベクトルに対応する画素が、背景、髪、顔、胴、左腕、右腕、左脚、及び右脚の８つの身体部分のうちの１つに属する尤度を識別する＜０，１，０，０，０，０，０，０＞の値を有する。８個の要素で構成されるベクトルの第一の値は本質的に背景マスクであるので、身体部分分離は、前景マスクアプリケーションの目標を実現する。
【０１６０】
図２を参照すると、身体部分分離のためのサブネットワークは、前景マスクサブネットワークと同様である。その唯一の違いは、そこでＷ×Ｈ×Ｃｂのテンソルを出力するサブネットワーク１４０であり、ここでＷ及びＨは人物画像の幅及び高さであり、ここでＣｂは各画素の分類の数であり、この例ではＣｂは８となる。図４に示される逸脱角度のコンテキストは、身体部分の分離を助けることもできる。図７又は図９に表される学習アルゴリズムは、この例のためにＣＮＮを学習するために、使用されることもできる。
【０１６１】
［ユースケース例（特性推定）］
オブジェクト属性推定方法３００の使用は、人物に関連するステートメントのセットなどのようなオブジェクト特性にも適用されることができる。例えば、そのステートメントは、「その人が帽子を着ているかどうか」及び「その人が傘を持っているかどうか」であり得る。特性推定は、各ステートメントが真である尤度の推定を指す。例えば、この人物の特性に対する＜０．８，０．１＞の推定は、その人物が帽子を着ている可能性が高く、及び傘を有する可能性が低いことを意味する。
【０１６２】
図２を参照すると、人物特性の適用では、現在のコンテキスト情報がないと仮定すると、入力１０１は人物画像でもあり、出力１５０は２つの属性ステートメントの尤度である。点線ボックス２６０にグループ化されたサブネットワークは、２つの属性ステートメントの尤度を表す２×１ベクトルを生成する必要がある最後のサブネットワーク１４０を除いて、ほとんど同様に設計される。サブネットワーク１４０は、複数の畳み込み層及び全結合層、例えば｛ｃｏｎｖ３×３，ｃｏｎｖ３×３，ｆｃ，ｆｃ｝を含むことができる。これらのサブネットワークは事前学習ステップ７１５によって学習されることができ、そのステップはＣＮＮがうまく機能するための適切な重み７２５を生成する。
【０１６３】
ここで、人物画像が撮影されたときの気象情報が与えられたと仮定する。この情報は、オブジェクト属性推定方法３００におけるコンテキスト情報１０２である。コンテキスト情報１０２は、４つの値、例えば＜０．３，０．７，０，０＞のベクトルによって示されることができ、これらの値は、その日のうちの、日が晴れている、曇っている、雨が降っている、又は雪が降っている部分を表すことができる。このようなコンテキスト情報は、点線ボックス２５０にグループ化されたサブネットワークで処理され、及び点線ボックス２６０にグループ化されたサブネットワークに結合される。微調整学習ステップ７３５を介して、又は図９の並列学習を介して、前景マスク分離方法ＣＮＮ全体に対する適切な重みが得られる。気象コンテキストが帽子の着用すること又は傘を持つことの尤度の推定に寄与し得るので、特性推定は、現在、より正確である。
【０１６４】
［ユースケース例（特性推定−キーポイント検出）］
オブジェクト属性推定方法３００の使用は、キーポイントなどのようなオブジェクト特性の検出にも適用されることができる。オブジェクトキーポイントは、オブジェクトに関連する特定のポイントを指す。例えば、頭部及び足の位置は、人物のキーポイントとすることができる。
【０１６５】
このユースケースのネットワーク及び学習方法は、人物属性推定のユースケース例と非常に類似している。このユースケースの出力１５０は、キーポイントの座標を含むベクトルである。コンテキスト情報１０２は、図４に示されるような逸脱角度であってよく、及び最後のサブネットワーク１４０は、人物属性の例と同様に、ベクトルを生成する必要がある。
【０１６６】
その人物の上半身が目に見え、下半身が別の人によって塞がれていると仮定すると、その足の位置は、上半身の形状及び人の逸脱角度情報から推定されることができる。それゆえに、コンテキスト情報は、遮蔽及び任意の他の画像ノイズを補うことができる。
【０１６７】
方法３００における各ステップ若しくはサブプロセス、又は前述された他の方法は、プログラム８３３の１つ又は複数のセグメントに関連付けられ、並びに、プログラム８３３の注目されたセグメントに対する命令セット内のすべての命令に対するフェッチ、デコード、及び実行サイクルを実行するために協働する、プロセッサ８０５内のレジスタセクション８４４、８４５、８４７、ＡＬＵ８４０、及び制御部８３９によって実行される。
【０１６８】
オブジェクト属性推定方法３００は、代替的に、方法３００の機能又はサブ機能を実行する１つ又は複数の集積回路などのような専用ハードウェアで実装されてもよい。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ、又は１つ又は複数のマイクロプロセッサ及び関連するメモリを含んでいてもよく、並びにビデオカメラなどのようなプラットフォーム上に存在していてもよい。
【図１】
2019220174.tif 000007
【図２】
2019220174.tif 000008
【図３】
2019220174.tif 000009
【図４】
2019220174.tif 000010
【図５】
2019220174.tif 000011
【図６】
2019220174.tif 000012
【図７】
2019220174.tif 000013
【図８Ａ】
2019220174.tif 000014
【図８Ｂ】
2019220174.tif 000015
【図９】
2019220174.tif 000016
【図１０】
2019220174.tif 000017
【図１１】
2019220174.tif 000018
【図１２】
2019220174.tif 000019