JP7385681B2 - 手姿勢推定 - Google Patents

手姿勢推定 Download PDF

Info

Publication number
JP7385681B2
JP7385681B2 JP2021568891A JP2021568891A JP7385681B2 JP 7385681 B2 JP7385681 B2 JP 7385681B2 JP 2021568891 A JP2021568891 A JP 2021568891A JP 2021568891 A JP2021568891 A JP 2021568891A JP 7385681 B2 JP7385681 B2 JP 7385681B2
Authority
JP
Japan
Prior art keywords
layer
unit
output
block
tier
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
JP2021568891A
Other languages
English (en)
Other versions
JPWO2020236993A5 (ja
JP2022533206A (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.)
Magic Leap Inc
Original Assignee
Magic Leap 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 Magic Leap Inc filed Critical Magic Leap Inc
Publication of JP2022533206A publication Critical patent/JP2022533206A/ja
Publication of JPWO2020236993A5 publication Critical patent/JPWO2020236993A5/ja
Application granted granted Critical
Publication of JP7385681B2 publication Critical patent/JP7385681B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/778Active pattern-learning, e.g. online learning of image or video features
    • G06V10/7784Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/11Hand-related biometrics; Hand pose recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/113Recognition of static hand signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/117Biometrics derived from hands

Description

手姿勢推定は、コントローラのない相互作用を可能にするための拡張現実(AR)/仮想現実(VR)/複合現実(MR)/エクステンデッドリアリティ(XR)用途の重要な構成要素である。手姿勢推定は、(1)単純な離散的姿勢分類、(2)可視の骨格関節位置の2D(2次元)手特徴点推定、(3)2D特徴点推定値が、対応する深度値を使用して2.5Dに引き上げられる、2.5D(2.5次元)またはハイブリッド3D(3次元)手特徴点推定、(4)3D手特徴点推定、および(5)完全に関節接合された3D手形状および姿勢追跡等の異なる形態においてもたらされ得る。
意味論的標識を入力画像の各ピクセルに割り当てることに相当する、意味論的セグメンテーションの研究は、コンピュータビジョンにおける基本的タスクである。これは、自律運転およびビデオ監視等の分野に幅広く適用されることができる。これらの用途は、高速の相互作用または応答のための効率的な推論速度に対する高い需要を有する。一方、意味論的セグメンテーションは、多くの場合、訓練および/または深層学習能力を必要とする、ニューラルネットワークを使用し、したがって、広範な量の算出および記憶リソースだけではなく、また、広範な量の算出および記憶リソースの結果としてのより高い電力消費を要求する。結果として、意味論的セグメンテーションは、VR、AR、MR、および/またはXRデバイス等のウェアラブルデバイスにおいて、実践的またはさらには所望の用途を有し得る。それにもかかわらず、算出および記憶リソースおよび電力消費の要件のうちのいずれか1つは、ウェアラブルデバイスにとって完全に非実践的ではないにしても、意味論的セグメンテーションを伴うコンピュータビジョンの実践的実装を困難にする。
したがって、深層学習および訓練能力を有するだけではなく、また、ウェアラブルデバイスを含む幅広い分野の用途のために実践的であるニューラルネットワークの必要性が、存在する。
いくつかの実施形態は、モバイル電子デバイスを用いたマシンビジョンのためのマルチタスク深層学習パラダイムにおけるニューラルネットワークを対象とする。ニューラルネットワークは、第1階層と、第2階層と、第3階層とを備える、エンコーダを含み、第1階層は、第1階層ユニットを備え、第1階層ユニットは、1つ以上の第1ユニットブロックを備え、第2階層は、第2階層内の1つ以上の第2階層ユニットにおいて第1階層から第1階層出力を受信し、第2階層ユニットが、1つ以上の第2階層ブロックを備え、第3階層は、第3階層内の1つ以上の第3階層ユニットにおいて第2階層から第2階層出力を受信し、第3階層ユニットが、1つ以上の第3階層ブロックを備える。ニューラルネットワークはさらに、エンコーダからエンコーダ出力を受信するために、エンコーダに動作的に結合される、デコーダ、および深層学習パラダイムにおけるニューラルネットワークの少なくともエンコーダを訓練するために、1つ以上の損失を逆伝搬するように構成される、1つ以上の損失関数層を備えてもよい。
いくつかの実施形態では、第1階層ユニット内の1つ以上の第1ユニットブロックは、畳み込み層を備え、バッチ正規化層が論理的に続き、スケール層がさらに論理的に続き、1つ以上の第1ユニットブロックはさらに、スケール層に論理的に続く、整流線形ユニットを備える。
加えて、または代替では、ニューラルネットワーク内の第2階層は、第1の第2階層ユニットと、第2の第2階層ユニットとを備え、第1の第2階層ユニットは、第1階層から第1階層出力を受信し、第1の第2階層第1ユニットブロックと、第2の第2階層第1ユニットブロックとを備え、第1の第2階層第1ユニットブロックおよび第2の第2階層第1ユニットブロックは両方とも、それぞれ、バッチ正規化層を備え、スケール層が続き、整流線形ユニットがさらに論理的に続き、第1の第2階層第1ユニットブロック内のバッチ正規化層は、第1の畳み込み層に論理的に続き、第2の第2階層第1ユニットブロック内のバッチ正規化層は、第2の畳み込み層に論理的に続き、第1の畳み込み層は、第2の畳み込み層と異なる。
直前の実施形態のうちのいくつかでは、第2の第2階層ユニットは、第2の第2階層第1ユニットブロックおよび第1階層出力から連結された出力を受信する、第1の第2階層第2ユニットブロックと、第2の第2階層第2ユニットブロックと、第3の第2階層第2ユニットブロックとを備え、第1の第2階層第2ユニットブロック、第2の第2階層第2ユニットブロック、および第3の第2階層第2ユニットブロックは、それぞれ、バッチ正規化層を備え、スケール層が続き、整流線形ユニットがさらに論理的に続き、第1の第2階層第2ユニットブロック内のバッチ正規化層は、第2の畳み込み層に論理的に続き、第2の第2階層第2ユニットブロック内のバッチ正規化層は、第1の畳み込み層に論理的に続き、第3の第2階層第2ユニットブロック内のバッチ正規化層は、第2の畳み込み層に論理的に続き、第3の第2階層第2ユニットブロックは、第2階層出力を発生させるように構成される。
いくつかの実施形態では、第1階層によって発生された第1階層出力が、第2階層によって発生された第2階層出力と連結され、第3階層入力として第3階層に提供されてもよく、第3階層は、第1の第3階層ユニットと、第2の第3階層ユニットとを備え、第1の第3階層ユニットは、個別の第1ユニット階層的レベルに位置する、複数の第3階層第1ユニットブロックを備え、複数の第3階層第1ユニットブロックのうちの少なくともいくつかは、1つを上回る第1の拡張係数に対応する、異なる拡張された畳み込み層を備える。
直前の実施形態のうちのいくつかでは、第2の第3階層ユニットは、個別の第2ユニット階層的レベルに位置する、複数の第3階層第2ユニットブロックを備え、複数の第3階層第2ユニットブロックのうちの少なくともいくつかは、1つを上回る第2の拡張係数に対応する、複数の拡張された畳み込み層を備え、複数の第3階層第1ユニットブロックおよび複数の第3階層第2ユニットブロックは、深層学習パラダイムにおけるニューラルネットワークの少なくともエンコーダを訓練するために、少なくとも1つの個別の拡張された畳み込み層と、複数の個別の残差ブロックとを備える。
いくつかの実施形態では、第2階層出力が、第3階層入力として第3階層に提供され、ニューラル出力のための最終連結出力として第3階層によって発生された第3階層出力とさらに連結され、深層学習パラダイムにおけるニューラルネットワークの少なくともエンコーダを訓練するステップは、少なくとも活性化層および交差エントロピ損失を使用して、1つ以上の損失を逆伝搬するステップを含む。
いくつかの実施形態は、モバイル通信デバイスと、マシンビジョンのためのマルチタスク深層学習パラダイムにおけるニューラルネットワークの埋込実装であって、埋込実装におけるニューラルネットワークは、複数のスーパーハイビジョンプロセッサまたはプロセッサコアを有する、ビジョン処理ユニットと、第1階層と、第2階層と、第3階層とを備える、エンコーダであって、第1階層は、第1階層ユニットを備え、第1階層ユニットは、1つ以上の第1ユニットブロックを備え、第2階層は、第2階層内の1つ以上の第2階層ユニットにおいて第1階層から第1階層出力を受信し、第2階層ユニットが、1つ以上の第2階層ブロックを備え、第3階層は、第3階層内の1つ以上の第3階層ユニットにおいて第2階層から第2階層出力を受信し、第3階層ブロックが、1つ以上の第3階層ブロックを備える、エンコーダとを備える、ニューラルネットワークの埋込実装とを備える、ニューラルネットワークの埋込実装を伴うモバイル電子デバイスを対象とする。
これらの実施形態のうちのいくつかでは、第1階層ユニット内の1つ以上の第1ユニットブロックは、畳み込み層を備え、バッチ正規化層が論理的に続き、スケール層がさらに論理的に続き、1つ以上の第1ユニットブロックはさらに、スケール層に論理的に続く、整流線形ユニットを備える。
加えて、または代替では、ニューラルネットワーク内の第2階層は、第1の第2階層ユニットと、第2の第2階層ユニットとを備え、第1の第2階層ユニットは、第1階層から第1階層出力を受信し、第1の第2階層第1ユニットブロックと、第2の第2階層第1ユニットブロックとを備え、第1の第2階層第1ユニットブロックおよび第2の第2階層第1ユニットブロックは両方とも、それぞれ、バッチ正規化層を備え、スケール層が続き、整流線形ユニットがさらに論理的に続き、第1の第2階層第1ユニットブロック内のバッチ正規化層は、第1の畳み込み層に論理的に続き、第2の第2階層第1ユニットブロック内のバッチ正規化層は、第2の畳み込み層に論理的に続き、第1の畳み込み層は、第2の畳み込み層と異なる。
いくつかの実施形態では、第1階層によって発生された第1階層出力が、第2階層によって発生された第2階層出力と連結され、第3階層入力として第3階層に提供されてもよく、第3階層は、第1の第3階層ユニットと、第2の第3階層ユニットとを備え、第1の第3階層ユニットは、個別の第1ユニット階層的レベルに位置する、複数の第3階層第1ユニットブロックを備え、複数の第3階層第1ユニットブロックのうちの少なくともいくつかは、1つを上回る第1の拡張係数に対応する、異なる拡張された畳み込み層を備える。
直前の実施形態のうちのいくつかでは、第2の第3階層ユニットは、個別の第2ユニット階層的レベルに位置する、複数の第3階層第2ユニットブロックを備え、複数の第3階層第2ユニットブロックのうちの少なくともいくつかは、1つを上回る第2の拡張係数に対応する、複数の拡張された畳み込み層を備え、複数の第3階層第1ユニットブロックおよび複数の第3階層第2ユニットブロックは、深層学習パラダイムにおけるニューラルネットワークの少なくともエンコーダを訓練するために、少なくとも1つの個別の拡張された畳み込み層と、複数の個別の残差ブロックとを備える。
加えて、または代替では、第2階層出力が、第3階層入力として第3階層に提供され、ニューラル出力のための最終連結出力として第3階層によって発生された第3階層出力とさらに連結され、深層学習パラダイムにおけるニューラルネットワークの少なくともエンコーダを訓練するステップは、少なくとも活性化層および交差エントロピ損失を使用して、1つ以上の損失を逆伝搬するステップを含む。
いくつかの実施形態は、空間パスにおいて入力データセット内の空間情報を保全するように構成される、空間パス層であって、空間パスは、空間情報をエンコードする、空間パス層と、コンテキストパスを使用することによって、ニューラルネットワークの受容フィールドを増加させるように構成される、コンテキストパス層であって、コンテキストパスは、入力データセット内のコンテキスト情報をエンコードする、コンテキストパス層と、空間パス層からの第1の出力およびコンテキストパスからの第2の出力を融合するように構成される、特徴融合層とを備える、マシンビジョンのためのマルチタスク深層学習パラダイム内のニューラルネットワークを対象とする。
これらの実施形態のうちのいくつかでは、空間パス層は、第1階層と、第2階層と、第3階層とを備える、エンコーダを備え、第1階層は、第1階層ユニットを備え、第1階層ユニットは、1つ以上の第1ユニットブロックを備え、第2階層は、第2階層内の1つ以上の第2階層ユニットにおいて第1階層から第1階層出力を受信し、第2階層ユニットが、1つ以上の第2階層ブロックを備え、第3階層は、第3階層内の1つ以上の第3階層ユニットにおいて第2階層から第2階層出力を受信し、第3階層ブロックが、1つ以上の第3階層ブロックを備える。
直前の実施形態のうちのいくつかでは、空間パス層はさらに、エンコーダからエンコーダ出力を受信するために、エンコーダに動作的に結合される、デコーダと、深層学習パラダイムにおけるニューラルネットワークの少なくともエンコーダを訓練するために、1つ以上の損失を逆伝搬するように構成される、1つ以上の損失関数層とを備える。
いくつかの実施形態では、第2階層は、第1の第2階層ユニットと、第2の第2階層ユニットとを備え、第1の第2階層ユニットは、第1階層から第1階層出力を受信し、第1の第2階層第1ユニットブロックと、第2の第2階層第1ユニットブロックとを備え、第1の第2階層第1ユニットブロックおよび第2の第2階層第1ユニットブロックは両方とも、それぞれ、バッチ正規化層を備え、スケール層が続き、整流線形ユニットがさらに論理的に続き、第1の第2階層第1ユニットブロック内のバッチ正規化層は、第1の畳み込み層に論理的に続き、第2の第2階層第1ユニットブロック内のバッチ正規化層は、第2の畳み込み層に論理的に続き、第1の畳み込み層は、第2の畳み込み層と異なり、第1階層ユニット内の1つ以上の第1ユニットブロックは、畳み込み層を備え、バッチ正規化層が論理的に続き、スケール層がさらに論理的に続き、1つ以上の第1ユニットブロックはさらに、スケール層に論理的に続く、整流線形ユニットを備える。
いくつかの実施形態では、コンテキストパス層は、少なくとも部分的に、軽量モデルによってニューラルネットワークに提供される受容フィールドに基づいて、入力画像をダウンサンプリングするように構成される、軽量モデルと、軽量モデルに結合され、コンテキスト情報を捕捉するように構成される、畳み込み層が論理的に続く、プーリング層とを備える。
直前の実施形態のうちのいくつかでは、ニューラルネットワークはさらに、複数のプーリング層に動作的に結合され、特徴選択または組み合わせを誘導するための注意ベクトルを決定するように構成される、注意精緻化層と、空間パス層からの空間パス出力およびコンテキストパス層からのコンテキストパス出力を融合するように構成される、特徴融合等と、空間パス層を訓練するように構成される、第1の損失関数と、コンテキストパス層を訓練するように構成される、第2の損失関数とを備える。
本開示の付加的および他の目的、特徴、および利点が、詳細な説明、図、および請求項に説明される。
本発明は、例えば、以下を提供する。
(項目1)
マシンビジョンのためのマルチタスク深層学習パラダイムにおけるニューラルネットワークであって、
エンコーダであって、前記エンコーダは、第1階層と、第2階層と、第3階層とを備え、
前記第1階層は、第1階層ユニットを備え、
前記第1階層ユニットは、1つ以上の第1ユニットブロックを備え、
前記第2階層は、前記第2階層内の1つ以上の第2階層ユニットにおいて前記第1階層から第1階層出力を受信し、
第2階層ユニットが、1つ以上の第2階層ブロックを備え、
前記第3階層は、前記第3階層内の1つ以上の第3階層ユニットにおいて前記第2階層から第2階層出力を受信し、
第3階層ユニットが、1つ以上の第3階層ブロックを備える、
エンコーダと、
デコーダであって、前記デコーダは、前記エンコーダからエンコーダ出力を受信するために、前記エンコーダに動作的に結合される、デコーダと、
1つ以上の損失関数層であって、前記1つ以上の損失関数層は、深層学習パラダイムにおける前記ニューラルネットワークの少なくとも前記エンコーダを訓練するために、1つ以上の損失を逆伝搬するように構成される、1つ以上の損失関数層と
を備える、ニューラルネットワーク。
(項目2)
前記第1階層ユニット内の前記1つ以上の第1ユニットブロックは、畳み込み層を備え、バッチ正規化層が論理的に続き、スケール層がさらに論理的に続き、前記1つ以上の第1ユニットブロックはさらに、前記スケール層に論理的に続く整流線形ユニットを備える、項目1に記載のニューラルネットワーク。
(項目3)
前記第2階層は、第1の第2階層ユニットと、第2の第2階層ユニットとを備え、
前記第1の第2階層ユニットは、前記第1階層から第1階層出力を受信し、第1の第2階層第1ユニットブロックと、第2の第2階層第1ユニットブロックとを備え、
前記第1の第2階層第1ユニットブロックおよび前記第2の第2階層第1ユニットブロックは両方とも、それぞれ、バッチ正規化層を備え、スケール層が続き、整流線形ユニットがさらに論理的に続き、
前記第1の第2階層第1ユニットブロック内の前記バッチ正規化層は、第1の畳み込み層に論理的に続き、
前記第2の第2階層第1ユニットブロック内の前記バッチ正規化層は、第2の畳み込み層に論理的に続き、
前記第1の畳み込み層は、前記第2の畳み込み層と異なる、
項目1に記載のニューラルネットワーク。
(項目4)
前記第2の第2階層ユニットは、前記第2の第2階層第1ユニットブロックおよび前記第1階層出力から連結された出力を受信する第1の第2階層第2ユニットブロックと、第2の第2階層第2ユニットブロックと、第3の第2階層第2ユニットブロックとを備え、
前記第1の第2階層第2ユニットブロック、前記第2の第2階層第2ユニットブロック、および前記第3の第2階層第2ユニットブロックは、それぞれ、前記バッチ正規化層を備え、前記スケール層が続き、前記整流線形ユニットがさらに論理的に続き、前記第1の第2階層第2ユニットブロック内の前記バッチ正規化層は、前記第2の畳み込み層に論理的に続き、
前記第2の第2階層第2ユニットブロック内の前記バッチ正規化層は、前記第1の畳み込み層に論理的に続き、
前記第3の第2階層第2ユニットブロック内の前記バッチ正規化層は、前記第2の畳み込み層に論理的に続き、
前記第3の第2階層第2ユニットブロックは、第2階層出力を発生させるように構成される、
項目3に記載のニューラルネットワーク。
(項目5)
前記第1階層によって発生された第1階層出力が、前記第2階層によって発生された第2階層出力と連結され、第3階層入力として前記第3階層に提供され、
前記第3階層は、第1の第3階層ユニットと、第2の第3階層ユニットとを備え、
前記第1の第3階層ユニットは、個別の第1ユニット階層的レベルに位置する複数の第3階層第1ユニットブロックを備え、
前記複数の第3階層第1ユニットブロックのうちの少なくともいくつかは、1つを上回る第1の拡張係数に対応する異なる拡張された畳み込み層を備える、
項目1に記載のニューラルネットワーク。
(項目6)
前記第2の第3階層ユニットは、個別の第2ユニット階層的レベルに位置する複数の第3階層第2ユニットブロックを備え、前記複数の第3階層第2ユニットブロックのうちの少なくともいくつかは、1つを上回る第2の拡張係数に対応する複数の拡張された畳み込み層を備え、前記複数の第3階層第1ユニットブロックおよび前記複数の第3階層第2ユニットブロックは、前記深層学習パラダイムにおける前記ニューラルネットワークの少なくともエンコーダを訓練するために、少なくとも1つの個別の拡張された畳み込み層と、複数の個別の残差ブロックとを備える、項目5に記載のニューラルネットワーク。
(項目7)
第2階層出力が、第3階層入力として前記第3階層に提供され、前記ニューラル出力のための最終連結出力として前記第3階層によって発生された第3階層出力とさらに連結され、前記深層学習パラダイムにおける前記ニューラルネットワークの少なくともエンコーダを訓練することは、少なくとも活性化層および交差エントロピ損失を使用して、前記1つ以上の損失を逆伝搬することを含む、項目1に記載のニューラルネットワーク。
(項目8)
ニューラルネットワークの埋込実装を伴うモバイル電子デバイスであって、
モバイル通信デバイスと、
マシンビジョンのためのマルチタスク深層学習パラダイムにおけるニューラルネットワークの埋込実装であって、前記埋込実装における前記ニューラルネットワークは、
複数のスーパーハイビジョンプロセッサまたはプロセッサコアを有するビジョン処理ユニットと、
エンコーダであって、前記エンコーダは、第1階層と、第2階層と、第3階層とを備え、
前記第1階層は、第1階層ユニットを備え、
前記第1階層ユニットは、1つ以上の第1ユニットブロックを備え、
前記第2階層は、前記第2階層内の1つ以上の第2階層ユニットにおいて前記第1階層から第1階層出力を受信し、
第2階層ユニットが、1つ以上の第2階層ブロックを備え、
前記第3階層は、前記第3階層内の1つ以上の第3階層ユニットにおいて前記第2階層から第2階層出力を受信し、
第3階層ブロックが、1つ以上の第3階層ブロックを備える、
エンコーダと
を備える、ニューラルネットワークの埋込実装と
を備える、モバイル電子デバイス。
(項目9)
前記埋込実装における前記ニューラルネットワークは、
前記エンコーダからエンコーダ出力を受信するために、前記エンコーダに動作的に結合される可視性デコーダ層と、
前記エンコーダから前記エンコーダ出力を受信するために、前記エンコーダに動作的に結合される特徴姿勢デコーダ層と、
前記エンコーダから前記エンコーダ出力を受信するために、前記エンコーダに動作的に結合される配向デコーダ層と
を備える、項目8に記載のモバイル電子デバイス。
(項目10)
前記第1階層ユニット内の前記1つ以上の第1ユニットブロックは、畳み込み層を備え、バッチ正規化層が論理的に続き、スケール層がさらに論理的に続き、前記1つ以上の第1ユニットブロックはさらに、前記スケール層に論理的に続く整流線形ユニットを備える、項目8に記載のモバイル電子デバイス。
(項目11)
前記第2階層は、第1の第2階層ユニットと、第2の第2階層ユニットとを備え、
前記第1の第2階層ユニットは、前記第1階層から第1階層出力を受信し、第1の第2階層第1ユニットブロックと、第2の第2階層第1ユニットブロックとを備え、
前記第1の第2階層第1ユニットブロックおよび前記第2の第2階層第1ユニットブロックは両方とも、それぞれ、バッチ正規化層を備え、スケール層が続き、整流線形ユニットがさらに論理的に続き、
前記第1の第2階層第1ユニットブロック内の前記バッチ正規化層は、第1の畳み込み層に論理的に続き、
前記第2の第2階層第1ユニットブロック内の前記バッチ正規化層は、第2の畳み込み層に論理的に続き、
前記第1の畳み込み層は、前記第2の畳み込み層と異なる、
項目8に記載のモバイル電子デバイス。
(項目12)
前記第1階層によって発生された第1階層出力が、前記第2階層によって発生された第2階層出力と連結され、第3階層入力として前記第3階層に提供され、
前記第3階層は、第1の第3階層ユニットと、第2の第3階層ユニットとを備え、
前記第1の第3階層ユニットは、個別の第1ユニット階層的レベルに位置する複数の第3階層第1ユニットブロックを備え、
前記複数の第3階層第1ユニットブロックのうちの少なくともいくつかは、1つを上回る第1の拡張係数に対応する異なる拡張された畳み込み層を備える、
項目8に記載のモバイル電子デバイス。
(項目13)
前記第2の第3階層ユニットは、個別の第2ユニット階層的レベルに位置する複数の第3階層第2ユニットブロックを備え、前記複数の第3階層第2ユニットブロックのうちの少なくともいくつかは、1つを上回る第2の拡張係数に対応する複数の拡張された畳み込み層を備え、前記複数の第3階層第1ユニットブロックおよび前記複数の第3階層第2ユニットブロックは、前記深層学習パラダイムにおける前記ニューラルネットワークの少なくともエンコーダを訓練するために、少なくとも1つの個別の拡張された畳み込み層と、複数の個別の残差ブロックとを備える、項目12に記載のモバイル電子デバイス。
(項目14)
第2階層出力が、第3階層入力として前記第3階層に提供され、前記ニューラル出力のための最終連結出力として前記第3階層によって発生された第3階層出力とさらに連結され、前記深層学習パラダイムにおける前記ニューラルネットワークの少なくともエンコーダを訓練することは、少なくとも活性化層および交差エントロピ損失を使用して、1つ以上の損失を逆伝搬することを含む、項目12に記載のモバイル電子デバイス。
(項目15)
マシンビジョンのためのマルチタスク深層学習パラダイム内のニューラルネットワークであって、
空間パス層であって、前記空間パス層は、空間パスにおいて入力データセット内の空間情報を保全するように構成され、前記空間パスは、前記空間情報をエンコードする、空間パス層と、
コンテキストパス層であって、前記コンテキストパス層は、コンテキストパスを使用することによって、前記ニューラルネットワークの受容フィールドを増加させるように構成され、前記コンテキストパスは、前記入力データセット内のコンテキスト情報をエンコードする、コンテキストパス層と、
特徴融合層であって、前記特徴融合層は、前記空間パス層からの第1の出力および前記コンテキストパスからの第2の出力を融合するように構成される、特徴融合層と
を備える、ニューラルネットワーク。
(項目16)
項目15に記載のマシンビジョンのためのマルチタスク深層学習パラダイム内のニューラルネットワークであって、前記空間パス層は、
エンコーダであって、前記エンコーダは、第1階層と、第2階層と、第3階層とを備え、
前記第1階層は、第1階層ユニットを備え、
前記第1階層ユニットは、1つ以上の第1ユニットブロックを備え、
前記第2階層は、前記第2階層内の1つ以上の第2階層ユニットにおいて前記第1階層から第1階層出力を受信し、
第2階層ユニットが、1つ以上の第2階層ブロックを備え、
前記第3階層は、前記第3階層内の1つ以上の第3階層ユニットにおいて前記第2階層から第2階層出力を受信し、
第3階層ブロックが、1つ以上の第3階層ブロックを備える、
エンコーダ
を備える、ニューラルネットワーク。
(項目17)
項目16に記載のマシンビジョンのためのマルチタスク深層学習パラダイム内のニューラルネットワークであって、前記空間パス層は、
デコーダであって、前記デコーダは、前記エンコーダからエンコーダ出力を受信するために、前記エンコーダに動作的に結合される、デコーダと、
1つ以上の損失関数層であって、前記1つ以上の損失関数層は、深層学習パラダイムにおける前記ニューラルネットワークの少なくとも前記エンコーダを訓練するために、1つ以上の損失を逆伝搬するように構成される、1つ以上の損失関数層と
を備える、ニューラルネットワーク。
(項目18)
項目16に記載のマシンビジョンのためのマルチタスク深層学習パラダイム内のニューラルネットワークであって、前記第2階層は、第1の第2階層ユニットと、第2の第2階層ユニットとを備え、
前記第1の第2階層ユニットは、前記第1階層から第1階層出力を受信し、第1の第2階層第1ユニットブロックと、第2の第2階層第1ユニットブロックとを備え、
前記第1の第2階層第1ユニットブロックおよび前記第2の第2階層第1ユニットブロックは両方とも、それぞれ、バッチ正規化層を備え、スケール層が続き、整流線形ユニットがさらに論理的に続き、
前記第1の第2階層第1ユニットブロック内の前記バッチ正規化層は、第1の畳み込み層に論理的に続き、
前記第2の第2階層第1ユニットブロック内の前記バッチ正規化層は、第2の畳み込み層に論理的に続き、
前記第1の畳み込み層は、前記第2の畳み込み層と異なり、
前記第1階層ユニット内の前記1つ以上の第1ユニットブロックは、畳み込み層を備え、バッチ正規化層が論理的に続き、スケール層がさらに論理的に続き、前記1つ以上の第1ユニットブロックはさらに、前記スケール層に論理的に続く整流線形ユニットを備える、
ニューラルネットワーク。
(項目19)
項目16に記載のマシンビジョンのためのマルチタスク深層学習パラダイム内のニューラルネットワークであって、前記コンテキストパス層は、
軽量モデルであって、前記軽量モデルは、少なくとも部分的に、軽量モデルによって前記ニューラルネットワークに提供される受容フィールドに基づいて、入力画像をダウンサンプリングするように構成される、軽量モデルと、
プーリング層であって、前記プーリング層は、前記軽量モデルに結合され、前記コンテキスト情報を捕捉するように構成される畳み込み層が論理的に続く、プーリング層と
を備える、ニューラルネットワーク。
(項目20)
項目19に記載のマシンビジョンのためのマルチタスク深層学習パラダイム内のニューラルネットワークであって、
注意精緻化層であって、前記注意精緻化層は、前記複数のプーリング層に動作的に結合され、特徴選択または組み合わせを誘導するための注意ベクトルを決定するように構成される、注意精緻化層と、
特徴融合層であって、前記特徴融合層は、前記空間パス層からの空間パス出力および前記コンテキストパス層からのコンテキストパス出力を融合するように構成される、特徴融合層と、
前記空間パス層を訓練するように構成される第1の損失関数と、
前記コンテキストパス層を訓練するように構成される第2の損失関数と
をさらに備える、ニューラルネットワーク。
図面は、類似する要素が、共通の参照番号によって参照される、本発明の好ましい実施形態の設計および有用性を図示する。本発明の上記に列挙される、および他の利点および目的が取得される方法をより深く理解するために、上記に簡潔に説明された本発明のより具体的な説明が、付随の図面に図示されるその具体的実施形態を参照することによって与えられるであろう。これらの図面が、本発明の典型的実施形態のみを描写し、したがって、その範囲の限定と見なされるものではないことを理解した上で、本発明は、付随の図面の使用を通して付加的具体性および詳細とともに説明および解説されるであろう。
図1は、いくつかの実施形態における、画像内のユーザの左手に関する特徴点の第1のサブセットおよび第2のサブセットの実施例を図示する。
図2は、いくつかの実施形態における、コンピュータビジョンを実装するための処理ブロックの複数の階層を有する、ニューラルネットワークの簡略化実施例を図示する。
図3は、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第1階層の簡略化実施例を図示する。
図4A-4Bは、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第2階層の簡略化実施例を図示する。 図4A-4Bは、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第2階層の簡略化実施例を図示する。
図5A-5Fは、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第3階層の簡略化実施例を図示する。 図5A-5Fは、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第3階層の簡略化実施例を図示する。 図5A-5Fは、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第3階層の簡略化実施例を図示する。 図5A-5Fは、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第3階層の簡略化実施例を図示する。 図5A-5Fは、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第3階層の簡略化実施例を図示する。 図5A-5Fは、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第3階層の簡略化実施例を図示する。
図6Aは、いくつかの実施形態における、本明細書に説明されるニューラルネットワーク内で使用され得る、1-3-1畳み込みモジュールまたは層のセットの簡略化実施例を図示する。
図6Bは、いくつかの実施形態における、本明細書に説明されるニューラルネットワーク内で使用され得る、1-3-1畳み込みモジュールまたは層のセットを有する、残差ブロックの簡略化実施例を図示する。
図6Cは、いくつかの実施形態における、本明細書に説明されるニューラルネットワーク内で使用され得る、図6Bに図示される4つの残差モジュールを有するブロックの簡略化実施例を図示する。
図6Dは、いくつかの実施形態における、複数のブロックを備えるユニットの簡略化実施例を図示する。
図6Eは、いくつかの実施形態における、複数のユニット間で複数の入力および/または出力を連結する簡略化実施例を図示する。
図6Fは、いくつかの実施形態における、複数の階層を有する、エンコーダの簡略化概略実施例を図示する。
図6Gは、いくつかの実施形態における、それぞれ、1つ以上のブロックの1つ以上のユニットを有する、複数の階層を備える、ネットワークアーキテクチャの簡略化実施例を図示する。
図6Hは、いくつかの実施形態における、複数の種々の層を有する、注意ブロックの簡略化実施例を図示する。
図6Iは、いくつかの実施形態における、複数のモジュールまたは層を有する、特徴融合ブロックの簡略化実施例を図示する。
図7Aは、いくつかの実施形態における、空間情報を保全し、コンピュータビジョンのための受容フィールドを強化する間のマルチタスク深層学習およびニューラルネットワークを用いた意味論的セグメンテーションの高レベル概略ブロック図を図示する。
図7Bは、いくつかの実施形態における、3×3受容フィールドを有する、1(1)拡張された畳み込みの簡略化実施例を図示する。
図7Cは、いくつかの実施形態における、図7Bの1拡張された畳み込みから生成され、7×7受容フィールドを有する、2(2)拡張された畳み込みの簡略化実施例を図示する。
図7Dは、いくつかの実施形態における、図7Cの2拡張された畳み込みから生成され、11×11受容フィールドを有する、3(3)拡張された畳み込みの簡略化実施例を図示する。
図7Eは、いくつかの実施形態における、図7Dの2拡張された畳み込みから生成され、15×15受容フィールドを有する、4(4)拡張された畳み込みの簡略化実施例を図示する。
図8Aは、いくつかの実施形態における、XR眼鏡の外部にベルトパックを伴うウェアラブルXRデバイスの簡略化実施例を図示する。
図8Bは、いくつかの実施形態における、図8Aに図示されるベルトパックを伴うウェアラブルXRデバイス上のニューラルネットワークの埋込実装の簡略化実施例を図示する。
図8Cは、いくつかの実施形態における、図8Bに図示される埋込実装のいくつかの動作の高レベル例示的ブロック図を図示する。
図9Aは、いくつかの実施形態における、3つの例示的階層を有するニューラルネットワークにおけるいくつかの例示的動作の高レベル例示的ブロック図を図示する。
図9Bは、いくつかの実施形態における、ニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図を図示する。
図9Cは、いくつかの実施形態における、図9Bに図示されるニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図の一部についてのさらなる詳細を図示する。
図9Dは、いくつかの実施形態における、図9Bに図示されるニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図の一部についてのさらなる詳細を図示する。
図9Eは、いくつかの実施形態における、図9Dに図示されるニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図の一部についてのさらなる詳細を図示する。
図9Fは、いくつかの実施形態における、図9Bに図示されるニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図の別の部分についてのさらなる詳細を図示する。
図10Aは、いくつかの実施形態における、空間情報を保全し、コンピュータビジョンのための受容フィールドを強化する間のマルチタスク深層学習および連結拡張ラダー(CDL)ニューラルネットワークを用いた意味論の別の高レベル概略ブロック図を図示する。
図10Bは、いくつかの実施形態における、マルチタスク深層学習を用いたニューラルネットワークにおける多階層エンコーダアーキテクチャの別の高レベル概略ブロック図を図示する。
本開示の種々の実施形態は、単一の実施形態において、またはいくつかの実施形態において、空間情報を保全し、コンピュータビジョンのための受容フィールドを強化しながら、マルチタスク深層学習およびニューラルネットワークを用いて意味論的セグメンテーションを実装するための方法、システム、および製造品を対象とする。本発明の他の目的、特徴、および利点が、詳細な説明、図、および請求項に説明される。
種々の実施形態が、ここで、当業者が本発明を実践することを可能にするように、本発明の例証的実施例として提供される、図面を参照して詳細に説明されるであろう。とりわけ、下記の図および実施例は、本発明の範囲を限定することを意味していない。本発明のある要素が、公知のコンポーネント(または方法またはプロセス)を使用して部分的または完全に実装され得る場合、本発明の理解のために必要であるそのような公知のコンポーネント(または方法またはプロセス)のそれらの部分のみが、説明され、そのような公知のコンポーネント(または方法またはプロセス)の他の部分の詳細な説明は、本発明を不明瞭にしないように、省略されるであろう。さらに、種々の実施形態は、例証として本明細書に言及されるコンポーネントの現在および将来公知の均等物を包含する。
以下の説明では、ある具体的詳細が、種々の開示される実施形態の徹底的な理解を提供するために記載される。しかしながら、当業者は、実施形態が、これらの具体的詳細のうちの1つ以上のものを伴わずに、または他の方法、コンポーネント、材料等を用いて実践され得ることを認識するであろう。他のインスタンスでは、仮想および拡張現実システムと関連付けられる周知の構造は、実施形態の説明を不必要に不明瞭にすることを回避するために、詳細に示されていない、または説明されていない。
文脈が別様に要求しない限り、続く本明細書および請求項全体を通して、単語「~を備える(comprise)」および「~を備える(comprises)」および「~を備える(comprising)」等のその変形例は、非制限の包括的意味で、すなわち、「限定ではないが、~を含む(including, but not limited to)」として解釈されるものである。
本明細書全体を通した「一実施形態(one embodiment)」または「ある実施形態(an embodiment)」の言及は、実施形態に関連して説明される特定の特徴、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通した種々の箇所における語句「一実施形態では(in one embodiment)」または「ある実施形態では(in an embodiment)」の表出は、必ずしも全てが同一の実施形態を指すわけではない。さらに、特定の特徴、構造、または特性は、1つ以上の実施形態において任意の好適な様式で組み合わせられてもよい。
本開示のいくつかの実施形態は、主として、手特徴点推定、ジェスチャ認識等の(3)~2.5Dまたはハイブリッド3D(集合的に、2.5D)コンピュータビジョンに関するが、同じまたは実質的に類似する技法もまた、3D手特徴点推定およびコンピュータビジョンに適用されてもよい。本明細書に説明される種々の実施形態のいくつかの利点は、例えば、これがAR/VR/MR環境における殆どの手相互作用のために十分であることを含み得る。2.5D手特徴点推定では、本明細書に開示されるネットワークアーキテクチャは、深度画像へのアクセスを有し、本明細書に開示されるネットワークアーキテクチャは、2D特徴点推定を実施するために使用され、2D特徴点推定が実施される点における深度値が、深度画像から抽出されることができる。アルゴリズムの観点から、2D特徴点を算出/推定することは、はるかに容易である。2.5D手特徴点推定のいくつかの不利点は、例えば、手の上の特徴点が自己オクルードされ、深度がオクルージョンを無視する手の表面の深度に対応するとき、これが良好に機能しないことを含み得る。
2D特徴点推定は、例えば、人間の身体および手に関する3D姿勢推定問題に対する重要な前段階である。2.5D手姿勢推定は、例えば、AR/VR/MR/XRウェアラブル等の制約されたメモリおよび算出エンベロープを伴う埋込デバイスに対して使用されてもよい。2.5D手姿勢推定は、深度センサによって捕捉され、対応する深度値を使用して2.5Dに引き上げられる(例えば、投影される)、自己画像上の関節位置の2D特徴点推定から成り得る。本明細書に開示されるネットワークアーキテクチャ内のモジュールは、最新のアーキテクチャと比較したとき、集合的に、3%のフロップカウントおよび2%のパラメータ数につながり得る。補助的マルチタスク訓練方略が、MobileNetV2に匹敵する性能を達成しながら、本明細書に開示されるネットワークアーキテクチャの小さい容量を補償するために使用されてもよい。いくつかの実施例では、32ビット訓練モデルが、300キロバイトを下回るメモリフットプリントを有し、35 MFLOP(1秒あたりメガ浮動小数点演算)を下回って50Hzを上回って動作してもよい。
例えば、AR/VR/MR/XRウェアラブルを含む、モバイル電子デバイスのビジョンベースの手追跡システムへの入力は、例えば、単眼赤色-緑色-青色(RGB)/グレースケール画像または深度画像のいずれかであってもよい。深度ベースのアプローチは、多くの場合、3D姿勢推定に関してRGBベースのアプローチよりも優れている。いくつかの実施形態では、深度画像を出力する深度ベースのアプローチは、飛行時間(TOF)深度センサを使用してもよい。
グラウンドトゥルース画像が、例えば、M個の特徴点を用いて、ラベラによって標識化されてもよい。グラウンドトゥルース画像は、全ての可視の特徴点に対応する、可視の特徴点(例えば、グラウンドトゥルース画像において可視である特徴点)を用いて標識化されてもよい。グラウンドトゥルース画像は、(下記に説明される)1つ以上の位相画像/深度画像のヒストグラム等化バージョンであってもよい。いくつかの実施形態では、本明細書に開示されるネットワークアーキテクチャは、N個の特徴点を予測してもよい。いくつかの実施形態では、Nは、M未満であってもよい。付加的特徴点(例えば、Mにはあるが、Nにはない特徴点)が、補助的教師としての役割を果たしてもよい。図(FIG.)1は、いくつかの実施形態による、手特徴点を図示する。
主要標識は、本明細書に開示されるネットワークアーキテクチャが予測するN個の特徴点であり、主要標識および補助標識の組み合わせが、グラウンドトゥルース画像が標識化され得るM個の特徴点である。
いくつかの実施形態では、画像は、17個の特徴点を用いて標識化されてもよく、本明細書に開示されるネットワークアーキテクチャは、8個の特徴点を予測してもよく、付加的特徴点(例えば、17~8個)が、補助的教師としての役割を果たしてもよい。いくつかの実施形態では、画像は、27個の特徴点を用いて標識化されてもよく、本明細書に開示されるネットワークアーキテクチャは、15個の特徴点を予測してもよく、付加的特徴点(例えば、27~15個)が、補助的教師としての役割を果たしてもよい。当業者は、標識化される特徴点の数(M)および予測される特徴点の数(N)が変動し得ることを理解するであろう。
手の画像はまた、例えば、オーケー、開いた手、つまむこと、C姿勢、握り拳、L姿勢、指さし、および親指を立てることを含む、8つの離散的手特徴姿勢クラス、全ての他の特徴姿勢(例えば、非特徴姿勢)を捕捉するダミークラス、および右/左手割当を用いて標識化されてもよい。いくつかの実施形態では、付加的標識は、教師タスクとして作用する。
予測を混乱させる手のような(ディストラクタ)オブジェクトを回避するために、手を含有するグラウンドトゥルース画像は、課題となるディストラクタオブジェクトを含有する変動される背景と合成されてもよい。制御された環境内でデータを収集し、オーギュメンテーションを使用することによって、訓練データは、異なる環境に汎化するように拡大されてもよい。収集されたデータ(例えば、グラウンドトゥルース画像)の大部分は、ユーザが片手での相互作用を実施することに対応するため、スキューが、データセット内に導入され得る。これを軽減するために、左および右手は、異なる画像から合成されてもよい。
図2は、いくつかの実施形態による、例示的ネットワークアーキテクチャを図示する。青色の部分は、訓練および埋込実装において使用される一方、残りの部分は、訓練の間に補助的教師としてのみ使用される。
いくつかの実施形態では、図2の入力画像は、1つ以上の位相画像、1つ以上の深度画像、1つ以上の振幅画像、1つ以上のRGB画像、1つ以上のグレースケール画像、またはそれらの任意の組み合わせであってもよいが、深度画像が、入力として他のタイプの画像を受信するいくつかの実施形態において改良された性能を示している。振幅画像は、複数の位相画像の組み合わせ(例えば、線形組み合わせ)を含んでもよい。位相画像が使用される実施例では、TOF深度センサが、位相画像を捕捉し、これは、後処理を使用して、深度画像に転換されてもよい。
深度画像を計算するために位相画像を後処理するための算出時間が、手追跡に関するエンドツーエンド待ち時間にかなりの部分を追加し得る。いくつかの実施形態では、振幅画像と称され得る、位相画像の線形組み合わせが、2D特徴点推定を実施し、並行して深度画像処理を実施し、全体的待ち時間を効果的に低減させるために使用されてもよい。本明細書に議論されるように、これは、逐次深度処理の待ち時間を除去しながら、代わりに、並列深度処理を実装することによって、性能を改良し得る。いくつかの実施形態では、入力画像は、修正された入力画像内の行の数が、本明細書に説明されるネットワークアーキテクチャに好都合であるように、例えば、修正された入力画像内の行の数が、4、8、16等の倍数、または本明細書に開示されるネットワークアーキテクチャのチャネルの数/深度に関連するある他の数になるように修正されてもよい。
「主要エンコーダ:層1」は、「階層1」と称され、「主要エンコーダ:層2」は、「階層2」と称され、「主要エンコーダ:層3」は、「階層3」と称されるであろう。各階層の出力は、活性化マップのセットである。
畳み込み(以降ではConv)バッチノルム(以降ではバッチ正規化またはBN)スケール(以降ではSまたはSC)整流線形ユニットは、簡略化のためにConv-BN-S-ReLUブロックと称され得、前述の階層(例えば、階層1、階層2、階層3等)において使用されてもよい。いくつかの実施形態では、バッチノルムおよびスケールは、畳み込み層に折畳されてもよい。整流線形ユニットは、正の値のみがブロックから出力されることを確実にする。
図3は、いくつかの実施形態による、例示的ネットワークアーキテクチャの例示的階層1を図示する。階層1(300)は、単一のConv-BN-S-ReLUブロック302を含んでもよく、最大プーリング演算(tier_1_pool_out)302は、3×3畳み込みであってもよい。階層1の入力および出力は、図3に図示される。畳み込み演算は、出力特徴マップをもたらす、より大きい入力へのより小さいフィルタの線形適用である。入力画像または入力特徴マップに適用されるフィルタは、常時、単一の数をもたらす。入力へのフィルタの系統的な左から右および上から下の適用は、2次元特徴マップをもたらす。
フィルタは、入力と同一の深度またはチャネルの数を有するが、入力およびフィルタの深度にかかわらず、結果として生じる出力は、単一の数であり、1つのフィルタは、単一のチャネルを伴う特徴マップを作成する。例えば、入力が、グレースケール画像等の1つのチャネルを有する場合、3×3フィルタが、3×3×1ブロックにおいて適用されるであろう。別の実施例として、入力画像が、赤色、緑色、および青色のための3つのチャネルを有する場合、3×3フィルタが、3×3×3ブロックにおいて適用されるであろう。また別の実施例として、入力が、別の畳み込みまたはプーリング層からの特徴マップのブロックであり、64の深度を有する場合、3×3フィルタが、3×3×64ブロックにおいて適用され、単一の値を作成し、単一の出力特徴マップを構成するであろう。畳み込みについてのさらなる詳細が、下記に説明されるであろう。
図4A-4Bは、いくつかの実施形態における、例示的ニューラルネットワークの複数の階層内の第2階層の簡略化実施例を図示する。より具体的には、図4Aは、第2階層の簡略化実施例を図示する。ユニット1(400A)が、第1のブロック402を含む。第1のブロック402は、2つのブロックを含み、第1のブロック402は、3×3畳み込み層(3×3Conv)を含み、バッチ正規化層(BN)が続き、スケール層(SC)がさらに続く。整流線形ユニット(ReLU)が、スケール層(SC)に続く。第1のユニット400A内の第2のブロック404もまた同様に、バッチ正規化層(BN)を含み、スケール層(SC)がさらに続く。整流線形ユニット(ReLU)が、スケール層(SC)に続く。第2のブロック404は、3×3畳み込み層を有するのではなく、第2のブロック404が、1×1畳み込み層を含み、バッチ正規化層が続く点において、第1のブロック402と異なる。
畳み込みは、信号処理、画像処理、および他の工学設計または科学分野において広く使用される技法であり、一方が反転および偏移された後の2つの関数の積の積分として定義される。信号および画像処理における畳み込みは、畳み込みを行う目的が、入力から有用な特徴を抽出することである点において、深層学習およびニューラルネットワークにおける畳み込みに類似する。例えば、画像または信号処理では、畳み込みのために選定し得る広い範囲の異なるフィルタが、存在し、各タイプのフィルタは、入力画像から異なる側面または特徴を抽出することに役立つ。同様に、畳み込みニューラルネットワークでは、異なる特徴が、その加重が訓練の間に自動的に学習されるフィルタを使用して、畳み込みを通して抽出され得、全てのこれらの抽出された特徴は、次いで、決定を行うために「組み合わせ」られ得る。
深層学習における畳み込みは、本質的に、信号または画像処理における交差相関であり、したがって、信号処理における畳み込みとわずかに異なる。より具体的には、畳み込み層におけるフィルタは、反転されず、概して、2つのフィルタ関数のスライディングドット積またはスライディング内積として公知である。すなわち、畳み込みは、深層学習およびニューラルネットワークにおける要素毎の乗算および加算である。
1×1畳み込み層は、いくつかの実施形態では、入力におけるチャネル毎に単一のパラメータまたは加重を有し、任意のフィルタの適用のように、単一の出力値をもたらす。すなわち、1×1畳み込み層は、入力画像におけるいかなる近隣ピクセルも伴わない。1×1畳み込み層によって実施される演算は、したがって、入力の線形加重または投影であり得る。1×1畳み込み層の本構造は、したがって、1×1畳み込み層が、入力における特徴マップのそれぞれを横断する同一の位置からの(例えば、階層1出力304からの)入力を用いて単一のニューロンのように作用することを可能にする。本単一のニューロンは、次いで、1(1)のストライドで、例えば、いかなるパディングの必要性も伴わずに、左から右および上から下に系統的に適用され、入力と同一の幅および高さを伴う特徴マップをもたらし得る。結果として、1×1畳み込みは、多くの有用な情報を失わず、その目的を達成するために新しいパラメータを学習する必要性がないように、他の次元を変化させないままで、チャネルの数の方向に沿って次元を低減させ得る。1×1畳み込み層は、したがって、特徴マップの数を制御するために、畳み込みニューラルネットワーク内の任意の点において使用されてもよい。加えて、1×1畳み込みはまた、1×1畳み込みが、別個のチャネルまたは特徴を単一のチャネルまたは特徴の中に埋込する、効率的な低次元埋込または特徴プーリングを提供し得る。
3×3畳み込み層が、3×3行列(例えば、水平線を認識するための[[0,0,0], [1,1,1], [0,0,0]]、垂直線を認識するための[[1,0,0], [1,0,0], [1,0,0]]等)を入力画像に、例えば、3ピクセル×3ピクセル単位で上から下および左から右様式で適用し、要素毎の乗算および加算(例えば、スライディングドット積)を実施する。単一のチャネル(例えば、グレースケール画像)に関して、これは、1つのチャネルを伴う3×3×1行列をもたらす。3つのチャネルを有する入力画像(例えば、RGB画像)に関して、これは、3×3×3行列を有するフィルタをもたらし、3つのチャネルの個別の結果は、要素毎の加算を用いてともに合計され、3×3×3フィルタ行列を使用して入力に畳み込みを適用した結果である1つの単一のチャネル(3×3×1)を形成する。前述の1×1畳み込み層および3×3畳み込み層が、入力画像の2方向(例えば、高さおよび幅)にのみ移動することに留意されたい。3D画像に関して、本アプローチは、実質的に類似する2方向様式で第1の深度においてフィルタ行列を最初に移動させ、次いで、残りの深度を通して進行し、3D畳み込みを達成するように容易に拡大され得る。3D画像に2Dフィルタを有する畳み込みを実装する1つの方法は、いくつかの実施形態では、深度方向における1×1畳み込みの適用を含んでもよい。
バッチ正規化層(BN)または略してバッチノルムが、本明細書に説明されるニューラルネットワーク内の複数の層の更新を協調させるために使用されてもよい。バッチ正規化はまた、コンピュータビジョンにおいて画像に適用されるとき、「ホワイトニング」と称され得る。また、バッチ正規化は、学習プロセスを安定させ、深層ネットワークを訓練するために要求される訓練エポックの数を低減させるように、いくつかの実施形態では、ミニバッチ毎に層への入力を標準化する非常に深層のニューラルネットワークを訓練することに適用される。いくつかの実施形態では、層への入力を正規化することは、ネットワークの訓練に対する効果を及ぼし、要求されるエポックの数を低減させる。バッチ正規化はまた、正則化効果を有し、活性化正則化の使用と同様に、汎化誤差を低減させ得る。さらに、バッチ正規化は、例えば、ミニバッチ毎に層への各入力変数の平均および標準偏差を計算し、これらの統計を使用し、標準化を実施することによって、訓練の間に実装されてもよい。代替では、バッチ正規化は、ミニバッチを横断する平均および標準偏差の移動代表値を維持してもよい。訓練後、層に関する入力の統計(例えば、平均および標準偏差)は、訓練データセットにわたって観察された平均値として設定されてもよい。
ニューラルネットワークでは、活性化関数が、多くの場合、ノードからの合計された加重入力をその入力に関するノードまたは出力の活性化に変換することに関与するために使用される。整流線形活性化関数は、正である場合、入力を直接出力し、そうでなければ、ゼロを出力するであろう、区分的線形関数である。多くの場合、ReLUを使用するニューラルネットワークモデルは、訓練することが容易であり、多くの場合、より良好な性能を達成する。本明細書に説明されるニューラルネットワークは、ノードの複数の層を含んでもよく、入力の実施例を出力にマッピングすることを学習する。所与のノードに関して、入力は、ノード内の加重によって乗算され、ともに合計され、ノードの合計された活性化と称され得る値を形成してもよい。合計された活性化は、次いで、活性化関数を介して変換されてもよく、ノードの具体的出力または「活性化」を定義する。単純な活性化関数は、線形活性化と称され、いかなる変換も、全く適用されない。線形活性化関数のみを有するニューラルネットワークは、訓練することが非常に容易であるが、複雑なマッピング関数を学習することができない。いくつかの実施形態では、線形活性化関数が、例えば、数量(例えば、回帰問題)を予測するニューラルネットワークに関する出力層において使用されてもよい。いくつかの他の実施形態は、ノードがデータ内のより複雑な構造を学習することを可能にするために、非線形活性化関数を採用する。
従来的に、2つの広く使用される非線形活性化関数は、シグモイドおよび双曲線正接活性化関数である。ロジスティック関数とも呼ばれる、シグモイド活性化関数は、従来的に、ニューラルネットワークに関する非常に一般的な活性化関数である。関数への入力は、0.0~1.0の値に変換される。1.0よりもはるかに大きい入力が、値1.0に変換され、同様に、0.0よりもはるかに小さい値が、0.0にスナップされる。全ての可能性として考えられる入力に関する関数の形状は、ゼロから上に0.5を通して1.0までS形である。シグモイドは、ニューラルネットワーク上で使用されるデフォルト活性化のうちの1つである。双曲線正接関数または略してtanhは、-1.0~1.0の値を出力する、類似する形状の非線形活性化関数である。
tanh関数は、時として、本tanh活性化関数を使用するニューラルネットワークが、訓練することがより容易であり、多くの場合、より良好な予測性能を提示するため、シグモイド活性化関数に代わって選定されていた。シグモイドおよびtanh関数の両方の欠点は、それらが、それぞれ、tanhおよびシグモイドに関して、大きい値が1.0にスナップし、小さい値が-1または0にスナップする場所で飽和する傾向があることである。さらに、関数は、多くの場合、シグモイドに関して0.5およびtanhに関して0.0等のそれらの入力のそれらの中点付近の変化にのみ敏感である。関数の限定された感度および飽和は、入力として提供されたノードからの合計された活性化が有用な情報を含有するかどうかにかかわらず起こる。いったん飽和されると、学習アルゴリズムが、モデルの性能を改良するために加重を適合させ続けることは、困難になる。最後に、ハードウェアの能力が、GPUを通して増加されたため、シグモイドおよびtanh活性化関数を使用した非常に深層のニューラルネットワークは、容易に訓練され得ない。
深層ニューラルネットワークを訓練するために誤差の逆伝搬とともに勾配降下を使用するために、線形関数のように見え、作用するが、実際には、データ内の複雑な関係が学習されることを可能にする非線形関数である、活性化関数が、必要とされる。活性化関数はまた、活性化和入力に対するさらなる感度を提供し、容易な飽和を回避し得る。整流線形活性化関数または略してReLが、これらの所望の特性を満たす。本活性化関数を実装するノードまたはユニットは、整流線形活性化ユニットまたは略してReLUと称される。いくつかの実施形態では、例えば、1つ以上の隠れ層に関する整流線形関数を使用するニューラルネットワークは、整流ネットワークと称され得る。
整流線形活性化関数は、入力として提供される値を直接、または入力が0.0またはそれを下回る場合に値0.0を返す、単純な計算を含む。本単純な計算は、単純なif文を用いて記述されてもよく、入力>0である場合、入力を返し、そうでなければ、0を返し、または本関数g()を数学的に記述し、g(z)=最大{0,z}である。分かり得るように、整流線形関数は、ゼロを上回る値に関して線形である、すなわち、整流線形活性化関数は、逆伝搬を使用してニューラルネットワークを訓練するとき、線形活性化関数の多くの望ましい性質を有する。しかし、整流線形活性化関数は、負の値が、常時、ゼロとして出力されるため、非線形関数である。
スケール層(SC)は、これらのスケール層が、それぞれ、複数のサンプリングレートおよび有効視野における対応するフィルタを用いて着信する畳み込み特徴層を精査し、したがって、複数のスケールにおいてオブジェクトおよび画像コンテキストを捕捉するように、複数のスケールにおいてオブジェクト(例えば、オブジェクトのセグメンテーション)をロバストに処理するために、空間的にピラミッドのような構造において構造化される。加えて、または代替では、オブジェクトは、複数のスケールにおいて存在し得る。従来のアプローチは、多くの場合、従来のニューラルネットワークに、同一の画像の再スケーリングされたバージョンを提示し、次いで、特徴または特徴マップを集約することによって、複数の異なるスケールから生じる課題に対処する。これらの従来のアプローチは、性能を増加させるが、入力画像の複数のスケーリングされたバージョンに関して全てのニューラルネットワーク層において特徴応答を算出することを犠牲にし得る。これらの従来のアプローチと異なり、いくつかの実施形態は、補完的な有効視野を有する複数のフィルタを用いて元の入力画像を精査し、したがって、複数のスケールにおいてオブジェクトおよび有用な画像コンテキストを捕捉するように、畳み込みに先立って、複数の率において特徴層を再サンプリングする算出的に効率的なスキームを採用する。特徴を実際に再サンプリングするのではなく、これらの実施形態は、異なるサンプリングレートおよび異なるスケールを伴う複数の並列畳み込み層を使用して、本マッピングを効率的に実装する。
ユニット2は、3つのブロック、すなわち、412と、414と、416とを含む。第1のブロック412は、1×1畳み込み層(1×1Conv)を含み、バッチ正規化層(BN)が続き、スケール層(SC)がさらに続く。整流線形ユニットが、第1のブロック412内のスケール層に続く。第1のブロック412と同様に、第2のブロック414もまた、バッチ正規化層(BN)を含み、スケール層(SC)がさらに続く。整流線形ユニットが、第1のブロック414のスケール層に続く。第1のブロック412と第2のブロック414との間の差異は、1×1畳み込みを有するのではなく、第2のユニット414が、3×3畳み込みを含み、バッチ正規化層が続くことである。第3のブロック416Aは、第2のブロック414と同じブロックのセットを含み、したがって、ここでは繰り返し説明されないであろう。
第2階層は、上記に説明されるように、2つのユニット、すなわち、ユニット1(400A)と、ユニット2(408A)とを備える。さらに、ユニット1の出力は、階層2ユニット2連結入力モジュール(406A)において階層1出力(304)と連結され、入力をユニット2に提供してもよい。また、第2のユニット(408A)のプーリング出力414は、階層2連結出力モジュール410Aにおいてプーリング出力416Aと連結され、階層3への連結入力としての役割を果たしてもよく、これは、図5A-5Fを参照して下記により詳細に説明されるであろう。
図4Bは、いくつかの実施形態による、ニューラルネットワークの階層2を図示する。これらの実施形態では、階層2は、2つのユニット(例えば、第1のユニット402Bおよび第2のユニット404B)を含んでもよい。第1のユニット402Bは、図4Aの参照番号402および404を参照して上記に説明されるもの等の2つのConv-BN-SC-ReLUブロックを含んでもよい。
第2のユニット404Bは、3つのブロック(例えば、図4Aを参照して上記に説明されるような412、414、および416)を含んでもよい。階層2はさらに、連結演算(tier_unit2_concat_in, tier_2_concat_out)と、最大プーリング演算(tier2_unit2_pool_out, tier2_unit1_pool_out)とを含んでもよい。402および414は、3×3であってもよく、404、412、および416は、1×1であってもよい。階層2の入力および出力は、図4に図示される。階層2は、4つのグループを含んでもよい。例えば、第1のブロック402Bの出力は、階層2ユニット2連結入力(406A)において階層1のプーリング出力と連結され、第2のユニット404Bに関する連結入力を提供してもよい。さらに、第1のユニット402Bのプーリング出力もまた、階層2連結出力410Aにおいて第2のユニット404Bのプーリング出力と連結されてもよく、これは、次いで、第3階層、すなわち、階層3に関する連結入力として本連結出力(階層2ユニット1および階層2ユニット2から)を提供してもよい。
図5A-5Eは、いくつかの実施形態による、ニューラルネットワークの階層3を図示する。階層3は、2つのユニット(例えば、第1のユニットおよび第2のユニット)を含んでもよい。いくつかの実施形態では、階層3は、3つのユニット、すなわち、ユニット1と、ユニット2とを含んでもよい。図5A-5Bおよび図5Cの一部は、階層3のユニット1の成分を図示する。これらの実施形態では、階層3のユニット1は、ベースブロック504Fと、第1の残差ブロック506Fと、第2の残差ブロック510Fと、第3の残差ブロック514Fと、第4の残差ブロック518Fとを含む、複数のブロックを含んでもよい。
階層3内のユニット1のベースブロック504Fは、3つのサブブロックを含む。第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。第1のサブブロックは、階層3内のユニット1のベースブロックの第1のサブブロックへの入力として階層2(410A)から連結出力を受信する。階層3内のユニット1のベースブロック内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット1の第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。
第1の残差ブロック506Fもまた、3つのサブブロックを有する。第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。ベースブロック504Fの出力は、入力として第1のサブブロックに提供される。第1のサブブロックは、第1の残差ブロック506Fの第1のサブブロックへの入力としてベースブロック504Fの第3のサブブロックから出力を受信する。階層3内のユニット1の第1の残差ブロック506F内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。第1の残差ブロック506F内の第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット1の第1の残差ブロック506Fの第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。
第1の残差ブロック506Fのプーリング出力は、階層3ユニット1残差1結合(508F)においてベースブロック504Fのプーリング出力と組み合わせられ、階層3内のユニット1の第2の残差ブロック510Fに入力を提供してもよい。第2の残差ブロック510Fもまた、第1の残差ブロックのように、3つのサブブロックを有してもよい。
より具体的には、第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。ベースブロック504Fおよび第1の残差ブロック506Fの両方から組み合わせられた出力(508F)が、入力として第2の残差ブロックの第1のサブブロックに提供されてもよい。階層3内のユニット1の第2の残差ブロック510F内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。第2の残差ブロック510F内の第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット1の第2の残差ブロック510Fの第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。第2の残差ブロック510Fの第3のサブブロックのプーリング出力もまた、階層3内のユニット1の第3の残差ブロック514Fにさらに提供され得る、階層3ユニット1残差2の組み合わせられた出力(512F)として上記に説明される組み合わせられた出力(508F)と組み合わせられてもよい。
第2の残差ブロック510Fのプーリング出力は、階層3ユニット1残差2の組み合わせられた出力(512F)として組み合わせられた出力(508F)と組み合わせられ、階層3内のユニット1の第3の残差ブロック514Fに入力を提供してもよい。第3の残差ブロック514Fもまた、第1および第2の残差ブロックのように、3つのサブブロックを有してもよい。
より具体的には、第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。組み合わせられた出力(508F)および第2の残差ブロック510Fからのプーリング出力の両方から組み合わせられた出力(512F)が、入力として第3の残差ブロック514Fの第1のサブブロックに提供されてもよい。階層3内のユニット1の第3の残差ブロック514F内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。第3の残差ブロック514F内の第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット1の第3の残差ブロック514Fの第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。第3の残差ブロック514Fの第3のサブブロックのプーリング出力もまた、階層3内のユニット1の第4の残差ブロック518Fにさらに提供され得る、階層3ユニット1残差3の組み合わせられた出力(516F)として上記に説明される組み合わせられた出力(512F)と組み合わせられてもよい。
第3の残差ブロック514Fのプーリング出力は、階層3ユニット1残差3の組み合わせられた出力(516F)として組み合わせられた出力(512F)と組み合わせられ、階層3内のユニット1の第4の残差ブロック518Fに入力を提供してもよい。第4の残差ブロック518Fもまた、第1、第2、および第2の残差ブロックのように、3つのサブブロックを有してもよい。
より具体的には、第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。組み合わせられた出力(512F)および第3の残差ブロック514Fからのプーリング出力の両方から組み合わせられた出力(516F)が、入力として第4の残差ブロック518Fの第1のサブブロックに提供されてもよい。階層3内のユニット1の第4の残差ブロック518F内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。第4の残差ブロック518F内の第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット1の第4の残差ブロック518Fの第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。第4の残差ブロック518Fの第3のサブブロックのプーリング出力もまた、入力(522F)として階層3内のユニット1にさらに提供され得る、階層3ユニット1残差4の組み合わせられた出力(520F)として上記に説明される組み合わせられた出力(516F)と組み合わせられてもよい。
ユニット1と同様に、ユニット2もまた、第1のベースブロック554Fと、第1の残差ブロック(556F)と、第2の残差ブロック(560F)と、第3の残差ブロック(564F)と、第4の残差ブロック(568F)とを含む。
階層3内のユニット2のベースブロック554Fは、3つのサブブロックを含む。第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。第1のサブブロックは、階層3内のユニット2のベースブロックの第1のサブブロックへの入力としてユニット1から連結出力(522F)を受信する。階層3内のユニット2のベースブロック内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット2の第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。
第1の残差ブロック556Fもまた、3つのサブブロックを有する。第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。ベースブロック554Fの出力は、入力として第1のサブブロックに提供される。第1のサブブロックは、階層3内のユニット2の第1の残差ブロック556Fの第1のサブブロックへの入力としてベースブロック554Fの第3のサブブロックから出力を受信する。階層3内のユニット2の第1の残差ブロック556F内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。階層3内のユニット2の第1の残差ブロック556F内の第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット2の第1の残差ブロック556Fの第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。
第1の残差ブロック556Fのプーリング出力は、ベースブロック554Fのプーリング出力と組み合わせられ、階層3ユニット2の組み合わせられた出力(558F)を形成し、階層3内のユニット2の第2の残差ブロック560Fに入力を提供してもよい。第2の残差ブロック560Fもまた、第1の残差ブロック(556F)のように、3つのサブブロックを有してもよい。
より具体的には、第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。ベースブロック554Fおよび第1の残差ブロック556Fの両方から組み合わせられた出力(558F)が、入力として第2の残差ブロックの第1のサブブロックに提供されてもよい。階層3内のユニット2の第2の残差ブロック560F内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。第2の残差ブロック560F内の第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット2の第2の残差ブロック560Fの第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。第2の残差ブロック560Fの第3のサブブロックのプーリング出力もまた、階層3内のユニット2の第3の残差ブロック564Fにさらに提供され得る、階層3ユニット2残差2の組み合わせられた出力(562F)を形成するために、上記に説明される組み合わせられた出力(558F)と組み合わせられてもよい。
第2の残差ブロック510Fのプーリング出力は、階層3ユニット2残差2の組み合わせられた出力(562F)として組み合わせられた出力(558F)と組み合わせられ、階層3内のユニット2の第3の残差ブロック564Fに入力を提供してもよい。第3の残差ブロック564Fもまた、第1および第2の残差ブロックのように、3つのサブブロックを有してもよい。
より具体的には、第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。組み合わせられた出力(558F)および第2の残差ブロック560Fからのプーリング出力の両方から組み合わせられた出力(562F)が、入力として第3の残差ブロック564Fの第1のサブブロックに提供されてもよい。階層3内のユニット1の第3の残差ブロック564F内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。第3の残差ブロック564F内の第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット2の第3の残差ブロック564Fの第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。第3の残差ブロック564Fの第3のサブブロックのプーリング出力もまた、階層3内のユニット2の第4の残差ブロック568Fにさらに提供され得る、階層3ユニット2残差3の組み合わせられた出力(566F)として上記に説明される組み合わせられた出力(562F)と組み合わせられてもよい。
第3の残差ブロック564Fのプーリング出力は、階層3ユニット2残差3の組み合わせられた出力(566F)として組み合わせられた出力(562F)と組み合わせられ、階層3内のユニット2の第4の残差ブロック568Fに入力を提供してもよい。第4の残差ブロック568Fもまた、第1、第2、および第2の残差ブロックのように、3つのサブブロックを有してもよい。
より具体的には、第1のサブブロックは、1×1畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。整流線形ユニットが、第1のサブブロック内のスケール層に続く。組み合わせられた出力(562F)および第3の残差ブロック564Fからのプーリング出力の両方から組み合わせられた出力(566F)が、入力として第4の残差ブロック568Fの第1のサブブロックに提供されてもよい。階層3内のユニット2の第4の残差ブロック568F内の第2のサブブロックは、3×3畳み込み層を含み、バッチ正規化層が続き、スケール層がさらに続く。別の整流線形ユニットが、第2のサブブロック内のスケール層に続く。第4の残差ブロック568F内の第2のサブブロックは、第2のサブブロックへの入力として第1のサブブロックの出力を受信する。階層3内のユニット1の第4の残差ブロック568Fの第3のサブブロックは、第3のサブブロック内の1×1畳み込み層を除いて、第2のサブブロックと同一の成分を有し、第3のサブブロックへの入力として第2のサブブロックから出力を受信する。第4の残差ブロック518Fの第3のサブブロックのプーリング出力もまた、階層3連結出力(572F)を形成するために、階層3ユニット1残差4の組み合わせられた出力(520F)とさらに連結され得る、階層3ユニット1残差4の組み合わせられた出力(570F)として上記に説明される組み合わせられた出力(566F)と組み合わせられてもよい。
上記に説明される図5A-5Eから分かり得るように、いくつかの実施形態は、種々のデータを組み合わせ、または連結し、ニューラルネットワーク内の種々のブロックに関する入力テンソルを形成する。いくつかの従来のアプローチと異なり、いくつかの実施形態は、算出を低減させるために、入力テンソルを中間特徴テンソルまたは出力と連結しない。入力テンソルを中間特徴テンソルと連結しない別の理由は、多くの場合では、入力特徴テンソルが、大部分が冗長であり得、したがって、性能利得に寄与しないためである。本側面は、図5Fにより明確に図示される。図5Fに図示されるように、ユニット内のブロック(図5A-5Eを参照して上記に説明されるような複数のサブブロックを含む)は、そのプーリング出力をコンバイナに提供し、また、入力の第1の部分として次のブロックに提供する。コンバイナは、直前のブロックからのプーリング出力および次の先行するブロックからのプーリング出力を組み合わせ、組み合わせられたプーリング出力を形成してもよく、これは、入力の第2の部分として次のブロックにさらに提供される。
例えば、ユニット1ベースブロック504Fのプーリング出力は、第1の残差ブロック506Fへの入力の第1の部分として第1の残差ブロック506Fに、また、階層3ユニット1残差1結合508Fに提供される。階層3ユニット1残差1結合(508F)は、次いで、第1の残差ブロック506Fのプーリング出力をユニット1ベースブロック504Fのプーリング出力と組み合わせる。また、ユニット1の第2の残差ブロック510Fのプーリング出力は、階層3ユニット1残差2結合(512F)に提供され、これは、順に、第2の残差の組み合わせられた出力として、ユニット1の第2の残差ブロック510Fのプーリング出力を階層3ユニット1残差1の組み合わせられた出力508Fと組み合わせる。
512Fにおける本第2の残差の組み合わせられた出力は、入力として第3の残差ブロック514Fに、また、階層3ユニット1残差3コンバイナ516Fに提供され、これは、第3の残差の組み合わせられた出力として、本第2の残差の組み合わせられた出力を階層3内のユニット1の第3の残差ブロック514Fのプーリング出力と組み合わせる。本第3の残差の組み合わせられた出力(516Fにおける)は、入力として第4の残差ブロック518Fに、また、階層3ユニット1残差4コンバイナ520Fに提供され、これは、第4の残差の組み合わせられた出力として、本第3の残差の組み合わせられた出力を階層3内のユニット1の第4の残差ブロック518Fのプーリング出力と組み合わせる。本第4の残差の組み合わせられた出力は、次いで、ユニット2への入力として使用され、これは、ユニット1と類似する組み合わせまたは連結を実施し、階層3ユニット2残差4の組み合わせられた出力(570F)を発生させ、これは、次いで、階層2連結出力(410A)と連結され、階層3連結出力572Fを形成する。
図6Aは、いくつかの実施形態における、本明細書に説明されるニューラルネットワーク内で使用され得る、1-3-1畳み込みモジュール、ブロック、またはサブブロックのセットの簡略化実施例を図示する。いくつかの実施形態では、図6Aは、1×1畳み込み層602Aを含み、グループ化畳み込み604Aを伴う3×3グループ化畳み込み層(図6AのG畳み込み)が続き、1×1畳み込み層がさらに続く、ラダー畳み込み構造を図示する。そのような1-3-1畳み込みモジュール、ブロック、またはサブブロックのいくつかの実施例は、図5A-5Fを参照して上記に説明される階層3のユニット1またはユニット2内のベースブロックおよび残差ブロックまたは図4A-4Bを参照して上記に説明される階層2内のユニット2の第2のユニット404Bを含んでもよい。
図6Bは、いくつかの実施形態における、本明細書に説明されるニューラルネットワーク内で使用され得る、1-3-1畳み込みモジュールまたは層のセットを有する、残差ブロックの簡略化実施例を図示する。より具体的には、図6Bは、1×1畳み込み層602Bを含み、3×3グループ化畳み込み層604Bが続き、1×1畳み込み層がさらに続く、ラダー残差ブロックまたはサブブロックを図示する。そのような1-3-1残差ブロックまたはサブブロックのいくつかの実施例は、図5A-5Fを参照して上記に説明される階層3のユニット1またはユニット2内の残差ブロックを含んでもよい。これらの残差ブロックは、大きい深層学習ネットワークを訓練するためにフィードフォワードニューラルネットワーク内で使用される逆伝搬の間の情報フローを改良するために、階層3内で使用される。より精密には、これらの残差ブロックは、入力を順伝搬し、出力を計算し、誤差または損失を逆伝搬し、ニューラルネットワークを訓練するために使用される。これらの残差ブロックは、階層1の後の並列算出を低減させるために、例えば、64個のチャネルと協働するように考案される。加えて、または代替では、階層3は、入力内の大きいオブジェクトを捕捉するために、ニューラルネットワークの受容フィールドを増加させるために、異なる拡張係数を伴う拡張された畳み込みを採用する。例えば、ベースブロック、第1の残差ブロック、第2の残差ブロック、第3の残差ブロック、および第4の残差ブロックは、それぞれ、0(ゼロ)、1(1)、2(2)、3(3)、および4(4)の拡張係数に対応してもよい。拡張係数の異なる組み合わせを伴う他の拡張スキームもまた、使用され得ることに留意されたい。
さらに、階層3は、いくつかの実施形態では、算出を低減させるために、グループ化係数を伴うブロック(例えば、図5A-5Fを参照して上記に説明されるブロックおよび/またはサブブロック)においてグループ化畳み込みを採用してもよい。階層2もまた、グループ化畳み込みを採用する、これらの実施形態のうちのいくつかでは、階層2のグループ化係数は、階層3のものと異なってもよい。いくつかの実施形態では、階層2は、4のグループ化係数を採用してもよく、階層3は、8のグループ化係数を採用してもよい。いくつかの実施形態では、階層1は、最大プーリング層を採用するが、グループ化畳み込みを採用しない。他のグループ化係数もまた、使用され得ることに留意されたい。
いくつかの実施形態では、グループの数(例えば、グループ化係数によって統御される)は、上記に解説されるような畳み込みが、チャネル毎の演算(例えば、チャネル毎の畳み込み)であるため、チャネルの数に等しくなるように考案される。また、チャネル毎の畳み込み(深度毎の畳み込みとしても公知である)は、チャネル毎の畳み込みが、チャネルの数に等しいグループ化係数を伴うグループ化畳み込みであるため、グループ化畳み込みの特殊なインスタンスである。これらの実施形態では、畳み込み層は、ベクトルレジスタ利用を強化するように、グループあたりのフィルタの数が、レジスタレーンの数の倍数であるようにグループ化されてもよい。グループ化畳み込みが、いくつかの望ましくない効果(例えば、いくつかの特徴点が、訓練することができない)を引き起こす、いくつかの実施形態では、これらの実施形態は、訓練を安定させ、訓練のためのより良好な勾配フローを促進するために、異なる空間分解能を伴う付加的特徴点教師ヘッドを追加してもよい。さらなる詳細が、例えば、図9A-9Fを参照して下記に説明されるであろう。
いくつかの実施形態では、ニューラルネットワークは、エンコーダ-デコーダアーキテクチャ(例えば、図6G)を表し、手が、特徴点のセットを用いて標識化され、ニューラルネットワークは、手姿勢を予測または決定するために、セット内の特徴点の第1のサブセットを予測し、教師を訓練するために、特徴点の第2のサブセット(特徴点のセット内の残りの特徴点)を使用する。例えば、手は、図1に図示されるように、番号1-番号17の17(17)個の特徴点を用いて標識化されてもよい。17個の特徴点の本セットは、ネットワークが、訓練教師として特徴点の補助的セットを使用しながら、特徴点の主要セットに関する予測を発生させるように、特徴点の主要セット(例えば、影付き標識1、2、4、5、6、7、10、および17)および特徴点の補助的セット(例えば、非影付き標識3、8、9、11、12、13、14、15、および16)としてカテゴリ化される。これらの実施形態のうちのいくつかは、浮動的な特徴点、手から飛び出す特徴点等の問題を回避し、エンコーダの後に特徴テンソルを正則化するために、ネットワークのデコーダ部分に関する畳み込みにおいてグループ化を採用しない。
図6Cは、いくつかの実施形態における、本明細書に説明されるニューラルネットワーク内で使用され得る、図6Bに図示される4つの残差モジュールを有するブロックの簡略化実施例を図示する。より具体的には、図6Cは、個別の異なる拡張係数を伴う複数のブロックを有する、例示的な拡張されたラダーユニットを図示する。例えば、拡張されたラダーユニットは、1の拡張係数に対応する第1の1-3-1残差ブロック602Cと、グループ化畳み込みを有し、2の拡張係数に対応する第2の1-3-1残差ブロック604Cと、3の拡張係数に対応する第3の1-3-1残差ブロック606Cと、4の拡張係数に対応する第4の1-3-1残差ブロック608Cとを含んでもよい。他の拡張係数もまた、いくつかの他の実施形態において使用され得ることに留意されたい。
図6Dは、いくつかの実施形態における、複数のブロックを備える、ユニットの簡略化実施例を図示する。図6Dは、本開示の名称の使用を提示する。参照して上記にすでに説明されたように、例えば、ネットワークは、複数の階層を含んでもよく、階層は、1つ以上のユニットを含んでもよい。図6Dに図示されるように、ユニット600Dは、1つ以上のブロックを含んでもよい。600Dに図示される例示的ユニット600Dでは、本ユニット600Dは、複数のブロック、すなわち、602Dと、604Dと、606Dとを含む。ブロックは、1つ以上のサブブロック、モジュール、または層を含んでもよい。例えば、上記に説明される残差ブロックは、畳み込み層と、バッチ正規化層と、スケール層と、整流線形ユニットとを含んでもよい。いくつかの実施形態では、モデル604Dは、図6Aまたは6Bを参照して上記に説明されるものと類似する様式でグループ化畳み込みを採用してもよい。
図6Eは、いくつかの実施形態における、複数のユニット間で複数の入力および/または出力を連結する簡略化実施例を図示する。より具体的には、図6Eは、入力602Eがユニット1 604Eに提供される実施例を図示する。入力602Eは、連結モジュール612Eにおいてユニット1(604E)の出力とさらに連結される。612Eの後の本連結出力は、ユニット2 606Eへの入力として提供される。同様に、ユニット2(606E)の出力は、例えば、連結モジュール614Eにおいて入力602Eおよび/またはユニット1(604E)の出力と連結され、本連結された結果は、ユニット3(608E)への入力として提供され、ユニット3(608E)の出力は、例えば、連結モジュール616Eにおいて入力602E、ユニット2(606E)の出力、および/またはユニット3(608E)の出力と連結され、3つの例示的ユニットを有する図示されるネットワークに関する出力610Eを発生させる。
いくつかの他の実施形態では、連結(例えば、612E、614E、または616E等)は、漸進的であってもよい。すなわち、これらの実施形態は、図6Eに示されるような二次数の連結モジュールを必要としない。むしろ、ユニットK+1への入力は、ユニットの出力と連結されたユニットへの以前に連結された入力を含んでもよい。これらの実施形態のうちのいくつかでは、初期入力は、階層の最終出力から隠されてもよい。これらの実施形態では、出力は、初期入力と、ともに、図6Eに図示される全てのユニットの出力との連結である出力と異なる。むしろ、初期入力は、連結出力610Eから隠され、それに寄与しない。また、(i+1)番目の連結(例えば、616E)は、いくつかの実施形態では、最初から全ての以前の連結を再実施するのではなく、(i)番目の連結(例えば、614E)を拡大する。
いくつかの実施形態では、プーリングが、実施され、次いで、ユニット出力を連結し、プーリングが、チャネル毎に独立して実施され、さらに、プーリングおよび連結が、これらの実施形態では可換であるため、算出をさらに節約し得る。マルチスレッド環境では、連結は、全てのユニットがそれらの個別の処理を完了することを待機するのではなく、任意のユニットがその処理を完了する際、直ちに開始され得る。いくつかの実施形態では、602Eから生じるデータテンソルの初期部分は、出力を発生させる。
図6Fは、いくつかの実施形態における、複数の階層を有する、エンコーダの簡略化概略実施例を図示する。図6Eは、本開示の名称の使用を提示する。参照して上記にすでに説明されたように、例えば、ネットワークは、複数の階層を含んでもよく、階層は、1つ以上のユニットを含んでもよい。図6Fに図示されるように、エンコーダ600Fは、1つ以上の階層を含んでもよい。600Fに図示される例示的エンコーダ600Fでは、本エンコーダ600Fは、複数の階層、すなわち、602Fと、604Fと、606Fとを含む。階層は、1つ以上のユニットを含んでもよく、ユニットは、1つ以上のブロックを含んでもよく、ブロックは、1つ以上のサブブロック、モジュール、または層を含んでもよい。
図6Gは、いくつかの実施形態における、それぞれ、1つ以上のブロックの1つ以上のユニットを有する、複数の階層を備える、ネットワークアーキテクチャの簡略化概略実施例を図示する。より具体的には、図6Gは、空間情報を保全し、受容フィールドを強化しながら、コンピュータビジョンのマルチタスク深層学習を伴うニューラルネットワークを用いて入力画像602Gに関する意味論的セグメンテーションを訓練、検証、および/または試験するためのエンコーダ-デコーダアーキテクチャのネットワーク600Gを図示する。例示的ネットワークアーキテクチャは、例えば、VR、AR、MR、またはXRデバイス等のウェアラブルデバイスを含む、モバイル電子デバイス内に埋込され得る、軽量ネットワークである。
本明細書に説明される埋込実装は、より大きいシステム内に専用機能を有する、プロセッサ(例えば、VPUまたはビジョン処理ユニット)、コンピュータメモリ、および入力/出力デバイスの組み合わせを含む。いくつかの実施形態では、本明細書に説明される埋込実装は、ウェアラブル電子デバイス等のモバイルコンピューティングデバイス内に本明細書に説明されるニューラルネットワークまたはその少なくとも一部の実装を含む。埋込実装は、ある形態のメモリ(例えば、EPROM、RAM等)において、ASIC(特定用途向け集積回路)、システムオンチップ(SoC)、FPGA(フィールドプログラマブルゲートアレイ)、コンポーネントおよびデバイスを伴う小型コンピュータ基板、またはそれらの任意の組み合わせ等のカスタムIC(集積回路)としてニューラルネットワークの種々のモジュール、層、ブロック等を実装するステップを含んでもよい。
ウェアラブル電子デバイス(例えば、MRまたはXRデバイス)に関して、最小化は、従来の実装に対する、克服できないとは言えないまでも、困難な課題に相当する。例えば、深層学習フレームワークは、多くの場合、算出および/または記憶タスクおよび電力消費に関して十分な容量を提供するためのコンポーネントを収容するための限定空間を有するウェアラブル電子デバイスにとって好適ではない、非常にメモリ効率が低い様式で畳み込みを1つ以上の大きい行列乗算に変換する。別の課題は、画像からの入力データテンソルが、多くの場合、ベクトル化のために非効率的であるチャネル平面フォーマットにおいて記憶されることである。また、カーネルサイズは、多くの場合、ベクトル命令幅の倍数ではなく、拡張された畳み込みの既製の実装は、かなりの算出オーバーヘッドを有する。
少なくとも前述の課題に対処するために、本明細書に説明されるいくつかの実施形態は、入力データチャネルを各畳み込み層に再順序付けし、インターリーブし、ベクトル命令順序付けと整合させる。より具体的には、これらの実施形態は、畳み込みがドット積に低減され、出力チャネルが次の層に関してインターリーブされたフォーマットにおいてエンコードされるように、カーネルスタックを同時に再順序付けする。これらの実施形態はさらに、グループあたりのフィルタの数が、レジスタレーンの倍数に等しく、したがって、ベクトルレジスタ利用を最大限にするように、畳み込み層をグループ化する。加えて、または代替では、いくつかの実施形態は、拡張された畳み込みのために櫛型設計を使用し、櫛型設計は、オンチップメモリフットプリントを最小限にする。層が、これの上方または下方の別の層にある逐次的または階層的方法で相互作用する、1つ以上の機能的コンポーネントの別個のセットであることに留意されたい。
いくつかの実施形態では、本例示的ネットワークアーキテクチャ内の全ての層、ブロック、モジュール、コンポーネント等は、例えば、ランタイムにおいて好都合な推論時間を促進するために遠隔コンピューティングデバイス(例えば、クラウドサービス)を利用することと比較したとき、そのような目的のためにコンピューティングデバイス(例えば、ウェアラブルデバイス)内に完全に埋込されてもよい一方、いくつかの他の実施形態では、層、ブロック、モジュール、コンポーネント等のうちの全てではないが、いくつかが、コンピューティングデバイス内に埋込される。短い待ち時間を伴うニューラルネットワークからの好都合な推論時間は、例えば、自動車用途(例えば、自律運転車両)、VR/AR/MR/XRデバイスの手姿勢追跡、推定、予測、および/または認識等におけるコンピュータビジョン用途にとって重要である。
いくつかの実施形態は、コンピューティングデバイス内にニューラルネットワークを訓練することに関連する殆どの層、ブロック、モジュール、コンポーネント等を埋込する。例えば、2の拡張係数を伴う畳み込みが、4つの独立したフィールド毎の算出(例えば、偶数行-偶数列、偶数行-奇数列、奇数行-偶数列、および奇数行-奇数列)に分割されてもよい。これらの4つの独立したフィールド毎の算出は、本明細書に説明される種々の層内に採用される拡張畳み込みが、低減された、最小の、またはさらにはゼロの有効オーバーヘッドにおいて実施され得るように、独立して算出され、出力に応じて再組み合わせされる。
例えば、エンコーダ(主要エンコーダ層1(604G)、主要エンコーダ層2(606G)、および主要エンコーダ層3(606G))、アップサンプラ(610G、612G、および614G)、および1つ以上のデコーダモジュール(例えば、可視性デコーダ640G、特徴姿勢デコーダ642G、および/または配向デコーダ644G)は、コンピューティングデバイス内に埋込されてもよい一方、他のモジュール(例えば、補助的特徴点デコーダ638Gおよび補助的エンコーダ636G)および損失(例えば、セグメンテーション損失630G、バイナリ交差エントロピ損失628G、補助的特徴点損失626G、深層教師あり損失618G、特徴姿勢分類損失622G、カテゴリ配向損失624G、および加重特徴点およびセグメンテーション損失620G)は、主として、訓練の間に使用されるが、コンピューティングデバイス上に埋込されず、コンピューティングデバイスとともに展開される。参照番号632Gは、注意精緻化モジュールを表し、参照番号616Gは、1×1畳み込みを表す。
いくつかの実施形態では、ニューラルネットワークは、推論時間において左および/または右手に関するバイナリセグメンテーションマスクを予測する一方、いくつかの他の実施形態は、推論時間において左および/または右手に関するバイナリセグメンテーションマスクを予測する。これらの後者の実施形態は、左および/または右手に関するバイナリセグメンテーションマスクを予測するために、2つのチャネル(例えば、614Gにおけるアップサンプリングされた特徴出力の最後の2つのチャネル)を保留してもよい。訓練時間において、セグメンテーションを予測する訓練時間のみの補助的空間ブランチに加えて、セグメンテーション損失がまた、例えば、614Gの出力のこれらの2つのチャネルに適用されてもよい。すなわち、ランタイムセグメンテーションチャネルが、いくつかの実施形態では、有効にされる、またはいくつかの他の実施形態では、無効にされてもよい。
加えて、または代替では、これらの後者の実施形態は、各チャネルがヒートマップとして解釈され得る、32個のチャネルを伴うデータテンソルを生成してもよい。例えば、これらの実施形態は、これらの最初の30個のチャネルを手あたり15個のチャネル(例えば、左手に関する15個のチャネルおよび右手に関する15個のチャネル)に分割し、これらのチャネル毎に独立して空間的ソフトマックスを使用し、特徴点(例えば、チャネル毎に予測された特徴点)がヒートマップとして解釈されるチャネルのargmaxまたは代替として、soft-argmaxであり得ることを予測することを学習してもよい。いくつかの実施形態では、各チャネルは、異なる特徴点に対応してもよい。これらの実施形態では、2つの保留されたチャネルは、それぞれ、左および右手に関する左および右バイナリセグメンテーションマスクに対応してもよい。さらに、補助的空間ブランチと異なり、これらのセグメンテーション予測は、これらのセグメンテーション予測が、モデルのサイズまたは算出のいずれかを殆ど追加し得ないため、ランタイム推論ネットワークのために留保されてもよい。
図6Hは、いくつかの実施形態における、複数の種々の層を有する、ブロックの簡略化実施例を図示する。より具体的には、図6Hは、図6Gの参照番号632Gとしても参照される、注意精緻化層またはブロック632Hの実施例を図示する。注意精緻化ブロックは、速度の損失を伴わずに、推論モデルを用いた予測においてより良好な正確度を提供し得る。注意精緻化ブロック632Hは、プーリング層602H(例えば、グローバル平均プーリング層、最大プーリング層等)において入力を受信し、出力特徴(例えば、エンコーダ層からの出力特徴)を注意ベクトルにエンコードしてもよい。
出力ベクトルは、元の入力が、注意ベクトルによって再加重され得るように、畳み込み層604H(例えば、1×1畳み込み層)、バッチ正規化層606H、および活性化層608H(例えば、整流線形ユニット、シグモイド活性化層、双曲線正接またはtanh活性化層等)に提供されてもよい。図6Hに図示されるような注意精緻化モジュールは、コンテキスト情報(例えば、グローバルコンテキスト情報)を捕捉し、ニューラルネットワークの予測を精緻化し、複雑なアップサンプリング演算を伴わずに、より正確な意味論的セグメンテーションを提供することを可能にする。図6Gに図示される例示的ニューラルネットワーク600Gでは、階層2(主要エンコーダ層2 606G)出力および階層3(主要エンコーダ層3 608G)出力は、それぞれ、それらの個別の出力を精緻化するために、それらの対応する注意精緻化モジュール632Gに提供される。608Hからの精緻化された出力および元の入力は、例えば、乗算器610Hに提供され、これは、テンソル演算を実施し、最終的に、注意精緻化モジュール632Hからの出力を提供する。
図6Iは、いくつかの実施形態における、複数のモジュールまたは層を有する、特徴融合ブロックの簡略化実施例を図示する。いくつかの実施形態は、空間情報を保全し、コンピュータビジョンのための受容フィールドを増加させるために、空間パスを採用する、意味論的セグメンテーションニューラルネットワークを対象とする。これらの実施形態は、空間パスおよびコンテキストパスの特徴を融合する、特徴融合モジュールを含む。コンテキストパスが、高レベル情報と見なされるコンテキスト情報(例えば、グローバルコンテキスト情報)をエンコードする一方、空間パスが、低レベル情報と見なされる詳細情報をエンコードすることに留意されたい。そのような高レベルコンテキスト情報および低レベル空間情報は、単純にともに合計されることができない。特徴融合モジュールは、空間パスおよびコンテキストパスからの特徴出力を連結し、バッチ正規化を使用し、これらの特徴のスケールを平衡させる。特徴融合モジュールは、次いで、連結された特徴を特徴ベクトルにプールし、加重ベクトルを算出し、特徴選択および組み合わせのために特徴を再加重する。特徴融合モジュールは、空間パスおよびコンテキストパスから特徴または特徴マップを受信し、個別の特徴/特徴マップを連結する(616I)。
空間パスおよびコンテキストパスからの連結出力はまた、畳み込み層を有し、バッチ正規化層が続き、整流線形ユニットがさらに続く、ブロック618Iに転送される。618Iにおけるバッチ正規化層は、空間パスおよびコンテキストパスからの特徴のスケールを平衡させる。連結演算616Iは、特徴マップのサイズが変化すると、実行可能ではない場合がある。いくつかの実施形態では、畳み込みニューラルネットワークの一部は、特徴マップのサイズを変化させるダウンサンプリング層である。ニューラルネットワークアーキテクチャにおけるダウンサンプリングを促進するために、いくつかの実施形態は、ニューラルネットワークを複数の高密度に接続された高密度ブロックに分割する。
より具体的には、空間パスおよびコンテキストパスからの特徴はまた、プーリング層602I(例えば、最大プーリング層、グローバル平均プーリング層、アトラス空間ピラミッドプーリング等)に送信される。プーリング層602I出力は、1×1畳み込み層604Iに送信され、これは、1×1フィルタを入力に適用する。1×1畳み込み層出力は、整流線形ユニット606Iに送信され、これは、活性化として整流線形関数を適用する。整流線形ユニット606Iの出力は、1×1畳み込み層608Iに転送され、これは、別の1×1フィルタ行列を入力に適用する。
1×1畳み込み層604Iおよび1×1畳み込み層608Iにおける1×1フィルタ行列の繰り返される適用は、これらの畳み込み層への入力において検出された特徴の場所および強度を示す、特徴マップとも呼ばれる活性化のマップをもたらす。1×1畳み込み層608Iの出力は、別の活性化層610Iに送信される。活性化層において適用される活性化関数は、活性化層610Iへの入力を、入力に関する出力の活性化に変換する。整流線形関数、双曲線関数(tanh)、シグモイド等の種々の活性化関数が、610Iにおいて採用されてもよい。活性化層610Iの出力およびブロック619からのものは、612Iにおいて結合(例えば、ドット積におけるように乗算)され、614Iにおいて合計される。図6Iに図示される特徴融合モジュールでは、コンテキストパスおよび空間パスからの特徴は、特徴ベクトルにさらに処理される連結された特徴に連結され、特徴融合モジュールはさらに、加重ベクトルを算出し、これは、次いで、特徴を再加重するために使用され、これは、特徴選択および組み合わせに相当する。
図7Aは、いくつかの実施形態における、空間情報を保全し、コンピュータビジョンのための受容フィールドを強化する間のマルチタスク深層学習およびニューラルネットワークを用いた意味論的セグメンテーションの高レベル概略ブロック図を図示する。図7Aに図示されるニューラルネットワークは、空間パス750Aと、コンテキストパス752Aとを含み、したがって、バイラテラル意味論的セグメンテーションニューラルネットワークと呼ばれ得る。空間パス750Aは、図3、4A-4B、5A-5F、および6Gに図示されるネットワークによって処理されてもよい。ニューラルネットワークの複雑性に起因して、図7Aは、単に、3つの階層、すなわち、702A、704A、および706Aを示す。
これらの3つの階層702A、704A、および706Aの幅が、個別の空間サイズを示すことに留意されたい。前述のネットワークを用いて発生された空間パスは、豊富な詳細情報をエンコードすることによって空間情報を保全する一方、コンテキストパスは、コンピュータビジョンのための大きいオブジェクトを適応させるための受容フィールドを増加させるために利用される。
いくつかの実施形態では、階層1 702Aは、階層1の後の並列算出を低減させるために、16個のチャネルを使用するが、グループ化畳み込みを採用せず、階層2 704Aは、階層2の後の並列算出を低減させるために、32個のチャネルを使用する。階層2 704Aはさらに、算出を低減させるために、グループ化係数を伴うグループ化畳み込みを採用する。いくつかの実施形態では、階層2 704Aは、算出を低減させるために、2(2)のグループ化係数を採用する。いくつかの実施形態では、階層3 706Aは、並列算出を低減させるために、64個のチャネルを使用し、また、算出を低減させるために、グループ化係数を伴うグループ化畳み込みを使用する。一実施形態では、階層3 706Aは、算出を低減させるために、8(8)のグループ化係数を使用する。
コンテキストパス752Aは、入力716Aを受信し、4分の1ダウンサンプリング(708A)を実施する。4分の1ダウンサンプリング(708A)の出力は、8分の1ダウンサンプリング(710A)に転送され、12分の1ダウンサンプリング(712A)が続く。16分の1ダウンサンプリング層712Aの出力は、32分の1ダウンサンプリング(714A)および注意精緻化層(720A)に提供される。32分の1ダウンサンプリング層(714A)の出力はまた、上記に説明され、図6Hに図示される、別の注意精緻化層(720A)に提供される。これらの2つの注意精緻化層(720A)の出力は、結合され、上記に説明され、図6Iに図示されるような特徴融合層(716A)に提供され、特徴融合層716Aは、出力718Aを発生させる。
図7Bは、いくつかの実施形態における、3×3受容フィールドを有する、1(1)拡張された畳み込みの簡略化実施例を図示する。より具体的には、図7Bは、拡張が、分解能または被覆率の損失を伴わずに受容フィールドの指数関数的拡大をサポートすることを図示する。図7Bの各要素(円形ドット)は、3×3の受容フィールドを有し、各層と関連付けられるパラメータの数は、1拡張された畳み込みと同じである。
図7Cは、いくつかの実施形態における、図7Bの1拡張された畳み込みから生成され、2拡張された畳み込みに起因する7×7受容フィールドを有する、2(2)拡張された畳み込みの簡略化実施例を図示する。図7Dは、いくつかの実施形態における、図7Cの2拡張された畳み込みから生成され、3拡張された畳み込みに起因する11×11受容フィールドを有する、3(3)拡張された畳み込みの簡略化実施例を図示する。図7Eは、いくつかの実施形態における、図7Dの2拡張された畳み込みから生成され、4拡張された畳み込みに起因する15×15受容フィールドを有する、4(4)拡張された畳み込みの簡略化実施例を図示する。図7B-7Eから分かり得るように、受容フィールドは、指数関数的に増加するサイズの正方形である。すなわち、各要素の個別のフィールドは、(2i+1-1)であり、式中、i=1,2,3,…,nであり、iは、拡張係数を示す。
図8Aは、いくつかの実施形態における、XR眼鏡の外部にベルトパックを伴うウェアラブルXRデバイスの簡略化実施例を図示する。より具体的には、図8Aは、光学サブシステム802Aと、処理サブシステム804Aとを含み、パーソナル拡張現実システムの複数のインスタンス、例えば、ユーザのための個別のパーソナル拡張現実システムを含み得る、ユーザウェアラブルVR/AR/MR/XRシステムの簡略化実施例を図示する。本明細書に説明されるニューラルネットワークのうちのいずれかが、ウェアラブルXRデバイス内またはその上に全体的または部分的に埋込されてもよい。例えば、本明細書に説明されるニューラルネットワークのうちのいくつかまたは全ておよび他の周辺機器(例えば、ToFセンサ)が、処理サブシステム804Aのみの上に埋込される、光学サブシステム802Aのみの上に埋込される、または処理サブシステム804Aと光学サブシステム802Aとの間に分散されてもよい。
VR/AR/MR/XRシステムのいくつかの実施形態は、仮想コンテンツをユーザの眼に配信する、光学サブシステム802A、および関連する仮想コンテンツをユーザに提示するために多数の処理タスクを実施する、処理サブシステム804Aを備えてもよい。処理サブシステム804Aは、例えば、ベルトパックの形態をとってもよく、これは、使用の間にズボンのベルトまたはベルトラインに便宜的に結合されることができる。代替として、処理サブシステム804Aは、例えば、携帯情報端末またはスマートフォンタイプデバイスの形態をとってもよい。
処理サブシステム804Aは、1つ以上のプロセッサ、例えば、1つ以上のマイクロコントローラ、マイクロプロセッサ、グラフィカル処理ユニット、デジタル信号プロセッサ、特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ、プログラマブル論理回路、または論理を具現化するか、またはソフトウェアまたはファームウェアにおいてエンコードされた命令において具現化される論理を実行することが可能であるかのいずれかである他の回路を含んでもよい。算出コンポーネント804Aは、1つ以上の非一過性コンピュータまたはプロセッサ可読媒体、例えば、揮発性および/または不揮発性メモリ、例えば、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、スタティックRAM、ダイナミックRAM、フラッシュメモリ、EEPROM等を含んでもよい。
処理サブシステム804Aは、頭部装着コンポーネントに通信可能に結合されてもよい。例えば、処理サブシステム804Aは、適切なコネクタを伴うケーブルを介して、1つ以上のワイヤまたは光ファイバを介して頭部装着コンポーネントに通信可能に繋留されてもよい。処理サブシステム802Aおよび光学サブシステム804Aは、種々のテザープロトコル、例えば、UBS(登録商標)、USB2(登録商標)、USB3(登録商標)、Ethernet(登録商標)、Thunderbolt(登録商標)、Lightning(登録商標)プロトコルのうちのいずれかに従って通信してもよい。
代替として、または加えて、処理サブシステム804Aは、頭部装着コンポーネントに無線で通信可能に結合されてもよい。例えば、処理サブシステム804Aおよび光学サブシステム802Aは、それぞれ、送信機、受信機、または送受信機(集合的に、無線)、および関連付けられるアンテナを含み、それらの間の無線通信を確立してもよい。無線およびアンテナは、種々の形態をとってもよい。例えば、無線は、短距離通信が可能であってもよく、BLUETOOTH(登録商標)、WI-FI(登録商標)、またはあるIEEE 802.11準拠プロトコル(例えば、IEEE 802.11n、IEEE 802.11a/c)等の通信プロトコルを採用してもよい。
図8Bは、いくつかの実施形態における、図8Aに図示されるベルトパックを伴うウェアラブルXRデバイス上のニューラルネットワークの埋込実装の簡略化実施例を図示する。上記に説明されるように、ニューラルネットワークのうちのいずれかが、コンピュータビジョンのための好都合な推論を促進するために、ハードウェアシステム(例えば、ウェアラブル電子システム)上に全体的または部分的に埋込されてもよく、本開示では、埋込実装と称されるであろう。図8Bに図示されるこれらの実施形態では、埋込実装は、例えば、1つ以上のアプリケーション820B(例えば、3Dブラウザ、VR/AR/MR/XRゲーム、仮想テレビ、仮想メディアプレーヤ、生産性アプリケーション等)と、本開示に説明されるニューラルネットワークのうちのいずれかであり得るニューラルネットワーク822Bとを含む、アプリケーションホスト818Bを含んでもよい。
埋込実装はさらに、ビジョン処理ユニット(VPU)802Bを含んでもよい。VPUは、種々のコンポーネントを含んでもよく、マシンビジョンまたはコンピュータビジョンタスクを高速化するように考案されるマイクロプロセッサである。VPU802Bのこれらの種々のコンポーネントは、例えば、人工知能(AI)アクセラレータの機能を果たす、ハードウェアアクセラレータ804Bを含んでもよい。ハードウェアアクセラレータ804Bは、いくつかの実施形態では、それ自体がコンピュータシステムである、またはいくつかの他の実施形態では、専用ハードウェアアクセラレータであってもよく、ニューラルネットワーク、マシンビジョン、機械学習、または任意の他のセンサ駆動またはデータ集約的タスク等の人工知能アプリケーションを高速化するように設計される。
ハードウェアアクセラレータ804Bは、1つ以上のRISC(縮小命令セットコンピュータ)プロセッサ806B、レベル2(L2)キャッシュ810B、メモリ814B(例えば、LPDDR3または低電力ダブルデータレート同期ダイナミックランダムアクセスメモリ-3)、およびメモリコントローラ812B(例えば、DDRまたはダブルデータレートメモリコントローラ)等の種々の他のコンポーネントに動作的に結合されてもよい。ビジョン処理ユニット802Bは、複数のスーパーハイビジョン(SHV)プロセッサ816B(図8Bに12個が図示される)を含む。スーパーハイビジョンプロセッサ812Bは、VLIW(超長命令語)ベクトルプロセッサを含んでもよく、VLIWは、命令レベルの並列性(ILP)を活用するように設計される、命令セットアーキテクチャを指す。ビジョン処理ユニット802Bは、したがって、中央処理ユニット(CPU)と区別可能であり、中央処理ユニットは、プログラムが、順序通りにのみ実行するように命令を規定することを可能にすることが殆どであるが、VLIWプロセッサは、プログラムが、並行して実行するように命令を明示的に規定することを可能にする。複数のSHVは、接続行列(CMX)808Bに動作的に結合され、これは、SHVと他のハードウェアコンポーネントとの間のシームレスな相互作用を可能にする。
ビジョン処理ユニットが、CNN(畳み込みニューラルネットワーク)、SIFT(スケール不変特徴変換)、および類似物等のマシンビジョンアルゴリズムを起動するためのそれらの適合性においてビデオ処理ユニット(ビデオエンコーディングおよびデコーディングのために特殊化される)と明確に異なることに留意されたい。VPUは、カメラからデータを取り込むための直接インターフェース(いかなるオフチップバッファも迂回する)を含み、メニーコアDSPのように、スクラッチパッドメモリを伴う多くの並列実行ユニットの間のオンチップデータフローをより強調し得る。しかし、ビデオ処理ユニットのように、それらは、画像処理に関して低精度の固定小数点演算に焦点を当て得る。VPUはまた、ラスタライゼーションおよびテクスチャマッピング(3Dグラフィックスに関して)のための専用ハードウェアを含み、そのメモリアーキテクチャが、オフチップメモリ内のビットマップ画像を操作する(ランダムアクセスパターンを用いてテクスチャを読み取り、フレームバッファを修正する)ために最適化される、GPU(グラフィック処理ユニット)と明確に異なる。
図8Cは、いくつかの実施形態における、図8Bに図示される埋込実装のいくつかの動作の高レベル例示的ブロック図を図示する。図8Bに図示されるこれらの実施形態では、入力データチャネルは、802Cにおいて、本明細書に説明されるニューラルネットワーク内の畳み込み層をベクトル命令順序付けと整合させるために、再順序付けされ、インターリーブされてもよい。さらに、畳み込み層は、804Cにおいて、レジスタレーンの数をフィルタグループの数と相関させるためにグループ化されてもよい。例えば、畳み込み層は、ベクトルレジスタ利用を増加させる、またはさらには最大限にするために、グループあたりのフィルタの数が、レジスタレーンの倍数(例えば、1倍、2倍等)になるようにグループ化されてもよい。
グループ化された畳み込み層を用いて、1つ以上の拡張係数(例えば、1、2、3、4等)における拡張された畳み込みが、806Cにおいて、メモリフットプリントを強化するために櫛型設計を用いて実施されてもよい。例えば、2(2)の拡張係数を伴う畳み込みが、4つの独立したフィールド毎の算出(例えば、偶数行-偶数列、偶数行-奇数列、奇数行-偶数列、および奇数行-奇数列)に分割されてもよい。これらの4つの独立したフィールド毎の算出は、相互から独立して、または並行して実行されてもよく、それらの個別の出力は、再組み合わせされてもよい。
図9Aは、いくつかの実施形態における、3つの例示的階層を有するニューラルネットワークにおけるいくつかの例示的動作の高レベル例示的ブロック図を図示する。より具体的には、図9Aは、ブロックの3つの階層およびニューラルネットワークのマルチタスク深層学習を用いた意味論的セグメンテーションに関する簡略化高レベル例示的ブロック図を図示する。いくつかの実施形態では、入力データセットが、902Aにおいて識別されてもよい。いくつかの実施形態では、1つ以上のグラウンドトゥルース画像もまた、902Aにおいて識別されてもよい。グラウンドトゥルース画像は、位相画像または深度画像のヒストグラム等化バージョンを含み、また、特徴点のセットを用いて標識化されてもよい。入力データセットは、904Aにおいて、少なくとも標識化および/またはオーギュメンテーションによって、変換された入力データセットに変換されてもよい。
いくつかの実施形態では、902Aにおいて識別された入力データセットは、1つ以上の画像を含んでもよく、1つ以上の画像は、例えば、位相画像、深度画像、RGB画像、グレースケール画像、振幅画像、またはそれらの任意の組み合わせを含んでもよい。上記に説明されるように、振幅画像は、複数の位相画像の組み合わせ(例えば、線形組み合わせ)を含んでもよい。入力データセットが、位相画像を含む、いくつかの実施形態では、位相画像は、例えば、1つ以上の飛行時間(ToF)センサによって捕捉されてもよい。いくつかの実施形態では、904Aにおける入力データセットを変換するステップは、後処理を使用して、および/または入力データセットを標識化して、位相画像を深度画像に転換または変換するステップを含んでもよい。
入力データセットを標識化する理由のうちの1つは、いくつかの実施形態では、標識化データを用いてニューラルネットワークを訓練すること、および/または訓練を監督することであるが、いくつかの他の実施形態がまた、非標識化データセットに対して自己教師あり訓練ヘッドを採用し得ることに留意されたい。また、画像の意味論的セグメンテーションは、概して、その対応するクラスを用いて画像内の各ピクセルを標識化するステップを伴う。逆畳み込みが続く畳み込みを採用する従来のアプローチと異なり、いくつかの実施形態は、したがって、特徴点を標識化し、拡張された畳み込みを適用し、高出力分解能を維持し、ニューラルネットワークからの出力が、アップサンプリングの必要性を回避しながら、入力と同一のサイズであることを確実にする。それらの従来のアプローチにおける逆畳み込みは、より多くのパラメータを導入し、したがって、メモリフットプリントおよび算出を増加させ、したがって、ウェアラブルデバイス上の埋込実装に関して不適当である。また、これらの実施形態は、拡張された畳み込みが、線形パラメータ増大に伴ってネットワークの受容フィールドを指数関数的に増加させる方法であり、したがって、より少ない費用でより広いコンテキストを提供するため、拡張された畳み込みを採用する。
904Aにおける入力データセットを標識化するステップは、例えば、画像を標識化するステップ、画像内の特徴点のセットを標識化するステップ、および/または補助的タスクを標識化するステップを含んでもよい。特徴点は、ニューラルネットワークが予測するための主要特徴点または訓練教師としての役割を果たす補助的特徴点として標識化されてもよい。図1に図示される実施例として、手の画像が、ニューラルネットワークが予測するための主要特徴点のセットと、教師を訓練するために使用される補助的特徴点のセットとを含む、17個の特徴点を用いて標識化されてもよい。いくつかの実施形態では、主要特徴点のセットは、8(8)つの特徴点を含み、補助的特徴点のセットは、残りの9(9)つの特徴点を含有する。
主要特徴点(例えば、ニューラルネットワークが予測するため)および補助的特徴点(例えば、訓練のため)の他の構成もまた、使用され得ることに留意されたい。例えば、主要特徴点の数は、8(8)個、15(15)個、または1つ以上の基準(例えば、算出費用、正確度要件、決定されるべき姿勢の複雑性等)または複数の基準(例えば、前述の基準)の平衡に基づいて決定され得る任意の他の数であってもよい。採用される補助的特徴点の数は、少なくとも部分的に、例えば、手あたりの標識化される特徴点の数およびニューラルネットワークによって予測される特徴点の数に基づいて決定されてもよい。本決定はまた、少なくとも部分的に、直上に説明される1つ以上の基準または複数の基準の平衡に基づいてもよい。いくつかの実施形態では、ニューラルネットワークは、手あたりの主要特徴点の数、手あたりの補助的特徴点の数、および/または手あたりの合計特徴点(主要特徴点+補助的特徴点)の数を調節するために使用され得る、構成インターフェースを提供する。
手あたりの特徴点の他の数もまた、使用され得、手あたりでより多くの特徴点を使用することが、より多くのコンピューティングリソース消費を犠牲にするが、正確度を増加させる、および/またはより複雑な手姿勢を可能にすることに留意されたい。特徴点は、したがって、(主要特徴点のための)主要標識または(補助的特徴点のための)補助的標識を用いて標識化されてもよい。いくつかの実施形態では、主要特徴点のセットおよびそれに関連する他の情報またはデータは、埋込実装において含まれてもよい一方、補助的特徴点のセットは、基礎となるニューラルネットワークの訓練を監督するために使用されるが、埋込訓練において含まれない、または展開されない。いくつかの実施形態では、ニューラルネットワークを用いて主要特徴点のセットを予測するステップは、本明細書に説明されるようなグループ化畳み込みを採用する。これらの実施形態では、補助的特徴点は、浮動的な特徴点または手から飛び出す特徴点等の問題を回避し、エンコーダの後の特徴テンソルを正則化するために、畳み込みグループ化を採用しない(例えば、図6G参照)。
画像はまた、いくつかの特徴姿勢クラスのうちの1つを用いて標識化されてもよい。ニューラルネットワークが、手姿勢を予測するために使用され、したがって、入力画像が、片手または両手の画像を成す、いくつかの実施形態では、入力画像は、いくつかの特徴姿勢クラスのうちの1つを用いて標識化されてもよい。これらの特徴姿勢クラスは、例えば、「オーケー」、「開いた手」、「つまむこと」、「C姿勢」、「握り拳」、「L姿勢」、「指さし」、「親指を立てること」、および「ダミー」を含んでもよい。「ダミー」クラスは、全ての他の特徴姿勢を捕捉し、1つ以上の新しい特徴姿勢の追加を伴う後続再標識化のために記憶されてもよい。加えて、または代替では、いくつかの実施形態は、手の回外(掌が前方または上向きに向くような前腕および手の回転)および回内(掌が後方または下向きに向くような手および前腕の回転)から生じ得る8(8)つのカテゴリの手配向を標識化する。これらの8つのカテゴリは、近似的であり得、標識は、したがって、例えば、手姿勢予測のためにこれらのタスクを訓練するために、交差エントロピ損失を使用することによって軟化されてもよい。
いくつかの実施形態では、入力データセットは、オーギュメンテーションによって変換されてもよい。オーギュメンテーションは、例えば、合成画像が、両手のジェスチャまたは動作であるように見えるように、左手の画像を右手の別の画像と合成するステップを含んでもよい。オーギュメンテーションはまた、手姿勢推定または予測を複数の異なる環境に汎化するために、訓練データセットを拡大するために、ディストラクタオブジェクトを含む1つを上回る背景画像を有する複数の画像を合成するステップを含んでもよい。変換された入力データセットは、次いで、908Aにおいて、訓練教師および複数の損失関数を用いてマルチタスク学習パラダイムにおけるニューラルネットワークを訓練するために使用されてもよい。ニューラルネットワークを訓練するステップについてのさらなる詳細が、下記に説明されるであろう。
図9Bは、いくつかの実施形態における、ニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図を図示する。より具体的には、図9Bは、ニューラルネットワークを用いた手姿勢追跡および予測に関するブロック図を図示する。これらの実施形態では、入力データセットが、上記の参照番号902Aを参照して説明されるものと実質的に類似する様式で、902Bにおいて識別されてもよい。特徴点のセットが、904Bにおいて決定されてもよい。特徴点のセットは、いくつかの実施形態では、特徴点の第1のサブセットと、特徴点の第2のサブセットとを含んでもよく、特徴点の第1のサブセットは、ニューラルネットワークによって予測されるべき特徴点を表し、特徴点の第2のサブセットは、ニューラルネットワークのための訓練教師として使用される特徴点を表す。
902Bにおいて決定された入力データセットは、上記の参照番号904Aを参照して説明されるものと同じまたは実質的に類似する様式で、906Bにおいて1つ以上の特徴姿勢クラスを用いて標識化されてもよい。いくつかの実施形態では、1つ以上の特徴姿勢クラスは、例えば、「オーケー」、「開いた手」、「つまむこと」、「C姿勢」、「握り拳」、「L姿勢」、「指さし」、「親指を立てること」、および「ダミー」を含んでもよい。「ダミー」クラスは、全ての他の特徴姿勢を捕捉し、1つ以上の新しい特徴姿勢の追加を伴う後続再標識化のために記憶されてもよい。
906Bにおいて標識化された入力データセットを用いて、手姿勢または特徴姿勢(手姿勢と同義的に使用される)推定または予測が、908Bにおいて、少なくとも入力データセットを拡大することによって、異なる環境に汎化されてもよい。入力データセットは、例えば、入力データセット内の1つを上回る背景画像内に少なくとも1つのディストラクタオブジェクトを有する複数の画像を、1つ以上の合成された付加的画像に合成することによって拡大されてもよい。1つ以上の補助的タスクが、910Bにおいて標識化されてもよい。補助的タスクのいくつかの実施例は、離散的手姿勢訓練タスク、カテゴリ配向訓練タスク、補助的エンコーダ層訓練タスク、可視性デコーダ層訓練、補助的特徴点デコーダ訓練タスク等を含む。いくつかの実施形態では、1つ以上の補助的タスクを標識化するステップは、上記に説明される特徴点標識化等の1つ以上の他のプロセスの副次的結果であってもよい。
ニューラルネットワークは、次いで、912Bにおいて特徴点の第1のサブセット内の特徴点を予測してもよい。ニューラルネットワークは、914Bにおいて、912Bにおいて発生された少なくとも複数のネットワーク予測および損失を使用することによって、マルチタスク学習パラダイムにおいて訓練されてもよい。ニューラルネットワークを訓練するステップについてのさらなる詳細が、下記に説明されるであろう。加えて、または代替では、訓練は、916Bにおいて、いくつかの実施形態では、訓練教師として特徴点の第2のサブセットを使用することによって監督されてもよい。ニューラルネットワークが訓練されると、ニューラルネットワークは、918Aにおいて、少なくとも空間パスおよびコンテキストパスの出力を融合することによって、例えば、画像捕捉デバイス(例えば、カメラ、ToFセンサ等)によって捕捉された手姿勢に関する予測を発生させるために使用されてもよい。空間パスおよびコンテキストパスについてのさらなる詳細が、図10A-10Bを参照して下記に説明される。
図9Cは、いくつかの実施形態における、図9Bに図示されるニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図の一部についてのさらなる詳細を図示する。より具体的には、図9Cは、図9Bの914Bにおけるニューラルネットワークを訓練するステップについてのさらなる詳細を図示する。いくつかの実施形態では、ニューラルネットワークは、902Cにおいて、少なくとも損失関数および逆伝搬を使用して、特徴点の第1のサブセット内の特徴点に関する予測を発生させてもよい。いくつかの実施形態では、1ホット標識または標的を伴う交差エントロピ損失が、902Cにおいて損失関数として使用されてもよい一方、他の実施形態は、平均二乗損失(MSE)関数層等の他の損失関数を使用してもよい。
1ホットエンコーディングを伴う交差エントロピは、標的ベクトルが、1(1)を除いて、全てゼロ(0)であることを示唆する。結果として、ゼロエントリは全て、無視され、1(1)を伴うエントリのみが、更新のために使用される。したがって、標識と関連付けられる予測された確率のみが、1ホット標識を伴う交差エントロピ関数を伴う損失の値に影響を及ぼす。交差エントロピ関数は、ニューラルネットワーク予測が、いくつかの実施形態では、相互に排他的な結果にわたる確率ベクトルを備えるため、機能する。したがって、予測ベクトルは、非負の要素を有し、これらの要素は、合計で1になる。言い換えると、予測ベクトルの1つの部分をより大きくすることは、同一の量だけ残りの成分の和が縮小されることをもたらす。さらに、1ホット標識の場合に関して、ソフトマックス関数が、使用されてもよい。また、ソフトマックスは、0および1において漸近線を有し、したがって、特異点は、生じ得ない。一方、オーバーフローが、時折、浮動小数点演算の問題として、log(1)またはlog(0)をもたらし得る。それにもかかわらず、そのようなオーバーフローは、方程式を再配列し、オッズの対数であるp/(1-p)を備えるロジット等の異なるスケールで作業することによって回避され得、式中、pは、確率である。
いくつかの実施形態は、904Cにおいて、904Bにおいて識別された特徴点の第2のサブセットを使用して、訓練を監督する。いくつかの実施形態では、特徴点の第2のサブセット(補助的特徴点のサブセット)ではなく、特徴点の第1のサブセット(主要特徴点のサブセット)が、ニューラルネットワークの最終的な展開モデル内にある。これらの実施形態では、ニューラルネットワークを有するコンピューティングデバイスは、訓練されたニューラルネットワークを埋込されるが、コンピューティングおよび/または記憶リソース利用をさらに節約するために、ニューラルネットワークを訓練することに関連する、またはそれに関与するニューラルネットワークの部分を埋込されない場合がある。加えて、または代替では、特徴点の第2のサブセットに関するデコーダ部分は、浮動的特徴点を回避し、エンコーダの後の特徴テンソルを正則化するために、畳み込みをグループ化しない。
いくつかの実施形態では、可視性マスクが、906Cにおいて、訓練プロセスを安定させる、推論の間にオクルードされた特徴点および不可視の手を抑制する、および/または推論の間に早期の出力を可能にし、待ち時間を低減させるために適用されてもよい。例えば、いくつかの実施形態は、訓練プロセスを安定させる、推論の間にオクルードされた特徴点および不可視の手を抑制する、および/または推論の間に早期の出力を可能にし、待ち時間を低減させるために、特徴点および手可視性マスクを適用してもよい。いくつかの実施形態では、ニューラルネットワークは、標識化されたデータセットを使用することによって訓練され、これらの実施形態は、画像内の可視の特徴点および手のみを標識化する。結果として、手および特徴点可視性マスクを採用するこれらの実施形態は、早期またはより早期の出力を可能にし、推論時間の間の待ち時間をさらに低減させ得る。
手姿勢に関するいくつかのクラスが、908Cにおいて決定されてもよい。いくつかの手姿勢クラスは、入力画像から新たに分類される、または既存の分類結果から識別されてもよい。手姿勢クラスのいくつかの実施例は、「オーケー」、「開いた手」、「つまむこと」、「C姿勢」、「握り拳」、「L姿勢」、「指さし」、「親指を立てること」、および「ダミー」を含んでもよい。「ダミー」クラスは、全ての他の特徴姿勢を捕捉し、1つ以上の新しい特徴姿勢の追加を伴う後続再標識化のために記憶されてもよい。
ニューラルネットワークは、910Cにおいて、902Cにおいて決定された予測および損失を使用して訓練されてもよい。ニューラルネットワークを訓練するために損失の逆伝搬とともに勾配降下を使用するために、線形関数のように見え、作用するが、実際には、データ内の複雑な関係が学習されることを可能にする非線形関数である、活性化関数が、必要とされる。上記に説明されるように、いくつかの実施形態は、ニューラルネットワークを訓練するために交差エントロピ損失および逆伝搬の使用を可能にするために、活性化関数層として整流線形ユニットを使用する。
また、1つ以上の個々のタイプの損失もまた、ニューラルネットワークによって発生された予測のために決定されてもよい。これらの個々のタイプの損失は、例えば、セグメンテーション損失、交差エントロピ損失、補助的特徴点損失、深層教師あり特徴点損失、特徴姿勢分類損失、カテゴリ配向損失等を含んでもよい。セグメンテーション損失は、補助的エンコーダ層(例えば、636G)に対応し、全体的または部分的に補助的エンコーダ層に関連する損失を表す。交差エントロピ損失またはバイナリ交差エントロピ損失は、可視性デコーダ(例えば、640G)に関連し、全体的または部分的に可視性層に関連する損失を表す。補助的特徴点損失は、補助的特徴点デコーダ(例えば、638G)に関連し、全体的または部分的に補助的特徴点層に関連する損失を表す。深層教師あり損失は、主要エンコーダ層(例えば、602G、604G、および606G)および/または畳み込み(例えば、616G)に関連し、全体的または部分的にこれらの層に関連する損失を表す。特徴姿勢分類損失は、特徴姿勢デコーダ層(例えば、642G)に関連し、全体的または部分的に特徴姿勢デコーダ層に関連する損失を表す。カテゴリ配向損失は、カテゴリ配向層(例えば、644G)に関連し、全体的または部分的にカテゴリ配向層に関連する損失を表す。
いくつかの実施形態はさらに、912Cにおいて、そうでなければ手から飛び出し得る特徴点を正則化する訓練時間アーチファクトとしてコンテキストパスを使用することによって、ニューラルネットワークの訓練を監督する。コンテキストパスについてのさらなる詳細が、本開示の図7Aおよび10A-10B等の別の場所に説明される。加えて、訓練下のニューラルネットワークはさらに、914Cにおいて、入力データセットからのいくつかのクラスをセグメント化するために訓練されてもよい。いくつかの実施形態では、いくつかのクラスは、例えば、背景クラス、右手クラス、および左手クラスを含む。加えて、いくつかのクラスは、これらの実施形態のうちのいくつかにおいて、両手クラスを含んでもよい。
異なる空間分解能を有する、1つ以上の付加的特徴点教師ヘッドまたはブランチが、916Cにおいて、ニューラルネットワークに追加されてもよい。例えば、図3、4、5A-5F、および6Gを参照して上記に説明されるような3階層ニューラルネットワークの実施例では、階層3の出力は、入力画像の全分解能の1/8を有する。第1の付加的特徴点教師ヘッドが、階層3の出力を全分解能の1/4までアップサンプリングするために追加されてもよく、第2の付加的特徴点教師ヘッドが、第1の特徴点教師ヘッドの出力を全分解能の1/2までアップサンプリングするために追加されてもよく、以下同様である。1つ以上の特徴点教師ヘッドを追加することは、ニューラルネットワークの訓練を安定させ、訓練のための改良された勾配フローを促進し、可能性として考えられる消失勾配問題に対処し得る。
いくつかの実施形態は、最初に、ニューラルネットワークの最終層においてのみ教師を伴うニューラルネットワークのための逆伝搬の反復のセットを実施し、中間層の勾配値(例えば、平均勾配値)をプロットすることによって、1つ以上の特徴点教師ブランチを追加するかどうかを決定する。これらの実施形態は、次いで、平均勾配値が消失する、または閾値勾配を下回って下降する層の後に教師ヘッドまたはブランチを追加し、本プロセスを繰り返し、ニューラルネットワークに関する訓練プロセスを減速させ得る、勾配消失問題を低減させる、または排除してもよい。
918Cにおいて、最終損失が、決定されてもよい。いくつかの実施形態では、最終損失は、少なくとも部分的に、参照番号910Cを参照して上記に説明される個々の損失のうちの1つ以上のものに基づいて決定されてもよい。いくつかの実施形態では、最終損失または累積損失は、複数の前述の個々の損失の加重和であるように決定されてもよい。いくつかの実施形態では、指先予測の損失に関する個別の加重は、少なくとも部分的に、指先が、他の特徴点と比較したとき、検出することがより困難であるという観察に基づいて、倍増されてもよい。ニューラルネットワークは、920Cにおいて、少なくとも部分的に、918Cにおいて決定された最終損失に基づいて調節されてもよい。いくつかの実施形態では、ニューラルネットワークは、より正確な結果を生成するために、勾配降下(例えば、確率的勾配降下またはSGD)を伴う逆伝搬によって訓練される。
図9Dは、いくつかの実施形態における、図9Bに図示されるニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図の一部についてのさらなる詳細を図示する。これらの実施形態では、1つ以上の入力データセットが、902Dにおいて識別されてもよい。いくつかの実施形態では、これらの1つ以上の入力データセットは、複数の位相画像の組み合わせ(例えば、線形組み合わせ)である、少なくとも1つの振幅画像を含む。904Dにおいて、個々の損失のセットの個別の影響が、訓練スキームにおいて評価されてもよい。
上記に説明されるように、個々の損失のセットは、例えば、セグメンテーション損失、交差エントロピ損失、補助的特徴点損失、深層教師あり特徴点損失、特徴姿勢分類損失、カテゴリ配向損失等を含んでもよい。セグメンテーション損失は、補助的エンコーダ層(例えば、636G)に対応し、全体的または部分的に補助的エンコーダ層に関連する損失を表す。交差エントロピ損失またはバイナリ交差エントロピ損失は、可視性デコーダ(例えば、640G)に関連し、全体的または部分的に可視性層に関連する損失を表す。補助的特徴点損失は、補助的特徴点デコーダ(例えば、638G)に関連し、全体的または部分的に補助的特徴点層に関連する損失を表す。深層教師あり損失は、主要エンコーダ層(例えば、602G、604G、および606G)および/または畳み込み(例えば、616G)に関連し、全体的または部分的にこれらの層に関連する損失を表す。特徴姿勢分類損失は、特徴姿勢デコーダ層(例えば、642G)に関連し、全体的または部分的に特徴姿勢デコーダ層に関連する損失を表す。カテゴリ配向損失は、カテゴリ配向層(例えば、644G)に関連し、全体的または部分的にカテゴリ配向層に関連する損失を表す。個々の損失のセットの個別の影響を評価するステップについてのさらなる詳細が、図9Eを参照して下記に説明されるであろう。
ニューラルネットワークの性能は、906Dにおいて、少なくとも部分的に、最新のニューラルネットワークまたは推論モデルのベンチマーク結果に基づいて決定されてもよい。いくつかの実施形態では、ニューラルネットワークの性能は、少なくとも部分的に、例えば、ニューラルネットワーク内のパラメータの合計数、画像の単一のフレームに関する浮動小数点演算の合計数、ニューラルネットワークに関する2D特徴点誤差、任意の他のメトリック、またはそれらの任意の組み合わせに基づいて、ニューラルネットワークをそれらの最新のニューラルネットワークまたは推論モデルと比較することによって決定されてもよい。908Dにおいて、ニューラルネットワークは、908Dにおいて、1つ以上のデータセットの少なくとも一部および上記に説明される1ホット標識または標的を伴う交差エントロピ関数等の損失関数を用いて訓練されてもよい。
図9Eは、いくつかの実施形態における、図9Dに図示されるニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図の一部についてのさらなる詳細を図示する。より具体的には、図9Eは、図9Dの個々の損失のセットの個別の影響を評価するステップについてのさらなる詳細を図示する。これらの実施形態では、特徴点推定に関するメトリックが、902Eにおいて決定されてもよい。これらの実施形態のうちのいくつかでは、メトリックは、ピクセルにおいて表される推定された特徴点とグラウンドトゥルースとの間のユークリッド距離を備える。
複数の個々のタイプの損失が、904Eにおいて、訓練スキームに関して識別または決定されてもよい。いくつかの個々のタイプの損失が、906Eにおいて決定され、訓練スキームにおいて使用されてもよい。個々のタイプの損失は、例えば、セグメンテーション損失、交差エントロピ損失、補助的特徴点損失、深層教師あり特徴点損失、特徴姿勢分類損失、カテゴリ配向損失等を含む。訓練スキームにおいて使用されるように決定された個々の損失は、逆伝搬によってニューラルネットワークの精緻化にフィードバックされるであろう。いくつかの実施形態では、複数の候補訓練スキームが、個々の損失の個別のセットに対応するように決定されてもよい。
ニューラルネットワークは、908Eにおいて、オプティマイザを用いてある学習率においていくつかのエポックに関する候補訓練スキームにおける決定された数の個々の損失を用いて訓練されてもよく、結果として生じる訓練されたネットワークの損失もまた、対応する選択された個々のタイプの損失を伴う最終訓練スキームを決定するために決定される。いくつかの実施形態では、ニューラルネットワークは、Adamオプティマイザを用いて0.001の学習率で20回のエポックにわたって訓練される。
人工ニューラルネットワークの観点では、エポックは、全訓練データセットを通した1サイクルを指す。いくつかの実施形態では、ニューラルネットワークを訓練することは、数回を上回るエポックがかかる。エポックは、多くの場合、反復と混同され得る。反復は、1回のエポックを完了するために必要とされる、訓練データのパーティション化されたパケットを通したバッチまたはステップの数である。ヒューリスティックに、1つの動機は、(特に、大きいが、有限の訓練セットに関して)、これが、ネットワークに、以前のデータを確認し、モデルが訓練の間に最後のいくつかのデータ点に向かって偏倚しないようにモデルパラメータを再調節する機会を与えることである。ニューラルネットワークでは、ニューラルネットワークの目標のうちの1つは、概して、正しいか、または誤っているかのいずれかである資料を分類する、または発生させることである。したがって、単一のタスクに対して多くのアクションを実施する実験的エージェントに関するエポックは、同一の性質の多くのタスクに対して単一のアクションを実施しようとするエージェントに関するエポックと異なり得る。強化学習の専門用語では、これは、より典型的には、エピソードと称される。
深層学習ニューラルネットワークは、勾配降下アルゴリズム(例えば、確率的勾配降下最適化アルゴリズム)を使用して訓練されてもよい。学習率は、ニューラルネットワーク加重が更新される度に、推定された誤差に応答して、ニューラルネットワークを変化させる量を制御するハイパーパラメータである。学習率を選定することは、小さすぎる値が、長い訓練プロセスをもたらし得る一方、大きすぎる値が、最適以下の加重のセットを過剰に速く学習すること、または不安定な訓練プロセスをもたらし得るため、困難であり得る。Adam最適化アルゴリズムは、コンピュータビジョンおよび自然言語処理における深層学習用途のために最近広く採用されている、確率的勾配降下の拡張物である。
プロセスは、個々のタイプの損失の異なるセットを伴う異なる候補訓練スキームを決定するために、906Eに戻ってもよい。最良の性能(例えば、正確度および/または速度の観点から最良の性能)を有する個々のタイプの損失の対応するセットを伴う候補訓練スキームが、訓練スキームとして選択されるであろう。いくつかの実施形態では、選択された訓練スキームは、上記に説明される個々のタイプの損失の全てを包含する。
図9Fは、いくつかの実施形態における、図9Bに図示されるニューラルネットワークにおけるマルチタスク深層学習の高レベル例示的ブロック図の別の部分についてのさらなる詳細を図示する。より具体的には、図9Fは、図9Bの916Bについてのさらなる詳細を図示する。これらの実施形態では、決定が、920Fにおいて、1つ以上の特徴点が訓練することができないかどうかを決定するために行われてもよい。上記に説明されるように、いくつかの実施形態は、グループ化畳み込みを使用する。デコーダ層が、グループ化畳み込みを使用する、ある場合には、いくつかの特徴点は、デコーダ層のグループ化構造に起因して、訓練することができない場合がある。902Fにおいて、1つ以上の特徴点が、訓練することができなかったと決定される場合、904Bにおいて決定された特徴点の第2のサブセットからの1つ以上の特徴点教師ヘッドまたはブランチが、904Fにおいて、少なくとも部分的に、1つ以上のルールに基づいて、1つ以上の訓練教師ヘッドまたはブランチとして決定されてもよい。
904Fにおいて訓練教師として1つ以上の特徴点を追加する本ステップは、906Fにおいて、少なくともある層において教師を伴うニューラルネットワークに関する逆伝搬の少数の反復を実行することによって、勾配プロット(例えば、平均勾配プロット)を発生させるステップを含んでもよい。いくつかの実施形態では、教師は、ニューラルネットワークの最終層に位置する。ニューラルネットワークを訓練するステップは、勾配降下技法を用いた逆伝搬の使用を伴い得るため、中間層の本勾配プロットは、勾配が消失する、または閾値勾配値を下回って下降するいかなる潜在的勾配消失問題も識別するために使用されてもよい。
教師ヘッドまたはブランチが、908Fにおいて、勾配が閾値勾配値を下回って下降する層(例えば、元々、訓練教師に対応する中間層)の後に追加されてもよい。ルールが、910Fにおいて、少なくとも部分的に、中間層の勾配値の結果に基づいて発生されてもよい。904Fにおいて決定された1つ以上の特徴点教師ヘッドまたはブランチを用いて、複数の空間分解能を伴うこれらの1つ以上の特徴点教師ヘッドまたはブランチは、912Fにおいて、ニューラルネットワーク内の指定された場所に(例えば、908Fを参照して上記に説明される中間層の後に)追加されてもよい。
図10Aは、いくつかの実施形態における、空間情報を保全し、コンピュータビジョンのための受容フィールドを強化する間のマルチタスク深層学習およびニューラルネットワークを用いた意味論の別の高レベル概略ブロック図を図示する。より具体的には、図10Aは、空間情報を保全するための空間パスおよび受容フィールドを増加させるためのコンテキストパスを使用し、さらに、空間パスおよびコンテキストパスの個別の出力を特徴融合層を用いて融合することによる意味論的セグメンテーションを図示する。図10Aに図示されるこれらの実施形態では、空間情報を保全するステップは、意味論的セグメンテーションのために1002Aにおいて受容フィールドを強化するステップから切り離されてもよい。左側のブロック1004A、1006A、および1008Aは、空間パス処理に関するいくつかの例示的層を図示し、右側のブロック1010A、1012A、1014A、1016A、1020A、1022A、および1024Aは、コンテキストパス処理に関するいくつかの例示的層を図示する。左下隅におけるブロック1026A、1028A、1030A、および1032Aは、特徴融合に関するいくつかの例示的ブロックを図示する。右下隅におけるブロック1016A、1020A、1022A、および1024Aは、いくつかの例示的注意精緻化層を図示する。
図10Aに図示される空間パス処理が、例えば、図3-4および5A-5Fおよび/または6Gに説明されるニューラルネットワークを使用することによって実施され得ることに留意されたい。空間パスに関して、入力データセットが、1004Aにおいて、いくつかの層(例えば、畳み込み-バッチ正規化-スケール-整流線形ユニット)を使用して処理されてもよい。これらの層のそれぞれについてのさらなる詳細が、例えば、図3-4および5A-5Fおよび/または6Gを参照して上記に説明される。
出力特徴マップまたは特徴が、1006Aにおいて、1004Aにおける前述の層のうちの1つ以上のものから抽出されてもよく、空間パスが、1008Aにおいて、抽出された特徴マップまたは特徴に関連する情報を用いてエンコードされてもよい。空間パスまたはその情報/データは、次いで、特徴融合層の層1026Aに転送されてもよく、そこで、空間パスからの出力は、コンテキストパスからのものと連結される。例えば、図6Gに説明されるニューラルネットワークでは、空間パスからの出力は、元の入力画像の1/8に対応する。
コンテキストパスに関して、モデルおよびプーリング層が、1010Aにおいて識別されてもよい。いくつかの実施形態では、モデルは、少なくとも部分的に、モデルによって提供される受容フィールドに基づいて選択されてもよい。例えば、Xceptionモデル等の軽量モデルが、1010Aにおいて識別されてもよい。いくつかの実施形態では、異なるスケールを有する複数のプーリング層が、1010Aにおいて、コンテキスト情報の適応型フィールドを取得するために、スケール適応型畳み込み層によってネットワークを改良するために、画像のコンテキスト(例えば、グローバルコンテキスト)を捕捉するように識別されてもよい。
コンテキスト情報をエンコードするために使用される受容フィールドが、1012Aにおいて、1010Aにおいて識別されたモデルを使用して、特徴マップをダウンサンプリングすることによって決定されてもよい。受容フィールドは、1014Aにおいて、少なくとも1010Aにおいて識別されたモデルの末端にプーリングを追加することによって、モデルのグローバルコンテキスト情報および特徴を用いて強化(例えば、増加)されてもよい。いくつかの実施形態では、モデルの末端に追加されるプーリング層は、例えば、グローバル平均プーリング層、最大プーリング層、ピラミッドプーリング層、アトラス空間ピラミッドプーリング層等を含んでもよい。追加されるべきプーリング層は、少なくとも部分的に、例えば、コンテキストパスの性能とコンピューティングリソース利用との間の平衡に基づいて決定されてもよい。例えば、ピラミッドプーリング層およびアトラス空間ピラミッドプーリング層は、より多くの算出を要求し、より多くのメモリを消費することが公知であり、したがって、より多くのリソースを消費しながら、算出の速度を低下させ得る。
1つ以上のステージからの特徴は、1016Aにおいて、少なくともコンテキストパスにエンコードされ得るグローバルコンテキスト情報を捕捉するために1つ以上のプーリング層を採用することによって、注意精緻化を用いて精緻化されてもよい。例えば、注意ベクトルが、1020Aにおいて、例えば、図6Hを参照して上記に説明されるような特徴学習を誘導するために決定されてもよい。1つ以上の出力特徴が、1022Aにおいて、コンテキストパス内の1つ以上のステージにおいて精緻化されてもよく、コンテキストパス情報は、アップサンプリングを伴わずに、1024Aにおいてコンテキストパス内に統合され、エンコードされてもよい。いくつかの実施形態では、1つ以上の補助的損失関数が、1036Aにおいて、コンテキストパスを訓練するために採用されてもよい。
空間パスに関して、主要損失関数(例えば、参照番号918Cを参照して上記に説明される最終損失または累積損失)が、空間パスの出力および/または特徴融合層の出力を訓練するために採用されてもよい。すなわち、主要損失関数は、いくつかの実施形態では、図10Aに図示されるネットワーク全体の連結出力を訓練するために使用されてもよい。いくつかの実施形態では、空間パスおよびコンテキストパスは、ニューラルネットワークを用いた推論における待ち時間を低減させるために、および/または訓練を促進するために、並行して算出および処理される。
いくつかの実施形態では、損失関数は、ソフトマックス損失であってもよい。これらの実施形態は、パラメータアルファ(例えば、いくつかの実施形態では、アルファ=1)を使用し、主要損失および補助的損失の加重を平衡させ、結合損失を生成し、これは、モデルを最適化するためにオプティマイザをより快適にし得る。
注意精緻化層の出力(例えば、1024Aから)もまた、特徴融合層に転送されてもよい。1026Aにおいて、空間パスからの出力特徴(例えば、1008Aから)およびコンテキストパスからの出力特徴(例えば、1024Aから)は、1026Aにおいて連結されてもよい。本連結出力はさらに、1028Aに提供されてもよく、これは、バッチ正規化層を用いていくつかの特徴の異なるスケールを平衡させる。いくつかの実施形態は、1030Aにおいて、連結された特徴を特徴ベクトル(例えば、図6Iを参照して上記に説明される注意ベクトル)にプールし、加重ベクトルを決定し、種々の特徴を加重する。これらの実施形態は、次いで、1032Aにおいて、特徴ベクトルおよび加重ベクトルを用いて特徴選択および特徴組み合わせを誘導してもよい。
本明細書に説明されるニューラルネットワークは、いくつかの最新のネットワークに対してベンチマークされる。ベンチマークでは、データセットが、訓練、検証、および試験間の28:4:8分割を使用する40人のユーザを備え、合計で225,733フレームを伴うユーザあたり5,000以上のフレームを備える。訓練スキームにおいて使用される全ての損失の個別の影響が、アブレーション研究を用いて評価された。ランタイムにおいて、入力画像に対する2D予測が、並行して処理される深度画像を使用して、ハイブリッド3Dに引き上げられる。深度値は、フィルタリングおよびヒューリスティックを使用して、少なくとも識別された2D特徴点に関して検証される。本明細書に説明されるニューラルネットワークのランタイム性能は、最新のニューラルネットワーク(例えば、mvテンソル)を用いてベンチマークされ、それらの最新のニューラルネットワークに対して少なくとも12倍の推論速度の改良である、約16ミリ秒待ち時間を示す。より重要なこととして、ニューラルネットワークにおける待ち時間は、例えば、ウェアラブル電子デバイスを含むモバイル電子デバイスに関して十分である。
図10Bは、いくつかの実施形態における、マルチタスク深層学習を用いたニューラルネットワークにおける多階層エンコーダアーキテクチャの別の高レベル概略ブロック図を図示する。図10Bに図示されるこれらの実施形態では、エンコーダは、階層のシーケンスを含む。階層は、いくつかの実施形態では、ネットワーク内ネットワークの意味での具体的タイプのモジュールである。階層は、前の階層の、随意に、スケーリングされ得る、特徴テンソルを受信する、または第1階層の場合では、入力画像テンソルを受信してもよい。階層は、ユニットの連結されたシーケンスを含む。階層内のいくつかまたは全てのユニットは、同一の出力空間分解能を有してもよい。いくつかの実施形態では、第1のユニットのみが、随意に、例えば、ストライド畳み込みがプーリングの代わりに使用される場合では、入力からの空間分解能を変化させることを可能にされる。これは、いくつかの実施形態では、第1のブロックの内側にストライド2畳み込みを有することによってそのように行う。
ユニットは、ブロックのシーケンスを含む。第1のブロックは、ベースブロックと称され得、これは、いくつかの実施形態では、入力としていかなる残差スキップ接続も含まない場合がある。例えば、階層1は、ストライド2を伴う3×3畳み込み層を含んでもよい。本実施例では、階層1は、畳み込み層である単一の単純なユニットを含む。いくつかの実施形態は、例えば、5×5および/または7×7畳み込みカーネルと、7×1+1×7分離可能畳み込みとを含んでもよい。これらの畳み込みカーネルおよび畳み込みは、モデル正確度におけるある程度の利得を提供しながら、付加的複雑性および算出を追加し得る。
いくつかの実施形態では、階層2は、より複雑なユニットを含み、これは、図10Bのベースブロック(B)を含み、残差ブロック(R1)が続く。いくつかの実施形態は、2つのそのようなユニット(例えば、ユニット1およびユニット2)を連結するが、いくつかの他の実施形態は、3つ以上のユニットを使用してもよい。ユニットは、前のユニットのうちのいくつかまたは全ての出力とともに、第1のユニットへの入力の連結を入力として受信してもよい。これらの実施形態では、階層全体の出力は、そのユニットの全ての連結出力である。第1のユニットへの入力が、階層内のユニットのそれぞれに可視であり得るが、いくつかの実施形態は、階層の最終出力から入力を隠蔽する。これらの実施形態では、図10Bの2つの別個の連結経路である。随意に、その出力から階層の入力を隠蔽しない、いくつかの実施形態では、次いで、これらの実施形態は、2つではなく、単一の連結経路のみを有するようにこれを簡略化してもよい。入力の隠蔽は、いくつかの実施形態では、前の階層からの特徴を単純に精緻化およびサイズ変更するのではなく、より変換性の高い特徴を生成するように階層を促してもよい。
連結されたユニットは、1つ以上の特徴チャネルを出力データテンソルに追加してもよい。いくつかの実施形態では、畳み込み層内の特徴の数は、依然として、恣意的に多くの特徴チャネルを構築し、算出およびモデルパラメータの線形スケーリングのみを生じさせながら、制限され得る。これは、算出費用およびモデルサイズが、畳み込み層のサイズの二乗に比例し得るためであり得る。いくつかの従来のアプローチ(例えば、DenseNet)と比較して、高密度ではなく(すなわち、DenseNetが「高密度ブロック」と呼ぶものの中の全ての層間は、本発明者らのユニットにほぼ類似する)、いくつかの実施形態は、はるかにより少ない連結された接続を有し、したがって、算出、メモリ、およびパラメータ費用は、連結された接続が疎ら(すなわち、ユニットレベルでのみ)であるため、はるかに低い。
階層3は、ネットワークが最も複雑なユニットを有する場所である。階層3内のユニットは、ベースブロックに加えて、増加する拡張サイズのk個の残差ブロックのシーケンスを含んでもよい。いくつかの実施形態では、k個の残差ブロックのシーケンスは、線形に増加する拡張サイズ(例えば、1、2、3、4…等)を有する。図10Bでは、階層3は、ユニット1と、ユニット2とを含み、ユニット1およびユニット2はそれぞれ、いくつかの実施形態では、ベースブロック(B)に加えて、残差ブロックのシーケンス(R1+R2+...+Rk)を含む。いくつかの実施形態では、階層3は、少なくとも部分的に、例えば、選択された検証データセットに対する経験的評価、またはヒューリスティック等に基づいて、4つの残差ブロックを選定している場合がある。いくつかの実施形態では、階層2のベースブロック(B)、加えて、残差ブロック(R1)ユニットは、拡張ラダーがk=1を有する、特殊なインスタンスを表す。
いくつかの実施形態では、出力の特徴次元は、より多くのユニットを連結することによって、広げられる、または増加されてもよい。残差ブロックが、いくつかの実施形態では、同一の入力および出力特徴次元を有することを要求し得ることに留意されたい。これらの実施形態では、残差ブロックは、特徴次元(例えば、出力チャネルの数)を広げない、または増加させない場合がある。これらの残差ブロックのうちのいくつかまたは全ては、いくつかの実施形態では、それらの入力を精緻化し、受容フィールドサイズを増加させてもよい(例えば、ラダー内の増加する拡張に起因して、例えば、受容フィールドサイズを急速に増加させる)。これらの実施形態では、拡張ラダーは、加算的であるため、拡張ラダーは、特徴が異なるスケールにおいてロバストにスケーリングされることを可能にする(例えば、特徴が、オブジェクトの見掛けサイズおよび/または近接性に基づいて、異なるRkから強い信号を受信してもよい)。
図10Bに図示されるような連結拡張ラダー(CDL)アーキテクチャは、いくつかの実施形態では、ブロック構造に依存しない場合がある。例えば、いくつかの実施形態は、VGGまたはResNet-34の(対合された)3×3ブロック構造またはResNet-50/101/152によって使用される1-3-1ボトルネックブロック構造、およびある形態のIIRCであるオリジナルネットワーク内ネットワーク(NiN)を含む、以前のアーキテクチャを採用してもよい。また、前述の「1-3-1」は、いくつかの実施形態では、(各畳み込み層の後にチャネル毎の様式で適用されるReLU等の活性化関数の有無を問わず)1×1畳み込みを含み、3×3畳み込みが続き、1×1畳み込みが続く。これらの実施形態では、活性化(例えば、ReLU)は、3×3畳み込みの後に適用されてもよい。これらの実施形態のうちのいくつかは、1×1層の後に整流を適用しない。
いくつかの実施形態は、主に、ボトルネック比が1である1-3g-1ボトルネックブロックを使用してもよい。ボトルネック比が、随意に、1を下回る(例えば、「チャネルスクイージング」)、または1を上回り得る(例えば、「反転/チャネル拡大」)ことに留意されたい。前述の「1-3g-1」における「g」は、グループ化係数が、畳み込み層の中へのチャネルの数(C)をカーネル深度(kd)で除算したものに設定され得る、「グループ化畳み込み」の略であり、これは、各畳み込みカーネルのカーネル深度が、kdに等しくなることをもたらし、kdは、いくつかの実施形態では、検証モデル性能対算出費用に応じて、1、2、または4のいずれかに設定される。本グループ化は、グループ化が、3×3畳み込み層の費用を、二次的ではなく、いくつかの実施形態では、入力および出力チャネルの数が残差ブロックに関して同一であることに起因して、チャネルの数に対して線形に増大させるため、算出費用およびモデルサイズを制御する際に使用されてもよい。3×3層は、より空間的な受容フィールドおよび/またはモデルパワーが所望されるいくつかの実施形態では、より広いk×k(式中、k>3)畳み込みカーネルに拡大されてもよい。カーネル深度は、ある小さい定数に固定され得るため、畳み込み層を拡大することは、従来のアプローチ(VGGまたはResNet-50/101/152型式ネットワーク)においてそうであろうように、算出費用またはモデルサイズを劇的に増加させない場合がある。
階層2ユニット1ベースブロック等のある場合には、タイプ3g-1の「半ボトルネックブロック」が、算出費用対全1-3g-1ボトルネックブロックを低減させるために使用されてもよい。半ボトルネックブロックは、タイプ「3g-1」(1×1畳み込みが続く3×3グループ化畳み込み)または「1-3g」(3×3グループ化畳み込みが続く1×1畳み込み)のいずれかを含む。これらの半ボトルネックブロックは、ほんのわずかだけ劣るモデル性能のみを犠牲にして、算出費用、メモリ、およびモデルパラメータを節約し得る。いくつかの実施形態は、訓練後スパース化を適用し(例えば、ネットワークの十分に小さい加重をゼロにし)、例えば、概して、モデル検証性能に悪影響を及ぼさない、50%スパース化を達成してもよい。これは、いくつかの実施形態では、畳み込み層へのスケールおよびバッチノルム層の折畳およびfp32からfp16への加重の変換に加えて実施されてもよい。
プーリング層が、階層の間に採用されてもよい。いくつかの実施形態では、ストライド2最大プーリング層が、階層1と階層2との間に採用されてもよい。いくつかの他の実施形態は、少なくとも部分的に、例えば、プーリング変形の効率的な埋込実装の可用性に基づいて、重複プーリング(例えば、3×3ウィンドウ)または非重複(例えば、2×2ウィンドウ)プーリングのいずれかを採用する。重複(3×3/s2)プーリングは、より正確であるが、わずかにより高価であり得る。
平均プーリング層が、いくつかの実施形態では、階層2と3との間に採用されてもよい。これらの実施形態における平均プーリングの使用は、経験的に見出されるように、ある場合では、優れたモデル性能を生成している。最大プーリングと平均プーリングとの間の選定は、例えば、いくつかの実施形態では、検証データセットに対する評価によって決定されてもよい。
いくつかの他の実施形態では、プーリング層のうちの1つ以上のものが、排除されてもよい。これらの実施形態は、ストライド2畳み込みをその第1のユニットの第1のブロック内の後続階層に適用してもよい。1-3g-1ボトルネックブロックが使用される、いくつかの実施形態では、グループ化3×3畳み込み層が、ストライド2にされてもよい。
いくつかの実施形態では、例えば、前述の図に図示されるように、階層3は、各ユニット内に拡張ラダーを含む。図では、残差1は、1の拡張に対応し、残差2は、2の拡張に対応し、残差3は、3の拡張に対応し、残差4は、4の拡張に対応する。階層3は、8つのグループを含んでもよい。1つ以上のDenseNetブロックが、階層2および階層3内で使用されてもよく、2つのConv-BN-S-ReLUモデルユニットが、逐次算出を低減させるために、4つの従来のユニットの代わりに使用されてもよい。いくつかの実施形態では、より少ないチャネルが、例えば、階層1の後の16個のチャネル、階層2の後の32個のチャネル、および階層3の後の64個のチャネルを用いて並列算出を低減させるために使用されてもよい。さらに、拡張された畳み込みが、比較的に浅いネットワークの受容フィールドを増加させるために、階層3内で使用されてもよい。当業者は、異なる数のチャネルが、階層(例えば、階層1、階層2、および階層3)のそれぞれの後に使用され得ることを理解するであろう。
これらの実施形態のうちのいくつかでは、16チャネル出力が、左手特徴点予測のための8チャネルおよび右手特徴点予測のための8チャネルとして分割されてもよい。いくつかの実施形態では、最後の逆畳み込み層は、除去されてもよく、最後の畳み込み層は、16個のチャネルの代わりに、32個のチャネルを生成するように構成されてもよく、したがって、最後の層は、ここでは、16個の出力チャネルではなく、32個の出力チャネルを有し、出力が、入力画像のものの半分の分解能において生成される。これらの実施形態では、双線形アップサンプリングが、全分解能を復元するために採用されてもよい。双線形アップサンプリングの代替として、いくつかの実施形態は、大まかな特徴点ヒートマップの最も高い応答領域(または1つ以上のより高い応答領域)上に遅延して適用される、学習されたアップサンプリングカーネルを採用してもよい。これらの後者の実施形態のうちのいくつかでは、32チャネル出力は、左手特徴点のための15個のチャネル、右手特徴点のための15個のチャネル、およびランタイムセグメンテーションを有効または無効にするために保留される2つのセグメンテーションチャネルとして分割されてもよい。いくつかの実施形態では、様々な数の標識化された特徴点(例えば、最大26個の標識化された特徴点)を有するデータの寄せ集めが、これらの付加的特徴点を使用し、補助的特徴点教師を提供するために、ニューラルネットワークに採用されてもよい。
いくつかの実施形態では、グループ化畳み込みが、算出を低減させるように、階層1以外に採用/使用されてもよい。例えば、4のグループ化係数が、階層2内で使用されてもよく、8のグループ化係数が、階層3内で使用されてもよい。いくつかの実施形態では、エンコーダが、性能における利得の大部分に関与してもよく、デコーダを変化させることは、わずかばかりのみ性能に影響を及ぼし得る。いくつかの実施形態では、特徴点デコーダが、非常に少なくてもよく、全ての畳み込みは、チャネル毎である(例えば、グループの数が、チャネルの数に等しくてもよい)。
いかなるグループ化も伴わないと、畳み込み層内のカーネルは、Y×X×Cであり得、式中、Cは、チャネルの数を表す。Cが32であり、YおよびZが3である、いくつかの実施形態では、畳み込み層のカーネルは、3×3×32である。しかしながら、グループ化が、存在し、例えば、8つのグループを伴う場合、畳み込み層のカーネルは、8つのグループを伴うグループあたり3×3×4であり、全ては、並行して行われてもよい。
階層3の出力におけるConvTアップサンプルは、第1のConvTアップサンプルと称され得、第1のConvTアップサンプルの出力におけるConvTアップサンプルは、第2のConvTアップサンプルと称され得、第2のConvTアップサンプルの出力におけるConvTアップサンプルは、第3のConvTアップサンプルと称され得る。第3のConvTアップサンプルの出力は、入力画像または修正された入力画像と同一の分解能である。各ConvTアップサンプルは、逆畳み込みと、畳み込みと、逆畳み込みとを含んでもよい。各ConvTアップサンプルは、最大限にグループ化されてもよい。
いくつかの実施形態では、第3のConvTアップサンプルは、双線形アップサンプルと置換されてもよい。双線形アップサンプルの出力は、入力画像または修正された入力画像と同一の分解能である。訓練実装では、双線形アップサンプルは、全分解能を生成し得るが、しかしながら、これは、埋込実装において必要ではない場合がある。例えば、埋込実装における双線形アップサンプルを用いて、推定された特徴点が存在する部分のみが、アップサンプリングされてもよい。
本明細書に開示されるネットワークアーキテクチャの埋込実装は、算出/メモリオーバーヘッドおよびエネルギー消費を低減させるように慎重に設計されてもよい。例えば、Myriad2 VPUが、600MHzにおいて起動し、SHVと呼ばれる12個のVLIW算出コアを提供する。典型的な作業負荷下で、Myriad2チップの合計電力消費は、2W未満である。各SHVは、2MBオンチップSRAMから128KB作業メモリスライスを配分される。いくつかの実施形態では、ジェスチャDNNが、単一のSHVを使用して、リアルタイム45フレーム毎秒(FPS)手追跡およびジェスチャ認識を実施してもよい。
いくつかの実施形態では、従来の実装を使用することは、いくつかの理由、すなわち、(a)典型的な深層学習フレームワークが、非常にメモリ効率が低い方法で畳み込みを大きい行列乗算に変換し、(b)入力データテンソルが、典型的には、ベクトル化のために非効率的であるチャネル平面フォーマットにおいて記憶され、(c)カーネルサイズが、多くの場合、ベクトル命令幅の倍数ではなく、(d)拡張された畳み込みの既製の実装が、かなりの算出オーバーヘッドを有するため、これらの最小化を困難にする。
これらの課題に対処するために、畳み込みが、ドット積に低減され、出力チャネルが、次の層/階層に関してインターリーブされたフォーマットにおいて自動的にエンコードされるように、入力データチャネルが、ベクトル命令順序付けと整合するように各畳み込み層に再順序付けされ、インターリーブされてもよく、カーネルスタックが、同時に再順序付けされてもよい。さらに、畳み込み層が、グループあたりのフィルタの数が、レジスタレーンの倍数であり、その結果、ベクトルレジスタ利用を最大限にするように、グループ化されてもよい。またさらに、櫛型設計が、拡張された畳み込みのために使用されてもよく、オンチップメモリフットプリントを最小限にする。例えば、拡張=2に関して、畳み込みは、4つの独立したフィールド毎の算出(偶数行-偶数列、偶数-奇数等)に分割されてもよく、これは、独立して算出され、出力に応じて再組み合わせされる。拡張された畳み込みは、したがって、ゼロの有効オーバーヘッドにおいて算出されてもよい。
マルチタスク学習パラダイムが、2D特徴点予測に対する主な焦点を維持しながら、複数のネットワーク予測および損失関数を採用することによって、訓練プロシージャにおいて採用されてもよい。推論時間において、主要エンコーダおよびデコーダのみが、デバイス上で起動するネットワークの部分である。
1ホット標識を伴う交差エントロピが、N2個の特徴点(手あたりN個の特徴点)のそれぞれを予測するために使用されてもよい。初期層における積極的なダウンサンプリングは、低ネットワーク容量と相まって、従来の平均二乗損失(MSE)損失を無効にする。交差エントロピは、より強い勾配信号を有し、はるかに効果的である。いくつかの実施形態では、標識平滑化は、観察可能な性能利得につながらない場合がある。
手あたりM個の特徴点標識が存在することを前提として、付加的特徴点(M~N)が、それらが、最終推論モジュールの一部ではないにもかかわらず、訓練教師として/それにおいて使用されてもよい。デコーダが、完全にグループ化される際、いくつかの特徴点は、全てともに訓練できない場合がある。いくつかの実施形態では、補助的特徴点のためのデコーダは、浮動的特徴点を回避し、エンコーダの後の特徴テンソルを正則化するように、グループ化されない。
いくつかの実施形態では、バイナリ特徴点および手可視性マスクが、3つの目的を果たし、すなわち、訓練を安定させ、推論の間にオクルードされた特徴点および不可視の手を抑制し、推論の間に早期の出力を可能にし、待ち時間を低減させる。バイナリ交差エントロピ損失が、これらのタスクを訓練するために使用されてもよい。
いくつかの実施形態では、収集されたデータ(例えば、訓練データ)が、掌を向けたデータに対して大きく偏り、訓練されたモデルが掌を向けたデータに対して十分に機能しない場合がある。これに対処するために、予測は、カテゴリ手配向損失を使用して正則化されてもよい。手の回外または回内から生じ得る8つのカテゴリの手配向が、標識化されてもよい。カテゴリは、近似的であるため、標識は、軟化されてもよく、交差エントロピ損失が、これらのタスクを訓練するために使用されてもよい。
手姿勢は、9つの離散的クラス、すなわち、オーケー、開いた手、つまむこと、C姿勢、握り拳、L姿勢、指さし、親指を立てること、および全ての他の姿勢を捕捉するダミークラスに分類されてもよい。交差エントロピ損失が、離散的手姿勢分類を訓練するために使用されてもよい。
BiseNetのアーキテクチャを受けて、本明細書に開示されるネットワークアーキテクチャは、コンテキストパスとして使用され、BiseNetに類似する空間パスを訓練時間アーチファクトとして使用し、手から飛び出す特徴点を正則化する有用な教師を提供してもよい。ネットワークは、ピクセル毎の交差エントロピ損失を使用して、3つのクラス、すなわち、背景、左手、および右手をセグメント化するように訓練されてもよい。
特徴点が、多くの場合、デコーダのグループ化構造に起因して訓練することができないことが観察され得る。以下は、深層教師を用いてより深層の畳み込みネットワークを訓練するステップである。付加的特徴点教師ヘッドが、異なる空間分解能を伴う3つの中間層、すなわち、主要エンコーダの階層3(全分解能の1/8)、第1のアップサンプリングブロック(全分解能の1/4)、第2のアップサンプリングブロック(全分解能の1/2)、および第3のアップサンプリングブロック(全分解能)の後に追加されてもよい。いくつかの実施形態では、これは、訓練を安定させ、訓練のためのより良好な勾配フローを促進する。
最終損失は、全ての個々のタスク損失、すなわち、主要特徴点損失Lkp、補助的特徴点損失Lakp、特徴点および手可視性損失Lkphv、カテゴリ手配向損失Lcho、離散的手姿勢損失Ldhp、セグメンテーション損失Lseg、深層教師損失Ldsの加重和である。
タスク加重が、予測が、全て同一のスケールであるわけではないため、異なる損失を加重するために使用されてもよい。異なるタスクに関する加重は、ヒューリスティックに導出されたが、勾配正規化を使用する適応的加重と置換されることができる。全てのタスク損失および対応する加重を伴う全訓練損失が、方程式1の実施例に示される。
例えば、方程式1において、wkp=1、wakp=1、wkphv=20、wcho=20、wdhp=10、wseg=50、wds=1である。
ネットワークが、他の特徴点と比較したとき、指先を予測することがより困難であると見出すことが、経験的に観察され得る。これは、LkpおよびLakpを計算しながら、指先に関する損失を倍増することによって対処されてもよい。
本開示の種々の例示的実施形態が、本明細書に説明される。非限定的な意味で、これらの実施例が、参照される。実施例は、本発明のより広く適用可能な側面を例証するように提供される。種々の変更が、本明細書に説明される種々の実施形態に行われてもよく、均等物が、本発明の真の精神および範囲から逸脱することなく、代用されてもよい。加えて、多くの修正が、特定の状況、材料、物質組成、プロセス、プロセス行為、またはステップを本発明の目的、精神、または範囲に適合させるように行われてもよい。さらに、当業者によって理解されるであろうように、本明細書に説明および例証される個々の変形例はそれぞれ、本発明の範囲または精神から逸脱することなく、他のいくつかの実施形態のうちのいずれかの特徴から容易に分離され、またはそれらと組み合わせられ得る、離散コンポーネントおよび特徴を有する。全てのそのような修正は、本開示と関連付けられる請求項の範囲内にあることを意図している。
本開示は、本主題のデバイスを使用して実施され得る方法を含む。本方法は、そのような好適なデバイスを提供する行為を含んでもよい。そのような提供は、エンドユーザによって実施されてもよい。言い換えると、「提供する」行為は、単に、エンドユーザが、本主題の方法において必須デバイスを提供するように、取得する、アクセスする、接近する、位置付ける、設定する、アクティブ化する、電源を入れる、または別様に作用することを要求する。本明細書に列挙される方法は、論理的に可能である列挙された事象の任意の順序で、および事象の列挙された順序で実行されてもよい。
本発明の例示的側面が、材料選択および製造に関する詳細とともに、上記に記載されている。本発明の他の詳細に関して、これらは、上記に参照された特許および出版物に関連して理解され、加えて、概して、当業者によって把握または理解され得る。一般的または論理的に採用されるような付加的な行為の観点から、本発明の方法ベースの側面に関して、同じことが当てはまり得る。
加えて、本発明は、種々の特徴を随意に組み込むいくつかの実施例を参照して説明されたが、本発明は、本発明の各変形例に関して想定されるように説明される、または示されるものに限定されるものではない。種々の変更が、説明される本発明に行われてもよく、均等物(本明細書に列挙されるか、またはある程度簡潔にするために含まれないかにかかわらず)が、本発明の真の精神および範囲から逸脱することなく、代用されてもよい。加えて、値の範囲が提供される場合、その範囲の上限と下限との間の全ての介在する値、およびその記載される範囲内の任意の他の記載される、または介在する値が、本発明内に包含されることを理解されたい。
また、説明される本発明の変形例の任意の随意の特徴が、独立して、または本明細書に説明される特徴のうちのいずれか1つ以上のものと組み合わせて、記載および請求され得ることが想定される。単数形のアイテムの言及は、複数の同一のアイテムが存在する可能性を含む。より具体的には、本明細書および本明細書に関連付けられる請求項に使用されるように、単数形「a」、「an」、「said(該)」、および「the」は、別様に具体的に記載されない限り、複数指示物を含む。言い換えると、冠詞の使用は、上記の説明および本開示と関連付けられる請求項において、本主題のアイテムの「少なくとも1つ」を可能にする。さらに、そのような請求項が、任意の随意の要素を除外するように起草され得ることに留意されたい。したがって、本文言は、請求項要素の列挙に関連して、「単に」、「のみ」、および同等物等の排他的専門用語の使用、または「否定的」制限の使用のために、先行詞としての機能を果たすことを意図している。
そのような排他的専門用語を使用することなく、本開示と関連付けられる請求項における用語「~を備える」は、所与の数の要素がそのような請求項に列挙されるか、または特徴の追加がそのような請求項に記載される要素の性質の変換として見なされ得るかにかかわらず、任意の付加的な要素の包含を可能にするものとする。本明細書に具体的に定義される場合を除いて、本明細書に使用される全ての技術および科学用語は、請求項の有効性を維持しながら、可能な限り広い一般的に理解される意味を与えられるものである。
本発明の範疇は、提供される実施例および/または本主題の明細書に限定されるものではなく、むしろ、本開示と関連付けられる請求項の言語の範囲のみによって限定されるものである。
例証される実施形態の上記の説明は、排他的であること、または実施形態を開示される精密な形態に限定することを意図していない。具体的実施形態および実施例が、例証目的のために本明細書に説明されるが、種々の同等の修正が、当業者によって認識されるであろうように、本開示の精神および範囲から逸脱することなく、行われることができる。種々の実施形態の本明細書に提供される教示は、必ずしも、概して、上記に説明される例示的ARシステムではなく、仮想またはARまたはハイブリッドシステムを実装する、および/またはユーザインターフェースを採用する、他のデバイスにも適用されることができる。
例えば、前述の詳細な説明は、ブロック図、概略図、および実施例の使用を介して、デバイスおよび/またはプロセスの種々の実施形態を記載している。そのようなブロック図、概略図、および実施例が、1つ以上の機能および/または動作を含有する限り、そのようなブロック図、フローチャート、または実施例内の各機能および/または動作が、個々におよび/または集合的に、広範囲のハードウェア、ソフトウェア、ファームウェア、または事実上任意のそれらの組み合わせによって実装され得ることが、当業者によって理解されるであろう。
一実施形態では、本主題は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等を介して実装されてもよい。しかしながら、当業者は、本明細書に開示される実施形態が、全体的または部分的に、1つ以上のコンピュータによって実行される1つ以上のコンピュータプログラムとして(例えば、1つ以上のコンピュータシステム上で起動する1つ以上のプログラムとして)、1つ以上のコントローラ(例えば、マイクロコントローラ)によって実行される1つ以上のプログラムとして、1つ以上のプロセッサ(例えば、マイクロプロセッサ)によって実行される1つ以上のプログラムとして、ファームウェアとして、または事実上任意のそれらの組み合わせとして、標準的集積回路内に同等に実装され得、ソフトウェアおよび/またはファームウェアのための回路の設計および/またはコードの書込が、本開示の教示に照らして、明確に当業者の技能の範囲内にあるであろうことを認識するであろう。
論理が、ソフトウェアとして実装され、メモリ内に記憶されると、論理または情報は、任意のプロセッサ関連システムまたは方法による使用またはそれに関連する使用のために、任意の非一過性コンピュータ可読媒体上に記憶されることができる。本開示の文脈では、メモリは、コンピュータおよび/またはプロセッサプログラムを含有または記憶する、電子、磁気、光学、または他の物理的デバイスまたは手段である、コンピュータ可読媒体である。論理および/または情報は、命令実行システム、装置、またはデバイスから命令をフェッチし、論理および/または情報と関連付けられる命令を実行し得る、コンピュータベースのシステム、プロセッサ含有システム、または他のシステム等の命令実行システム、装置、またはデバイスによる使用またはそれに関連する使用のために、任意のコンピュータ可読媒体において具現化されることができる。
本明細書の文脈では、「非一過性コンピュータ可読媒体」は、命令実行システム、装置、および/またはデバイスによる使用またはそれに関連する使用のために、論理および/または情報と関連付けられるプログラムを記憶し得る、任意の要素であってもよい。コンピュータ可読媒体は、例えば、限定ではないが、電子、磁気、光学、電磁、赤外線、または半導体システム、装置、またはデバイスであり得る。コンピュータ可読媒体のより具体的な実施例(非包括的リスト)は、以下、すなわち、ポータブルコンピュータディスケット(磁気、コンパクトフラッシュカード、セキュアデジタル、または同等物)、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラマブル読取専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)、ポータブルコンパクトディスク読取専用メモリ(CDROM)、デジタルテープ、および他の非一過性媒体を含むであろう。
本明細書に説明される方法のうちの多くは、変形例とともに実施されることができる。例えば、本方法のうちの多くは、付加的行為を含む、いくつかの行為を省略する、および/または例証または説明されるものと異なる順序で行為を実施してもよい。上記に説明される種々の実施形態は、さらなる実施形態を提供するために組み合わせられることができる。それらが本明細書の具体的教示および定義と矛盾しない限り、米国特許、米国特許出願公開、米国特許出願、外国特許、外国特許出願、および非特許刊行物は全て、本明細書に言及される、および/または出願データシートに列挙される。実施形態の側面は、必要な場合、またさらなる実施形態を提供するために、種々の特許、出願、および公開のシステム、回路、および概念を採用するために、修正されることができる。
これらおよび他の変更が、上記に詳述される説明に照らして、実施形態に行われることができる。一般に、以下の請求項では、使用される用語は、請求項を、本明細書および請求項に開示される具体的実施形態に限定するように解釈されるべきではなく、そのような請求項が享受する均等物の全範囲とともに、全ての可能性として考えられる実施形態を含むように解釈されるべきである。故に、請求項は、本開示によって限定されない。
また、上記に説明される種々の実施形態は、さらなる実施形態を提供するために組み合わせられることができる。実施形態の側面は、必要である場合、またさらなる実施形態を提供するために、種々の特許、出願、および公開の概念を採用するために、修正されることができる。
これらおよび他の変更が、上記に詳述される説明に照らして、実施形態に行われることができる。一般に、以下の請求項では、使用される用語は、請求項を、本明細書および請求項に開示される具体的実施形態に限定するように解釈されるべきではなく、そのような請求項が享受する均等物の全範囲とともに、全ての可能性として考えられる実施形態を含むように解釈されるべきである。故に、請求項は、本開示によって限定されない。

Claims (19)

  1. ニューラルネットワークの埋込実装を伴うモバイル電子デバイスであって、
    モバイル通信デバイスと、
    マシンビジョンのためのマルチタスク深層学習パラダイムにおけるニューラルネットワークの埋込実装
    を備え、
    前記埋込実装における前記ニューラルネットワークは、
    複数のスーパーハイビジョン(SHV)プロセッサまたはプロセッサコアを有するビジョン処理ユニットと、
    エンコーダであって、前記エンコーダは、第1階層と、第2階層と、第3階層とを備え、各階層は、個別の数のユニットブロックを備え、各後続の階層は、直前の階層から個別の出力を受信し、前記直前の階層より高いネットワーク複雑性を有する、エンコーダと
    を備え、
    前記ニューラルネットワークの前記埋込実装は、
    前記エンコーダに動作可能に結合される可視性デコーダ層であって、前記可視性デコーダ層は、前記エンコーダから受信されたエンコーダ出力と前記可視性デコーダ層のバイナリ交差エントロピ損失とに少なくとも部分的に基づいて、1つ以上のマスクを決定するために使用される、可視性デコーダ層と、
    前記エンコーダに動作可能に結合される特徴姿勢デコーダ層であって、前記特徴姿勢デコーダ層は、前記エンコーダから前記エンコーダ出力を受信するために使用され、前記埋込実装への入力における1つ以上の特徴点から予測される特徴姿勢の分類損失に対応する、特徴姿勢デコーダ層と、
    前記エンコーダに動作可能に結合される配向デコーダ層であって、前記配向デコーダ層は、前記エンコーダから受信された前記エンコーダ出力と前記配向デコーダ層のカテゴリ配向損失とに少なくとも部分的に基づいて、前記埋込実装による予測を正則化するために使用される、配向デコーダ層と
    を備える、モバイル電子デバイス。
  2. 1階層ユニット、畳み込み層を備え、バッチ正規化層が論理的に続き、スケール層がさらに論理的に続き、
    前記第1階層ユニットは、前記スケール層に論理的に続く整流線形ユニットをさらに備え
    前記第2階層は、グループ化畳み込みを含むボトルネックブロックまたは半ボトルネックブロックを備え、
    前記複数のSHVプロセッサまたはプロセッサコアのうちの少なくとも1つは、前記ニューラルネットワークが、複数の命令を明示的に規定し、前記複数の命令を逐次的に実行するのではなく並行して実行することを可能にする、請求項に記載のモバイル電子デバイス。
  3. 前記第2階層は、第1の第2階層ユニットと、第2の第2階層ユニットとを備え、
    前記第1階層は、1つ以上の第1階層ユニットブロックをさらに備える第1階層ユニットを備え、
    前記第2階層は、第1の第2階層ユニットを備え、
    前記第1の第2階層ユニットは、前記第1階層から第1階層出力を受信し、第1の第2階層第1ユニットブロックと、第2の第2階層第1ユニットブロックとを備え、
    前記第1の第2階層第1ユニットブロックおよび前記第2の第2階層第1ユニットブロックは両方とも、それぞれ、対応するバッチ正規化層を備え、対応するスケール層が続き、対応する整流線形ユニットがさらに論理的に続き、
    前記第1の第2階層第1ユニットブロック内の前記対応するバッチ正規化層は、第1の畳み込み層に論理的に続き、
    前記第2の第2階層第1ユニットブロック内の前記対応するバッチ正規化層は、第2の畳み込み層に論理的に続き、
    前記第1の畳み込み層は、前記第2の畳み込み層と異なる、請求項に記載のモバイル電子デバイス。
  4. 前記第2の第2階層ユニットは、第2の第2階層第1ユニットブロックおよび第1階層出力から連結出力を受信する第1の第2階層第2ユニットブロックと、第2の第2階層第2ユニットブロックと、第3の第2階層第2ユニットブロックとを備え、
    前記第1の第2階層第2ユニットブロック、前記第2の第2階層第2ユニットブロック、および、前記第3の第2階層第2ユニットブロックは、それぞれ、前記バッチ正規化層を備え、前記スケール層が続き、前記整流線形ユニットがさらに論理的に続き、前記第1の第2階層第2ユニットブロック内の前記バッチ正規化層は、前記第2の畳み込み層に論理的に続き、
    前記第2の第2階層第2ユニットブロック内の前記バッチ正規化層は、前記第1の畳み込み層に論理的に続き、
    前記第3の第2階層第2ユニットブロック内の前記バッチ正規化層は、前記第2の畳み込み層に論理的に続き、
    前記第3の第2階層第2ユニットブロックは、第2階層出力を発生させるように構成される、請求項3に記載のモバイル電子デバイス。
  5. 少なくとも、1つ以上の第1の係数を用いて前記第2階層を構成することおよび1つ以上の第2の係数を用いて前記ニューラルネットワークの前記第3階層を構成することによって、分解能または被覆率の損失を伴わずに前記ニューラルネットワークの受容フィールドを非線形的に拡大することをさらに含み、
    前記1つ以上の第1の係数および前記1つ以上の第2の係数は、前記ニューラルネットワークの前記受容フィールドの拡大の非線形性を共同で定義し、
    前記第1階層によって発生された第1階層出力が、前記第2階層によって発生された第2階層出力と連結され、第3階層入力として前記第3階層に提供され、
    前記第3階層は、第1の第3階層ユニットと、第2の第3階層ユニットとを備え、
    前記第1の第3階層ユニットは、個別の第1ユニット階層的レベルに位置する複数の第3階層第1ユニットブロックを備え、
    前記複数の第3階層第1ユニットブロックのうちの少なくともいくつかは、1つを上回る第1の拡張係数に対応する異なる拡張された畳み込み層を備える、請求項に記載のモバイル電子デバイス。
  6. 前記第2の第3階層ユニットは、個別の第2ユニット階層的レベルに位置する複数の第3階層第2ユニットブロックを備え、前記複数の第3階層第2ユニットブロックのうちの少なくともいくつかは、1つを上回る第2の拡張係数にそれぞれ対応する複数の拡張された畳み込み層を備え、前記複数の第3階層第1ユニットブロックおよび前記複数の第3階層第2ユニットブロックは深層学習パラダイムにおける前記ニューラルネットワークの少なくとも前記エンコーダを訓練するために、少なくとも1つの個別の拡張された畳み込み層と、複数の個別の残差ブロックとを備える、請求項に記載のモバイル電子デバイス。
  7. 第2階層出力が、第3階層入力として前記第3階層に提供されニューラル出力のための最終連結出力として前記第3階層によって発生された第3階層出力とさらに連結され、前記深層学習パラダイムにおける前記ニューラルネットワークの少なくとも前記エンコーダを訓練することは、少なくとも活性化層および前記バイナリ交差エントロピ損失を使用して、1つ以上の損失を逆伝搬することを含む、請求項に記載のモバイル電子デバイス。
  8. 前記エンコーダからエンコーダ出力を受信するために、前記エンコーダに動作可能に結合されるデコーダをさらに備え、少なくとも前記埋込実装における前記第2階層および前記第3階層は、前記埋込実装の出力における分解能を維持する一方で逆畳み込み層を含まないように構成される、請求項1に記載のモバイル電子デバイス。
  9. 前記埋込実装における前記ニューラルネットワークは、カーネルスタックを同時に再順序付けする、請求項1に記載のモバイル電子デバイス。
  10. 前記埋込実装における前記ニューラルネットワークが、前記ニューラルネットワークの複数の畳み込み層を1つ以上のグループに、前記1つ以上のグループのグループにおけるフィルタの数がSHVプロセッサまたはプロセッサコアのレーンの複数の合計数に等しいように、グループ化することをさらに含み、前記SHVプロセッサまたはプロセッサコアは、プロセッサ命令において1つ以上のデータ要素を処理するために前記レーンの合計数の中で分割されるレジスタの合計数を備える、請求項1に記載のモバイル電子デバイス。
  11. 前記埋込実装は、
    前記埋込実装の前記ニューラルネットワークにおける低レベル情報またはデータをエンコードするために構成される空間パスと、
    前記埋込実装の前記ニューラルネットワークにおける高レベル情報またはデータをエンコードするために構成されるコンテキストパスと
    をさらに備え、
    前記空間パスは、第1の出力を発生させるように構成され、
    前記コンテキストパスは、第2の出力を発生させるように構成され、
    前記高レベル情報またはデータは、グローバルコンテキスト情報を備え、
    前記低レベル情報またはデータは、前記高レベル情報またはデータよりもさらなる詳細を備える、請求項1に記載のモバイル電子デバイス。
  12. 前記埋込実装は、
    前記空間パスからの前記第1の出力に関連する第1のデータを前記コンテキストパスからの前記第2の出力に関連する第2のデータと連結し、連結出力にする融合ブロックと、
    前記連結出力の連結データにおける複数のスケールを平衡させる正規化ブロックと
    をさらに備える、請求項11に記載のモバイル電子デバイス。
  13. 前記埋込実装は、行為のセットを実施するように構成され、前記行為のセットは、
    前記空間パスから前記第1の出力を受信することと、
    複数のダウンサンプリング層を通して前記空間パスの前記第1の出力を処理し、前記空間パスのためのダウンサンプリングされた出力を生産することと
    を含み、
    各ダウンサンプリング層は、個別のダウンサンプリング率に対応し、各後続のダウンサンプリング層は、直前のダウンサンプリング層を上回るダウンサンプリング率を有する、請求項12に記載のモバイル電子デバイス。
  14. 前記埋込実装は、行為のセットを実施するようにさらに構成され、前記行為のセットは、
    前記複数のダウンサンプリング層の最後のダウンサンプリング層の次からの第1のダウンサンプリングされた出力を最後のダウンサンプリング層および第1の注意層に伝送することと、
    前記第1の注意層が、第1の注意層出力を発生させることと、
    前記複数のダウンサンプリング層の前記最後のダウンサンプリング層からの第2のダウンサンプリングされた出力を第2の注意層に伝送することと、
    前記第2の注意層が、第2の注意層出力を発生させることと、
    第1の注意出力および第2の注意出力を連結のために前記融合ブロックに伝送することと
    をさらに含む、請求項13に記載のモバイル電子デバイス。
  15. 前記第1および第2の注意層は、それぞれ、アップサンプリングすることなく、コンテキストデータを捕捉し、前記ニューラルネットワークの予測を精緻化する、請求項14に記載のモバイル電子デバイス。
  16. 前記埋込実装は、プーリング層をさらに備え、前記プーリング層は、前記連結出力の前記連結データのための加重ベクトルを決定し、組み合わせられた連結データへの前記連結データのうちの少なくともいくつかの選択および組み合わせのために前記連結データを再加重する、請求項12に記載のモバイル電子デバイス。
  17. 前記埋込実装は、
    前記組み合わせられた連結データを入力として受信し、前記入力に少なくとも部分的に基づいて第1の畳み込み出力を発生させるように構成される第1の畳み込み層と、
    前記畳み込み層から前記畳み込み出力を受信し、前記空間パスおよび前記コンテキストパスによって発生された前記畳み込み出力からの複数のスケールを平衡させ、正規化された出力を発生させるように構成される正規化層と、
    前記正規化層から前記正規化された出力を受信し、活性化された出力を発生させるように構成される活性化関数と、
    前記活性化関数から前記活性化された出力を受信し、前記活性化された出力に少なくとも部分的に基づいて第2の畳み込み出力を決定するように構成される第2の畳み込み層と
    をさらに備える、請求項16に記載のモバイル電子デバイス。
  18. グループ化係数および第2の数のチャネルを使用して前記第2階層においてグループ化畳み込みを実施することであって、前記第1階層は、処理するための第1の数のチャネルを採用するが、グループ化畳み込みを実施しない、ことと、
    異なるグループ化係数および第3の数のチャネルを使用して前記第3階層において別個のグループ化畳み込みを実施することと
    をさらに含む、請求項1に記載のモバイル電子デバイス。
  19. 前記第2の数は、前記第1の数を上回り、前記第3の数は、前記第2の数を上回り、前記第3階層のための前記異なるグループ化係数は、前記第2階層のための前記グループ化係数を上回る、請求項18に記載のモバイル電子デバイス。
JP2021568891A 2019-05-21 2020-05-20 手姿勢推定 Active JP7385681B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962850542P 2019-05-21 2019-05-21
US62/850,542 2019-05-21
PCT/US2020/033885 WO2020236993A1 (en) 2019-05-21 2020-05-20 Hand pose estimation

Publications (3)

Publication Number Publication Date
JP2022533206A JP2022533206A (ja) 2022-07-21
JPWO2020236993A5 JPWO2020236993A5 (ja) 2023-05-29
JP7385681B2 true JP7385681B2 (ja) 2023-11-22

Family

ID=73457223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021568891A Active JP7385681B2 (ja) 2019-05-21 2020-05-20 手姿勢推定

Country Status (5)

Country Link
US (1) US11775836B2 (ja)
EP (1) EP3973468A4 (ja)
JP (1) JP7385681B2 (ja)
CN (1) CN113874883A (ja)
WO (1) WO2020236993A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109858524B (zh) * 2019-01-04 2020-10-16 北京达佳互联信息技术有限公司 手势识别方法、装置、电子设备及存储介质
EP3991142A4 (en) 2019-06-28 2023-06-28 Magic Leap, Inc. Fast hand meshing for dynamic occlusion
US11151412B2 (en) * 2019-07-01 2021-10-19 Everseen Limited Systems and methods for determining actions performed by objects within images
US11144790B2 (en) * 2019-10-11 2021-10-12 Baidu Usa Llc Deep learning model embodiments and training embodiments for faster training
CN112767300A (zh) * 2019-10-18 2021-05-07 宏达国际电子股份有限公司 自动生成手部的标注数据的方法和计算骨骼长度的方法
CN112613384B (zh) * 2020-12-18 2023-09-19 安徽鸿程光电有限公司 手势识别方法、手势识别装置及交互显示设备的控制方法
CN112651440B (zh) * 2020-12-25 2023-02-14 陕西地建土地工程技术研究院有限责任公司 基于深度卷积神经网络的土壤有效团聚体分类识别方法
CN112699837A (zh) * 2021-01-13 2021-04-23 新大陆数字技术股份有限公司 一种基于深度学习的手势识别方法及设备
CN112836594B (zh) * 2021-01-15 2023-08-08 西北大学 一种基于神经网络的三维手部姿态估计方法
CN113158774B (zh) * 2021-03-05 2023-12-29 北京华捷艾米科技有限公司 一种手部分割方法、装置、存储介质和设备
CN113222044B (zh) * 2021-05-25 2022-03-08 合肥工业大学 一种基于三元注意力和尺度关联融合的宫颈液基细胞分类方法
WO2022266853A1 (en) * 2021-06-22 2022-12-29 Intel Corporation Methods and devices for gesture recognition
CN113674395B (zh) * 2021-07-19 2023-04-18 广州紫为云科技有限公司 一种基于单目rgb摄像头3d手部轻量级实时捕捉重建系统
KR102542683B1 (ko) * 2021-09-16 2023-06-14 국민대학교산학협력단 손 추적 기반 행위 분류 방법 및 장치
US20230093385A1 (en) * 2021-09-17 2023-03-23 Microsoft Technology Licensing, Llc Visibility-based attribute detection
CN113627397B (zh) * 2021-10-11 2022-02-08 中国人民解放军国防科技大学 一种手部姿态识别方法、系统、设备和存储介质
CN114038037B (zh) * 2021-11-09 2024-02-13 合肥工业大学 基于可分离残差注意力网络的表情标签修正和识别方法
KR20230096730A (ko) * 2021-12-23 2023-06-30 삼성전자주식회사 웨어러블 장치 및 그 제어 방법
WO2023211444A1 (en) * 2022-04-28 2023-11-02 Innopeak Technology, Inc. Real-time on-device large-distance gesture recognition with lightweight deep learning models
CN115601593A (zh) * 2022-10-18 2023-01-13 苏州魔视智能科技有限公司(Cn) 一种图像分类方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180365532A1 (en) 2017-06-20 2018-12-20 Nvidia Corporation Semi-supervised learning for landmark localization
JP2020113055A (ja) 2019-01-11 2020-07-27 セコム株式会社 画像認識装置、画像認識方法、及び画像認識プログラム

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2885823B2 (ja) 1989-04-11 1999-04-26 株式会社豊田中央研究所 視覚認識装置
JPH0695192A (ja) 1991-05-01 1994-04-08 Matsushita Electric Ind Co Ltd 画像認識装置及び画像入力方法
US5291560A (en) 1991-07-15 1994-03-01 Iri Scan Incorporated Biometric personal identification system based on iris analysis
US5579471A (en) 1992-11-09 1996-11-26 International Business Machines Corporation Image query system and method
US5572596A (en) 1994-09-02 1996-11-05 David Sarnoff Research Center, Inc. Automated, non-invasive iris recognition system and method
US5850470A (en) 1995-08-30 1998-12-15 Siemens Corporate Research, Inc. Neural network for locating and recognizing a deformable object
WO1997029437A1 (en) 1996-02-09 1997-08-14 Sarnoff Corporation Method and apparatus for training a neural network to detect and classify objects with uncertain training data
US6121953A (en) 1997-02-06 2000-09-19 Modern Cartoons, Ltd. Virtual reality system for sensing facial movements
CA2199588A1 (en) 1997-03-10 1998-09-10 Efrem Hoffman Hierarchical data matrix pattern recognition and identification system
WO1999022318A1 (en) 1997-10-27 1999-05-06 Massachusetts Institute Of Technology Image search and retrieval system
US6138109A (en) 1997-12-23 2000-10-24 Caterpillar Inc. Neural network diagnostic classification of complex binary systems
US6865302B2 (en) 2000-03-16 2005-03-08 The Regents Of The University Of California Perception-based image retrieval
US6768509B1 (en) 2000-06-12 2004-07-27 Intel Corporation Method and apparatus for determining points of interest on an image of a camera calibration object
GB2364590B (en) 2000-07-07 2004-06-02 Mitsubishi Electric Inf Tech Method and apparatus for representing and searching for an object in an image
US7016532B2 (en) 2000-11-06 2006-03-21 Evryx Technologies Image capture and identification system and process
US7099510B2 (en) 2000-11-29 2006-08-29 Hewlett-Packard Development Company, L.P. Method and system for object detection in digital images
US6829384B2 (en) 2001-02-28 2004-12-07 Carnegie Mellon University Object finder for photographic images
US7152051B1 (en) * 2002-09-30 2006-12-19 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US9153074B2 (en) 2011-07-18 2015-10-06 Dylan T X Zhou Wearable augmented reality eyeglass communication device including mobile phone and mobile computing via virtual touch screen gesture control and neuron command
JP3855939B2 (ja) 2003-01-31 2006-12-13 ソニー株式会社 画像処理装置、画像処理方法及び撮影装置
CA2521165A1 (en) 2003-04-03 2004-10-14 Dublin City University Shape matching method for indexing and retrieving multimedia data
US7362892B2 (en) 2003-07-02 2008-04-22 Lockheed Martin Corporation Self-optimizing classifier
EP2955662B1 (en) 2003-07-18 2018-04-04 Canon Kabushiki Kaisha Image processing device, imaging device, image processing method
US20050114278A1 (en) 2003-08-29 2005-05-26 Mahesh Saptharishi System and methods for incrementally augmenting a classifier
US7593550B2 (en) 2005-01-26 2009-09-22 Honeywell International Inc. Distance iris recognition
CN100573548C (zh) 2004-04-15 2009-12-23 格斯图尔泰克股份有限公司 跟踪双手运动的方法和设备
JP4217664B2 (ja) 2004-06-28 2009-02-04 キヤノン株式会社 画像処理方法、画像処理装置
US7668376B2 (en) 2004-06-30 2010-02-23 National Instruments Corporation Shape feature extraction and classification
US7644049B2 (en) 2004-11-19 2010-01-05 Intel Corporation Decision forest based classifier for determining predictive importance in real-time data analysis
US8488023B2 (en) 2009-05-20 2013-07-16 DigitalOptics Corporation Europe Limited Identifying facial expressions in acquired digital images
US7689008B2 (en) 2005-06-10 2010-03-30 Delphi Technologies, Inc. System and method for detecting an eye
US20060291697A1 (en) 2005-06-21 2006-12-28 Trw Automotive U.S. Llc Method and apparatus for detecting the presence of an occupant within a vehicle
US7603000B2 (en) 2005-08-31 2009-10-13 Siemens Medical Solutions Usa, Inc. System and method for learning relative distance in a shape space using image based features
US8890813B2 (en) 2009-04-02 2014-11-18 Oblong Industries, Inc. Cross-user hand tracking and shape recognition user interface
CN101055620B (zh) 2006-04-12 2011-04-06 富士通株式会社 形状比较装置和方法
US8131011B2 (en) 2006-09-25 2012-03-06 University Of Southern California Human detection and tracking system
KR101363017B1 (ko) 2007-08-23 2014-02-12 삼성전자주식회사 얼굴영상 촬영 및 분류 시스템과 방법
US8180112B2 (en) 2008-01-21 2012-05-15 Eastman Kodak Company Enabling persistent recognition of individuals in images
US8411910B2 (en) 2008-04-17 2013-04-02 Biometricore, Inc. Computationally efficient feature extraction and matching iris recognition
KR101030613B1 (ko) 2008-10-08 2011-04-20 아이리텍 잉크 아이이미지에서 관심영역정보 및 인식적 정보획득방법
US8290208B2 (en) 2009-01-12 2012-10-16 Eastman Kodak Company Enhanced safety during laser projection
US8374404B2 (en) 2009-02-13 2013-02-12 Raytheon Company Iris recognition using hyper-spectral signatures
CN101510218A (zh) 2009-03-26 2009-08-19 阿里巴巴集团控股有限公司 实现图片搜索的方法及网站服务器
US8472120B2 (en) 2010-02-28 2013-06-25 Osterhout Group, Inc. See-through near-eye display glasses with a small scale image source
US8553989B1 (en) 2010-04-27 2013-10-08 Hrl Laboratories, Llc Three-dimensional (3D) object recognition system using region of interest geometric features
EP2569721A4 (en) 2010-05-14 2013-11-27 Datalogic Adc Inc SYSTEMS AND METHODS FOR OBJECT DETECTION USING A LARGE DATABASE
US8824747B2 (en) 2010-06-29 2014-09-02 Apple Inc. Skin-tone filtering
US8467599B2 (en) 2010-09-02 2013-06-18 Edge 3 Technologies, Inc. Method and apparatus for confusion learning
WO2014158345A1 (en) 2013-01-31 2014-10-02 University Of Iowa Research Foundation Methods and systems for vessel bifurcation detection
US8488888B2 (en) 2010-12-28 2013-07-16 Microsoft Corporation Classification of posture states
WO2012142756A1 (zh) 2011-04-20 2012-10-26 中国科学院自动化研究所 基于人眼图像的多特征融合身份识别方法
US9183509B2 (en) 2011-05-11 2015-11-10 Ari M. Frank Database of affective response and attention levels
US8767016B2 (en) 2012-03-15 2014-07-01 Shun-Ching Yang Virtual reality interaction system and method
US9082011B2 (en) 2012-03-28 2015-07-14 Texas State University—San Marcos Person identification using ocular biometrics with liveness detection
EP2648133A1 (fr) 2012-04-04 2013-10-09 Biomerieux Identification de microorganismes par spectrometrie et classification structurée
US9101312B2 (en) 2012-04-18 2015-08-11 TBI Diagnostics LLC System for the physiological evaluation of brain function
JP2013250856A (ja) 2012-06-01 2013-12-12 Mitsubishi Electric Corp 監視システム
US9041622B2 (en) 2012-06-12 2015-05-26 Microsoft Technology Licensing, Llc Controlling a virtual object with a real controller device
US8873812B2 (en) 2012-08-06 2014-10-28 Xerox Corporation Image segmentation using hierarchical unsupervised segmentation and hierarchical classifiers
US9092896B2 (en) 2012-08-07 2015-07-28 Microsoft Technology Licensing, Llc Augmented reality display of scene behind surface
US8369595B1 (en) 2012-08-10 2013-02-05 EyeVerify LLC Texture features for biometric authentication
US10209946B2 (en) 2012-08-23 2019-02-19 Red Hat, Inc. Augmented reality personal identification
US8963806B1 (en) 2012-10-29 2015-02-24 Google Inc. Device authentication
US9111348B2 (en) 2013-03-15 2015-08-18 Toyota Motor Engineering & Manufacturing North America, Inc. Computer-based method and system of dynamic category object recognition
US9269022B2 (en) 2013-04-11 2016-02-23 Digimarc Corporation Methods for object recognition and related arrangements
US9147125B2 (en) 2013-05-03 2015-09-29 Microsoft Technology Licensing, Llc Hand-drawn sketch recognition
US10262462B2 (en) 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US9207771B2 (en) 2013-07-08 2015-12-08 Augmenta Oy Gesture based user interface
US9542626B2 (en) 2013-09-06 2017-01-10 Toyota Jidosha Kabushiki Kaisha Augmenting layer-based object detection with deep convolutional neural networks
US9730643B2 (en) 2013-10-17 2017-08-15 Siemens Healthcare Gmbh Method and system for anatomical object detection using marginal space deep neural networks
US9202144B2 (en) 2013-10-30 2015-12-01 Nec Laboratories America, Inc. Regionlets with shift invariant neural patterns for object detection
US9489765B2 (en) 2013-11-18 2016-11-08 Nant Holdings Ip, Llc Silhouette-based object and texture alignment, systems and methods
US9857591B2 (en) 2014-05-30 2018-01-02 Magic Leap, Inc. Methods and system for creating focal planes in virtual and augmented reality
CN107315249B (zh) 2013-11-27 2021-08-17 奇跃公司 虚拟和增强现实系统与方法
EP3074918B1 (en) 2013-11-30 2019-04-03 Beijing Sensetime Technology Development Co., Ltd. Method and system for face image recognition
US9224068B1 (en) 2013-12-04 2015-12-29 Google Inc. Identifying objects in images
US20150186708A1 (en) 2013-12-31 2015-07-02 Sagi Katz Biometric identification system
US9665606B2 (en) 2014-02-14 2017-05-30 Nant Holdings Ip, Llc Edge-based recognition, systems and methods
WO2015123647A1 (en) 2014-02-14 2015-08-20 Nant Holdings Ip, Llc Object ingestion through canonical shapes, systems and methods
IL231862A (en) 2014-04-01 2015-04-30 Superfish Ltd Image representation using a neural network
US20150296135A1 (en) 2014-04-10 2015-10-15 Magna Electronics Inc. Vehicle vision system with driver monitoring
US9317785B1 (en) 2014-04-21 2016-04-19 Video Mining Corporation Method and system for determining ethnicity category of facial images based on multi-level primary and auxiliary classifiers
WO2015164373A1 (en) 2014-04-23 2015-10-29 Raytheon Company Systems and methods for context based information delivery using augmented reality
US9412176B2 (en) 2014-05-06 2016-08-09 Nant Holdings Ip, Llc Image-based feature detection using edge vectors
AU2015297036B2 (en) 2014-05-09 2017-09-28 Google Llc Systems and methods for discerning eye signals and continuous biometric identification
CN106462940A (zh) 2014-10-09 2017-02-22 微软技术许可有限责任公司 图像中通用对象检测
KR102357326B1 (ko) 2014-11-19 2022-01-28 삼성전자주식회사 얼굴 특징 추출 방법 및 장치, 얼굴 인식 방법 및 장치
US9418319B2 (en) * 2014-11-21 2016-08-16 Adobe Systems Incorporated Object detection using cascaded convolutional neural networks
JP2016126510A (ja) 2014-12-26 2016-07-11 カシオ計算機株式会社 画像生成装置、画像生成方法及びプログラム
CN107636693B (zh) 2015-03-20 2022-01-11 弗劳恩霍夫应用研究促进协会 针对人工神经网络的相关性分数指派
US10246753B2 (en) 2015-04-13 2019-04-02 uBiome, Inc. Method and system for characterizing mouth-associated conditions
KR102393228B1 (ko) 2015-05-11 2022-04-29 매직 립, 인코포레이티드 뉴럴 네트워크들을 활용하여 생체 인증 사용자 인식을 위한 디바이스들, 방법들 및 시스템들
US9747717B2 (en) 2015-05-13 2017-08-29 Intel Corporation Iterative closest point technique based on a solution of inverse kinematics problem
US11423311B2 (en) 2015-06-04 2022-08-23 Samsung Electronics Co., Ltd. Automatic tuning of artificial neural networks
US9836643B2 (en) 2015-09-11 2017-12-05 EyeVerify Inc. Image and feature quality for ocular-vascular and facial recognition
JP6514089B2 (ja) 2015-11-02 2019-05-15 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、および情報処理方法
EP3427192A4 (en) 2016-03-11 2019-03-27 Magic Leap, Inc. STRUCTURAL LEARNING IN NEURAL FOLDING NETWORKS
EP3223183B1 (en) 2016-03-25 2020-11-18 Siemens Healthcare GmbH Case-based reasoning in the cloud using deep learning
KR102648770B1 (ko) 2016-07-14 2024-03-15 매직 립, 인코포레이티드 홍채 식별을 위한 딥 뉴럴 네트워크
US20180024726A1 (en) 2016-07-21 2018-01-25 Cives Consulting AS Personified Emoji
KR20180020043A (ko) 2016-08-17 2018-02-27 삼성전자주식회사 다시점 영상 제어 방법 및 이를 지원하는 전자 장치
KR20180053108A (ko) 2016-11-11 2018-05-21 삼성전자주식회사 홍채 영역 추출 방법 및 장치
US10269159B2 (en) 2017-07-27 2019-04-23 Rockwell Collins, Inc. Neural network foreground separation for mixed reality
KR102602117B1 (ko) * 2017-10-26 2023-11-13 매직 립, 인코포레이티드 딥 멀티태스크 네트워크들에서 적응적 손실 밸런싱을 위한 그라디언트 정규화 시스템들 및 방법들
KR20200029785A (ko) 2018-09-11 2020-03-19 삼성전자주식회사 증강 현실에서 가상 객체를 표시하기 위한 측위 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180365532A1 (en) 2017-06-20 2018-12-20 Nvidia Corporation Semi-supervised learning for landmark localization
JP2020113055A (ja) 2019-01-11 2020-07-27 セコム株式会社 画像認識装置、画像認識方法、及び画像認識プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
岡野 健久、外2名,深度画像を用いた手の姿勢推定と個人認証への応用,2018年 暗号と情報セキュリティシンポジウム(SCIS2018)予稿集 [USB] 2018年 暗号と情報セキュリティシンポジウム概要集 Abstracts of 2018 Symposium on Cryptography and Information Security,2018年

Also Published As

Publication number Publication date
US20200372246A1 (en) 2020-11-26
US11775836B2 (en) 2023-10-03
EP3973468A1 (en) 2022-03-30
CN113874883A (zh) 2021-12-31
JP2022533206A (ja) 2022-07-21
EP3973468A4 (en) 2022-09-14
WO2020236993A1 (en) 2020-11-26

Similar Documents

Publication Publication Date Title
JP7385681B2 (ja) 手姿勢推定
Cong et al. Minimizing computation in convolutional neural networks
JP7431913B2 (ja) 畳み込みニューラルネットワークのための効率的データレイアウト
US10402697B2 (en) Fusing multilayer and multimodal deep neural networks for video classification
TWI775605B (zh) 深度視覺處理器
Elhassouny et al. Trends in deep convolutional neural Networks architectures: A review
CN111767979B (zh) 神经网络的训练方法、图像处理方法、图像处理装置
US20190297326A1 (en) Video prediction using spatially displaced convolution
Ye et al. Inverted pyramid multi-task transformer for dense scene understanding
EP3923233A1 (en) Image denoising method and apparatus
CN110111366A (zh) 一种基于多级损失量的端到端光流估计方法
Schulz et al. Learning Object-Class Segmentation with Convolutional Neural Networks.
Jiao et al. A modified convolutional neural network for face sketch synthesis
US20210073575A1 (en) Switchable propagation neural network
CN111914997B (zh) 训练神经网络的方法、图像处理方法及装置
CN112668366B (zh) 图像识别方法、装置、计算机可读存储介质及芯片
CN109815931A (zh) 一种视频物体识别的方法、装置、设备以及存储介质
CN116229056A (zh) 基于双分支特征融合的语义分割方法、装置、设备
Verelst et al. SegBlocks: Block-based dynamic resolution networks for real-time segmentation
Cao Pose estimation of swimmers from digital images using deep learning
KR20210073300A (ko) 뉴럴 네트워크 장치, 이의 동작 방법 및, 이를 포함하는 뉴럴 네트워크 시스템
Ye et al. Invpt: Inverted pyramid multi-task transformer for dense scene understanding
CN113205137A (zh) 一种基于胶囊参数优化的图像识别方法及系统
Zhang et al. Feature enhancement for joint human and head detection
Yang et al. An optimization high-resolution network for human pose recognition based on attention mechanism

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230519

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230914

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: 20231013

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231110

R150 Certificate of patent or registration of utility model

Ref document number: 7385681

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150