CN105917356A - 对象的基于轮廓的分类 - Google Patents
对象的基于轮廓的分类 Download PDFInfo
- Publication number
- CN105917356A CN105917356A CN201580004546.7A CN201580004546A CN105917356A CN 105917356 A CN105917356 A CN 105917356A CN 201580004546 A CN201580004546 A CN 201580004546A CN 105917356 A CN105917356 A CN 105917356A
- Authority
- CN
- China
- Prior art keywords
- data point
- profile
- point
- signal
- data
- 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
Links
Classifications
-
- 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/107—Static hand or arm
- G06V40/113—Recognition of static hand signs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- 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/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
Abstract
本文描述了对诸如物理对象或模式之类的项进行分类的基于轮廓的方法。在一种示例性方法中,接收对象对应的一维(1D)轮廓信号。该一维轮廓信号包括用于表示该对象的轮廓(或者剪影的外形)的一系列的1D或者多维数据点(例如,3D数据点)。可以对该1D轮廓进行展开以形成线,其不同于例如诸如图像之类的二维信号。可以利用使用基于轮廓的特征的分类器,对1D轮廓信号中的数据点里的一些或者全部各自地进行分类。随后,对这些各自的分类进行聚合,以便对该对象和/或其一个(或多个)部分进行分类。在各个例子中,该对象是在图像中描述的对象。
Description
背景技术
用于人与计算机交互、计算机游戏和其它应用的手势识别,很难以准确性和实时性的方式实现。诸如使用人手做出的手势之类的很多手势是复杂的,并很难彼此之间进行区分。具体而言,很难准确地对图像中描述的人手的位置和部分进行分类。此外,用于捕捉人手的图像的设备可能是有噪声的且容易出错的。
现有方法对描述人手的图像的每一个像素进行分析。虽然这通常产生相对准确的结果,但其需要花费大量的时间和处理功率。
下面所描述的实施例并不限于对已知分类***的缺点中的一些或全部进行解决的实现方式。
发明内容
下面给出本公开内容的简要概述,以向读者提供基本理解。该概述部分不是本公开内容的泛泛概括,也不是旨在标识关键/重要元素或者描述说明书的保护范围。其唯一目的是用简单的形式呈现本文所公开的一些概念的选择,以此作为后面的更详细说明的前奏。
本文描述了对诸如物理对象或模式之类的项进行分类的基于轮廓的方法。在一种示例性方法中,接收对象的一维(1D)轮廓信号。该一维轮廓信号包括表示该对象的轮廓(或者剪影(silhouette)的外形(outline))的一系列1D或多维数据点(例如,3D数据点)。可以对该1D轮廓进行展开(rewrapped)以形成线,其不同于例如诸如图像之类的二维信号。可以利用使用基于轮廓的特征的分类器,对1D轮廓信号中的数据点里的一些或者全部各自地进行分类。随后,对这些各自的分类进行聚合,以便对该对象和/或其一个(或多个部分进行分类。在各个例子中,该对象是在图像中描述的对象。
通过结合附图考虑并参照以下的详细说明而更好地理解本发明,本发明的许多附带特征将变得更易于理解。
附图说明
在了解附图之后,通过阅读下面的详细描述,将更好地理解本文的描述,其中:
图1是用于对图像中的对象进行分类的分类***的示意图;
图2是图1的捕捉***和基于计算的设备的示意图;
图3是图2的捕捉***和基于计算的设备输出的数据的示意图;
图4是使用对象的轮廓信号,对图像中的对象进行分类的方法的流程图;
图5是示出如何对轮廓信号的数据点进行定位的示意图,其中该数据点与另一个数据点具有预定的距离;
图6是示出用于确定轮廓信号的凸包(convex hull)的示意图;
图7是使用随机决策森林,对于对象进行分类的方法的流程图;
图8是生成用于随机决策森林的训练数据的装置的示意图;
图9是随机决策森林的示意图;
图10是对随机决策森林进行训练的方法的流程图;
图11是使用随机决策森林,对轮廓数据点进行分类的方法的流程图;以及
图12示出了可以在其中实现本文所描述的***和方法的实施例的示例性基于计算的设备。
使用相同的附图标记来指代附图中的相同部件。
具体实施方式
下面结合附图提供的详细说明旨在描述本文给出的例子,而不是旨在表示可以构造或者使用给出的例子的仅有形式。下面的描述阐述了该例子的功能,以及用于构造和操作该例子的步骤顺序。但是,不同的例子也可以完成相同或者等同的功能和序列。
虽然本文将所给出的例子描述和示出为在图像分类***(即,用于对图像中描述的3D对象进行分类的***)中实现,但本文所描述的***只是作为一个例子而提供的,而不是限制性的。如本领域普通技术人员应当理解的是,所给出的例子适合于在各种各样的不同类型的分类***中应用。具体而言,本领域普通技术人员应当理解的是,所给出的对象分类***和方法可以用于对任何项(即,可以通过一维(1D)轮廓(即,一系列连接点(connected points))来表示的物理对象或者模式)进行分类。除了任何物理对象之外,项的例子还包括手写签名、物理对象的运动的行驶路线或者模式。虽然在下面所描述的例子中,该系列的连接点是一系列空间中的连接点,但在其它例子中,它们可以是惯性测量单位序列(例如,如当用户以特定的模式在空中四处移动其电话时所产生的)。
如上所述,对图像中的对象进行分类的现有方法,必须使用分类器对图像中的每一个像素进行分类,随后对每一个像素分类的结果进行累积或者以其他方式进行组合,来生成最终分类。该方法显示出产生相对准确的结果,但由于图像的每一个像素都要进行分析,因此具有很大的计算量。因此,需要一种准确的,但计算量不太大的用于对图像中的对象进行分类的方法。
本文描述了根据对象的一维轮廓来对对象进行分类的分类***。本文使用的术语“一维轮廓(one-dimensional contour)”意味用于规定或者限制对象的边缘或者线条(例如,当对象被视作为剪影时)。将一维轮廓表示成一系列的一维或多维(如,2D、3D、4D等等)数据点(或列表),其中当连接这些数据点时,形成该轮廓,它们可以进行展开以形成线,不同于例如诸如图像之类的二维信号。在各个例子中,该1D轮廓可以是一系列离散点(或者集合)(例如,如通过它们的(x,y,z)坐标所规定的(对应于3D例子)),在其它例子中,该1D轮廓可以或许是具有数学函数的一系列更稀疏的离散点,其中,这些数学函数规定如何连接相邻的点(例如,使用Bezier曲线或者样条插值)。本文将该系列的点称为1D轮廓信号。本文描述的***通过使用基于轮廓的特征(即,仅仅1D轮廓自身的特征),至少对1D轮廓信号的点的子集中的每一个点进行独立分类,来对于对象进行分类。
相对于对图像的每一个像素逐个都进行分析的现有***,本文所描述的分类***显著地减少了计算复杂度,这是由于在分类期间,只对形成1D轮廓的像素(或者与其有关的数据)进行分析。在一些情况下,这可以将要分析的像素的数量从大约200,000减少到大约2,000个。这允许在诸如移动电话之类的具有低功率嵌入式处理器的设备上执行该分类。在了解了要进行分析的数据发生显著减少之后,令人惊讶的是,测试结果显示出,与对图像的每一个像素都进行分析的分类***相比,利用该分类***可以实现类似的准确性。
现参见图1,该图示出了用于使用图像中的对象的一维轮廓,对该对象进行分类的示例性分类***100。在该例子中,***100包括:捕捉设备102,其布置为捕捉包括对象106的场景104的一个或多个图像;以及与捕捉设备102进行通信的基于计算的设备108,其配置为根据这个(些)图像来生成对象106的一维轮廓,并根据该一维轮廓,对该对象进行分类。
在图1中,捕捉设备102安装在显示器屏110上方,并朝向场景104。但是,这只是一个例子。也可以使用捕捉设备102的其它位置,比如放置在桌面上向上看,或者其它适当的位置。
图1中所示出的基于计算的设备108是具有单独的处理器部件112和显示器屏110的传统桌面型计算机;但是,本文所描述的方法和***可以等同地应用于将处理器部件112和显示器屏110集成在一起的基于计算的设备108,比如应用于膝上型计算机、平板计算机或者智能电话之中。
虽然图1的对象106是人手,但本领域普通技术人员应当理解的是,本文所描述的方法和***可以等同地应用于场景104中的任何其它对象,并且本文所描述的分类***可以用于对场景中的多个对象进行分类(例如,回射器(retroreflector)和部分地遮蔽回射器的对象)。
虽然图1的分类***100包括单一捕捉设备102,但本文描述的方法和原理可以等同地应用于具有多个捕捉设备102的分类***。此外,虽然图1的描述指代捕捉设备102捕捉图像,但应当理解的是,也可以替代地使用其它输入形态(例如,捕捉平板计算机上的笔划)。
现参见图2,该图示出了可以在图1的***100中使用的捕捉设备102的示意图。
捕捉设备102包括至少一个成像传感器202,以捕捉包括对象106的场景104的图像。成像传感器202可以是下面中的任何一种或多种:立体相机、深度相机、RGB相机,以及捕捉或者产生剪影的成像传感器,其中剪影图像描述了对象的轮廓。
在一些情况下,成像传感器202可以具有从不同的角度观看场景104的两个或更多个物理分离的相机的形式,使得获得视觉的立体数据,可以对该立体数据进行解析以生成深度信息。
捕捉设备102还可以包括发射器204,发射器204被布置为以使得成像传感器202能够确定深度信息的方式,来照射场景。
此外,捕捉设备102还可以包括与成像传感器202(例如,相机)和发射器204(如果存在的话)进行通信的至少一个处理器206。处理器206可以是通用微处理器或者专用信号/图像处理器。处理器206被布置为执行指令,以控制成像传感器202和发射器204(如果存在的话)来捕捉深度图像。处理器206可以可选地被布置为对这些图像和信号执行处理,如下面所更详细概述的。
捕捉设备102还可以包括存储器208,存储器208被布置为存储用于由处理器206执行的指令、成像传感器202所捕捉的图像或者帧、或者任何适当的信息、图像等等。在一些例子中,存储器208可以包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘或者任何其它适当的存储元件。存储器208可以是与处理器206进行通信的单独元件,也可以集成到处理器206之中。
捕捉设备102还可以包括与处理器206进行通信的输出接口210。输出接口210被布置为经由通信链路,向基于计算的设备108提供图像数据。例如,该通信链路可以是有线连接(例如,USBTM、火线TM、以太网TM等等)和/或无线连接(例如,WiFiTM、蓝牙TM等等)。在其它例子中,输出接口210可以与一个或多个通信网络(例如,互联网)进行接口,并经由这些网络向基于计算的设备102提供数据。
基于计算的设备108可以包括轮廓提取器212,轮廓提取器212被配置为生成从捕捉设备102接收的图像数据中的对象106的一维轮廓。如上所述,该一维轮廓包括一系列一维或多维(例如,3D)数据点,当连接这些数据点时形成该轮廓。例如,在一些情况下,每一个数据点可以包括图像中的相应像素的x、y和z坐标。在其它情况下,每一个数据点可以包括本像素的x和y坐标,以及诸如时间或者速度之类的另一种参数。这两种例子都使用3D数据点。
随后,分类器引擎214使用该一维轮廓来对于对象进行分类。具体而言,分类器引擎214使用基于轮廓的特征(即,仅仅1D轮廓自身的特征),对该一维轮廓的多个点中的每一个点进行分类。当该对象是人手时(如图1中所示),则分类器引擎214可以被配置为将每一个轮廓数据点分类成显著的手部分(例如,指尖、手腕和前臂以及隐含地手掌)和/或手状态(例如,掌心向上、掌心向下、拳心向上或指向或者其组合)。参照图4来描述可以由分类器引擎214执行的用于对于对象进行分类的示例性方法。
此外,还可以在基于计算的设备108上执行应用软件216,其可以由分类器引擎214的输出(例如,检测到的分类(例如,手的姿势和状态))来控制。
现参见图3,该图示出了数据经过图1和图2的分类***的流动。图3A示出了图1的捕捉设备102所产生的示例性图像302。图像302是针对图1的场景104的,并且包括要进行分类的对象106(例如,人手)。如上所述,捕捉设备102向基于计算的设备108提供图像302(或者多个图像)。
随后,基于计算的设备108的轮廓提取器212使用该图像数据来生成对象106的一维轮廓304。如图3B中所示,该一维轮廓304包括一系列的一维或多维数据点306,其中当连接这些数据点306时,形成该1D轮廓304(例如,对象的外形或者剪影)。例如,在一些情况下,每一个数据点包括图像中的相应像素的x、y和z坐标。一旦产生了该一维轮廓304,则将其提供给分类器引擎214。
随后,分类器引擎214使用该一维轮廓304,对于对象106(例如,人手)进行分类。在一些情况下,分类可以包括:向该对象或者其部分分配一个或多个标签(label)。所使用的标签可以根据应用领域而改变。当对象是人手时(如图3中所示),分类可以包括:向人手分配人手形状标签(shapelabel)和/或一个(或多个)人手部分标签(part label)。例如,如图3C中所示,分类器引擎214可以利用一个标签值来标注(label)指尖308,利用第二标签值来标注手腕310,利用第三标签值来标注人手312的剩余部分。
现参见图4,该图是用于使用一维轮廓信号,对于对象进行分类的示例性方法400的流程图。将方法400描述成由图2的分类器引擎214进行执行,但是,在其它例子中,该方法400的全部或者一部分可以由一个或多个其它部件来执行。
在方框402处,分类器引擎214接收对象的一维轮廓(本文还称为一维轮廓信号)。该一维轮廓信号可以通过函数X来表示,使得X(s)指示对应于该轮廓上的点s的数据。如上所述,在一些例子中,该1D轮廓的每一个点对应的数据可以是该点的一维坐标(x)、二维坐标(x,y)或者三维坐标(x,y,z)。在其它例子中,每一个点对应的数据可以是坐标和诸如时间、速率、惯性测量单位(Inertial Measurement Unit,IMU)数据(例如,加速度)、速度(例如,围绕一个转弯行驶的汽车的速度)、压力(例如,平板设备屏幕上的手写笔的压力)等等之类的其它参数的组合。一旦分类器引擎214接收到1D轮廓信号,则方法400转到方框404处。
在方框404处,分类器引擎214从所接收的1D轮廓信号中选择数据点来进行分类。在一些例子中,分类器引擎214被配置为对该1D轮廓信号的每一个数据点进行分类。在这些例子中,在分类器引擎214执行该方框的第一次,其可以选择该信号中的第一数据点,在执行该方框的随后时间,其可以选择1D轮廓信号中的下一个数据点。但是,在其它例子中,分类器引擎214可以被配置为只对该1D轮廓信号中的数据点的一个子集进行分类。在这些例子中,分类器引擎可以使用其它标准来选择用于进行分类的数据点。例如,分类器引擎214可以只对每隔一个(every second)的数据点进行分类。一旦分类器引擎214选择了要进行分类的轮廓数据点,则方法400转到方框406处。
在方框406处,分类器引擎214向所选择的数据点应用分类器,以对所选择的数据点进行分类(例如,如下面参照图11所更详细描述的)。如上所述,分类可以包括:向对象和/或对象的一个或多个部分分配标签。当对象是人手时,分类可以包括:向对象分配状态标签和/或向人手的一个或多个部分分配部分标签。例如,在一些情况下,分类器可以将所选择的数据点与两种类型的标签ys和yf进行关联,其中ys是人手形状/状态标签(即,指向、捏(pinching)、抓(grasping)或者打开手掌),yf是指尖标签(即,食指(index)、拇指或者非指尖)。此外,分类器还可以生成每一个标签的概率信息,其指示该标签准确或者正确的可能性。该概率信息可以具有直方图的形式。本文将标签和概率信息的组合称为用于所选择的数据点的分类数据。
在一些例子中,通过比较所选择的数据点周围或者与之相关的轮廓数据点的特征,对所选择的数据点进行分类(即,分配一个或多个标签)。例如,如图5中所示,分类器引擎204可以选择沿着1D轮廓与所选择的数据点s具有第一预定距离(u1)的第一数据点s+u1,以及,沿着1D轮廓与所选择的数据点s具有第二预定距离(u2)的第二数据点s+u2。在一些情况下,可以将这些距离中的一个设置为零,使得用于分析的点中的一个是所选择的点自身,并且在各个例子中,可以使用所选择的数据点周围的两个以上的数据点。
为了定位沿着1D轮廓与所选择的点s具有预定的距离的点,分类器引擎214可以每一个数据点与所选择的数据点s的距离进行分析,直到其定位到沿着1D轮廓与所选择的点s具有预定的距离的点(或者位于预定的距离的门限之内)为止。在其它例子中,分类器引擎214可以沿着1D轮廓来执行数据点的二分法搜索,以定位该数据点。
如上所述,1D轮廓信号通过一系列数据点来表示。在一些例子中,这些数据点可以认为是卷绕的(即,使得该系列中的最后一个数据点被认为是连接到该系列中的第一个数据点),所以当分类器引擎214尝试对该系列点的末尾处或者附近的数据点进行分类时,分类器引擎214可以通过对位于该系列的开始位置处的数据点进行分析,来定位与感兴趣数据点具有预定距离的数据点。在其它例子中,这些数据点不被认为是卷绕的。在这些例子中,当分类器引擎214尝试对该系列点的末尾处或者附近的数据点进行分类并且在该系列点中不存在与感兴趣数据点具有预定距离的更多数据点时,分类器引擎214可以认为所期望的数据点具有空值或者缺省值,或者与该系列点中的最后一个数据点具有相同的值。
为了简化与另一个数据点具有预定距离的数据点的识别,在一些例子中,在接收到1D轮廓信号之后,分类器引擎可以对接收的1D轮廓信号进行重新采样,以产生修改的1D轮廓信号,其中该修改的1D轮廓信号具有固定单位间隔(例如,1mm)的数据点。随后,当识别与所选择的数据点具有固定距离的数据点时,分类器引擎214可以跳过在该修改的1D轮廓信号中的固定数量的点。例如,如果修改的1D轮廓信号每隔1mm具有数据点,并且分类器引擎214尝试定位与所选择的数据点s具有5mm距离的数据点,则分类器引擎214只需要跳到点s+5。
在一些例子中,不是识别沿着1D轮廓与所选择的数据点具有预定距离的轮廓数据点,而是分类器引擎214可以使用其它标准,来识别与所选择的数据点有关的数据点。例如,相对于该1D轮廓的切线(tangent),分类器引擎214可以识别与所选择的数据点具有预定的角度(例如,5度)的轮廓数据点。通过使用角度差来替代差值,分类变成具有旋转不变性(即,给予对象或者其部分的分类是相同的,而不管其全局旋转方向如何)。在另外的例子中,可以通过沿着1D轮廓进行移动(或者行进)直到到达特定的曲率或者最小/最大曲率为止,来识别轮廓数据点。对于时间信号而言(即,时间是多维数据点中的一个维度的信号),可以识别沿着1D轮廓与所选择的数据点具有预定的时间距离的轮廓数据点。
为了使分类具有深度不变性(即,使得以相同的方式来执行该分类,而不管该对象是更靠近图1中的捕捉设备102并因此在捕捉的图像中呈现为更大,还是更远离捕捉设备102并因此在捕捉的图像中呈现为更小),使用预定的距离时,其可以是真实世界距离(其还可以描述成世界空间或者全球距离)。本文使用术语‘真实世界距离’或者‘全球距离’来指代图1中的图像捕捉设备102所捕捉的实际场景中的距离,而不是捕捉的图像自身中的距离。例如,当人手更靠近图像捕捉设备时,与人手更远离图像捕捉设备时所捕捉的第二图像相比,第一个手指的长度在图像中将更大。所以,如果预定的距离是“图像中的”距离,则根据如图像中所描述的对象的尺寸,沿着1D轮廓来移动该预定的距离的效果将不同。相比而言,如果预定的距离是全球距离,则沿着1D轮廓来移动预定的距离的效果将导致沿着该1D轮廓识别相同的点,而不管该对象是靠近图像捕捉设备,还是更远离图像捕捉设备。
如上所述,在各个例子中,不是使用距离(其可以是真实世界距离),而是可以使用其它标准来选择与所选择的数据点有关的数据点。在各个例子中,可以基于真实世界(或者全球)测量单位,来选择数据点,其中该测量单位可以是真实世界距离(例如,依据毫米或者厘米而言)、真实世界角度差(例如,依据度数或者弧度)等等。
一旦识别出这两个点,分类器引擎214确定这两个数据点(s+u1和s+u2)的基于轮廓的特征之间的差值。该差值可以是绝对差值,也可以是基于各个数据点对应的数据的任何其它适当差值参数。随后,差值数据由分类器用来对所选择的数据点进行分类。在各个例子中,两个数据点的基于轮廓的特征之间的差值,可以是投影到x、y或z轴中的一个之上的两个点之间的距离、两个点之间的欧几里德距离、两个点之间的角度差等等。使用的基于轮廓的特征(例如,空间中的轮廓点的位置、1D轮廓在该轮廓点处的角度方向等等)可以独立于选择数据点所使用的方法,(例如,可以将角度距离使用成两个数据点的基于轮廓的特征之间的差值,而不管这两个点是基于距离还是基于角度来识别的)。在使用IMU数据的其它例子中,可以将加速度使用成基于轮廓的特征(当加速度可以是针对每一个数据点所存储的参数中的一个时,或者当加速度可以根据诸如速度之类的其它存储的信息来进行推断时)。
在一些情况下,分类器是随机决策森林。但是,对于本领域普通技术人员来说显而易见的是,也可以使用诸如支持向量机(SVM)之类的其它分类器。
一旦对所选择的数据点进行了分类,则方法400转到方框408处。
在方框408处,分类器引擎214存储在方框406中所生成的分类数据。如上所述,该分类数据可以包括一个或多个标签和与各个标签相关联的概率信息,其中该概率信息指示该标签正确的可能性。一旦存储了用于所选择的数据点的分类数据,则方法400转到方框410处。
在方框410处,分类器引擎214判断所接收的1D轮廓是否存在更多的数据点要进行分类。当分类器引擎214被配置为对该1D轮廓的每一个数据点进行分类时,那么如果尚未对所有的数据点进行分类,则分类器可以确定存在更多的数据点要进行分类。当分类器引擎214被配置为只对该1D轮廓的数据点中的子集进行分类时,那么,如果存在满足分类标准(用于确定哪些数据点要进行分类的标准)的任何未分类的数据点,则分类器引擎214可以确定存在更多的数据点要进行分类。如果分类器引擎214确定存在至少一个数据点要进行分类,则方法400返回到方框404。但是,如果分类器引擎214确定不存在要进行分类的数据点,则方法转到方框412处。
在方框412处,分类器引擎214对用于每一个被分类数据点的分类数据进行聚合,以便向对象分配最终标签或者标签集合。在一些例子中,可以对于这些被分类数据点的(适当)子集的分类数据进行聚合,以提供针对于该对象的第一部分的分类,可以对针对于这些被分类数据点的非重叠(适当)子集的分类数据进行聚合,以提供针对于该对象的第二部分的分类等等。
如上所述,在一些例子中,该对象是人手,分类器的目标是分配:(i)针对于人手的状态标签,其指示该人手的位置;(ii)针对于该人手的一些部分的一个或多个部分标签(part label),以标识人手的部分(part)。在这些例子中,分类器引擎214可以通过储存来自数据点分类的针对状态标签的概率信息,形成状态概率的最终集合,来确定该人手的最终状态。随后,使用该最终集合的概率来分配最终状态标签。此外,还可以将用于标注的相类似两标签(或者多标签)方法应用于其它对象。
为了确定最终部分标签,分类器引擎214可以被配置为向数据点部分标签应用一维运行模式过滤器,以过滤掉噪声标签(即,概率低于某个门限的标签)。随后,分类器引擎214可以应用连接的组成元素,以向手指分配最终标签。在一些情况下,分类器引擎214可以选择每一个组成元素中具有最大曲率的点作为指尖。
一旦分类器引擎214使用数据点分类数据,向对象分配了最终标签或者标签集合,则方法400转到方框414处。
在方框414处,分类器输出该最终标签或者标签集合(例如,部分标签或者状态标签)。如上所述,可以使用该状态标注和部分标注(partlabeling),来控制在基于计算的设备108上运行的应用。
除了输出标签(在方框414处)之外,或者替代输出标签,分类器还可以输出关于该对象的方向的量化信息,其是取决于在分类器引擎中存储的信息。例如,当使用随机决策森林时,除了在每一个叶子节点处存储标签数据之外,或者替代在每一个叶子节点处存储标签数据,可以存储量化信息(例如,手指的方向的角度或者对象的旋转的角度)。
该一维轮廓所涉及的并且使用本文所描述的方法来进行分类的对象,可以是单一项(例如,人手、杯子(mug)等等),或者其可以是多个项的组合(例如,握笔的手或者部分地被另一个对象遮蔽的对象)。当1D轮廓是作为多个项的组合的对象时,该对象可以称为复合对象,可以对该复合对象进行分类,如同其是单一对象。替代地,在开始分类过程之前,可以对该1D轮廓进行处理以将该1D轮廓分割成一个以上的1D轮廓,并随后对这些1D轮廓中的一个或多个进行单独分类。
图6中对此进行了描绘,在图6中,分类器引擎214接收回射器对应的1D轮廓信号602,其中该回射器被人手部分地遮蔽。在该例子中,分类器引擎214可以被配置为对回射器的凸包604进行估计,从而生成两个1D轮廓,一个604对应于回射器,另一个606对应于遮蔽物体,在该例子中,其是人手。
通过用此方式对输入1D轮廓进行分割,用于每一个生成的1D轮廓的分类过程可以更简单,训练过程可以更简单,这是因为其减少了由于遮蔽而在1D轮廓中造成的可能变化。由于1D轮廓在该情况下是更简单的,因此更浅的森林足够用于在线训练。
现参见图7,该图示出了用于使用随机决策森林702,对于对象进行分类的示例性方法。在该例子中,随机决策森林702可以在离线处理704中生成和训练,并可以存储在基于计算的设备108处,或者存储在***中的任何其它实体处,或者存储在与基于计算的设备进行通信的其它地方。对随机决策森林702进行训练,以利用部分标签和状态标签来标注一维轮廓输入信号706中的点708,其中部分标签标识可变形对象的组成元素(例如,手指尖、手掌、手腕、唇、笔记本电脑盖),状态标签标识对象的配置(例如,打开、关闭、展开、握紧或者对象的方向(如,向上、向下))。随机决策森林702以快速简单的方式来提供部分标签和状态标签,其中该方式的运算量不大,并且即使使用单线程实现的传统计算硬件,也可以针对从图1的捕捉设备102馈送的实时视频进行实时地或者接近实时地执行。
可以将状态和部分标签输入到手势检测或识别***中,由于其结合工作的输入的本质,因此该手势检测或识别***对手势识别***进行了简化。例如,通过查找预定数量的图像的特定对象状态,或者对象状态之间的转化,这些输入使得能够识别一些手势。
如上面所提及的,在704处,可以使用训练用的轮廓信号712,在离线处理中,对随机决策森林702进行训练。
现参见图8,该图示出了用于生成训练用的1D轮廓信号的处理。训练数据发生器802(其是计算机实现的)对地面真值(ground truth)的标注的1D轮廓信号804(其还称为训练用的1D轮廓信号)进行生成和评分。该地面真值的标注的1D轮廓信号804可以包括很多对的1D轮廓信号,每一对806包括对象的1D轮廓信号808和该1D轮廓信号的标注版本810,在后者中每一个数据点包括状态标签,相关的数据点还包括部分标签。1D轮廓信号所表示的对象和使用的标签根据应用领域而改变。对象的训练用的1D轮廓信号以及这些对象的配置和方向的各种各样示例,根据可用的应用领域、可用的存储和计算资源而尽可能广泛。
可以使用计算机图形技术,来综合地生成这些对的训练用的1D轮廓信号804。例如,计算机***812可以访问对象的虚拟3D模型814和访问绘制工具816。使用虚拟3D模型,绘制工具816可以被布置为自动地生成具有标签的多个高质量轮廓信号。在一些例子中,当对象是人手时,该虚拟3D模型可以具有32个自由度,这些自由度能够以一个范围的参数来自动构造人手。在一些例子中,向绘制的轮廓信号增加合成噪声,以便更紧密地复制真实世界状况。具体而言,可以向一个或多个手关节角度增加合成噪声。
当对象是人手时,绘制工具816可以首先针对每一种可能的人手状态,生成较高数量的左手1D轮廓信号(在一些情况下,其可以高达8,000个)。随后,可以对这些信号进行镜像,并给予右手标签。在这些例子中,可以通过利用纹理来映射该模型,对指尖进行标注,其中该纹理利用不同的颜色来表示不同的区域。此外,该训练用的数据还可以包括根据真实人手的图像来生成,并进行手动标注的1D轮廓信号。
现参见图9,该图是包括三个随机决策树902、904和906的随机决策森林的示意图。可以使用一个或多个随机决策树。为了清楚说明起见,在该例子中示出了三个随机决策树。随机决策树是用于对在训练阶段期间累积的数据进行存储的一种类型的数据结构,所以其可以用于针对该随机决策树先前未观察到的例子做出预测。通常,将随机决策树使用为针对特定的应用领域所训练的多个随机决策树的组合体(其称为森林)的一部分,以便实现一般化(其能够针对一些示例进行良好预测,其中这些示例不同于用于训练该森林的那些示例)。随机决策树具有根节点908、多个分支节点910和多个叶子节点912。在对该树的结构(节点的数量以及它们是如何进行连接的)进行训练期间,进行学习以及对在这些分支节点中的每一个分支节点处使用的功能进行分割。此外,在训练期间,在叶子节点处对数据进行累积。
在本文所描述的例子中,对随机决策森林进行训练,以利用部分标签和/或状态标签,对图像中的对象的1D轮廓信号里的点进行标注(或者分类)。
可以以某种处理,将1D轮廓信号的数据点从根节点,推送通过随机决策森林中的树到达叶子节点,从而在每一个分支节点处进行决策。根据正在被分类的数据点的特性以及相对于原始数据点移动了由该分支节点的参数所指定的空间偏移的距离的1D轮廓数据点的特性,来进行该决策。例如,分支节点处的测试函数可以具有式(1)所示出的形式:
f(F)<T (1)
其中,该函数f映射数据点的特征F。
在式(2)中示出了一种示例性测试函数:
其中,s是正在分类的数据点,u1是与点s的第一固定距离,u2是与点s的第二固定距离,是到向量的投影,是主轴或者中的一个。该测试探查在该1D轮廓上的两个偏移(s+u1和s+u2),获得在一个方向上的它们的世界距离,并将该距离与门限T进行比较。该测试功能将数据分割成两个集合,并将它们的每一个发送到相应的子节点。
在分支节点处,该数据点沿着根据决策的结果所选择的分支向下转到该树的下一个层级。在训练期间,对参数值(其还称为特征)进行学习,以便用于分支节点,在叶子节点处,对包括部分标签投票和状态标签投票的数据进行累积。
现参见图10,该图示出了用于对随机决策森林进行训练,以向1D轮廓信号的数据点分配部分标签和状态标签的方法1000的流程图。这还可以认为是针对1D轮廓信号的数据点,生成部分标签投票和状态标签投票(即,对应于特定的部分标签和特定的状态标签的每一个数据点的投票)。使用如上面参照图7所描述的一个集合的训练用的1D轮廓信号,对随机决策森林进行训练。
在方框1002处,接收如上所述的该训练集合的1D轮廓信号。一旦接收到该训练集合的1D轮廓信号,方法900转到方框1004处。
在方框1004处,选择在随机决策森林中将使用的决策树的数量。如上所述,随机决策森林是确定性决策树的集合。决策树有时可能承受过度拟合,即,较差的一般性。但是,很多随机训练的决策树的组合体(随机森林)可能产生改进的一般性。对森林中的每一个树进行训练。在该训练过程期间,树的数量固定。一旦选择了决策树的数量,则方法1000转到方框1006处。
在方框1006处,选择该森林中的树进行训练。一旦选择一个树进行训练,则方法1000转到方框1008处。
在方框1008处,选择在方框1006处所选择的树的根节点。一旦选择了根节点,则方法1000转到方框1010处。
在方框1010处,至少选择形成每一个训练用的1D轮廓信号的数据点的子集,来训练该树。一旦从训练用的1D轮廓信号中选择了用于进行训练的数据点,则方法1000转到方框1012处。
在方框1012处,随后使用测试参数的随机集合,来作为候选特征,用于在根节点处执行的二值测试(binary test)。在操作时,每一个树的每一个根节点和分支节点对输入数据执行二值测量,并基于结果来将该数据指引到左侧子节点或者右侧子节点。叶子节点并不执行任何动作;它们对累积的部分标签投票和状态标签投票(以及可选的其它信息)进行存储。例如,可以存储用于表示这些累积的投票的概率分布。
举一个例子,在根节点处执行的二值测试具有式(1)中所示出的形式。具体而言,函数f(F)对数据点s的特征F进行评估,以判断其是否大于门限值T。如果该函数大于门限值,则该二值测试的结果为真。否则,该二值测试的结果为假。
对于本领域普通技术人员来说显而易见的是,式(1)的二值测试只是一个例子,可以使用其它适当的二值测试。具体而言,在另一个例子中,在根节点处执行的二值测试可以对该函数进行评估,以判断其是否大于第一门限值T,并且小于第二门限值τ。
候选函数f(F)可以只利用在测试时间可用的数据点信息。在训练期间,随机地生成用于该函数f(F)的参数F。用于生成参数F的处理可以包括:生成沿着该轮廓的随机距离u1和u2,选择随机维度x、y或z。随后,如上所述地计算函数f(F)的结果。门限值T将连续信号转换成二值决策(左/右分支),其提供在感兴趣的部分标签和状态标签之间的某种区分。
例如,如上所述,可以将上面的式(2)中所示出的函数,使用成二值测试的基础。该函数确定沿着1D轮廓,与感兴趣数据点s的空间偏移分别为距离u1和u2的两个数据点之间的距离,并将该距离映射到p上,其中p是主轴x、y和z中的一个。如上所述,可以对u1和u2进行归一化(即,依据真实世界距离来规定),以使u1和u2具有尺度不变性。
所述测试参数的随机集合包括用于函数参数F和门限值T的多个随机值。例如,当使用式(2)的函数时,生成用于u1、u2、p和T多个随机值。为了将随机性注入到决策树中,只在所有可能参数的随机采样的子集上,对每一个分支节点的函数参数F进行优化。这是将随机性注入到这些树中,并增加一般性的有效并简单方式。
应当注意的是,在不同的节点处,可以使用数据点的不同特征。具体而言,在每一个节点处,可以不使用相同类型的二值测试。例如,不是确定关于轴(即,x、y和z)的两个数据点之间的距离,而是二值测试可以对欧几里德距离、角度距离、方向距离、时间差、或者该轮廓的任何其它适当特征进行评估。
一旦选择了测试参数,则方法1000转到方框1014处。
在方框1014处,将测试参数的每一个随机选择的组合应用于为训练而选择的每一个数据点。换言之,用于F的可用值(即,u1、u2、p)与针对为训练而选择的每一个数据点的T的可用值进行组合。一旦将该测试参数的组合应用于这些训练用的数据点,则方法1000转到方框1016处。
在方框1016处,针对于测试参数的每一个组合,计算最优化标准。举例而言,所计算的标准包括该直方图或者一些直方图相对于部分和状态的信息增益(其还称为相对熵)。当使用式(2)的测试函数时,可以使用式(3)来计算测试参数的特定组合的增益G:
其中,H(C)是示例性集合C中的标签y(例如,yf和ys)的类型标签分布的香农熵,CL和CR是通过该分割形成的示例的两个集合。
在一些例子中,为了对用于联合处理形状分类(shape classification)和部分定位(part localization)(例如,指尖定位)的单一森林进行训练,当计算增益时,可以不管部分标签(例如,yf),直到达到该树中的某个深度m为止,使得直到该深度m,只使用状态标签(例如,ys)来计算增益。从该深度m开始,在计算增益时可以不管状态标签(例如,ys),只使用部分标签(例如,yf)来计算增益。这具有使得在深度m处开始的每一个子树以在它们的根节点处的形状类型分布为条件的效果。这种方式使得低层级特征以高层级特征分布为条件。在其它例子中,可以对该增益进行混合,或者该增益可以在部分标签和状态标签之间交替。
可以用于对参数的质量进行评估的其它标准,包括但不限于:Gini熵或者‘两分(two-ing)’标准。选择用于使该标准(例如,增益)最大化的参数,并将其存储在当前节点以便未来使用。一旦选择了参数集,则方法1000转到方框1018处。
在方框1018处,判断对应于所计算的标准(例如,增益)的值是否小于(或者大于)门限。如果对应于该标准的值小于门限,则这指示该树的进一步扩展并不提供显著的利益。这造成了当另外的节点没有益处时,自然地停止增长的非对称树。在这些情况下,方法1000转到方框1020处,此时,将当前节点设置成叶子节点。类似地,确定该树的当前深度(即,在根节点和当前节点之间存在多少层级的节点)。如果其大于预先规定的最大值,则方法1000转到方框1020处,此时,将当前节点设置成叶子节点。在一些例子中,每一个叶子节点具有在该训练过程期间在该叶子节点处进行累积的部分标签投票和状态标签投票,如下面所描述的。一旦当前节点被设置成叶子节点,则方法1000转到方框1028处。
如果对应于所计算的标准(例如,增益)的值大于或者等于门限,并且树深度小于最大值,则方法1000转到方框1022处,此时,将当前节点设置成分支节点。一旦将当前节点设置成分支节点,则方法1000移动到方框1024处。
在方框1024处,使用对所述标准(例如,增益)进行最优化的参数,来确定发送给该分支节点的每一个子节点的数据点子集。具体而言,这些参数用于二值测试,对所有训练用数据点都执行该二值测试。通过该二值测试的数据点形成发送给第一子节点的第一子集,而没有通过该二值测试的数据点形成发送给第二子节点的第二子集。一旦确定了数据点的所述子集,则方法1000转到方框1026处。
在方框1026处,对于每一个子节点而言,针对于被指引到相应子节点的数据点子集,递归地执行方框1012到1024中概述的处理。换言之,对于每一个子节点而言,生成新的随机测试参数,并应用于相应的数据点子集,确定用于最优化所选择的标准的参数和节点的类型(分支或者叶子)。因此,该处理递归地通过该树,对每一个节点进行训练,直到在每一个分支都到达叶子节点为止。
在方框1028处,判断是否对所有分支中的所有节点都进行了训练。一旦对所有分支中的所有节点都进行了训练,则方法1000转到方框1030处。
在方框1030处,在树的叶子节点处,对投票进行累积。这些投票包括:在关于部分和状态的直方图或者一些直方图中针对于部分和状态的另外计数。这是训练阶段,所以到达给定的叶子节点的特定数据点具有从地面真值训练数据获知的特定的部分层级投票和状态层级投票。一旦对这些投票进行了累积,则方法1000转到方框1032处。
在方框1032处,可以使用各种不同的方法,对累积的投票的表示进行存储。直方图具有较小的固定尺寸,所以利用较少的存储器占用来存储直方图是可能的。一旦对累积的投票进行了存储,则方法1000转到方框1034处。
在方框1034处,判断在决策森林中是否存在更多的树。如果是,则方法1000转到方框1006处,其中在方框1006处,选择该决策森林中的下一个树,重复该过程。如果对森林中的所有树都进行了训练,没有剩余的其它树,则该训练过程结束,方法1000在方框1036处终止。
现参见图11,该图示出了用于使用决策树森林(例如,如图7中的方框710),对1D轮廓信号中的数据点进行分类的示例性方法1100。方法1100可以由分类器引擎214在图4的方框406处执行。虽然将方法1100描述成由图2的分类器引擎214来执行,但在其它例子中,该方法的全部或者一部分可以由本文所描述的***的另一个部件来执行。
在方框1102处,分类器引擎214接收要进行分类的1D轮廓信号数据点。如上所述,在一些例子中,分类器引擎214可以被配置为对1D轮廓信号的每一个数据点进行分类。在其它例子中,分类器引擎214可以被配置为只对1D轮廓信号的数据点中的子集进行分类。在这些例子中,分类器引擎214可以使用预定的标准集合,来选择要进行分类的数据点。一旦分类器引擎接收到要进行分类的数据点,方法1100转到方框1104处。
在方框1104处,分类器引擎214从决策森林中选择决策树。一旦选择了决策树,则方法1100转到方框1106处。
在方框1106处,分类器引擎214将该轮廓数据点推送通过在方框1104中选定的决策树,使得其针对于在节点处的训练参数进行测试,随后根据该测试的结果将其传送到适当的子节点,重复该过程直到该图像元素到达叶子节点为止。一旦该数据点到达叶子节点,则方法1100转到方框1108处。
在方框1108处,分类器引擎214存储累积的与末端叶子节点相关联的部分标签投票和状态标签投票。这些部分标签投票和状态标签投票可以具有直方图的形式或者任何其它适当的形式。在一些例子中,存在着包括针对于部分和状态的投票的单一直方图。在其它例子中,存在着一个直方图包括针对于部分的投票,另一个直方图包括针对于状态的投票。一旦对该累积的部分标签投票和状态标签投票进行存储,则方法1100转到方框1110处。
在方框1110处,分类器引擎214判断在该森林中是否存在更多的决策树。如果确定在该森林中存在更多的决策树,则方法1100返回到方框1104处,此时选择另一个决策树。重复该过程,直到针对森林中的所有决策树都进行执行为止,随后该方法在1112处结束。应当注意,用于推送图像元素通过决策森林中的多个树的处理,可以并行地执行,而不是如图11中所示地进行顺序地执行。
图12示出了可以实现成任何形式的计算设备和/或电子设备,以及可以在其中实现本文所描述的***和方法的实施例的示例性的基于计算的设备108的各种部件。
基于计算的设备108包括一个或多个处理器1202,其中所述一个或多个处理器1202可以是用于处理计算机可执行指令以控制该设备的操作,从而对图像中的对象进行分类的微处理器、控制器或者任何其它适当类型的处理器。在一些例子中,例如当使用片上***架构时,处理器1202可以包括一个或多个固定功能模块(其还称为加速器),其中这些功能模块利用硬件(而不是软件或固件)来实现对基于计算的设备进行控制的方法的一部分。可以在基于计算的设备处提供包括操作***1004的平台软件或者任何其它适当的平台软件,以使应用软件216能够在该设备上进行执行。
可以使用基于计算的设备108能访问的任何计算机可读介质来提供计算机可执行指令。例如,计算机可读介质可以包括诸如存储器1206之类的计算机存储介质以及通信介质。诸如存储器1206之类的计算机存储介质包括利用用于存储信息(例如,计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于:RAM、ROM、EPROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字多用途光碟(DVD)或者其它光存储器件、盒式磁带、磁带、磁盘存储或者其它磁存储器件、或者可以用于存储信息以便由基于计算的设备进行访问的任何其它非传输介质。相比而言,通信介质可以使用诸如载波波形或其它传输机制之类的调制的数据信号来体现计算机可读指令、数据结构、程序模块、或者其它数据。如本文所规定的,计算机存储介质并不包括通信介质。因此,计算机存储介质本质上不应被解释为传播信号。传播信号可以出现在计算机存储介质中,但传播信号本质上不是计算机存储介质的示例。虽然将计算机存储介质(存储器1206)示出为位于基于计算的设备108之中,但应当理解的是,该存储器件可以是分布式的,或者位于远程位置并经由网络或其它通信链路进行访问(例如,使用通信接口1208)。
此外,基于计算的设备108还包括布置为向显示设备110(图1)输出显示信息的输入/输出控制器1210,其中显示设备110可以是与基于计算的设备108分离的,也可以集成到基于计算的设备108中。该显示信息可以提供图形用户界面。此外,输入/输出控制器1210还被布置为从诸如用户输入设备(例如,鼠标、键盘、相机、麦克风或其它传感器)之类的一个或多个设备接收输入并进行处理。在一些例子中,用户输入设备可以检测语音输入、用户手势或者其它用户动作,可以提供自然用户界面(NUI)。在一个实施例中,如果显示设备110是触摸敏感式显示设备的话,则其还可以充当为用户输入设备。此外,输入/输出控制器1010还可以向不同于显示设备的设备(例如,本地连接的打印设备(图12中没有示出))输出数据。
输入/输出控制器1210、显示设备110和可选的用户输入设备(没有示出)可以包括NUI技术,其中NUI技术使用户能够以自然的方式与基于计算的设备进行交互,不受诸如鼠标、键盘、远程控制器等等之类的输入设备所施加的人为限制的约束。可以提供的NUI技术的例子,包括但不限于依赖于以下方式的那些技术:声音和/或语音识别、触摸和/或手写笔识别(触摸敏感式显示器)、屏幕之上和与屏幕相邻的手势识别、空中手势、头部和眼球跟踪、声音和语音、视觉、触摸、手势和机器智能。可以使用的NUI技术的其它例子包括:意图和目标理解***、使用深度相机的运动姿势检测***(例如,立体相机***、红外线相机***、RGB相机***以及它们的组合)、使用加速计/陀螺仪的运动姿势检测、人脸识别、3D显示、头部、眼球和视线跟踪、沉浸式增强现实和虚拟现实***、以及用于使用电场感测电极(EEG和相关方法)来感测大脑活动的技术。
替代地或另外地,本文所描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。举例而言但非做出限制,可以使用的示例性类型的硬件逻辑部件,包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、程序特定标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑器件(CPLD)。
本文使用术语‘计算机’或‘基于计算的设备’来指代具有处理能力,使得其可以执行指令的任何设备。本领域普通技术人员应当认识到,这些处理能力并入到多种不同的设备之中,因此术语‘计算机’和‘基于计算的设备’中的每一个包括PC、服务器、移动电话(其包括智能电话)、平板计算机、机顶盒、媒体播放器、游戏机、个人数字助理和多种其它设备。
本文所描述的方法可以通过有形存储介质上的机器可读形式的软件来执行,例如,该软件具有包括计算机程序代码单元的计算机程序的形式,当程序在计算机上运行且计算机程序可以体现在计算机可读介质上时,这些计算机程序代码单元适于执行本文所描述的方法中的任何方法的所有步骤。有形存储介质的例子包括具有计算机可读介质(例如,磁盘、拇指驱动器、存储器等等)的计算机存储设备,并不包括传播信号。传播信号可以出现在有形存储介质中,但传播信号本质上不是有形存储介质的示例。软件可适合于在并行处理器或者串行处理器上执行,使得可以以任何适当的顺序或者同时地执行这些方法步骤。
这里承认软件能够是有价值的、可以单独交易的商品。它旨在包含运行于或者控制“哑(dumb)”或者标准的硬件以实现期望的功能的软件。它还旨在包含“描述”或者定义硬件配置的软件,例如,如用于设计硅芯片或者用于配置通用可编程芯片来执行期望的功能的HDL(硬件描述语言)软件。
本领域普通技术人员应当认识到,用于存储程序指令的存储设备可以分布在网络各处。例如,远程计算机可以存储描述成软件的处理的例子。本地或终端计算机可以访问远程计算机,下载该软件的一部分或者全部来运行该程序。替代地,本地计算机可以按需下载软件的一部分,或者可以在本地终端处执行一些软件指令而在远程计算机(或计算机网络)处执行一些软件指令。此外,本领域普通技术人员应当认识到,通过使用本领域普通技术人员都知识的那些传统技术,软件指令的全部或一部分可以由诸如DSP、可编程逻辑阵列等等之类的专用电路来执行。
如本领域普通技术人员将清楚的,本文给出的任何范围或者设备值都可以被扩展或者改变而不失去所寻求的效果。
虽然利用特定于结构特征和/或方法动作的语言来描述本发明的主题,但应当理解的是,所附权利要求书中规定的主题并不必须限于上面所描述的特定特征或者动作。相反,上面所描述的特定特征和动作只是公开成实现本发明的示例形式。
应当理解的是,上面所描述的利益和优点可能涉及一个实施例,也可能涉及几个实施例。实施例并不限于解决所陈述的问题中的任何一个或者全部的那些实施例,也不限于具有所陈述的利益和优点中的任何一个或者全部的那些实施例。此外,还应当理解的是,对于‘一个’项目的引用,指代这些项目中的一个或多个。
本文所描述的方法的步骤可以在需要时按任何合适的次序或同时执行。另外,可以从任何方法中删除个别框,而不脱离本文所描述的主题的精神和保护范围。上面所描述的例子中的任何一个的方面,可以与所描述的其它例子中的任何一个的方面进行组合以形成另外的示例,而不失去所寻求的效果。
本文使用术语‘包括’来意味着包括所标识的方法框或元素,但这些框或者元素并不包括穷举的列表,方法或装置可以包含另外的框或者元素。
应当理解的是,上面的描述仅仅是通过示例的方式给出的,并且本领域普通技术人员可做出各种修改。上面的说明书、示例和数据提供了示例性实施例的结构和使用的完整描述。尽管上面已经用某种程度的特殊性或者参考一个或多个单独的实施例描述了本发明的各种实施例,但本领域普通技术人员可在不脱离本发明的精神或保护范围的情况下对所公开的实施例做出众多改变。
Claims (10)
1.一种对图像中的对象进行分类的方法,所述方法包括:
在基于计算的设备处,接收所述对象对应的一维轮廓信号,所述一维轮廓信号包括沿着所述对象的外形的一系列数据点,所述一维轮廓信号是根据描述所述对象的一个或多个图像来生成的;
向所述数据点的至少一部分应用分类器,以使用基于轮廓的特征,对所述一部分的数据点中的每一个数据点进行分类;以及
对所述一部分的数据点的所述分类进行聚合,以便对所述对象进行分类。
2.根据权利要求1所述的方法,其中,向特定的数据点应用所述分类器包括:识别相对于所述特定的数据点空间偏移的数据点,并确定所识别的数据点和另一个数据点之间的差值。
3.根据权利要求2所述的方法,其中,所识别的数据点沿着所述一维轮廓相对于所述特定的数据点具有预定的真实世界测量单位。
4.根据权利要求2所述的方法,其中,所识别的数据点相对于所述特定的数据点具有预定角度。
5.根据权利要求2所述的方法,其中,所识别的数据点和所述另一个数据点之间的差值表示所识别的数据点与所述另一个数据点之间的真实世界距离,或者投影到预先规定的轴上的所识别的数据点与所述另一个数据点之间的真实世界距离。
6.根据权利要求1-3和5中的任何一项所述的方法,还包括:
在向所述数据点的至少一部分应用所述分类器之前,对所接收的一维轮廓信号进行重新采样以生成修改的一维轮廓信号,所述修改的一维轮廓信号包括沿着所述对象的所述一维轮廓的一系列数据点,其中,每一个数据点沿着所述一维轮廓相对于所述修改的一维轮廓信号中的下一个数据点具有预定的真实世界距离。
7.根据前述权利要求中的任何一项所述的方法,其中,所述分类器将所述一部分的数据点中的每一个数据点分类成特定部分和特定状态中的至少一个的一部分。
8.根据前述权利要求中的任何一项所述的方法,还包括:
基于所述轮廓信号来估计项的凸包;
针对所估计的凸包,生成简化的轮廓信号,其中,所述简化的轮廓信号包括多个数据点;以及
向所述简化的轮廓信号的所述数据点应用所述分类器。
9.根据前述权利要求中的任何一项所述的方法,其中,所述对象是物理对象,所述一维轮廓信号是根据描述所述对象的剪影的一个或多个图像来生成的。
10.一种图像分类***,包括:
基于计算的设备,其配置为:
接收对象对应的一维轮廓信号,所述一维轮廓信号包括沿着所述对象的外形的一系列数据点,所述一维轮廓信号是根据描述所述对象的一个或多个图像来生成的;
向所述数据点的至少一部分应用分类器,以使用基于轮廓的特征,对所述一部分的数据点中的每一个数据点进行分类;以及
对所述数据点的所述分类进行聚合,以便对所述对象进行分类。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/154,368 | 2014-01-14 | ||
US14/154,368 US20150199592A1 (en) | 2014-01-14 | 2014-01-14 | Contour-based classification of objects |
PCT/US2015/010543 WO2015108737A1 (en) | 2014-01-14 | 2015-01-08 | Contour-based classification of objects |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105917356A true CN105917356A (zh) | 2016-08-31 |
Family
ID=52440841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580004546.7A Pending CN105917356A (zh) | 2014-01-14 | 2015-01-08 | 对象的基于轮廓的分类 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150199592A1 (zh) |
EP (1) | EP3095072A1 (zh) |
CN (1) | CN105917356A (zh) |
WO (1) | WO2015108737A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109963501A (zh) * | 2017-03-02 | 2019-07-02 | 欧姆龙株式会社 | 看护辅助***及其控制方法、以及程序 |
CN111886626A (zh) * | 2018-03-29 | 2020-11-03 | 索尼公司 | 信号处理设备和信号处理方法、程序及移动体 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9934577B2 (en) * | 2014-01-17 | 2018-04-03 | Microsoft Technology Licensing, Llc | Digital image edge detection |
EP3035235B1 (en) * | 2014-12-17 | 2023-07-19 | Exipple Studio, Inc. | Method for setting a tridimensional shape detection classifier and method for tridimensional shape detection using said shape detection classifier |
US10248839B2 (en) * | 2015-11-30 | 2019-04-02 | Intel Corporation | Locating objects within depth images |
JP2019220163A (ja) * | 2018-06-06 | 2019-12-26 | コグネックス・コーポレイション | ビジョンシステムでラインを検出するためのシステム及び方法 |
US20200065706A1 (en) * | 2018-08-24 | 2020-02-27 | Htc Corporation | Method for verifying training data, training system, and computer program product |
CN117315397B (zh) * | 2023-10-11 | 2024-06-07 | 电子科技大学 | 一种基于类别曲率的含标签噪声数据分类方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110234840A1 (en) * | 2008-10-23 | 2011-09-29 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus, method and computer program for recognizing a gesture in a picture, and apparatus, method and computer program for controlling a device |
CN102426480A (zh) * | 2011-11-03 | 2012-04-25 | 康佳集团股份有限公司 | 一种人机交互***及其实时手势跟踪处理方法 |
CN102591459A (zh) * | 2010-12-28 | 2012-07-18 | 微软公司 | 姿势状态分类 |
CN102592127A (zh) * | 2010-11-24 | 2012-07-18 | 索尼公司 | 信息处理设备、信息处理方法和计算机程序产品 |
US20120308140A1 (en) * | 2011-06-06 | 2012-12-06 | Microsoft Corporation | System for recognizing an open or closed hand |
CN103098076A (zh) * | 2010-09-17 | 2013-05-08 | 索尼公司 | 电视机控制用手势识别*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US234840A (en) * | 1880-11-23 | Paper bag |
-
2014
- 2014-01-14 US US14/154,368 patent/US20150199592A1/en not_active Abandoned
-
2015
- 2015-01-08 EP EP15702025.6A patent/EP3095072A1/en not_active Ceased
- 2015-01-08 CN CN201580004546.7A patent/CN105917356A/zh active Pending
- 2015-01-08 WO PCT/US2015/010543 patent/WO2015108737A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110234840A1 (en) * | 2008-10-23 | 2011-09-29 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus, method and computer program for recognizing a gesture in a picture, and apparatus, method and computer program for controlling a device |
CN103098076A (zh) * | 2010-09-17 | 2013-05-08 | 索尼公司 | 电视机控制用手势识别*** |
CN102592127A (zh) * | 2010-11-24 | 2012-07-18 | 索尼公司 | 信息处理设备、信息处理方法和计算机程序产品 |
CN102591459A (zh) * | 2010-12-28 | 2012-07-18 | 微软公司 | 姿势状态分类 |
US20120308140A1 (en) * | 2011-06-06 | 2012-12-06 | Microsoft Corporation | System for recognizing an open or closed hand |
CN102426480A (zh) * | 2011-11-03 | 2012-04-25 | 康佳集团股份有限公司 | 一种人机交互***及其实时手势跟踪处理方法 |
Non-Patent Citations (1)
Title |
---|
CONSTANTINA RALUCA MIHALACHE.ETC: "A Study on classifiers accuracy for hand pose recognition", 《BULETINUL INSTITUTULUI POLITEHNIC DIN IASI》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109963501A (zh) * | 2017-03-02 | 2019-07-02 | 欧姆龙株式会社 | 看护辅助***及其控制方法、以及程序 |
CN111886626A (zh) * | 2018-03-29 | 2020-11-03 | 索尼公司 | 信号处理设备和信号处理方法、程序及移动体 |
Also Published As
Publication number | Publication date |
---|---|
WO2015108737A1 (en) | 2015-07-23 |
EP3095072A1 (en) | 2016-11-23 |
US20150199592A1 (en) | 2015-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dube et al. | SegMap: Segment-based mapping and localization using data-driven descriptors | |
CN105917356A (zh) | 对象的基于轮廓的分类 | |
US10902288B2 (en) | Training set sufficiency for image analysis | |
CN105051755A (zh) | 用于姿势识别的部位和状态检测 | |
Han et al. | Enhanced computer vision with microsoft kinect sensor: A review | |
Ibraheem et al. | Survey on various gesture recognition technologies and techniques | |
CN105144196B (zh) | 用于计算相机或对象姿态的方法和设备 | |
Joshi et al. | Comparing random forest approaches to segmenting and classifying gestures | |
CN106663126A (zh) | 用于运动任务分析的视频处理 | |
CN108960278A (zh) | 使用生成式对抗网络的鉴别器的新奇检测 | |
EP3378222A1 (en) | Moving vehicle detection and analysis using low resolution remote sensing imagery | |
KR102252439B1 (ko) | 이미지에서 오브젝트 검출 및 표현 | |
CN103336967B (zh) | 一种手部运动轨迹检测方法及装置 | |
Swadzba et al. | Indoor scene classification using combined 3D and gist features | |
Neverova | Deep learning for human motion analysis | |
JP2019185787A (ja) | 地理的地域内のコンテナのリモート決定 | |
Barbhuiya et al. | Alexnet-CNN based feature extraction and classification of multiclass ASL hand gestures | |
Adhikari et al. | A Novel Machine Learning-Based Hand Gesture Recognition Using HCI on IoT Assisted Cloud Platform. | |
Ferreira et al. | Multimodal learning for sign language recognition | |
Tombari et al. | Online learning for automatic segmentation of 3D data | |
Lahiani et al. | A survey on hand gesture recognition for mobile devices | |
Ramya et al. | Real time palm and finger detection for gesture recognition using convolution neural network | |
Li et al. | Tactile Sensing, Skill Learning, and Robotic Dexterous Manipulation | |
Ramesh Chandra et al. | Emoji Creation from Facial Expression Detection Using CNN | |
Layher et al. | Robust stereoscopic head pose estimation in human-computer interaction and a unified evaluation framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160831 |