IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特表2024-537601トークンのシーケンスを生成することによる画像内の物体の検出
<>
  • 特表-トークンのシーケンスを生成することによる画像内の物体の検出 図1
  • 特表-トークンのシーケンスを生成することによる画像内の物体の検出 図2
  • 特表-トークンのシーケンスを生成することによる画像内の物体の検出 図3
  • 特表-トークンのシーケンスを生成することによる画像内の物体の検出 図4
  • 特表-トークンのシーケンスを生成することによる画像内の物体の検出 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-16
(54)【発明の名称】トークンのシーケンスを生成することによる画像内の物体の検出
(51)【国際特許分類】
   G06T 7/00 20170101AFI20241008BHJP
   G06V 10/82 20220101ALI20241008BHJP
【FI】
G06T7/00 350C
G06V10/82
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024510489
(86)(22)【出願日】2022-09-19
(85)【翻訳文提出日】2024-04-22
(86)【国際出願番号】 US2022044031
(87)【国際公開番号】W WO2023044131
(87)【国際公開日】2023-03-23
(31)【優先権主張番号】63/245,783
(32)【優先日】2021-09-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.TENSORFLOW
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ティン・チェン
(72)【発明者】
【氏名】サウラブ・サクセーナ
(72)【発明者】
【氏名】イ・リ
(72)【発明者】
【氏名】ジェフリー・イー・ヒントン
(72)【発明者】
【氏名】デイヴィッド・ジェームズ・フリート
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096DA02
5L096FA16
5L096FA62
5L096FA69
5L096HA11
5L096JA22
5L096KA04
(57)【要約】
ニューラルネットワークを使用した物体検出のための、コンピュータストレージ媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置。一態様において、方法のうちの1つは、入力画像を取得するステップと、複数の時間ステップの各々におけるそれぞれのトークンを含む出力シーケンスを生成するために物体検出ニューラルネットワークを使用して入力画像を処理するステップであって、各トークンが、(i)離散化された数のセットからのそれぞれの離散的な数をそれぞれが表すトークンの第1のセット、および(ii)物体カテゴリのセットからのそれぞれの物体カテゴリをそれぞれが表すトークンの第2のセットを含むトークンの語彙から選択される、ステップと、出力シーケンス内のトークンから、入力画像に関する物体検出出力を生成するステップとを含む。
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実行される方法であって、
入力画像を取得するステップと、
複数の時間ステップの各々におけるそれぞれのトークンを含む出力シーケンスを生成するために物体検出ニューラルネットワークを使用して前記入力画像を処理するステップであって、各トークンが、(i)離散化された数のセットからのそれぞれの離散的な数をそれぞれが表すトークンの第1のセット、および(ii)物体カテゴリのセットからのそれぞれの物体カテゴリをそれぞれが表すトークンの第2のセットを含むトークンの語彙から選択される、ステップと、
前記入力画像内の1つまたは複数のバウンディングボックス、および各バウンディングボックスに関して、前記バウンディングボックス内に描かれた物体が属する物体カテゴリの前記セットからのそれぞれの物体カテゴリを特定するデータを、前記出力シーケンス内の前記トークンから生成するステップとを含む、方法。
【請求項2】
前記出力シーケンスが、前記1つまたは複数のバウンディングボックスの各々に対応するそれぞれのサブシーケンスを含み、前記1つまたは複数のバウンディングボックスを特定する前記データを生成するステップが、各バウンディングボックスに関して、
トークンの前記第1のセットに属する、前記対応するサブシーケンス内のトークンから、前記入力画像における前記バウンディングボックスの座標を特定することと、
前記バウンディングボックス内に描かれた前記物体が属する前記それぞれの物体カテゴリとして、トークンの前記第2のセットに属する、前記対応するサブシーケンス内のトークンによって表される前記物体カテゴリを特定することとを含む請求項1に記載の方法。
【請求項3】
前記それぞれのサブシーケンスが、トークンの前記第1のセットからの4つのトークンを含み、前記4つのトークンによって表される4つの離散的な数が、前記バウンディングボックスの2つの角の前記入力画像における座標を指定する請求項2に記載の方法。
【請求項4】
前記それぞれのサブシーケンスが、トークンの前記第1のセットからの4つのトークンを含み、前記4つのトークンによって表される4つの離散的な数が、前記バウンディングボックスの中心の前記入力画像における座標と、前記バウンディングボックスの高さおよび幅とを指定する請求項2に記載の方法。
【請求項5】
前記物体検出ニューラルネットワークを使用して前記入力画像を処理するステップが、
前記入力画像の符号化された表現を生成するためにエンコーダニューラルネットワークを使用して前記入力画像を処理することと、
前記出力シーケンスを生成するためにデコーダニューラルネットワークを使用して前記入力画像の前記符号化された表現を処理することとを含む請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記物体検出ニューラルネットワークが、(i)前記入力画像、および(ii)前記出力シーケンス内の任意の以前の時間ステップにおける前記トークンを条件とする、各時間ステップの前記語彙の前記トークン上のそれぞれのスコア分布を生成するように構成され、出力シーケンスを生成するために前記物体検出ニューラルネットワークを使用して前記入力画像を処理するステップが、各時間ステップに関して、
前記出力シーケンス内の前記時間ステップにおける前記それぞれのトークンを、前記時間ステップに関して前記物体検出ニューラルネットワークによって生成された前記それぞれのスコア分布を使用して選択することを含む請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記それぞれのトークンを選択することが、前記それぞれのスコア分布において最も高いスコアを持つトークンを選択することを含む請求項6に記載の方法。
【請求項8】
前記それぞれのトークンを選択することが、前記スコア分布に従ってトークンをサンプリングすることを含む請求項6に記載の方法。
【請求項9】
前記それぞれのトークンを選択することが、核サンプリングを使用して、前記スコア分布に従ってトークンをサンプリングすることを含む請求項8に記載の方法。
【請求項10】
前記語彙が、物体カテゴリの前記セットに含まれないノイズカテゴリを表すノイズトークンを含み、出力シーケンスを生成するために前記物体検出ニューラルネットワークを使用して前記入力画像を処理するステップが、前記時間ステップのうちの特定の時間ステップに関して、
前記特定の時間ステップに関して最も高いスコアを持つトークンが前記ノイズトークンであると判定することと、
それに応答して、トークンの前記第2のセットのトークンのみから、最も高いスコアを持つトークンを選択することとを含む請求項6から9のいずれか一項に記載の方法。
【請求項11】
デコーダニューラルネットワークが、各時間ステップに関して、
前記時間ステップのそれぞれのスコア分布を生成するために前記入力画像の符号化された表現を条件としながら、前記出力シーケンス内の任意の以前の時間ステップにおける前記トークンを処理するように構成される請求項5に従属するときの請求項6から10のいずれか一項に記載の方法。
【請求項12】
前記1つまたは複数のバウンディングボックスの各々に関して、前記それぞれの物体カテゴリが前記物体の正しいカテゴリであるという信頼度を表すために、対応する時間ステップにおける前記スコア分布の前記バウンディングボックスの前記それぞれの物体カテゴリを表す前記トークンに割り振られたそれぞれのスコアを関連付けるステップをさらに含む請求項6から11のいずれか一項に記載の方法。
【請求項13】
前記入力画像内の前記1つまたは複数のバウンディングボックスと、各バウンディングボックスに関して、前記バウンディングボックス内に描かれた前記物体が属する物体カテゴリの前記セットからの前記それぞれの物体カテゴリとを特定する前記データを出力するステップをさらに含む請求項1から12のいずれか一項に記載の方法。
【請求項14】
請求項1から13のいずれか一項に記載の物体検出ニューラルネットワークを訓練する方法であって、
訓練画像のバッチ、ならびに各訓練画像に関して、前記画像内の1つまたは複数のグラウンドトゥルースバウンディングボックスおよび各バウンディングボックスのそれぞれのグラウンドトゥルース物体カテゴリを特定する目標出力を取得するステップと、
各訓練画像に関して、各グラウンドトゥルースバウンディングボックスに関して、(i)前記画像内の前記バウンディングボックスの位置を定義する第1のトークンのセット、および(ii)前記バウンディングボックスの前記グラウンドトゥルース物体カテゴリを表す第2のトークンを含むそれぞれのサブシーケンスを含む目標出力シーケンスを生成するステップと、
各訓練画像に関して、および前記訓練画像に関する前記目標出力シーケンス内のトークンの少なくともサブセットの各トークンに関して、前記目標出力シーケンス内の任意の先行トークンおよび前記訓練画像を条件とする前記トークンの対数尤度を最大化するように前記物体検出ニューラルネットワークを訓練するステップとを含む、方法。
【請求項15】
訓練画像のバッチ、ならびに各訓練画像に関して、前記画像内の1つまたは複数のグラウンドトゥルースバウンディングボックスおよび各バウンディングボックスのそれぞれのグラウンドトゥルース物体カテゴリを特定する目標出力を取得するステップが、
対応する初期訓練画像に1つまたは複数の画像増強ポリシーを適用することによって、前記バッチの前記訓練画像のうちの1つまたは複数を生成することを含む請求項14に記載の方法。
【請求項16】
訓練画像のバッチ、ならびに各訓練画像に関して、前記画像内の1つまたは複数のグラウンドトゥルースバウンディングボックスおよび各バウンディングボックスのそれぞれのグラウンドトゥルース物体カテゴリを特定する目標出力を取得するステップが、
特定の訓練画像内の特定のバウンディングボックスに関して、前記特定の訓練画像内の初期グラウンドトゥルースバウンディングボックスにノイズを適用することによって前記バウンディングボックスを生成することを含む請求項14または請求項15に記載の方法。
【請求項17】
各訓練画像に関して、目標出力シーケンスを生成するステップが、
前記訓練画像内の1つまたは複数のランダムなバウンディングボックスを生成することと、
それぞれのランダムなバウンディングボックスに関して、(i)前記訓練画像内の前記ランダムなバウンディングボックスの位置を定義する第1のトークンのセット、および(ii)物体カテゴリの前記セットにないノイズ物体カテゴリを表す第2のトークンを前記目標出力シーケンスに含めることとを含む請求項14から16のいずれか一項に記載の方法。
【請求項18】
前記物体検出ニューラルネットワークが、前記ランダムなバウンディングボックスに関する第1のトークンの前記セットのトークンの前記対数尤度を最大化するように訓練されない請求項17に記載の方法。
【請求項19】
各訓練画像に関して、目標出力シーケンスを生成するステップが、
前記目標出力シーケンス内で、前記それぞれのサブシーケンスをランダムな順序で順序付けることを含む請求項14から18のいずれか一項に記載の方法。
【請求項20】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに請求項1から19のいずれか一項に記載の方法を実行させる命令を記憶する1つまたは複数のストレージデバイスとを含むシステム。
【請求項21】
1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から19のいずれか一項に記載の方法のそれぞれの動作を実行させる命令を記憶する1つまたは複数のコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月17日に出願した米国仮出願第63/245,783号の利益を主張するものである。先の出願の開示は、本出願の開示の一部と考えられ、本出願の開示に参照により組み込まれる。
【0002】
本明細書は、ニューラルネットワークを使用して入力を処理することに関する。
【背景技術】
【0003】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち、別の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受け取られた入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Kaiming He、Xiangyu Zhang、Shaoqing Ren、およびJian Sun、Deep residual learning for image recognition、Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition、770~778ページ、2016年
【非特許文献2】Alexey Dosovitskiy、Lucas Beyer、Alexander Kolesnikov、Dirk Weissenborn、Xiaohua Zhai、Thomas Unterthiner、Mostafa Dehghani、Matthias Minderer、Georg Heigold、Sylvain Gellyら、An image is worth 16x16 words: Transformers for image recognition at scale、International Conference on Learning Representations、2020年
【非特許文献3】Nicolas Carion、Francisco Massa、Gabriel Synnaeve、Nicolas Usunier、Alexander Kirillov、およびSergey Zagoruyko、End-to-end object detection with transformers、European Conference on Computer Vision、213~229ページ、Springer、2020年
【非特許文献4】Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li、およびPeter J Liu、Exploring the limits of transfer learning with a unified text-to-text transformer、arXivプレプリントarXiv:1910.10683、2019年
【非特許文献5】Alec Radford、Karthik Narasimhan、Tim Salimans、およびIlya Sutskever、Improving language understanding by generative pre-training、2018年
【非特許文献6】Golnaz Ghiasi、Yin Cui、Aravind Srinivas、Rui Qian、Tsung-Yi Lin、Ekin D Cubuk、Quoc V Le、およびBarret Zoph、Simple copy-paste is a strong data augmentation method for instance segmentation、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition、2918~2928ページ、2021年
【非特許文献7】Andrew G Howard、Some improvements on deep convolutional neural network based image classification、arXivプレプリントarXiv:1312.5402、2013年
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、ニューラルネットワークを使用して画像を処理してトークンの出力シーケンスを生成することによって入力画像内の物体を検出する、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムを説明する。
【0006】
本明細書に記載の対象は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態で実装され得る。
【0007】
既存の物体検出方法は、高度にカスタマイズされる必要があり、複雑なアーキテクチャを有し、それらの方法をより大規模なシステムに組み込むことを難しくする。一方、説明される技術は、物体の説明に対応する離散的なトークンのシーケンスを生成する物体検出ニューラルネットワークを使用する。物体検出ニューラルネットワークは、単純なアーキテクチャを有し、したがって、知覚システムに容易に組み込まれ得る、また異なる領域もしくは用途に容易に拡張され得る。さらに、アーキテクチャが単純であるにもかかわらず、説明される技術は物体の説明(バウンディングボックスおよびクラスラベル)に対応する離散的なトークンのシーケンスを生成するので、物体検出ニューラルネットワークは、特定の物体検出タスクのために高度に設計された、はるかに複雑なシステムの性能に匹敵するかまたはそれを上回る性能を達成することができる。
【0008】
本明細書の対象の1つまたは複数の実施形態の詳細が、添付の図面および下の説明に記載されている。
【0009】
対象のその他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0010】
図1】例示的な物体検出システムの図である。
図2】入力画像内の物体を検出するための例示的なプロセスの流れ図である。
図3】物体検出ニューラルネットワークを使用して生成された物体検出出力の例を示す図である。
図4】物体検出ニューラルネットワークを訓練するための例示的なプロセスの流れ図である。
図5】訓練例での物体検出ニューラルネットワークの訓練を示す図である。
【発明を実施するための形態】
【0011】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【0012】
図1は、例示的な物体検出システム100の図である。物体検出システム100は、以下で説明されるシステム、コンポーネント、および技術が実装され得る、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
【0013】
物体検出システム100は、入力画像102を受け取り、物体検出ニューラルネットワーク110を使用して画像102を処理することによって入力画像102内の物体を検出して、入力画像102に関する物体検出出力150を生成するシステムである。
【0014】
物体検出出力150は、それぞれが検出された物体に対応する、すなわち、検出された物体の描写を含むと予測される、入力画像102内の1つまたは複数のバウンディングボックスを特定し、バウンディングボックスの各々に関して、バウンディングボックス内の検出された物体が属する物体カテゴリのセットからの物体カテゴリを特定する。
【0015】
より詳細には、システム100は、入力画像102を取得する。
【0016】
システム100は、複数のトークンを含む出力シーケンス112を生成するために、物体検出ニューラルネットワーク110を使用して入力画像102を処理する、すなわち、入力画像102のピクセルの強度(intensity)値を処理する。
【0017】
シーケンス内の各トークンは、(i)離散化された数のセットからのそれぞれの離散的な数をそれぞれが表すトークンの第1のセット、および(ii)物体カテゴリのセットからのそれぞれの物体カテゴリをそれぞれが表すトークンの第2のセットを含むトークンの語彙(vocabulary)から選択される。語彙のトークンは、任意の適切な方法で、たとえば、互いに区別可能な整数またはその他の英数字記号として表現され得る。
【0018】
より詳細には、システムは、入力画像102内の任意の所与の点の座標を表すために使用される数を複数のビン(bin)に離散化し、ビンの各々は、トークンの第1のセットのトークンのそれぞれのトークンに対応する。特定の例として、システムは、ゼロと、ピクセルを単位とする画像の高さまたは幅との間の値の範囲を、決まった数の等間隔のビンに離散化することができ、その結果、各ビンは、画像内の(ピクセルを単位とする)点の座標を表すために使用され得るピクセルインデックスの異なるサブセットに対応する。したがって、入力画像が600ピクセル×600ピクセルであり、600個のビンがある場合、各ビンは、1から600までの異なるピクセルインデックスに対応する。入力画像が600×600であり、300個のビンがある場合、各ビンは、1から600までの2つのピクセルインデックスの異なるセットに対応する。
【0019】
したがって、トークンの第1のセットの各トークンは、画像内のピクセルの可能な座標値の離散化における異なるビンを表し、異なる量子化された座標値、たとえば、トークンによって表されるビンの代表値にマッピングされ得る。たとえば、代表値は、ビンの端点の平均、またはビンの2つの端点のうちの1つであることが可能である。座標のこの量子化方式は、システムが高い精度を維持しながら、可能性なピクセル座標を表現するために比較的少ない語彙を使用することを可能にする。
【0020】
トークンの第2のセットに関して、システムは、セットの各物体カテゴリに異なる一意のトークンを割り振ることができる。
【0021】
したがって、特定の例として、量子化方式の600個のビンと、100個の物体カテゴリとがあり、トークンが整数として表されるとき、語彙は、600個の可能な量子化された座標を表すトークン1~600と、100個の物体カテゴリを表すトークン601~700とを含み得る。
【0022】
任意で、より詳細に説明されるように、語彙は、上述のトークンに加えて、1つまたは複数の追加トークンも含み得る。
【0023】
概して、物体検出ニューラルネットワーク110は、複数の時間ステップにわたって出力シーケンスを生成するように構成される。
【0024】
各時間ステップにおいて、ニューラルネットワーク110は、(i)入力画像、および(ii)出力シーケンス内の任意の以前の時間ステップにおけるトークンを条件とする、各時間ステップの語彙のトークン上のスコア分布を生成するように構成される。
【0025】
したがって、出力シーケンス112の生成中の各時間ステップにおいて、システム100は、出力シーケンス112内の当該時間ステップにおけるそれぞれのトークンを、当該時間ステップに関して物体検出ニューラルネットワーク110によって生成されたそれぞれのスコア分布を使用して選択する。
【0026】
一例として、システム100は、最も高いスコアのトークンを貪欲に(greedily)選択し得る。
【0027】
別の例として、システム100は、スコア分布に従ってトークンをサンプリングすることによってそれぞれのトークンを選択し得る。特定の例として、システムは、核サンプリング(nucleus sampling)を使用して、スコア分布に従ってトークンをサンプリングし得る。
【0028】
特定の例として、物体検出ニューラルネットワーク110は、エンコーダニューラルネットワーク120およびデコーダニューラルネットワーク130を含み得る。
【0029】
エンコーダニューラルネットワーク120は、入力画像102の符号化された表現122を生成するために入力画像102を処理するように構成され得る。符号化された表現122は、入力画像102を集合的に表す複数の符号化されたベクトルを含むシーケンスである。
【0030】
エンコーダニューラルネットワーク120は、画像102のピクセルの強度値を受け取り、それらの強度値を隠れ表現(hidden representation)に符号化する任意の適切な画像エンコーダニューラルネットワークであることが可能である。そのようなエンコーダの例は、畳み込みニューラルネットワーク、トランスフォーマニューラルネットワーク、または畳み込み層と自己アテンション(self-attention)層との両方を含むニューラルネットワークを含む。エンコーダとして使用され得る畳み込みニューラルネットワークの例は、Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition、770~778ページ、2016年のKaiming He、Xiangyu Zhang、Shaoqing Ren、およびJian Sun、Deep residual learning for image recognitionに記載されている。エンコーダとして使用され得るトランスフォーマニューラルネットワークの例は、International Conference on Learning Representations、2020年のAlexey Dosovitskiy、Lucas Beyer、Alexander Kolesnikov、Dirk Weissenborn、Xiaohua Zhai、Thomas Unterthiner、Mostafa Dehghani、Matthias Minderer、Georg Heigold、Sylvain Gellyら、An image is worth 16x16 words: Transformers for image recognition at scaleに記載されている。エンコーダとして使用され得る、畳み込み層と自己アテンション層との両方を含むニューラルネットワークの例は、European Conference on Computer Vision、213~229ページ、Springer、2020年のNicolas Carion、Francisco Massa、Gabriel Synnaeve、Nicolas Usunier、Alexander Kirillov、およびSergey Zagoruyko、End-to-end object detection with transformersに記載されている。
【0031】
エンコーダ120の最後の層が、特徴マップを生成する畳み込み層であるとき、システム100は、特徴マップをベクトルのシーケンスに平坦化することによって、符号化された表現122を生成することができる。エンコーダ120の最後の層がアテンション層であるとき、システム100は、アテンション層の出力を符号化された表現122として直接使用することができる。
【0032】
デコーダニューラルネットワーク130は、出力シーケンス112を生成するために入力画像102の符号化された表現122を処理するように構成される。
【0033】
特に、デコーダ130は、各時間ステップにおいて、時間ステップのそれぞれのスコア分布を生成するために入力画像102の符号化された表現122を条件としながら、出力シーケンス112内の任意の以前の時間ステップにおけるトークンを処理する自己回帰デコーダニューラルネットワークであることが可能である。スコア分布は、語彙の各トークンのそれぞれのスコア、たとえば、確率またはロジットを含む。
【0034】
特定の例として、デコーダ130は、既に生成されたトークンに因果的自己アテンション(causal self-attention)を適用し、符号化された表現122に相互アテンション(cross-attention)を適用するトランスフォーマデコーダであることが可能である。すなわち、デコーダ130は、既に生成されたトークンの表現に因果的自己アテンションを適用する自己アテンション層と、符号化された表現122に相互アテンションを行う相互アテンション層との両方を含み得る。
【0035】
デコーダ130として使用され得るそのようなトランスフォーマデコーダの例は、Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li、およびPeter J Liu、Exploring the limits of transfer learning with a unified text-to-text transformer、arXivプレプリントarXiv:1910.10683、2019年、ならびにAlec Radford、Karthik Narasimhan、Tim Salimans、およびIlya Sutskever、Improving language understanding by generative pre-training、2018年に記載されている。
【0036】
そのとき、システム100は、出力シーケンス112内のトークンから、物体検出出力150を生成する。すなわち、システム100は、出力シーケンス112内のトークンを、入力画像内の1つまたは複数のバウンディングボックスと、各バウンディングボックスに関して、バウンディングボックス内に描かれた物体が属する物体カテゴリのセットからのそれぞれの物体カテゴリとを特定するデータにマッピングする。
【0037】
各バウンディングボックスに関して、バウンディングボックスを特定するデータは、画像内のバウンディングボックスの位置を指定する。一例として、バウンディングボックスを特定するデータは、バウンディングボックスの角のうちの2つ以上の座標を指定し得る。別の例として、バウンディングボックスを特定するデータは、バウンディングボックスの中心の座標と、バウンディングボックスの高さおよび幅とを指定し得る。
【0038】
出力シーケンス112から物体検出出力150を生成することは、図2および図3を参照して下でより詳細に説明される。
【0039】
したがって、物体検出ニューラルネットワーク110は、システム100による物体検出出力に直接マッピングされ得る離散的なトークンの出力シーケンス112を生成する。このようにして物体検出出力を生成することによって、システム100は、高度にカスタマイズされるか、または複雑なアーキテクチャを持つニューラルネットワークを使用する必要がなく、より大規模なシステムに容易に組み込まれることが可能である。
【0040】
特定の例として、システム100は、画像と、任意で、エージェント、たとえば、ロボットまたは自律走行車のセンサーによって収集されたその他のセンサーデータとを処理する、エージェント内に組み込まれた知覚システムの一部であることが可能であり、物体検出出力は、エージェントが環境内をナビゲートするときにエージェントを制御するために、知覚システムまたはエージェントに搭載されたその他のソフトウェアによって使用され得る。
【0041】
別の特定の例として、システム100は、センサーデータを処理する異なる種類のデバイス、たとえば、カメラ監視システム、モバイル電話などの中に組み込まれるかまたはそれらのデバイスと通信する知覚システムの一部であることが可能である。システム100によって生成された物体検出出力は、画像がユーザに対して表示される前の前処理段階の一部として使用されることが可能であり、またはその他のアクションを自動的にトリガするために使用されることが可能である。
【0042】
さらに別の特定の例として、クライアントデバイスが、アプリケーションプログラミングインターフェース(API)、たとえば、ウェブベースのAPIを通じてシステム100とインタラクションし得る。特に、クライアントデバイスが、分析される画像を含むかまたは特定するAPI呼び出しを送ることができ、システム100が、それに応答して、物体検出出力を特定するデータを提供することができる。たとえば、システム100は、物体検出出力を指定されたフォーマットで、たとえば、JavaScriptオブジェクト表記法(JSON: JavaScript Object Notation)ファイルとして、または別の種類のデータ交換フォーマットのファイルとしてフォーマットし、API呼び出しに応答してファイルを提供することができる。
【0043】
物体を検出するためにニューラルネットワーク110を使用する前に、システム100または別の訓練システムが、複数の訓練例を含む訓練データでニューラルネットワーク110を訓練する。
【0044】
各訓練例は、入力訓練画像と、画像内のグラウンドトゥルース(ground truth)バウンディングボックスおよび各バウンディングボックスのそれぞれのグラウンドトゥルース物体カテゴリを特定するグラウンドトゥルース物体検出出力とを含む。
【0045】
ニューラルネットワーク110を訓練することは、図4および図5を参照して下でより詳細に説明される。
【0046】
図2は、入力画像に関する物体検出出力を生成するための例示的なプロセス200の流れ図である。便宜上、プロセス200は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた物体検出システム、たとえば、図1に描かれた物体検出システム100が、プロセス200を実行し得る。
【0047】
システムは、入力画像を取得する(ステップ202)。
【0048】
システムは、出力シーケンスを生成するために物体検出ニューラルネットワークを使用して入力画像を処理する(ステップ204)。
【0049】
上述のように、出力シーケンスは、複数の時間ステップの各々におけるそれぞれのトークンを含む。各トークンは、(i)離散化された数のセットからのそれぞれの離散的な数をそれぞれが表すトークンの第1のセット、および(ii)物体カテゴリのセットからのそれぞれの物体カテゴリをそれぞれが表すトークンの第2のセットを含むトークンの語彙から選択される。
【0050】
語彙は、任意で、追加トークンも含み得る。
【0051】
たとえば、語彙は、シーケンス終了(EOS: end-of-sequence)トークンを含み得る。
【0052】
別の例として、語彙は、「ノイズ(noise)」トークンを含むことが可能であり、「ノイズ」トークンは、物体カテゴリのセットに含まれない(したがって、入力画像に描かれる可能性があるいかなる実際の物体も表さない)ノイズ物体カテゴリを表す。「ノイズ」トークンは、下でより詳細に説明されるように、訓練の効果を高めるために、ニューラルネットワークの訓練の前に語彙に追加され得る。
【0053】
概して、物体検出ニューラルネットワークは、複数の時間ステップにわたって出力シーケンスを生成するように構成される。
【0054】
各時間ステップにおいて、ニューラルネットワークは、(i)入力画像、および(ii)出力シーケンス内の任意の以前の時間ステップにおけるトークンを条件とする、各時間ステップの語彙のトークン上のスコア分布を生成するように構成される。
【0055】
したがって、出力シーケンスの生成中の各時間ステップにおいて、システムは、出力シーケンス内の当該時間ステップにおけるそれぞれのトークンを、当該時間ステップに関して物体検出ニューラルネットワークによって生成されたそれぞれのスコア分布を使用して選択する。
【0056】
一例として、システムは、最も高いスコアのトークンを貪欲に選択し得る。
【0057】
別の例として、システムは、スコア分布に従ってトークンをサンプリングすることによってそれぞれのトークンを選択し得る。特定の例として、システムは、核サンプリングを使用して、スコア分布に従ってトークンをサンプリングし得る。
【0058】
さらに別の例として、語彙がノイズトークンを含むとき、システムは、任意の所与の時間ステップにおいてノイズトークンが選択されたかどうかを判定し、選択された場合は、ノイズトークンをトークンの第2のセットからの最も高いスコアのトークンで置き換え得る。すなわち、ノイズトークンが選択されたという判定に応答して、システムは、トークンの第2のセットのトークンのみから、ノイズトークンを置き換えるための最も高いスコアを持つトークンを選択する。
【0059】
一部の実装において、システムは、シーケンス終了(EOS)トークンが選択されるまで、出力シーケンスにトークンを追加し続ける。一部のその他の実装において、システムは、出力シーケンスが決まった長さを持つまで、すなわち、最大数のトークンを持つまで、出力シーケンスにトークンを追加し続ける。さらにその他の実装において、システムは、EOSトークンが選択されるまで、または出力シーケンスが決まった長さを持つまで、どちらが先に起こるのかにかかわらず、出力シーケンスにトークンを追加し続ける。
【0060】
システムは、出力シーケンス内のトークンから、物体検出出力、すなわち、入力画像内の1つまたは複数のバウンディングボックスと、各バウンディングボックスに関して、バウンディングボックス内に描かれた物体が属する物体カテゴリのセットからのそれぞれの物体カテゴリとを特定するデータを生成する(ステップ206)。
【0061】
特に、ニューラルネットワークが訓練される方法のおかげで、出力シーケンスは、入力画像内の1つまたは複数のバウンディングボックスの各々に関するそれぞれのサブシーケンスを含む。
【0062】
所与のバウンディングボックスに関するサブシーケンスは、トークンの第1のセットからのトークンと、トークンの第2のセットからのトークンとを含む。たとえば、サブシーケンスは、合計5つのトークン、すなわち、第1のセットからの4つのトークンと、第2のセットからの1つのトークンとを含み得る。特定の例として、サブシーケンスは、第1のセットからの4つのトークンと、それに続く第2のセットからの1つのトークンとを含み得る。
【0063】
場合によっては、第1のセットからの4つのトークンによって表される4つの離散的な数は、バウンディングボックスの2つの角の入力画像における座標、たとえば、左上の角および右下の角、または右下の角および左上の角の(x, y)座標を指定する。
【0064】
一部のその他の場合、第1のセットからの4つのトークンによって表される4つの離散的な数は、バウンディングボックスの中心の入力画像における座標と、バウンディングボックスの高さおよび幅とを指定する。
【0065】
したがって、物体検出出力を生成するために、システムは、出力シーケンス内の各サブシーケンスに関して、トークンの第1のセットに属するサブシーケンス内のトークンから、入力画像内のバウンディングボックスの座標を特定し、それから、バウンディングボックス内に描かれた物体が属するそれぞれの物体カテゴリとして、トークンの第2のセットに属する対応するサブシーケンス内のトークンによって表される物体カテゴリを特定することができる。
【0066】
言い換えると、サブシーケンス内のそれぞれの第1のトークンに関して、システムは、第1のトークンを、トークンによって表される量子化された座標値にマッピングして、バウンディングボックスを定義する座標を生成することができ、それぞれの第2のトークンに関して、システムは、トークンを、第2のトークンによって表される物体カテゴリを特定するラベルまたはその他のデータにマッピングすることができる。
【0067】
一部の実装において、システムは、さらに、それぞれの物体カテゴリが物体の正しいカテゴリであるという信頼度を表すために、対応する時間ステップにおけるスコア分布のバウンディングボックスのそれぞれの物体カテゴリを表すトークンに割り振られたそれぞれのスコアをバウンディングボックスに関連付ける。
【0068】
一部の実装において、システムは、たとえば、対応する物体カテゴリの信頼度スコアが閾値未満である場合、物体検出出力に1つまたは複数のバウンディングボックスを含めることを控えることができる。
【0069】
それから、システムは、物体検出出力、すなわち、バウンディングボックスと、物体カテゴリと、任意で、関連する信頼度スコアとを特定するデータを出力することができる。
【0070】
特定の例として、システムが、画像と、任意で、エージェント、たとえば、ロボットまたは自律走行車のセンサーによって収集されたその他のセンサーデータとを処理する、エージェント内に組み込まれた知覚システムの一部であるとき、システムは、エージェントが環境内をナビゲートするときにエージェントを制御するために、知覚システムまたはエージェントに搭載されたその他のソフトウェアに、物体検出出力を特定するデータを提供することができる。
【0071】
別の特定の例として、システムが、センサーデータを処理する異なる種類のデバイス、たとえば、カメラ監視システム、モバイル電話などの中に組み込まれるかまたはそれらのデバイスと通信する知覚システムの一部であるとき、システムは、画像がユーザに対して表示される前に画像を前処理する際に使用するため、またはアクション、たとえば、警告を自動的にトリガする際に使用するために、デバイスの別のソフトウェアコンポーネントにデータを出力することができる。
【0072】
さらに別の特定の例として、クライアントデバイスがアプリケーションプログラミングインターフェース(API)、たとえば、ウェブベースのAPIを通じてシステムとインタラクションすることができるとき、システムは、API呼び出しに応答して、物体検出出力を識別するデータを提供することができる。たとえば、システムは、物体検出出力を指定されたフォーマットで、たとえば、JavaScriptオブジェクト表記法(JSON)ファイルとして、または別の種類のデータ交換フォーマットのファイルとしてフォーマットし、API呼び出しに応答してファイルを提供することができる。
【0073】
図3は、物体検出ニューラルネットワークによって生成された出力シーケンスから抽出された例示的な物体検出出力を示す。
【0074】
特に、図3は、3つの例示的な入力画像310、320、および330に関する例示的な物体検出出力の一部分を示す。各部分は、画像内のバウンディングボックスのうちの1つを指定する情報を含む。
【0075】
図3から分かるように、システムは、それぞれの出力シーケンスを生成するためにニューラルネットワーク110を使用して入力画像310、320、および330の各々を処理し、それから、入力画像に関する出力シーケンスから対応する物体検出出力部分312、314、および316を抽出する。
【0076】
たとえば、物体検出出力部分312は、バウンディングボックスが(ピクセル座標で)y_min=9およびx_min=7に右下の角を有し、y_max=67およびx_max=98に右上の角を有し、「列車」カテゴリに属する物体の画像であることを明示する。たとえば、トークンが整数として表され、画像が100×100であり、それぞれの第1のトークンが画像の1ピクセルに対応する場合、システムは、サブシーケンス[9, 7, 67, 98, 115]から物体検出出力部分を抽出することができ、「115」は、「列車」カテゴリを表すトークンである。すなわち、部分312は、各要素の識別情報を含むものとして示されているが、基礎となる出力シーケンスは、語彙からの離散的なトークンのシーケンスであるに過ぎない。
【0077】
図4は、物体検出ニューラルネットワークを訓練するための例示的なプロセス400の流れ図である。便宜上、プロセス400は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた訓練システム、たとえば、図1に描かれた物体検出システム100、または1つもしくは複数の場所の1つもしくは複数のコンピュータの異なるシステムが、プロセス400を実行し得る。
【0078】
システムは、ニューラルネットワークを訓練するために、すなわち、ニューラルネットワークのパラメータの値を繰り返し調整するために、訓練例の異なるバッチ(batch)でプロセス400の反復を繰り返し実行することができる。すなわち、プロセス400の各反復において、システムは、たとえば、訓練データのより大きなセットからバッチをサンプリングすることによって、1つまたは複数の訓練例のバッチを取得し、それから、反復の時点でのネットワークパラメータの現在の値を更新するためにプロセス400の反復を実行する。
【0079】
たとえば、システムは、終了基準が満たされるまで、たとえば、閾値の数の訓練の反復が実行されるまで、指定された量の時間が経過するまで、またはパラメータが収束すると判定されるまで、プロセス400の反復を実行し続け得る。
【0080】
システムは、訓練例のバッチを取得する(ステップ402)。各訓練例は、訓練画像と、訓練画像内の1つまたは複数のグラウンドトゥルースバウンディングボックスおよび各バウンディングボックスのそれぞれのグラウンドトゥルース物体カテゴリを特定する目標出力とを含む。グラウンドトゥルース物体カテゴリは、グラウンドトゥルースバウンディングボックス内に描かれた物体が属すると分類された物体カテゴリのセットからの物体カテゴリである。
【0081】
一部の実装において、システムは、訓練例の初期バッチからバッチを生成するために1つまたは複数の増強(augmentation)技術を適用する。
【0082】
一例として、システムは、対応する初期訓練画像に1つまたは複数の画像増強ポリシーを適用することによって、バッチの訓練画像のうちの1つまたは複数を生成することができる。そして、システムは、それぞれの生成された訓練画像を、対応する初期訓練画像の目標出力に関連付けることができる。画像補強ポリシーを適用することは、訓練データにうまく表現されていない可能性がある様々な画像摂動(image perturbation)に対する訓練されたニューラルネットワークの堅牢性を高めることができる。
【0083】
たとえば、画像増強ポリシーは、訓練例のバッチを生成するために、ランダムなスケーリング、クロップ、またはその他の画像増強技術を初期訓練画像にどのようにして適用するかを指定することができる。
【0084】
一例として、システムは、初期訓練画像に対してランダムなクロップをともなうスケールジッタリング(scale jittering)を実行し得る。そのような技術の例は、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition、2918~2928ページ、2021年のGolnaz Ghiasi、Yin Cui、Aravind Srinivas、Rui Qian、Tsung-Yi Lin、Ekin D Cubuk、Quoc V Le、およびBarret Zoph、Simple copy-paste is a strong data augmentation method for instance segmentationに記載されている。
【0085】
別の例として、システムは、長辺が決まった数のピクセルを有するように(決まったアスペクト比で)画像をリサイズすることによって画像のスケーリングを実行することができる。
【0086】
別の例として、システムは、初期訓練画像のピクセルの強度値に色歪み(color distortion)を適用することができる。そのような技術の例は、Andrew G Howard、Some improvements on deep convolutional neural network based image classification、arXivプレプリントarXiv:1312.5402、2013年に記載されている。
【0087】
画像剛強の代わりに、または画像増強に加えて、システムは、ノイズある予測または誤ってラベル付けされた訓練データに対する訓練されたモデルの堅牢性を高めるために、訓練例の目標出力に増強を適用することもできる。
【0088】
たとえば、システムは、初期訓練例のうちの特定の1つの特定の初期訓練画像内の初期グラウンドトゥルースバウンディングボックスのうちの1つまたは複数を選択し、それから、それぞれの選択された初期グラウンドトゥルースバウンディングボックスに関して、特定の訓練画像内の初期グラウンドトゥルースバウンディングボックスにノイズを適用することによって、対応する訓練例の対応するグラウンドトゥルースバウンディングボックスを生成することができる。たとえば、システムは、初期グラウンドトゥルースバウンディングボックスにランダムなスケーリングを適用することができ、初期グラウンドトゥルースバウンディングボックスにランダムなシフトを適用することができ、またはその両方を適用することができる。
【0089】
各訓練画像に関して、システムは、各グラウンドトゥルースバウンディングボックスに関して、(i)画像内のバウンディングボックスの位置を定義する第1のトークンのセットと、(ii)バウンディングボックスのグラウンドトゥルース物体カテゴリを表す第2のトークンとを含むそれぞれのサブシーケンスを含む目標出力シーケンスを生成する(ステップ404)。つまり、目標出力シーケンスは、それぞれが異なるグラウンドトゥルースバウンディングボックスに対応する1つまたは複数のサブシーケンスから構成される。任意で、目標出力シーケンスの最後のサブシーケンスには、目標出力シーケンス内の最後のトークンであるシーケンス終了トークンが後に続くことができる。
【0090】
推論時に、ニューラルネットワークによって生成された出力シーケンス内でバウンディングボックスが配列される順序は問題でない、すなわち、バウンディングボックスAをシーケンス内でバウンディングボックスBより先に特定する出力は、バウンディングボックスBをシーケンス内で先に置く出力と同じであると考えられるべきであるので、システムは、これを反映する目標出力シーケンスを生成することができる。特に、システムは、目標出力シーケンス内で、それぞれのサブシーケンスをランダムな順序で順序付けることができる。
【0091】
一部の実装において、システムは、訓練後のニューラルネットワークの性能を向上させるために、任意の所与の訓練画像に関する目標出力シーケンスに1つまたは複数の修正を行うこともできる。上述のように、ニューラルネットワークが「教師強制(teacher forcing)」を使用して訓練されるとき、システムは、訓練中にデコーダニューラルネットワークに提供される対応する入力シーケンスも修正する。目標出力シーケンス(および任意で対応する入力シーケンス)を修正することは、「シーケンス増強」と呼ばれる。
【0092】
たとえば、上述のように、一部の実装において、トークンの語彙は、物体カテゴリのセットにない「ノイズ」物体カテゴリを表すトークンを含み得る。これらの例において、システムは、訓練画像内の1つまたは複数のランダムなバウンディングボックスを生成し、それぞれのランダムなバウンディングボックスに関して、(i)訓練画像内のランダムなバウンディングボックスの位置を定義する第1のトークンのセットと、(ii)物体カテゴリのセットにないノイズ物体カテゴリを表す第2のトークンとを含む対応する「ノイズ」サブシーケンスを目標出力シーケンスに含めることができる。
【0093】
特定の例として、システムは、グラウンドトゥルースバウンディングボックスのいずれかに対応する最後のサブシーケンスの後にノイズサブシーケンスを追加することができる。
【0094】
一部の実装において、システムは、各目標出力シーケンスに決まった数のノイズサブシーケンスを追加することができる。一部のその他の実装において、システムは、各目標出力シーケンスが同じ決まった数のサブシーケンス(すなわち、同じ数のグラウンドトゥルース+ノイズサブシーケンス)を含むように、ノイズサブシーケンスを追加することができる。
【0095】
これらのランダムな(または「ノイズのある」)バウンディングボックスを目標シーケンスに追加することは、様々な形で、訓練されたニューラルネットワークの性能を向上させ得る。たとえば、これらのノイズ物体の一部は、グラウンドトゥルース物体の一部と同一であるかまたは重なり合っている場合があり、ノイズのあるおよび重複した予測をシミュレーションし、すなわち、それによって、訓練データ内のこれらの種類の予測に対してより堅牢になるようにニューラルネットワークを訓練する。別の例として、ノイズのあるバウンディングボックスを目標出力シーケンスに導入することは、推論時に、(EOSトークンに割り振られるスコアの人為的な削減のような一部のその他の技術が使用されるときに発生し得るように)推論として生成される出力にもノイズのあるおよび重複した予測を導入することなく、ニューラルネットワークが画像内のすべての物体を特定せずに終了することを防止することができる。
【0096】
それから、システムは、各訓練画像に関して、および訓練画像に関する目標出力シーケンス内のトークンの少なくともサブセットの各トークンに関して、目標出力シーケンス内の任意の先行トークンおよび訓練画像を条件とするトークンの対数尤度を最大化するように物体検出ニューラルネットワークを訓練する(ステップ406)。
【0097】
目標出力シーケンスがノイズのあるバウンディングボックスを含まないとき、上記「少なくともサブセット」は、目標出力シーケンス内のトークンのすべてを含み得る。目標出力シーケンスがノイズのあるバウンディングボックスを確かに含むとき、ニューラルネットワークは、ランダムなバウンディングボックスに関する第1のトークンのセットのトークンの対数尤度を最大化するように訓練されない(しかし、ノイズカテゴリを表す第2のトークンの対数尤度を最大化するように訓練される)。つまり、上記「少なくともサブセット」は、ランダムなバウンディングボックスに関する第1のトークンのセットを除いたトークンのすべてを含む。これは、ニューラルネットワークが、ノイズバウンディングボックスを模倣するのではなく、ノイズバウンディングボックスを特定することを学習することを可能にする。
【0098】
対数尤度を最大化するようにニューラルネットワークを訓練するために、システムは、誤差逆伝播によって、エンコーダニューラルネットワークおよびデコーダニューラルネットワークのパラメータに関して、トークンの少なくともサブセットの対数尤度を測定する目的関数の勾配を計算し、それから、決定された勾配を使用してパラメータを更新する。たとえば、システムは、パラメータを更新するために勾配およびパラメータに適切なオプティマイザ、たとえば、Adamオプティマイザ、rmsPropオプティマイザ、Adafactorオプティマイザ、または異なる機械学習オプティマイザを適用することができる。たとえば、損失関数は、各訓練例に関して、訓練例の訓練出力シーケンスの対数尤度の組合せ、たとえば、総和または加重和の平均であることが可能である。目標出力シーケンスがノイズのあるバウンディングボックスを確かに含むとき、ランダムなバウンディングボックスに関する第1のトークンのセットは、組合せに含まれない。
【0099】
図5は、所与の目標出力シーケンスに関してニューラルネットワークを訓練する例を示す。
【0100】
特に、図5は、シーケンス増強なしでニューラルネットワークを訓練する第1の例510と、シーケンス増強ありでニューラルネットワークを訓練する第2の例512とを示す。より詳細には、第1の例510は、目標出力シーケンス520および対応する入力シーケンス530を示す。訓練中、訓練システムは、「教師強制」を使用し、したがって、ニューラルネットワークは、上述のように、ニューラルネットワークを訓練するために使用される目標出力シーケンス520内の各位置に関するそれぞれのスコア分布を生成するために入力シーケンス530を処理する。デコーダによって採用された「因果性(causality)」のため、対応する入力シーケンス530は、目標出力シーケンス520に対して1トークンだけシフトされ、したがって、目標出力シーケンス520内のそれぞれの所与の位置に関するそれぞれのスコア分布は、目標出力シーケンス520内の所与の位置に先立つ位置のトークン(および常に推論時の自己回帰生成中に最初の時間ステップにおける最初の入力として提供される初期「開始」トークン)に依存する。この依存関係は、例510および512において矢印によって示されており、目標出力シーケンス内の各トークンは、矢印によってトークンに接続されている、対応する入力シーケンス、すなわち、各生成時間ステップにおいて自己回帰デコーダによって処理される対応する入力シーケンス内の各トークンに依存する。
【0101】
特に、第1の例510において、目標出力シーケンス520は、10個のトークンy1~y10と、それに続くEOSトークン(「終了」)を含み、いかなる追加トークンも持たない。
【0102】
第2の例512も、目標出力シーケンス540および対応する入力シーケンス550を含む。しかし、目標出力シーケンス540においては、トークンy10に、2つの「ノイズ」バウンディングボックスに関するトークンが続く。特に、目標出力シーケンス540は、ノイズバウンディングボックスの座標を表すトークンの2つの第1のセットを含み、それらの第1のセットの各々には、バウンディングボックスが対応する入力画像に元々存在しなかったノイズバウンディングボックスであることを示す「ノイズ」トークンが続く。同様に、対応する入力シーケンス550は、トークンy10に続く追加トークンも含む。ノイズのあるバウンディングボックスに関するトークンの第1のセットは、図5において「n/a」とラベル付けされており、その理由は、ニューラルネットワークを訓練するときに、それらの対数尤度が考慮されず、たとえば、それらの損失がゼロに設定されるからである。
【0103】
本明細書は、用語「構成される」をシステムおよびコンピュータプログラムコンポーネントに関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されることは、システムが、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作またはアクションを実行させる命令を含むことを意味する。
【0104】
本明細書に記載の対象の実施形態および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的ストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。代替的または追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。
【0105】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【0106】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは記載される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に好適なその他のユニットとしての形態を含む任意の形態でデプロイされることが可能である。プログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、データ通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるようにデプロイされ得る。
【0107】
本明細書において、用語「データベース」は、データの任意の集まりを指すために広く使用され、すなわち、データは、いずれかの特定の方法で構造化される必要はなく、またはまったく構造化される必要がなく、1つまたは複数の場所のストレージデバイスに記憶され得る。したがって、たとえば、インデックスデータベースが、データの複数の集まりを含むことが可能であり、データの集まりの各々は、異なる方法で編成され、アクセスされる場合がある。
【0108】
同様に、本明細書において、用語「エンジン」は、1つまたは複数の特定の機能を実行するようにプログラミングされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。概して、エンジンは、1つまたは複数の場所の1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装される。場合によっては、1つまたは複数のコンピュータが、特定のエンジンに専用であり、その他の場合、複数のエンジンが、同じ1台のコンピュータまたは複数のコンピュータにインストールされ、実行されていることが可能である。
【0109】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するための1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用論理回路、たとえば、FPGAもしくはASICによって、または専用論理回路と1つもしくは複数のプログラミングされたコンピュータとの組合せによって実行され得る。
【0110】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置に基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央演算処理装置およびメモリは、専用論理回路によって補完されるか、または専用論理回路に組み込まれることが可能である。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【0111】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0112】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、スピーチ、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。また、コンピュータは、メッセージングアプリケーションを実行しているパーソナルデバイス、たとえば、スマートフォンにテキストメッセージまたはその他の形態のメッセージを送信し、返報としてユーザから応答メッセージを受信することによってユーザとインタラクションすることができる。
【0113】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習の訓練または生成、たとえば、推論の作業負荷のよくある計算量の多い部分を処理するための専用ハードウェアアクセラレータユニットも含むことが可能である。
【0114】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワークを使用して実装され、デプロイされ得る。
【0115】
本明細書に記載の対象の実施形態は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえば、インターネットを含む。
【0116】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、たとえば、クライアントとして働くデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的でユーザデバイスにデータ、たとえば、HTMLページを送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザインタラクションの結果が、サーバにおいてデバイスから受信されることが可能である。
【0117】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定ともみなされるべきでなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態に組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで働くものとして上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする場合がある。
【0118】
同様に、動作が特定の順序で図中に示され、特許請求の範囲に記載されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【0119】
対象の特定の実施形態が、説明された。その他の実施形態は、添付の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲に記載のアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図に描かれたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序を必要としない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【0120】
100 物体検出システム
102 入力画像
110 物体検出ニューラルネットワーク
112 出力シーケンス
120 エンコーダニューラルネットワーク
122 符号化された表現
130 デコーダニューラルネットワーク
150 物体検出出力
200 プロセス
310 入力画像
312 物体検出出力部分
314 物体検出出力部分
316 物体検出出力部分
320 入力画像
330 入力画像
400 プロセス
510 第1の例
512 第2の例
520 目標出力シーケンス
530 入力シーケンス
540 目標出力シーケンス
550 対応する入力シーケンス
図1
図2
図3
図4
図5
【国際調査報告】