[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN113874883A - 手部姿势估计 - Google Patents

手部姿势估计 Download PDF

Info

Publication number
CN113874883A
CN113874883A CN202080037727.0A CN202080037727A CN113874883A CN 113874883 A CN113874883 A CN 113874883A CN 202080037727 A CN202080037727 A CN 202080037727A CN 113874883 A CN113874883 A CN 113874883A
Authority
CN
China
Prior art keywords
layer
output
block
neural network
blocks
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.)
Pending
Application number
CN202080037727.0A
Other languages
English (en)
Inventor
P·奇达南达
A·T·辛哈
A·S·S·饶
D·B·李
A·拉比诺维奇
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 CN113874883A publication Critical patent/CN113874883A/zh
Pending legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Image Analysis (AREA)

Abstract

用于机器视觉的采用多任务深度学习范式的神经网络包括进一步包括第一层、第二层和第三层的编码器。第二层在第二层中的一个或多个第二层单元处从第一层接收第一层输出。第三层在第三层中的一个或多个第三层单元处从第二层接收第二层输出。第一、第二和第三层单元每个分别包括一个或多个第一、第二和第三层区块。神经网络进一步包括:解码器,其可操作地耦合到编码器以接收来自编码器的编码器输出;以及一个或多个损失函数层,其被配置为反向传播一个或多个损失,以至少训练采用深度学习范式的神经网络的编码器。

Description

手部姿势估计
背景技术
手部姿势估计是增强现实(AR)/虚拟现实(VR)/混合现实(MR)/扩展现实(XR)应用的关键组成,以实现无控制器交互。手部姿势估计可以有不同的形式,诸如(1)简单的离散姿势分类,(2)可见骨骼关节位置的2D(二维)手部关键点估计,(3)2.5D(二维半)或混合3D(三维)手部关键点估计,其中使用对应的深度值将2D关键点估计提升到2.5D,(4)3D手部关键点估计,以及(5)完全铰接(articulate)的3D手部形状和姿势跟踪。
语义分割的研究(相当于向输入图像的每个像素分配语义标签)是计算机视觉中的一项基本任务。可广泛应用于诸如自动驾驶和视频监控等领域。这些应用对快速交互或响应的高效推理速度有很高的要求。另一方面,语义分割通常使用需要训练和/或深度学习能力的神经网络,并且因此不仅需要大量的计算和存储资源,而且由于大量的计算和存储资源而导致更高的功耗资源。因此,尽管语义分割可能在可穿戴设备(诸如VR、AR、MR、和/或XR设备)中具有实际的或甚至是理想的应用。尽管如此,如果对于可穿戴设备来说不是完全不切实际的话,则计算和存储资源的要求以及功耗中的任何一个都使得具有语义分割的计算机视觉的实际实现变得困难。
因此,需要一种不仅具有深度学习和训练能力而且对于包括可穿戴设备的广泛应用领域也是实用的神经网络。
发明内容
一些实施例涉及用于具有移动电子设备的机器视觉的采用多任务深度学习范例的神经网络。所述神经网络包括编码器,所述编码器包括第一层、第二层和第三层,其中,所述第一层包括第一层单元,所述第一层单元包括一个或多个第一单元区块,所述第二层在所述第二层中的一个或多个第二层单元处接收来自所述第一层的第一层输出,第二层单元包括一个或多个第二层区块,所述第三层在所述第三层中的一个或多个第三层单元处接收来自所述第二层的第二层输出,以及第三层单元包括一个或多个第三层区块。所述神经网络还包括解码器,所述解码器可操作地被耦合到所述编码器以接收来自所述编码器的编码器输出,以及一个或多个损失函数层,其被配置为反向传播一个或多个损失,以用于至少训练采用深度学习范式的所述神经网络的所述编码器。
在一些实施例中,所述第一层单元中的所述一个或多个第一单元区块包括在逻辑上被批标准化层跟随的卷积层,所述批标准化层进一步在逻辑上被尺度层跟随,并且所述一个或多个第一单元区块还包括在逻辑上跟随所述尺度层的修正线性单元。
另外地或可替代地,所述神经网络中的所述第二层包括第一第二层单元和第二第二层单元,其中,所述第一第二层单元接收来自所述第一层的第一层输出,并包括第一第二层第一单元区块和第二第二层第一单元区块,所述第一第二层第一单元区块和所述第二第二层第一单元区块二者分别包括被尺度层跟随的批标准化层,所述尺度层进一步在逻辑上被修正线性单元跟随,所述第一第二层第一单元区块中的所述批标准化层在逻辑上跟随第一卷积层,所述第二第二层第一单元区块中的所述批标准化层在逻辑上跟随第二卷积层,以及所述第一卷积层与所述第二卷积层不同。
在一些紧接在前的实施例中,所述第二第二层单元包括接收来自所述第二第二层第一单元区块和所述第一层输出的级联输出的第一第二层第二单元区块、第二第二层第二单元区块、以及第三第二层第二单元区块,所述第一第二层第二单元区块、所述第二第二层第二单元区块和所述第三第二层第二单元区块分别包括被所述尺度层跟随的所述批标准化层,所述尺度层进一步在逻辑上被所述修正线性单元跟随,所述第一第二层第二单元区块中的所述批标准化层在逻辑上跟随所述第二卷积层,所述第二第二层第二单元区块中的所述批标准化层在逻辑上跟随所述第一卷积层,所述第三第二层第二单元区块中的所述批标准化层在逻辑上跟随所述第二卷积层,以及所述第三第二层第二单元区块被配置为生成第二层输出。
在一些实施例中,由所述第一层生成的第一层输出与由所述第二层生成的第二层输出级联并被提供给所述第三层作为第三层输入,其中,所述第三层包括第一第三层单元和第二第三层单元,所述第一第三层单元包括位于相应的第一单元层级的多个第三层第一单元区块,以及所述多个第三层第一单元区块中的至少一些包括与多于一个第一空洞因子对应的不同空洞卷积层。
在一些紧接在前的实施例中,所述第二第三层单元包括位于相应的第二单元层级的多个第三层第二单元区块,所述多个第三层第二单元区块中的至少一些包括与多于一个第二空洞因子对应的多个空洞卷积层,并且所述多个第三层第一单元区块和所述多个第三层第二单元区块包括至少一个相应的空洞卷积层和多个相应的残差区块,以用于至少训练采用所述深度学习范式的所述神经网络的所述编码器。
在一些实施例中,第二层输出被提供给所述第三层作为第三层输入,并且还与由所述第三层生成的第三层输出级联作为用于所述神经输出的最终级联输出,并且至少训练采用所述深度学习范式的所述神经网络的所述编码器包括:至少使用激活层和交叉熵损失来反向传播所述一个或多个损失。
一些实施例涉及一种具有神经网络的嵌入式实现的移动电子设备,包括:移动通信设备;以及用于机器视觉的采用多任务深度学习范式的神经网络的嵌入式实现,其中,采用所述嵌入式实现的所述神经网络包括:视觉处理单元,其具有多个超高视觉处理器或处理器核;编码器,其包括第一层、第二层和第三层,其中,所述第一层包括第一层单元,所述第一层单元包括一个或多个第一单元区块,所述第二层在所述第二层中的一个或多个第二层单元处接收来自所述第一层的第一层输出,第二层单元包括一个或多个第二层区块,所述第三层在所述第三层中的一个或多个第三层单元处接收来自所述第二层的第二层输出,以及第三层区块包括一个或多个第三层区块。
在这些实施例中的一些实施例中,所述第一层单元中的所述一个或多个第一单元区块包括在逻辑上被批标准化层跟随的卷积层,所述批标准化层进一步在逻辑上被尺度层跟随,并且所述一个或多个第一单元区块还包括在逻辑上跟随所述尺度层的修正线性单元。
另外地或可替代地,所述神经网络中的所述第二层包括第一第二层单元和第二第二层单元,其中,所述第一第二层单元接收来自所述第一层的第一层输出,并包括第一第二层第一单元区块和第二第二层第一单元区块,所述第一第二层第一单元区块和所述第二第二层第一单元区块二者分别包括被尺度层跟随的批标准化层,所述尺度层进一步在逻辑上被修正线性单元跟随,所述第一第二层第一单元区块中的所述批标准化层在逻辑上跟随第一卷积层,所述第二第二层第一单元区块中的所述批标准化层在逻辑上跟随第二卷积层,以及所述第一卷积层与所述第二卷积层不同。
在一些实施例中,由所述第一层生成的第一层输出与由所述第二层生成的第二层输出级联并被提供给所述第三层作为第三层输入,其中,所述第三层包括第一第三层单元和第二第三层单元,所述第一第三层单元包括位于相应的第一单元层级处的多个第三层第一单元区块,以及所述多个第三层第一单元区块中的至少一些包括与多于一个第一空洞因子对应的不同空洞卷积层。
在一些紧接在前的实施例中,所述第二第三层单元包括位于相应的第二单元层级的多个第三层第二单元区块,所述多个第三层第二单元区块中的至少一些包括与多于一个第二空洞因子对应的多个空洞卷积层,并且所述多个第三层第一单元区块和所述多个第三层第二单元区块包括至少一个相应的空洞卷积层和多个相应的残差区块,以用于至少训练采用所述深度学习范式的所述神经网络的所述编码器。
另外地或可替代地,第二层输出被提供给所述第三层作为第三层输入,并且还与由所述第三层生成的第三层输出级联作为用于所述神经输出的最终级联输出,并且至少训练采用所述深度学习范式的所述神经网络的所述编码器包括:至少使用激活层和交叉熵损失来反向传播所述一个或多个损失。
一些实施例涉及一种用于机器视觉的采用多任务深度学习范式的神经网络,包括:空间路径层,其被配置为在空间路径中保留输入数据集中的空间信息,其中,所述空间路径对所述空间信息进行编码;上下文路径层,其被配置为通过使用上下文路径来增加所述神经网络的感受野,其中,所述上下文路径对所述输入数据集中的上下文信息进行编码;以及特征融合层,其被配置为融合来自所述空间路径层的第一输出和来自所述上下文路径的第二输出。
在这些实施例中的一些实施例中,所述空间路径层包括:编码器,其包括第一层、第二层和第三层,其中,所述第一层包括第一层单元,所述第一层单元包括一个或多个第一单元区块,所述第二层在所述第二层中的一个或多个第二层单元处接收来自所述第一层的第一层输出,第二层单元包括一个或多个第二层区块,所述第三层在所述第三层中的一个或多个第三层单元处接收来自所述第二层的第二层输出,以及第三层区块包括一个或多个第三层区块。
在一些紧接在前的实施例中,所述空间路径层还包括:解码器,其可操作地被耦合到所述编码器以接收来自所述编码器的编码器输出;以及一个或多个损失函数层,其被配置为反向传播一个或多个损失,以用于至少训练采用深度学习范式的所述神经网络的所述编码器。
在一些实施例中,所述第二层包括第一第二层单元和第二第二层单元,其中,所述第一第二层单元接收来自所述第一层的第一层输出,并包括第一第二层第一单元区块和第二第二层第一单元区块,所述第一第二层第一单元区块和所述第二第二层第一单元区块二者分别包括被尺度层跟随的批标准化层,所述尺度层进一步在逻辑上被修正线性单元跟随,所述第一第二层第一单元区块中的所述批标准化层在逻辑上跟随第一卷积层,所述第二第二层第一单元区块中的所述批标准化层在逻辑上跟随第二卷积层,所述第一卷积层与所述第二卷积层不同,以及所述第一层单元中的所述一个或多个第一单元区块包括在逻辑上被批标准化层跟随的卷积层,所述批标准化层进一步在逻辑上被尺度层跟随,并且所述一个或多个第一单元区块还包括在逻辑上跟随所述尺度层的修正线性单元。
在一些实施例中,所述上下文路径层包括:轻量模型,其被配置为至少部分地基于由所述轻量模型提供给所述神经网络的感受野来对输入图像进行下采样;以及池化层,其被耦合到所述轻量模型并且在逻辑上被卷积层跟随,所述池化层被配置为捕获所述上下文信息。
在紧接在前的一些实施例中,所述神经网络还包括:注意力细化层,其可操作地被耦合到所述多个池化层并被配置为确定用于指导特征选择或组合的注意力向量,其中特征融合层,其被配置为融合来自所述空间路径层的空间路径输出和来自所述上下文路径层的上下文路径输出;第一损失函数,其被配置为训练所述空间路径层;以及第二损失函数,其被配置为训练所述上下文路径层。
在详细说明、附图和权利要求中描述了本公开的附加和其它目的、特征和优点。
附图说明
附图说明了本发明的优选实施例的设计和效用,其中相似的元件由共同的附图标记表示。为了更好地理解本发明的上述和其它优点和目的是如何获得的,将参考附图所示的具体实施例对以上简要描述的本发明进行更具体的描述。理解这些附图仅描绘了本发明的典型实施例并且因此不被认为是对其范围的限制,将通过使用附图以附加的特性和细节描述和解释本发明,在附图中:
图1示出在一些实施例中的图像中关于用户的左手的关键点的第一子集和第二子集的示例。
图2示出在一些实施例中具有用于实现计算机视觉的多层处理块的神经网络的简化示例。
图3示出在一些实施例中的示例神经网络的多个层中的第一层的简化示例。
图4A-4B示出在一些实施例中的示例神经网络的多个层中的第二层的简化示例。
图5A-5F示出在一些实施例中的示例神经网络的多个层中的第三层的简化示例。
图6A示出可以在一些实施例中在在此所述的神经网络中所使用的一组1-3-1卷积模块或层的简化示例。
图6B示出在一些实施例中具有可以在在此所述的神经网络中所使用的一组1-3-1卷积模块或层的残差区块的简化示例。
图6C示出在一些实施例中具有可以在在此所述的神经网络中所使用的图6B中所示的四个残差模块的区块的简化示例。
图6D示出在一些实施例中包括多个区块的单元的简化示例。
图6E示出在一些实施例中在多个单元之间级联多个输入和/或输出的简化示例。
图6F示出在一些实施例中具有多个层的编码器的简化示意性示例。
图6G示出在一些实施例中包括多个层的网络架构的简化示例,每个层具有一个或多个区块的一个或多个单元。
图6H示出在一些实施例中具有多个不同层的注意力区块的简化示例。
图6I示出在一些实施例中具有多个模块或层的特征融合区块的简化示例。
图7A示出在一些实施例中在保留空间信息并增强计算机视觉的感受野的同时采用多任务深度学习和神经网络的语义分割的高级示意框图。
图7B示出在一些实施例中具有3×3感受野的一(1)空洞卷积的简化示例。
图7C示出在一些实施例中从图7B中的一空洞卷积产生并具有7×7的感受野的两(2)空洞卷积的简化示例。
图7D示出在一些实施例中从图7C中的二空洞卷积产生并具有11×11的感受野的三(3)空洞卷积的简化示例。
图7E示出在一些实施例中从图7D中的二空洞卷积产生并具有15×15的感受野的四(4)空洞卷积的简化示例。
图8A示出在一些实施例中采用在XR眼镜外部的腰包的可穿戴XR设备的简化示例。
图8B示出在一些实施例中在采用图8A中所示的腰包的可穿戴XR设备上嵌入式实现神经网络的简化示例。
图8C示出在一些实施例中在图8B中所示的嵌入式实现的一些操作的高级示例框图。
图9A示出在一些实施例中在具有三个示例层的神经网络中的一些示例操作的高级示例框图。
图9B示出在一些实施例中在神经网络中的多任务深度学习的高级示例框图。
图9C示出在一些实施例中关于图9B中所示的神经网络中的多任务深度学习的高级示例框图的一部分的更多细节。
图9D示出在一些实施例中关于图9B中所示的神经网络中的多任务深度学习的高级示例框图的一部分的更多细节。
图9E示出在一些实施例中关于图9D中所示的神经网络中的多任务深度学习的高级示例框图的一部分的更多细节。
图9F示出在一些实施例中关于图9B中所示的神经网络中的多任务深度学习的高级示例框图的另一部分的更多细节。
图10A示出在一些实施例中在保留空间信息和增强计算机视觉的感受野的同时采用多任务深度学习和级联空洞阶梯(CDL)神经网络的语义的另一个高级示意框图。
图10B示出在一些实施例中采用多任务深度学习的神经网络中的多个层编码器架构的另一个高级示意框图。
具体实施方式
本公开的各种实施例涉及在单个实施例中或在一些实施例中用于在保留空间信息和增强计算机视觉的感受野的同时采用多任务深度学习和神经网络实现语义分割的方法、系统和制品。在详细说明、附图和权利要求中描述了本发明的其它目的、特征和优点。
现在将参考附图详细描述各种实施例,各种实施例被提供作为本发明的说明性示例以使本领域技术人员能够实践本发明。应注意,以下附图和实施例并不意味着限制本发明的范围。在本发明的某些要素可以使用已知组件(或方法或过程)被部分或完全实现的情况下,将仅描述此类已知组件(或方法或过程)中对于理解本发明所必需的那些部分,并且将省略此类已知组件(或方法或过程)的其它部分的详细描述,以免混淆本发明。此外,各种实施例包括在此通过说明的方式提及的组件的当前和未来已知的等效物。
在以下描述中,阐述了某些具体细节以提供对各种公开实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有这些特定细节中的一个或多个细节的情况下,或者在具有其它方法、组件、材料等的情况下来实践实施例。在其它情况下,未详细示出或描述与虚拟和增强现实系统相关联的众所周知的结构,以避免不必要地模糊实施例的描述。
除非上下文另有要求,在整个说明书和随后的权利要求中,词语“包括”及其变体,诸如“包括”和“包含”应被解释为开放的、包容性的意义,即“包括但不仅限于”。
在整个说明书中对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性被包括在至少一个实施例中。因此,在本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式进行组合。
本公开中的一些实施例主要涉及(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手部姿势估计可能包括以自我为中心(egocentric)的图像(其由深度传感器捕获)上的关节(joint)位置的2D关键点估计,并使用对应的深度值提升(例如,投影)到2.5D。与现有技术架构相比,在此公开的网络架构中的模块可共同导致3%的浮点运算(flop count)和2%的参数数量。可以使用辅助多任务训练策略来补偿在此公开的网络架构的小能力(capacity),同时实现与MobileNetV2相当的性能。在一些示例中,经过32位训练的模型可能具有小于300KB的存储器占用,以超过50Hz的频率且少于35MFLOP(每秒百万次浮点运算)操作。
包括例如AR/VR/MR/XR可穿戴设备的移动电子设备的基于视觉的手部跟踪系统的输入可以是例如单眼红-绿-蓝(RGB)/灰度图像或深度图像。对于3D姿势估计,基于深度的方法通常优于基于RGB的方法。在一些实施例中,输出深度图像的基于深度的方法可以使用飞行时间(TOF)深度传感器。
真实数据(Ground-truth)图像可以用M个关键点例如由标记器(labeler)标记。真实数据图像可以用可视关键点(例如,真实数据图像中可视的关键点)标记,其对应于所有可视关键点。真实数据图像可以是一个或多个相位图像/深度图像(如下所述)的直方图均衡版本。在一些实施例中,在此公开的网络架构可以预测N个关键点。在一些实施例中,N可以小于M。附加关键点(例如,在M中但不在N中的关键点)可以用作辅助(auxiliary)监督。图(附图)1示出根据一些实施例的手部关键点。
主要标签是在此公开的网络架构预测的N个关键点,并且主要标签和辅助标签的组合是真实数据图像可以标记的M个关键点。
在一些实施例中,可以用17个关键点标记图像并且在此公开的网络架构可以预测8个关键点,并且附加关键点(例如,17-8个)可以用作辅助监督。在一些实施例中,可以用27个关键点标记图像,并且在此公开的网络架构可以预测15个关键点,并且附加关键点(例如,27-15)可以用作辅助监督。本领域的普通技术人员将理解标记的关键点的数量(M)和预测的关键点的数量(N)可以变化。
手部的图像也可以以下用来标记:8个离散的手部关键姿势类,包括例如OK、张开手、捏合、C姿势、拳头、L姿势、指向和竖起大拇指,捕获所有其它关键姿势(例如,非关键姿势)的伪(dummy)类,以及右手/左手分配。在一些实施例中,附加标签充当监督任务。
为了避免类似手部的(干扰物)对象混淆预测,包含手部的真实数据图像可以与包含具有挑战性的干扰物对象的不同背景合成。通过在受控环境中收集数据并使用增强,可以扩展训练数据以推广到不同的环境。由于大多数收集的数据(例如,真实图像)对应于执行单手交互的用户,因此可能会在数据集中引入偏差(skew)。为了减轻这种情况,可以从不同的图像合成左手和右手。
图2示出根据一些实施例的示例网络架构。蓝色部分用于训练和嵌入式实现,而其余部分仅用作训练期间的辅助监督。
在一些实施例中,图2中的输入图像可以是一个或多个相位(phase)图像、一个或多个深度图像、一个或多个振幅图像、一个或多个RGB图像、一个或多个灰度图像、或它们的任何组合,但是在一些实施例中深度图像已示出改进的性能,其接收其它类型的图像作为输入。振幅图像可以包括多个相位图像的组合(例如,线性组合)。在使用相位图像的示例中,TOF深度传感器捕获相位图像,可以使用后处理将其变换为深度图像。
用于对相位图像进行后处理以计算深度图像的计算时间可以将相当大的一部分添加到用于手部跟踪的端到端时延中。在一些实施例中,可以使用相位图像的线性组合(也称为振幅图像)以并行执行2D关键点估计和执行深度图像处理,有效地减少整体时延。如在此所讨论的,这可以通过替代实现并行深度处理来提高性能,同时去除顺序深度处理的时延。在一些实施例中,可以修改输入图像,使得修改的输入图像中的行数有利于在此所述的网络架构,例如使得修改的输入图像中的行数是4、8、16等的倍数,或与在此公开的网络架构的通道/深度的数量相关的一些其它数字。
“主编码器:层(layer)1”将被称为“层(tier)1”,“主编码器:层2”将被称为“层2”,而“主编码器:层3”将被称为“层3”。每个层的输出是一组激活图。
卷积(下文中的Conv)批标准化(batnorm)(下文中的批标准化或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中所示。卷积操作是将较小的滤波器线性应用于较大的输入,从而产生输出特征图(map)。应用于输入图像或输入特征图的滤波器总是产生单个数字。滤波器对输入的系统性从左到右和从上到下应用导致二维特征图。
滤波器具有与输入相同的深度或通道数,然而,不管输入的深度和滤波器如何,所得输出是单个数字并且一个滤波器创建具有单个通道的特征图。例如,如果输入具有一个通道(诸如灰度图像),则将在3×3×1区块中应用3×3滤波器。作为另一示例,如果输入图像具有红色、绿色和蓝色三个通道,则将在3×3×3区块中应用3×3滤波器。作为另一示例,如果输入是来自另一个卷积或池化层的特征图区块并且具有64的深度,则3×3滤波器将应用在3×3×64区块以创建构成单个输出特征图的单个值。关于卷积的更多细节将在下面描述。
图4A-4B示出在一些实施例中示例神经网络的多个层中的第二层的简化示例。更特别地,图4A示出第二层的简化示例。单元1(400A)包括第一区块402。第一区块402包括两个区块,其中第一区块402包括被批标准化层(BN)跟随的3×3卷积层(3×3Conv),该批标准化层(BN)进一步被尺度层(SC)跟随。修正线性单元(ReLU)跟随尺度层(SC)。第一单元400A中的第二区块404也类似地包括进一步被尺度层(SC)跟随的批标准化层(BN)。修正线性单元(ReLU)跟随尺度层(SC)。第二区块404与第一区块402的不同之处在于,第二区块404不具有3×3卷积层,而是包括被批标准化层跟随的1×1卷积层。
卷积是信号处理、图像处理和其它工程或科学领域中广泛使用的技术,并且被定义为两个函数的乘积在反转和移位之后的积分。信号和图像处理中的卷积类似于深度学习和神经网络中的卷积,因为卷积的目的是从输入中提取有用的特征。例如,在图像或信号处理中,可以选择多种不同的滤波器进行卷积,并且每种类型的滤波器都有助于从输入图像中提取不同的方面或特征。类似地,在卷积神经网络中,可以使用在训练期间自动学习权重的滤波器来通过卷积提取不同的特征,并且然后所有这些提取的特征可以“组合”以做出决策。
深度学习中的卷积本质上是信号或图像处理中的互相关,并且因此与信号处理中的卷积略有不同。更具体地,卷积层中的滤波器不是反转的(reverse),而是通常被称为两个滤波器函数的滑动(sliding)点积或滑动内积。也就是说,卷积在深度学习和神经网络中是逐元素的乘法和加法。
在一些实施例中,1×1卷积层对于输入中的每个通道具有单个参数或权重,并且与任何滤波器的应用一样,产生单个输出值。也就是说,1×1的卷积层不涉及输入图像中的任何相邻像素。因此,由1×1卷积层执行的操作可能是输入的线性加权或投影(project)。1×1卷积层的该结构因此允许1×1卷积层像单个神经元一样工作,其输入来自横跨输入中特征图中的每个特征图的相同位置(例如,来自层1输出304)。然后可以以一(1)的步幅系统地应用该单个神经元,例如,从左到右和从上到下,无需任何填充,从而产生与输入具有相同宽度和高度的特征图。因此,1×1的卷积可以沿着通道数的方向减少维度,同时保持其它维度不变,以免丢失太多有用的信息,也不必学习新的参数来实现其目的。因此,可以在卷积神经网络中的任何一点使用1×1卷积层来控制特征图的数量。此外,1×1卷积还可以提供高效的低维嵌入或特征池化,其中1×1卷积将单独的通道或特征嵌入到单个通道或特征中。
3×3卷积层以例如自上而下和从左到右的方式在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矩阵。对于具有三个通道的输入图像(例如,RGB图像),这会导致滤波器具有3×3×3矩阵,并且三个通道的相应结果与逐元素相加求和以形成一个单个通道(3×3×1),这是使用3×3×3滤波器矩阵对输入应用卷积的结果。应注意,上述1×1卷积层和3×3卷积层仅在输入图像的两个方向(例如高度和宽度)中移动。对于3D图像,该方法可以很容易地扩展为首先以基本上相似的两个方向方式在第一深度处移动滤波器矩阵,并且然后通过剩余深度进行移动以实现3D卷积。在一些实施例中,对3D图像实现具有2D滤波器的卷积的一种方式可以包括在深度方向中应用1×1卷积。
批标准化层(BN)(或简称batchnorm)可用于协调在此所述的神经网络中的多个层的更新。当应用于计算机视觉中的图像时,批标准化也可以称为“白化”。此外,批标准化被应用于训练非常深的神经网络,在一些实施例中,该神经网络将输入标准化为每个小批的层,以便稳定学习过程并减少训练深度网络所需的训练时期数。在一些实施例中,对层的输入进行标准化对网络的训练具有影响,减少了所需的时期数。批标准化也可具有正则化效果,就像使用激活正则化一样减少泛化误差。此外,可以在训练期间通过例如计算每个输入变量到每个小批的层的平均值和标准偏差并使用这些统计数据来执行标准化,从而实现批标准化。或者,批标准化横跨小批可以保持平均值和标准偏差的运行平均值。训练之后,该层的输入的统计数据(例如,平均值和标准偏差)可以设定为在训练数据集上观察到的平均值。
在神经网络中,通常使用激活函数负责将来自节点的求和加权输入变换为节点的激活或该输入的输出。修正线性激活函数是分段线性函数,如果为正则直接输出该输入,否则输出零。通常,使用ReLU的神经网络模型更容易训练,并且通常可以获得更好的性能。在此描述的神经网络可以包括多层节点并且学习将输入的示例映射到输出。对于给定节点,输入可以乘以节点中的权重并加在一起形成如下值,该值可以称为节点的总和激活(summed activation)。总和激活然后可以经由激活函数进行变换,并定义节点的特定输出或“激活”。简单的激活函数称为线性激活,其中根本不应用任何变换。只具有线性激活函数的神经网络很容易训练,但不能学习复杂的映射函数。在一些实施例中,线性激活函数可用于预测例如量(例如回归问题)的神经网络的输出层。一些其它实施例采用非线性激活函数以允许节点学习数据中更复杂的结构。
传统上,两种广泛使用的非线性激活函数是sigmoid和双曲正切激活函数。sigmoid激活函数(也称为逻辑函数)传统上是神经网络中非常流行的激活函数。函数的输入被变换为0.0到1.0之间的值。远大于1.0的输入被变换为值1.0,类似地,远小于0.0的值被捕捉到0.0。所有可能输入的函数形状都是从0到0.5到1.0的S形。Sigmoid一直是神经网络上使用的默认激活之一。双曲正切函数(或简称tanh)是一种形状相似的非线性激活函数,其输出-1.0和1.0之间的值。
有时选择优于sigmoid激活函数的tanh函数,因为使用该tanh激活函数的神经网络更容易训练并且通常呈现更好的预测性能。sigmoid和tanh函数二者的缺点是,分别对于tanh和sigmoid,它们往往在大值捕捉到1.0并且小值捕捉到-1或0时趋于饱和。此外,该函数通常只对其输入中点附近的变化敏感,诸如sigmoid为0.5,并且tanh为0.0。无论作为输入提供的节点的总和激活是否包含有用信息,函数的有限敏感性和饱和度都会发生。一旦饱和,学习算法就很难继续调节权重以提高模型的性能。最后,由于通过GPU的非常深的神经网络使用sigmoid和tanh激活函数提高了硬件的能力,因此不容易训练。
为了使用具有误差反向传播的梯度下降来训练深度神经网络,需要看起来和行为像线性函数但实际上是非线性函数的激活函数,允许学习数据中的复杂关系。激活函数还可以对激活总和输入提供更高的敏感性并避免容易饱和。修正线性激活函数(或者简称ReL)可以满足这些所需的特性。实现该激活函数的节点或单元称为修正线性激活单元,或简称ReLU。在一些实施例中,将修正线性函数用于例如一个或多个隐藏层的神经网络可被称为修正网络。
修正线性激活函数包括简单的计算,该计算直接返回作为输入提供的值,或者如果输入为0.0或更小则返回值0.0。该简单的计算可以用简单的if语句来描述:如果输入>0:返回输入else:返回0,或者用数学描述该函数g():g(z)=max{0,z}。可以看出,修正线性函数对于大于零的值是线性的—修正线性激活函数在使用反向传播训练神经网络时具有线性激活函数的许多理想特性。然而,修正线性激活函数是非线性函数,因为负值总是输出为零。
尺度层(SC)被构造成空间金字塔状结构以在多个尺度上稳健地处理对象(例如,对象的分割),使得这些尺度层分别以多个采样率探测具有对应滤波器的传入(incoming)卷积特征层和有效的视野,从而在多个尺度上捕获对象和图像上下文。另外或可替代地,对象可以以多个尺度存在。传统方法通常通过向传统神经网络呈现同一图像的重新缩放版本,并且然后通过聚合特征或特征图来应对由多个不同尺度引起的挑战。这些传统方法可能会提高性能,但代价是在所有神经网络层处计算输入图像的多个缩放版本的特征响应。与这些传统方法不同,一些实施例采用计算高效的方案,在卷积之前以多种速率对特征层进行重采样,以便采用具有互补有效视野的多个滤波器探测原始输入图像,从而在多个尺度上捕获对象以及有用的图像上下文。这些实施例不是实际重采样特征,而是使用具有不同采样率和不同尺度的多个并行卷积层有效地实现该映射。
单元2包括三个区块—412、414和416。第一区块412包括跟随有批标准化层(BN)的1×1卷积层(1×1conv),该批标准化层(BN)进一步跟随有尺度层(SC)。修正线性单元在第一区块412中跟随尺度层。类似于第一区块412,第二区块414也包括进一步跟随有尺度层(SC)的批标准化层(BN)。修正线性单元在第一区块414中跟随尺度层。第一区块412和第二区块414之间的区别在于,第二单元414包括跟随有批标准化层的3×3卷积,而不是具有1×1卷积。第三区块416A包括与第二区块414相同的区块集合,并且因此在此将不重复描述。
如上所述,第二层包括两个单元—单元1(400A)和单元2(408A)。此外,单元1的输出可以在层2单元2级联输入模块(406A)处与层1输出(304)级联以向单元2提供输入。此外,第二单元(408A)的池化输出414可以在层2级联输出模块410A处与池化输出416A级联,以用作到层3的级联输入,这将在下面参考图5A-5F进行更详细的描述。
图4B示出根据一些实施例的神经网络的层2。在这些实施例中,层2可以包括两个单元(例如,第一单元402B和第二单元404B)。第一单元402B可以包括两个Conv-BN-SC-ReLU区块,诸如上面参考图4A中的参考标记402和404描述的那些区块。
第二单元404B可以包括三个区块(例如,如以上参考图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个。例如,第一区块402B的输出可以在层2单元2级联输入(406A)处与层1的池化输出级联,以针对第二单元404B提供级联输入。此外,第一单元402B的池化输出也可以在层2级联输出410A处与第二单元404B的池化输出级联,其然后可以提供该级联输出(来自层2单元1和层2单元2)作为第三层(层3)的级联输入。
图5A-5E示出根据一些实施例的神经网络的层3。层3可包括两个单元(例如,第一单元和第二单元)。在一些实施例中,层3可以包括三个单元—单元1和单元2。图5A-5B和图5C的一部分示出层3的单元1的组件。在这些实施例中,层3的单元1可以包括多个区块,该区块包括基本区块504F、第一残差区块506F、第二残差区块510F、第三残差区块514F和第四残差区块518F。
层3中的单元1的基本区块504F包括三个子区块。第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。第一子区块接收来自层2(410A)的级联输出作为层3中单元1的基本区块的第一子区块的输入。层3中单元1的基本区块中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。第二子区块接收第一子区块的输出作为第二子区块的输入。层3中单元1的第三子区块具有与第二子区块相同的组件,例外之处在于第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为第三子区块的输入。
第一残差区块506F也具有三个子区块。第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。基本区块504F的输出被提供给第一子区块作为输入。第一子区块接收来自基本区块504F的第三子区块的输出作为对第一残差区块506F的第一子区块的输入。层3中单元1的第一残差区块506F中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。第一残差区块506F中的第二子区块接收第一子区块的输出作为第二子区块的输入。层3单元1的第一残差区块506F的第三子区块具有与第二子区块相同的组件,例外之处在于第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为到第三子区块的输入。
第一残差区块506F的池化输出可以在层3单元1残差1连接(508F)处与基本区块504F的池化输出组合以向层3中单元1的第二残差区块510F提供输入。第二残差区块510F,与第一残差区块一样,也可以具有三个子区块。
更具体地,第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。来自基本区块504F和第一残差区块506F二者的组合输出(508F)可以作为输入提供给第二残差区块的第一子区块。层3中单元1的第二残差区块510F中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。第二残差区块510F中的第二子区块接收第一子区块的输出作为第二子区块的输入。层3中单元1的第二残差区块510F的第三子区块具有与第二子区块相同的组件,例外之处在于第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为到第三子区块的输入。第二残差区块510F的第三子区块的池化输出也可与上述组合输出(508F)组合为层3单元1残差2组合输出(512F),以进一步提供给层3中单元1的第三残差区块514F。
第二残差区块510F的池化输出可以与组合输出(508F)组合为层3单元1残差2组合输出(512F)以向层3中单元1的第三残差区块514F提供输入。第三残差区块514F,与第一残差区块和第二残差区块一样,也可以具有三个子区块。
更具体地,第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。来自组合输出(508F)和来自第二残差区块510F的池化输出二者的组合输出(512F)可以作为输入提供给第三残差区块514F的第一子区块。层3中单元1的第三残差区块514F中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。第三残差区块514F中的第二子区块接收第一子区块的输出作为第二子区块的输入。层3中单元1的第三残差区块514F的第三子区块具有与第二子区块相同的组件,例外之处在于第三子区块中的第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为第三子区块的输入。第三残差区块514F的第三子区块的池化输出也可与上述组合输出(512F)组合为层3单元1残差3组合输出(516F),可以进一步提供给层3中单元1的第四残差区块518F。
第三残差区块514F的池化输出可以与组合输出(512F)组合为层3单元1残差3组合输出(516F)以向层3中单元1的第四残差区块518F提供输入。第四残差区块518F,与第一残差区块、第二残差区块和第三残差区块一样,也可以具有三个子区块。
更具体地,第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。来自组合输出(512F)和来自第三残差区块514F的池化输出二者的组合输出(516F)可以作为输入提供给第四残差区块518F的第一子区块。层3中单元1的第四残差区块518F中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。第四残差区块518F中的第二子区块接收第一子区块的输出作为第二子区块的输入。层3中单元1的第四残差区块518F的第三子区块与第二子区块具有相同的组件,例外之处在于第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为第三子区块的输入。第四残差区块518F的第三子区块的池化输出也可与上述组合输出(516F)组合为层3单元1残差4组合输出(520F),以可以进一步提供给层3中单元1作为输入(522F)。
类似于单元1,单元2也包括第一基本区块554F、第一残差区块(556F)、第二残差区块(560F)、第三残差区块(564F)和第四残差区块(568F)。
层3中的单元2的基本区块554F包括三个子区块。第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。第一子区块接收来自单元1的级联输出(522F)作为层3中单元2的基本区块的第一子区块的输入。层3中单元2的基本区块中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。第二子区块接收第一子区块的输出作为第二子区块的输入。层3中单元2的第三子区块与第二子区块具有相同的组件,例外之处在于第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为第三子区块的输入。
第一残差区块556F也具有三个子区块。第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。基本区块554F的输出被提供给第一子区块作为输入。第一子区块接收来自基本区块554F的第三子区块的输出作为层3中单元2的第一残差区块556F的第一子区块的输入。层3中单元2的第一残差区块556F中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。层3中单元2的第一残差区块556F中的第二子区块接收第一子区块的输出作为第二子区块的输入。层3中单元2的第一残差区块556F的第三子区块与第二子区块具有相同的组件,例外之处在于第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为第三子区块的输入。
第一残差区块556F的池化输出可以与基本区块554F的池化输出组合以形成层3单元2组合输出(558F),以向层3中单元2的第二残差区块560F提供输入。第二残差区块560F,与第一残差区块(556F)一样,也可以具有三个子区块。
更具体地,第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。来自基本区块554F和第一残差区块556F二者的组合输出(558F)可以作为输入提供给第二残差区块的第一子区块。层3中单元2的第二残差区块560F中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。第二残差区块560F中的第二子区块接收第一子区块的输出作为第二子区块的输入。层3中单元2的第二残差区块560F的第三子区块与第二子区块具有相同的组件,例外之处在于第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为第三子区块的输入。第二残差区块560F的第三子区块的池化输出也可与上述组合输出(558F)组合以形成层3单元2残差2组合输出(562F),可以进一步提供给层3中单元2的第三残差区块564F。
第二残差区块510F的池化输出可以与组合输出(558F)组合为层3单元2残差2组合输出(562F)以向层3中单元2的第三残差区块564F提供输入。第三残差区块564F,与第一残差区块和第二残差区块一样,也可以具有三个子区块。
更具体地,第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。来自组合输出(558F)和来自第二残差区块560F的池化输出二者的组合输出(562F)可以作为输入提供给第三残差区块564F的第一子区块。层3中单元1的第三残差区块564F中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。第三残差区块564F中的第二子区块接收第一子区块的输出作为第二子区块的输入。层3中单元2的第三残差区块564F的第三子区块与第二子区块具有相同的组件,例外之处在于第三子区块中的第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为第三子区块的输入。第三残差区块564F的第三子区块的池化输出也可与上述组合输出(562F)组合为层3单元2残差3组合输出(566F),可进一步提供给层3中的单元2的第四残差区块568F。
第三残差区块564F的池化输出可以与组合输出(562F)组合为层3单元2残差3组合输出(566F)以向层3中单元2的第四残差区块568F提供输入。第四残差区块568F,与第一残差区块、第二残差区块和第二残差区块一样,也可以具有三个子区块。
更具体地,第一子区块包括跟随有批标准化层的1×1卷积层,该批标准化层进一步跟随有尺度层。修正线性单元在第一子区块中跟随尺度层。来自组合输出(562F)和来自第三残差区块564F的池化输出二者的组合输出(566F)可以作为输入提供给第四残差区块568F的第一子区块。层3中单元2的第四残差区块568F中的第二子区块包括跟随有批标准化层的3×3卷积层,该批标准化层进一步跟随有尺度层。另一个修正线性单元在第二子区块中跟随尺度层。第四残差区块568F中的第二子区块接收第一子区块的输出作为第二子区块的输入。层3中单元1的第四残差区块568F的第三子区块与第二子区块具有相同的组件,例外之处在于第三子区块中的1×1卷积层,并接收来自第二子区块的输出作为第三子区块的输入。第四残差区块518F的第三子区块的池化输出也可与上述组合输出(566F)组合为层3单元1残差4组合输出(570F),该层3单元1残差4组合输出(570F)可以进一步与层3单元1残差4组合输出(520F)级联以形成层3级联输出(572F)。
如从上述图5A-5E中可以看出,一些实施例组合或级联各种数据片段以形成神经网络中各种区块的输入张量。与一些传统方法不同,一些实施例不将输入张量与中间特征张量或输出级联以减少计算。不将输入张量与中间特征张量级联的另一个原因是,在许多情况下,输入特征张量可能大部分是冗余的,并且因此不会对性能提升做出贡献。这方面在图5F中更清楚地示出。如图5F中所示,单元中的区块(包括上面参考图5A-5E描述的多个子区块)将其池出提供给组合器并且还提供给下一个区块作为输入的第一部分。组合器可以组合来自紧接在前的区块的池出和来自下一个在前区块的池出以形成组合的池出,该组合的池出被进一步提供给下一个区块作为输入的第二部分。
例如,单元1基本区块504F的池出被提供给第一残差区块506F作为第一残差区块506F的输入的第一部分并且还提供给层3单元1残差1连接508F。层3单元1残差1连接(508F)然后将第一残差区块506F的池出与单元1基本区块504F的池出组合。此外,将单元1第二残差区块510F的池出提供给层3单元1残差2连接(512F),该层3单元1残差2连接(512F)进而将单元1第二残差区块510F的池出与层3单元1残差1组合输出508F组合为第二残差组合输出。
512F处的该第二残差组合输出作为输入被提供给第三残差区块514F,并且还被提供给层3单元1残差3组合器516F,该层3单元1残差3组合器516F将该第二残差组合输出与层3中单元1的第三残差区块514F的池出组合为第三残差组合输出。该第三残差组合输出(在516F)作为输入被提供给第四残差区块518F,并且还被提供给层3单元1残差4组合器520F,该层3单元1残差4组合器520F将该第三残差组合输出与层3中单元1的第四残差区块518F的池出组合为第四残差组合输出。然后将该第四残差组合输出用作单元2的输入,该单元2执行与单元1类似的组合或级联以生成层3单元2残差4组合输出(570F),然后将该层3单元2残差4组合输出(570F)与层2级联输出(410A)级联以形成层3级联输出572F。
图6A示出在一些实施例中可以在在此所述的神经网络中使用的一组1-3-1卷积模块、区块或子区块的简化示例。在一些实施例中,图6A示出阶梯卷积(ladder convolution)结构,其包括跟随有3×3分组卷积层(图6A中的G卷积)的1×1卷积层602A,该3×3分组卷积层带有分组卷积604A,该分组卷积604A进一步跟随有1×1卷积层。此类1-3-1卷积模块、区块或子区块的一些示例可以包括上面参考图5A-5F描述的层3的单元1或单元2中的基本区块和残差区块,或上面参考图4A-4B描述的层2中的单元2的第二单元404B。
图6B示出在一些实施例中可以在在此所述的神经网络中使用的具有一组1-3-1卷积模块或层的残差区块的简化示例。更特别地,图6B示出阶梯残差区块或子区块,其包括跟随有3×3分组卷积层604B的1×1卷积层602B,该3×3分组卷积层604B进一步跟随有1×1卷积层。此类1-3-1残差区块或子区块的一些示例可以包括上面参考图5A-5F描述的层3的单元1或单元2中的残差区块。这些残差区块用于层3,以改善前馈神经网络中用于训练大型深度学习网络的反向传播期间的信息流。更准确地,这些残差区块用于前向传播输入以计算输出并反向传播错误或损失并训练神经网络。这些残差区块被设计为与例如64个通道一起工作,以减少层1之后的并行计算。另外或可替代地,层3采用具有不同空洞因子的空洞卷积来增加神经网络的感受野,以便捕获输入中的大对象。例如,基本区块、第一残差区块、第二残差区块、第三残差区块和第四基本区块可以分别对应于0(零)、1(一)、2(二)、3(三)和4(四)的空洞因子。应注意,也可以使用具有不同空洞因子组合的其它空洞方案。
此外,在一些实施例中,层3可以在区块(例如,上面参考图5A-5F描述的区块和/或子区块)中以分组因子采用分组卷积以减少计算。在其中层2也采用分组卷积的这些实施例中的一些实施例中,层2的分组因子可以与层3的分组因子不同。在一些实施例中,层2可以采用4的分组因子,而层3可以采用8的分组因子。在一些实施例中,层1采用最大池化层但不采用分组卷积。应注意,也可以使用其它分组因子。
在一些实施例中,组的数量(例如,由分组因子控制)被设计为等于通道的数量,因为如上所述的卷积是逐通道操作(例如逐通道卷积)。此外,逐通道卷积(也称为逐深度卷积)是分组卷积的特例,因为逐通道卷积是具有等于通道数量的分组因子的分组卷积。在这些实施例中,卷积层可以被分组,使得每组的滤波器数量是寄存器通道数量的倍数,以便提高矢量寄存器利用率。在分组卷积导致一些不良影响(例如,一些关键点无法训练)的一些实施例中,这些实施例可以添加具有不同空间分辨率的附加关键点监督头(supervisionhead)以稳定训练并促进用于训练的更优梯度流。以下将参考例如图9A-9F描述更多细节。
在一些实施例中,神经网络表示编码器-解码器架构(例如,图6G),其中手部用一组关键点标记,神经网络预测该组中的关键点的第一子集以预测或确定手部姿势并使用关键点的第二子集(关键点集中的剩余关键点)以训练监督。例如,可以用如图1中所示从#1到#17的17(十七)个关键点来标记手部。这组17个关键点被分类为一组主要关键点(primary set of keypoint)(例如,阴影标签1、2、4、5、6、7、10和17)和一组辅助关键点(例如,非阴影标签3、8、9、11、12、13、14、15和16),使得网络在使用一组辅助关键点作为训练监督的同时生成针对一组主要关键点的预测。这些实施例中的一些实施例不对网络的解码器部分采用卷积分组以避免诸如浮动关键点、关键点从手上跳出等问题,并在编码器之后对特征张量进行正则化。
图6C示出在一些实施例中可以在在此所述的神经网络中使用的具有图6B中所示的四个残差模块的区块的简化示例。更具体地,图6C示出具有多个区块的示例空洞阶梯单元,该区块具有相应不同的空洞因子。例如,空洞阶梯单元可以包括与1的空洞因子对应的第一1-3-1残差区块602C、具有分组卷积并对应于2的空洞因子的第二1-3-1残差区块604C、与3的空洞因子对应的第三1-3-1残差区块606C,以及与4的空洞因子对应的第四1-3-1残差区块608C。应当注意,在一些其它实施例中也可以使用其它空洞因子。
图6D示出在一些实施例中包括多个区块的单元的简化示例。图6D呈现了本公开中命名法的使用。如上所述,例如,网络可以包括多个层,并且一个层可以包括一个或多个单元。如图6D中所示,单元600D可包括一个或多个区块。在600D中所示的示例单元600D中,该单元600D包括多个区块—602D、604D和606D。区块可以包括一个或多个子区块、模块或层。例如,上述残差区块可以包括卷积层、批标准化层、尺度层和修正线性单元。在一些实施例中,模块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)的输出级联,以生成针对具有三个示例单元的图示网络的输出610E。
在一些其它实施例中,级联(例如,612E、614E或616E等)可以是渐进的。也就是说,这些实施例不需要如图6E中所示的级联模块的二次方数。相反,UnitK+1的输入可包括与UnitK的输出级联的先前级联的UnitK的输入。在这些实施例中的一些实施例中,初始输入可以对层的最终输出隐藏。在这些实施例中,该输出不同于作为初始输入与图6E中所示的所有单元的输出一起的级联的输出。相反,初始输入对级联的输出610E隐藏并且对级联的输出610E没有贡献。此外,在一些实施例中,第(i+1)个级联(例如,616E)扩展第(i)个级联(例如,614E),而不是从头开始重新执行所有先前的级联。
在一些实施例中,池化可以执行,并且然后级联单元输出以进一步节省计算,因为池化是针对每个通道独立执行的,并且进一步因为在这些实施例中池化和级联交换。在多线程环境中,级联可以在任何单元完成其处理时立即开始,而不是等待所有单元完成其相应的处理。在一些实施例中,来自602E的数据张量的初始部分生成输出。
图6F示出在一些实施例中具有多层的编码器的简化示意性示例。图6E呈现在本公开中命名法的使用。如上所述,例如,网络可以包括多个层,并且一个层可以包括一个或多个单元。如图6F中所示,编码器600F可包括一层或多层。在600F中所示的示例编码器600F中,该编码器600F包括多个层—602F、604F和606F。一层可包括一个或多个单元;并且一个单元可以包括一个或多个区块,并且一个区块可以包括一个或多个子区块、模块或层。
图6G示出在一些实施例中包括多个层的网络架构的简化示意性示例,每个层具有一个或多个区块的一个或多个单元。更具体地,图6G示出在保留空间信息并增强感受野的同时用于采用具有计算机视觉的多任务深度学习的神经网络来训练、验证和/或测试输入图像602G的语义分割的编码器-解码器架构的网络600G。示例网络架构是可以嵌入到移动电子设备(包括例如可穿戴设备,诸如VR、AR、MR或XR设备)中的轻量网络。
在此所述的嵌入式实现包括处理器(例如,VPU或视觉处理单元)、计算机存储器和输入/输出设备的组合—其在更大的系统内具有专用功能。在一些实施例中,在此所述的嵌入式实现包括在此所述的神经网络或其至少一部分在诸如可穿戴电子设备的移动计算设备中的实现。嵌入式实现可以包括在一些形式的存储器(例如,EPROM、RAM等)中实现神经网络的各种模块、层、块等,作为定制IC(集成电路),诸如ASIC(专用集成电路)、片上系统(SoC)、FPGA(现场可编程门阵列)、带有组件和设备的小型化计算机板,或其任何组合。
对于可穿戴电子设备(例如,MR或XR设备),最小化即使不是不可克服的,也是对传统实现的困难挑战。例如,深度学习框架通常以一种存储器效率极低的方式将卷积转换为一个或多个大型矩阵乘法,该方式不适用于具有有限空间的可穿戴电子设备,无法容纳组件以提供足够的容量来进行计算和/或存储任务以及功率消耗。另一个挑战是来自图像的输入数据张量通常以通道平面格式存储,这对于矢量化来说效率低下。此外,内核大小通常不是向量指令宽度的倍数;并且空洞卷积的现成实现具有相当大的计算开销。
为了至少解决上述挑战,在此描述的一些实施例对到每个卷积层的输入数据通道进行重新排序和交错以与向量指令排序对齐。更具体地,这些实施例同时对内核堆栈重新排序,使得将卷积减少为点积,并且输出通道以交错格式编码用于下一层。这些实施例进一步对卷积层进行分组,使得每组的滤波器数量等于寄存器通道的倍数,并且从而最大化矢量寄存器利用率。另外或可替代地,一些实施例使用用于空洞卷积的梳状设计,其中梳状设计使片上存储器占用空间最小化。应注意,层是一个或多个功能组件的单独集合,它们以某种顺序或分层方式与其上方或下方的另一层交互。
在一些实施例中,该示例网络架构中的所有层、区块、模块、组件等可以完全嵌入到计算设备(例如,可穿戴设备)中,以例如与出于此类目的而使用远程计算设备(例如,云服务)相比,促进在运行时的权宜推理时间,而在一些其它实施例中,层、区块、模块、组件等中的一些但不是全部嵌入在计算设备中。来自具有低时延的神经网络的权宜推理时间在例如汽车应用(例如,自动驾驶车辆)、VR/AR/MR/XR设备的手部姿势跟踪、估计、预测和/或识别等中对于计算机视觉应用很重要。
一些实施例嵌入除了与在计算设备中训练神经网络有关的层、区块、模块、组件等之外的所有部分。例如,具有2的空洞因子的卷积可以分成四个独立的逐场(field-wise)计算(例如,偶数行-偶数列,偶数行-奇数列,奇数行-偶数列、和奇数行-奇数列)。这四个独立的逐场计算是独立计算的,并在输出上重新组合,使得可以在减少、最小甚至零有效开销的情况下执行在此所述的各个层中采用的空洞卷积。
例如,编码器(主编码器层1(604G)、主编码器层2(606G)和主编码器层3(606G)、上采样器(610G、612G和614G),以及一个或多个解码器模块(例如,可视性解码器640G、关键姿势解码器642G和/或取向解码器644G)可以嵌入到计算设备中,而其它模块(例如,辅助关键点解码器638G和辅助编码器636G)以及损失(例如,分割损失630G、二进制交叉熵损失628G、辅助关键点损失626G、深度监督损失618G、关键姿势分类损失622G、分类取向损失624G和加权关键点和分割损失620G)主要在训练期间使用,但不嵌入在与计算设备一起部署的计算设备上。附图标记632G表示注意力细化模块,并且附图标记616G表示1×1卷积。
在一些实施例中,神经网络在推理时预测左手和/或右手的二进制分割掩码,而一些其它实施例在推理时预测左手和/或右手的二进制分割掩码。这些后面的实施例可以保留两个通道(例如,614G处的上采样特征输出的最后两个通道)来预测左手和/或右手的二进制分割掩码。在训练时,除了训练时仅用于预测分割的辅助空间分支外,还可能对例如614G的输出的这两个通道应用分割损失。也就是说,运行时分割通道可以在一些实施例中被启用或在一些其它实施例中被禁用。
另外或可替代地,这些后面的实施例可以产生具有32个通道的数据张量,其中每个通道可以被解释为热图。例如,这些实施例可以将这些前30个通道划分为每只手15个通道(例如,左手15个通道和右手15个通道),并针对这些通道中的每一个通道独立使用空间softmax以学习预测关键点(例如,每个通道的预测关键点)可能是被解释为热图的通道的argmax或soft-argmax。在一些实施例中,每个通道可以对应于不同的关键点。在这些实施例中,两个保留通道可以分别对应于左手和右手的左右二进制分割掩码。此外,与辅助空间分支不同,这些分割预测可以保留用于运行时推理网络,因为这些分割预测对模型的大小或计算几乎没有增加。
图6H示出在一些实施例中具有多个不同层的区块的简化示例。更特别地,图6H示出注意力细化层或区块632H的示例,该区块632H在图6G中也被称为附图标记632G。注意力细化区块可以在不损失速度的情况下采用推理模型提供更优的预测准确度。注意力细化区块632H可以在池化层602H(例如,全局平均池化层、最大池化层等)处接收输入以将输出特征(例如,来自编码器层的输出特征)编码为注意力向量。
可以将输出向量提供给卷积层604H(例如,1×1卷积层)、批标准化层606H和激活层608H(例如,修正线性单元、sigmoid激活层、双曲正切或tanh激活层等),使得原始输入可以通过注意力向量被重新加权。如图6H中所示的注意力细化模块能够捕获上下文信息(例如,全局上下文信息)并细化神经网络的预测,以提供更准确的语义分割,而无需复杂的上采样操作。在图6G中所示的示例神经网络600G中,将层2(主编码器层2 606G)输出和层3(主编码器层3 608G)输出分别提供给它们对应的注意力细化模块632G以细化它们相应的输出。来自608H的细化输出和原始输入被提供给例如乘法器610H,该乘法器610H执行张量操作以最终提供来自注意力细化模块632H的输出。
图6I示出在一些实施例中具有多个模块或层的特征融合区块的简化示例。一些实施例涉及语义分割神经网络,该语义分割神经网络采用空间路径来保留空间信息并增加计算机视觉的感受野。这些实施例包括融合空间路径和上下文路径的特征的特征融合模块。应当注意,上下文路径编码被认为是高级信息的上下文信息(例如,全局上下文信息),而空间路径编码被认为是低级信息的细节信息。此类高级上下文信息和低级空间信息不能简单地加在一起。特征融合模块将从空间路径和上下文路径输出的特征级联,并使用批标准化来平衡这些特征的尺度。特征融合模块然后将级联的特征池化为特征向量,并计算权重向量以重新加权特征以进行特征选择和组合。特征融合模块从空间路径和上下文路径接收特征或特征图,并级联(616I)相应的特征/特征图。
来自空间路径和上下文路径的级联输出也被转发到区块618I,该区块618I具有跟随有批标准化层的卷积层,该批标准化层进一步跟随有修正线性单元。618I中的批标准化层平衡了来自空间路径和上下文路径的特征的尺度。当特征图的大小改变时,级联操作616I可能不可行。在一些实施例中,卷积神经网络的一部分是改变特征图大小的下采样层。为了促进神经网络架构中的下采样,一些实施例将神经网络划分为多个密集连接的密集区块。
更特别地,来自空间路径和上下文路径的特征也被发送到池化层602I(例如,最大池化层、全局平均池化层、多孔空间金字塔池化层等)。池化层602I输出被发送到1×1卷积层604I,该卷积层604I将1×1滤波器应用于输入。1×1卷积层输出被发送到修正线性单元606I,该修正线性单元606I应用修正线性函数作为激活。修正线性单元606I的输出被转发到1×1卷积层608I,该1×1卷积层608I将另一个1×1滤波器矩阵应用于输入。
在1×1卷积层604I和1×1卷积层608I中重复应用1×1滤波器矩阵导致也称为特征图的激活图,其指示这些卷积层的输入中检测到的特征的位置和强度。1×1卷积层608I的输出被发送到另一个激活层610I。在激活层应用的激活函数将激活层610I的输入变换为输出激活以用于输入。可以在610I处采用各种激活函数,诸如修正线性函数、双曲函数(tanh)、sigmoid等。激活层610I的输出和来自区块619的输出在612I处连接(例如,以点积相乘)并在614I处相加。采用图6I中所示的特征融合模块,来自上下文路径和空间路径的特征被级联成被进一步处理成特征向量的级联特征,并且特征融合模块进一步计算权重向量,该权重向量然后用于重新加权特征,这相当于特征选择和组合。
图7A示出在一些实施例中在保留空间信息并增强计算机视觉的感受野的同时采用多任务深度学习和神经网络的语义分割的高级示意框图。图7A中所示的神经网络包括空间路径750A和上下文路径752A,并且因此可以被称为双边语义分割神经网络。空间路径750A可以由图3、4A-4B、5A-5F和6G中所示的网络处理。由于神经网络的复杂性,图7A仅示出三层—702A、704A和706A。
应当注意,这三个层702A、704A和706A的宽度指示相应的空间尺寸。由上述网络生成的空间路径通过编码丰富的详细信息来保留空间信息,而上下文路径则用于增加感受野以适应计算机视觉的大型对象。
在一些实施例中,层1 702A使用16个通道来减少层1之后的并行计算,但不采用分组卷积;层2 704A使用32个通道来减少层2之后的并行计算。层2 704A进一步采用具有分组因子的分组卷积来减少计算。在一些实施例中,层2 704A采用2(二)的分组因子来减少计算。在一些实施例中,层3 706A使用64个通道来减少并行计算并且还使用具有分组因子的分组卷积来减少计算。在一个实施例中,层3 706A使用八(8)的分组因子来减少计算。
上下文路径752A接收输入716A并执行4×下采样(708A)。4×下采样(708A)的输出被转发到跟随有12×下采样(712A)的8×下采样(710A)。16×下采样层712A的输出被提供给32×下采样(714A)以及注意力细化层(720A)。32×下采样层(714A)的输出也被提供给上面描述并在图6H中示出的另一个注意力细化层(720A)。如上面所述和图6I中所示,将这两个注意力细化层(720A)的输出连接并提供给特征融合层(716A);并且特征融合层716A生成输出718A。
图7B示出在一些实施例中具有3×3感受野的一(1)空洞卷积的简化示例。更特别地,图7B示出空洞支持感受野的指数扩展而不会损失分辨率或覆盖范围。图7B中的每个元素(圆点)具有3×3感受野,与每一层相关联的参数数量与一空洞卷积相同。
图7C示出在一些实施例中由于二空洞卷积从图7B中的一空洞卷积产生并具有7×7感受野的二(2)空洞卷积的简化示例。图7D示出在一些实施例中由于三空洞卷积从图7C中的二空洞卷积产生并具有11×11感受野的三(3)空洞卷积的简化示例。图7E示出在一些实施例中由于四空洞卷积从图7D中的二空洞卷积产生并具有15×15感受野的四(4)空洞卷积的简化示例。如从图7B-7E中可以看出,感受野是呈指数增加的正方形。也就是说,每个元素的相应感受野是(2i+1-1)2,其中i=1,2,3,....,n,并且i表示空洞因子。
图8A示出在一些实施例中具有在XR眼镜外部的腰包的可穿戴XR设备的简化示例。更具体地,图8A示出用户可穿戴VR/AR/MR/XR系统的简化示例,其包括光学子系统802A和处理子系统804A,并且可以包括个人增强现实系统的多个实例,例如用户的相应个人增强现实系统。在此描述的任何神经网络可以全部或部分地嵌入可穿戴XR设备中或可穿戴XR设备上。例如,在此所述的一些或全部神经网络以及其它外围设备(例如,ToF传感器)可以单独嵌入在处理子系统804A上、单独嵌入光学子系统802A上,或分布在处理子系统804A和光学子系统802A之间。
VR/AR/MR/XR系统的一些实施例可以包括向用户的眼睛传送虚拟内容的光学子系统802A以及执行大量处理任务以将相关虚拟内容呈现给用户的处理子系统804A。处理子系统804A可以例如采用腰包的形式,该腰包在使用期间可以方便地耦合到腰带或裤带线。可替代地,处理子系统804A可例如采用个人数字助理或智能电话类型设备的形式。
处理子系统804A可以包括一个或多个处理器,例如一个或多个微控制器、微处理器、图形处理单元、数字信号处理器、专用集成电路(ASIC)、可编程门阵列、可编程逻辑电路,或体现逻辑或能够执行体现在软件或固件中编码的指令中的逻辑的其它电路。计算组件804A可以包括一个或多个非暂态计算机或处理器可读介质,例如易失性和/或非易失性存储器,例如只读存储器(ROM)、随机存取存储器(RAM)、静态RAM、动态RAM、闪存、EEPROM等。
处理子系统804A可以通信地耦合到头戴式组件。例如,处理子系统804A可以经由一根或多根电线或光纤经由具有适当连接器的电缆通信地拴系到头戴式组件。处理子系统802A和光学子系统804A可以根据多种系留协议(例如
Figure BDA0003364619410000341
Figure BDA0003364619410000342
协议)中的任何一种进行通信。
另外或可替代地,处理子系统804A可以无线通信地耦合到头戴式组件。例如,处理子系统804A和光学子系统802A可以各自包括发射机、接收机或收发机(统称为无线电)和相关联的天线以在它们之间建立无线通信。无线电和天线可以采用多种形式。例如,无线电可以能够进行短距离通信,并且可以采用诸如
Figure BDA0003364619410000343
或一些符合IEEE802.11的协议(例如,IEEE 802.11n、IEEE 802.11a/c)的通信协议。
图8B示出在一些实施例中在具有图8A中所示的腰包的可穿戴XR设备上的神经网络的嵌入式实现的简化示例。如上所述,任何神经网络可以全部或部分地嵌入硬件系统(例如,可穿戴电子系统)上,以促进计算机视觉的权宜推理,并且在本公开中将被称为嵌入式实现。在图8B中所示的这些实施例中,嵌入式实现可以例如包括:应用主机818B,其包括一个或多个应用820B(例如,3D浏览器、VR/AR/MR/XR游戏、虚拟电视、虚拟媒体播放器、生产力应用等);以及神经网络822B,其可以是本公开中描述的任何神经网络。
嵌入式实现可以进一步包括视觉处理单元(VPU)802B。VPU可能包括各种组件,并且是旨在加速机器视觉或计算机视觉任务的微处理器。VPU 802B的这些各种组件可以包括例如用于人工智能(AI)加速器功能的硬件加速器804B。硬件加速器804B在一些实施例中可以是计算机系统本身或在一些其它实施例中是专用硬件加速器,并且被设计为加速人工智能应用,诸如神经网络、机器视觉、机器学习或任何其它传感器驱动或数据密集型任务等。
硬件加速器804B可以可操作地耦合到各种其它组件,诸如一个或多个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,该连接矩阵(CMX)808B实现SHV与其它硬件组件之间的无缝交互。
应注意,视觉处理单元与视频处理单元(其专门用于视频编码和解码)的不同之处在于它们适用于运行机器视觉算法,诸如CNN(卷积神经网络)、SIFT(尺度不变特征变换)等。VPU可包括从相机获取数据的直接接口(绕过任何片外缓冲区),并且更加强调具有暂存器存储器(如众核DSP)的许多并行执行单元之间的片上数据流。但是,与视频处理单元一样,它们可能专注于图像处理的低精度定点算法。VPU也不同于GPU(图形处理单元),该GPU包括用于光栅化和纹理映射(用于3D图形)的专用硬件,并且其存储器架构被优化以处理片外存储器中的位图图像(读取纹理和修改帧缓冲区,具有随机访问模式)。
图8C示出在一些实施例中图8B中所示的嵌入式实现的一些操作的高级示例框图。在图8B中所示的这些实施例中,输入数据通道可以被重新排序和交错以将在此所述的神经网络中的卷积层与802C处的向量指令排序对齐。此外,卷积层可以在804C处分组,以将寄存器通道的数量与滤波器组的数量相关。例如,卷积层可以这样分组,即每组的滤波器数量是寄存器通道的倍数(例如,1x、2x等),以增加或甚至最大化向量寄存器利用率。
采用分组的卷积层,可以在806C处以梳状设计执行以一个或多个空洞因子(例如,1、2、3、4等)的空洞卷积以增强存储器占用空间。例如,具有二(2)的空洞因子的卷积可以分成四个独立的逐场计算(例如,偶数行-偶数列、偶数行-奇数列、奇数行-偶数列、和奇数行-奇数列)。这四个独立的逐场计算可以彼此独立或并行执行,并且它们相应的输出可以重新组合。
图9A示出在一些实施例中具有三个示例层的神经网络中的一些示例操作的高级示例框图。更特别地,图9A示出用于采用三层区块和神经网络的多任务深度学习的语义分割的简化高级示例框图。在一些实施例中,可以在902A处识别输入数据集。在一些实施例中,还可以在902A处识别一个或多个真实数据图像。真实数据图像包括相位图像或深度图像的直方图均衡版本,并且也可以用一组关键点来标记。输入数据集可以在904A处至少通过标记和/或增强被变换成变换的输入数据集。
在一些实施例中,在902A处识别的输入数据集可以包括一个或多个图像,并且该一个或多个图像可以包括例如相位图像、深度图像、RGB图像、灰度图像、振幅图像,或它们的任何组合。如上所述,振幅图像可以包括多个相位图像的组合(例如,线性组合)。在输入数据集包括相位图像的一些实施例中,相位图像可由例如一个或多个飞行时间(ToF)传感器捕获。在一些实施例中,在904A处变换输入数据集可以包括使用后处理和/或标记输入数据集将相位图像转换或变换成深度图像。
在一些实施例中,用于标记输入数据集的原因之一是训练神经网络和/或用标记数据监督训练,但应注意,一些其它实施例也可以在未标记的数据集上采用自监督训练头。此外,图像的语义分割通常涉及用其对应的类标记图像中的每个像素。与采用卷积然后去卷积的传统方法不同,一些实施例因此标记关键点并应用空洞卷积以保持高输出分辨率并确保来自神经网络的输出与输入具有相同的大小,同时避免上采样的需求。这些传统方法中的去卷积引入了更多参数,并且因此增加了存储器占用空间和计算,并且因此不适合可穿戴设备上的嵌入式实现。此外,这些实施例采用空洞卷积,因为空洞卷积是一种通过线性参数增加(accretion)以指数方式增加网络的感受野的方式,并且从而以更低的成本提供更广泛的上下文。
在904A处标记输入数据集可以包括例如标记图像、标记图像中的一组关键点和/或标记辅助任务。关键点可以被标记为用于神经网络预测的主要关键点或用作训练监督的辅助关键点。如图1中所示的示例,手部图像可以标记有17个关键点,该关键点包括用于神经网络预测的一组主要关键点和用于训练监督的一组辅助关键点。在一些实施例中,一组主要关键点包括八(8)个关键点,而一组辅助关键点包含剩余的九(9)个关键点。
应当注意,还可以使用主要关键点(例如,用于神经网络预测)和辅助关键点(例如,用于训练)的其它配置。例如,主要关键点的数量可以是八(8)、十五(15)、或可基于一个或多个标准(例如,计算成本、准确度要求、要确定的姿势的复杂性等)或多个标准的平衡(例如,上述标准)确定的任何其它数量。所采用的辅助关键点的数量可以至少部分地基于例如每只手标记了多少关键点以及神经网络预测了多少关键点来确定。该确定还可以至少部分地基于上面刚刚描述的一个或多个标准或多个标准的平衡。在一些实施例中,神经网络提供可用于调节每只手的主要关键点的数量、每只手的辅助关键点的数量、和/或每只手的总关键点(主要关键点加辅助关键点)的数量的配置接口。
应当注意,也可以使用每只手的其它数量的关键点,并且每只手使用更多的关键点提高准确度和/或实现更复杂的手部姿势,但是以更多的计算资源消耗为代价。因此,关键点可以用主要标签(对于主要关键点)或辅助标签(对于辅助关键点)进行标记。在一些实施例中,一组主要关键点和与其相关的其它信息或数据可以被包括在嵌入式实现中,而一组辅助关键点用于监督底层神经网络的训练但不包括或部署在嵌入式训练中。在一些实施例中,用神经网络预测一组主要关键点采用如在此所述的分组卷积。在这些实施例中,辅助关键点不采用卷积分组来避免诸如浮动关键点或关键点从手上跳出等问题,并在编码器之后对特征张量进行正则化(参见例如图6G)。
图像也可以用多个关键姿势类中的一个关键姿势类来标记。在神经网络用于预测手部姿势并且因此输入图像构成一只手或两只手的图像的一些实施例中,输入图像可以用多个关键姿势类中的一个关键姿势类来标记。这些关键姿势类可以包括,例如,“OK”、“张开手”、“捏合”、“C姿势”、“拳头”、“L姿势”、“指向”、“拇指向上”和“伪”。“伪”类捕获所有其它关键姿势,并且可以存储以用于随后添加一个或多个新关键姿势的重新标记。另外或可替代地,一些实施例标记由手部的旋后(supination)(前臂和手部的旋转,使得手掌朝前或向上)或旋前(手部和前臂的旋转,使得手掌朝后或朝下)产生的八(8)种类别手部取向。这八个类别可能是近似的,并且因此可以通过使用例如交叉熵损失来训练这些任务以进行手势预测来软化标签。
在一些实施例中,输入数据集可以通过增强进行变换。增强可以包括例如将左手的图像与右手的另一图像合成,使得合成图像看起来是双手手势或操作。增强还可以包括合成具有多于一个的包括干扰物对象的背景图像的多个图像,以扩展训练数据集,以便将手势估计或预测推广到多个不同的环境。在908A处,变换的输入数据集然后可用于以具有训练监督和多个损失函数的多任务学习范式训练神经网络。下面将描述关于训练神经网络的更多细节。
图9B示出一些实施例中神经网络中的多任务深度学习的高级示例框图。更特别地,图9B示出用于采用神经网络进行手部姿势跟踪和预测的框图。在这些实施例中,输入数据集可以在902B处以与上面附图标记902A所描述的方式基本上类似的方式被识别。可以在904B处确定一组关键点。在一些实施例中,该组关键点可以包括第一关键点子集和第二关键点子集,其中第一关键点子集表示要由神经网络预测的关键点,而第二关键点子集表示用作神经网络的训练监督的关键点。
在902B处确定的输入数据集可以在906B处以与上面附图标记904A所述的方式相同或基本上相似的方式用一个或多个关键姿势类来标记。在一些实施例中,一个或多个关键姿势类可以包括例如“OK”、“张开手”、“捏合”、“C姿势”、“拳头”、“L姿势”、“指向”、“拇指向上”和“伪”。“伪”类捕获所有其它关键姿势,并且可以存储以用于随后添加一个或多个新关键姿势的重新标记。
采用在906B处标记的输入数据集,至少通过扩展输入数据集,可以在908B处将手部姿势或关键姿势(其与手部姿势互换使用)估计或预测推广到不同的环境。例如,可以通过将在输入数据集中的多于一个的背景图像中具有至少一个干扰物对象的多个图像合成为一个或多个合成的附加图像来扩展输入数据集。在910B处,可标记一个或多个辅助任务。辅助任务的一些示例包括离散手部姿势训练任务、分类取向训练任务、辅助编码器层训练任务、可视性解码器层训练、辅助关键点解码器训练任务等。在一些实施例中,标记一个或多个辅助任务可能是一个或多个其它过程(诸如上述关键点标记)的副产品。
在912B处,神经网络然后可以预测第一关键点子集中的关键点。通过至少使用在912B处生成的多个网络预测和损失,在914B处可以以多任务学习范式训练神经网络。下面将描述关于训练神经网络的更多细节。另外或可替代地,在一些实施例中,可以在916B处通过使用关键点的第二子集作为训练监督来监督训练。随着神经网络的训练,在918A处神经网络可用于至少通过融合空间路径和上下文路径的输出来生成对由例如图像捕获设备(例如,相机、ToF传感器等)捕获的手部姿势的预测。下面参考图10A-10B描述关于空间路径和上下文路径的更多细节。
图9C示出在一些实施例中关于图9B中所示的神经网络中的多任务深度学习的高级示例框图的一部分的更多细节。更特别地,图9C示出关于在图9B的914B处训练神经网络的更多细节。在一些实施例中,在902C处,神经网络可以至少使用损失函数和反向传播来生成对第一关键点子集中的关键点的预测。在一些实施例中,具有单热标签(one hot label)或目标的交叉熵损失可用作902C处的损失函数,而其它实施例可使用其它损失函数,诸如均方损失(MSE)函数层等。
具有单热编码的交叉熵意味着目标向量除了一(1)之外全为零(0)。结果,所有零条目都被忽略,并且只有具有一(1)的条目用于更新。因此,只有与标签相关联的预测概率会影响具有单热标签的交叉熵函数的损失值。在一些实施例中,交叉熵函数起作用,因为神经网络预测包括对互斥结果的概率向量。因此,预测向量具有非负元素,并且这些元素总和为1。换句话说,使预测向量的一部分变大会导致其余分量的总和缩小相同的量。此外,对于单热标签的情况,可以使用softmax函数。此外,softmax在0和1处具有渐近线,因此可能不会出现奇点。另一方面,作为浮点运算的问题,溢出有时可能会导致log(1)或log(0)。尽管如此,可以通过重新排列方程并在不同的尺度上工作来避免此类溢出,诸如包含几率(p/(1-p))对数的logits,其中p是概率。
一些实施例使用在904B处识别的关键点的第二子集在904C处监督训练。在一些实施例中,关键点的第一子集(主要关键点的子集)而不是关键点的第二子集(辅助关键点的子集)在神经网络的最终部署模型中。在这些实施例中,具有神经网络的计算设备可以具有嵌入的训练神经网络,但不是神经网络中的属于或负责训练神经网络以进一步节省计算和/或存储资源利用的部分。另外或可替代地,关键点的第二子集的解码器部分不对卷积进行分组以避免浮动关键点并在编码器之后对特征张量进行正则化。
在一些实施例中,可以在906C处应用可视性掩模以稳定训练过程,在推理期间抑制被遮挡的关键点和不可见的手部,和/或在推理期间启用早期输出以减少时延。例如,一些实施例可以应用关键点和手部可视性掩模来稳定训练过程,在推理期间抑制被遮挡的关键点和不可见的手部,和/或在推理期间启用早期输出以减少时延。在一些实施例中,神经网络通过使用标记数据集进行训练,并且这些实施例仅标记图像中可见的关键点和手部。结果,采用手部和关键点可视性掩模的这些实施例可以实现早期或较早的输出以进一步减少推理时间期间的时延。
可以在908C处确定用于手势的多个类。多个手势类可以根据输入图像重新分类或从现有的分类结果中识别出。手势类的一些示例可包括“OK”、“张开手”、“捏合”、“C姿势”、“拳头”、“L姿势”、“指向”、“拇指向上”和“伪”。“伪”类捕获所有其它关键姿势,并且可以存储以用于随后添加一个或多个新关键姿势的重新标记。
可以使用在902C处确定的预测和损失在910C处训练神经网络。为了使用带有损失反向传播的梯度下降来训练神经网络,需要看起来和行为像线性函数但实际上是非线性函数的激活函数,允许学习数据中的复杂关系。如上所述,一些实施例使用修正线性单元作为激活函数层以允许使用交叉熵损失和反向传播来训练神经网络。
此外,还可针对由神经网络生成的预测确定一种或多种单独类型的损失。这些单独类型的损失可以包括例如分割损失、交叉熵损失、辅助关键点损失、深度监督的关键点损失、关键姿势分类损失、分类取向损失等。分割损失对应于辅助编码器层(例如,636G)并表示全部或部分与辅助编码器层有关的损失。交叉熵损失或二进制交叉熵损失与可视性解码器(例如640G)有关,并表示全部或部分与可视性层有关的损失。辅助关键点损失与辅助关键点解码器(例如638G)有关,并表示全部或部分与辅助关键点层有关的损失。深度监督损失与主编码器层(例如602G、604G和606G)和/或卷积(例如616G)有关,并表示全部或部分与这些层有关的损失。关键姿势分类损失与关键姿势解码器层(例如642G)有关,并表示全部或部分与关键姿势解码器层有关的损失。分类取向损失与分类取向层(例如644G)有关,并表示全部或部分与分类取向层有关的损失。
在912C处,一些实施例通过使用上下文路径作为训练时间伪影来进一步监督神经网络的训练,该训练时间伪影正则化否则可能会跳出手部的关键点。关于上下文路径的更多细节在本公开中的诸如图7A和10A-10B的别处描述。此外,在914C处,训练中的神经网络可以进一步被训练以从输入数据集中分割多个类。在一些实施例中,多个类包括例如背景类、右手类和左手类。此外,在这些实施例中的一些实施例中,多个类可以包括双手类。
具有不同空间分辨率的一个或多个附加关键点监督头或分支可以在916C处添加到神经网络。在上面参考例如图3、4、5A-5F和6G描述的三层神经网络的示例中,层3的输出具有输入图像全分辨率的1/8。可以添加第一附加关键点监督头,以将层3的输出上采样到全分辨率的1/4;可以添加第二附加关键点监督头,以将第一关键点监督头的输出上采样到全分辨率的1/2;等等。添加一个或多个关键点监督头可以稳定神经网络的训练,促进训练的改进梯度流,以解决可能的梯度消失问题。
一些实施例通过首先仅在神经网络的最终层处对具有监督的神经网络执行一组反向传播迭代并绘制中间层的梯度值(例如,平均梯度值)来确定是否添加一个或多个关键点监督分支。这些实施例然后可以在平均梯度值消失或下降到阈值梯度以下的层之后添加监督头或分支,并重复该过程以减少或消除可能减慢神经网络训练过程的梯度消失问题。
在918C处,可以确定最终损失。在一些实施例中,可以至少部分地基于以上参考附图标记910C描述的单独损失中的一个或多个来确定最终损失。在一些实施例中,最终损失或累积损失可被确定为多个前述单独损失的加权和。在一些实施例中,可以至少部分地基于当与其它关键点相比时指尖更难以检测的观察结果来将用于指尖预测的损失的相应权重加倍。可以至少部分地基于在918C处确定的最终损失在920C处调节神经网络。在一些实施例中,通过具有梯度下降(例如,随机梯度下降或SGD)的反向传播来训练神经网络以产生更准确的结果。
图9D示出在一些实施例中关于图9B中所示的神经网络中的多任务深度学习的高级示例框图的一部分的更多细节。在这些实施例中,可以在902D处识别一个或多个输入数据集。在一些实施例中,这些一个或多个输入数据集包括至少一个振幅图像,该振幅图像是多个相位图像的组合(例如,线性组合)。在904D处,可以在训练方案中评估一组单独损失的相应影响。
如上所述,该组单独损失可以包括例如分割损失、交叉熵损失、辅助关键点损失、深度监督的关键点损失、关键姿势分类损失、分类方向损失等。分割损失对应于辅助编码器层(例如,636G)并且表示全部或部分与辅助编码器层有关的损失。交叉熵损失或二进制交叉熵损失与可视性解码器(例如640G)有关,并表示全部或部分与可视性层有关的损失。辅助关键点损失与辅助关键点解码器(例如638G)有关,并表示全部或部分与辅助关键点层有关的损失。深度监督损失与主编码器层(例如602G、604G和606G)和/或卷积(例如616G)有关,并表示全部或部分与这些层有关的损失。关键姿势分类损失与关键姿势解码器层(例如642G)有关,并表示全部或部分与关键姿势解码器层有关的损失。分类取向损失与分类取向层(例如644G)有关,并表示全部或部分与分类取向层有关的损失。下面将参考图9E描述关于评估一组单独损失的相应影响的更多细节。
在906D处,神经网络的性能可以至少部分地基于最先进的神经网络或推理模型的基准结果来确定。在一些实施例中,神经网络的性能可以至少部分地基于例如神经网络中的参数总数、单帧图像的浮点运算总数、神经网络的2D关键点误差、任何其它度量或其任何组合,通过将神经网络与那些最先进的神经网络或推理模型进行比较来确定。在908D处,神经网络可以在908D处用一个或多个数据集的至少一部分和损失函数(诸如具有上述单热标签或目标的交叉熵函数)来训练。
图9E示出在一些实施例中关于图9D中所示的神经网络中的多任务深度学习的高级示例框图的一部分的更多细节。更具体地,图9E示出关于评估图9D的一组单独损失的相应影响的更多细节。在这些实施例中,可以在902E处确定关键点估计的度量。在这些实施例中的一些实施例中,度量包括估计的关键点与以像素表示的真实数据之间的欧几里得距离。
在904E处,可以针对训练方案识别或确定多种单独类型的损失。在906E处,可以确定要在训练方案中使用的多种单独类型的损失。单独类型的损失包括例如分割损失、交叉熵损失、辅助关键点损失、深度监督关键点损失、关键姿势分类损失、分类取向损失等。确定要用于训练方案的单独损失将通过反向传播反馈到神经网络的细化中。在一些实施例中,可以确定多个候选训练方案以对应于相应组的单独损失。
在908E处,可以用优化器以学习率在多个时期内在候选训练方案中以确定的多个单独损失来训练神经网络,并且还确定训练的网络的所得损失以采用对应的所选的单独类型的损失确定最终的训练方案。在一些实施例中,采用亚当优化器(Adam optimizer)以0.001的学习率训练神经网络20个时期。
就人工神经网络而言,一个时期是指通过完整训练数据集的一个周期。在一些实施例中,训练神经网络需要多个时期。一个时期可能经常与迭代混淆。迭代是完成一个时期所需的训练数据分区数据包(packet)的批次或步骤数。启发式地,一个动机是(特别是对于大型但有限的训练集)它让网络有机会看到先前的数据以重新调节模型参数,使得模型在训练期间不会偏向于最后几个数据点。对于神经网络,神经网络的目标之一通常是分类或生成对或错的材料。因此,针对单个任务执行多个动作的实验代理的时期可能与试图针对相同性质的许多任务执行单个动作的代理的时期不同。在强化学习术语中,这更典型地称为一段时期(episode)。
可以使用梯度下降算法(例如,随机梯度下降优化算法)来训练深度学习神经网络。学习率是超参数,该超参数控制每次更新神经网络权重时响应于估计误差对神经网络进行多少更改。选择学习率可能具有挑战性,因为值太小可能会导致过长的训练过程,而值太大可能会导致学习一组次优权重太快或训练过程不稳定。亚当优化算法是随机梯度下降的扩展,其最近在计算机视觉和自然语言处理中的深度学习应用中得到了更广泛的采用。
该过程可以返回到906E以确定具有不同组的单独类型的损失的不同候选训练方案。将选择具有最优性能(例如,在准确度和/或速度方面的最优性能)的对应的一组单独类型的损失的候选训练方案作为训练方案。在一些实施例中,所选的训练方案包括上述所有单独类型的损失。
图9F示出在一些实施例中关于图9B中所示的神经网络中的多任务深度学习的高级示例框图的另一部分的更多细节。更特别地,图9F示出关于图9B的916B的更多细节。在这些实施例中,可以在920F处做出确定以决定一个或多个关键点是否未能训练。如上所述,一些实施例使用分组卷积。在解码器层使用分组卷积的一些情况下,由于解码器层的分组结构,一些关键点可能无法训练。如果在902F处确定一个或多个关键点未能训练,则可以在904F处,至少部分地基于一个或多个规则,将来自在904B处确定的第二关键点子集中的一个或多个关键点监督头或分支确定为一个或多个训练监督头或分支。
在904F处添加一个或多个关键点作为训练监督的该过程可以包括至少通过在一层监督下针对神经网络执行少量的反向传播迭代,在906F处生成梯度图(例如,平均梯度图)。在一些实施例中,监督位于神经网络的最终层处。由于训练神经网络可能涉及使用具有梯度下降技术的反向传播,因此中间层的梯度图可用于识别任何潜在的梯度消失问题,其中梯度消失或低于阈值梯度值的问题。
在908F处,监督头或分支可以在梯度下降低于阈值梯度值的层(例如,最初对应于训练监督的中间层)之后添加。在910F处,可以至少部分地基于中间层的梯度值的结果生成规则。采用在904F处确定的一个或多个关键点监督头或分支,在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中的一个或多个上述层中提取输出特征图或特征;并且在1008A处空间路径可以用与提取的特征图或特征有关的信息进行编码。空间路径或其信息/数据然后可以被转发到特征融合层的层1026A,其中来自空间路径的输出与来自上下文路径的输出级联。采用例如图6G中描述的神经网络,来自空间路径的输出对应于原始输入图像的1/8。
关于上下文路径,可以在1010A处识别模型和池化层。在一些实施例中,可以至少部分地基于由模型提供的感受野来选择模型。例如,可以在1010A处识别轻量模型,诸如Xception模型。在一些实施例中,可以在1010A处识别具有不同尺度的多个池化层以便捕获图像的上下文(例如全局上下文),以通过尺度自适应卷积层改进网络以便获得上下文信息的自适应域。
可以在1012A处通过使用在1010A处识别的模型对特征图进行下采样来确定用于编码上下文信息的感受野。至少通过将池化添加到在1010A处识别的模型的尾端,可以在1014A处采用全局上下文信息和模型特征来增强(例如,增加)感受野。在一些实施例中,添加到模型尾端的池化层可以包括例如全局平均池化层、最大池化层、金字塔池化层、多孔空间金字塔池化层等。可以至少部分地基于例如上下文路径的性能和计算资源利用之间的平衡来确定要添加的池化层。例如,已知金字塔池化层和多孔空间金字塔池化层更具计算需求和存储器消耗,并且因此可能会在消耗更多资源的同时降低计算速度。
在1016A处,可以至少通过采用一个或多个池化层来捕获可以编码到上下文路径中的全局上下文信息采用注意力细化来细化来自一个或多个阶段的特征。例如,如上面参考例如图6H所述,可以在1020A处确定注意力向量以引导特征学习。在1022A处,可以在上下文路径中的一个或多个阶段处细化一个或多个输出特征;并且在1024A处,上下文路径信息可以被集成和编码在上下文路径中,而无需上采样。在一些实施例中,在1036A处,可以采用一个或多个辅助损失函数来训练上下文路径。
对于空间路径,可以采用主要损失函数(例如,上面附图标记918C描述的最终损失或累积损失)来训练空间路径的输出和/或特征融合层的输出。也就是说,在一些实施例中,主要损失函数可用于训练图10A中所示的整个网络的级联输出。在一些实施例中,空间路径和上下文路径被并行计算和处理以减少神经网络推理的时延和/或加速训练。
在一些实施例中,损失函数可以是softmax损失。这些实施例使用参数α(例如,在一些实施例中,α=1)来平衡主要损失和辅助损失的权重以产生联合损失,该联合损失可以使优化器更舒适地优化模型。
注意力细化层(例如,来自1024A)的输出也可以被转发到特征融合层。在1026A处,来自空间路径(例如,来自1008A)的输出特征和来自上下文路径(例如,来自1024A)的输出特征可以在1026A处级联。该级联输出可以进一步提供给1028A,该1028A通过批标准化层平衡一些特征的不同尺度。在1030A处,一些实施例将级联特征池化为特征向量(例如,上文参考图6I描述的注意力向量)并确定权重向量以对各种特征进行加权。在1032A处,这些实施例然后可以用特征向量和权重向量引导特征选择和特征组合。
在此所述的神经网络以一些最先进的网络为基准。在基准测试中,包括40个用户的数据集在训练、验证和测试之间使用28:4:8的划分,并且每个用户包括超过5000帧,总共225733帧。训练方案中使用的所有损失的相应影响已通过消融(ablation)研究进行评估。在运行时,使用并行处理的深度图像将输入图像的2D预测提升到混合3D。使用过滤和启发式至少针对识别的2D关键点验证深度值。在此描述的神经网络的运行时性能以最先进的神经网络(例如mvTensor)为基准,并示出大约16ms的时延,与那些最先进的神经网络相比,推理速度至少提高了12倍。更重要的是,神经网络中的时延对于包括例如可穿戴电子设备的移动电子设备来说是足够的。
图10B示出在一些实施例中具有多任务深度学习的神经网络中的多层编码器架构的另一个高级示意框图。在图10B中所示的这些实施例中,编码器包括层序列。在一些实施例中,层是网络中网络意义上的特定类型的模块。在第一层的情况下,层可以接收前一层或输入图像张量的特征张量,该特征张量可以被可选地缩放。层包括级联的单元序列。层内的一些或所有单元可具有相同的输出空间分辨率。在一些实施例中,例如,在使用跨步卷积而不是池化的情况下,仅第一单元被可选地允许根据输入来改变空间分辨率。在一些实施例中,它通过在第一区块内具有步幅为2的卷积来实现。
单元包括区块序列。第一区块可以被称为基本区块,在一些实施例中,该基本区块可以不包括任何残差跳过连接作为输入。例如,层1可包括步幅为2的3×3卷积层。在该示例中,层1包括单个简单的单元,其是卷积层。一些实施例可以包括例如5×5和/或7×7卷积内核和7×1加1×7可分离卷积。这些卷积内核和卷积可能增加附加复杂性并且在提供模型准确度的一些增益的同时进行计算。
在一些实施例中,层2包括更复杂的单元,该更复杂的单元包括图10B中跟随有残差区块(R1)的基本区块(B)。一些实施例级联两个此类单元(例如,单元1和单元2),但是一些其它实施例可以使用三个或更多个单元。单元可以接收第一单元的输入的级联作为输入,以及一些或所有先前单元的输出。在这些实施例中,整个层的输出是其所有单元的级联输出。虽然第一单元的输入对于层内单元中的每个单元是可见的,但一些实施例对层的最终输出隐藏输入。在这些实施例中,图10B中的两个单独的级联路径。在可选地不对层的输出隐藏其输入的一些实施例中,则这些实施例可以将其简化为仅具有单个级联路径,而不是两个。在一些实施例中,输入的隐藏可以鼓励层产生更多的变换特征,而不是简单地细化来自先前层的特征和调节来自先前层的特征的大小。
级联单元可以向输出数据张量添加一个或多个特征通道。在一些实施例中,卷积层中的特征数量可能受到限制,同时仍然建立任意多个特征通道并且仅导致计算和模型参数的线性缩放。这可能是因为计算成本和模型大小可能与卷积层大小的平方成比例。与一些传统方法(例如,DenseNet)而不是密集(即,在DenseNet称为“密集区块”的每一层之间大致类似于我们的(Our)单元)相比,一些实施例具有更少的级联连接,以及因此的计算、存储器,并且参数成本要低得多,因为级联连接是稀疏的(即,仅在单元级别)。
层3是网络具有最复杂单元的地方。层3中的单元可包括基本区块加上不断增大的空洞大小的k个残差区块的序列。在一些实施例中,k个残差区块的序列具有线性增加的空洞大小(例如,1,2,3,4,……,等)。在图10B中,层3包括单元1和单元2,其中在一些实施例中,单元1和单元2中的每一个单元包括基本区块(B)加上残差区块序列(R1+R2+...+Rk)。在一些实施例中,层3可能至少部分地基于例如对所选验证数据集的经验评估或启发式等来选择四个残差区块。在一些实施例中,基本区块(B)加上层2的残差区块(R1)单元表示一种特殊情况,其中空洞阶梯具有k=1。
在一些实施例中,可以通过级联更多单元来加宽或增加输出的特征维度。应当注意,在一些实施例中,残差区块可能需要具有相同的输入和输出特征维度。在这些实施例中,残差区块可能不会加宽或增加特征维度(例如,输出通道的数量)。在一些实施例中,这些残差区块中的一些或全部可以细化它们的输入并增加感受野大小(例如,由于例如阶梯内增加的空洞而迅速增加感受野大小)。在这些实施例中,因为空洞阶梯是可加的,因此空洞阶梯允许特征在不同的尺度上被稳健地缩放(例如,特征可以基于对象的表观大小和/或接近度从不同的Rk接收强信号)。
在一些实施例中,如图10B中所示的级联空洞阶梯(CDL)架构可能与区块结构无关。例如,一些实施例可以采用VGG或ResNet-34的(成对的)3×3区块结构,或ResNet-50/101/152使用的1-3-1瓶颈区块结构,以及较早的架构,包括一些形式IIRC的原始的网络中网络(NiN)。此外,在一些实施例中,前述的“1-3-1”包括跟随有3×3卷积的1×1卷积,该3×3卷积跟随有1×1卷积(具有或不具有在每个卷积层之后以逐通道方式应用的诸如ReLU的激活函数)。在这些实施例中,可以在3×3卷积之后应用激活(例如,ReLU)。这些实施例中的一些实施例在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%的稀疏化。在一些实施例中,这可以在将Scale和BatchNorm层折叠到卷积层中以及将权重从fp32转换为fp16之上执行。
可以在层之间采用池化层。在一些实施例中,可以在层1与层2之间采用步幅2最大池化层。一些其它实施例例如至少部分地基于池化变体的高效嵌入式实现的可用性,采用重叠池化(例如,3×3窗口)或非重叠(例如,2×2窗口)池化。重叠(3×3/s2)池化更准确,但可能稍微贵一些。
在一些实施例中,可以在层2与层3之间采用平均池化层。根据经验发现,在这些实施例中使用平均池化在某些情况下产生了优异的模型性能。在一些实施例中,可以通过例如对验证数据集的评估来确定最大池化和平均池化之间的选择。
在一些其它实施例中,可以消除一个或多个池化层。这些实施例可以将步幅2卷积应用于其第一单元的第一区块中的后续层。在使用1-3g-1瓶颈区块的一些实施例中,可以使分组的3×3卷积层步幅为2。
在一些实施例中,例如如前述附图中所示,层3包括每个单元内的空洞阶梯。在图中,res1对应于1的空洞,res2对应于2的空洞,res3对应于3的空洞,并且res 4对应于4的空洞。层3可包括8个一组。一个或多个DenseNet区块可以在层2和层3中使用,其中可以使用两个Conv-BN-S-ReLU模型单元代替四个传统单元,以便减少顺序计算。在一些实施例中,可以使用更少的通道来减少并行计算,例如,层1之后16个通道,层2之后32个通道,以及层3之后64个通道。此外,可以在层3中使用空洞卷积以增加相对较浅网络的感受野。本领域普通技术人员将理解,在层中的每个层(例如,层1、层2和层3)之后可以使用不同数量的通道。
在这些实施例中的一些实施例中,16通道输出可被分割为用于左手关键点预测的8通道和用于右手关键点预测的8通道。在一些实施例中,最后一个反卷积层可以被移除,并且最后一个卷积层可以被配置为产生32个通道而不是16个通道,使得最后一层现在具有32个输出通道而不是16个输出通道,其中输出以与输入图像的分辨率的一半分辨率产生。在这些实施例中,可以采用双线性上采样来恢复全分辨率。作为双线性上采样的替代,一些实施例可以采用被懒惰地应用于粗关键点热图的最高响应区域(或一个或多个更高响应区域)的学习上采样内核。在这些后面的实施例中的一些实施例中,32通道输出可以被分成左手关键点的15个通道、右手关键点的15个通道,以及保留用于启用或禁用运行时分割的两个分割通道。在一些实施例中,可以将具有不同数量的标记关键点(例如,多达26个标记关键点)的混合数据包用于神经网络以使用这些附加关键点来提供辅助关键点监督。
在一些实施例中,除了层1之外,可以完全采用/使用分组卷积以便减少计算。例如,可以在层2中使用4的分组因子,并且可以在层3中使用8的分组因子。在一些实施例中,编码器可以负责大部分性能增益,并且改变解码器可以仅稍微影响性能。在一些实施例中,关键点解码器可能非常精简并且所有卷积都是逐通道的(例如,组的数量可以等于通道的数量)。
在没有分组的情况下,卷积层中的内核可以是Y×Z×C,其中C表示通道的数量。在C为32,Y和Z为3的一些实施例中,卷积层的内核为3×3×32。然而,如果存在分组,例如8个组,则卷积层的内核为8组的每组为3×3×4,并且可以并行进行。
在层3的输出处的ConvT Upsample可以被称为第一ConvT Upsample,在第一ConvTUpsample的输出处的ConvT Upsample可以被称为第二ConvT Upsample,并且在第二ConvTUpsample的输出处的ConvT Upsample可以被称为第三ConvT Upsample。第三ConvTUpsample的输出与输入图像或修改的输入图像具有相同的分辨率。每个ConvT Upsample可以包括反卷积、卷积、和反卷积。每个ConvT Upsample可以被最大化地分组。
在一些实施例中,第三ConvT Upsample可以用双线性上采样代替。双线性上采样的输出与输入图像或修改的输入图像具有相同的分辨率。在训练实现中,双线性上采样可能会产生全分辨率,然而,这在嵌入式实现中可能不是必需的。例如,对于嵌入式实现中的双线性上采样,只有估计关键点的部分可能会被上采样。
在此公开的网络架构的嵌入式实现可以被精心设计以减少计算/存储器开销和能量消耗。例如,Myriad2 VPU以600MHz运行并提供12个称为SHV的VLIW计算核心。在典型工作负载下,Myriad2芯片的总功耗小于2W。每个SHV都分配有2MB片上SRAM中的128KB工作存储器片。在一些实施例中,手势DNN可以使用单个SHV执行实时每秒45帧(FPS)手部跟踪和手势识别。
在一些实施例中,由于以下几个原因,使用传统实现使这些最小化具有挑战性:(a)典型的深度学习框架以高度存储器低效的方式将卷积转换为大矩阵乘法,(b)输入数据张量通常以通道平面格式存储,这对于矢量化效率低下,(c)内核大小通常不是向量指令宽度的倍数,以及(d)空洞卷积的现成实现具有相当大的计算开销。
为了解决这些挑战,输入数据通道可以重新排序并交错到每个卷积层以与向量指令排序对齐,并且可以同时重新排序内核堆栈使得卷积减少到点积并且输出通道被自动编码为下一层/层的交错格式。此外,可以对卷积层进行分组,使得每组的滤波器数量是寄存器通道的倍数,从而最大化向量寄存器利用率。此外,梳状设计可用于最小化片上存储器占用空间的空洞卷积。例如,对于空洞=2,卷积可以分成4个独立的逐场计算(偶数行-偶数列、偶数-奇数等),该计算是独立计算的,并在输出时重新组合。因此可以以零有效开销计算空洞卷积。
通过采用多个网络预测和损失函数,可以在训练过程中采用多任务学习范式,同时保持对2D关键点预测的主要关注。在推理时,只有主编码器和解码器是设备上运行的网络的一部分。
具有单热标签的交叉熵可用于预测N*2个关键点中的每一个(每只手N个关键点)。早期层中的激进下采样加上低网络容量,使得传统的均方损失(MSE)损失无效。交叉熵具有更强的梯度信号并且更有效。在一些实施例中,标签平滑可能不会导致可观察的性能增益。
假设每只手有M个关键点标签,附加关键点(M-N)可以用作训练监督/在训练监督中使用,即使它们不是最终推理模块的一部分。由于解码器已完全分组,因此一些关键点可能无法一起训练。在一些实施例中,辅助关键点的解码器没有被分组,以便避免浮动关键点并在编码器之后对特征张量进行正则化。
在一些实施例中,二进制关键点和手部可视性掩模用于三个目的:使训练稳定,在推理期间抑制被遮挡的关键点和不可见的手部,以及在推理期间允许提前退出以减少时延。二进制交叉熵损失可用于训练这些任务。
在一些实施例中,所收集的数据(例如,训练数据)可能严重偏离面向手掌的数据,导致训练的模型在面向手掌的数据上表现不佳。为了解决这个问题,可以使用分类手部取向损失对预测进行正则化。可以标记可能由手部的旋后或旋前产生的8种分类手部取向。由于类别是近似的,因此可以软化标签,并且可以使用交叉熵损失来训练这些任务。
手部姿势可分为九个离散类:OK、张开手、捏合、C姿势、拳头、L姿势、指向、拇指向上和捕获所有其它姿势的伪类。交叉熵损失可用于训练离散手部姿势分类。
跟随BiseNet的架构,在此公开的网络架构可用作上下文路径,并使用类似于BiseNet的空间路径作为训练时间伪影,以提供有用的监督,以正则化从手部跳出的关键点。可以训练网络来使用每像素交叉熵损失以分割三类:背景、左手和右手。
可以观察到,由于解码器的分组结构,关键点经常无法训练。跟随在深度监督下训练更深的卷积网络。可以在三个中间层之后添加附加关键点监督头,采用不同的空间分辨率:主编码器的层3(全分辨率的1/8),第一上采样区块(全分辨率的1/4),第二上采样区块(全分辨率的1/2),以及第三上采样区块(全分辨率)。在一些实施例中,这稳定了训练并且促进了用于训练的更优的梯度流。
最终损失是所有单独任务损失的加权和:主要关键点损失Lkp、辅助关键点损失Lakp、关键点和手部可视性损失Lkphv、分类手部取向损失Lcho、离散手部姿势损失Ldhp、分割损失Lseg、深度监督损失Lds。
任务加权可用于对不同的损失加权,因为预测并非都处于相同的尺度。不同任务的权重是启发式得出的,但可以使用梯度归一化的自适应权重代替。方程式1的示例中示出具有所有任务损失和对应权重的完整训练损失。
方程式1
Ltotal=wkpLkp+wakpLakp+wkphvLkphv+wchoLcho+wdhpLdhp+wsegLseg+wdsLds (1)
例如,在方程式1中,wkp=1,wakp=1,wkphv=20,wcho=20,wdhp=10,wseg=50,wds=1。
可以凭经验观察到,与其它关键点相比,网络发现更难预测指尖。这可以通过在计算Lkp和Lakp时将指尖的损失加倍来解决。
表1.消融研究:去除每个监督技术,并显示相应的平均关键点误差。
这里Wk表示关键点损失加权。
Figure BDA0003364619410000551
Figure BDA0003364619410000561
表2.DenseNet、MobileNet-V2和我们实现方式之间的大小、计算成本和性能的比较
Figure BDA0003364619410000562
在此描述了本公开的各种示例实施例。以非限制性的方式参考这些示例。提供示例以示出本发明更广泛适用的方面。在不脱离本发明的真实精神和范围的情况下,可以对在此描述的各种实施例进行各种改变并且可以替换等同物。此外,可以进行许多修改以使特定情况、材料、物质组成、过程、过程行为或步骤适应本发明的目的、精神或范围。此外,如本领域技术人员将理解的,在此描述和图示的各个变体中的每一个都具有离散的组件和特征,在不脱离本发明的范围或精神的情况下,该组件和特征可以容易地与其它几个实施例中的任一个实施例的特征分离或组合。所有这些修改都旨在落入与本公开相关的权利要求的范围内。
本公开包括可以使用主题设备执行的方法。该方法可以包括提供此类合适的设备的动作。此类提供可以由最终用户执行。换句话说,“提供”动作仅需要最终用户获得、访问、接近、定位、设置、激活、通电或以其它方式动作以提供主题方法中的必要设备。可以以逻辑上可能的所列举事件的任何顺序以及以所列举的事件顺序来执行在此所述的方法。
本发明的示例方面以及关于材料选择和制造的细节已经在上文中阐述。至于本发明的其它细节,这些可以结合上面引用的专利和出版物以及本领域技术人员公知或领会的来领会。关于本发明的基于方法的方面,就通常或逻辑上采用的附加动作而言,这同样适用。
此外,虽然本发明已经参考可选地结合各种特征的几个示例进行了描述,但是本发明不限于关于本发明的每个变体所预期的描述或指示的内容。在不脱离本发明的真正精神和范围的情况下,可以对所描述的发明进行各种改变并且可以替换等效物(无论是在此引用还是为了某种简洁而未包括在内)。此外,在提供值范围的情况下,应当理解,在该范围的上限与下限之间的每个中间值和该规定范围内的任何其它规定或中间值都包含在本发明内。
此外,预期所描述的本发明变体的任何可选特征可以独立地提出和要求保护,或者与在此所述的任何一个或多个特征组合。对单数项的引用包括存在复数相同项的可能性。更具体地,如在此和与其相关的权利要求中使用的,单数形式“一”、“一个”、“所述”和“该”包括复数所指对象,除非另有具体说明。换句话说,物品的使用允许上述描述中的主题项目以及与本公开相关联的权利要求中的“至少一个”。进一步应注意,可以起草此类权利要求以排除任何可选元素。因此,本声明旨在作为与权利要求要素的叙述相关联的诸如“仅仅”、“仅”等此类专有术语的使用或“否定”限制的使用的先行基础。
在不使用此类专有术语的情况下,与本公开相关的权利要求中的术语“包括”应允许包含任何附加元素—无论此类权利要求中是否列举了给定数量的元素,或者添加特征的改变可以被视为改变了此类权利要求中提出的元素的性质。除非在此明确定义,否则在此使用的所有技术和科学术语都应尽可能具有普遍理解的含义,同时保持权利要求的有效性。
本发明的广度不限于所提供的示例和/或主题说明书,而是仅限于与本公开相关联的权利要求语言的范围。
所示实施例的以上描述并非旨在穷举或将实施例限制为所公开的精确形式。尽管为了说明的目的在此描述了具体实施例和示例,但是在不脱离本公开的精神和范围的情况下可以做出各种等效修改,如相关领域的技术人员将认识到的。在此提供的各种实施例的教导可以应用于实现虚拟或AR或混合系统和/或采用用户界面的其它设备,不一定是通常上面描述的示例AR系统。
例如,前面的详细描述已经通过使用框图、示意图和示例阐述了设备和/或过程的各种实施例。就此类框图、示意图和示例包含一个或多个功能和/或操作而言,本领域技术人员将理解,此类框图、流程图或示例中的每个功能和/或操作都可以单独和/或共同地通过广泛的硬件、软件、固件或其几乎任何组合实现。
在一个实施例中,本主题可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)等来实现。然而,本领域技术人员将认识到,在此公开的实施例整体上或部分地可以在标准集成电路中等效地实现,作为由一个或多个计算机执行的一个或多个计算机程序(例如,作为在一个或多个计算机系统上运行的一个或多个程序),作为由一个或多个控制器(例如,微控制器)执行的一个或多个程序,作为由一个或多个处理器(例如,微处理器)执行的一个或多个程序、固件或其几乎任何组合,以及根据本公开的教导,设计电路和/或为软件和/或固件编写代码将完全在本领域普通技术人员的技能范围内。
当逻辑被实现为软件并存储在存储器中时,逻辑或信息可以存储在任何非暂态计算机可读介质上以供任何处理器相关系统或方法使用或与其结合使用。在本公开的上下文中,存储器是计算机可读介质,该计算机可读介质是包含或存储计算机和/或处理器程序的电子、磁、光或其它物理设备或部件。逻辑和/或信息可以体现在任何计算机可读介质中,以供指令执行系统、装置或设备(诸如基于计算机的系统、包含处理器的系统、或可以从指令执行系统、装置或设备获取指令并执行与逻辑和/或信息相关联的指令的其它系统)使用或与其结合使用。
在本说明书的上下文中,“非暂态计算机可读介质”可以是能够存储与逻辑和/或信息相关联的程序以供指令执行系统、装置和/或设备使用或结合指令执行系统、装置和/或设备使用的任何元件。计算机可读介质可以是例如但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备。计算机可读介质的更具体示例(非详尽列表)将包括以下内容:便携式计算机软盘(磁性、紧凑型闪存卡、安全数字等)、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM、EEPROM或闪存)、便携式光盘只读存储器(CDROM)、数字磁带、和其它非暂态介质。
在此所述的许多方法可以有变化地执行。例如,许多方法可以包括附加动作、省略一些动作和/或以不同于所示出或描述的顺序执行动作。可以组合上述各种实施例以提供进一步的实施例。在与在此的具体教导和定义不一致的范围内,所有美国专利、美国专利申请出版物、美国专利申请、外国专利、外国专利申请和非专利出版物在本说明书中提及和/或列在申请数据表中。如有必要,可以修改实施例的方面以采用各种专利、申请和出版物的系统、电路和概念来提供更进一步的实施例。
可以根据以上详细描述对实施例进行这些和其它改变。一般而言,在以下权利要求中,所使用的术语不应被解释为将权利要求限于说明书和权利要求中公开的特定实施例,而应被解释为包括所有可能的实施例以及此类权利要求所授权的等效物的完整范围。因此,权利要求不受本公开限制。
此外,可以组合上述各种实施例以提供进一步的实施例。如有必要,可以修改实施例的方面,以采用各种专利、申请和出版物的概念来提供更进一步的实施例。
根据以上详细描述,可以对实施例进行这些和其它改变。一般而言,在以下权利要求中,所使用的术语不应被解释为将权利要求限于说明书和权利要求中公开的特定实施例,而应被解释为包括所有可能的实施例以及此类权利要求所授权的等效物的完整范围。因此,权利要求不受本公开限制。

Claims (20)

1.一种用于机器视觉的采用多任务深度学习范式的神经网络,包括:
编码器,其包括第一层、第二层和第三层,其中,
所述第一层包括第一层单元,
所述第一层单元包括一个或多个第一单元区块,
所述第二层在所述第二层中的一个或多个第二层单元处接收来自所述第一层的第一层输出,
第二层单元包括一个或多个第二层区块,
所述第三层在所述第三层中的一个或多个第三层单元处接收来自所述第二层的第二层输出,以及
第三层单元包括一个或多个第三层区块;
解码器,其可操作地被耦合到所述编码器以接收来自所述编码器的编码器输出;以及
一个或多个损失函数层,其被配置为反向传播一个或多个损失,以用于至少训练采用深度学习范式的所述神经网络的所述编码器。
2.根据权利要求1所述的神经网络,其中,所述第一层单元中的所述一个或多个第一单元区块包括在逻辑上被批标准化层跟随的卷积层,所述批标准化层进一步在逻辑上被尺度层跟随,并且所述一个或多个第一单元区块还包括在逻辑上跟随所述尺度层的修正线性单元。
3.根据权利要求1所述的神经网络,其中,所述第二层包括第一第二层单元和第二第二层单元,其中,
所述第一第二层单元接收来自所述第一层的第一层输出,并包括第一第二层第一单元区块和第二第二层第一单元区块,
所述第一第二层第一单元区块和所述第二第二层第一单元区块二者分别包括被尺度层跟随的批标准化层,所述尺度层进一步在逻辑上被修正线性单元跟随,
所述第一第二层第一单元区块中的所述批标准化层在逻辑上跟随第一卷积层,
所述第二第二层第一单元区块中的所述批标准化层在逻辑上跟随第二卷积层,以及
所述第一卷积层与所述第二卷积层不同。
4.根据权利要求3所述的神经网络,其中,
所述第二第二层单元包括接收来自所述第二第二层第一单元区块和所述第一层输出的级联输出的第一第二层第二单元区块、第二第二层第二单元区块、以及第三第二层第二单元区块,
所述第一第二层第二单元区块、所述第二第二层第二单元区块和所述第三第二层第二单元区块分别包括被所述尺度层跟随的所述批标准化层,所述尺度层进一步在逻辑上被所述修正线性单元跟随,所述第一第二层第二单元区块中的所述批标准化层在逻辑上跟随所述第二卷积层,
所述第二第二层第二单元区块中的所述批标准化层在逻辑上跟随所述第一卷积层,
所述第三第二层第二单元区块中的所述批标准化层在逻辑上跟随所述第二卷积层,以及
所述第三第二层第二单元区块被配置为生成第二层输出。
5.根据权利要求1所述的神经网络,其中,由所述第一层生成的第一层输出与由所述第二层生成的第二层输出级联并被提供给所述第三层作为第三层输入,其中,
所述第三层包括第一第三层单元和第二第三层单元,
所述第一第三层单元包括位于相应的第一单元层级的多个第三层第一单元区块,以及
所述多个第三层第一单元区块中的至少一些包括与多于一个第一空洞因子对应的不同空洞卷积层。
6.根据权利要求5所述的神经网络,其中,所述第二第三层单元包括位于相应的第二单元层级的多个第三层第二单元区块,所述多个第三层第二单元区块中的至少一些包括与多于一个第二空洞因子对应的多个空洞卷积层,并且所述多个第三层第一单元区块和所述多个第三层第二单元区块包括至少一个相应的空洞卷积层和多个相应的残差区块,以用于至少训练采用所述深度学习范式的所述神经网络的所述编码器。
7.根据权利要求1所述的神经网络,其中,第二层输出被提供给所述第三层作为第三层输入,并且还与由所述第三层生成的第三层输出级联作为用于所述神经输出的最终级联输出,并且至少训练采用所述深度学习范式的所述神经网络的所述编码器包括:至少使用激活层和交叉熵损失来反向传播所述一个或多个损失。
8.一种具有神经网络的嵌入式实现的移动电子设备,包括:
移动通信设备;以及
用于机器视觉的采用多任务深度学习范式的神经网络的嵌入式实现,其中,采用所述嵌入式实现的所述神经网络包括:
视觉处理单元,其具有多个超高视觉处理器或处理器核;
编码器,其包括第一层、第二层和第三层,其中,
所述第一层包括第一层单元,
所述第一层单元包括一个或多个第一单元区块,
所述第二层在所述第二层中的一个或多个第二层单元处接收来自所述第一层的第一层输出,
第二层单元包括一个或多个第二层区块,
所述第三层在所述第三层中的一个或多个第三层单元处接收来自所述第二层的第二层输出,以及
第三层区块包括一个或多个第三层区块。
9.根据权利要求8所述的移动电子设备,其中,采用所述嵌入式实现的所述神经网络包括:
可视性解码器层,其可操作地被耦合到所述编码器以接收来自所述编码器的编码器输出;
关键姿态解码器层,其可操作地被耦合到所述编码器以接收来自所述编码器的所述编码器输出;以及
取向解码器层,其可操作地被耦合到所述编码器以接收来自所述编码器的所述编码器输出。
10.根据权利要求8所述的移动电子设备,其中,所述第一层单元中的所述一个或多个第一单元区块包括在逻辑上被批标准化层跟随的卷积层,所述批标准化层进一步在逻辑上被尺度层跟随,并且所述一个或多个第一单元区块还包括在逻辑上跟随所述尺度层的修正线性单元。
11.根据权利要求8所述的移动电子设备,其中,所述第二层包括第一第二层单元和第二第二层单元,其中,
所述第一第二层单元接收来自所述第一层的第一层输出,并包括第一第二层第一单元区块和第二第二层第一单元区块,
所述第一第二层第一单元区块和所述第二第二层第一单元区块二者分别包括被尺度层跟随的批标准化层,所述尺度层进一步在逻辑上被修正线性单元跟随,
所述第一第二层第一单元区块中的所述批标准化层在逻辑上跟随第一卷积层,
所述第二第二层第一单元区块中的所述批标准化层在逻辑上跟随第二卷积层,以及
所述第一卷积层与所述第二卷积层不同。
12.根据权利要求8所述的移动电子设备,其中,由所述第一层生成的第一层输出与由所述第二层生成的第二层输出级联并被提供给所述第三层作为第三层输入,其中,
所述第三层包括第一第三层单元和第二第三层单元,
所述第一第三层单元包括位于相应的第一单元层级处的多个第三层第一单元区块,以及
所述多个第三层第一单元区块中的至少一些包括与多于一个第一空洞因子对应的不同空洞卷积层。
13.根据权利要求12所述的移动电子设备,其中,所述第二第三层单元包括位于相应的第二单元层级的多个第三层第二单元区块,所述多个第三层第二单元区块中的至少一些包括与多于一个第二空洞因子对应的多个空洞卷积层,并且所述多个第三层第一单元区块和所述多个第三层第二单元区块包括至少一个相应的空洞卷积层和多个相应的残差区块,以用于至少训练采用所述深度学习范式的所述神经网络的所述编码器。
14.根据权利要求12所述的移动电子设备,其中,第二层输出被提供给所述第三层作为第三层输入,并且还与由所述第三层生成的第三层输出级联作为用于所述神经输出的最终级联输出,并且至少训练采用所述深度学习范式的所述神经网络的所述编码器包括:至少使用激活层和交叉熵损失来反向传播所述一个或多个损失。
15.一种用于机器视觉的采用多任务深度学习范式的神经网络,包括:
空间路径层,其被配置为在空间路径中保留输入数据集中的空间信息,其中,所述空间路径对所述空间信息进行编码;
上下文路径层,其被配置为通过使用上下文路径来增加所述神经网络的感受野,其中,所述上下文路径对所述输入数据集中的上下文信息进行编码;以及
特征融合层,其被配置为融合来自所述空间路径层的第一输出和来自所述上下文路径的第二输出。
16.根据权利要求15所述的用于机器视觉的采用多任务深度学习范式的神经网络,其中,所述空间路径层包括:
编码器,其包括第一层、第二层和第三层,其中,
所述第一层包括第一层单元,
所述第一层单元包括一个或多个第一单元区块,
所述第二层在所述第二层中的一个或多个第二层单元处接收来自所述第一层的第一层输出,
第二层单元包括一个或多个第二层区块,
所述第三层在所述第三层中的一个或多个第三层单元处接收来自所述第二层的第二层输出,以及
第三层区块包括一个或多个第三层区块。
17.根据权利要求16所述的用于机器视觉的采用多任务深度学习范式的神经网络,其中,所述空间路径层包括:
解码器,其可操作地被耦合到所述编码器以接收来自所述编码器的编码器输出;以及
一个或多个损失函数层,其被配置为反向传播一个或多个损失,以用于至少训练采用深度学习范式的所述神经网络的所述编码器。
18.根据权利要求16所述的用于机器视觉的采用多任务深度学习范式的神经网络,其中,所述第二层包括第一第二层单元和第二第二层单元,其中,
所述第一第二层单元接收来自所述第一层的第一层输出,并包括第一第二层第一单元区块和第二第二层第一单元区块,
所述第一第二层第一单元区块和所述第二第二层第一单元区块二者分别包括被尺度层跟随的批标准化层,所述尺度层进一步在逻辑上被修正线性单元跟随,
所述第一第二层第一单元区块中的所述批标准化层在逻辑上跟随第一卷积层,
所述第二第二层第一单元区块中的所述批标准化层在逻辑上跟随第二卷积层,
所述第一卷积层与所述第二卷积层不同,以及
所述第一层单元中的所述一个或多个第一单元区块包括在逻辑上被批标准化层跟随的卷积层,所述批标准化层进一步在逻辑上被尺度层跟随,并且所述一个或多个第一单元区块还包括在逻辑上跟随所述尺度层的修正线性单元。
19.根据权利要求16所述的用于机器视觉的采用多任务深度学习范式的神经网络,其中,所述上下文路径层包括:
轻量模型,其被配置为至少部分地基于由所述轻量模型提供给所述神经网络的感受野来对输入图像进行下采样;以及
池化层,其被耦合到所述轻量模型并且在逻辑上被卷积层跟随,所述池化层被配置为捕获所述上下文信息。
20.根据权利要求19所述的用于机器视觉的采用多任务深度学习范式的神经网络,还包括:
注意力细化层,其可操作地被耦合到所述多个池化层并被配置为确定用于指导特征选择或组合的注意力向量;
特征融合层,其被配置为融合来自所述空间路径层的空间路径输出和来自所述上下文路径层的上下文路径输出;
第一损失函数,其被配置为训练所述空间路径层;以及
第二损失函数,其被配置为训练所述上下文路径层。
CN202080037727.0A 2019-05-21 2020-05-20 手部姿势估计 Pending CN113874883A (zh)

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 (1)

Publication Number Publication Date
CN113874883A true CN113874883A (zh) 2021-12-31

Family

ID=73457223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080037727.0A Pending CN113874883A (zh) 2019-05-21 2020-05-20 手部姿势估计

Country Status (5)

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

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109858524B (zh) * 2019-01-04 2020-10-16 北京达佳互联信息技术有限公司 手势识别方法、装置、电子设备及存储介质
JP2022537817A (ja) 2019-06-28 2022-08-30 マジック リープ, インコーポレイテッド 動的オクルージョンのための高速の手のメッシュ化
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
CN112767300B (zh) * 2019-10-18 2024-07-09 宏达国际电子股份有限公司 自动生成手部的标注数据的方法和计算骨骼长度的方法
EP4172938A4 (en) * 2020-06-26 2024-04-03 INTEL Corporation DEVICE AND METHOD FOR THREE-DIMENSIONAL POSE ESTIMATION
CN116250012A (zh) * 2020-09-30 2023-06-09 斯纳普公司 用于图像动画的方法、系统和计算机可读存储介质
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 北京华捷艾米科技有限公司 一种手部分割方法、装置、存储介质和设备
JP2022145001A (ja) * 2021-03-19 2022-10-03 キヤノン株式会社 画像処理装置、画像処理方法
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 合肥工业大学 基于可分离残差注意力网络的表情标签修正和识别方法
CN114119635B (zh) * 2021-11-23 2024-05-24 电子科技大学成都学院 一种基于空洞卷积的脂肪肝ct图像分割方法
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) 一种图像分类方法、装置、设备及介质

Family Cites Families (107)

* 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
US6018728A (en) 1996-02-09 2000-01-25 Sarnoff Corporation Method and apparatus for training a neural network to learn hierarchical representations of objects and 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
US6035057A (en) 1997-03-10 2000-03-07 Hoffman; Efrem H. Hierarchical data matrix pattern recognition and identification system
US6463426B1 (en) 1997-10-27 2002-10-08 Massachusetts Institute Of Technology Information 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 ソニー株式会社 画像処理装置、画像処理方法及び撮影装置
EP1609092A2 (en) 2003-04-03 2005-12-28 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
WO2005008593A1 (ja) 2003-07-18 2005-01-27 Canon Kabushiki Kaisha 画像処理装置、撮像装置、画像処理方法
WO2005022343A2 (en) 2003-08-29 2005-03-10 Exscientia, Llc System and methods for incrementally augmenting a classifier
US7593550B2 (en) 2005-01-26 2009-09-22 Honeywell International Inc. Distance iris recognition
EP1743277A4 (en) 2004-04-15 2011-07-06 Gesturetek Inc MONITORING OF BI-MANUAL MOVEMENTS
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
US20110286628A1 (en) 2010-05-14 2011-11-24 Goncalves Luis F Systems and methods for object recognition using a large database
US8824747B2 (en) 2010-06-29 2014-09-02 Apple Inc. Skin-tone filtering
WO2012030872A1 (en) 2010-09-02 2012-03-08 Edge3 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
US9064145B2 (en) 2011-04-20 2015-06-23 Institute Of Automation, Chinese Academy Of Sciences Identity recognition based on multiple feature fusion for an eye image
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
US9791700B2 (en) 2013-11-27 2017-10-17 Magic Leap, Inc. Virtual and augmented reality systems and methods
US9530047B1 (en) 2013-11-30 2016-12-27 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
WO2015123647A1 (en) 2014-02-14 2015-08-20 Nant Holdings Ip, Llc Object ingestion through canonical shapes, systems and methods
US9665606B2 (en) 2014-02-14 2017-05-30 Nant Holdings Ip, Llc Edge-based recognition, 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
JP6334735B2 (ja) 2014-05-06 2018-05-30 ナント・ホールデイングス・アイ・ピー・エル・エル・シー エッジベクトルを利用した画像特徴検出
WO2016018488A2 (en) 2014-05-09 2016-02-04 Eyefluence, Inc. Systems and methods for discerning eye signals and continuous biometric identification
WO2016054778A1 (en) 2014-10-09 2016-04-14 Microsoft Technology Licensing, Llc Generic object detection in images
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 カシオ計算機株式会社 画像生成装置、画像生成方法及びプログラム
BR112017019821B8 (pt) 2015-03-20 2024-02-15 Fraunhofer Ges Forschung Atribuição de pontuação de relevância para redes neurais artificiais
US10246753B2 (en) 2015-04-13 2019-04-02 uBiome, Inc. Method and system for characterizing mouth-associated conditions
WO2016183020A1 (en) 2015-05-11 2016-11-17 Magic Leap, Inc. Devices, methods and systems for biometric user recognition utilizing neural networks
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
EP3347853A1 (en) 2015-09-11 2018-07-18 EyeVerify Inc. Image and feature quality, image enhancement and feature extraction for ocular-vascular and facial recognition, and fusing ocular-vascular with facial and/or sub-facial information for biometric systems
JP6514089B2 (ja) 2015-11-02 2019-05-15 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、および情報処理方法
CA3015658A1 (en) 2016-03-11 2017-09-14 Magic Leap, Inc. Structure learning in convolutional neural networks
US10872699B2 (en) 2016-03-25 2020-12-22 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 삼성전자주식회사 다시점 영상 제어 방법 및 이를 지원하는 전자 장치
KR102707594B1 (ko) 2016-11-11 2024-09-19 삼성전자주식회사 홍채 영역 추출 방법 및 장치
US10783393B2 (en) 2017-06-20 2020-09-22 Nvidia Corporation Semi-supervised learning for landmark localization
US10269159B2 (en) 2017-07-27 2019-04-23 Rockwell Collins, Inc. Neural network foreground separation for mixed reality
WO2019084189A1 (en) * 2017-10-26 2019-05-02 Magic Leap, Inc. SYSTEMS AND METHODS FOR GRADIENT NORMALIZATION FOR ADAPTIVE LOSS BALANCING IN DEEP MULTITASK NETWORKS
KR102682524B1 (ko) 2018-09-11 2024-07-08 삼성전자주식회사 증강 현실에서 가상 객체를 표시하기 위한 측위 방법 및 장치
JP6801020B2 (ja) 2019-01-11 2020-12-16 セコム株式会社 画像認識装置、画像認識方法、及び画像認識プログラム

Also Published As

Publication number Publication date
EP3973468A1 (en) 2022-03-30
US20200372246A1 (en) 2020-11-26
EP3973468A4 (en) 2022-09-14
JP2022533206A (ja) 2022-07-21
JP7385681B2 (ja) 2023-11-22
WO2020236993A1 (en) 2020-11-26
US11775836B2 (en) 2023-10-03

Similar Documents

Publication Publication Date Title
CN113874883A (zh) 手部姿势估计
KR102216019B1 (ko) 콘볼루션 뉴럴 네트워크들을 위한 효율적인 데이터 레이아웃들
Cong et al. Minimizing computation in convolutional neural networks
Li et al. A high performance FPGA-based accelerator for large-scale convolutional neural networks
CN110428428A (zh) 一种图像语义分割方法、电子设备和可读存储介质
CN112668366B (zh) 图像识别方法、装置、计算机可读存储介质及芯片
CN111291713A (zh) 一种基于骨架的手势识别方法及系统
CN108629405B (zh) 提高卷积神经网络计算效率的方法和装置
CN115713632A (zh) 一种基于多尺度注意力机制的特征提取方法及装置
Li et al. YOLOSA: Object detection based on 2D local feature superimposed self-attention
CN114612709A (zh) 图像金字塔特征指导的多尺度目标检测方法
CN112132253B (zh) 3d动作识别方法、装置、计算机可读存储介质及设备
CN113205137A (zh) 一种基于胶囊参数优化的图像识别方法及系统
Manzoor et al. Ancient coin classification based on recent trends of deep learning.
CN113989671B (zh) 基于语义感知与动态图卷积的遥感场景分类方法及系统
CN117011655A (zh) 基于自适应区域选择特征融合方法、目标跟踪方法及系统
CN115471676A (zh) 一种基于多尺度胶囊与Bi-FPN的多模态海上目标检测方法
CN117561515A (zh) 拥塞预测模型训练方法、图像处理方法及装置
Zhang et al. Multi-scale spatial context features using 3-d recurrent neural networks for pedestrian detection
CN113743189B (zh) 一种基于分割引导的人体姿态识别方法
Diko et al. ReViT: Enhancing Vision Transformers with Attention Residual Connections for Visual Recognition
Fang et al. Embedded image recognition system for lightweight convolutional Neural Networks
CN107463870A (zh) 一种运动识别方法
Yang et al. An optimization high-resolution network for human pose recognition based on attention mechanism
Zhang et al. Context-Aware Token Selection and Packing for Enhanced Vision Transformer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination