CN111670457A - 动态对象实例检测、分割和结构映射的优化 - Google Patents
动态对象实例检测、分割和结构映射的优化 Download PDFInfo
- Publication number
- CN111670457A CN111670457A CN201880088483.1A CN201880088483A CN111670457A CN 111670457 A CN111670457 A CN 111670457A CN 201880088483 A CN201880088483 A CN 201880088483A CN 111670457 A CN111670457 A CN 111670457A
- Authority
- CN
- China
- Prior art keywords
- feature map
- neural network
- generating
- image
- person
- 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.)
- Granted
Links
- 230000011218 segmentation Effects 0.000 title claims abstract description 69
- 238000001514 detection method Methods 0.000 title description 33
- 238000005457 optimization Methods 0.000 title description 12
- 238000013507 mapping Methods 0.000 title description 4
- 238000000034 method Methods 0.000 claims abstract description 132
- 230000008569 process Effects 0.000 claims abstract description 87
- 238000013528 artificial neural network Methods 0.000 claims abstract description 85
- 238000005070 sampling Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 56
- 238000003860 storage Methods 0.000 claims description 44
- 238000011176 pooling Methods 0.000 claims description 30
- 238000010801 machine learning Methods 0.000 description 45
- 238000012549 training Methods 0.000 description 40
- 230000015654 memory Effects 0.000 description 39
- 238000004891 communication Methods 0.000 description 19
- 230000009471 action Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 230000009466 transformation Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 230000003190 augmentative effect Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 210000003423 ankle Anatomy 0.000 description 3
- 238000013475 authorization Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 210000003127 knee Anatomy 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000945 filler Substances 0.000 description 2
- 210000002683 foot Anatomy 0.000 description 2
- 210000001624 hip Anatomy 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 210000001847 jaw Anatomy 0.000 description 2
- 210000000629 knee joint Anatomy 0.000 description 2
- 210000002414 leg Anatomy 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000011897 real-time detection Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 210000002832 shoulder Anatomy 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003467 diminishing effect Effects 0.000 description 1
- 238000011438 discrete method Methods 0.000 description 1
- 210000001513 elbow Anatomy 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 210000000216 zygoma Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
- G06F18/2113—Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2137—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/103—Static body considered as a whole, e.g. static pedestrian or occupant recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20076—Probabilistic image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
- G06T2207/20104—Interactive definition of region of interest [ROI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
Abstract
在一个实施例中,一种方法包括使用第一神经网络访问图像并生成特征图的系统。该系统识别特征图中的多个感兴趣区域。可以分别为多个感兴趣区域生成多个区域特征图。使用第二神经网络,该系统可以检测多个区域特征图中的对应于图像中描绘的人的至少一个区域特征图,并且使用该区域特征图生成与该人的位置相关联的目标区域定义。基于与人的位置相关联的目标区域定义,可以通过对图像的特征图进行采样来生成目标区域特征图。该系统可以处理目标区域特征图以生成关键点遮罩和实例分割遮罩。
Description
技术领域
本公开通常涉及计算机视觉。
背景
机器学习可以用来使机器自动检测和处理图像中出现的对象。一般而言,机器学习通常包括根据机器学习模型处理训练数据集,并基于训练算法更新模型,使得它逐渐“学习”数据集中可预测期望输出的特征。机器学习模型的一个例子是神经网络,它是由相互连接的节点组成的网络。节点组可以分层排列。接收输入数据的网络的第一层可以称为输入层,从网络输出数据的最后一层可以称为输出层。可以有任意数量的内部隐藏层将输入层中的节点映射到输出层中的节点。在前馈神经网络中,除了输出层之外,每一层中节点的输出都被配置为前馈到下一层中的节点。
机器学习模型可以被训练来识别在图像中捕获的对象特征。然而,这种模型通常很大,需要许多操作。虽然大型和复杂模型可以在具有快速处理器(例如,多个中央处理单元(“CPU”)和/或图形处理单元(“GPU”)以及大型存储器(例如,随机存取存储器(“RAM”)和/或高速缓存)的高端计算机上充分执行,但是这样的模型可能不能在具有更少能力的硬件资源的计算设备上操作。需要来自模型的接近实时的结果(例如,每秒10、20或30帧)的应用,例如基于在实况视频中检测到的特征动态调整计算机生成的组件的增强现实应用,进一步加剧了该问题。
特定实施例概述
本文描述的实施例涉及机器学习模型和各种优化技术,其使得具有有限系统资源的计算设备(例如,诸如智能手机、平板电脑和膝上型电脑之类的移动设备)能够识别在图像或视频中捕获的对象和对象的特征。为了使具有有限硬件资源(例如,在处理能力和存储器大小方面)的计算设备能够执行这样的任务并且在可接受的时间限制内这样做,这里描述的实施例提供了一种紧凑的机器学习模型,该模型具有针对执行各种图像特征识别任务的效率而优化的体系结构。例如,特定实施例针对在图像或视频中捕获的人的实时或接近实时的检测、分割和结构映射(例如,满足视频的帧速率要求)。这些实时计算机视觉技术可用于实现各种移动应用,例如用化身动态地替换人的视频捕捉、检测手势以及执行与场景中出现的特定对象(例如,人)相关的其他动态图像处理。
这里公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括以上公开的实施例的组件、元件、特征、功能、操作或步骤中的全部、一些,或不包括这些组件、元件、特征、功能、操作或步骤。根据本发明的实施例在所附权利要求中具体公开,涉及方法、存储介质、系统和计算机程序产品,其中在一个权利要求类别(例如方法)中提到的任何特征,也可以在另一个权利要求类别(例如系统)中要求保护。所附权利要求中的从属关系或往回引用仅出于形式原因而选择。然而,也可以要求保护由对任何先前权利要求的有意往回引用(特别是多个从属关系)而产生的任何主题,从而权利要求及其特征的任何组合被公开了并且可以被要求保护,而不管所附权利要求中选择的从属关系如何。可以要求保护的主题不仅包括所附权利要求中阐述的特征的组合,还包括权利要求中特征的任何其他组合,其中权利要求中提到的每个特征可以与权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的任何实施例和特征可以在单独的权利要求中和/或在与本文描述或描绘的任何实施例或特征或与所附权利要求的任何特征的任何组合中要求保护。
在根据本发明的实施例中,一种方法可以包括,由计算系统:
访问图像;
使用第一神经网络生成图像的特征图;
识别特征图中的多个感兴趣区域:
通过对图像的特征图进行采样,分别为多个感兴趣区域生成多个区域特征图;
使用第二神经网络处理多个区域特征图以:
检测多个区域特征图中的对应于图像中描绘的人的至少一个区域特征图;和
使用所述区域特征图生成与人的位置相关联的目标区域定义;
基于与人的位置相关联的目标区域定义,通过对图像的特征图进行采样来生成目标区域特征图;和
进行以下操作:
通过使用第三神经网络处理所述目标区域特征图,生成与人相关联的关键点遮罩;或者
通过使用第四神经网络处理所述目标区域特征图,生成与人相关联的实例分割遮罩。
实例分割遮罩和关键点遮罩可以同时生成。
第一神经网络可以包括四个或更少的卷积层。
每个卷积层可以使用3×3或更小的内核大小。
第一神经网络可以包括总共一个池化层。
第一神经网络可以包括三个或更少的初始模块。
每个初始模块可以执行内核大小为5×5或更小的卷积运算。
第二神经网络、第三神经网络和第四神经网络中的每一个可以被配置成使用总共一个初始模块来处理输入区域特征图。
在根据本发明的实施例中,一种系统可以包括:一个或更多个处理器和耦合到一个或更多个处理器的一个或更多个计算机可读非暂时性存储介质,该一个或更多个计算机可读非暂时性存储介质包括指令,所述指令当由一个或更多个处理器执行时可操作来使系统执行包括以下的操作:
访问图像;
使用第一神经网络生成图像的特征图;
识别特征图中的多个感兴趣区域;
通过对图像的特征图进行采样,分别为多个感兴趣区域生成多个区域特征图;
使用第二神经网络处理多个区域特征图以:
检测多个区域特征图中的对应于图像中描绘的人的至少一个区域特征图;和
使用所述区域特征图生成与人的位置相关联的目标区域定义;
基于与人的位置相关联的目标区域定义,通过对图像的特征图进行采样来生成目标区域特征图;和
进行以下操作:
通过使用第三神经网络处理所述目标区域特征图,生成与人相关联的关键点遮罩;或者
通过使用第四神经网络处理所述目标区域特征图,生成与人相关联的实例分割遮罩。
实例分割遮罩和关键点遮罩可以同时生成。
第一神经网络可以包括四个或更少的卷积层。
每个卷积层可以使用3×3或更小的内核大小。
第一神经网络可以包括总共一个池化层。
第一神经网络可以包括三个或更少的初始模块。
在根据本发明的实施例中,一个或更多个计算机可读非暂时性存储介质可以包含软件,当执行该软件时,该软件可操作以使一个或更多个处理器执行操作,该操作包括:
访问图像;
使用第一神经网络生成图像的特征图;
识别特征图中的多个感兴趣区域;
通过对图像的特征图进行采样,分别为多个感兴趣区域生成多个区域特征图;
使用第二神经网络处理多个区域特征图以:
检测多个区域特征图中的对应于图像中描绘的人的至少一个区域特征图;和
使用所述区域特征图生成与人的位置相关联的目标区域定义;
基于与人的位置相关联的目标区域定义,通过对图像的特征图进行采样来生成目标区域特征图;和
进行以下操作:
通过使用第三神经网络处理所述目标区域特征图,生成与人相关联的关键点遮罩;或者
通过使用第四神经网络处理所述目标区域特征图,生成与人相关联的实例分割遮罩。
实例分割遮罩和关键点遮罩可以同时生成。
第一神经网络可以包括四个或更少的卷积层。
每个卷积层可以使用3×3或更小的内核大小。
第一神经网络可以包括总共一个池化层。
第一神经网络可以包括三个或更少的初始模块。
在根据本发明的实施例中,一个或更多个计算机可读非暂时性存储介质可以包含软件,该软件在被执行时可操作以执行根据本发明或任何上述实施例的方法。
在根据本发明的实施例中,系统可以包括:一个或更多个处理器;以及耦合到处理器并包括可由处理器执行的指令的至少一个存储器,当执行指令时处理器可操作以执行根据本发明或任何上述实施例的方法。
在根据本发明的实施例中,优选地包括计算机可读非暂时性存储介质的计算机程序产品,当在数据处理系统上执行时,可操作以执行根据本发明或任何上述实施例的方法。
附图简述
图1A-1B示出了具有边界框、分割遮罩和关键点的图像的示例。
图2示出了用于预测边界框、分割遮罩和关键点的机器学习模型的示例体系结构。
图3示出了用于检测图像中的感兴趣对象并生成实例分割遮罩和关键点遮罩的示例方法。
图4示出了根据特定实施例的用于训练机器学习模型的示例过程。
图5A示出了用于在特征图上执行卷积的示例迭代过程。
图5B示出了用于对平铺的特征图执行卷积的示例过程。
图6示出了用于优化感兴趣区域的特征图上的卷积运算的示例方法。
图7A-7C示出了姿势的低维表示的分量如何影响姿势的特征的示例。
图8示出了用于生成姿势预测的示例方法。
图9A和9B示出了可以如何使用姿势模型来调整由机器学习模型生成的关键点的示例。
图10示出了与社交网络系统相关联的示例网络环境。
图11示出了示例社交图。
图12示出了示例计算机系统。
示例实施例的描述
本文描述的实施例涉及机器学习模型和各种优化技术,其使得具有有限系统资源的计算设备(例如,诸如智能手机、平板电脑和膝上型电脑的移动设备)能够识别在图像或视频中捕获的对象和对象的特征。为了使具有有限硬件资源(例如,在处理能力和存储器大小方面)的计算设备能够执行这样的任务并且在可接受的时间限制内这样做,这里描述的实施例提供了一种紧凑的机器学习模型,该模型具有被优化用于有效地执行各种图像处理任务的体系结构。例如,特定实施例针对在图像或视频中捕获的人的实时检测(包括分类)、分割和结构(例如姿势)映射。
图1A示出了具有边界框110和分割遮罩120的图像100的示例。在特定实施例中,机器学习模型被训练来处理图像,例如图像100,并检测图像中感兴趣的特定对象。在所示的例子中,机器学习模型被训练来识别人的特征。在特定实施例中,机器学习模型可以输出边界框110,该边界框110包围诸如人的对象类型的检测实例。矩形边界框可以表示为指示该框的四个角的四个二维坐标。在特定实施例中,机器学习模型可以附加地或替代地输出分割遮罩120,其识别属于检测到的实例的特定像素。例如,分割遮罩可以被表示为二维矩阵,每个矩阵元素对应于图像的一个像素,并且元素的值对应于相关联的像素是否属于被检测的人。尽管描述了检测到的人和分割信息的特定数据表示,但是本公开考虑了这种信息的任何合适的数据表示。
图1B示出了具有分割遮罩160和结构关键点170的图像150的示例,其可用于表示检测到的人的姿势。类似于图1A所示的遮罩120,分割遮罩160识别属于被检测人的像素。在特定实施例中,机器学习模型可以附加地或替代地将关键点170映射到检测到的人的结构。关键点可以映射到被检测人的肩膀、肘部、手腕、手、臀部、膝盖、脚踝、脚、脖子、颌骨或任何其他感兴趣的关节或结构。在特定实施例中,机器学习模型可以被训练为将19个关键点映射到人(例如,颈部、上脊柱关节、下脊柱关节以及左和右颌骨、颧骨、肩膀、肘部、手腕、臀部、膝盖和脚踝)。在特定实施例中,每个关键点可以表示为二维坐标,并且该组关键点可以表示为坐标的阵列或向量。例如,19个关键点可以被表示为具有38个条目的向量,例如[x1,y1,…x19,y19],其中每对(xi,yi)代表一个关键点i的坐标。向量中每个坐标的顺序可以隐含地指示坐标对应的关键点。例如,可以预先确定(x1,y1)对应于左肩关键点,(x2,y2)对应于右肩关键点,等等。尽管描述了关键点的特定数据表示,但是本公开考虑了这种信息的任何合适的数据表示。
图2示出了根据特定实施例的机器学习模型200的示例体系结构。机器学习模型200被配置为将图像201或图像的预处理表示作为输入,例如具有与图像的高度、宽度和颜色通道(例如,红色、绿色和蓝色)相对应的维度的三维矩阵。机器学习模型200被配置为提取图像201的特征,并输出对象检测指示符279(例如,包围人的边界框的坐标)、关键点289(例如,表示被检测人的姿势)和/或分割遮罩299(例如,识别对应于被检测人的像素)。机器学习模型200的体系结构被设计成紧凑的(从而减少存储和存储需求)并且具有降低的复杂性(从而减少处理需求),使得它可以在具有有限资源的设备上产生足够精确和快速的结果,以满足实时应用的需求(例如,每秒10、15或30帧)。与诸如基于ResNet或特征金字塔网络(FPN)的传统体系结构相比,机器学习模型200的体系结构在尺寸上小得多,并且可以快得多地生成预测(例如,大约快100倍)。
在特定实施例中,机器学习模型200包括几个高级组件,包括骨干神经网络(也称为主干210)、区域建议网络(RPN)220、检测头230、关键点头240和分割头250。这些组件中的每一个都可以被配置为神经网络。在概念上,在所示的体系结构中,主干210被配置为处理输入图像201并准备表示图像201的特征图(例如,卷积输出的初始)。RPN 220获取由主干210生成的特征图,并输出数量为N的建议的感兴趣区域(RoI),其可以包括感兴趣的对象,例如人、汽车或任何其他类型的对象。检测头230然后可以检测N个RoI中的哪些可能包含感兴趣的对象,并输出相应的对象检测指示符279,其可以定义包含感兴趣的对象的图像201的较小区域,例如边界框。在特定实施例中,边界框可以是能够完全包含感兴趣对象的像素的最小或接近最小的矩形(或任何其他几何形状)。对于被认为足够可能包含感兴趣对象的RoI,其可以被称为目标区域定义,关键点头240可以确定它们各自的关键点映射289,并且分割头250可以确定它们各自的分割遮罩299。在特定实施例中,检测头230、关键点头240和分割头250可以并行执行它们各自的操作。在其他实施例中,检测头230、关键点头240和分割头250可以不并行执行它们的操作,而是采用多阶段处理方法,这具有减少计算和加速整体操作的优点。例如,关键点头240和分割头250可以等待检测头230识别对应于可能包含感兴趣对象的RoI的目标区域定义,并且只处理那些区域。因为由RPN 220最初建议的RoI的数量N通常比被认为足够可能包含感兴趣对象的RoI的数量大得多(例如,在1000比1、100比1等的数量级上,取决于给定的图像),具有这种架构配置可以显著减少由关键点头240和分割头250执行的计算,从而使得操作能够在缺乏足够硬件资源的设备(例如,移动设备)上执行。
图3示出了根据特定实施例的用于检测图像中的感兴趣对象(例如,人)并生成实例分割遮罩和关键点遮罩的示例方法。该方法可以开始于步骤310,其中基于机器学习模型执行操作的系统可以访问图像或视频帧(例如,由系统的相机捕获,该系统可以是移动设备)。
在步骤320,系统可以使用主干210为图像生成特征图。在特定实施例中,主干210可以被认为是学习整体地表示图像的骨干神经网络,并且被可以针对不同应用/任务独立优化的各种下游网络分支(例如,RPN 220、检测头230、关键点头240和分割头250)使用。概念上,主干210与每个下游组件(例如,RPN 220、检测头230等)共享,这大大降低了运行整个模型所需的计算成本和资源。
主干210包含多个卷积层,并生成输入图像的深度特征表示。在特定实施例中,主干210可以具有比ResNet和/或其他类似体系结构小得多的紧凑体系结构。在特定实施例中,主干210可以包括四个(或更少)卷积层211、212、213、214、三个(或更少)初始模块215、217、218和一个池化层(例如,最大或平均池化)216。在特定实施例中,卷积层211、212、213、214中的每一个可以使用3×3或更小的内核大小。具体而言,到主干210的每个输入图像可以依次经历第一卷积层211(例如,具有3×3内核或补丁大小,步幅大小为2,填充大小为1)、第二卷积层212(例如,具有3×3内核或补丁大小,步幅大小为2,填充大小为2)、第三卷积层213(例如,具有3×3内核或补丁大小和降维)、另一卷积层214(例如,具有3×3内核或补丁大小),第一初始模块215、最大或平均池化层216(例如,具有3×3补丁大小和步幅2)、第二初始模块217和第三初始模块218。
在特定实施例中,初始模块215、217、218中的每一个可以从其前一层取得结果,对其执行单独的卷积运算,并级联所得到的卷积。例如,在一个初始模块中,其可以包括降维操作,来自前一层的结果可以经历:(1)1×1卷积,(2)1×1卷积,随后是3×3卷积,(3)1×1卷积,随后是5×5卷积,和/或(4)3×3最大池化操作,随后是1×1降维滤波器。然后,每个模块的结果可以经过滤波器级联,以生成初始模块的输出。在上述实施例中,在初始模块中执行的卷积使用5×5或更小的内核大小;在初始模块中没有使用7×7或更大的卷积,这有助于减小神经网络的大小。通过将初始模块中的卷积限制为5×5或更小,得到的卷积和特征图将更小,这又意味着后续网络(包括与下游组件相关联的网络,例如RPN 220、检测头230等)的计算更少。尽管在该特定实施例中没有使用7×7卷积,但是在其他实施例中可以使用7×7卷积。
再次参考图3,在步骤330,根据特定实施例的系统可以识别特征图中的多个RoI。在特定实施例中,主干210的输出可被提供给RPN 220,RPN 220可被训练成输出建议的候选对象边界框或潜在RoI的其他类型的指示。在特定实施例中,候选者可以具有预定义的比例和纵横比(例如,锚点)。由RPN 220输出的建议的感兴趣区域(RoI)的数量N可能很大(例如,成千上万或数百),因为RoI可能不一定限于与感兴趣对象的类型相关的那些。例如,即使最终感兴趣的对象是人,RoI也可能包括与树、狗、汽车、房子和人相对应的区域。在特定实施例中,来自RPN 220的N个RoI可以由检测头230处理,以检测对应于感兴趣对象(例如人)的RoI。
再次参考图3,在步骤340,根据特定实施例的系统可以基于特征图分别为RoI生成多个区域特征图。例如,特定实施例可以从主干210的输出中提取每个RoI的特征,如图2中的框225所示,以生成相应的区域特征图(即,区域特征图是对应于特定RoI的特征图)。通常,可以使用一种称为RoIPool的技术。RoIPool可以首先将浮点数RoI量化为特征图的离散粒度。这个量化的RoI然后可以被细分成本身被量化的空间仓(spatial bins)。然后,可以对每个仓覆盖的特征值进行汇总(通常通过最大池化)。量化可以例如在连续坐标x上通过计算[x/16]来执行,其中16是特征图步幅和[.]是舍入;类似地,当被划分为仓(例如,7×7)时执行量化。实际上,以这种方式量化采样区域在概念上类似于基于步幅大小将该区域“捕捉”到分割特征图的统一网格。例如,如果RoI的一条边在网格线之间,则被采样的实际区域的相应边可以被“捕捉”到最近的网格线(通过舍入)。这些量化在RoI和提取的特征之间引入了不对齐。虽然这可能不会影响分类,分类对于小的平移是稳健的,但是它对预测像素精确的遮罩有很大的负面影响。
为了解决这个问题,被称为RoIAlign的特定实施例通过将提取的特征与输入适当地对齐来去除RoIPool的粗糙量化。这可以通过避免RoI边界或仓的任何量化来实现(即,使用x/16代替[x/16])。特定实施例可以使用双线性内插来计算每个RoI仓中四个规则采样位置处的输入特征的精确值,并汇总结果(使用最大化或平均化)。通过RoIAlign,系统可以为每个RoI生成预定义维度的区域特征图。特定实施例可以采样四个规则位置,以便评估最大或平均池化。事实上,在每个仓中心只对单个值插值(不池化)几乎同样有效。一个人也可以在每个仓里取样超过四个位置,这被发现会产生递减的回报。
使用RoIAlign,在特征池化225过程中使用的双线性插值更精确,但是需要更多的计算。在特定实施例中,双线性插值过程可以通过跨批次预计算网格中每个位置的双线性插值权重来优化。
再次参考图3,在步骤350,系统可以使用检测头处理(例如,使用RoIAlign生成的)多个区域特征图,以检测对应于输入图像中描绘的感兴趣对象的区域特征图,并生成与检测到的对象的位置相关联的对应目标区域定义(例如,边界框)。例如,在为每个RoI池化来自主干210的输出的特征之后,特征池化过程225(例如,RoIAlign)可以将结果(即,RoI的区域特征图)传递给检测头230,使得它可以检测哪些RoI对应于感兴趣的对象,例如人。检测头230可以是具有一组卷积层、池化层和完全连接层的神经网络。在特定实施例中,检测头230可以将每个RoI的池化特征或其区域特征图作为输入,并对每个区域特征图执行单个初始操作。例如,每个区域特征图可以经历与以上描述的那些相似的单个初始模块变换(例如,级联1×1卷积、3×3卷积和5×5卷积结果),以产生单个初始块。在特定实施例中,初始模块可以使用5×5或更小的内核大小来执行卷积运算,这不同于执行7×7卷积运算的传统模块。与使用多个初始块的其他基于ResNet的模型相比,将检测头230配置为使用单个初始块显著减小了机器学习模型的大小和运行时间。
在特定实施例中,检测头230可以被配置为处理与给定RoI相关联的初始块,并输出边界框和表示RoI对应于感兴趣对象(例如,对应于人)的可能性的概率。在特定实施例中,初始块可以首先通过平均池化来处理,并且其输出可以用于生成(1)表示检测到的对象的区域定义的边界框预测(例如,使用完全连接层)(该边界框坐标可以更精确地定义对象出现的区域),(2)分类(例如,使用完全连接层),和/或(3)概率或置信度得分(例如,使用Softmax函数)。基于分类和/或概率,检测头230可以确定哪些RoI可能对应于感兴趣的对象。在特定实施例中,可以基于检测分类/概率对所有N个RoI候选者进行排序。可以基于它们各自包含感兴趣对象(例如,人)的得分/概率来选择顶部M个RoI或它们各自的区域定义(例如,它们可以是具有更好地包围感兴趣对象的更新坐标的细化边界框)。所选择的M个区域定义可以被称为目标区域定义。在其他实施例中,RoI选择过程可以使用非极大值抑制(NMS)来帮助选择过程提前终止。使用NMS,可以在对候选RoI进行排序的同时选择候选RoI,并且一旦已经选择了期望数量的M个RoI(或者它们相应的区域定义),则选择过程终止。因此,这个过程可以进一步减少运行时间。
在特定实施例中,一旦检测头230选择了可能对应于感兴趣对象(例如,人)的实例的M个目标区域定义,它就可以将相应的目标区域定义(例如,细化的边界框)传递给关键点头240和分割头250,以便它们分别生成关键点图289和分割遮罩299。如前所述,由于对应于人的区域定义的数量M通常比最初建议的RoI的数量N少得多(即,M<<N),因此在由关键点头240和分割头250处理它们之前以这种方式过滤显著减少了计算。
在特定实施例中,在使用关键点头240和分割头250处理M个目标区域定义之前,可以生成相应的区域特征图(例如,使用RoIAlign),因为M个目标区域定义可能具有不同于相应RoI的细化的边界框定义。参考图3,在步骤360,系统可以基于目标区域定义,通过对图像的特征图进行采样来生成相应的目标区域特征图。例如,在图2所示的特征池化过程235中,系统可以为检测头230选择的M个目标区域定义中的每一个池化来自主干210输出的特征图的特征。特征池化块235可以执行类似于块225的操作(例如,使用RoIAlign),分别为M个目标区域定义生成区域特征图。在特定实施例中,双线性插值过程也可以通过跨批次预计算在网格中的每个位置处的双线性插值权重来优化。
参考图3,在步骤370,系统然后可以通过使用第三神经网络处理目标区域特征图来生成与每个检测到的人(或其他感兴趣的对象)相关联的关键点遮罩。例如,在图2中,特征池化过程235可以将池化的特征(目标区域特征图)传递到关键点头240,使得对于M个目标区域定义中的每一个,它可以检测映射到感兴趣对象的检测实例的结构的关键点289(例如,映射到可以代表人的姿势的人的关节、头部等的19个点)。在特定实施例中,关键点头240可以使用类似于以上描述的那些的单个初始模块变换(例如,级联1×1卷积、3×3卷积和5×5卷积结果)来处理每个输入目标区域定义,以产生单个初始块。与使用多个初始块的其他基于ResNet的模型相比,将关键点头240配置为使用单个初始块显著减小了机器学习模型的大小和运行时间。然后,可以通过关键点头240的神经网络进一步处理初始块,以生成关键点遮罩。
特定的实施例可以将关键点的位置建模为独热遮罩,并且关键点头240可以负责预测K个遮罩,K个关键点类型中的每一个(例如,左肩、右肘等)有一个遮罩。对于实例的K个关键点中的每一个,训练目标可以是单个像素被标记为前景而其余像素被标记为背景的独热m×m二进制遮罩(在这种情况下,对应于关键点,前景将对应于身体部位(例如颈部关节)的像素位置)。在训练期间,对于每个可见的基本事实关键点,特定实施例最小化了m2路Softmax输出上的交叉熵损失(这鼓励检测单个点)。在特定实施例中,仍然可以独立地处理K个关键点。在特定实施例中,初始块可以被输入到去卷积层和2×双线性放大中,产生56×56的输出分辨率。在特定实施例中,关键点级定位精度可能需要相对高分辨率的输出(与遮罩相比)。在特定实施例中,关键点头240可以输出被预测的身体部位(例如,肩部、膝盖、脚踝、头部等)的坐标以及预测的置信度得分。在特定实施例中,关键点头240可以输出预定身体部位的相应关键点遮罩和/或热图(例如,左膝关节的一个关键点遮罩和/或热图,右膝关节的另一个关键点遮罩和/或热图,等等)。每个热图可以包括对应于像素的值的矩阵,热图中的每个值表示相关像素位于相关身体部位的概率或置信度得分。
参考图3,在步骤380,系统可以通过使用第四神经网络处理目标区域特征图来附加地或替代地生成与每个检测到的人(或其他感兴趣的对象)相关联的实例分割遮罩。例如,图2中示出的特征池化过程235可以附加地或替代地将池化的特征(即,目标区域特征图)传递给分割头250,使得它可以针对M个RoI中的每一个生成分割遮罩299,该分割遮罩299识别哪些像素对应于感兴趣对象(例如,人)的检测实例。在特定实施例中,根据使用模型200的应用的需要,可以仅调用关键点头240或分割头250。在特定实施例中,关键点头240和分割头250可以同时执行操作以生成它们各自的遮罩。在特定实施例中,分割头可以被配置成使用单个初始模块来处理每个输入区域特征图。例如,M个区域定义中的每一个的池化特征(或RoIAlign的区域特征图)可以经历与以上描述的那些相似的单个初始模块变换(例如,级联1×1卷积、3×3卷积和5×5卷积结果),以产生单个初始块。与使用多个初始块的其他基于ResNet的模型相比,将关键点头240配置为使用单个初始块显著减小了机器学习模型的大小和运行时间。然后可以通过分割头250的神经网络进一步处理初始块,以生成分割遮罩。
在特定实施例中,分割遮罩对检测到的对象的空间布局进行编码。因此,与完全连接(fc)层不可避免地折叠成短输出向量的类标签或框偏移不同,提取遮罩的空间结构可以通过卷积提供的像素到像素的对应来自然地解决。特定实施例可以使用完全卷积神经网络(FCN)从每个RoI预测m×m遮罩。这可以允许分割头250中的每一层保持明确的m×m对象空间布局,而不将其折叠成缺少空间维度的向量表示。不同于先前借助fc层进行遮罩预测的方法,特定实施例可以需要更少的参数并且可以更精确。这种像素到像素的行为可能需要将本身是小特征图的RoI特征很好地对齐,以忠实地保留明确的每像素空间对应关系。前述被称为RoIAlign的特征池化过程(例如,在特征池化层225和235中使用的)可以解决这一需求。
在适当的情况下,特定实施例可以重复图3的过程的一个或更多个步骤。尽管本公开将图3的过程的特定步骤描述和示出为以特定顺序发生,但是本公开设想了图3的过程的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于处理感兴趣对象的图像的示例方法,包括图3所示过程的特定步骤,但是本公开设想了用于这样做的任何合适的过程,包括任何合适的步骤,在适当的情况下,其可以包括图3所示过程的所有、一些步骤或不包括这些步骤。此外,尽管本公开描述并示出了执行图3的过程的特定步骤的特定组件、设备或系统,但是本公开设想了执行图3的过程的任何适当阶段的任何适当组件、设备或系统的任何适当组合。
图4示出了根据特定实施例的用于训练机器学习模型的示例过程。在特定实施例中,多阶段训练过程可用于训练机器学习模型,每个阶段集中于训练模型的不同组件。训练过程可以在阶段410开始,在该阶段主干模型(在图4中被称为Trunk1)被预训练以执行分类任务。例如,主干可以被训练成将图像分类成任何数量的类别(例如,100、200个类别)。训练数据集可以包括具有标记类别/已知类别的图像样本。在特定实施例中,包括训练数据集的训练过程可以类似于用于训练ResNet或用于训练生成图像的特征图表示的其他类似网络的训练过程。这个预训练过程帮助主干模型获得初始化参数。
根据特定实施例,在阶段420,可以一起训练临时主干(在图4中被称为Trunktemp)和临时RPN(在图4中被称为RPNtemp),以生成用于生成RoI候选者的临时功能模型。一旦被训练,在特定实施例中Trunktemp和RPNtemp被用于辅助后续的训练过程,并且其本身不被包括在机器学习模型200中。在特定实施例中,临时Trunktemp可以被初始化为具有与来自阶段410的Trunk1相同的参数。不是在阶段410中初始化Trunk1并使用结果来初始化Trunktemp,本领域技术人员将认识到顺序可以被切换(即,Trunktemp可以在阶段410中被初始化,并且被初始化的Trunktemp可以被用于初始化Trunk1)。阶段420的训练数据集可以包括图像样本。每个图像样本可以具有相应的基本事实数据(ground truth)或标签,其可以包括边界框(例如,由锚点表示)或图像样本中包含前景/背景对象的RoI的任何其他合适的指示符。在特定实施例中,可以以与在快速R-CNN中相同的方式来训练RPN。例如,可以训练RPN来为每个采样区域生成k个锚(例如,与预定纵横比和大小的框相关联),并预测每个锚是背景或前景的可能性。一旦被训练后,Trunktemp和RPNtemp将被配置为处理给定的图像,并生成候选RoI。
在特定实施例中,在阶段430,Trunk1和各种下游头(例如,检测头、关键点头和分割头),在图4中被称为Heads1。这一阶段的训练数据集可以包括图像样本,每个样本具有基本事实数据或标签,其指示(1)图像中用于训练检测头的感兴趣对象实例(例如,人)的已知边界框(或其他指示符类型),(2)图像中用于训练关键点头的感兴趣对象实例的已知关键点(例如,表示为独热遮罩),以及(3)图像中用于训练分割头的感兴趣对象实例的已知分割遮罩。
在特定实施例中,在训练期间,可以使用在阶段420中训练的临时Trunktemp和RPNtemp来处理每个训练图像样本,以获得前述的N个候选RoI。这些N个RoI可以接着被用于训练Trunk1和各种Heads1。例如,基于N个RoI候选者,可以训练检测头来选择可能包含感兴趣对象的RoI候选者。对于每个RoI候选者,机器学习算法可以使用边界框回归器来处理与RoI及其对应的基本事实数据相关联的特征图,以学习生成限定感兴趣对象(例如,人)的细化边界框。该算法还可以使用分类器(例如,用于人或其他感兴趣的对象的前景/背景分类器或对象检测分类器)来处理与RoI及其对应的基本事实数据相关联的特征图,以学习预测对象的类别。在特定实施例中,对于分割头,单独的神经网络可以处理与每个RoI相关联的特征图,生成分割遮罩(例如,其可以表示为具有二进制值的矩阵或网格,所述二进制值指示相应的像素是否属于检测到的对象实例),将生成的遮罩与基本真实遮罩(例如,指示属于对象的真实像素)进行比较,并且使用计算出的误差经由反向传播来更新网络。在特定实施例中,对于关键点头,另一个神经网络可以处理与每个RoI相关联的特征图,为每个感兴趣的关键点(例如,头部、脚部、手部等)生成独热遮罩,将生成的遮罩与相应的基本真实遮罩(例如,指示感兴趣的关键点的真实位置)进行比较,并使用计算出的误差通过反向传播来更新网络。在特定实施例中,可以并行训练不同的头部。
在特定实施例中,在阶段440,在阶段430中已经训练了机器学习模型的Trunk1和各种Heads1之后,可以在Trunk1固定的情况下(即,Trunk1的参数在阶段430之后将保持,并且在该训练阶段期间不变)训练模型的RPN1。该阶段的训练数据集可以再次包括图像样本,每个图像样本具有相应的基本事实数据或标签,其可以包括边界框或图像样本中出现的RoI的任何其他合适的指示符。从概念上来说,这个训练阶段可以细化或定制RPN1,以提出特别适合人类检测的区域。
根据特定的实施例,在阶段450,一旦RPN1已经被训练,各种Heads1(例如,检测头、关键点头和分割头)可以用固定的Trunk1和RPN1来重新训练(即,Trunk1和RPN1的参数在阶段440之后将保持并且在该训练阶段期间不变)。训练数据集可以类似于阶段430中使用的数据集(例如,每个训练图像样本具有已知的基本事实边界框、关键点和分割遮罩)。训练过程也可以类似于参考阶段430所描述的过程,但是现在Trunk1将是固定的,并且N个候选RoI将由训练的(和固定的)Trunk1和RPN1生成,而不是临时Trunktemp和RPNtemp。
返回参考图2,一旦机器学习模型200已经被训练,在推断时间,可以给它输入图像201,它可以输出图像201中出现的感兴趣对象的实例的对应的边界框279、关键点289和分割遮罩299。在特定实施例中,训练模型200可以被包括在应用中,并且被分发到具有不同系统资源的不同设备,包括那些具有有限资源的设备,例如移动设备。由于这里描述的紧凑的模型体系结构和各种优化技术,模型200将能够充分地执行(尽管系统资源有限)以满足应用的实时需求(如果适用的话)。
在适当的情况下,特定实施例可以重复图4的训练过程的一个或更多个阶段。尽管本公开将图4的训练过程的特定阶段描述和图示为以特定顺序发生,但是本公开设想了以任何适当顺序发生的图4的训练过程的任何适当步骤。此外,尽管本公开描述并示出了用于训练机器学习模型的示例方法包括图4所示过程的特定阶段,但是本公开设想了用于训练机器学习模型的包括任何合适阶段的任何合适的过程,在适当的情况下,这些过程可以包括图4所示过程的所有、一些阶段或不包括图4所示过程的任何阶段。此外,尽管本公开描述并示出了执行图4的过程的特定阶段的特定组件、设备或系统,但是本公开设想了执行图4的过程的任何适当阶段的任何适当组件、设备或系统的任何适当组合。
在特定实施例中,在推断时间,经过训练的机器学习模型可以在具有有限硬件资源的移动设备上运行。与移动CPU相比,在移动GPU上运行操作可以提供显著的加速。某些移动平台可能提供第三方GPU处理引擎(如SnapdragonTM神经处理引擎(SNPE)),允许经过培训的机器学习模型利用各种可用的计算能力(如CPU、GPU、DSP)。然而,这种第三方处理引擎可能具有某些限制,这会导致机器学习模型的运行时性能不佳。
像SNPE这样的第三方处理引擎的一个问题是,它可能只支持三维数据(以下称为3D张量)的优化处理。如前所述,训练RPN来处理给定的输入图像并生成N个候选RoI,并且训练检测头来选择M个RoI。每个RoI可以具有三维特征图(即,通道C、高度H和宽度W)。因此,模型需要处理四维数据。由于处理引擎(如SNPE)只支持三维卷积处理,处理特征图的一种方法是迭代地处理N个(或M个,取决于推断过程的阶段)RoI的特征图,如使用FOR循环。例如,用于执行顺序卷积的FOR循环可以如下:
for i in range(0,N-1):
conv(B[i,C,W,H],K);
其中,B[i,C,W,H]表示N个RoI中的第i个RoI的特征图,K表示卷积中使用的内核或补丁。图5A通过示出三个RoI特征图501、502、503分别与三个相同的内核实例511、512、513进行卷积运算来说明该过程。在这种情况下,可以使用设备的CPU来执行FOR循环和张量分裂,并且使用设备的GPU来执行卷积。因此,在每次迭代中,数据必须在CPU内存和GPU内存之间复制,这产生了大量的开销。此外,这种迭代过程(这也意味着重复启动SNPE环境),再加上RoI相对较小的特征图,并不能有效利用SNPE的并行处理特征(SNPE或其他第三方处理引擎可能具有针对较大特征图的优化特征)。
为了避免上述问题并提高性能,特定实施例利用将4D张量(即,N或M个RoI的特征图)变换成单个3D张量的技术,使得SNPE可用于对所有特征图执行单个优化卷积运算。图5B示出了一个例子,其中RoI 501、502、503的N=3个三维特征图被平铺在一起以形成一个大的3D张量550。在特定实施例中,可以在相邻特征图之间插入填充数据,以防止不正确的采样(例如,在卷积期间,防止内核被应用于两个不同但相邻的RoI特征图)。如图5B所示,可以在特征图501和特征图502之间插入填充571,并且可以在特征图502和特征图503之间插入填充572。在特定实施例中,填充大小可以取决于内核560的大小。例如,填充大小可以等于或大于内核560的维度(例如,如果内核是3×3,则填充可以是3或更多)。在这个特定的平铺场景中,得到的3D张量550可以具有维度C×H×(W*N+m*(N-1)),其中m表示填充数据的宽度。因此,在这种情况下,张量550的C维和H维可以相对于每个区域特征图501-503保持相同,并且张量550的W维可以大于区域特征图501-503的组合W维。
根据如何处理组合张量550,平铺的特定方式可能比其他方式更有效。例如,如果要执行的操作是卷积(例如,在头230、240或250中的每一个的初始模块中),则特征图可以在某个维度上平铺以提高后续卷积效率(例如,通过提高高速缓存访问效率和减少高速缓存未命中)。RoI的区域特征图通常可以被认为是三维的,具有高度尺寸(H)、宽度尺寸(W)和通道尺寸(C)。因为RPN 220输出N个ROI,所以该N个ROI的维数将是四维的(即,H,W,C和N)。相应的数据表示可以称为4D张量。在特定实施例中,4D张量可以存储在组织为NCHW的数据结构中(即,数据以高速缓存优先的顺序存储,或者以批次、通道、高度和权重的顺序存储)。当执行卷积时,这种数据存储方式可以为检测头提供高效的高速缓存访问。类似地,当分割头和/或关键点头对来自检测头的M个区域定义的区域特征图执行卷积时,数据可以以MCHW顺序存储。然而,当涉及前述特征池化225/235过程(例如,RoIAlign)时,高速缓存访问以NHWC或MHWC顺序更有效,因为它可以减少高速缓存未命中并利用SIMD(单指令多数据)。因此,在特定实施例中,特征池化225或235过程可以包括将4D张量组织或转换成NHWC格式的步骤。这种顺序切换能够显著加快特征池化225过程。
图5B示出了一个例子,其中RoI的特征图被平铺在一起形成一行,以形成单个长的3D张量550。换句话说,只有单个维度被扩展。但是,特征图也可以以任何其他配置平铺,以便扩展两个或三个维度。为了说明,在一个示例场景中,可以有N=12个特征图。如果没有插入填充,将特征图排列成行可能会产生具有维度C*1 x H*1 x W*12的3D张量。如果特征图以扩展两个维度的方式排列,则生成的3D张量的维度可能为C*1 x H*4 x W*3。如果特征图以扩展三个维度的方式排列,则得到的3D张量可以具有维度C*2 x H*3 x W*2。
在特定实施例中,可能更希望生成具有较大纵横比的大3D张量,例如仅在一维(即,在一行中)扩展,以便最小化填充(这又最小化了所得3D张量的大小)。由于在相邻的特征图之间添加了填充,因此最小化与其他特征图相邻的特征图的表面积将导致减少对填充的需求。举例来说,如果N=4,将四个特征图图块平铺在一行中可能需要3*m的填充(即,一个在第一和第二图块之间,一个在第二和第三图块之间,一个在第三和第四图块之间)。但是,如果四个特征图图块以2×2的配置平铺,则所需的填充数量将为4*m(即,一个在左上方图块和右上方图块之间,一个在右上方图块和右下方图块之间,一个在右下方图块和左下方图块之间,以及一个在左下方图块和左上方图块之间)。因此,在特定实施例中,可以通过将特征图排列成行(即,仅在一维上扩展)来获得额外的优化。
图6示出了用于优化RoI的特征图上的卷积运算的示例方法。该方法可以开始于步骤610,其中计算系统(例如,移动设备、膝上型电脑或在推断时间使用的任何其他设备)可以访问感兴趣的图像。例如,图像可以是发布在社交网络上的静止图像或实况视频中的帧(例如,在增强现实或虚拟现实应用中捕获的)。IPE,系统可能需要实时或接近实时地获得推断结果。例如,增强现实应用或自主车辆可能需要确定在图像/视频中捕获的人或车辆的实例分割遮罩。这里描述的机器学习模型的优化使得计算设备,即使是那些硬件资源相对有限的计算设备(例如,移动电话),也能够快速生成结果以满足应用要求。
在步骤620,系统可以生成表示图像的特征图。IPE,系统可以使用骨干神经网络,例如这里描述的主干210,来生成特征图。而其他类型的骨干网(例如,ResNet、特征金字塔网络等)可替换地使用,主干210的实施例提供了例如不需要大量硬件资源(例如,CPU、GPU、高速缓存、存储器等)以在严格的时间限制内生成特征图的优点。主干的实施例使得运行在移动平台上的应用例如能够利用实时或接近实时的实例检测、分类、分割和/或关键点生成。
在步骤630,系统可以识别特征图中的感兴趣区域(RoI)。IPE,如本文所述,区域建议网络(RPN)可以识别RoI。
在步骤640,系统可以分别为RoI生成区域特征图。例如,系统可以使用诸如RoIPool或RoIAlign的采样方法来采样RoI并生成代表性的区域特征图。生成的M个区域特征图中的每一个可以具有三维(例如,对应于区域特征图的高度、宽度和通道)。IPE,区域特征图可以具有相等的维度(例如,相同的高度、相同的宽度和相同的通道)。
在步骤650,系统可以通过将M个区域特征图组合成一个来生成组合的区域特征图。如前所述,区域特征图(或3D张量)可以有效地平铺在一起以形成更大的3D张量。IPE,可以通过在单个维度(例如,在一行中)平铺区域特征图来形成组合的区域特征图。例如,组合的区域特征图的第一维度和第二维度可以分别等于多个区域特征图中的每一个的第一维度和第二维度,其中组合的区域特征图的第三维度等于或大于(例如,由于添加了填充)区域特征图的相应第三维度的组合(例如,区域特征图可以在通道方向上堆叠,导致组合的区域特征图保持与单独的区域特征图相同的高度和宽度,但是具有更大的通道深度)。IPE,组合的区域特征图可以通过在两个维度上平铺区域特征图来形成(例如,6个区域特征图可以2×3配置平铺)。例如,如果区域特征图在高度和宽度两个维度上都平铺,则生成的组合区域特征图的高度和宽度可能大于单个区域特征图,但其通道将保持不变。IPE,可以通过在所有三个维度上平铺区域特征图来形成组合的区域特征图。在这种情况下,组合的区域特征图的高度、宽度和通道可以大于单个区域特征图的高度、宽度和通道。
IPE,为了防止来自不同RoI的特征图的交叉采样,系统可以在组合的区域特征图中的相邻区域特征图对之间插入填充数据。IPE,每对相邻区域特征图之间的填充的大小可以至少与一个或更多个卷积层使用的内核大小一样宽。
在步骤660,系统可以使用一个或更多个卷积层来处理组合的区域特征图,以生成另一个组合的区域特征图。例如,系统可以使用诸如SNPE的神经处理引擎来对组合区域特征图执行卷积运算,以生成第二组合区域特征图。通过将M个区域特征图组合成一个,系统能够使用神经处理引擎的现有功能来处理M个图,神经处理引擎可以被配置成仅在三维张量上执行卷积运算,从而充分利用由这些引擎提供的优化。
在步骤670,系统可以基于与感兴趣区域相关联的第二组合区域特征图的一部分(即,在步骤660中执行的卷积运算的结果),为每个RoI生成与对象实例相关联的信息。IPE,对于每个RoI,系统可以在第二组合区域特征图中识别对应于该RoI的区域。然后,该区域可用于生成所需的输出,例如与RoI中的对象实例相关联的信息。例如,与对象实例相关联的信息可以是实例分割遮罩、关键点遮罩、边界框或分类。
在适当的情况下,特定实施例可以重复图6的过程的一个或更多个步骤。尽管本公开将图6的过程的特定步骤描述和示出为以特定顺序发生,但是本公开设想了图6的过程的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于优化卷积运算的示例方法,包括图6所示过程的特定步骤,但是本公开设想了用于这样做的任何合适的过程,包括任何合适的步骤,在适当的情况下,其可以包括图6所示过程的所有、一些步骤或不包括这些步骤。此外,尽管本公开描述并示出了执行图6的过程的特定步骤的特定组件、设备或系统,但是本公开设想了执行图6的过程的任何适当阶段的任何适当组件、设备或系统的任何适当组合。
IPE,用于在组合的区域特征图上执行卷积运算的神经网络的训练可以类似地基于在训练期间生成的区域特征图的组合。例如,对于每个训练图像,训练系统可以以如上所述的类似方式生成特征图(例如,使用前述主干)、识别RoI(例如,使用RPN)、生成RoI的区域特征图(例如,使用RoIAlign),并且将区域特征图组合成更大的组合区域特征图。被训练的神经网络然后可以处理组合的区域特征图,以生成第二组合的区域特征图。然后,系统可以将基于第二组合的区域特征图的结果与相应的基本事实数据进行比较,并使用比较结果(例如,如损失函数所定义的)来更新神经网络。IPE,系统可以为每个RoI识别第二组合的区域特征图中的对应区域,并使用它来生成输出(例如,分割遮罩、边界框、关键点等)。然后可以将每个输出与其相应的基本事实数据进行比较。IPE,基本事实数据可以类似地平铺以形成组合的基本事实数据。IPE,基本事实数据可能在组合基本事实数据中具有相对位置,其反映了对应区域特征图在组合区域特征图中的相对位置。例如,如果组合的区域特征图包括在一行中的区域特征图A、B和C并且以该顺序排列,则组合的基本事实数据也可以包括以相同顺序排列的相应的基本事实数据A、B和C。然后,可以基于卷积层的输出和组合的基本事实数据之间的比较来计算预测的误差或损失。
在特定实施例中,通过选择性地将特定操作分配给不同类型的资源,可以进一步改善经训练的机器学习模型的运行时间。在推断时,不同的操作可以被分配给不同类型的处理资源,例如CPU和GPU。模型的操作树中的某些操作段(例如,由模型执行的操作的逻辑表示)可以被分配给更适合于执行该类型的操作(例如,更有效、支持数据类型等)的指定类型的处理资源。最佳分配的选择可以基于基准测试。例如,操作段的不同组合可以被分配用于由设备的GPU或CPU进行处理,并且将结果传送到另一类型的处理单元所需的结果性能和时间(以及任何其他度量)可以被用来确定如何最好地分割和分配操作。在特定实施例中,可以通过以不同的组合自动分割操作树和/或以不同的组合将片段分配给不同的计算资源来自动执行基准测试过程。最终性能结果然后可以被排序以确定哪个分割和/或分配组合产生最佳结果。
如上所述,根据特定实施例的机器学习模型是紧凑的,并且针对推断时间速度进行了优化。在某些情况下,这种优化可能会导致预测结果的精度不太理想。为了补偿,特定实施例可以执行后处理来校正或调整模型的预测。特别地,由关键点头生成的关键点预测可以基于姿势模型自动校正。在高层次上,姿势模型可以学习人类可能做出的姿势。使用后模型,由关键点头生成的关键点预测可以被自动调整以反映姿势模型已经学习的更可能的姿势。
在特定实施例中,二维(2D)身体姿势可以由级联全部关键点的x和y坐标的向量S=[x0,y0,x1,y1,...,xN-1,yN-1,]T来表示。在特定实施例中,人类姿势可以由任意数量的关键点(例如,N=5、10、19、30等)来表示,如上所述。S中的每个(x,y)坐标可以在图像的隐式坐标系中定义。例如,图像的左上角(或任何其他点)可以被定义为坐标空间的原点(0,0),并且所有其他坐标可以相对于该原点被定义。在特定实施例中,每个姿势S可以经由表示为r(S)的变换函数被归一化到局部坐标系,该局部坐标系被定义为相对于由该姿势表示的身体的一个或更多个预定部分。例如,r(S)中继续指示关节位置的每个变换坐标(x’,y’)可以相对于例如对应于身体的头部、肩部和/或臀部的点来定义(例如,原点(0,0)可以被定义为头部、肩部之间的中点、臀部之间的中点或者肩部和臀部的相应中点之间的中点)。因此,r(S)坐标可以被认为是一组归一化坐标。例如,在基于其肩部和臀部定义了姿势的局部坐标系之后,可以定义原始隐式坐标系和局部坐标系之间的变换矩阵M。在特定实施例中,r(S)可以是将M应用于S中的每个(x,y)坐标的函数。
根据特定实施例,可以基于主成分分析(PCA)来生成姿势S的可变形2D姿势表示。PCA变换模型可以基于包含t个训练姿势S1...St的训练数据集D来训练,训练姿势中的每一个可以是对应于预定关节或其他身体部位的关键点的级联坐标的向量。通过将r(S)应用于S1...St中的每个,可以将训练数据集D中的姿势都归一化到相同的局部坐标系中。数据集D中所有r(S)的平均值可以表示为平均姿势Sm:
在特定实施例中,可以使用基于以下定义的PCA模型来生成新的姿势S(B):
S(B)=Sm+Vk*B,
其中,Vk表示前k个特征向量(例如,对应于方差最大的前k个主分量),Sm表示平均姿势,B=[β0,β1,...,βk-1]表示姿势的低维表示。对于给定的姿势S(或其标准化的对应物r(S)),姿势表示B可以被计算为:
B(S)=Vk T*(S-Sm)
图7A-7C示出了当改变B的前三个分量β0,β1,β2时,姿势模型如何变形或形变的例子。可以看出,第一分量β0控制腿长度,如图7A所示,第二分量β1控制左右姿势,如图7B所示,第三分量β2控制身体宽度,如图7C所示。
在特定实施例中,为了进一步约束姿势表示B的低维空间,可以基于投影到低维空间的姿势来学习B的每个维度的姿势表示概率模型。每个维度可以由高斯分布gi建模,并且B的姿势表示概率模型可以定义为:
A(B)=∏gi(Bi)
在特定实施例中,由机器学习模型的关键点头生成的关键点表示的姿势预测可以如下调整。在特定实施例中,关键点头可以分别输出对应于多个身体部位(例如,关节)的多个姿势概率模型H。多个姿势概率模型可以被配置用于确定相关身体部位在图像中的位置的概率。例如,每个姿势概率模型可以是热图,其针对热图中表示的每个位置,指示相关身体部位位于该位置的概率或置信度得分。给定姿势概率模型H,后处理目标可以是找到最适合以下公式的高可能性姿势S:
其中,Si是对应于预定的第i个身体部位(例如,特定关节)的S中的第个i坐标(xi,yi),Hi(Si)是S中的第i个关节或身体部位在图像中的位置(xi,yi)的置信度或可能性,r(S)是归一化到局部坐标的姿势S,S(B(r(S))表示位于底层低维空间上的姿势表示B的再现姿势,并且α是两个项之间的权重。这个问题可以通过基于梯度的优化或任何其他合适的优化技术来解决。
在特定实施例中,为了加速过程,可以使用离散方法来近似优化。对于每个关节热图,可以找到前几个(例如,一个或两个)局部最大值,并使用基于关节类型的均值偏移算法使其作为候选者。对于候选者的每个组合,姿势S的成本可以计算为:
具有最小成本的姿势可以用作最终姿势。
图8示出了用于基于姿势概率模型生成姿势预测的示例方法,该姿势概率模型例如为由本文所述的关键点头生成的姿势概率模型。该方法可以开始于步骤810,其中计算系统可以分别访问图像中描绘的身体的多个预定部位的多个姿势概率模型。多个姿势概率模型中的每一个被配置为确定身体的相关预定部位在图像中的位置的概率。如前所述,姿势概率模型可以是由关键点头生成的概率热图。
在步骤820,系统可以确定候选姿势,该候选姿势由表示身体的预定部位在图像中的候选位置的一组坐标定义。候选姿势可以被确定为优化过程的一部分(例如,通过基于梯度或基于离散的方法)。候选姿势可以是前述的在隐式坐标系中定义的S。
在步骤830,系统可以基于多个姿势概率模型和候选姿势的一组坐标来确定候选姿势的概率得分。例如,概率得分可以基于Hi(Si),其中在相应的姿势概率模型(例如,热图)Hi中查找姿势S的每个关键点Si的概率,以确定该关键点是正确的可能性。然后,可以通过例如将S中的每一个第i个关节的Hi(Si)相乘来计算总概率得分。
在步骤840,系统可以使用变换模型(例如,基于PCA)和候选姿势来生成候选姿势的姿势表示。在特定实施例中,变换模型可以应用于候选姿势S(即,B(S)),其中每个关键点的坐标在隐式坐标系中定义。在其他实施例中,变换模型可以应用于在局部坐标中定义的对应的一组归一化坐标(即,B(r(S))。IPE,变换模型可以将PCA特征向量应用于归一化坐标集合(例如,r(S))和分别与多个姿势(例如,Sm)相关联的多个归一化坐标集合的聚合表示之间的差异。得到的姿势表示B可以在具有比S或r(S)低的维度的空间维度中定义。
在步骤850,系统可以基于姿势表示概率模型,例如上述模型A,来确定姿势表示B的第二概率得分。例如,系统可以使用基于一组训练图像的已知B值生成的高斯分布模型来确定B中每个单独的点是正确的概率或可能性。各个概率的聚合(例如,基于乘法)然后可以表示姿势表示B是正确的概率得分。
IPE,与步骤850并行或相继执行,系统可以进一步计算再投影误差。例如,在步骤860,系统可以将姿势表示B从其空间维度再投影到与姿势表示所表示的姿势的坐标系相关联的另一个空间维度。例如,如果姿势表示B(r(S))表示归一化坐标r(S),则再投影S(B(r(S))可以从B的空间维度回到r(S)的空间维度。类似地,如果姿势表示B(S)表示候选姿势S,则再投影S(B(S))可以从B的空间维度回到S的空间维度。在步骤870,系统可以基于再投影的姿势表示和由B表示的原始坐标来计算再投影误差(例如,S(B(r(S))-r(S)或S(B(S))–S)。
在步骤880,系统可以基于以上在步骤830、850和870中确定的一个或更多个度量来确定候选姿势S是否满足一个或更多个标准。如所讨论的,标准可以被公式化为优化问题,其中目标是找到优化度量的S(例如,最大化候选姿势的正确概率,最大化姿势表示的正确概率,和/或最小化再投影误差)。IPE,可以迭代地重复前面的步骤,直到确定了这样的候选S。
在步骤890,系统可以至少基于候选姿势的第一概率得分、姿势表示的第二概率得分和/或再投影误差来选择候选姿势以表示图像中描绘的身体的姿势。
在适当的情况下,特定实施例可以重复图8的过程的一个或更多个步骤。尽管本公开将图8的过程的特定步骤描述和示出为以特定顺序发生,但是本公开设想了图8的过程的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于选择姿势的示例方法,包括图8所示过程的特定步骤,但是本公开设想了用于这样做的任何合适的过程,包括任何合适的步骤,在适当的情况下,其可以包括图8所示过程的所有、一些步骤或不包括这些步骤。此外,尽管本公开描述并示出了执行图8的过程的特定步骤的特定组件、设备或系统,但是本公开设想了执行图8的过程的任何适当阶段的任何适当组件、设备或系统的任何适当组合。
图9A和9B示出了如何使用姿势模型来调整由机器学习模型生成的关键点的示例。图9A示出了从机器学习模型的关键点头生成的初始结果。图9B示出了应用后处理姿势模型之后的最终结果。姿势模型有效地消除了不正确的定位(例如,交叉腿)。
图10示出了与社交网络系统相关联的示例网络环境1000。网络环境1000包括通过网络1010连接到彼此的客户端系统1030、社交网络系统1060和第三方系统1070。尽管图10示出了客户端系统1030、社交网络系统1060、第三方系统1070和网络1010的特定布置,但是本公开设想了客户端系统1030、社交网络系统1060、第三方系统1070和网络1010的任何合适的布置。作为示例而不是作为限制,客户端系统1030、社交网络系统1060和第三方系统1070中的两个或更多个可以直接连接到彼此,绕过网络1010。作为另一示例,客户端系统1030、社交网络系统1060和第三方系统1070中的两个或更多个可以全部或部分地在物理上或逻辑上彼此位于同一位置。此外,尽管图10示出了特定数量的客户端系统1030、社交网络系统1060、第三方系统1070和网络1010,但是本公开考虑了任何合适数量的客户端系统1030、社交网络系统1060、第三方系统1070和网络1010。作为示例而不是作为限制,网络环境1000可以包括多个客户端系统1030、社交网络系统1060、第三方系统1070和网络1010。
本公开设想了任何合适的网络1010。作为示例而不是作为限制,网络1010的一个或更多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网、或这些中的两个或更多个的组合。网络1010可以包括一个或更多个网络1010。
链路1050可以将客户端系统1030、社交网络系统1060和第三方系统1070连接到通信网络1010或连接到彼此。本公开设想了任何合适的链路1050。在特定实施例中,一个或更多个链路1050包括一个或更多个有线(例如数字用户线路(DSL)或有线数据服务接口规范(DOCSIS))、无线(例如Wi-Fi或全球微波接入互操作性(Wi-MAX))或光(例如同步光网络(SONET)或同步数字体系(SDH))链路。在特定实施例中,一个或更多个链路1050各自包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路1050、或两个或更多个这种链路1050的组合。链路1050不必在整个网络环境1000中相同。一个或更多个第一链路1050可以在一个或更多个方面上不同于一个或更多个第二链路1050。
在特定实施例中,客户端系统1030可以是包括硬件、软件或嵌入式逻辑组件、或两个或更多个这样的组件的组合,并且能够执行由客户端系统1030实现或支持的适当功能的电子设备。作为示例而非限制,客户端系统1030可以包括计算机系统,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、全球定位系统设备、照相机、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、增强/虚拟现实设备、其他合适的电子设备或其任何合适的组合。本公开设想了任何合适的客户端系统1030。客户端系统1030可以使在客户端系统1030处的网络用户能够访问网络1010。客户端系统1030可以使它的用户能够与在其他客户端系统1030处的其他用户进行通信。
在特定实施例中,客户端系统1030可以包括web浏览器1032,例如MICROSOFTINTERNET EXPLORER、GOOGLE CHROME或MOZILLA FIREFOX,并且可以具有一个或更多个附加件、插件或其他扩展件,例如TOOLBAR或YAHOO TOOLBAR。在客户端系统1030处的用户可以输入统一资源定位符(URL)或将web浏览器1032引导到特定的服务器(例如服务器1062或与第三方系统1070相关联的服务器)的其他地址,并且web浏览器1032可以生成超文本传输协议(HTTP)请求并将HTTP请求传递到服务器。服务器可以接受该请求,并响应于该请求向客户端系统1030传送一个或更多个超文本标记语言文件。客户端系统1030可以基于来自服务器的HTML文件来显现网页用于呈现给用户。本公开设想了任何合适的网页文件。作为示例而不是作为限制,可以根据特定的需要从HTML文件、可扩展超文本标记语言(XHTML)文件或可扩展标记语言(XML)文件来显现网页。这样的页面还可以执行脚本,例如且没有限制,用JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT编写的脚本、标记语言和脚本(例如AJAX(异步JAVASCRIPT和XML))的组合等。在本文,在适当的情况下,对网页的引用包括一个或更多个相应的网页文件(浏览器可以使用这些网页文件来显现网页),反之亦然。
在特定实施例中,社交网络系统1060可以是可以托管在线社交网络的网络可寻址计算系统。社交网络系统1060可以生成、存储、接收并发送社交网络数据(例如,用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据)。社交网络系统1060可以由网络环境1000的其他组件直接地或经由网络1010来访问。作为示例而不是作为限制,客户端系统1030可以使用web浏览器1032或与社交网络系统1060相关联的原生(native)应用(例如,移动社交网络应用、消息传送应用、另一合适的应用或其任何组合)直接地或经由网络1010来访问社交网络系统1060。在特定实施例中,社交网络系统1060可以包括一个或更多个服务器1062。每个服务器1062可以是单一服务器(unitary server)或跨越多台计算机或多个数据中心的分布式服务器。服务器1062可以具有各种类型,例如且没有限制,web服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行本文描述的功能或过程的另一服务器、或者其任何组合。在特定实施例中,每个服务器1062可以包括硬件、软件或嵌入式逻辑组件、或用于执行由服务器1062实现或支持的适当功能的两个或更多个这样的组件的组合。在特定实施例中,社交网络系统1060可以包括一个或更多个数据储存器1064。数据储存器1064可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据储存器1064中的信息。在特定实施例中,每个数据储存器1064可以是关系数据库、纵列(columnar)数据库、相关性数据库或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开设想了任何合适类型的数据库。特定实施例可以提供使客户端系统1030、社交网络系统1060或第三方系统1070能够管理、检索、修改、添加或删除存储在数据储存器1064中的信息的接口。
在特定实施例中,社交网络系统1060可以在一个或更多个数据储存器1064中存储一个或更多个社交图。在特定实施例中,社交图可以包括多个节点——其可以包括多个用户节点(每个对应于特定用户)或多个概念节点(每个对应于特定概念)——以及连接节点的多条边。社交网络系统1060可以向在线社交网络的用户提供与其他用户通信和互动的能力。在特定实施例中,用户可以经由社交网络系统1060加入在线社交网络,且然后将关连(例如,关系)添加到社交网络系统1060中的他们想要关连到的多个其他用户。在本文,术语“朋友”可以指社交网络系统1060的任何其他用户,用户经由社交网络系统1060与任何其他用户形成关连(connection)、关联(association)或关系。
在特定实施例中,社交网络系统1060可以向用户提供对由社交网络系统1060支持的各种类型的项目或对象采取动作的能力。作为示例而不是作为限制,项目和对象可以包括社交网络系统1060的用户可以属于的组或社交网络、用户可能感兴趣的事件或日历条目、用户可以使用的基于计算机的应用、允许用户经由服务来购买或销售商品的交易、用户可以执行的与广告的互动、或其他合适的项目或对象。用户可以与能够在社交网络系统1060中或者由第三方系统1070的外部系统表示的任何事物进行互动,第三方系统1070与社交网络系统1060分离并且经由网络1010耦合到社交网络系统1060。
在特定实施例中,社交网络系统1060能够链接各种实体。作为示例而不是作为限制,社交网络系统1060可以使用户能够彼此互动以及从第三方系统1070或其他实体接收内容,或者允许用户通过应用编程接口(API)或其他通信渠道与这些实体互动。
在特定实施例中,第三方系统1070可以包括一种或更多种类型的服务器、一个或更多个数据储存器、一个或更多个接口(包括但不限于API)、一个或更多个web服务、一个或更多个内容源、一个或更多个网络或任何其他合适的部件(例如,服务器可以与这些部件通信)。第三方系统1070可以由与操作社交网络系统1060的实体不同的实体进行操作。然而,在特定实施例中,社交网络系统1060和第三方系统1070可以结合彼此来操作以向社交网络系统1060或第三方系统1070的用户提供社交网络服务。在这个意义上,社交网络系统1060可以提供平台或骨干网,其他系统(例如第三方系统1070)可以使用该平台或骨干网来在整个互联网上向用户提供社交网络服务和功能。
在特定实施例中,第三方系统1070可以包括第三方内容对象提供者。第三方内容对象提供者可以包括可以被传递到客户端系统1030的内容对象的一个或更多个源。作为示例而不是作为限制,诸如,内容对象可以包括关于用户感兴趣的事情或活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论或其他合适的信息。作为另一示例而不是作为限制,内容对象可以包括激励内容对象(例如优惠券、折扣券、礼品券或其他合适的激励对象)。
在特定实施例中,社交网络系统1060还包括用户生成的内容对象,其可以增强用户与社交网络系统1060的互动。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统1060的任何内容。作为示例而不是作为限制,用户将帖子从客户端系统1030传送到社交网络系统1060。帖子可以包括数据,例如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。内容还可以由第三方通过“通信渠道”(例如新闻提要或流)来添加到社交网络系统1060。
在特定实施例中,社交网络系统1060可以包括各种服务器、子系统、程序、模块、日志和数据储存器。在特定实施例中,社交网络系统1060可以包括下列项中的一个或更多个:web服务器、动作记录器、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块(advertisement-targeting module)、用户界面模块、用户简档储存器、关连储存器(connection store)、第三方内容储存器或位置储存器。社交网络系统1060还可以包括合适的部件,例如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的部件、或其任何合适的组合。在特定实施例中,社交网络系统1060可以包括用于存储用户简档的一个或更多个用户简档储存器。用户简档可以包括例如,传记信息、人口统计信息、行为信息、社交信息或其他类型的描述性信息(例如工作经历、教育历史、爱好或偏好、兴趣、喜好或位置)。兴趣信息可以包括与一个或更多个类别相关的兴趣。类别可以是一般的或特定的。作为示例而不是作为限制,如果用户“赞(like)”关于一种品牌的鞋的文章,该类别可以是品牌,或者“鞋”或“衣服”的一般类别。关连储存器可以用于存储关于用户的关连信息。关连信息可以指示具有相似或共同的工作经历、组成员资格、爱好、教育历史或者以任何方式相关或共享共同属性的用户。关连信息还可以包括在不同用户和内容(内部和外部)之间的用户定义的关连。web服务器可以用于经由网络1010将社交网络系统1060链接到一个或更多个客户端系统1030或一个或更多个第三方系统1070。web服务器可以包括邮件服务器或用于在社交网络系统1060和一个或更多个客户端系统1030之间接收并按规定路线发送消息的其他消息传送功能。API请求服务器可以允许第三方系统1070通过调用一个或更多个API来访问来自社交网络系统1060的信息。动作记录器可以用于从web服务器接收关于用户在社交网络系统1060上或之外的动作的通信。结合动作日志,可以维护用户暴露于第三方内容对象的第三方内容对象日志。通知控制器可以向客户端系统1030提供关于内容对象的信息。信息可以作为通知被推送到客户端系统1030,或者信息可以响应于从客户端系统1030接收的请求而从客户端系统1030中被拉取。授权服务器可以用于实施社交网络系统1060的用户的一个或更多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何被分享。授权服务器可以例如通过设置适当的隐私设置来允许用户选择加入或选择退出使他们的动作由社交网络系统1060记录或者与其他系统(例如,第三方系统1070)分享。第三方内容对象储存器可以用于存储从第三方(例如第三方系统1070)接收的内容对象。位置储存器可以用于存储从与用户相关联的客户端系统1030接收的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其他合适的信息以用通知的形式向用户提供相关广告。
图11示出了示例社交图1100。在特定实施例中,社交网络系统1060可以在一个或更多个数据储存器中存储一个或更多个社交图1100。在特定实施例中,社交图1100可以包括多个节点——其可以包括多个用户节点1102或多个概念节点1104——以及连接这些节点的多条边1106。出于教导的目的,图11中示出的示例社交图1100以二维视觉图表示示出。在特定实施例中,社交网络系统1060、客户端系统1030或第三方系统1070可以访问社交图1100和相关社交图信息以用于合适的应用。社交图1100的节点和边可以作为数据对象存储,例如,存储在数据储存器(例如社交图数据库)中。这种数据储存器可以包括社交图1100的节点或边的一个或更多个可搜索或可查询的索引。
在特定实施例中,用户节点1102可以对应于社交网络系统1060的用户。作为示例而不是作为限制,用户可以是与社交网络系统1060或通过社交网络系统1060互动或通信的个人(人类用户)、实体(例如,企业、公司或第三方应用)或(例如,个人或实体的)团体。在特定实施例中,当用户向社交网络系统1060注册账户时,社交网络系统1060可以创建对应于用户的用户节点1102,并将用户节点1102存储在一个或更多个数据储存器中。这里描述的用户和用户节点1102在适当的情况下可以指注册用户和与注册用户相关联的用户节点1102。另外或作为备选方案,在适当的情况下,本文描述的用户和用户节点1102可以指没有向社交网络系统1060注册的用户。在特定实施例中,用户节点1102可以与由用户提供的信息或由各种系统(包括社交网络系统1060)收集的信息相关联。作为示例而不是作为限制,用户可以提供他或她的姓名、简档图片、联系信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、偏好、兴趣或其他人口统计信息。在特定实施例中,用户节点1102可以与对应于与用户相关联的信息的一个或更多个数据对象相关联。在特定实施例中,用户节点1102可以对应于一个或更多个网页。
在特定实施例中,概念节点1104可以对应于概念。作为示例而非限制,概念可以对应于地点(例如,电影院、餐馆、地标或城市);网站(例如,与社交网络系统1060相关联的网站或与web应用服务器相关联的第三方网站);实体(例如,个人、企业、团体、运动队或名人);可以位于社交网络系统1060内或诸如网络应用服务器的外部服务器上的资源(例如,音频文件、视频文件、数字照片、文本文件、结构化文档或应用程序);不动产或知识产权(例如,雕塑、绘画、电影、游戏、歌曲、创意、照片或书面作品);游戏;活动;想法或理论;增强/虚拟现实环境中的对象;另一个合适的概念;或者两个或多个这样的概念。概念节点1104可以与用户提供的概念信息或包括社交网络系统1060在内的各种系统收集的信息相关联。作为示例而不是作为限制,概念的信息可以包括名称或标题;一个或更多个图像(例如,书籍的封面的图像);位置(例如,地址或地理位置);网站(其可以与URL相关联);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或者这样的信息的任何合适的组合。在特定实施例中,概念节点1104可以与对应于与概念节点1104相关联的信息的一个或更多个数据对象相关联。在特定实施例中,概念节点1104可以对应于一个或更多个网页。
在特定实施例中,社交图1100中的节点可以表示网页或由网页表示(其可以被称为“简档页面”)。简档页面可以由社交网络系统1060托管或是社交网络系统1060可访问的。简档页面也可以在与第三方系统1070相关联的第三方网站上被托管。作为示例而不是作为限制,对应于特定外部网页的简档页面可以是特定外部网页,并且简档页面可以对应于特定概念节点1104。简档页面可以由其他用户的全部或选定子集可查看。作为示例而不是作为限制,用户节点1102可以具有相应的用户简档页面,其中相应的用户可以添加内容、作出声明或以其他方式表达他或她自己。作为另一示例而不是作为限制,概念节点1104可以具有相应的概念简档页面,其中一个或更多个用户可以特别是关于对应于概念节点1104的概念来添加内容、作出声明或表达他们自己。
在特定实施例中,概念节点1104可以表示由第三方系统1070托管的第三方网页或资源。第三方网页或资源除了其他元素以外还可以包括表示动作或活动的内容、可选择的图标或其他图标或其他可交互对象(其可以例如用JavaScript、AJAX或PHP代码实现)。作为示例而不是作为限制,第三方网页可以包括可选择的图标(例如“赞”、“签到(check-in)”、“吃”、“推荐”)或其他合适的动作或活动。查看第三方网页的用户可以通过选择图标之一(例如,“签到”)来执行动作,使得客户端系统1030向社交网络系统1060发送指示用户动作的消息。响应于该消息,社交网络系统1060可以在对应于用户的用户节点1102和对应于第三方网页或资源的概念节点1104之间创建边(例如,签到型边),并将边1106存储在一个或更多个数据储存器中。
在特定实施例中,社交图1100中的一对节点可以通过一条或更多条边1106连接到彼此。连接一对节点的边1106可以表示在该对节点之间的关系。在特定实施例中,边1106可以包括或表示对应于在一对节点之间的关系的一个或更多个数据对象或属性。作为示例而不是作为限制,第一用户可以指示第二用户是第一用户的“朋友”。响应于该指示,社交网络系统1060可以向第二用户发送“朋友请求”。如果第二用户确认“朋友请求”,则社交网络系统1060可以在社交图1100中创建将第一用户的用户节点1102连接到第二用户的用户节点1102的边1106,并将边1106作为社交图信息存储在一个或更多个数据储存器1064中。在图11的示例中,社交图1100包括指示用户“A”和用户“B”的用户节点1102之间的朋友关系的边1106,以及指示用户“C”和用户“B”的用户节点1102之间的朋友关系的边。尽管本公开描述或示出了具有连接特定用户节点1102的特定属性的特定边1106,但是本公开设想了具有连接用户节点1102的任何适当属性的任何适当边1106。作为示例而非限制,边1106可以代表友谊、家庭关系、商业或雇佣关系、粉丝关系(包括,例如,喜欢等),追随者关系,访问者关系(包括,例如,访问、查看、签到、分享等)、订户关系、上级/下级关系、互惠关系、非互惠关系、另一种合适类型的关系或两种或多种这样的关系。此外,尽管本公开一般将节点描述为被连接,但是本公开也将用户或概念描述为被连接。这里,对被连接的用户或概念的引用可以在适当的情况下指对应于社交图1100中通过一条或更多条边1106被连接的那些用户或概念的节点。分别由两个节点表示的两个对象之间的分离度是连接社交图1100中的两个节点的最短路径中的边数。作为示例而非限制,在社交图1100中,用户“C”的用户节点1102经由多条路径连接到用户“A”的用户节点1102,例如,直接通过用户“B”的用户节点1102的第一路径,通过公司“Acme”的概念节点1104和用户“D”的用户节点1102的第二路径,以及通过代表学校“斯坦福”、用户“G”、公司“Acme”和用户“D”的用户节点1102和概念节点1104的第三路径。用户“C”和用户“A”具有两个分离度,因为连接它们相应节点的最短路径(即第一路径)包括两条边1106。
在特定实施例中,在用户节点1102和概念节点1104之间的边1106可以表示由与用户节点1102相关联的用户朝着与概念节点1104相关联的概念执行的特定动作或活动。作为示例而非限制,如图11所示,用户可以“赞”、“参加”、“播放”、“收听”、“烹饪”、“工作于”或“观看”概念,其中每个可以对应于边类型或子类型。对应于概念节点1104的概念简档页面可以包括例如可选择的“签到”图标(例如,可点击的“签到”图标)或可选择的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,社交网络系统1060可以响应于对应于相应动作的用户动作来创建“收藏夹”边或“签到”边。作为另一个示例而非限制,用户(用户“C”)可以使用特定的应用程序(声田,其是在线音乐应用程序)来收听特定的歌曲(“想象”)。在这种情况下,社交网络系统1060可以在对应于用户的用户节点1102和对应于歌曲和应用的概念节点1104之间创建“收听”边1106和“使用”边(如图11所示),以指示用户收听了歌曲并使用了应用。此外,社交网络系统1060可以在对应于歌曲和应用的概念节点1104之间创建“播放”边1106(如图11所示),以指示特定歌曲是由特定应用播放的。在这种情况下,“播放”边1106对应于外部应用程序(声田)对外部音频文件(歌曲“想象”)执行的动作。尽管本公开描述了连接用户节点1102和概念节点1104的具有特定属性的特定边1106,但是本公开设想了连接用户节点1102和概念节点1104的具有任何适当属性的任何适当边1106。此外,尽管本公开描述了表示单个关系的在用户节点1102和概念节点1104之间的边,但是本公开设想了表示一个或更多个关系的在用户节点1102和概念节点1104之间的边。作为示例而不是作为限制,边1106可以表示用户喜欢并使用了特定概念。可选地,另一条边1106可以表示用户节点1102和概念节点1104之间(如图11中所示,在用户“E”的用户节点1102和“SPOTIFY”的概念节点1104之间)的每种类型的关系(或者多个单一关系)。
在特定实施例中,社交网络系统1060可以在社交图1100中的用户节点1102和概念节点1104之间创建边1106。作为示例而非限制,查看概念简档页面的用户(例如,通过使用由用户的客户端系统1030托管的web浏览器或专用应用程序)可以通过点击或选择“赞”图标来指示他或她喜欢由概念节点1104表示的概念,这可以使得用户的客户端系统1030向社交网络系统1060发送指示用户喜欢与概念简档页面相关联的概念的消息。响应于该消息,社交网络系统1060可以在与用户相关联的用户节点1102和概念节点1104之间创建边1106,如由在用户和概念节点1104之间的“赞”边1106所示的。在特定实施例中,社交网络系统1060可以将边1106存储在一个或更多个数据储存器中。在特定实施例中,边1106可以由社交网络系统1060响应于特定用户动作而自动形成。作为示例而非限制,如果第一用户上传图片、观看电影或听歌曲,则可以在对应于第一用户的用户节点1102和对应于这些概念的概念节点1104之间形成边1106。尽管本公开描述了以特定方式形成特定边1106,但是本公开设想以任何合适的方式形成任何合适的边1106。
图12示出了示例计算机系统1200。在特定实施例中,一个或更多个计算机系统1200执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统1200提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统1200上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统1200的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系统。
本公开设想了任何合适数量的计算机系统1200。本公开设想了计算机系统1200采取任何合适的物理形式。作为示例而不是作为限制,计算机系统1200可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或者这些系统的两个或更多个的组合。在适当的情况下,计算机系统1200可以包括一个或更多个计算机系统1200;是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云组件。在适当的情况下,一个或更多个计算机系统1200可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统1200可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统1200可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
在特定实施例中,计算机系统1200包括处理器1202、存储器1204、存储装置1206、输入/输出(I/O)接口1208、通信接口1210和总线1212。尽管本公开描述并示出了具有在特定布置中的特定数量的特定组件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适组件的任何合适的计算机系统。
在特定实施例中,处理器1202包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器1202可以从内部寄存器、内部高速缓存、存储器1204或存储装置1206中检索(或取回)指令;将他们解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器1204或存储装置1206。在特定实施例中,处理器1202可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了处理器1202包括任何合适数量的任何合适的内部高速缓存。作为示例而不是作为限制,处理器1202可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲器(TLB)。在指令高速缓存中的指令可以是在存储器1204或存储装置1206中的指令的副本,并且指令高速缓存可以加速处理器1202对那些指令的检索。在数据高速缓存中的数据可以是:在存储器1204或存储装置1206中的数据的副本,用于使在处理器1202处执行的指令进行操作;在处理器1202处执行的先前指令的结果,用于由在处理器1202处执行的后续指令访问或者用于写到存储器1204或存储装置1206;或其他合适的数据。数据高速缓存可以加速由处理器1202进行的读或写操作。TLB可以加速关于处理器1202的虚拟地址转译。在特定实施例中,处理器1202可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了处理器1202包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器1202可以包括一个或更多个算术逻辑单元(ALU);是多核处理器;或者包括一个或更多个处理器1202。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
在特定实施例中,存储器1204包括用于存储用于使处理器1202执行的指令或用于使处理器1202操作的数据的主存储器。作为示例而不是作为限制,计算机系统1200可以将指令从存储装置1206或另一个源(例如,另一个计算机系统1200)加载到存储器1204。处理器1202然后可以将指令从存储器1204加载到内部寄存器或内部高速缓存。为了执行指令,处理器1202可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器1202可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器1202然后可以将这些结果中的一个或更多个写到存储器1204。在特定实施例中,处理器1202仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器1204(而不是存储装置1206或其他地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器1204(而不是存储装置1206或其他地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器1202耦合到存储器1204。如下所述,总线1212可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(MMU)驻留在处理器1202和存储器1204之间,并且便于由处理器1202请求的对存储器1204的访问。在特定实施例中,存储器1204包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开设想了任何合适的RAM。在适当的情况下,存储器1204可以包括一个或更多个存储器1204。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
在特定实施例中,存储装置1206包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置1206可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置1206可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置1206可以在计算机系统1200的内部或外部。在特定实施例中,存储装置1206是非易失性固态存储器。在特定实施例中,存储装置1206包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可变ROM(EAROM)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置1206。在适当的情况下,存储装置1206可以包括便于在处理器1202和存储装置1206之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置1206可以包括一个或更多个存储装置1206。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
在特定实施例中,I/O接口1208包括提供用于在计算机系统1200和一个或更多个I/O设备之间的通信的一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机系统1200可以包括这些I/O设备中的一个或更多个。这些I/O设备中的一个或更多个可以实现在人和计算机系统1200之间的通信。作为示例而不是作为限制,I/O设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、平板计算机、触摸屏、跟踪球、视频摄像机、另一个合适的I/O设备、或这些中的两个或更多个的组合。I/O设备可以包括一个或更多个传感器。本公开设想了任何合适的I/O设备以及用于它们的任何合适的I/O接口1208。在适当的情况下,I/O接口1208可以包括使处理器1202能够驱动这些I/O设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,I/O接口1208可以包括一个或更多个I/O接口1208。尽管本公开描述并示出了特定的I/O接口,但是本公开设想了任何合适的I/O接口。
在特定实施例中,通信接口1210包括提供用于在计算机系统1200和一个或更多个其他计算机系统1200或一个或更多个网络之间的通信(例如,基于包的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口1210可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(例如Wi-Fi网络)进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口1210。作为示例而不是作为限制,计算机系统1200可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机系统1200可以与无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机系统1200可以包括用于这些网络中的任一个的任何合适的通信接口1210。在适当的情况下,通信接口1210可以包括一个或更多个通信接口1210。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
在特定实施例中,总线1212包括将计算机系统1200的组件耦合到彼此的硬件、软件或两者。作为示例而非限制,总线1212可以包括加速图形端口(AGP)或其他图形总线、扩展工业标准体系结构(EISA)总线、前端总线(FSB)、超级传输(HT)互连、工业标准体系结构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或另外的合适总线,或者这些总线中的两种或更多种的组合,在适当的情况下,总线1212可以包括一条或多条总线1212。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字(SECURE DIGITAL)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A或B”意指“A、B或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A和B”意指“A和B,联合地或各自地”。
本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的组件的引用包括该装置、系统、组件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、系统或组件是这样被调整、被布置、使能够、被配置、被实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。
Claims (35)
1.一种方法,包括由计算系统:
访问图像;
使用第一神经网络生成所述图像的特征图;
识别所述特征图中的多个感兴趣区域;
通过对所述图像的所述特征图进行采样,分别为所述多个感兴趣区域生成多个区域特征图;
使用第二神经网络处理所述多个区域特征图以:
检测所述多个区域特征图中对应于所述图像中描绘的人的至少一个区域特征图;和
使用所述区域特征图生成与人的位置相关联的目标区域定义;
基于与人的所述位置相关联的目标区域定义,通过对所述图像的所述特征图进行采样来生成目标区域特征图;和
进行以下操作:
通过使用第三神经网络处理所述目标区域特征图,生成与人相关联的关键点遮罩;或者
通过使用第四神经网络处理所述目标区域特征图,生成与人相关联的实例分割遮罩。
2.根据权利要求1所述的方法,其中,所述实例分割遮罩和所述关键点遮罩是同时生成的。
3.根据权利要求1所述的方法,其中,所述第一神经网络包括四个或更少的卷积层。
4.根据权利要求3所述的方法,其中,每个卷积层使用3×3或更小的内核大小。
5.根据权利要求1所述的方法,其中,所述第一神经网络包括总共一个池化层。
6.根据权利要求1所述的方法,其中,所述第一神经网络包括三个或更少的初始模块。
7.根据权利要求6所述的方法,其中,每个初始模块以5×5或更小的内核大小执行卷积运算。
8.根据权利要求1所述的方法,其中,所述第二神经网络、所述第三神经网络和所述第四神经网络中的每一个被配置为使用总共一个初始模块来处理输入区域特征图。
9.一种系统,包括:一个或更多个处理器和耦合到一个或更多个所述处理器的一个或更多个计算机可读非暂时性存储介质,所述一个或更多个计算机可读非暂时性存储介质包括指令,当由一个或更多个所述处理器执行时所述指令可操作来使所述系统执行操作,所述操作包括:
访问图像;
使用第一神经网络生成所述图像的特征图;
识别所述特征图中的多个感兴趣区域;
通过对所述图像的所述特征图进行采样,分别为所述多个感兴趣区域生成多个区域特征图;
使用第二神经网络处理所述多个区域特征图以:
检测所述多个区域特征图中对应于所述图像中描绘的人的至少一个区域特征图;和
使用所述区域特征图生成与人的位置相关联的目标区域定义;
基于与人的所述位置相关联的目标区域定义,通过对所述图像的所述特征图进行采样来生成目标区域特征图;和
进行以下操作:
通过使用第三神经网络处理所述目标区域特征图,生成与人相关联的关键点遮罩;或者
通过使用第四神经网络处理所述目标区域特征图,生成与人相关联的实例分割遮罩。
10.根据权利要求9所述的系统,其中,所述实例分割遮罩和所述关键点遮罩是同时生成的。
11.根据权利要求9所述的系统,其中,所述第一神经网络包括四个或更少的卷积层。
12.根据权利要求11所述的系统,其中,每个卷积层使用3×3或更小的内核大小。
13.根据权利要求9所述的系统,其中,所述第一神经网络包括总共一个池化层。
14.根据权利要求9所述的系统,其中,所述第一神经网络包括三个或更少的初始模块。
15.一种或更多种包含软件的计算机可读非暂时性存储介质,该软件在被执行时可操作来使一个或更多个处理器执行操作,所述操作包括:
访问图像;
使用第一神经网络生成所述图像的特征图;
识别所述特征图中的多个感兴趣区域;
通过对所述图像的所述特征图进行采样,分别为所述多个感兴趣区域生成多个区域特征图;
使用第二神经网络处理所述多个区域特征图以:
检测所述多个区域特征图中对应于所述图像中描绘的人的至少一个区域特征图;和
使用所述区域特征图生成与人的位置相关联的目标区域定义;
基于与人的所述位置相关联的目标区域定义,通过对所述图像的所述特征图进行采样来生成目标区域特征图;和
进行以下操作:
通过使用第三神经网络处理所述目标区域特征图,生成与人相关联的关键点遮罩;或者
通过使用第四神经网络处理所述目标区域特征图,生成与人相关联的实例分割遮罩。
16.根据权利要求15所述的介质,其中,所述实例分割遮罩和所述关键点遮罩是同时生成的。
17.根据权利要求15所述的介质,其中,所述第一神经网络包括四个或更少的卷积层。
18.根据权利要求17所述的介质,其中,每个卷积层使用3×3或更小的内核大小。
19.根据权利要求15所述的介质,其中,所述第一神经网络包括总共一个池化层。
20.根据权利要求15所述的介质,其中,所述第一神经网络包括三个或更少的初始模块。
21.一种方法,包括由计算系统:
访问图像;
使用第一神经网络生成所述图像的特征图;
识别所述特征图中的多个感兴趣区域;
通过对所述图像的所述特征图进行采样,分别为所述多个感兴趣区域生成多个区域特征图;
使用第二神经网络处理所述多个区域特征图以:
检测所述多个区域特征图中对应于所述图像中描绘的人的至少一个区域特征图;和
使用所述区域特征图生成与人的位置相关联的目标区域定义;
基于与人的所述位置相关联的目标区域定义,通过对所述图像的所述特征图进行采样来生成目标区域特征图;和
进行以下操作:
通过使用第三神经网络处理所述目标区域特征图,生成与人相关联的关键点遮罩;或者
通过使用第四神经网络处理所述目标区域特征图,生成与人相关联的实例分割遮罩。
22.根据权利要求21所述的方法,其中,所述实例分割遮罩和所述关键点遮罩是同时生成的。
23.根据权利要求21或22所述的方法,其中,所述第一神经网络包括四个或更少的卷积层;
可选地,其中,每个卷积层使用3×3或更小的内核大小。
24.根据权利要求21至23中任一项所述的方法,其中,所述第一神经网络包括总共一个池化层。
25.根据权利要求21至24中任一项所述的方法,其中,所述第一神经网络包括三个或更少的初始模块;
可选地,其中,每个初始模块执行内核大小为5×5或更小的卷积运算。
26.根据权利要求21至25中任一项所述的方法,其中,所述第二神经网络、所述第三神经网络和所述第四神经网络中的每一个被配置为使用总共一个初始模块来处理输入区域特征图。
27.一种系统,包括:一个或更多个处理器和耦合到一个或更多个所述处理器的一个或更多个计算机可读非暂时性存储介质,所述一个或更多个计算机可读非暂时性存储介质包括指令,当由一个或更多个所述处理器执行时所述指令可操作来使所述系统执行操作,所述操作包括:
访问图像;
使用第一神经网络生成所述图像的特征图;
识别所述特征图中的多个感兴趣区域;
通过对所述图像的所述特征图进行采样,分别为所述多个感兴趣区域生成多个区域特征图;
使用第二神经网络处理所述多个区域特征图以:
检测所述多个区域特征图中对应于所述图像中描绘的人的至少一个区域特征图;和
使用所述区域特征图生成与人的位置相关联的目标区域定义;
基于与人的所述位置相关联的目标区域定义,通过对所述图像的所述特征图进行采样来生成目标区域特征图;和
进行以下操作:
通过使用第三神经网络处理所述目标区域特征图,生成与人相关联的关键点遮罩;或者
通过使用第四神经网络处理所述目标区域特征图,生成与人相关联的实例分割遮罩。
28.根据权利要求27所述的系统,其中,所述实例分割遮罩和所述关键点遮罩是同时生成的。
29.根据权利要求27或28所述的系统,其中,所述第一神经网络包括四个或更少的卷积层;
可选地,其中,每个卷积层使用3×3或更小的内核大小。
30.根据权利要求27至29中任一项所述的系统,其中,所述第一神经网络包括总共一个池化层。
31.根据权利要求27至30中任一项所述的系统,其中,所述第一神经网络包括三个或更少的初始模块。
32.一种或更多种包含软件的计算机可读非暂时性存储介质,该软件在被执行时可操作来使一个或更多个处理器执行操作,所述操作包括:
访问图像;
使用第一神经网络生成所述图像的特征图;
识别所述特征图中的多个感兴趣区域;
通过对所述图像的所述特征图进行采样,分别为所述多个感兴趣区域生成多个区域特征图;
使用第二神经网络处理所述多个区域特征图以:
检测所述多个区域特征图中对应于所述图像中描绘的人的至少一个区域特征图;和
使用所述区域特征图生成与人的位置相关联的目标区域定义;
基于与人的所述位置相关联的目标区域定义,通过对所述图像的所述特征图进行采样来生成目标区域特征图;和
进行以下操作:
通过使用第三神经网络处理所述目标区域特征图,生成与人相关联的关键点遮罩;或者
通过使用第四神经网络处理所述目标区域特征图,生成与人相关联的实例分割遮罩。
33.根据权利要求32所述的介质,其中,所述实例分割遮罩和所述关键点遮罩是同时生成的。
34.根据权利要求32或33所述的介质,其中,所述第一神经网络包括四个或更少的卷积层;
可选地,其中,每个卷积层使用3×3或更小的内核大小。
35.根据权利要求32至34中任一项所述的介质,其中,所述第一神经网络包括总共一个池化层;和/或
其中,所述第一神经网络包括三个或更少的初始模块。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762593980P | 2017-12-03 | 2017-12-03 | |
US62/593,980 | 2017-12-03 | ||
US15/971,997 | 2018-05-04 | ||
US15/971,997 US10565729B2 (en) | 2017-12-03 | 2018-05-04 | Optimizations for dynamic object instance detection, segmentation, and structure mapping |
PCT/US2018/031362 WO2019108251A1 (en) | 2017-12-03 | 2018-05-07 | Optimizations for dynamic object instance detection, segmentation, and structure mapping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111670457A true CN111670457A (zh) | 2020-09-15 |
CN111670457B CN111670457B (zh) | 2023-12-01 |
Family
ID=85772290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880088483.1A Active CN111670457B (zh) | 2017-12-03 | 2018-05-07 | 动态对象实例检测、分割和结构映射的优化 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3493105A1 (zh) |
CN (1) | CN111670457B (zh) |
WO (1) | WO2019108251A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344850A (zh) * | 2021-04-27 | 2021-09-03 | 广东工业大学 | 一种铰链板焊缝边缘检测方法 |
CN113361519A (zh) * | 2021-05-21 | 2021-09-07 | 北京百度网讯科技有限公司 | 目标处理方法、目标处理模型的训练方法及其装置 |
CN113421196A (zh) * | 2021-06-08 | 2021-09-21 | 杭州逗酷软件科技有限公司 | 图像处理方法及相关装置 |
CN113610818A (zh) * | 2021-08-11 | 2021-11-05 | 杭州小影创新科技股份有限公司 | 一种基于位置可控的人头分割方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10937143B1 (en) * | 2019-08-21 | 2021-03-02 | Ping An Technology (Shenzhen) Co., Ltd. | Fracture detection method, electronic device and storage medium |
CN110503097A (zh) * | 2019-08-27 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 图像处理模型的训练方法、装置及存储介质 |
CN110647834B (zh) * | 2019-09-18 | 2021-06-25 | 北京市商汤科技开发有限公司 | 人脸和人手关联检测方法及装置、电子设备和存储介质 |
CN110796096B (zh) * | 2019-10-30 | 2023-01-24 | 北京达佳互联信息技术有限公司 | 一种手势识别模型的训练方法、装置、设备及介质 |
CN110852258A (zh) * | 2019-11-08 | 2020-02-28 | 北京字节跳动网络技术有限公司 | 物体检测方法、装置、设备及存储介质 |
CN110991380A (zh) * | 2019-12-11 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 人体属性识别方法、装置、电子设备以及存储介质 |
CN111179287A (zh) * | 2020-01-03 | 2020-05-19 | 厦门美图之家科技有限公司 | 人像实例分割方法、装置、设备及存储介质 |
CN112332866B (zh) * | 2020-10-28 | 2024-04-30 | 成都海擎科技有限公司 | 一种基于dvb-s与dvb-s2信号的级联码参数识别方法 |
CN112580515B (zh) * | 2020-12-21 | 2022-05-10 | 浙江大学 | 一种基于高斯热图回归的轻量级人脸关键点检测方法 |
CN112612980B (zh) * | 2020-12-22 | 2024-03-01 | 北京百度网讯科技有限公司 | 图片服务方法、装置、设备、存储介质及计算机程序产品 |
CN113256672B (zh) * | 2021-05-20 | 2024-05-28 | 推想医疗科技股份有限公司 | 图像处理方法及装置,模型的训练方法及装置,电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110267344A1 (en) * | 2010-04-30 | 2011-11-03 | Liberovision Ag | Method for estimating a pose of an articulated object model |
CN104573614A (zh) * | 2013-10-22 | 2015-04-29 | 北京三星通信技术研究有限公司 | 用于跟踪人脸的设备和方法 |
CN105354565A (zh) * | 2015-12-23 | 2016-02-24 | 北京市商汤科技开发有限公司 | 基于全卷积网络人脸五官定位与判别的方法及系统 |
US9424494B1 (en) * | 2016-01-28 | 2016-08-23 | International Business Machines Corporation | Pure convolutional neural network localization |
US20170011281A1 (en) * | 2015-07-09 | 2017-01-12 | Qualcomm Incorporated | Context-based priors for object detection in images |
CN106599939A (zh) * | 2016-12-30 | 2017-04-26 | 深圳市唯特视科技有限公司 | 一种基于区域卷积神经网络的实时目标检测方法 |
CN106682620A (zh) * | 2016-12-28 | 2017-05-17 | 北京旷视科技有限公司 | 人脸图像采集方法及装置 |
CN106886741A (zh) * | 2015-12-16 | 2017-06-23 | 芋头科技(杭州)有限公司 | 一种基手指识别的手势识别方法 |
US20170206431A1 (en) * | 2016-01-20 | 2017-07-20 | Microsoft Technology Licensing, Llc | Object detection and classification in images |
WO2017139927A1 (en) * | 2016-02-17 | 2017-08-24 | Intel Corporation | Region proposal for image regions that include objects of interest using feature maps from multiple layers of a convolutional neural network model |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706663B2 (en) * | 2009-02-04 | 2014-04-22 | Honeywell International Inc. | Detection of people in real world videos and images |
US8358691B1 (en) * | 2009-10-30 | 2013-01-22 | Adobe Systems Incorporated | Methods and apparatus for chatter reduction in video object segmentation using a variable bandwidth search region |
US10049307B2 (en) * | 2016-04-04 | 2018-08-14 | International Business Machines Corporation | Visual object recognition |
-
2018
- 2018-05-07 CN CN201880088483.1A patent/CN111670457B/zh active Active
- 2018-05-07 WO PCT/US2018/031362 patent/WO2019108251A1/en active Application Filing
- 2018-06-25 EP EP18179593.1A patent/EP3493105A1/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110267344A1 (en) * | 2010-04-30 | 2011-11-03 | Liberovision Ag | Method for estimating a pose of an articulated object model |
CN104573614A (zh) * | 2013-10-22 | 2015-04-29 | 北京三星通信技术研究有限公司 | 用于跟踪人脸的设备和方法 |
US20170011281A1 (en) * | 2015-07-09 | 2017-01-12 | Qualcomm Incorporated | Context-based priors for object detection in images |
CN106886741A (zh) * | 2015-12-16 | 2017-06-23 | 芋头科技(杭州)有限公司 | 一种基手指识别的手势识别方法 |
CN105354565A (zh) * | 2015-12-23 | 2016-02-24 | 北京市商汤科技开发有限公司 | 基于全卷积网络人脸五官定位与判别的方法及系统 |
US20170206431A1 (en) * | 2016-01-20 | 2017-07-20 | Microsoft Technology Licensing, Llc | Object detection and classification in images |
US9424494B1 (en) * | 2016-01-28 | 2016-08-23 | International Business Machines Corporation | Pure convolutional neural network localization |
WO2017139927A1 (en) * | 2016-02-17 | 2017-08-24 | Intel Corporation | Region proposal for image regions that include objects of interest using feature maps from multiple layers of a convolutional neural network model |
CN106682620A (zh) * | 2016-12-28 | 2017-05-17 | 北京旷视科技有限公司 | 人脸图像采集方法及装置 |
CN106599939A (zh) * | 2016-12-30 | 2017-04-26 | 深圳市唯特视科技有限公司 | 一种基于区域卷积神经网络的实时目标检测方法 |
Non-Patent Citations (8)
Title |
---|
FANGTING XIA等: "Joint Multi-Person Pose Estimation and Semantic Part Segmentation", 《ARXIV:1708.03383V1》, pages 1 - 10 * |
ROBERT KOREZ等: "A Framework for Automated Spine and Vertebrae Interpolation-Based Detection and Model-Based Segmentation", 《IEEE TRANSACTIONS ON MEDICAL IMAGING》, pages 1 - 14 * |
SHAOQING REN等: "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks", 《IEEE TRANS PATTERN ANAL MACH INTELL》, vol. 39, no. 6, pages 1 - 14, XP055821951 * |
SIMONE BUONCOMPAGNI等: "Saliency-based keypoint selection for fast object detection and matching", 《PATTERN RECOGNITION LETTERS》, vol. 62, pages 32 - 40, XP029205142, DOI: 10.1016/j.patrec.2015.04.019 * |
余旭: "基于Kinect传感器的动态手势识别", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2014, pages 138 - 831 * |
叶植超: "基于Kinect的空中手写系统", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2015, pages 138 - 992 * |
常亮等: "图像理解中的卷积神经网络", 《自动化学报》, vol. 42, no. 9, pages 1300 - 1312 * |
马旋等: "基于人脸检测和关键点识别的快速人体组件划分", 《计算机应用与软件》, vol. 30, no. 1, pages 273 - 276 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344850A (zh) * | 2021-04-27 | 2021-09-03 | 广东工业大学 | 一种铰链板焊缝边缘检测方法 |
CN113361519A (zh) * | 2021-05-21 | 2021-09-07 | 北京百度网讯科技有限公司 | 目标处理方法、目标处理模型的训练方法及其装置 |
CN113361519B (zh) * | 2021-05-21 | 2023-07-28 | 北京百度网讯科技有限公司 | 目标处理方法、目标处理模型的训练方法及其装置 |
CN113421196A (zh) * | 2021-06-08 | 2021-09-21 | 杭州逗酷软件科技有限公司 | 图像处理方法及相关装置 |
CN113421196B (zh) * | 2021-06-08 | 2023-08-11 | 杭州逗酷软件科技有限公司 | 图像处理方法及相关装置 |
CN113610818A (zh) * | 2021-08-11 | 2021-11-05 | 杭州小影创新科技股份有限公司 | 一种基于位置可控的人头分割方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3493105A1 (en) | 2019-06-05 |
WO2019108251A1 (en) | 2019-06-06 |
CN111670457B (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10586350B2 (en) | Optimizations for dynamic object instance detection, segmentation, and structure mapping | |
US10733431B2 (en) | Systems and methods for optimizing pose estimation | |
US10796452B2 (en) | Optimizations for structure mapping and up-sampling | |
CN111670457B (zh) | 动态对象实例检测、分割和结构映射的优化 | |
EP3493106B1 (en) | Optimizations for dynamic object instance detection, segmentation, and structure mapping | |
US10496896B2 (en) | Generating object proposals using deep-learning models | |
US10402986B2 (en) | Unsupervised video segmentation | |
US11023772B2 (en) | Generating refined object proposals using deep learning models | |
US10713794B1 (en) | Method and system for using machine-learning for object instance segmentation | |
US10922609B2 (en) | Semi-supervised learning via deep label propagation | |
CN108876792B (zh) | 语义分割方法、装置和系统及存储介质 | |
US20190340538A1 (en) | Identifying entities using a deep-learning model | |
CN111712832A (zh) | 使用机器学习的自动图像校正 | |
EP3493104A1 (en) | Optimizations for dynamic object instance detection, segmentation, and structure mapping | |
US20170132510A1 (en) | Identifying Content Items Using a Deep-Learning Model | |
AU2016201908A1 (en) | Joint depth estimation and semantic labeling of a single image | |
CN113366489A (zh) | 检测增强现实目标 | |
JP2023541531A (ja) | 下半身姿勢を予測するためのシステムおよび方法 | |
US10699184B2 (en) | Updating predictions for a deep-learning model | |
EP3166025A1 (en) | Identifying content items using a deep-learning model | |
US20180189666A1 (en) | Adding Concepts to a Deep-Learning Model in Real Time |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Yuan platform Co. Address before: California, USA Applicant before: Facebook, Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |