(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-05
(45)【発行日】2023-04-13
(54)【発明の名称】複数のデータセットからの訓練による物体検出
(51)【国際特許分類】
G06V 10/774 20220101AFI20230406BHJP
G06V 10/75 20220101ALI20230406BHJP
G06N 20/00 20190101ALI20230406BHJP
【FI】
G06V10/774
G06V10/75
G06N20/00 130
(21)【出願番号】P 2022512357
(86)(22)【出願日】2020-11-12
(86)【国際出願番号】 US2020060169
(87)【国際公開番号】W WO2021097048
(87)【国際公開日】2021-05-20
【審査請求日】2022-02-22
(32)【優先日】2020-11-10
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-11-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504080663
【氏名又は名称】エヌイーシー ラボラトリーズ アメリカ インク
【氏名又は名称原語表記】NEC Laboratories America, Inc.
(74)【代理人】
【識別番号】100123788
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】シュルター、 サミュエル
(72)【発明者】
【氏名】シャルマ、 ガウラヴ
(72)【発明者】
【氏名】ツァイ、 イ-シューアン
(72)【発明者】
【氏名】チャンドラカー、 マンモハン
(72)【発明者】
【氏名】ザオ、 シアンギュン
【審査官】堀井 啓明
(56)【参考文献】
【文献】特表2018-537798(JP,A)
【文献】国際公開第2018/216648(WO,A1)
【文献】特開2018-081569(JP,A)
【文献】特開2019-192022(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 10/774
G06V 10/75
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
複数のデータセット固有物体検出器を、それぞれの注釈付きデータセットを使用して訓練し(204)、前記注釈付きデータセットのそれぞれが、1つまたは複数の物体クラスのそれぞれのセットに対する注釈を含むことと、
前記複数のデータセット固有物体検出器の各々が、該データセット固有物体検出器の訓練で使用した前記注釈付きデータセットの前記1つまたは複数の物体クラスに基づいて、他のデータセット固有物体検出器の訓練で使用した前記注釈付きデータセットに注釈をつけるように、前記データセット固有物体検出器を使用して前記注釈付きデータセットに相互注釈をつける(206)ことと、
前記相互注釈付きのデータセットを使用して、前記注釈付きデータセットの前記物体クラスの全てを検出するように統一物体検出器を訓練する(208)ことと、
前記統一物体検出器を用いて入力画像中の物体を検出する(210)ことと、を含む、物体検出の方法。
【請求項2】
前記統一物体検出器を訓練することは、真のグラウンドトゥルースとして前記注釈付きデータセットの注釈を使用し、擬似グラウンドトゥルースとして前記データセット固有物体検出器による相互注釈を使用する、請求項1に記載の方法。
【請求項3】
前記注釈はそれぞれ、物体についての境界ボックスと物体クラスとを含む、請求項1に記載の方法。
【請求項4】
前記複数のデータセット固有物体検出器は、共有バックボーンを使用して訓練される、請求項1に記載の方法。
【請求項5】
前記複数のデータセット固有物体検出器は、別々のそれぞれのバックボーンを使用して訓練される、請求項1に記載の方法。
【請求項6】
前記注釈付きデータセットの各々は、他の注釈付きデータセットのいずれにおいても注釈付けされていない少なくとも1つの物体クラスに対する注釈を含む、請求項1に記載の方法。
【請求項7】
前記注釈付きデータセットに相互注釈を付けることは、第2の注釈付きデータセット上で訓練されたデータセット固有物体検出器を使用して第1の注釈付きデータセット上で物体検出を行って、前記第2の注釈付きデータセットの前記1つまたは複数の物体クラスに属する1つまたは複数の仮対象物を検出することを含む、請求項1に記載の方法。
【請求項8】
前記注釈付きデータセットに相互注釈を付けすることは、前記1つまたは複数の検出された仮対象物のそれぞれについて信頼スコアを決定することと、
前記1つまたは複数の検出された仮対象物のそれぞれの前記信頼スコアを、第1の閾値および第2の閾値と比較することと、
前記比較に従って前記1つまたは複数の検出された仮対象物に注釈を付けることと、をさらに含む、請求項7に記載の方法。
【請求項9】
前記1つまたは複数の検出された仮対象物に注釈を付けることは、前記1つまたは複数の検出された仮対象物のうちの少なくとも1つの信頼スコアが前記第1の閾値と前記第2の閾値との間にあるという判定に応答して、前記1つまたは複数の検出された仮対象物のうちの前記少なくとも1つを廃棄することを含む、請求項8に記載の方法。
【請求項10】
前記検出された物体を使用してコンピュータビジョンタスクを実行することを、さらに含む、請求項1に記載の方法。
【請求項11】
ハードウェアプロセッサ(402)と、
前記ハードウェアプロセッサによって実行されるコンピュータプログラムコードを記憶するように構成されたメモリ(404)と、を含み、前記コンピュータプログラムコードは、
複数のデータセット固有物体検出器を実装する機械学習コード(406)であって、各データセット固有物体検出器が、それぞれの注釈付きデータセットによる訓練に従って入力画像内の物体を検出および注釈付けし、前記注釈付きデータセットの各々が、1つまたは複数の物体クラスのそれぞれのセットに対する注釈を含み、
前記複数のデータセット固有物体検出器の各々が、該データセット固有物体検出器の訓練で使用した前記注釈付きデータセットの前記1つまたは複数の物体クラスに基づいて、他のデータセット固有物体検出器の訓練で使用した前記注釈付きデータセットに注釈をつけるように、前記複数のデータセット固有物体検出器が、前記注釈付きデータセットに相互注釈をつける、機械学習コードと、
複数のデータセットによる訓練に従って入力画像内の物体を検出し、注釈を付ける統一物体検出器を実装する機械学習コード(408)と、
それぞれの注釈付きデータセットを使用して前記複数のデータセット固有物体検出器を訓練するデータセット固有訓練コード(407)と、
前記相互注釈付きのデータセットを使用して、前記注釈付きデータセットのすべての物体クラスを検出するように前記統一物体検出器を訓練する統一訓練コード(407)と、
前記統一物体検出器を使用して入力画像内の物体を検出する物体検出コード(408)と、を含む、物体検出のシステム。
【請求項12】
前記統一物体検出器は、真のグラウンドトゥルースとして前記注釈付きデータセットの注釈を使用し、擬似グラウンドトゥルースとして前記データセット固有物体検出器による相互注釈を使用する、請求項11に記載のシステム。
【請求項13】
前記注釈はそれぞれ、物体についての境界ボックスおよび物体クラスを含む、請求項11に記載のシステム。
【請求項14】
前記データセット固有訓練コードは、共有バックボーンを使用して前記複数のデータセット固有物体検出器を訓練する、請求項11に記載のシステム。
【請求項15】
前記データセット固有訓練コードは、別個のそれぞれのバックボーンを使用して前記複数のデータセット固有物体検出器を訓練する、請求項11に記載のシステム。
【請求項16】
前記注釈付きデータセットの各々は、他の注釈付きデータセットのいずれにおいても注釈付けされていない少なくとも1つの物体クラスに対する注釈を含む、請求項11に記載のシステム。
【請求項17】
前記複数のデータセット固有物体検出器の各々は、それぞれの第2の注釈付きデータセット上で訓練され、第1の注釈付きデータセットのセットにおいて画像上で物体検出を実行して、前記第2の注釈付きデータセットの1つまたは複数の物体クラスに属する1つまたは複数の仮対象物を検出する、請求項11に記載のシステム。
【請求項18】
前記複数のデータセット固有物体検出器の各々は、前記画像の各々における前記1つまたは複数の検出された仮対象物の各々に対する信頼スコアを更に決定し、前記1つまたは複数の検出された仮対象物の各々に対する前記信頼スコアを第1の閾値および第2の閾値と比較し、前記比較に従って前記画像に注釈を付ける、請求項17に記載のシステム。
【請求項19】
前記複数のデータセット固有物体検出器の各々は、前記1つまたは複数の検出された仮対象物のうちの少なくとも1つについての前記信頼スコアが前記第1の閾値と前記第2の閾値との間にあるという判定に応答して、前記1つまたは複数の検出された仮対象物のうちの前記少なくとも1つをさらに廃棄する、請求項18に記載のシステム。
【請求項20】
前記コンピュータプログラムコードは、前記検出された物体を用いてコンピュータビジョンタスクを実行するセキュリティコードをさらに含む、請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願情報
本出願は2019年11月14日に出願された米国特許出願第62/935,103号、および2020年11月10日に出願された米国特許出願第17/094,261号の優先権を主張し、それぞれ、参照により全体が本明細書に組み込まれる。
【背景技術】
【0002】
技術分野
本発明は、画像分類に関し、より詳細には、不均一なラベル空間を有する複数のデータセットを使用した画像内の物体の検出に関する。
関連技術の説明
【0003】
物体検出は、所与の画像内の物体の位置を特定し、カテゴリ化する。訓練データは、検出される物体のカテゴリごとに必要である。しかしながら、多くの物体検出システムは、単一の物体クラスのみ、または固定数の特定の物体クラスの検出に限定される。
【発明の概要】
【0004】
物体検出のための方法は、データセット固有物体検出器を、それぞれの注釈付きデータセットを使用して訓練することを含み、注釈付きデータセットのそれぞれは、1つまたは複数の物体クラスのそれぞれのセットに対する注釈を含む。注釈付きデータセットは、データセット固有物体検出器を使用して相互注釈付けされる。統一物体検出器は、相互注釈付きのデータセットを使用して、注釈付きデータセットの物体クラスのすべてを検出するように訓練される。物体は、統一物体検出器を使用して入力画像内で検出される。
【0005】
物体検出のためのシステムは、ハードウェアプロセッサとメモリとを含む。メモリは、ハードウェアプロセッサによって実行され、複数のデータセット固有物体検出器を実装する機械学習コードと、統一物体検出器を実装する機械学習コードと、データセット固有の訓練コードと、統一訓練コードと、物体検出コードとを含むコンピュータプログラムコードを格納するように構成される。複数のデータセット固有物体検出器はそれぞれ、それぞれの注釈付きデータセットによる訓練に従って、入力画像内の物体を検出し、注釈を付ける。各注釈付きデータセットには、1つ以上の物体クラスのそれぞれのセットの注釈が含まれる。データセット固有物体検出器は、注釈付きデータセットに相互注釈を付ける。統一物体検出器は、複数のデータセットによる訓練に従って入力画像内の物体を検出し、注釈を付ける。データセット固有の訓練コードは、それぞれの注釈付きデータセットを使用して、複数のデータセット固有物体検出器を訓練する。統一訓練コードは、相互注釈付きのデータセットを使用して、注釈付きデータセットの物体クラスのすべてを検出するように統一物体検出器を訓練する。物体検出コードは、統一物体検出器を使用して入力画像内の物体を検出する。
【0006】
これらおよび他の特徴および利点は、添付の図面に関連して読まれるべき、その例示的な実施形態の以下の詳細な説明から明らかになるのであろう。
【図面の簡単な説明】
【0007】
本開示は、以下の図面を参照して、好ましい実施形態の以下の説明において詳細を提供する。
【0008】
【
図1】本発明の一実施形態による、各データセットからの画像が他のデータセット内で注釈付けされた注釈なし物体を含む注釈付きデータセットを示す図である。
【0009】
【
図2】本発明の一実施形態による、複数の注釈付きデータセットを使用してマルチクラス検出器を訓練するための方法のブロック/フロー図である。
【0010】
【
図3】本発明の一実施形態による、データセット固有物体検出器の異なる実装の図である。
【0011】
【
図4】本発明の一実施形態による、マルチデータセット物体検出システムのブロック図である。
【0012】
【
図5】本発明の一実施形態による高レベルニューラルネットワークの図である。
【0013】
【
図6】本発明の一実施形態による、例示的なニューラルネットワークアーキテクチャの図である。
【発明を実施するための形態】
【0014】
物体検出は、自動運転(例えば、画像中の人と車両を識別する)や、追跡、姿勢推定、および姿勢認識のようなコンピュータビジョンタスクのような種々の目的のために使用され得る。画像物体の異なるそれぞれのクラスを識別するデータセットを組み合わせて、異なるクラスのすべてについて画像検出分類器を訓練することができる。関連するクラスの物体が各画像内で識別される訓練データセットを組み合わせる際の課題は、これらの異種データセットがそれぞれ、他のクラスからの物体を示す画像を含む可能性があることである。したがって、データセットAが画像内の物体Aの位置を特定するために使用され、データセットBが画像内の物体Bの位置を特定するために使用される場合に、いくつかの物体BがデータセットAの画像内に存在し、いくつかの物体AがデータセットBの画像内に存在することがあるので、2つのデータセットを単純に組み合わせることは、結果として得られる分類器の精度を低下させることがある。
【0015】
すべてのデータセットに、他のクラスのそれぞれについて物体指定を用いて手作業で注釈を付けるのではなく(例えば、データセットAから画像内の物体Bを手作業で識別するのではなく)、それぞれの単一クラス分類器を用いて、他のデータセット内の物体を自動的に見つけることができる。したがって、物体Aを検出するようにデータセットA上で訓練された分類器Aを、データセットB上で実行して、物体Aの存在を示す注釈をデータセットBの画像内に提供することができる。これらの自動的に注釈付けされたデータセットを組み合わせて使用して、入力画像内の物体クラスのいずれかを特定することができる合成分類器を訓練することができる。
【0016】
次に、同一の数字が同一または類似の要素を表す図を参照する。最初に
図1を参照すると、2つの訓練データセットが示されている。Aとラベル付けされた第1のデータセットには人が注釈付けされ、Bとラベル付けされた第2のデータセットには、自動車が注釈付けされている。各データセットは、複数の画像100を含み、各画像は、関連クラスのゼロ、1、または複数の物体を含み得る。
【0017】
例えば、データセットAは、境界ボックス102を備えた人物の存在を示す。データセットBは、境界ボックス104を備えた自動車の存在を示す。しかしながら、各データセットは、他のデータセットのクラスからの物体を有する画像100を含む。したがって、例えば、データセットBからの画像100は、境界ボックスで注釈が付けられていない人物106を含むことができる。データセットBからの画像100が、人物を識別する分類器のための訓練データセットに含まれる場合、画像の背景の一部として人物を含む合成データセット内に少なくともいくつかの画像100が存在する可能性がある。これは、いくつかの物体が注釈付けされ、いくつかの物体が注釈付けされない、一貫性のない訓練データを生成する。
【0018】
複数の画像クラスを認識するために分類器を適切に訓練するデータセットを生成する1つのアプローチは、初期訓練データセットに手動で注釈を付け、マルチクラス物体検出システムを訓練し、検証画像のセットを使用してシステムを評価することである。そして、分類器が、任意の物体クラスに対して適切な性能を提供できない場合、その物体クラスに特有である追加の訓練データを取得することができる。しかしながら、このような場合、新たな訓練データがこれらの分類の有効性を損なわないように、分類器において十分な性能を有するクラスであっても、追加の訓練データは、他のクラスの全てについて再注釈をつける必要がある。
【0019】
そして、分類器がすでに訓練されていると、新しいクラスの物体を追加することは、同様の課題を提起する。このような場合、元の訓練データセットのすべての画像は、元のクラスのそれぞれで新しいデータセットに注釈を付けるだけでなく、新しいクラスの物体を識別するために再注釈を付ける必要がある。
【0020】
これらの課題に対処するために、それぞれの注釈付きデータセット上で訓練された単一クラス分類器を使用して、他の訓練データセット内のそのクラスに関係する物体を識別することができる。したがって、上記の例に従うと、人物を識別するためにデータセットA上で訓練された分類器Aは、そのデータセット内の人物を識別するために、データセットB上で使用され得る。これにより、データセットを手動で再注釈付けするために必要な時間とコストを回避できる。
【0021】
次に
図2を参照すると、複数の異なる物体クラスに対して統一データセットを使用する物体検出方法が示されている。ブロック202は、複数のデータセットのラベル空間を統一し、ここで、用語「ラベル空間」は、所与のデータセット内で注釈付けされる物体クラスのセットを参照するために使用され得る。これには、データセットによって定義された物体クラスを統一することを含む。例えば、2つのデータセットは、1つまたは複数の物体クラスの意味的複製(semantic duplicates)を含むことができ、両方のデータセットは同じクラスの物体(例えば、自動車)を表す。これらの意味的複製(semantic duplicates)は、併合されてもよい。多くの場合、異なるデータセットのラベル空間は異なっていてもよいが、複数のデータセットが単一のラベルス空間を共有してもよく、その場合、ラベル空間はブロック202において統一される必要はない。
【0022】
データセットは、画像内の物体の位置を識別する、適切な境界ボックスまたは他の境界を用いて画像内の物体の存在を示すことがある。各注釈は、例えば、物体を密接に囲む画像空間内の座標(境界ボックスの角を識別する)と、境界ボックス内の物体を識別するクラスラベルとを含むことができる。境界ボックスは、例えば、識別された物体が画像内で重なり合う場合に、重なり合ってもよい。
【0023】
背景の定義がデータセットごとに異なることがあるが、異なるデータセットの背景のカテゴリも併合されてもよい。この併合における曖昧さは、損失関数および擬似グラウンドトゥルースを使用して解決することができる。
【0024】
一つの表現では、N個のデータセットはD
1, ...,D
Nとして表現されることがあり、対応するラベル空間L
1, ...,L
Nをもち、各々のラベル空間L
iはデータセットD
iにおいて注釈付けされるカテゴリの集合である。ラベル空間は、等しくする必要はなく、それらの間で共通のカテゴリが許可される。例えば、多くの異なる物体検出データセットは、人のような頻繁に現れる特徴に対して注釈付けされる。データセットD
iの背景b
iは、データセットごとに異なり、データセット
【数1】
の完全なラベル空間になる。異なるデータセットのデータセット固有背景の併合については、以下で詳しく説明する。
【0025】
データセットD
iは、M
iの画像I
i,jを含むことができ、ここで、j=1,...,Mである。画像I
i,jのための真のグラウンドトゥルース注釈は、画像I
i,j中の物体kに対応し、かつ、画像空間における境界ボックス座標
【数2】
とカテゴリラベル
【数3】
とを含む、各グラウンドトゥルース注釈
【数4】
を用いて、
【数5】
として表現することができる。G
i,jの境界ボックスで覆われていない画像I
i,jの領域は、背景b
iにあると考えられる。ラベル空間を統一すると、新しいラベル空間
【数6】
が生成され、
【数7】
上で訓練された物体検出器がすべての物体クラスから物体を検出するようになる。
【0026】
ブロック204は、データセット固有検出器を訓練する。個々のデータセット上で訓練される検出器には背景カテゴリの曖昧さがないので、これらのそれぞれの検出器を使用して、各検出器の訓練データセットの注釈に従って、様々なデータセットから画像内の物体を識別し、注釈を付けることができる。教師なしドメイン適応は、他のデータセットに適用される場合に、データセット固有検出器の性能を改善するために使用されてもよい。
【0027】
任意の適切な検出器フレームワークを使用することができるが、ニューラルネットワークの使用が特に企図される。例えば、畳み込みニューラルネットワーク特徴(R-CNN)システムを有する領域は、物体検出器として特徴ピラミッドネットワーク(FPN)と共に使用することができる。入力画像を提供することができ、畳み込み特徴を「バックボーン」ネットワークで抽出することができる。次に、領域候補ネットワーク(RPN)を使用して、カテゴリに依存しない方式で潜在的な物体を記述する境界ボックスのセットを予測することができる。次いで、領域分類ネットワークは、各候補を定義されたラベル空間に分類することができ、位置特定を改善することができる。
【0028】
次いで、ブロック206は、データセット固有検出器を使用して、他の物体クラスのためのデータセットに相互注釈付けし、様々な物体クラスの欠落した注釈のための擬似グラウンドトゥルースを提供する。これは、様々なデータセットからの画像における背景カテゴリの曖昧さを軽減するのに役立つ。データセット固有検出器はそれぞれ、他のデータセットの画像の各々における全ての潜在的な物体を分類しようと試み、各データセットの元の注釈の真のグラウンドトゥルースに加える擬似グラウンドトゥルースを確立する。
【0029】
次いで、ブロック208は、注釈付きデータセットの結合を使用して、統一されたラベル空間を有する検出器を訓練する。物体検出器は、例えば、適用された訓練データに基づいて調整されるパラメータを有するディープニューラルネットワークとして実装されてもよい。損失関数を用いて、グラウンドトゥルースと訓練データの与えられた画像に対する現在の検出モデルの予測との間の差を測定することができる。モデルのパラメータは、損失関数に関して微分可能であってもよい。確率的勾配降下法のような最適化を用いてパラメータを更新することができる。
【0030】
したがって、ラベル空間L
iから注釈G
i, jを有する画像I
i,jに対して、統一ラベル空間
【数8】
上で訓練された物体検出器は、一組の検出
【数9】
を出力する。ブロック208は、
【数10】
と
【数11】
との間のIOU(intersection-over-union)類似度
【数12】
を計算することができる。任意の物体kについて、
【数13】
を有する全ての予測ボックス
【数14】
は、対応する
【数15】
のグラウンドトゥルースラベルと比較される。曖昧な一致は、背景b
iの一部と見なすか、無視するかを決定するためにさらに処理される。
【0031】
次いで、ブロック210は、訓練された検出器を使用して、新しい入力画像内の物体クラスのいずれかまたはすべてを識別することができる。所与の画像について、ブロック210は、各々がそれぞれの検出された物体を表す境界ボックスのセットを返すことができる。各新たな検出は、境界ボックスを決定するための座標のセットと、検出された物体のための対応するラベルと、スコアとを含むことができる。スコア、例えば、0と1との間の数は、検出された物体のラベルに対する信頼度を示す。
【0032】
ブロック210の訓練は、例えば、ブロック206で生成された擬似ラベルを活用して擬似グラウンドトゥルースを生成することによって、部分的に注釈付けされたデータを考慮に入れる損失関数を使用することができる。したがって、擬似グラウンドトゥルースは、人間の手動注釈によって生成される真のグラウンドトゥルースの雑音の多い推定値とすることができる。
【0033】
損失関数は、予測ボックスをグラウンドトゥルースボックスに割り当てるマッチングストラテジと、それらの間の誤差を測定するための関数とを含み得る。訓練データセットからの画像が与えられると、検出モデルは、最初に、所与のグラウンドトゥルース(例えば、元のデータセットにおいて提供される真のグラウンドトゥルース)と一致する、画像内の物体位置を予測する。これらの一致した予測は、分類(例えば、クロスエントロピー)および位置特定(例えば、l1またはl2距離)のための損失関数に入れることができる。不一致の検出は、ブロック206によって生成された擬似グラウンドトゥルースに対してさらにチェックされてもよい。
【0034】
曖昧な物体検出
【数16】
について、これらのカテゴリはすでに注釈されているので、与えられた画像I
i,jにおける曖昧な検出の真のラベルは、L
iにおけるいかなるラベルにも属さない可能性があるという制約があるかもしれない。統一されたラベル空間
【数17】
および背景上の予測境界ボックスの確率分布は、
【数18】
を用いて
【数19】
として表すことができる。予測境界ボックスが、ラベル
【数20】
を有するG
i,jにおけるグラウンドトゥルースボックスのいずれかに割り当てられている場合、それはエントロピー損失項
【数21】
に寄与する。ここで、
【数22】
は、ラベルaのone-hot-vectorエンコーディングである。例えば、i=aの場合は
【数23】
であり、それ以外の場合はゼロになる。
【0035】
予測ボックスが
【数24】
に属する場合、基礎となるグラウンドトゥルースカテゴリは
【数25】
のいずれかに属することができ、ここで、
【数26】
は、異なるデータセットからの統一された背景である。したがって、以下の損失関数を使用することができる。
【数27】
これは、曖昧なカテゴリの合計でのクロスエントロピー損失に似ており、すべての曖昧さを1つのカテゴリに併合するものと解釈することができる。選択性を促進し、多くのカテゴリにわたる確率質量の広がりを防止するために、最小エントロピー正則化を追加することができる。
【数28】
ここで、λはハイパーパラメータである。別の損失関数は、
【数29】
と表すことができる。これは、曖昧なカテゴリにわたる最大値で
【数30】
の合計を置き換えることができ、したがって、エントロピー項を必要とせずに、単一のカテゴリを直接選択することを奨励する。
【0036】
しかしながら、これらの損失関数のいずれも、ラベル空間の曖昧さを解決しない。それらは
【数31】
における曖昧なカテゴリが正しいかもしれないことを符号化するが、それらはカテゴリに関するいかなる事前分布も使用しない。したがって、擬似ラベリングを使用して、欠落した注釈を推定することによって、データセット固有検出器を活用して、そのような事前分布を提供することができる。
【0037】
上述したように、ブロック204において、データセット固有検出器は、個々のそれぞれのデータセットを用いて訓練される。N個のそのような検出器を、それぞれのデータセットに1つずつ使用することができる。各データセット固有検出器は、問題の訓練データセットに適した異なる方法で訓練されてもよい。データセット固有検出器は、それぞれが別個の特徴抽出バックボーンを有するように、独立して訓練されてもよい。データセット固有デトラクタは、共有バックボーンと、それに続くN個の別個の検出器ヘッドとを使用して訓練されてもよい。
【0038】
データセット固有検出器は、第1のデータセットDj上で訓練されるが、注釈を増強するために別のデータセットDjに適用されるため、データセット間のドメインギャップが考慮される場合がある。共同訓練(joint training)は、ネットワークの一部をドメイン間で共有することができるので、より良好な結果をもたらすことができる。データセット固有検出器を訓練するための別の選択肢は、ドメイン適応を活用して、1つのデータセット上で訓練された検出器を他のすべてのデータセットにドメイン適応させることを可能にすることである。
【0039】
統一検出器を訓練する場合、ブロック208において、個々のデータセットからのデータのミニバッチが、効率的な勾配計算を提供するために使用され得る。本来データセットD
iからの画像ではラベル空間L
iを使用し、L
iのカテゴリのグラウンドトゥルースを使用できるが、
【数32】
のカテゴリは使用できない。これを改善するために、データセット固有検出器のすべてをデータセットのすべてにわたって実行して、画像jのラベル空間
【数33】
の境界ボックス
【数34】
のセットを決定することができる。これらの境界ボックスは、擬似グラウンドトゥルースである。各擬似グラウンドトゥルースボックス
【数35】
は、それに関連する検出スコア
【数36】
を有する。
【0040】
統一物体検出器のための損失関数は、ラベル空間曖昧さを解決する事前分布として擬似グラウンドトゥルースを利用することがある。擬似グラウンドトゥルースは、データセットとデータセット固有検出器の出力に現れる可能性のある誤差との間のドメインギャップのために、ノイズを含んでいる。したがって、不一致検出
【数37】
のセットおよびすべての擬似グラウンドトゥルースボックス
【数38】
が与えられると、
【数39】
と
【数40】
との間のIOU類似度
【数41】
をすべてのlおよびkについて計算することができる。十分に高いIOU類似度(例えば、
【数42】
)を有するすべての擬似グラウンドトゥルースボックスが保持される。擬似グラウンドトゥルースとの複数の一致を維持することは、擬似ラベリングの不確実性に対抗し、潜在的なノイズを平均化する。
【0041】
G
i,jに一致しない各ボックス
【数43】
について、一致した擬似グランドトゥルースボックスのセットを
【数44】
と決定することができ、ここで
【数45】
は検出スコアであり、
【数46】
は検出の最小スコアを擬似グランドトゥルースクラスとして定義する閾値であり、閾値を下回るものは背景として考慮されるものとする。
【数47】
が空である場合、
【数48】
のグラウンドトゥルースラベルは「背景」に設定されてもよく、クロスエントロピー損失が使用されてもよい。そうでない場合、
【数49】
の予測クラス分布
【数50】
に対して以下の損失関数を使用することができる。
【数51】
ここで、
【数52】
は、グラウンドトゥルースの重要度関数(importance function)である。損失は、重要度にわたって重み付けされ、
【数53】
によって正規化された、一致した擬似グラウンドトゥルースボックスにわたる合計であり、ここで、
【数54】
はすべての
【数55】
が0に重み付けされている場合に、ゼロによる除算を防止する小さな定数である。重み関数は、任意の適切な方法で定義することができる。例えば、スコア自体による重み付けである
【数56】
は、1つの単純なアプローチである。別の可能性は、1の重みを有する閾値より上のスコアと、0の重みを有する閾値より下のスコアとを有する、ハード閾値を確立する。
【0042】
疑似グラウンドトゥルースと一致するボックスについて、第1の閾値(例えば、約0.6)を超える信頼度で、別の分類を実行することができる。予測が第1の閾値未満であるが第2の閾値(例えば、約0.1)を超える擬似グラウンドルールと一致する場合、その予測は、損失計算において完全に無視されてもよい。予測が第2の閾値未満(例えば、約0.1未満)の信頼スコアと一致するか、またはグラウンドトゥルースと一致しない場合、その予測は、分類のための背景として扱われてもよい。したがって、曖昧な結果は無視することができる。第1の閾値および第2の閾値の特定の値は、最良の性能をもたらす任意の適切な値に設定することができる。
【0043】
ここで
図3を参照すると、データセット固有物体検出器のための例示的なニューラルネットワーク構造が示されている。第1の構造310では、各データセット固有検出器は、例えばR-CNNネットワークを用いて実装され得る別個のバックボーン302を用いて訓練される。検出器304は、物体の境界ボックスを予測するためのRPNとして実装されてもよい。次いで、分類器306は、予測された境界ボックスのそれぞれについて1つまたは複数のラベルを決定する。次いで、各データセット固有検出器は、それぞれが入力画像300を別々に処理する、別個のバックボーン302、検出器304、および分類器306を含む。
【0044】
第2の構造320では、データセット固有検出器はすべて、単一のバックボーン302を共有する。この共有バックボーン302は、別々の検出器304および分類器306がその上で動作する前に、入力画像300を処理する。バックボーン302は、物体検出のための特徴抽出器として解釈されてもよい。それは、生の画像情報を入力として取り込み、中間特徴を生成することができる。これらの特徴は、ニューラルネットワークの検出特定部分によって入力として取り込まれてもよい。
【0045】
ニューラルネットワークを最適化するとき、情報は、検出特有部分を通って特徴抽出器に戻る。そのため、共有された方法で(例えば、構造320において)バックボーン302を訓練する際には、ニューラルネットワークのこの部分は、全てのデータセットから逆伝播された情報を受信する。対照的に、検出特有部分は、それらのそれぞれのデータセットから更新を得るだけである。これは、統一検出器の全ての部分が全てのデータセットから情報を受信する統一検出器の訓練とは異なる。
【0046】
本明細書に記載する実施形態は、完全にハードウェアであってもよく、完全にソフトウェアであってもよく、またはハードウェアおよびソフトウェア要素の両方を含むものであってもよい。好ましい実施形態では、本発明がファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されないソフトウェアで実施される。
【0047】
実施形態は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して使用するプログラムコードを提供する、コンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品を含むことができる。コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれに関連して使用するためのプログラムを格納、通信、伝搬、または転送する任意の装置を含むことができる。媒体は、磁気、光学、電子、電磁気、赤外線、または半導体システム(または装置またはデバイス)、または伝搬媒体とすることができる。媒体は、半導体または固体メモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスクおよび光ディスクなどのコンピュータ読み取り可能な記憶媒体を含むことができる。
【0048】
各コンピュータプログラムは、本明細書に記載する手順を実行するために、記憶媒体または装置がコンピュータによって読み取られるときに、コンピュータの操作を構成し制御するために、汎用または特殊目的のプログラム可能コンピュータによって読み取り可能な、機械読み取り可能な記憶媒体または装置(例えば、プログラムメモリまたは磁気ディスク)に実体的に記憶することができる。本発明のシステムはまた、コンピュータプログラムで構成された、コンピュータ読み取り可能な記憶媒体で実施されるものと考えることができ、その場合、構成された記憶媒体は、コンピュータを特定の所定の方法で動作させて、本明細書に記載する機能を実行させる。
【0049】
プログラムコードを記憶および/または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接的または間接的に結合された少なくとも1つのプロセッサを含んでもよい。メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリ、バルクストレージ、および実行中にバルクストレージからコードが検索される回数を減らすために少なくとも何らかのプログラムコードの一時記憶を提供するキャッシュメモリを含むことができる。入力/出力またはI/O装置(キーボード、ディスプレイ、ポインティングデバイスなどを含むが、これらに限定されない)は、直接または介在するI/Oコントローラを介してシステムに結合され得る。
【0050】
介在する専用ネットワークまたは公衆ネットワークを介して、データ処理システムを他のデータ処理システムあるいはリモートプリンタまたはストレージデバイスに結合できるようにするために、ネットワークアダプタをシステムに結合することもできる。モデム、ケーブルモデム、およびイーサネットカードは、現在使用可能なネットワークアダプタのタイプの一例に過ぎない。
【0051】
本明細書で使用されるように、「ハードウェアプロセッササブシステム」または「ハードウェアプロセッサ」という用語は、1つ以上の特定のタスクを実行するために協働するプロセッサ、メモリ、ソフトウェア、またはそれらの組み合わせを指すことができる。有用な実施形態では、ハードウェアプロセッササブシステムが1つまたは複数のデータ処理要素(例えば、論理回路、処理回路、命令実行デバイスなど)を含むことができる。1つまたは複数のデータ処理要素は、中央処理装置、グラフィックス処理装置、および/または別個のプロセッサまたはコンピューティング要素ベースのコントローラ(たとえば、論理ゲートなど)に含めることができる。ハードウェアプロセッササブシステムは、1つ以上のオンボードメモリ(例えば、キャッシュ、専用メモリアレイ、読み出し専用メモリなど)を含むことができる。いくつかの実施形態では、ハードウェアプロセッササブシステムが、オンボードまたはオフボードにすることができるか、またはハードウェアプロセッササブシステム(例えば、ROM、RAM、基本入出力システム(BIOS)など)によって使用するために専用にすることができる1つ以上のメモリを含むことができる。
【0052】
ある実施形態では、ハードウェアプロセッササブシステムは、1つ以上のソフトウェア要素を含むことができ、実行することができる。1つ以上のソフトウェア要素は、特定の結果を達成するために、オペレーティングシステムおよび/または1つ以上のアプリケーションおよび/または特定のコードを含むことができる。
【0053】
他の実施形態では、ハードウェアプロセッササブシステムは、指定された結果を達成するために1つまたは複数の電子処理機能を実行する専用の特殊回路網を含むことができる。そのような回路は、1つまたは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、および/またはプログラマブルロジックアレイ(PLA)を含むことができる。
【0054】
ハードウェアプロセッササブシステムのこれらおよび他の変形もまた、本発明の実施形態に従って企図される。
【0055】
本明細書では、本発明の「一つ実施形態」または「一実施形態」、ならびにその他の変形形態に言及し、実施形態に関連して説明した特定の特徴、構成、特性などは、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、「一つの実施形態において」または「一実施形態において」という語句の出現、ならびに本明細書全体を通して様々な個所に出現する任意の他の変形形態は、必ずしもすべてが同じ実施形態を参照しているわけではない。しかしながら、本明細書で提供される本発明の教示を前提として、1つまたは複数の実施形態の特徴を組み合わせることができることを理解されたい。
【0056】
例えば、「A/B」、「Aおよび/またはB」、および「Aおよび/またはBの少なくとも1つ」の場合における、以下の「/」、「および/または」および「少なくとも1つ」のいずれかの使用は、第1のリストされたオプション(A)のみの選択、または第2のリストされたオプション(B)のみの選択、または両方のオプション(AおよびB)の選択を包含することが意図されることを理解されたい。さらなる例として、「A、B、および/またはC」および「A、B、およびCの少なくとも1つ」の場合において、このような句は、第1のリストされたオプション(A)のみの選択、または第2のリストされたオプション(B)のみの選択、または第3のリストされたオプション(C)のみの選択、または第1および第2のリストされたオプション(AおよびB)のみの選択、または第1および第3のリストされたオプション(AおよびC)のみの選択、または第2および第3のリストされたオプション(BおよびC)のみの選択、または3つすべてのオプション(AおよびBおよびC)の選択を包含することが意図される。これは、リストされたアイテムの数だけ拡張することができる。
【0057】
ここで
図4を参照すると、マルチデータセット物体検出システム400が示されている。システム400は、ハードウェアプロセッサ402とメモリ404とを含む。画像入力405は、関心のある1つまたは複数の物体を含むことができる、カメラまたはユーザ入力などの画像データのソースを表すことができる。例えば、画像入力405は、セキュリティビデオカメラからのストリームを表すことができ、危険なまたは安全でない状態を識別するのに、ビデオストリームの画像内の人物の検出が必要となる場合がある。
【0058】
モデルトレーナ410は、統一物体検出器408を訓練して、画像入力405内の複数のクラスの物体を検出する。これらの複数クラスの物体は、複数の元の訓練データセット407において注釈が付けられ、訓練データセット407の各々は、訓練データセット407の残りの部分で提供されていない1つ以上の物体クラス注釈であってもよい。したがって、モデルトレーナ410は、統一物体検出器408を訓練して、訓練データセット407内のすべての物体を検出する。
【0059】
モデルトレーナ410は、複数のデータセット固有物体検出器406を訓練し、例えば、訓練データセット407のそれぞれのデータセットごとに別個のデータセット固有物体検出器406を訓練する。モデルトレーナ410は、これらのデータセット固有物体検出器406を使用して、訓練データセット407を相互注釈付けし、複数の訓練データセット407内のすべての画像にわたって、すべての物体クラスについて「擬似グラウンドトゥルース」を識別する。相互注釈によって表されるこれらの擬似グラウンドトゥルースは、元の注釈によって表される真のグラウンドトゥルースと組み合わせて使用され、統一物体検出器408を訓練する。
【0060】
データセット固有物体検出器406および統一物体検出器408はすべて、上述のように、例えば共有「バックボーン」または別個のバックボーンを使用して、人工ニューラルネットワーク(ANN)として実装することができる。ANNは、脳などの生体神経系から発送を得た情報処理システムである。ANNの重要な要素は、情報処理システムの構造であり、この情報処理システムは、特定の問題を解決するために並列に動作する多数の高度に相互接続された処理要素(「ニューロン」と呼ばれる)を含む。ANNはさらに、ニューロン間に存在する重みの調整を含む学習を用いて、使用中に訓練される。ANNは、そのような学習プロセスを介して、パターン認識またはデータ分類などの特定の適用向けに構成される。
【0061】
ここで
図5を参照すると、ニューラルネットワークの一般化された図が示されている。ANNは、複雑または不正確なデータから意味を導出する能力を示し、パターンを抽出し、人間または他のコンピュータベースのシステムによって検出するには複雑すぎる傾向を検出するために使用することができる。ニューラルネットワークの構造は一般に、1つまたは複数の「隠れ」ニューロン504に情報を提供する入力ニューロン502を有することが知られている。入力ニューロン502と隠れニューロン504との間の接続508は重み付けされ、次に、これらの重み付けされた入力は、層間の重み付けされた接続508と共に、隠れニューロン504内の何らかの関数に従って隠れニューロン504によって処理される。隠れニューロン504、ならびに異なる機能を実行するニューロンの任意の数の層が存在し得る。畳み込みニューラルネットワーク、maxoutネットワーク等のような異なるニューラルネットワーク構造も存在する。最後に、出力ニューロン506のセットは、隠れニューロン504の最後のセットからの重み付けされた入力を受け付けて処理する。
【0062】
これは、情報が入力ニューロン502から出力ニューロン506に伝播する「フィードフォワード」計算を表す。フィードフォワード計算が完了すると、出力は、訓練データから利用可能な所望の出力と比較される。訓練データに対する誤差は、「フィードバック」計算で処理され、隠れニューロン504および入力ニューロン502は出力ニューロン506から後方に伝播する誤差に関する情報を受け取る。一旦、誤差逆伝播が完了すると、重み付け更新が実行され、重み付けされた接続508が受信された誤差を考慮するように更新される。これは、単に1つの種類のANNを表す。
【0063】
図6を参照すると、ANNアーキテクチャ600が示されている。本アーキテクチャは純粋に例示的なものであり、代わりに他のアーキテクチャまたはタイプのニューラルネットワークを使用することができることを理解されたい。本明細書で説明されるANN実施形態は、高レベルの一般性でニューラルネットワーク計算の一般原理を示すことを意図して含まれており、いかなる形でも限定するものと解釈されるべきではない。
【0064】
さらに、以下に記載されるニューロンの層およびそれらを接続する重みは、一般的な様式で記載され、任意の適切な程度またはタイプの相互接続性を有する任意のタイプのニューラルネットワーク層によって置き換えられ得る。例えば、層(layers)は、畳み込み層、プーリング層、全結合層、softmax層、または任意の他の適切なタイプのニューラルネットワーク層を含むことができる。さらに、必要に応じて層を追加または除去することができ、相互接続のより複雑な構成に関して重みを省略することができる。
【0065】
フィードフォワード動作の間、入力ニューロン602のセットは、各々、重み604のそれぞれの行に並列に入力信号を提供する。重み604はそれぞれ、重み出力が重み604からそれぞれの隠れニューロン606に渡され、隠れニューロン606への重み付き入力を表すように、それぞれの設定可能な値を有する。ソフトウェアの実施形態では、重み604は、単に、関連する信号に対して乗算される係数値として表すことができる。各重みからの信号は、列ごとに加算され、隠れニューロン606に流れる。
【0066】
隠れニューロン606は、重み604のアレイからの信号を使用して、何らかの計算を実行する。次に、隠れニューロン606は、それ自体の信号を重み604の別のアレイに出力する。このアレイは、同じ方法で、重み604の列がそれぞれの隠れニューロン606から信号を受け取り、行方向に加算し、出力ニューロン608に供給される重み付けされた信号出力を生成する。
【0067】
アレイと隠れたニューロン606の追加の層を介在させることにより、これらの段の任意の数が実装され得ることを理解すべきである。また、いくつかのニューロンは、アレイに一定の出力を提供する定常ニューロン609であってもよいことに注意すべきである。定常ニューロン609は、入力ニューロン602および/または隠れニューロン606の間に存在することができ、フィードフォワード動作中にのみ使用される。
【0068】
バックプロパゲーションの間、出力ニューロン608は、重み604のアレイを横切って戻る信号を提供する。出力層は、生成されたネットワーク応答を訓練データと比較し、誤差を計算する。誤差信号は、誤差値に比例させることができる。この実施例では、重み604の行がそれぞれの出力ニューロン608から並列に信号を受け取り、列ごとに加算して隠れニューロン606に入力を提供する出力を生成する。隠れニューロン606は、重み付けされたフィードバック信号をそのフィードフォワード計算の導関数と結合し、フィードバック信号を重み604のそれぞれの列に出力する前に、誤差値を記憶する。このバックプロパゲーションは、すべての隠れニューロン606および入力ニューロン602が誤差値を記憶するまで、ネットワーク600全体を通って進行する。
【0069】
重み更新中、記憶された誤差値は、重み604の設定可能な値を更新するために使用される。このようにして、重み604は、ニューラルネットワーク600をその処理における誤差に適応させるように訓練され得る。フィードフォワード、バックプロパゲーション、および重み更新の3つの動作モードは、互いに重複しないことに留意されたい。
【0070】
上記はあらゆる点で例示的かつ典型的であるが、限定的ではないと理解されるべきであり、本明細書に開示される本発明の範囲は詳細な説明からではなく、むしろ特許法によって許容される全範囲に従って解釈されるような特許請求の範囲から決定されるべきである。本明細書に示され、説明された実施形態は、本発明の例示にすぎず、当業者は本発明の範囲および精神から逸脱することなく、様々な修正を実施することができることを理解されたい。当業者は、本発明の範囲および精神から逸脱することなく、様々な他の特徴の組み合わせを実施することができる。このように、本発明の態様を、特許法によって要求される詳細および特殊性と共に説明してきたが、特許証によって保護される、請求され、望まれるものは、添付の特許請求の範囲に記載されている。