JP6808783B2 - 人工ニューラルネットワークを用いた画像処理 - Google Patents

人工ニューラルネットワークを用いた画像処理 Download PDF

Info

Publication number
JP6808783B2
JP6808783B2 JP2019108996A JP2019108996A JP6808783B2 JP 6808783 B2 JP6808783 B2 JP 6808783B2 JP 2019108996 A JP2019108996 A JP 2019108996A JP 2019108996 A JP2019108996 A JP 2019108996A JP 6808783 B2 JP6808783 B2 JP 6808783B2
Authority
JP
Japan
Prior art keywords
tensor
image
context
information
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019108996A
Other languages
English (en)
Other versions
JP2019220174A (ja
Inventor
内山 寛之
寛之 内山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2019220174A publication Critical patent/JP2019220174A/ja
Application granted granted Critical
Publication of JP6808783B2 publication Critical patent/JP6808783B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20164Salient point detection; Corner detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30232Surveillance

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)

Description

本明細書は、一般に画像処理に関し、及び、特に、人工ニューラルネットワークを用いて画像のコンテキスト情報に基づいて画像内のオブジェクトの属性を決定することに関する。
ショッピングセンター、駐車場、列車の駅などの公共施設は、ビデオカメラの大規模ネットワークを使用する監視の対象となることが増えている。大規模ビデオ監視の応用分野は、セキュリティ、安全性、交通管理、及びビジネス分析を含む。
これらのアプリケーションの多くにおける重要なタスクは、複数のカメラビューにわたる迅速かつロバストなオブジェクトマッチングである。「ハンドオフ」と呼ばれる一例では、オブジェクトマッチングは、重複する視野を有する第一及び第二のカメラにわたって持続的に追跡される複数のオブジェクトに適用される。「オブジェクト同定」と呼ばれる別の例では、オブジェクトマッチングは、重複しない視野を有するネットワーク内の複数のカメラにわたって対象の特定のオブジェクトを位置特定することに適用される。以下の説明では、「オブジェクトマッチング」という用語は、「ハンドオフ」、「オブジェクト同定」、「オブジェクト識別」、及び「オブジェクト認識」という用語を含むものと理解されるだろう。
カメラは、一度に画像を取り込む。画像は、視覚的要素から構成される。用語「画素」、「画素位置」、及び「画像位置」は、本明細書を通して、取り込まれた画像内の視覚要素のうちの1つを指すために交換可能に使用される。画像の各画素は、その特定の画素で取り込まれたシーンの特性を特徴付ける1つ又は複数の値によって説明される。一例では、単一の強度値が、その画素位置におけるシーンの輝度を特徴付ける。別の例において、値の三つ組は、その画素位置におけるシーンの色を特徴付ける。さらに、画像内の「領域」、「画像領域」又は「セル」は、1つ又は複数の空間的に隣接する視覚要素の集合を指す。
「バウンディングボックス」は、画像内のオブジェクトを囲む直線で囲まれた画像領域を指す。本開示では、バウンディングボックスは、対象のオブジェクトを含み、それはビデオ監視の適用において通常は歩行者である。
オブジェクトマッチングのための一般的なアプローチは、各オブジェクトについて「外観シグネチャ」を抽出するステップと、及び、異なるオブジェクト間の類似性を計算するために外観シグネチャを使用するステップと、を含む。本明細書全体を通して、「外観シグネチャ」という用語は、オブジェクトの外観又は画像の領域を合計する値のセットを指し、「外観モデル」、「特徴記述子」及び「特徴ベクトル」という用語を含むものと理解されるであろう。
外観シグネチャを取得するステップの1つは、オブジェクト自体に属する撮像画像の1つの領域(前景としても知られている)と、シーンに属する取り込まれた画像の別の領域(背景としても知られている)とを分離することである。このプロセスは、一般に「前景分離」又は「前景背景分類」として知られている。
そのような分析を実行するために一般に使用されるツールの1つは、人工ニューラルネットワーク(ANN)を使用することである。人工ニューラルネットワークは、ノードのセット、重みのセット、及び接続とも呼ばれるエッジのセットを含む。各エッジは重み付けされ、ANNの2つのノードを接続する。重み付けされたエッジは、重み付けされた接続とも呼ばれる。人工ニューラルネットワークは、学習入力例及び学習出力例のセットを使用して学習される。例えば、学習入力は、画像のRGB画素であってもよく、出力は、各画素が前景の一部であるという尤度であってもよい。以下、このような出力を「前景マスク」と呼ぶ。
人工ニューラルネットワークの1つのタイプは、畳み込みニューラルネットワーク(CNN)と呼ばれる。CNNは、重みと共にANNノードを層に配置する。「畳み込み」、「最大プーリング」、「正規化線形関数(ReLU)」、及び「ソフトマックス」などの演算子は、CNNの1つ又は複数の層(サブネットワークとも呼ばれる)によって実行される。各層及びサブネットワークは、CNNの次の層及びサブネットワークのノード入力値をそれぞれ計算する。
各層が演算を実行する例では、第一の層は、例えば画像データであり得るCNNへの入力である。各演算子(すなわち、この例では層)を介して、CNNは、次の層のノード入力値を計算する。最後のレイヤは出力レイヤであり、これは、各画素が画像データの前景(第一のレイヤへの入力である)の一部である尤度であってもよい。前景分離のためのCNNは、一般に、上記演算子と同様に「デコンボリューション」演算子を使用する。CNNは、別のデータセットを使用する前に、1つのデータセットを使用して学習されてもよい。このプロセスは、一般に「事前学習」として知られている。事前学習は、後続の学習、及び最終的には画像の前景分離のためのより良好な初期重みを提供する。
以下に、CNNが実行できる演算のいくつかを説明する。
畳み込みは、一般に知られているフィルタ演算であり、図10に示されている。図10は、「conv3×3」演算を示し、これは、与えられた二次元層1020に適用されている3×3線形フィルタ1010を意味する。3×3線形フィルタ1010の二次元層1020への適用は、新しい二次元層1030の形成をもたらす。
例えば、I(x,y)を座標(x,y)を有する二次元層1020とし、f(u,v)(u=−1、0、1、v=−1、0、1)を「3×3カーネル」1010とする。f(u,v)の値は、カーネルの「重み」としても知られている。(i*f)によって表される、層1020にconv3×3を適用したことによる出力は、
Figure 0006808783
である。
3×3以外の異なるサイズの畳み込みカーネルを有することも可能である。さらに、三次元層に畳み込みを適用することも可能である。
Figure 0006808783
ここで、入力三次元層は、サイズW×H×Cを有する。
deconvで表されるデコンボリューションは、一般に知られているフィルタ演算である。デコンボリューション演算の一例を図11に示す。二次元層1110の入力が与えられると、ゼロパディングが二次元層1120の要素間に挿入される。各要素1111の値は、間にゼロ値要素を伴って、新しい位置1121に単にコピーされる。次いで、畳み込み(図10参照)がパディングされた層に適用され、デコンボリューションされた層1130を形成する。異なるサイズのカーネル及び異なる数のパディング要素が適用されることができる。特に、二次元層1120内にゼロ要素の余分な行及び列をパディングすることによって、入力層1110のちょうど二倍のサイズであるデコンボリューションされた層1130を得ることができる。
最大プーリングは、二次元層を収縮させるためのフィルタである。2×2のフィルタを仮定すると、最
大プーリング演算は、その二次元層を隣接する2×2の重なり合わない多くの領域に分割する。各領域の最大要素は、結果として得られる二次元層に対する要素を形成する。その結果として得られる層は、入力層の半分の寸法を有する。
一般にfcで示される全結合層は、線形演算を適用するフィルタである。x(i)、y(j)(i=1、2、3、...、I、j=1、2、3、...、J)をそれぞれ入力ベクトル及び出力ベクトルとする。w(j,i)、b(j)をそれぞれ重み及びバイアスとする。出力y(j)は、
Figure 0006808783
である。
CNNのようなツールを供給されても、前景分離は依然として困難な問題である。1つの課題はCNNを異なるコンテキスト情報に適応させることであって、それは1つの環境での前景分離のために学習されたCNNは、異なる環境に対してうまく機能しない可能性があるからである。コンテキスト情報(本開示ではコンテキストとも呼ばれる)は、画像に関連するが、その画像の視覚要素又はメタデータの一部ではない追加情報を指す。この用語「コンテキスト」又は「コンテキスト情報」については、以下で詳細に説明する。
群衆計数のための1つの従来の方法は、複数のコンテキストに適応するために、適応畳み込みニューラルネットワーク(ACNN)を使用する。ACNNは、コンテキスト情報に従って畳み込みの重みを変更することができる畳み込み層(又はサブネットワーク)を有する。しかし、重みがコンテキスト情報によって制御されるので、これらの畳み込み演算層がコンテキスト情報なしで事前学習されることは困難である。
計算コストは別の課題である。CNNは、多数の画像を処理するための莫大な計算コストを被っている。この問題は、CNNが、デスクトップコンピュータよりも少ない処理リソースを有する携帯製品、例えば、カメラに組み込まれる必要がある場合に、より困難になる。
本明細書は、画像のコンテキスト情報を使用するCNNを使用する前景分離のための方法及びシステムを提供する。
本発明の目的は、既存の構成の1つ又は複数の欠点を実質的に克服するか、又は少なくとも改善することである。
本開示の一態様は、画像の画像テンソルを決定する工程と、前記画像のコンテキスト情報を決定する工程と、前記決定されたコンテキスト情報のコンテキストテンソルを決定する工程と、結合テンソルを形成するために、前記画像テンソル及び前記コンテキストテンソルを結合する工程と、前記結合テンソルに基づいて前記オブジェクトの属性を推定する工程と、を備える、前記画像内の前記オブジェクトを分析する方法である。
本開示の別の態様は、システムであって、プロセッサと、プロセッサと通信するメモリであって、前記メモリは、前記プロセッサによって実行可能なアプリケーションプログラムを有し、前記プロセッサが、前記アプリケーションプログラムを実行して、前記画像内の前記オブジェクトを分析する方法を実行し、前記方法が、前記画像の画像テンソルを決定する工程と、前記画像のコンテキスト情報を決定する工程と、前記決定されたコンテキスト情報のコンテキストテンソルを決定する工程と結合テンソルを形成するために、前記画像テンソル及び前記コンテキストテンソルを結合する工程と、前記結合テンソルに基づいて前記オブジェクトの属性を推定する工程と、を含む、メモリと、を備える、前記画像内の前記オブジェクトを分析するシステムである。
以下の図面を参照して、本発明の1つ又は複数の実施形態を説明する。
図3に示される方法のオブジェクト属性を推定するサブプロセスのフローチャート図である。
図3に示される方法のオブジェクト属性を推定する別のサブプロセスのフローチャート図である。
本開示の一態様によるオブジェクト属性推定方法を示すフローチャート図である。
図3の方法によって処理されている画像のコンテキストの例示である。
図4に示される例示のコンテキスト情報を決定するフローチャート図である。
図1及び2に示されるサブプロセスで使用される二つのテンソルを結合する連結方法を示す。
図3に示されるオブジェクト属性推定方法で使用されるCNNを学習する方法のフローチャート図である。
図3に示される方法が実施されることができる汎用コンピュータシステムの概略ブロック図である。
図3に示される方法が実施されることができる汎用コンピュータシステムの概略ブロック図である。
図3に示されるオブジェクト属性推定方法で使用されるCNNを学習する代替方法のフローチャート図である。
CNNにおける畳み込み演算を示す。
CNNにおけるデコンボリューション演算を示す。
図1及び2に示されるサブプロセスで使用される二つのテンソルを結合する合計方法を示す。
添付の図面のいずれか1つ又は複数において、ステップ及び/又は特徴へと参照が行われ、それらが同じ参照番号を有する場合、これらのステップ及び/又は特徴は、その反対の意図が現れない限り、本説明の目的のために、同じ機能又は操作を有する。
「背景技術」の節及び従来技術の構成に関する上記の節に含まれる議論は、それぞれの公開及び/又は使用を通じて公開知識を形成しているかもしれない文書又はデバイスの議論に関することに留意されたい。そのような議論は、本発明者又は特許出願人による表現として解釈されるべきではなく、そのような文書又はデバイスは、いかなる形であれ、当技術分野における技術常識の一部を形成する。
図3は、そのような推定を実行するためにCNNを使用するオブジェクト属性推定方法を実行する方法300を示す。方法300は、画像を入力として受け取り、受信画像内のオブジェクトの推定属性(例えば、前景マスク、特性)を出力する。方法300は、図8A及び図8Bに表される汎用コンピュータシステムによって実装することができる。
[コンピュータ構造]
図8A及び図8Bは、説明された様々な構成が実施されることができる汎用コンピュータシステム800を表す。
図8Aに示すように、コンピュータシステム800は、コンピュータモジュール801、キーボード802、マウス・ポインタ・デバイス803、スキャナ826、カメラ827、及びマイクロフォン880などの入力デバイス、並びにプリンタ815、ディスプレイ・デバイス814、及びスピーカ817を含む出力デバイスを含む。外部変調器−復調器(モデム)送受信デバイス816は、接続821を介して通信ネットワーク820と通信する及び通信を受け取るために、コンピュータモジュール801によって使用されてもよい。通信ネットワーク820は、インターネット、セルラー通信ネットワーク、又はプライベートワイドエリアネットワーク(WAN)などのようなWANであってもよい。接続821が電話回線である場合、モデム816は、従来の「ダイヤルアップ」モデムであってもよい。あるいは、接続821が大容量(例えばケーブル)接続である場合、モデム816はブロードバンドモデムであってもよい。無線モデムはまた、通信ネットワーク820への無線接続のために使用されてもよい。
コンピュータモジュール801は、一般に、少なくとも1つのプロセッサユニット805と、メモリユニット806とを含む。例えば、メモリユニット806は半導体ランダムアクセスメモリ(RAM)及び半導体リードオンリメモリ(ROM)を有していてもよい。コンピュータモジュール801は、ビデオディスプレイ814、スピーカ817、及びマイクロフォン880に結合するオーディオ・ビデオ・インターフェース807と、キーボード802、マウス803、スキャナ826、カメラ827、及び任意選択でジョイスティック又は他のヒューマン・インターフェース・デバイス(図示せず)に結合するI/Oインターフェース813と、並びに外部モデム816及びプリンタ815のためのインターフェース808と、を含む、複数の入力/出力(I/O)インターフェースもまた含む。いくつかの実装形態では、モデム816は、コンピュータモジュール801内、例えば、インターフェース808内に組み込まれてもよい。コンピュータモジュール801はローカルネットワークインターフェース811も有し、それがローカルエリアネットワーク(LAN)として知られるローカルエリア通信ネットワーク822への接続823を介したコンピュータシステム800の結合を可能にする。図8Aに示されるように、ローカル通信ネットワーク822は、接続824を介してワイドネットワーク820に結合することもでき、接続824は、通常は、いわゆる「ファイアウォール」デバイス又は同様の機能のデバイスを含む。ローカルネットワークインターフェース811は、イーサネット(登録商標)回路カード、ブルートゥース(登録商標)無線構成、又はIEEE802.11無線構成を備えていてもよいが、インターフェース811のために多数の他のタイプのインターフェースが使用されてもよい。
I/Oインターフェース808及び813は、シリアル及びパラレル接続のいずれか又は両方を提供することができ、前者は、通常は、ユニバーサルシリアルバス(USB)規格に従って実装され、対応するUSBコネクタ(図示せず)を有する。記憶デバイス809が提供され、通常はハードディスクドライブ(HDD)810を含む。フロッピーディスク・ドライブ及び磁気テープ・ドライブ(図示せず)などのような他の記憶デバイスも使用されることができる。光ディスクドライブ812は、通常は、データの不揮発性ソースとして機能するように提供される。このような光ディスク(例えば、CD−ROM、DVD、ブルーレイディスク(商標))、USB−RAM、ポータブル、外部ハードドライブ、及びフロッピーディスクのような携帯型メモリデバイスは、システム800への適切なデータソースとして使用されてもよい。
コンピュータモジュール801の構成要素805〜813は、通常は、相互接続されたバス804を介して、当業者に知られているコンピュータシステム800の従来の演算モードをもたらす手段で通信する。例えば、プロセッサ805は、接続818を使用してシステムバス804に結合される。同様に、メモリ806及び光ディスクドライブ812は、接続819によってシステムバス804に結合される。説明された構成が実施されることのできるコンピュータの例は、IBM−PC及び互換機、Sunスパークステーション、Apple Mac(商標)又は同様のコンピュータシステムを含む。
以下に説明される方法300及び他の方法はコンピュータシステム800を使用して実装されてもよく、描かれる図3、1、2、5、7及び9は、コンピュータシステム800内で実行可能な1つ又は複数のソフトウェアアプリケーションプログラム833として実装されてもよい。特に、方法300のステップは、コンピュータシステム800内で実行されるソフトウェア833内の命令831(図8B参照)によってなされる。ソフトウェア命令831は、それぞれが1つ又は複数の特定のタスクを実行するための1つ又は複数のコードモジュールとして形成されることができる。ソフトウェアはまた、2つの別個の部分に分割されてもよく、そこでは、第一の部分及び対応するコードモジュールは説明された方法を実行し、第二の部分及び対応するコードモジュールは第一の部分とユーザとの間のユーザインターフェースを管理する。
ソフトウェアは、例えば、以下に説明される記憶デバイスを含むコンピュータ可読媒体に格納されてもよい。ソフトウェア833は、通常、HDD810又はメモリ806に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム800に読み込まれ、次いで、コンピュータシステム800によって実行される。したがって、例えば、ソフトウェア833は、光ディスクドライブ812によって読み取られる光学的に読み取り可能なディスク記憶媒体(例えば、CD−ROM)825に格納されてもよい。そのようなソフトウェア又はコンピュータ可読媒体に記録されたコンピュータプログラムを有するコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータシステム800におけるコンピュータプログラム製品の使用は、好ましくは、説明された方法を実装するための都合の良い装置をもたらす。
いくつかの場合では、アプリケーションプログラム833は、1つ又は複数のCD−ROM825上で符号化されてユーザに供給され、及び対応するドライブ812を介して読み取られてもよく、又は、ネットワーク820又は822からユーザによって読み取られてもよい。さらに、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム800に読み込まれることもできる。コンピュータ可読記憶媒体は、実行及び/又は処理のために、記録された指示及び/又はデータをコンピュータシステム800に提供する任意の非一時的有形記憶媒体を指す。そのような記憶媒体の例には、そのようなデバイスがコンピュータモジュール801の内蔵又は外付けであるか否かに関わらず、フロッピーディスク、磁気テープ、CD−ROM、DVD、ブルーレイ(商標)ディスク、ハードディスクドライブ、ROM若しくは集積回路、USBメモリ、光磁気ディスク、又はPCMCIAカードなどのコンピュータ可読カード等が含まれる。ソフトウェア、アプリケーションプログラム、命令、及び/又はデータのコンピュータモジュール801への提供にも関与し得る一時的又は非有形のコンピュータ可読伝送媒体の例には、別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続と同じく無線又は赤外線伝送チャネルを含み、並びに電子メール伝送及びウェブサイト等に記録された情報を含むインターネット又はイントラネットを含む。
アプリケーションプログラム833の第二の部分及び上述の対応するコードモジュールは、表示部814上にレンダリングされるか、又は他の方法で表される1つ又は複数のグラフィカルユーザインターフェース(GUI)を実装するために実行されることができる。通常、キーボード802及びマウス803の操作を通じて、コンピュータシステム800及びアプリケーションのユーザは、GUIに関連付けられたアプリケーションに制御コマンド及び/又は入力を提供するために、機能的に適応可能な方法でインターフェースを操作してもよい。スピーカ817を介して出力されるスピーチプロンプト及びマイクロフォン880を介して入力されるユーザ音声コマンドを利用するオーディオ・インターフェースなど、機能的に適応可能なユーザインターフェースの他の形態も実装されてもよい。
図8Bは、プロセッサ805及び「メモリ」834の詳細な概略ブロック図である。メモリ834は、図8Aのコンピュータモジュール801によってアクセスされ得る全てのメモリモジュール(HDD809及び半導体メモリ806を含む)の論理的な集合を表す。
コンピュータモジュール801が最初に電源投入されると、パワーオン自己テスト(POST)プログラム850を実行する。POSTプログラム850は、通常、図8Aの半導体メモリ806のROM849に格納される。ソフトウェアを格納するROM849などのようなハードウェアデバイスは、ファームウェアと呼ばれることもある。POSTプログラム850は、適切な機能を保証するためにコンピュータモジュール801内のハードウェアを検査し、並びに、通常プロセッサ805、メモリ834(809、806)、及び、通常ROM849に格納されてもいる基本入出力システムソフトウェア(BIOS)モジュール851を、正しい演算のために確認する。一度POSTプログラム850が正常に動作すると、BIOS851は、図8Aのハードディスクドライブ810を起動する。ハードディスクドライブ810の起動は、ハードディスクドライブ810上に常駐するブートストラップローダプログラム852を、プロセッサ805を介して引き起こす。これにより、オペレーティングシステム853がRAMメモリ806に読み込まれ、そこでオペレーティングシステム853が演算を開始する。オペレーティングシステム853は、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインターフェース、及び一般的なユーザインターフェースを含む様々な高レベル機能を実現するための、プロセッサ805によって実行可能なシステム・レベル・アプリケーションである。
オペレーティングシステム853は、コンピュータモジュール801上で動作する各プロセス又はアプリケーションが、別のプロセスに割り当てられたメモリと衝突することなく実行するのに十分なメモリを有することを保証するよう、メモリ834(809、806)を管理する。さらに、図8Aのシステム800で利用可能な異なるタイプのメモリは、各プロセスが効果的に動作できるように、適切に使用されなければならない。したがって、集約的なメモリ834は、メモリの特定のセグメントがどのように割り当てられるかを示すことを意図するものではなく(特に断らない限り)、むしろコンピュータシステム800によってアクセス可能なメモリ及びそのようなものがどのように使用されるかの一般的なビューを提供することを意図するものである。
図8Bに示されるように、プロセッサ805は、制御ユニット839、算術論理ユニット(ALU)840、及びキャッシュメモリと呼ばれることもあるローカル又は内部メモリ848を含む複数の機能モジュールを含む。キャッシュメモリ848は、通常、レジスタセクション内に多数の記憶レジスタ844〜846を含む。1つ又は複数の内部バス841は、これらの機能モジュールを機能的に相互接続する。プロセッサ805は、通常、接続818を使用して、システムバス804を介して外部デバイスと通信するための1つ又は複数のインターフェース842も有する。メモリ834は、接続819を使用してバス804に結合される。
アプリケーションプログラム833は、条件分岐及びループ命令を含むことができる一連の命令831を含む。プログラム833は、プログラム833の実行に使用されるデータ832を含んでもよい。命令831及びデータ832は、それぞれメモリ位置828、829、830及び835、836、837に格納される。命令831の相対サイズ及びメモリ位置828〜830に応じて、メモリ位置830に示される命令によって表されるように、特定の命令を単一のメモリ位置に格納することができる。あるいは、命令は、メモリ位置828及び829に示される命令セグメントによって表されるように、それぞれが別個のメモリ位置に格納される複数の部分へと分離されてもよい。
一般に、プロセッサ805には、そこで実行される命令のセットが与えられる。プロセッサ805は後続の入力を待機し、その入力にはプロセッサ805が別の命令セットを実行することによって反応する。各入力は、入力デバイス802、803のうちの1つ又は複数によって生成されたデータ、ネットワーク820、802のうちの1つを介して外部ソースから受信データ、記憶デバイス806、809のうちの1つから取り出されたデータ、又は対応するリーダー812に挿入された記憶媒体825から取り出されたデータを含む、いくつかのソースのうちの1つ又は複数から提供することができ、すべて図8Aに表される。命令のセットの実行は、場合によっては、データの出力をもたらしてもよい。実行はまた、データ又は変数をメモリ834に格納することを含んでもよい。
開示された構成は入力変数854を使用し、それが対応するメモリ位置855、856、857内のメモリ834に格納される。開示された構成は出力変数861を生成し、それが対応するメモリ位置862、863、864内のメモリ834に格納される。中間変数858は、メモリ位置859、860、866、及び867に格納されてもよい。
図8Bのプロセッサ805を参照すると、レジスタ844、845、846、算術論理ユニット(ALU)840、及び制御ユニット839は、プログラム833を構成する命令セット内のすべての命令に対して「フェッチ、デコード、及び実行」サイクルを実行するのに必要なマイクロオペレーションのシーケンスを実行するために協働する。各フェッチ、デコード、及び実行サイクルは、以下を含む。
フェッチ演算であって、メモリ位置828、829、830から命令831を取り出す又は読み取るフェッチ演算と、
どの命令が取り出されたのか制御ユニット839が判断するデコード演算と、及び
制御ユニット839及び/又はALU840が命令を実行する実行演算。
その後、次の命令のためのさらなるフェッチ、デコード、及び実行サイクルが実行されてもよい。同様に、制御ユニット839がメモリ位置832に値を格納する又は書き込む格納サイクルが実行されてもよい。
図3、1、2、5、7及び9のプロセス内の各ステップ及びサブプロセスは、プログラム833の一つ又は複数のセグメントと関連付けられ、並びに、プログラム833の記されたセグメントのための命令セット内のすべての命令のためのフェッチ、デコード、及び実行サイクルを実行するために協働するプロセッサ805の内のレジスタセクション844、845、847と、ALU840と、及び制御ユニット839によって実行される。
[オブジェクト属性推定方法]
図3は、CNNを使用してオブジェクト属性推定を決定する方法300を示す。方法300は、画像を入力として受け取り、受け取った画像の推定オブジェクト属性(例えば、前景マスク、特性)を出力する。方法300は、コンピュータシステム800によって実行可能なソフトウェアアプリケーションプログラム833として実装される。
方法300は、入力として画像を受け取り、ステップ310で開始する。ステップ310では、方法300は、受信画像上の物体を検出する。オブジェクトは、人、動物、車両等であってもよい。
そのオブジェクトが人物である場合、人物を検出するために適切な人物検出方法が使用されてもよい。人物検出方法の一例は、教師付き機械学習方法である。この人物検出方法は、人物の標本画像の設定に基づいて、画像領域を人物を含むものとして分類する。人物検出方法の出力は、受信画像内の人物を包含するバウンディングボックスである。この例示的な使用事例では、バウンディングボックスによって囲まれる画像領域は、「人物画像」と呼ばれる。
以下、人物を検出する例を用いて方法300を説明する。しかし、当業者には理解されるように、方法300は、受信画像内の任意の特定のオブジェクト(例えば、動物、車両等)を検出するために使用することができる。
一度受信画像内のオブジェクトが検出されると、方法300はステップ310からサブプロセス320に進む。
サブプロセス320では、受信画像に関連するコンテキストが方法300によって決定される。コンテキストは、画像に関連するが、その画像の視覚要素の一部ではない追加情報を指す。コンテキストは、画像が晴れた、曇った、雨が降った、又は雪が降った日に取り込まれたどうかに関するバイナリフラグなどのような気象情報とすることができる。コンテキストは、焦点、カメラの色バランス、及び画像圧縮率などのカメラ設定とすることができる。コンテキストは、画像が取り込まれる時刻とすることができる。コンテキストは、屋外及び屋内などのような環境情報とすることができる。コンテキストは、フロア座標に対するカメラの高さ、ヨー角、ピッチ角、及びロール角などのような、カメラの位置及び向きとすることができる。
画像自体がコンテキストを示してもよいが、コンテキストは、画像の視覚要素又はメタデータの明示的な一部ではない。例えば、雪を示す画像は雪の色の視覚的要素を含むが、その画像のこの視覚的要素は雪の存在を示さない。それゆえに、コンテキスト情報は画像に関連しなければならない。
コンテキスト情報は、スカラー、ベクトル、テンソル、及びそれらの結合として表されることができる。コンテキスト情報は、分布、強度値、インデックス、程度、バイナリフラグ、及び他のタイプの測定値を表すことができる。本開示において方法300を説明するための一例として使用されるコンテキスト情報は、カメラの消失点に起因して画像内で検出された人物の逸脱角度である。
図4は、カメラの消失点に起因する人物の逸脱角度の一例を示す図である。シーン内でまっすぐ立っている人物410は、画像420内に取り込まれる。人物410が直立しているにもかかわらず、画像内の人物410が傾けられているように見える理由は、投影ジオメトリでは、画像420内の上方向が、画像420の消失点440に依存するからである。その人物が消失点440の真上の位置450にある場合、同じ人物は傾けられているようには見えないだろう。傾斜角430は、逸脱角度と呼ばれる。
図5は、(サブプロセス320で実行される)受信画像420で検出された人物410の逸脱角度を決定する方法500を表す。方法500は、コンピュータシステム800によって実行可能なソフトウェアアプリケーションプログラム833として実装される。
方法500は、ステップ510において、受信画像420内の検出された人物410の頭部位置を検出することによって開始する。頭部検出方法の例としては、Viola−Jones Object Detecter、R−CNN(Region Proposals with CNNs)などがある。1つの頭部検出方法は、教師付き機械学習方法を使用する。この頭部検出方法は、頭部の標本画像のセットに基づいて、画像領域を頭部を含むものとして分類する。頭部検出方法の出力は、受信画像420内の(x,y)座標における頭部の中心の推定である。次いで、方法500は、検出された人物410の頭部の座標が決定されると、ステップ510からステップ520に進む。
ステップ520では、方法500は、受信画像420において検出された人物410の逸脱角度を計算する。人物410の逸脱角度を計算する一例は、以下の通りである。
(hx,hy)は、ステップ510で決定された頭部の座標を示すものとする。画像420の消失点440の座標を(vx,vy)とする。(vx,vy)座標は、カメラの仕様の一部として決定されてもよく、又は(カメラ較正プロセス中などにおいて)他の手段によって決定されてもよい。次いで、逸脱角度430は、以下の式を使用して計算することができる。
Figure 0006808783
座標(0,0)が画像420の左上隅に位置するという画像規約を仮定する。説明を容易にするために、この例における逸脱角度430は−15.5度であると仮定されるだろう。
方法500は、逸脱角度が計算されると、ステップ520からステップ530に進む。
ステップ530において、方法500は、逸脱角度430を分布として表す。分布は、N個のビンのヒストグラムであって、例えばそこでNは8である。Nは16、20などのような他の実数値であることができる。この例では、ビンの値が、(1)「−20度未満」、(2)「−20〜−10度」、(3)「−10〜−5度」、(4)「−5〜0度」、(5)「0〜5度」、(6)「5〜10度」、(7)「10〜20度」、(8)「20より大きい度」の分類と関連付けられている。
−15.5度の例示的な逸脱角度430は、「−20〜−10度」の第二のビンに存在し、したがって、8つのビンのヒストグラムは、[0,1,0,0,0,0,0,0]である。
1つの代替例では、逸脱角度430は、逸脱角度430が特定のグループに属する尤度に基づいて分布させることができる。例えば、顔検出アルゴリズムは、複数の頭部座標の尤度を返してもよく、又は消失点がある範囲を有する場合、逸脱角度430の分布は、重み付きヒストグラム、例えば[0.1,0.7,0.2,0,0,0,0]となるだろう。さらに、逸脱角度を信頼できるように決定できない場合、分布は同一であり得る(例えば、[0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125])。
方法500は、ステップ530の終了時に終了する。
図3のサブプロセス320に戻って参照すると、上述の方法500を使用して、この例では8つの値の分布であるコンテキスト情報を決定した後、方法300は、サブプロセス320からステップ330に進む。
サブプロセス330では、方法300は、受信画像内のオブジェクトの属性を推定する。属性は、オブジェクトに関連するマスク(例えば、前景マスク)、及び特性(例えば、オブジェクトの一部の位置、オブジェクトの色など)とすることができる。サブプロセス330の例が図1及び図2に示される。
図1は、受信画像のオブジェクトのマスク(すなわち、前景マスク)を推定するサブプロセス330の一例を示す。サブプロセス330は、2つの入力、すなわち、人物画像101及びコンテキスト情報102を受け取る。人物画像101は、方法300のステップ310で取得される。人物画像は、W×Hの直線で囲まれる画像領域である。コンテキスト情報は、方法300のサブプロセス320において決定され、このサブプロセス320は、この例では、8個の数のベクトルを生成するために図5の方法500によって実行される。
サブプロセス330によって実行される各ステップ(すなわち、ステップ110、120、130、135、140)は、CNNのサブネットワークによって実装され、そこでは、サブネットワークはCNNの1つ又は複数の層を含む。それゆえに、各ステップ110、120、130、135、及び140は、それぞれ、サブネットワーク110、120、130、135、及び140とも呼ばれ得る。本開示では、参照番号110、120、130、135、及び140は、その特定のステップを実行するために取得されるステップ又は使用されるサブネットワークのいずれかを指すことができる。
図1に表されるサブプロセス330は、人物画像101が受け取られるステップ110で開始し、及びコンテキスト情報102(ステップ320で導出される)が受け取られるステップ120で開始する。一構成では、ステップ110及び120は、並列して行われる。ステップ110では、人物画像101のテンソルを形成する。このテンソルは「画像テンソル」として知られており、コンテキストとは無関係である。テンソルは、ベクトルを高次元に並べたものを指す数学用語であり、一般に、RGB画像のベクトルは3つの要素を持つ。
画像101は、W画素×H画素のサイズを有する。各画素は、その画素のそれぞれのRGB値を表す3つの値を含む。それゆえに、画像101は、サイズW×H×Cを有する第一のテンソルによって表されることができ、ここでは、Cは3となり、RGB値を表す。
以下は、画像センサを決定するために第一のテンソルに対して実行される一連の演算の例を提供する。画像テンソルを決定するために使用することができる他の一連の演算がある。
この例では、第一のテンソルは、サイズW×H×C1の第二のテンソルを決定するために、畳み込み3×3演算(式2参照)を使用して畳み込まれる。C1の値は、畳み込み3×3演算が第一のテンソルに適用される回数を表し、その度に、異なる重み(すなわち、式2に示される)が適用される。実験から、C1=128は、第一のテンソルを畳み込むための最適な回数を提供することが発見される。
次いで、第二のテンソルは、サイズW×H×C2の第三のテンソルを決定するために、畳み込み3×3演算(式2参照)を使用して畳み込まれる。C1と同様に、C2の値は、畳み込み3×3演算が第二のテンソルに適用される回数を表す。実験から、C2=128は、第二のテンソルを畳み込むための最適な回数を提供することが発見される。
次いで、第二のテンソルのサイズを縮小するために、第三のテンソルに対して最大プーリング演算が実行される。この例では、第三のテンソルは、サイズW1×H1×C2を有し、ここで、W1はW未満であり、H1はH未満である。
次いで、conv3×3、最大プーリング、及びconv3×3のように、さらなる演算が各連続するテンソルに適用される。それゆえに、第一のテンソルから開始して、サイズWi×Hi×Ciの画像テンソルを決定するために、以下の演算{conv3×3,conv3×3,最大プーリング,conv3×3,最大プーリング,conv3×3,最大プーリング,conv3×3}が実行され、ここでWiはWの1/8であり、HiはHの1/8であり、Ciは128である。
他の一連の演算は、第一のテンソルから画像テンソルを決定するために使用されることができる。
一度ステップ110で画像テンソルが決定されると、サブプロセス330はステップ130に進む。
前述したように、ステップ120は、ステップ110と同時に行うことができる。あるいは、ステップ120は、ステップ110の前又は後に行うことができる。ステップ120は、コンテキスト情報102(8つの分布値のベクトルによって表される)からコンテキストテンソルを形成する。コンテキストテンソルは、コンテキストテンソルと画像テンソルとの結合を容易にするために、画像テンソルと同じサイズを有するべきである(図12の配置に示されるように)。しかしながら、別の構成(図6に説明される構成を参照)では、コンテキストテンソルは、図6に関連して説明されるように、画像テンソルと同じサイズを有する必要はない。それゆえに、図12に示される構成では、コンテキストテンソルは、サイズWi×Hi×Ciを有するべきである。
サイズWi×Hi×Ciのコンテキストテンソルを生成するための1つの構成は、8つの分布値(すなわち、上記の方法500で決定されたコンテキスト情報102)のベクトルを128のベクトル(すなわち、Ciの値)に変換するために、1つ又は複数の全結合層(上記の式3を参照)を使用することである。次いで、サイズWi×Hi×Ciのコンテキストテンソルを形成するために、128のベクトルがWi×Hi次元にわたって複製される。
代替構成の一つは、サイズTの第一のテンソルを生成することであり、ここでTはWi×Hi×Ctの積である。CtはCiと同じ値であることができる。あるいは、Ctは、任意の値であることができる。次いで、1つ又は複数の全結合層(上記の式3を参照)は、8つの分布値のベクトル(すなわち、上記の方法500で決定されたコンテキスト情報102)をTサイズの第一のテンソルに変換するために、使用されることができる。次いで、サイズT×1×1の第一のテンソルが、サイズWi×Hi×Ciのコンテキストテンソルになるように再配置される(及び必要に応じてパディングされる)。
コンテキスト情報102をコンテキストテンソルに変換するために使用されることができる他の構成がある。
一度ステップ120でコンテキストテンソルが決定されると、サブプロセス330はステップ130に進む。
ステップ130では、サブプロセス330は、(ステップ110で決定された)画像テンソルと(ステップ120で決定された)コンテキストテンソルとを結合し、及びCc×Wi×Hiの結合テンソルを出力する。Ccの値は、以下に例示されるように、画像テンソルとコンテキストテンソルとを結合する方法に依存する。
一構成では、画像テンソル及びコンテキストテンソルは、図12に示されるように、要素ごとの合計によって結合される。画像テンソル120は、要素1211を有し、ここでその要素1211はWi×Hi×Ciの画像テンソルの次元を占める。図12は、簡略化のために、要素1211のうちの1つのみを示す。同様に、コンテキストテンソル1220は、要素1221を有し、ここでその要素1211はWi×Hi×Ciの画像テンソルの次元を占める。図12は、簡略化のために、要素1221のうちの1つのみを示す。
画像テンソル1210内の各要素1211は、コンテキストテンソル1220内の対応する要素1221に加算される(1240)。結合テンソル1230は、要素1231によって形成され、要素1231は対応する要素1211及び1221の合計である。要素1211及び1221のいずれかが複素数である場合、合計は、通常の複素数和を指す。要素1211及び1221のいずれかがベクトルである場合、合計は、その通常のベクトル和を指す。この要素ごとの合計方法では、3つのテンソル(すなわち、画像テンソル1210、コンテキストテンソル1220、及び結合テンソル1230)は、同じ次元、すなわち、Wi×Hi×Ciを有する。
別の構成では、画像テンソル及びコンテキストテンソルは、図6に示されるように連結される。画像テンソル610及びコンテキストテンソル620は、連結演算640によって結合テンソル630に結合される。結合テンソル630は、画像テンソル610及びコンテキストテンソル620にそれぞれ対応する2つのサブブロック650及び660を含む。図12と同様に、図6は、簡略化のために、画像テンソル610及びコンテキストテンソル620内の要素611及び621のうちの1つのみをそれぞれ示す。それゆえに、テンソル610及び620が連結された後、画像テンソル610内の要素611は、サブブロック650内の要素631と同じ値を有し、コンテキストテンソル620内の要素621は、サブブロック660内の要素632と同じ値を有する。結果として、Cc+Ci=Ciである。それゆえに、連結テンソル630は、サイズWi×Hi×Ccを有する。図12に説明された構成とは対照的に、図6に示された構成は、同じサイズを有するコンテキストテンソルと画像テンソルを必要としない。
一度画像テンソルとコンテキストテンソルが結合されると、サブプロセス330はステップ130からステップ135に進む。
ステップ135では、サブプロセス330は、サイズCf×Wi×Hiのフィルタリングされたテンソルを出力するために、結合テンソル(例えば、1230、630)をフィルタリングする。このステップは、コンテキスト情報102によって調整される画像テンソルを生成する。フィルタは、1つ又は複数の畳み込み演算を含むことができる。一構成では、フィルタは、{conv1×1,conv1×1}の一連の演算である。Cfは、ステップ135で実行される結合演算に依存する。
別の構成では、ステップ135で実行される一連の演算は、ステップ130又はステップ140のいずれかで実行されることができる。
結合テンソル(例えば、1230、630)がフィルタリングされたならば、サブプロセス330はステップ135からステップ140に進む。
ステップ140では、サブプロセス330は、画像101内のオブジェクトの属性(この例では、前景マスク150)を表す1×W×Hテンソルを出力するために、フィルタリングされたテンソルを処理する。ステップ140は、その属性(この例では、前景マスク150)を決定するための認識ステップである。認識は、複数の畳み込み演算、デコンボリューション演算、プーリング演算、及び全結合演算を含むことができる。例えば、認識ステップは以下の一連のステップ{deconv,conv3×3,deconv,conv3×3,deconv,conv3×3,conv3×3}であることができる。
図1の例では、その属性は、画像101内のオブジェクト(すなわち、人物)の前景マスク150である。
別の例では、その属性は、画像101内の人の身体部分とすることができる。この場合、その属性は、識別される特定の身体部分に対するマスクである。
別の例では、その属性は、画像101内の人物が帽子を被っているかどうか、又は画像101内の人物が傘を持っているかどうかであることができる。
別の例では、その属性は、キーポイント検出(画像101内の人物の頭部の位置などのような)とすることができる。
前景マスク150内の各画素は0と1との間の範囲内の値を有し、その値は、この画素が前景(すなわち、画像101内の人物の一部)である尤度を表す。次いで、しきい値は、そのしきい値より下の任意の値が背景の一部であるとみなされ、しきい値より上の任意の値が前景の一部であるとみなされるように、前景マスク150に適用されることができる。一例では、しきい値は0.5に設定され、0.5より上の任意の値は前景の一部であり、0.5より下の任意の値は背景の一部である。
サブプロセス330は、ステップ140の終了時に終了する。
図2は、サブプロセス330を実行するための代替方法のフローチャート図を示す。図2に示されるサブプロセス330の方法は、図1に示されるサブプロセス330の方法に基づいているが、ステップ220、ステップ230、及びステップ235が追加されている。
サブプロセス330によって実行される各ステップ(すなわち、ステップ110、120、130、135、140)は、CNNのサブネットワークによって実装され、ここで、サブネットワークは、CNNの1つ又は複数の層を含む。それゆえに、各ステップ110、120、130、135、140、220、230、及び235は、それぞれ、サブネットワーク110、120、130、135、140、220、230、及び235とも呼ばれ得る。本開示では、参照番号110、120、130、135、140、220、230、及び235は、その特定のステップを実行するために取得されるステップ又は使用されるサブネットワークのいずれかを指すことができる。
ステップ220は、ステップ120で実行される演算と同一であってもよい。ステップ220は、サイズCi×Wi×Hiのコンテキストテンソルを形成するために、コンテキスト情報102を取得し、ステップ120と同様の演算を適用する。しかしながら、ステップ120及び220は、異なる演算を実行し、CNNにおいて異なるサブネットワークレイアウトを有することが可能である。
ステップ230はステップ130と同様である。その相違点は、ステップ130が画像テンソル及びコンテキストテンソルを入力として受け取り、一方でステップ230がステップ135で生成されたフィルタリングされたテンソル及びステップ220からのコンテキストテンソルを入力として受け取ることである。
ステップ235はステップ135と同様である。
図2に示される代替方法は、追加のステップ220、230、及び235により、前景マスク150の精度に改善を提供する。ステップ220、230、及び235と同様のさらなる追加のステップを提供することによって、より長い計算時間というコストと共に、マスク150の精度をさらに改善することが可能である。
図1と同様に、図2のマスク150は、画像101内のオブジェクト(すなわち、人物)の前景マスクである。
応用シナリオに応じて、図1及び2のプロセスを複数のハードウェアに分割することが可能であり、それは利点になり得る。図2のみが別個のハードウェアで実装されるように示されているが、図1のプロセスは同様に分割されることができる。一例では、点線ボックス250によってグループ化されたコンテキスト情報102、120、220に関連するプロセスは、1つのハードウェア内に存在することができ、一方で点線ボックス260によってグループ化された残りのプロセスは、別のハードウェア内に存在することができる。例えば、点線ボックス250及び260は、PC及びネットワークカメラ、又は2つの別個のPC、又は2つの別個のネットワークカメラに存在することができる。1つのハードウェアによって生成された120及び220によって生成されたコンテキストテンソルは、通信方法(例えば、WAN820)を介して別のハードウェアに転送される。通信方法としては、ネットワーク、バス、記録媒体を用いることができる。
このような構成の1つの理由は、同じコンテキストを共有する複数のカメラが存在することであり、例えば、コンテキストは天候状態である。その場合、テンソルは、一度だけ計算される必要があり、すべてのカメラに共有される。別の理由は、計算負荷を複数のハードウェアに分散させることである。
「コンテキストなしのネットワーク」という用語は、コンテキスト情報なしにオブジェクトの属性(例えば、前景マスク、特性)を決定するために使用されることができる、点線ボックス260にグループ化されたステップのためのCNNサブネットワークを指すものとする。コンテキストなしのネットワークの場合、ステップ130及び230は、コンテキストテンソルを、そのコンテキストが利用不可であることを示す利用不可値で置き換えることができる。利用不可であることは、ゼロ、固定数、又は乱数とすることができる値によって表されてもよい。コンテキストが利用不可である1つの例は、破線250によってグループ化されたハードウェアが存在しないか、又は機能しない場合である。別の例は、コンテキスト情報102、ステップ120、又はステップ220が存在しないか、又は機能していない場合である。
「コンテキスト付きのネットワーク」という用語は、コンテキスト情報102を有するオブジェクトの属性(例えば、前景マスク150、特性)を決定する、図2及び図1に示されるすべてのステップ(又はサブネットワーク)(すなわち、点線ボックス250及び260にグループ化されたサブネットワーク)を指すものとする。
[学習]
CNNにおける重みは、サブプロセス330によって推定された属性の精度を決定する。重みを得るプロセスは、学習と呼ばれる。図1及び2で使用されるCNNは、二つの学習方法で学習されることができる。方法1は、「コンテキストなしのネットワーク」(すなわち、点線ボックス260にグループ化されたサブネットワーク)を最初に学習を行い、次いで、初期重みとして「コンテキストなしのネットワーク」から得られた重みを使用して、「コンテキスト付きのネットワーク」(すなわち、点線ボックス250及び260にグループ化されたサブネットワーク)を学習する。方法2は、両方のネットワーク(すなわち、点線ボックス250及び260にグループ化されたサブネットワーク)を一緒に学習する。
[学習方法1(連続学習方法)]
図7は、第一の学習方法700のフローチャートを表す。方法700は、ステップ705で開始し、コンテキストなしのネットワーク(すなわち、点線ボックス260内のサブネットワーク)並びにコンテキスト付きのネットワーク(すなわち、点線ボックス250及び260にグループ化されたサブネットワーク)の両方において、0及び1の間の乱数を使用して重みが初期化される。次いで、方法700は、ステップ705から事前学習ステップ715に進む。
事前学習ステップ715は、ステップ710及び720を含む。事前学習ステップの目標は、「コンテキストなしのネットワーク」、すなわち、サブネットワーク110、130、230、135、235、及び140(図1及び図2を参照)の重みを決定することである。
ステップ710では、方法700は、コンテキスト情報なしで学習データを受け取る。学習データは、学習入力及び出力インスタンスのセットである。前景マスク決定の例では、学習入力は人物画像であり、学習出力は正しい前景マスクである。その出力インスタンスは、「グラウンドトゥルース」とも呼ばれる。「グラウンドトゥルース」前景マスクは、手作業によって決定される可能性が高く、例えば、人間のオペレータが前景領域を手動で作成する。人物画像は、人物検出のステップ310と同様の自動化されたプロセスによって計算されることができる。あるいは、人物画像は、人間のオペレータによって手動で選択されることができる。
人物が帽子を着用しているか否かの別の例では、学習データは、人物画像のインスタンスと、帽子を着用しているか否かの正しい出力と、の対を有する。
次いで、方法700は、ステップ710からステップ720に進む。
ステップ720は、ステップ710で得られた学習データを使用して、「コンテキストなしのネットワーク」、すなわち、点線ボックス260で指定されたサブネットワーク(すなわち、サブネットワーク110、130、135、230、235、及び140)の重みを決定する。これらの重みは、逆伝播アルゴリズムを使用して更新されることができる。逆伝播アルゴリズムに利用可能な多くのCNNプラットフォームが存在する。逆伝播アルゴリズムに使用されることができるプラットフォームの一例は、チェイナープラットフォームである。
事前学習ステップ715の後、ステップ720で得られた重みは重み725として保存される。「コンテキストなしのネットワーク」260の重み725は、コンテキスト情報102なしの前景マスク150を決定するために使用されることができる。
次いで、方法700は、ステップ720から微調整ステップ735に進む。
微調整ステップ735は、ステップ730及び740を含む。微調整ステップ735は、コンテキスト情報に基づいて属性(例えば、前景マスク、特性)推定精度を改良する。微調整ステップの目標は、「コンテキスト付きのネットワーク」、すなわち、図2に示されるすべてのサブネットワークの重みを決定することである。
ステップ730は、コンテキスト情報と共に学習データを受け取る。学習データは、学習入力及び出力インスタンスのセットであり、学習入力がコンテキスト情報も加えて有することを除いて、ステップ710で使用されるものと同一のフォーマットを有する。コンテキスト情報は、ステップ320と同様の自動化プロセスによって収集されることができる。あるいは、コンテキスト情報は、手動プロセスによって収集されることができる。
次いで、サブプロセス330は、ステップ730からステップ740に進む。
ステップ740は、図2のすべてのサブネットワークの重みを決定する。これらの重みは、逆伝播アルゴリズムを使用して更新することができる。さらに、多くの利用可能なCNNプラットフォームが存在する。一例では、逆伝播を実行するために、チェイナープラットフォームが実行されることができる。
ステップ740で決定された重みは重み745として保存され、これは「コンテキスト付きのネットワーク」で使用されることができる。
方法700は、ステップ740の終了時に終了する。
学習方法1の1つの利点は、コンテキスト付きの学習サンプルの要求がより少なく済むことである。一般に、コンテキストなしの学習サンプルを収集することは、コンテキスト付きの学習サンプルを収集することよりも容易である。例えば、インターネットから多数の画像を収集することができるが、画像のコンテキスト情報は、通常、利用可能ではない。それゆえに、第一の学習方法は、データ準備の総コストを低減する。
第一の学習方法の別の利点は、異なるコンテキストの異なるネットワークを学習するための学習時間及び計算コストがより少ないことである。一度事前学習された重み725のセットが得られると、重み725は、多くの異なるコンテキストにおいて多くのネットワークの微調整ステップ735を実行するために使用されることができる。
[学習方法2(並列学習方法)]
図9は、第二の学習方法のフローチャートを表す。第二の学習方法は、ネットワーク、すなわち「コンテキストなしのネットワーク」及び「コンテキスト付きのネットワーク」の両方を学習する。
方法900は、ステップ910で開始し、コンテキストなしのネットワーク(すなわち、点線ボックス260内のサブネットワーク)並びにコンテキスト付きのネットワーク(すなわち、点線ボックス250及び260にグループ化されたサブネットワーク)の両方において、重みが0及び1の間の乱数に初期化される。コンテキストなしのネットワーク及びコンテキスト付きのネットワークの重みは、ネットワークの共通部分(すなわち、点線ボックス260内のサブネットワーク)が同じ重み値を有するように初期化される。次いで、方法900は、ステップ910からステップ920に進む。
ステップ920はコンテキスト付きの学習データを受け取り、その学習データは、入力データ及び出力インスタンスの対を有する、ステップ730で説明されたものと同じデータである。方法900は、ステップ920からステップ930に進む。
その学習データセット内の各学習インスタンス930について、順方向伝播アルゴリズム941が「コンテキストなしのネットワーク」に適用され、及び、順方向伝播アルゴリズム942が「コンテキスト付きのネットワーク」に適用される。アルゴリズム941及び942からそれぞれ2つのコスト関数が得られる。チェイナープラットフォームは、順方向伝播を実行するために使用されることができる。次いで、方法900は、アルゴリズム941及び942からステップ950に進む。
ステップ950は、アルゴリズム941及び942によって計算された2つのコスト関数の平均を計算する。次いで、方法900は、ステップ950からステップ960に進む。
ステップ960は、ステップ950で得られた同じ平均値を使用して、「コンテキストなしのネットワーク」及び「コンテキスト付きのネットワーク」のそれぞれに別個に逆伝播を実行する。各逆伝播アルゴリズムは、各ネットワークにおける各重みに対する勾配値を出力する。
これまでのところ、ステップ及びアルゴリズム941、942、950、及び960は、2つのネットワークが関連していないと仮定する。しかし、実際には、2つのネットワークのサブネットワークの多くは、同じプロセス、すなわち、ステップ110、130、135、230、235、及び140を指す。これらのサブネットワークは、重複サブネットワークのように呼ばれる。この学習方法の概念は、重複サブネットワークにおける重みが2つのネットワークにわたって同一であるべきであるということである。したがって、更新勾配値は、両方のネットワークにおけるこれらのサブネットワークについて同じであるべきである。重みが同一であるべきであるという制約を有する2つのサブネットワークを更新することは、「重み共有」技術として知られている。
方法900は、ステップ960からステップ970に進む。
ステップ970は、各ネットワークの重複サブネットワークの重みを、その各ネットワークの重複サブネットワークの平均重みで置き換える。より具体的には、「コンテキストなしのネットワーク」の一部であるサブネットワーク140における第一の重みが、v1の勾配値を有するとする。「コンテキスト付きのネットワーク」の一部であるサブネットワーク140における第一の重みが、v2の勾配値を有するとする。同じサブネットワークにおいて同じ重みを参照しているとしても、勾配値は、それらが、一方がコンテキスト情報を有し、及び他方がコンテキスト情報を有さない、2つの別個の順方向伝播から得られるので、2つのネットワークにおいて異なる。v3はv1とv2の合計を2で割ったものとする。ステップ970では、「コンテキストなしのネットワーク」内のサブネットワーク140における第一の重みのv1の勾配値がv3で置き換えられる。同様に、「コンテキスト付きのネットワーク」内のサブネットワーク140における第一の重みのv2の勾配値も、v3で置き換えられる。ステップ970では、この平均化プロセスが、重複サブネットワークにおける各重みに適用される。
方法900は、ステップ970からステップ981及び982に進む。
ステップ981及びステップ982は、「コンテキストなしのネットワーク」及び「コンテキスト付きのネットワーク」における重みを別個に更新するために、その勾配値を使用する。これは、多くのCNNプラットフォームにおける標準プロセスである。次いで、方法900は、ステップ981及び982からステップ990に進む。
ステップ990は、学習データ内のすべてのインスタンスが処理されたかどうかを決定する。NOの場合、方法900は、次の学習インスタンスで学習を継続するために、ステップ990からステップ930に進む。それゆえに、方法900は、すべての学習インスタンスが2つのネットワークを学習するために使用されるまで継続する。YESの場合、方法900は終了する。
学習方法2の1つの利点は、たとえそれが2つのネットワークについて学習しているとしても、各重複サブネットワークの重みが同じであることである。言い換えれば、「コンテキスト付きネットワーク」は、「コンテキスト付き」及び「コンテキストなし」の両方の機能を実行することができる。これは、利用不可値が、通常のコンテキストテンソルと同じように演算することを可能にする。
実行時に、コンテキストが利用可能でない場合、前景マスク150は、「コンテキスト付きのネットワーク」を使用して決定され、コンテキスト情報をゼロに設定することができる。これは、「コンテキスト付きのネットワーク」のみが、使用のために格納される必要があることを意味する。一方、図7で説明されたような学習方法1が使用される場合、コンテキストなしのネットワーク及びコンテキスト付きのネットワークの両方が、使用されるネットワークがコンテキスト情報が利用可能であるかどうかに依存するので、使用のために格納される必要があるだろう。並列学習方法(すなわち、学習方法2)は、ハードウェアで使用されるメモリ空間を低減することができる。
[コンテキストの利用不可]
学習方法2を使用して学習された「コンテキスト付きのネットワーク」は、コンテキスト情報102が利用可能でない場合であっても、出力(この例では、前景マスク150)を計算する能力を有する。これは、「コンテキスト付きのネットワーク」の130及び230のサブネットワークへの入力であるコンテキストテンソルが、既に格納されている利用不可値を有しうる可能性があるからである。したがって、利用不可値を使用することは、「コンテキスト付きのネットワーク」を「コンテキストなしのネットワーク」と同等にするだろう。
1つのシナリオでは、点線ボックス260及び250にグループ化されたネットワーク内のプロセスは、異なるハードウェア上で処理されることができるが、一時的に故障した通信又はハードウェアにより、点線ボックス260にグループ化されたネットワーク内のプロセスは、点線ボックス250にグループ化されたネットワークからコンテキストテンソルを取得することができない。このような場合、点線ボックス260内のサブネットワークは、点線ボックス250にグループ化されたサブネットワークからのコンテキスト情報なしで、正しく動作することができる。コンテキスト情報が再び利用可能である場合、点線ボックス260にグループ化されたサブネットワークは、コンテキスト情報を再び使用することによって精度を改善することができる。
[ユースケース例(身体部分分離)]
方法300は、身体部分を分離するために使用されることができる。身体部分分離は、人物画像101が与えられると、各画素に対するベクトルを出力するアプリケーションを指す。ベクトルは値を含み、各値は、ある身体部分に属するものとしてその画素によって示されている身体部分の尤度を示す。例えば、ベクトルは、ベクトルに対応する画素が、背景、髪、顔、胴、左腕、右腕、左脚、及び右脚の8つの身体部分のうちの1つに属する尤度を識別する<0,1,0,0,0,0,0,0>の値を有する。8個の要素で構成されるベクトルの第一の値は本質的に背景マスクであるので、身体部分分離は、前景マスクアプリケーションの目標を実現する。
図2を参照すると、身体部分分離のためのサブネットワークは、前景マスクサブネットワークと同様である。その唯一の違いは、そこでW×H×Cbのテンソルを出力するサブネットワーク140であり、ここでW及びHは人物画像の幅及び高さであり、ここでCbは各画素の分類の数であり、この例ではCbは8となる。図4に示される逸脱角度のコンテキストは、身体部分の分離を助けることもできる。図7又は図9に表される学習アルゴリズムは、この例のためにCNNを学習するために、使用されることもできる。
[ユースケース例(特性推定)]
オブジェクト属性推定方法300の使用は、人物に関連するステートメントのセットなどのようなオブジェクト特性にも適用されることができる。例えば、そのステートメントは、「その人が帽子を着ているかどうか」及び「その人が傘を持っているかどうか」であり得る。特性推定は、各ステートメントが真である尤度の推定を指す。例えば、この人物の特性に対する<0.8,0.1>の推定は、その人物が帽子を着ている可能性が高く、及び傘を有する可能性が低いことを意味する。
図2を参照すると、人物特性の適用では、現在のコンテキスト情報がないと仮定すると、入力101は人物画像でもあり、出力150は2つの属性ステートメントの尤度である。点線ボックス260にグループ化されたサブネットワークは、2つの属性ステートメントの尤度を表す2×1ベクトルを生成する必要がある最後のサブネットワーク140を除いて、ほとんど同様に設計される。サブネットワーク140は、複数の畳み込み層及び全結合層、例えば{conv3×3,conv3×3,fc,fc}を含むことができる。これらのサブネットワークは事前学習ステップ715によって学習されることができ、そのステップはCNNがうまく機能するための適切な重み725を生成する。
ここで、人物画像が撮影されたときの気象情報が与えられたと仮定する。この情報は、オブジェクト属性推定方法300におけるコンテキスト情報102である。コンテキスト情報102は、4つの値、例えば<0.3,0.7,0,0>のベクトルによって示されることができ、これらの値は、その日のうちの、日が晴れている、曇っている、雨が降っている、又は雪が降っている部分を表すことができる。このようなコンテキスト情報は、点線ボックス250にグループ化されたサブネットワークで処理され、及び点線ボックス260にグループ化されたサブネットワークに結合される。微調整学習ステップ735を介して、又は図9の並列学習を介して、前景マスク分離方法CNN全体に対する適切な重みが得られる。気象コンテキストが帽子の着用すること又は傘を持つことの尤度の推定に寄与し得るので、特性推定は、現在、より正確である。
[ユースケース例(特性推定−キーポイント検出)]
オブジェクト属性推定方法300の使用は、キーポイントなどのようなオブジェクト特性の検出にも適用されることができる。オブジェクトキーポイントは、オブジェクトに関連する特定のポイントを指す。例えば、頭部及び足の位置は、人物のキーポイントとすることができる。
このユースケースのネットワーク及び学習方法は、人物属性推定のユースケース例と非常に類似している。このユースケースの出力150は、キーポイントの座標を含むベクトルである。コンテキスト情報102は、図4に示されるような逸脱角度であってよく、及び最後のサブネットワーク140は、人物属性の例と同様に、ベクトルを生成する必要がある。
その人物の上半身が目に見え、下半身が別の人によって塞がれていると仮定すると、その足の位置は、上半身の形状及び人の逸脱角度情報から推定されることができる。それゆえに、コンテキスト情報は、遮蔽及び任意の他の画像ノイズを補うことができる。
方法300における各ステップ若しくはサブプロセス、又は前述された他の方法は、プログラム833の1つ又は複数のセグメントに関連付けられ、並びに、プログラム833の注目されたセグメントに対する命令セット内のすべての命令に対するフェッチ、デコード、及び実行サイクルを実行するために協働する、プロセッサ805内のレジスタセクション844、845、847、ALU840、及び制御部839によって実行される。
オブジェクト属性推定方法300は、代替的に、方法300の機能又はサブ機能を実行する1つ又は複数の集積回路などのような専用ハードウェアで実装されてもよい。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ、又は1つ又は複数のマイクロプロセッサ及び関連するメモリを含んでいてもよく、並びにビデオカメラなどのようなプラットフォーム上に存在していてもよい。

Claims (19)

  1. 畳み込みネットワークを用いて画像内のオブジェクトを分析する方法であって、
    画像の視覚要素から画像テンソルを決定する工程と、
    前記画像の視覚要素とは異なる情報である、前記画像のコンテキスト情報を決定する工程と、
    前記決定されたコンテキスト情報のコンテキストテンソルを前記画像テンソルと同じサイズで生成する工程と、
    結合テンソルを形成するために、前記画像テンソル及び前記コンテキストテンソルを結合する工程と、
    前記結合テンソルに基づいて前記オブジェクトの属性を推定する工程と、
    を備える方法。
  2. フィルタリングされたテンソルを形成するために前記結合テンソルをフィルタリングするフィルタサブネットワークを適用する工程をさらに備える、請求項1に記載の方法。
  3. 前記属性が、前景マスク及び特徴のうちのいずれか1つである、請求項に記載の方法。
  4. 前記オブジェクトの前記属性を推定する前記工程が、二次元行列、又はベクトルを出力する、請求項に記載の方法。
  5. 前記コンテキスト情報が、前記オブジェクトの逸脱角度、気象情報、カメラ設定、時刻、及び環境情報のうちのいずれか1つである、請求項に記載の方法。
  6. 前記畳み込みニューラルネットワークが、連続学習方法又は並列学習方法によって学習される、請求項に記載の方法。
  7. 前記コンテキストテンソルを前記生成する前記工程が、一次元ベクトルをテンソルに再形成することを含む、請求項に記載の方法。
  8. 前記結合テンソルが、前記画像テンソル及び前記コンテキストテンソルの合計、又は前記画像テンソル及び前記コンテキストテンソルの連結に基づいて形成される、請求項に記載の方法。
  9. 前記コンテキスト情報が、前記コンテキストテンソルを置き換えるための利用不可値を含む、請求項に記載の方法。
  10. 畳み込みニューラルネットワークを用いて画像内のオブジェクトを分析するシステムであって、
    プロセッサと、
    プロセッサと通信するメモリと、を備え、
    前記メモリは、前記プロセッサによって実行可能なアプリケーションプログラムを有し、前記プロセッサは、前記画像内の前記オブジェクトを分析する方法を実行するために、前記アプリケーションプログラムを実行し、
    前記方法は、
    前記画像の視覚要素から画像テンソルを決定する工程と、
    前記画像の視覚要素とは異なる情報である、前記画像のコンテキスト情報を決定する工程と、
    前記決定されたコンテキスト情報のコンテキストテンソルを前記画像テンソルと同じサイズで生成する工程と
    結合テンソルを形成するために、前記画像テンソル及び前記コンテキストテンソルを結合する工程と、
    前記結合テンソルに基づいて前記オブジェクトの属性を推定する工程と、
    を含む、システム。
  11. 前記方法が、フィルタリングされたテンソルを形成するために前記結合テンソルをフィルタリングするフィルタサブネットワークを適用する工程をさらに備える、請求項10に記載のシステム。
  12. 記畳み込みニューラルネットワークは、前記メモリに格納された前記アプリケーションプログラムのうちの1つである、請求項10に記載のシステム。
  13. 前記属性が、前景マスク及び特徴のうちのいずれか1つである、請求項12に記載のシステム。
  14. 前記オブジェクトの属性を推定する前記工程が、二次元行列、又はベクトルを出力する、請求項13に記載のシステム。
  15. 前記コンテキスト情報が、前記オブジェクトの逸脱角度、気象情報、カメラ設定、時刻、及び環境情報のうちのいずれか1つである、請求項10に記載のシステム。
  16. 前記畳み込みニューラルネットワークが、連続学習方法又は並列学習方法によって学習される、請求項10に記載のシステム。
  17. 前記コンテキストテンソルを前記生成する前記工程が、一次元ベクトルをテンソルに再形成することを含む、請求項10に記載のシステム。
  18. 前記結合テンソルが、前記画像テンソルと前記コンテキストテンソルとの合計、又は前記画像テンソルと前記コンテキストテンソルとの連結に基づいて形成される、請求項10に記載のシステム。
  19. 前記コンテキスト情報は、前記コンテキストテンソルを置き換えるための利用不可値を含む、請求項10に記載のシステム。
JP2019108996A 2018-06-21 2019-06-11 人工ニューラルネットワークを用いた画像処理 Active JP6808783B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/014,874 2018-06-21
US16/014,874 US10706499B2 (en) 2018-06-21 2018-06-21 Image processing using an artificial neural network

Publications (2)

Publication Number Publication Date
JP2019220174A JP2019220174A (ja) 2019-12-26
JP6808783B2 true JP6808783B2 (ja) 2021-01-06

Family

ID=68982017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019108996A Active JP6808783B2 (ja) 2018-06-21 2019-06-11 人工ニューラルネットワークを用いた画像処理

Country Status (2)

Country Link
US (1) US10706499B2 (ja)
JP (1) JP6808783B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10839517B2 (en) * 2019-02-21 2020-11-17 Sony Corporation Multiple neural networks-based object segmentation in a sequence of color image frames
DE102021202681A1 (de) * 2021-03-19 2022-09-22 Robert Bosch Gesellschaft mit beschränkter Haftung Detektionseinrichtung zur Erkennung eines Objekts und/oder einer Person, Verfahren, Computerprogramm und Speichermedium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6320112B2 (ja) * 2014-03-27 2018-05-09 キヤノン株式会社 情報処理装置、情報処理方法
EP3742347B1 (en) * 2016-03-03 2022-11-02 Google LLC Deep machine learning methods and apparatus for robotic grasping
JP2017191501A (ja) * 2016-04-14 2017-10-19 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US10748062B2 (en) * 2016-12-15 2020-08-18 WaveOne Inc. Deep learning based adaptive arithmetic coding and codelength regularization
US10929987B2 (en) * 2017-08-16 2021-02-23 Nvidia Corporation Learning rigidity of dynamic scenes for three-dimensional scene flow estimation
US11475351B2 (en) * 2017-11-15 2022-10-18 Uatc, Llc Systems and methods for object detection, tracking, and motion prediction
US10628686B2 (en) * 2018-03-12 2020-04-21 Waymo Llc Neural networks for object detection and characterization
US10825071B2 (en) * 2018-04-09 2020-11-03 International Business Machines Corporation Adaptive multi-perceptual similarity detection and resolution

Also Published As

Publication number Publication date
US10706499B2 (en) 2020-07-07
US20190392550A1 (en) 2019-12-26
JP2019220174A (ja) 2019-12-26

Similar Documents

Publication Publication Date Title
US9898686B2 (en) Object re-identification using self-dissimilarity
Khan et al. Automatic shadow detection and removal from a single image
US10503981B2 (en) Method and apparatus for determining similarity of objects in images
JP2020520512A (ja) 車両外観特徴識別及び車両検索方法、装置、記憶媒体、電子デバイス
US7352881B2 (en) Method for tracking facial features in a video sequence
WO2023005161A1 (zh) 人脸图像相似度的计算方法、装置、设备及存储介质
CN111931764B (zh) 一种目标检测方法、目标检测框架及相关设备
US9367762B2 (en) Image processing device and method, and computer readable medium
Cho et al. Deep convolutional neural network for natural image matting using initial alpha mattes
CN110222686B (zh) 物体检测方法、装置、计算机设备和存储介质
CN103430218A (zh) 用3d脸部建模和地标对齐扩增造型的方法
Arcila et al. Segmentation of temporal mesh sequences into rigidly moving components
JP6808783B2 (ja) 人工ニューラルネットワークを用いた画像処理
JP6967056B2 (ja) ディープブラインド画像領域予測を用いたアライメントフリービデオ変化検出
US11055572B2 (en) System and method of training an appearance signature extractor
Rowghanian et al. Object tracking by mean shift and radial basis function neural networks
Riche et al. Bottom-up saliency models for still images: A practical review
CN116309050A (zh) 图像超分辨率方法、程序产品、存储介质及电子设备
Ahmad et al. Resource efficient mountainous skyline extraction using shallow learning
Liang et al. Hand parsing and gesture recognition with a commodity depth camera
Ivanecký Depth estimation by convolutional neural networks
KR102224218B1 (ko) 비디오 시간 정보를 활용하는 딥러닝 기반 물체 검출 방법 및 장치
KR20210091033A (ko) 객체 정보 추정과 가상 객체 생성을 위한 전자 장치 및 전자 장치의 동작 방법
Ewerth et al. Estimating relative depth in single images via rankboost
Bodavarapu et al. An optimized convolutional neural network model for wild animals detection using filtering techniques and different opacity levels

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201209

R151 Written notification of patent or utility model registration

Ref document number: 6808783

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151