CN107592839B - 细粒度分类 - Google Patents

细粒度分类 Download PDF

Info

Publication number
CN107592839B
CN107592839B CN201680016969.5A CN201680016969A CN107592839B CN 107592839 B CN107592839 B CN 107592839B CN 201680016969 A CN201680016969 A CN 201680016969A CN 107592839 B CN107592839 B CN 107592839B
Authority
CN
China
Prior art keywords
image
fine
classification
category
identifying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680016969.5A
Other languages
English (en)
Other versions
CN107592839A (zh
Inventor
M·哈迪·基亚普尔
邸韡
维格里希·贾格迪希
鲁宾逊·皮拉姆苏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
eBay Inc
Original Assignee
eBay Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by eBay Inc filed Critical eBay Inc
Priority to CN202010113317.1A priority Critical patent/CN111582297B/zh
Publication of CN107592839A publication Critical patent/CN107592839A/zh
Application granted granted Critical
Publication of CN107592839B publication Critical patent/CN107592839B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/245Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2111Selection of the most significant subset of features by using evolutionary computational techniques, e.g. genetic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19147Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/24Character recognition characterised by the processing or recognition method
    • G06V30/248Character recognition characterised by the processing or recognition method involving plural approaches, e.g. verification by template match; Resolving confusion among similar patterns, e.g. "O" versus "Q"
    • G06V30/2504Coarse or fine approaches, e.g. resolution of ambiguities or multiscale approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Economics (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Physiology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

将图像传递给图像识别器以识别图像的粗分类和被分类对象的边界框。使用掩模来识别代表对象的图像部分。在给定前景掩模的情况下,定位掩模的凸包,并且拟合包围该凸包的具有最小面积的对准矩形。旋转并缩放对准边界框,使得前景对象大致移动为标准取向和大小(称为校准)。使用校准图像作为细分类模块的输入,细粒度模块确定输入图像在粗分类中的细粒度分类。

Description

细粒度分类
优先权声明
本申请要求2015年12月14日提交的题为“Fine-Grained Categorization”的美国专利申请No.14/967,876的优先权,该美国专利申请No.14/967,876要求2015年1月19日提交的题为“Fine-Grained Categorization”的美国临时专利申请No.62/105,110的优先权,二者的全部内容通过引用并入本文。
技术领域
本文公开的主题总体上涉及使用深卷积神经网络对数据进行分类。
背景技术
可以使用深卷积神经网络(CNN)来基于图像中显示的物品对图像进行分类。针对一定程度的训练,CNN具有有限的区分能力。在典型的数据集中,物品的取向在图像之间是不同的,并且所得到的CNN的区分能力可能耗费在能够识别物品的类别上而不考虑取向。因此,CNN难以识别相似类型的物品之间的细微差别。
附图说明
在附图中以示例而非限制的方式示出了一些实施例。
图1是示出根据一些示例实施例的适用于细粒度图像分类的网络环境的网络图。
图2是示出根据一些示例实施例的适用于细粒度图像分类的分类服务器的组件的框图。
图3是示出根据一些示例实施例的适用于细粒度图像分类的设备的组件的框图。
图4是示出根据一些示例实施例的适用于细粒度图像分类的图像处理的五个步骤的图。
图5是示出根据一些示例实施例的服务器在执行细粒度图像分类的处理中的操作的流程图。
图6是示出根据一些示例实施例的服务器在执行使用细粒度图像分类来显示广告的处理中的操作的流程图。
图7是示出根据一些示例实施例的服务器在执行使用细粒度图像分类来显示搜索结果的处理中的操作的流程图。
图8是示出根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。
图9示出了根据示例实施例的具有计算机系统的形式的机器的示图表示,在所述计算机系统中,可以执行一组指令以使所述机器执行本文讨论的方法中的任意一个或多个方法。
具体实施方式
示例方法和系统涉及细粒度图像分类。示例只是代表可能的变化。除非另行明确声明,否则组件和功能是可选的,且可被合并或细分,且操作可以在顺序上变化或被组合或细分。在以下描述中,出于解释的目的,对多个具体细节进行阐述,以提供对示例实施例的透彻理解。然而,对于本领域技术人员将显而易见的是:本主题可以在没有这些具体细节的情况下实施。适当配置的计算机系统控制细粒度图像分类的处理。为了描述的目的,该处理被分解成由各种模块或应用执行的步骤。
图像识别器对对象的图像进行操作,以识别图像的粗分类和分类对象的边界框。图像识别器可以是卷积神经网络(CNN)、支持向量机(SVM)或其任何合适的组合。对于具有粗分类的识别对象的特定图像,使用掩模(例如,grabCut掩模)来识别表示对象的图像部分。根据前景掩模,定位对象的凸包,并且拟合包围该凸包的具有最小面积的旋转矩形。该旋转矩形称为对准边界框。旋转并缩放对准边界框以形成校准图像,使得前景对象大致移动为校准图像中的标准取向和大小。
使用校准图像作为细粒度分类模块的输入,所述细粒度模块确定输入图像在粗分类中的细粒度分类。例如,粗分类可能是“车”和“鸟”。细粒度分类提供特定图像或对象在粗分类上的更多细节。例如,粗分类的“车”的细粒度分类可以是车的制造商或车的型号。作为另一示例,粗分类的“鸟”的细粒度分类可以是各个鸟种类。因此,在示例实施例中,一旦图像被识别为描绘鸟并被处理以产生所描绘的鸟的校准图像,则校准图像被馈送到确定所描绘的鸟的种类的细粒度分类模块。
图1是示出根据一些示例实施例的适用于细粒度图像分类的网络环境100的网络图。网络环境100包括电子商务服务器120和140、分类服务器130以及设备150A、150B和150C,它们都经由网络170彼此通信耦合。设备150A、150B和150C可以被集体称为“设备150”,或者被统称为“设备150”。替代地,设备150可以直接连接到分类服务器130,或者通过本地网络连接到分类服务器130,所述本地网络不同于用于连接到电子商务服务器120或140的网络170。如以下参照图8至9所描述的,电子商务服务器120和140、分类服务器130以及设备150均可以整体地或部分地在计算机系统中实现。
电子商务服务器120和140经由网络170向其他机器(例如,设备150)提供电子商务应用。电子商务服务器120和140还可以直接连接到分类服务器130,或者与分类服务器130集成在一起。在一些示例实施例中,一个电子商务服务器120和分类服务器130是基于网络的系统110的一部分,而其他电子商务服务器(例如,电子商务服务器140)与基于网络的系统110分离。电子商务应用可以向用户提供相互直接购买和出售物品、从电子商务应用提供商购买物品和将物品出售给电子商务应用提供商、或者以上二者的途径。
分类服务器130确定输入图像的细粒度分类。分类服务器130可以经由网络170或另一网络向其他机器(例如,电子商务服务器120和140或者设备150)提供数据。分类服务器130可以经由网络170或另一网络从其他机器(例如,电子商务服务器120和140或者设备150)接收数据。在一些示例实施例中,本文描述的分类服务器130的功能在诸如个人计算机、平板计算机或智能电话之类的用户设备上执行。
图1中还示出了用户160。用户160可以是人类用户(例如,人类)、机器用户(例如,通过软件程序配置的与设备150和分类服务器130交互的计算机)或者它们的任意合适组合(例如,机器辅助的人或者人监管的机器)。用户160不是网络环境100的一部分,但与设备150相关联并且可以是设备150的用户。例如,设备150可以是属于用户160的传感器、台式计算机、车载计算机、平板计算机、导航设备、便携媒体设备或智能电话。
在一些示例实施例中,分类服务器130接收关于用户160感兴趣的物品的数据。例如,附接到设备150A的相机可以拍摄用户160希望出售的物品的图像,并且通过网络170将该图像发送给分类服务器130。分类服务器130基于图像对物品进行分类。所述分类可被发送给电子商务服务器120或140、发送给设备150A、或其任何组合。电子商务服务器120或140可以使用该分类来辅助生成要出售的物品的列表。类似地,该图像可以是用户160感兴趣的物品的图像,并且电子商务服务器120或140可以使用分类来帮助选择要向用户160显示的物品的列表。
图1中所示的机器、数据库或设备中的任意一个可以用通用计算机来实现,所述通用计算机通过软件修改(例如,配置或编程)为专用计算机,以执行本文针对所述机器、数据库或设备描述的功能。例如,以下参照图8至9讨论能够实现本文描述的方法中的任意一个或更多个的计算机系统。如本文所使用的,“数据库”是数据存储资源并可以存储结构化为文本文件、表格、电子表格、关系数据库(例如,对象关系数据库)、三元组存储、分层数据存储或它们的任意合适组合的数据。此外,图1中示出的机器、数据库或设备的任意两个或更多个可以组合到单个机器、数据库或设备中,并且本文针对任意单个机器、数据库或设备描述的功能可以细分到多个机器、数据库或设备中。
网络170可以是实现机器、数据库和设备(例如,分类服务器130和设备150)之间或之中的通信的任意网络。因此,网络170可以是有线网络、无线网络(例如移动或蜂窝网络)或其任意合适组合。网络170可以包括构成私有网络、公共网络(例如互联网)或其任意合适组合的一个或多个部分。
图2是示出了根据一些示例实施例的分类服务器130的组件的框图。分类服务器130被示为包括通信模块210、粗识别模块220、对准模块230、细粒度识别模块240、用户界面(UI)模块250、广告模块260和存储模块270,全部模块被配置为彼此通信(例如,经由总线、共享存储器或交换机)。本文描述的任何一个或多个模块可以使用硬件(例如机器的处理器)来实现。此外,这些模块中的任何两个或更多个模块可被合并为单一模块,且本文中针对单一模块描述的功能可以细分到多个模块中。此外,根据各种示例实施例,本文描述为在单个机器、数据库或设备中实施的模块可以分布在多个机器、数据库或设备中。
通信模块210被配置为发送和接收数据。例如,通信模块210可以通过网络170接收图像数据,并将接收的数据发送给粗识别模块220。作为另一示例,细粒度识别模块240可以识别物品的分类,并且物品的分类可以由通信模块210通过网络170发送到电子商务服务器140,或直接地或通过不同的网络发送到电子商务服务器120。
粗识别模块220被配置为识别给定图像的一个或多个粗分类。在一些示例实施例中,使用CNN、SVM或其任何合适的组合被用于提供图像的粗分类。
对准模块230被配置为识别分类图像中的对象的对准边界框,并且旋转被对准边界框包围的图像的部分,以输入到细粒度识别模块240。在一些示例实施例中,通过获取未对准边界框,将未对准边界框内的像素作为对象的可能部分来处理,以及将未对准边界框之外的像素作为不是对象的一部分来处理,确定对准边界框。在一些示例实施例中,未对准边界框与图像而不是对象对准。未对准边界框可以由用户定义,或由粗识别模块220生成。
在一些示例实施例中,grabCut算法(在“GrabCut”-Interactive ForegroundExtraction using Iterated Graph Cuts,Rother等人,SigGraph(2004)中描述)用于将未对准边界框内的像素进一步分类为不是对象的一部分。在其他示例实施例中,使用其他算法来区分对象和背景。例如,可以将未对准边界框的中心处的像素识别为前景像素。可以将相邻像素的颜色与前景像素的颜色进行比较。如果颜色差异低于阈值,则相邻像素也被分类为前景的一部分。否则,相邻像素被分类为背景的一部分。重复该处理,直到找到前景像素的区域的外边界。在一些示例实施例中,未对准边界框中具有高于阈值的亮度的所有像素被分类为前景像素。
在识别出在包含对象的未对准边界框中的图像部分之后,创建包含对象的对准边界框,该对准边界框与对象的形状对准。在一些示例实施例中,通过找到包含最小凸包中的所有像素的最小矩形来生成对准边界框,其中所述最小凸包包含对象中所有识别的像素。
对准模块230将对准边界框旋转到细粒度识别模块240所期望的取向。例如,如果粗分类是“鸟”,则细粒度识别模块240可以被配置为(例如通过训练)执行鸟的图像之间的细区分,其中图像的长边是纵向的,并且鸟的头部正对着图像的顶部。因此,对准边界框被旋转为使长边与纵轴对准。
细粒度识别模块240被配置为识别对象的细分类,其中对准模块230针对该对象创建了准备图像。在一些示例实施例中,使用CNN、分级深CNN(HD-CNN)或其任何合适的组合来实现细粒度识别模块240。细粒度识别模块240可以仅使用具有一定取向的正例来训练。这种训练可以通过不使用任何区分能力来补偿旋转而允许在相似对象之间的细区分。
UI模块250被配置为使得用户界面被呈现在设备150A-150C中的一个或多个上。例如,UI模块250可以由网络服务器通过网络170向设备150提供超文本标记语言(HTML)文件来实现。用户界面可以呈现由通信模块210接收的图像、由对准模块230生成的对准边界框、由细粒度识别模块240识别的细分类、关于所识别的分类的附加数据、由广告模块260选择的广告,或其任何合适的组合。用户界面还可以呈现要出售的物品的列表(例如,从电子商务服务器120或140获取的列表)。
广告模块260被配置为获取与细粒度识别模块240识别的细分类相关的广告。例如,如果图像包括一双跑鞋,则广告模块260可以获取跑鞋本身的广告、诸如其他鞋子的替代物品的广告、诸如袜子的补充物品的广告,或其任何合适的组合。
存储模块270被配置为存储和获取由粗识别模块220、对准模块230、细粒度识别模块240、UI模块250和广告模块260生成和使用的数据。例如,细粒度识别模块240生成的关于图像分类的信息也可以被存储模块270存储。电子商务服务器120或140可以(例如,通过提供图像识别器)请求图像的细分类,所述图像可以由存储模块270从存储器获取并使用通信模块210在网络170上发送。
图3是示出根据一些示例实施例的设备150的组件的框图。设备150被示为包括全都被配置为(例如,经由总线、共享存储器或交换机)彼此通信的输入模块310、相机模块320和通信模块330。本文描述的任何一个或多个模块可以使用硬件(例如机器的处理器)来实现。此外,这些模块中的任何两个或更多个模块可被合并为单一模块,且本文中针对单一模块描述的功能可以细分到多个模块中。此外,根据各种示例实施例,本文描述为在单个机器、数据库或设备中实施的模块可以分布在多个机器、数据库或设备中。
输入模块310被配置为经由用户接口从用户接收输入。例如,用户可以将其用户名和密码输入到输入模块中,配置相机,选择用作列表或物品搜索的基础的图像,或其任何合适的组合。
相机模块320被配置为捕获图像数据。例如,可以从相机接收图像,可以从红外相机接收深度图像,可以从双目相机接收图像对,等等。
通信模块330被配置为将输入模块310或相机模块320接收的数据传送给分类服务器130、电子商务服务器120或电子商务服务器140。例如,输入模块310可以接收对利用相机模块320拍摄的图像的选择,以及关于图像描绘了用户(例如,用户160)希望出售的物品的指示。通信模块330可以将图像和指示发送给电子商务服务器120。电子商务服务器120可以将图像发送给分类服务器130以请求图像的分类,基于所述分类生成列表模板,以及使所述列表模板经由通信模块330和输入模块310而呈现给用户。
图4是示出根据一些示例实施例的适用于细粒度图像分类的图像处理的五个步骤的图。列410示出了鸟的四个示例图像,其中包括未对准边界框。列420示出了每个图像的grabCut掩模。列430示出了每个图像的对准边界框。列440示出了旋转和裁剪每个图像后的对准边界框。列450示出了每个图像的取向的grabCut掩模。
图5是示出根据一些示例实施例的分类服务器130在执行识别细分类的处理500中的操作的流程图。处理500包括操作510、520、530、540、550和560。仅作为示例而非限制,操作510-560被描述为由模块210-270执行。
在操作510中,粗识别模块220访问图像,并且在操作520中确定图像中描绘的物品的粗分类。例如,经过训练的CNN可以用于确定粗分类。
在操作530中,对准模块230生成围绕图像的对准边界框,并且在操作540中,旋转对准边界框。在一些示例实施例中,使用grabCut掩模来识别表示对象的图像部分。在给定来自grabCut的前景掩模的情况下,定位掩模的凸包,并且拟合包围该凸包的具有最小面积的旋转矩形。旋转并缩放对准边界框,使得前景对象大致移动为标准取向和大小。例如,可以旋转对准边界框,使得较长的维度与水平轴对准,并且可以缩放对准边界框,使得所得到的图像是300像素×200像素。标准取向和大小可以是全局定义的,也可以针对每个粗分类进行指定。
在一些示例实施例中,以前景掩模的最左点作为凸包上的第一个点来找出凸包。针对前景掩模中的每个潜在的第二个点,生成第一个点和潜在的第二个点之间的线,并且检查以确定前景掩模中的每个其他点是否位于所生成的线的右侧。当检查成功时,潜在的第二个点成为凸包的第二个点。从第二个点继续该处理,产生第三个点,以此类推,直到再次到达第一个点。
在一些示例性实施例中,通过针对凸包的每条边确定共享该边并且包围凸包的最小矩形的面积,找到包围凸包的具有最小面积的矩形。这些矩形中最小的矩形是包围凸包的具有最小面积的矩形。
在操作550中,对准模块230产生基于旋转的边界框的新图像。例如,作为操作540中的旋转处理的一部分,可以从输入图像中提取对准边界框中的图像部分,并保存在新的数据结构中。
在操作560中,细粒度识别模块240基于新的图像来识别细分类。例如,使用处理600来训练的分类器可以用于确定细分类。
下面是一个伪代码列表,其示出了根据一些示例实施例的服务器在执行训练细粒度图像分类器(例如细粒度识别模块240)的处理中的操作。
Figure BDA0001412011130000091
训练细粒度识别模块通常需要训练集(例如,训练集Ti)。大多数可用的训练集合包括(图像、标签)对,其中所描绘的对象没有以特定方式对准。为了产生附加的训练图像,训练集中的图像可以水平翻动(flick),并且被分配与相应的原始图像相同的标签。可以通过执行处理500的步骤,从可用的训练集中生成用于细粒度识别模块的训练集,处理500的步骤包括:识别图像前景中的带标记对象,创建对准边界框,旋转有边界的部分并调整其大小,并将新的图像与原始标签相关联。可以使用选择性搜索来执行图像前景中带标记对象的识别,如Selective search for object recognition,Uijlings et al.,IJCV(2013)中所述。在一个示例实施例中,使用色调-饱和度-值(HSV)颜色空间和Lab颜色空间并且使用两个相似性度量来使用选择性搜索:ColorTextureSizeFill和TestureSizeFill,其中参数k=100。在提取出区域之后,丢弃边长小于30个像素的任何区域。在其他示例实施例中,在训练图像的区域上滑动各种大小的滑动窗口,并进行测试以查看窗口是否包含所识别的前景对象(例如,使用CNN)。确定具有对象的最强正识别的最小窗口,以识别前景对象的位置。
可以使用预先训练的CNN模型以及深度学习工具(例如,Caffe)来提取深卷积特征。在一个示例实施例中,使用了在Imagenet classification with deep convolutionalneural networks,Krizhevsky et al.,NIPS(2012)中描述的CNN架构。Krizhevsky架构中1000个线性分类器中的最后一层被更换为一个新的分类器层,每个分类器用于一个细分类。每个输入图像被表示为完全连通的层fc-6(4096个维度)的激活。为了提取深度激活,将每个输入图像变形为256x256像素,将中心部分的227x227像素用作第一层的固定大小输入。为了补偿变形和剪切,在与其大小成比例的更大高度和宽度上提取每个输入片段,使得用于特征计算的最终中心块与原始提取的片段完全对应。在一些示例实施例中,为了进行细调,使用预训练的图像网络模型,并且针对细分类数量进行500次迭代来细调。附加的示例参数包括基础学习率0.001、动量0.9、重量衰减0.0005和训练验证比4∶1。
为了效率,可以精简所生成的训练图像集合,以减少训练中使用的图像数量,同时保持训练分类器在细分类之间进行正确区分的能力。在一个示例实施例中,通过从每个片段开始,通过增加更多片段进行迭代扩展以实现一般化,然后选择最具区分性的片段集合来实现所述精简。在一些示例实施例中,使用5次迭代,并且在每个步骤中增加10个新片段。给定具有n个分类的集合,对于训练集中的每个提取片段,训练一对全部的分类器,其将从中提取出该片段的分类与所有n-1个其他分类相区分。训练模型按照以下方式进行迭代精简:在每次迭代中,将在前次迭代中学习的模型应用于从与初始片段相同的分类中提取出的所有片段。然后,根据与起始片段属于同一分类的置信度对片段进行排序,并将前m个评分片段作为新的培训样本添加到该集合中。执行两个限制:1)所添加的新片段当前不能存在于训练集中,2)每个新片段必须来自不同的图像。这些限制确保训练模型不会过度地学习当前分类的特定实例,并保证增加每次迭代的多样性。我们将该处理继续进行p次迭代,其中p是启发式求出的。这种挖掘处理涉及重复性训练以便将模型精简,并针对训练集中的每个片段来进行,因为在最初时所有片段都被假设为具有潜在的区分性。
为了加速学习处理,使用具有封闭形式更新的有效线性区分分析(LDA)训练。这种训练绕过了对过多硬负性挖掘的需要。具体地,给定具有n个目标分类的集合,仅需要执行一次计算整个训练集的负例的样本均值μ-和样本协方差矩阵S。对于二进制LDA,我们假设分类具有共享协方差矩阵S,并且每次迭代中只需要在更新μ+。所得到的用于正分类的LDA分类器如下:
w∝S-1+-)。
基于熵-排序曲线来识别最具区分性集合。对于每个集合,使用最后一次迭代得出的最终精简模型对验证中的片段进行分类。这些片段根据其得分进行排序,并选择排名前k个的块。然后计算熵H(Y|k):
Figure BDA0001412011130000111
该式中,n是目标类别的数量,且p(y=yi|k)是具有标签yi的得分前k个的片段的分数。计算熵-排名曲线的曲线(AUC)下的面积。对于理想分类器,熵从零开始,并保持为零,直到大量获取的片段,然后由于从不同于组目标分类的分类返回的片段而开始增加。基于AUC对片段集进行升序排序,并且从每个细分类中选择前r个组。因此,对于n个分类的组,选择n乘以r个型号,其中每个型号检测细分类灵敏的区分片段。
图6是示出根据一些示例实施例的服务器在执行使用细粒度图像分类来显示广告的处理600中的操作的流程图。处理600包括操作610、620、630和640。仅作为示例而非限制,操作610-640被描述为由模块210-270执行。
在操作610中,通信模块210从社交媒体用户帐户接收图像。例如,用户可以上传要与朋友共享的图像,上传用于公众消费的图像,上传图像到私人相册,向互联网图像托管的其他地方提供URL,或其任何合适的组合。
在操作620中,细粒度识别模块240识别图像中的物品。例如,细粒度识别模块240可以确定图像包含本田轿车。在操作630中,图像显示在用户朋友的帐户的新闻馈送中。在一些示例实施例中,图像显示通过通信模块210将图像发送到社交媒体服务器来实现,社交媒体服务器将图像嵌入到发送给朋友的设备150的HTML页面中。除了图像之外,在操作640中显示基于图像内容选择的广告。例如,基于确定图像包含本田轿车,可以呈现本田轿车、另一辆本田车、另一辆汽车、其他汽车相关产品或其任何合适的组合的广告。
图7是示出根据一些示例实施例的分类服务器130在执行使用细粒度图像分类来显示搜索结果的处理700中的操作的流程图。处理700包括操作710、720、730、740和750。仅作为示例而非限制,操作710至750被描述为由模块210至270执行。
在操作710中,通信模块210从第一用户帐户接收图像。例如,社交媒体服务的用户(例如,用户160)可以上传(例如,从设备150A)要张贴在他们的墙上或外发馈送中的图像。作为另一示例,电子商务站点的用户可以上传要用于待出售的物品列表的一部分中的图像。作为另一示例,电子商务站点的用户可以上传描绘用户感兴趣的物品的图像。作为另一示例,通用搜索引擎的用户可以上传作为完整或部分搜索查询的图像。用户帐户可以是匿名的(例如,仅由互联网协议(IP)地址识别)或与用户的数据集相关联。
在操作720中,粗识别模块220分析接收到的图像以识别图像中描绘的物品的粗分类。可以在操作720中使用现有的粗识别方法。
在操作730中,细粒度识别模块240根据所识别的粗分类分析接收到的图像,以确定该物品的细分类。例如,图5的操作530-560可以用于执行操作730。在一些示例实施例中,物品的细分类指示该物品的多个属性。例如,粗分类可以将该物品识别为特定类型的服装,例如鞋、裙子或夹克。物品的细分类可以添加附加细节,如颜色、大小、样式、长度或品牌。因此,裙子的粗分类可以变成短红裙子的细分类。同样,夹克的粗分类也可能变成长款棕色夹克的细分类。作为另一示例,鞋的粗分类可能变成黑色高跟鞋或棕色凉鞋的细分类。
在可选操作740中,使用来自用户帐户的信息(例如,与用户交互的网页)来补充或替换在操作730中确定的细分类信息。例如,物品的细分类可以是长款棕色夹克,但是用户可能希望接收关于长款黑色夹克的信息。因此,向用户呈现指示与所确定的细分类相关联的属性的用户界面。用户界面可被用户操作以添加或修改属性。添加的属性可以包括未被确定或不能被细粒度分类模块240确定的属性。例如,添加的属性可以包括物品是新的还是使用过的,物品的特定品牌,或物品的精确大小。
在操作750中,UI模块250在用于第一用户帐户的显示中呈现与在操作730(以及可选的操作740)中被细分类的一个或多个物品相关的信息。例如,搜索引擎可能会使得显示包含文本搜索结果的一组结果,用于搜索的文本是物品的细分类的名称。作为另一示例,电子商务网站可以使得显示与细分类的名称、描述或品牌相匹配的一组物品列表(例如,要出售的物品的列表)。在一些示例实施例中,通过网络170将信息从分类服务器130或电子商务服务器120或140发送到用户设备(例如,设备150A)以便呈现给用户。
根据各种示例实施例,本文描述的一种或多种方法可以促进物品的细分类。通过本文描述的方法中的一个或多个,还可以减少用户在订购感兴趣的物品时所付出的精力。例如,根据图像准确地识别出用户感兴趣的物品的细分类可以减少用户在创建物品列表或查找要购买的物品时花费的时间或精力。类似地,可以减少(例如在网络环境100中的)一个或多个机器、数据库或设备使用的计算资源。这样的计算资源的示例包括处理器循环、网络流量、存储器使用状况、数据存储容量、功耗以及冷却能力。
软件架构
图8是示出了软件802的架构的框图800,所述软件可以安装在上述任意一个或多个设备上。图8仅是软件架构的非限制性示例,且应该了解,可以实施许多其他架构以促进实现本文中所描述的功能。软件802可以由诸如图9的机器900的硬件来实现,机器900包括处理器910、存储器930以及I/O组件950。在该示例架构中,软件802可被概念化为层的堆栈,其中每层可以提供特定的功能。例如,软件802包括诸如操作系统804、库806、框架808,以及应用810之类的层。在操作上,根据一些实施方式,应用810通过软件堆栈调用应用编程接口(API)调用812,并响应于API调用812接收消息814。
在各种实施方式中,操作系统804管理硬件资源并提供公共服务。操作系统804包括例如内核820、服务822和驱动824。在一些实施方式中,内核820用作硬件和其他软件层之间的抽象层。例如,内核820提供存储器管理、处理器管理(例如,调度)、组件管理、联网和安全设置以及其他功能。服务822可以针对其他软件层提供其他公共服务。驱动824可以负责控制底层硬件或与底层硬件接口连接。例如,驱动824可以包括显示驱动、相机驱动、
Figure BDA0001412011130000141
驱动、闪存驱动、串行通信驱动(例如通用串行总线(USB)驱动)、
Figure BDA0001412011130000142
驱动、音频驱动、电源管理驱动等等。
在一些实施方式中,库806提供可以由应用810使用的低级公共基础设施。库806可以包括:可以提供诸如存储器分配功能、串操纵功能、数学功能等功能的系统库830(例如,C标准库)。另外,库806可以包括API库832,例如媒体库(例如,支持各种媒体格式的呈现和操纵的库,所述格式诸如运动图像专家组4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组层3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)、便携式网络图形(PNG))、图形库(例如,用于在显示器上的图形背景中以二维(2D)和三维(3D)渲染的OpenGL框架)、数据库(例如,提供各种关系数据库函数的SQLite)、web库(例如,提供网络浏览功能的WebKit)等。库806还可以包括各种各样的其他库934,以向应用810提供许多其他API。
根据一些实施方式,框架808提供可以被应用810使用的高级公共基础设施。例如,框架808提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架808可以提供可以被应用810使用的广泛的其他API,其中一些可以特定于特定的操作系统或平台。
在示例实施例中,应用810包括家庭应用850、联系人应用852、浏览器应用854、书阅读器应用856、位置应用858、媒体应用860、消息应用862、游戏应用864、以及诸如第三方应用866之类的各种各样的其他应用。根据一些实施例,应用810是执行在程序中定义的功能的程序。可以采用各种编程语言来创建以各种方式结构化的应用810中的一个或多个,诸如面向对象的编程语言(例如,Objective-C,Java或C++)或过程编程语言(例如C或汇编语言)。在具体示例中,第三方应用866(例如,由与特定平台的供应商不同的实体使用AndroidTM或iOSTM软件开发工具包(SDK)而开发的应用)可以是在移动操作系统(诸如iOSTM、AndroidTM
Figure BDA0001412011130000151
Phone或其他移动操作系统)上运行的移动软件。在该示例中,第三方应用866可以调用由移动操作系统804提供的API调用812,来促进本文描述的功能。
示例机器架构和机器可读介质
图9是示出了根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)中读取指令并执行本文所讨论的方法中的任何一个或多个的机器900的组件的框图。具体地,图9示出了计算机系统的示例形式的机器900的示意表示,其中可以执行指令916(例如,软件、程序、应用、小应用、app或其他可执行代码)以使机器900执行本文讨论的任何一种或多种方法。在备选的实施例中,机器900作为独立设备操作或可以耦合(例如,联网)到其他机器。在联网部署中,机器900可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器900可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能家电)、其他智能设备、网络设备、网络路由器、网络交换机、网桥、或能够顺序地或以其他方式执行指定机器900要采取的动作的指令916的任何机器。此外,尽管仅示出了单个机器900,但是术语“机器”也将被认为包括机器900的集合,其单独地或联合地执行指令916以执行本文讨论的方法中的任何一个或多个。
机器900可以包括处理器910、存储器930和I/O组件950,其可配置成通过总线902彼此通信。在示例实施例中,处理器910(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、其他处理器或其任何适当组合)可以包括例如可以执行指令916的处理器912和处理器914。术语“处理器”旨在包括可以包括可以同时执行指令的两个或更多个独立处理器(也称为“核”)的多核处理器。尽管图9示出了多个处理器,但是机器900可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。
存储器930可以包括主存储器932、静态存储器934和可被处理器910经由总线902访问的存储单元936。存储单元936可以包括机器可读介质938,其上存储体现本文描述的方法或功能中的任何一个或多个的指令916。在机器900执行指令期间,指令916还可以完全地或至少部分地驻留在主存储器932、静态存储器934、处理器910(例如,处理器的高速缓冲存储器)中的至少一个内、或其任何合适的组合内。因此,在各种实施方式中,主存储器932、静态存储器934和处理器910被认为是机器可读介质938。
如本文所使用的,术语“存储器”指能够临时或永久地存储数据的机器可读介质938,并且可以被看作包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存以及高速缓存存储器。虽然机器可读介质938在示例实施例中被示为是单个介质,但是术语“机器可读介质”应当被认为包括能够存储指令916的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”还将被认为包括能够存储被机器(例如机器900)执行的指令(例如,指令916)的任何介质或多个介质的组合,使得指令在被机器900的一个或多个处理器(例如,处理器910)执行时,使机器900执行本文所描述的方法中的任何一个或多个。因此,“机器可读介质”指单个存储装置或设备、以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。因此,术语“机器可读介质”应被理解为包括但不限于具有固态存储器(例如,闪存)、光介质、磁介质、其他非易失性存储器(例如,可擦除可编程只读存储器(EPROM))或其任何合适组合等的形式的一个或多个数据储存库。
I/O组件950包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的各种组件。通常,应当理解,I/O组件950可以包括图9中未示出的许多其他组件。可以根据功能将I/O组件950分组,以仅用于简化以下讨论,并且分组不以任何方式进行限制。在各种示例实施例中,I/O组件950包括输出组件952和输入组件954。输出组件952包括可视组件(例如显示器,比如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学组件(例如,扬声器)、触觉组件(例如,振动马达)、其他信号发生器等。输入组件954包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏或其他触觉输入组件)、音频输入组件((例如,麦克风)等。
在另一些示例实施例中,I/O组件950特别包括生物测定组件956、运动组件958、环境组件960或位置组件962等组件。例如,生物统计组件956包括用于检测表现(例如,手表现、面部表现、语音表现、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、标识人(例如,语音标识、视网膜标识、面部标识、指纹标识或基于脑电图的标识)等的组件。运动组件958包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件960包括例如照度传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,机器嗅觉检测传感器、为安全而检测有害气体浓度或测量大气中的污染物的气体检测传感器)、或可以提供对应于周围物理环境的指示、测量或信号的其他组件。位置组件962包括位置传感器组件(例如,全球定位系统(GPS)接收机组件)、高度传感器组件(例如,高度计或检测气压的气压计(根据气压可以导出高度))、方位传感器组件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O组件950可以包括通信组件964,通信组件964可操作以分别经由耦接982和耦接972将机器900耦接到网络980或设备970。例如,通信组件964包括网络接口组件或与网络980接口连接的另一合适设备。在另一些示例中,通信组件964包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、
Figure BDA0001412011130000181
组件(例如
Figure BDA0001412011130000182
低能耗)、
Figure BDA0001412011130000183
组件、以及经由其他模态提供通信的其他通信组件。设备970可以是另一机器或各种外围设备中的任一种(例如,经由USB耦合的外围设备)。
此外,在一些实施方式中,通信组件964检测识别器或包括可操作以检测识别器的组件。例如,通信组件964包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,用于检测一维条形码(如通用产品代码(UPC)条形码)、多维条形码(如快速响应(QR)码、Aztec码、数据矩阵、数据字、MaxiCode、PDF417、超级码、统一商业码缩减空间符号(UCC RSS)-2D条形码以及其他光学代码)的光学传感器)、声学检测组件(例如,识别带标签的音频信号的麦克风)或其任意合适的组合。另外,可以经由通信组件964导出各种信息,诸如经由互联网协议(IP)地理位置的位置、经由
Figure BDA0001412011130000191
信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等等。
传输介质
在各种示例实施例中,网络980的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网,互联网的一部分、公共交换电话网络(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure BDA0001412011130000192
网络、另一类型的网络、或两个或更多个这样的网络的组合。例如,网络980或网络980的一部分可以包括无线或蜂窝网络,并且耦接982可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一类型的蜂窝或无线耦接。在该示例中,耦接982可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、GSM演进增强数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。
在示例实施例中,使用传输介质在网络980上经由网络接口设备(例如,通信组件964中包括的网络接口组件)并利用多个公知传输协议中的任何一个(例如,HTTP)来发送或接收指令916。类似地,在其他示例实施例中,使用传输介质经由耦接972(例如,对等耦接)向设备970发送或接收指令916。术语“传输介质”应被认为包括能够存储、编码或承载用于被机器900执行的指令916的任何无形介质,并且包括用于促进该软件的通信的数字或模拟通信信号或其他无形介质。
此外,在一个实施例中,机器可读介质938是短暂的(换句话说,具有短暂信号),因为它体现了传播信号或传输介质。
语言
在该说明书中,复数实例可以实现被描述为单数实例的组件、操作或结构。虽然一个或多个方法的各个操作被示意和描述为分离的操作,但是各个操作中的一个或多个可以同时执行,并且无需按所示顺序执行操作。在示例配置中被示为分离组件的结构和功能可以被实现为组合结构或组件。类似地,被示为单个组件的结构和功能可以被实现为分离的组件。这些和其他变型、修改、添加和改进落入本主题的范围内。
尽管已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更宽范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的这些实施例在本文中可以单独地或共同地由术语“发明”提及,以仅仅为了方便,并且不旨在自动地将本申请的范围限制为任何单个公开或发明构思(如果事实上公开了一个以上)。
本文充分详细地描述了示出的实施例以使得本领域技术人员能够实现公开的教导。可以利用并根据这些实施例得出其他实施例,从而可以在不脱离本公开的范围的情况下做出结构和逻辑上的替换和改变。因此,该“具体实施方式”不应当看做是限制意义,并且各种实施例的范围仅通过所附权利要求以及权利要求的等同物的全部范围来限定。
如本文所使用的,术语“或”可以被解释为包括性或排他性的意义。此外,可以针对本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界在某种程度上是任何的,并且在具体说明性配置的上下文中示出了特定操作。设想了功能的其他分配,并且这些分配可以落入本公开的各种实施例的范围内。一般来说,在示例配置中作为单独资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为单独的资源。这些和其他变型、修改、添加和改进落入由所附权利要求表示的本公开的实施例的范围内。因此,说明书和附图应当被看作说明性的而不是限制意义的。
以下列举的示例定义了本文讨论的方法、机器可读介质和系统(例如,装置)的各种示例实施例:
示例1:一种系统,包括:
存储器,上面实现有指令;以及
一个或多个处理器,由所述指令配置为执行以下操作:
基于第一图像识别粗分类;
生成包围第一图像中描绘的物品的边界框;
通过将第一图像裁剪到边界框并旋转裁剪后的部分来生成第二图像;以及
基于第二图像识别细分类,所述细分类是粗分类的子分类。
示例2:根据示例1所述的系统,其中,所述操作还包括:
接收第一图像;
基于所述细分类来选择广告;以及
使得显示第一图像和广告。
示例3:根据示例1或示例2所述的系统,其中:
第一图像与第一用户帐户相关联;以及
向第二用户帐户显示第一图像和广告。
示例4:根据示例1至3中任一项所述的系统,其中,生成包围第一图像中描绘的物品的边界框包括:
生成用于第一图像中描绘的物品的掩模;
生成用于掩模的凸包;以及
生成包围凸包的边界框。
示例5:根据示例1至4中任一项所述的系统,其中:
细分类是从粗分类的可用细分类的集合中选择的;
所述操作还包括使用以下操作来训练用于所述粗分类的片段检测器的集合:
访问用于每个可用细分类的训练图像集;
访问用于每个可用细分类的验证图像集;以及
从训练图像集和验证图像集中识别每个可用细分类的区分性片段集;以及
基于第二图像识别所述细分类包括将第二图像提供给用于所述粗分类的训练后的片段检测器的集合。
示例6:根据示例5所述的系统,其中,识别粗分类的每个可用细分类的区分性片段集包括:
针对粗分类的每个可用细分类:
从用于所述细分类的训练图像集中提取片段;以及
从用于所述细分类的验证图像集中提取片段。
示例7:根据示例6所述的系统,其中,识别每个可用细分类的区分性片段集还包括:
针对每个可用细分类:
选择从所述细分类的训练图像集中提取的片段的随机子集;以及
选择从所述细分类的验证图像集中提取的片段的随机子集。
示例8:根据示例1至7中任一项所述的系统,其中,所述操作还包括:
从客户端设备接收第一图像;
基于细分类识别图像集合;以及
使所述图像集合显示在客户端设备上。
示例9:根据示例8所述的系统,其中:
基于细分类识别图像集合包括:识别与所述细分类相关联的图像。
示例10:根据示例8或示例9所述的系统,其中:
基于细分类识别图像集合包括:识别在线市场中要出售的物品的图像。
示例11:一种计算机实现的方法,包括:
基于第一图像识别粗分类;
生成包围第一图像中描绘的物品的边界框;
通过将第一图像裁剪到边界框并旋转裁剪后的部分来生成第二图像;以及
通过机器的处理器,基于第二图像识别细分类,所述细分类是粗分类的子分类。
示例12:根据示例11所述的方法,其中,所述方法还包括:
接收第一图像;
基于所述细分类来选择广告;以及
使得显示第一图像和广告。
示例13:根据示例11或示例12所述的方法,其中:
第一图像与第一用户帐户相关联;以及
向第二用户帐户显示第一图像和广告。
示例14:根据示例11至13中任一项所述的方法,其中,生成包围第一图像中描绘的物品的边界框包括:
生成用于第一图像中描绘的物品的掩模;
生成用于掩模的凸包;以及
生成包围凸包的边界框。
示例15:根据示例11至14中任一项所述的方法,其中:
细分类是从粗分类的可用细分类的集合中选择的;
所述方法还包括使用以下操作来训练用于粗分类的片段检测器的集合:
访问用于每个可用细分类的训练图像集;
访问用于每个可用细分类的验证图像集;以及
从训练图像集和验证图像集中识别每个可用细分类的区分性片段集;以及
识别新图像中的物品的细分类包括将第二图像提供给用于所述粗分类的训练后的片段检测器的集合。
示例16:根据示例15所述的方法,其中,识别粗分类的每个可用细分类的区分性片段集包括:
针对粗分类的每个可用细分类:
从用于所述细分类的训练图像集中提取片段;以及
从用于所述细分类的验证图像集中提取片段。
示例17:根据示例16所述的方法,其中,识别每个可用细分类的区分性片段集还包括:
针对每个可用细分类:
选择从所述细分类的训练图像集中提取的片段的随机子集;以及
选择从所述细分类的验证图像集中提取的片段的随机子集。
示例18:根据示例11到17中任一项所述的方法,还包括:
从客户端设备接收图像;
基于细分类识别图像集合;以及
使所述图像集合显示在客户端设备上。
示例19:根据示例18所述的方法,其中:
基于细分类识别图像集合包括:识别与所述细分类相关联的图像。
示例20:一种携带指令的机器可读介质,所述指令能够被机器的处理器执行,使得所述机器执行示例11至19中任一项的方法。

Claims (20)

1.一种计算机实现的系统,包括:
存储器,上面实现有指令;以及
一个或多个处理器,由所述指令配置为执行以下操作:
基于第一图像识别第一图像中描绘的物品的粗分类;
生成包围所述物品的边界框;
通过将第一图像裁剪到边界框并旋转裁剪后的部分来生成第二图像;以及
基于第二图像识别所述物品的细分类,所述细分类是粗分类的子分类。
2.根据权利要求1所述的系统,其中,所述操作还包括:
接收第一图像;
基于所述细分类来选择广告;以及
使得显示第一图像和广告。
3.根据权利要求2所述的系统,其中,
第一图像与第一用户帐户相关联;以及
向第二用户帐户显示第一图像和广告。
4.根据权利要求1所述的系统,其中,生成包围所述物品的边界框包括:
生成用于第一图像中描绘的所述物品的掩模;
生成用于掩模的凸包;以及
生成包围凸包的边界框。
5.根据权利要求1所述的系统,其中,
细分类是从粗分类的可用细分类的集合中选择的;
所述操作还包括使用以下操作来训练用于所述粗分类的片段检测器的集合:
访问用于每个可用细分类的训练图像集;
访问用于每个可用细分类的验证图像集;以及
从训练图像集和验证图像集中识别每个可用细分类的区分性片段集;以及
基于第二图像识别所述细分类包括将第二图像提供给用于所述粗分类的训练后的片段检测器的集合。
6.根据权利要求5所述的系统,其中,识别粗分类的每个可用细分类的区分性片段集包括:
针对粗分类的每个可用细分类:
从用于所述细分类的训练图像集中提取片段;以及
从用于所述细分类的验证图像集中提取片段。
7.根据权利要求6所述的系统,其中,识别每个可用细分类的区分性片段集还包括:
针对每个可用细分类:
选择从所述细分类的训练图像集中提取的片段的随机子集;以及
选择从所述细分类的验证图像集中提取的片段的随机子集。
8.根据权利要求1所述的系统,其中,所述操作还包括:
从客户端设备接收第一图像;
基于细分类识别图像集合;以及
使所述图像集合显示在客户端设备上。
9.根据权利要求8所述的系统,其中,
基于细分类识别图像集合包括:识别与所述细分类相关联的图像。
10.根据权利要求8所述的系统,其中,
基于细分类识别图像集合包括:识别在线市场中要出售的物品的图像。
11.一种计算机实现的方法,包括:
基于第一图像识别第一图像中描绘的物品的粗分类;
生成包围所述物品的边界框;
通过将第一图像裁剪到边界框并旋转裁剪后的部分来生成第二图像;以及
通过机器的处理器,基于第二图像识别所述物品的细分类,所述细分类是粗分类的子分类。
12.根据权利要求11所述的方法,其中所述方法还包括:
接收第一图像;
基于所述细分类来选择广告;以及
使得显示第一图像和广告。
13.根据权利要求12所述的方法,其中:
第一图像与第一用户帐户相关联;以及
向第二用户帐户显示第一图像和广告。
14.根据权利要求11所述的方法,其中,生成包围所述物品的边界框包括:
生成用于第一图像中描绘的物品的掩模;
生成用于掩模的凸包;以及
生成包围凸包的边界框。
15.根据权利要求11所述的方法,其中:
细分类是从粗分类的可用细分类的集合中选择的;
所述方法还包括使用以下操作来训练用于粗分类的片段检测器的集合:
访问用于每个可用细分类的训练图像集;
访问用于每个可用细分类的验证图像集;以及
从训练图像集和验证图像集中识别每个可用细分类的区分性片段集;以及
识别新图像中的物品的细分类包括将第二图像提供给用于所述粗分类的训练后的片段检测器的集合。
16.根据权利要求15所述的方法,其中,识别粗分类的每个可用细分类的区分性片段集包括:
针对粗分类的每个可用细分类:
从用于所述细分类的训练图像集中提取片段;以及
从用于所述细分类的验证图像集中提取片段。
17.根据权利要求16所述的方法,其中,识别每个可用细分类的区分性片段集还包括:
针对每个可用细分类:
选择从所述细分类的训练图像集中提取的片段的随机子集;以及
选择从所述细分类的验证图像集中提取的片段的随机子集。
18.根据权利要求11所述的方法,还包括:
从客户端设备接收图像;
基于细分类识别图像集合;以及
使所述图像集合显示在客户端设备上。
19.根据权利要求18所述的方法,其中:
基于细分类识别图像集合包括:识别与所述细分类相关联的图像。
20.一种携带指令的机器可读介质,所述指令能够被机器的处理器执行,使得所述机器执行示例11至19中任一项的方法。
CN201680016969.5A 2015-01-19 2016-01-07 细粒度分类 Active CN107592839B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010113317.1A CN111582297B (zh) 2015-01-19 2016-01-07 细粒度分类

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562105110P 2015-01-19 2015-01-19
US62/105,110 2015-01-19
US14/967,876 US9818048B2 (en) 2015-01-19 2015-12-14 Fine-grained categorization
US14/967,876 2015-12-14
PCT/US2016/012522 WO2016118332A1 (en) 2015-01-19 2016-01-07 Fine-grained categorization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010113317.1A Division CN111582297B (zh) 2015-01-19 2016-01-07 细粒度分类

Publications (2)

Publication Number Publication Date
CN107592839A CN107592839A (zh) 2018-01-16
CN107592839B true CN107592839B (zh) 2020-03-20

Family

ID=56408107

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680016969.5A Active CN107592839B (zh) 2015-01-19 2016-01-07 细粒度分类
CN202010113317.1A Active CN111582297B (zh) 2015-01-19 2016-01-07 细粒度分类

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010113317.1A Active CN111582297B (zh) 2015-01-19 2016-01-07 细粒度分类

Country Status (5)

Country Link
US (3) US9818048B2 (zh)
EP (1) EP3247567A4 (zh)
KR (2) KR102132575B1 (zh)
CN (2) CN107592839B (zh)
WO (1) WO2016118332A1 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103489107B (zh) * 2013-08-16 2015-11-25 北京京东尚科信息技术有限公司 一种制作虚拟试衣模特图像的方法和装置
US9818048B2 (en) * 2015-01-19 2017-11-14 Ebay Inc. Fine-grained categorization
US10372981B1 (en) 2015-09-23 2019-08-06 Evernote Corporation Fast identification of text intensive pages from photographs
US10832123B2 (en) * 2016-08-12 2020-11-10 Xilinx Technology Beijing Limited Compression of deep neural networks with proper use of mask
US11205120B2 (en) 2016-12-22 2021-12-21 Samsung Electronics Co., Ltd System and method for training deep learning classification networks
US10962939B1 (en) * 2017-04-18 2021-03-30 Amazon Technologies, Inc. Fine-grain content moderation to restrict images
US20180322353A1 (en) * 2017-05-08 2018-11-08 PlantSnap, Inc. Systems and methods for electronically identifying plant species
CN109284749A (zh) 2017-07-19 2019-01-29 微软技术许可有限责任公司 精细化图像识别
US10262240B2 (en) 2017-08-14 2019-04-16 Microsoft Technology Licensing, Llc Fast deep neural network training
US11507800B2 (en) 2018-03-06 2022-11-22 Adobe Inc. Semantic class localization digital environment
CN108764306B (zh) 2018-05-15 2022-04-22 深圳大学 图像分类方法、装置、计算机设备和存储介质
CN108985325A (zh) * 2018-06-05 2018-12-11 广州视源电子科技股份有限公司 一种分类方法、装置、设备和系统
GB201809345D0 (en) * 2018-06-07 2018-07-25 Five Ai Ltd Image segmentation
CN108898587A (zh) * 2018-06-19 2018-11-27 Oppo广东移动通信有限公司 图片处理方法、图片处理装置及终端设备
CN109086792A (zh) * 2018-06-26 2018-12-25 上海理工大学 基于检测和识别网络架构的细粒度图像分类方法
CN110738229B (zh) * 2018-07-20 2022-09-30 杭州海康威视数字技术股份有限公司 一种细粒度图像分类方法、装置及电子设备
CN110309339B (zh) * 2018-07-26 2024-05-31 腾讯科技(北京)有限公司 图片标签生成方法及装置、终端及存储介质
US11699207B2 (en) 2018-08-20 2023-07-11 Waymo Llc Camera assessment techniques for autonomous vehicles
US11227409B1 (en) * 2018-08-20 2022-01-18 Waymo Llc Camera assessment techniques for autonomous vehicles
US10713544B2 (en) * 2018-09-14 2020-07-14 International Business Machines Corporation Identification and/or verification by a consensus network using sparse parametric representations of biometric images
CN109886321B (zh) * 2019-01-31 2021-02-12 南京大学 一种用于覆冰图像细粒度分类的图像特征提取方法和装置
CN110207951B (zh) * 2019-05-23 2020-09-08 北京航空航天大学 一种基于视觉的飞机线缆支架装配状态检测方法
CN110490116A (zh) * 2019-08-13 2019-11-22 广州三木智能科技有限公司 一种选择性搜索与机器学习分类的远红外行人检测方法
CN110619369B (zh) * 2019-09-23 2020-12-11 常熟理工学院 基于特征金字塔与全局平均池化的细粒度图像分类方法
CN111222530A (zh) * 2019-10-14 2020-06-02 广州极汇信息科技有限公司 一种细粒度图像分类方法、系统、装置和存储介质
CN110796183A (zh) * 2019-10-17 2020-02-14 大连理工大学 基于相关性引导的判别学习的弱监督细粒度图像分类算法
WO2021087334A1 (en) 2019-11-01 2021-05-06 Vannevar Labs, Inc. Neural network-based optical character recognition
CN110910360B (zh) * 2019-11-14 2023-06-13 腾讯云计算(北京)有限责任公司 电网图像的定位方法和图像定位模型的训练方法
KR102406150B1 (ko) * 2019-12-09 2022-06-08 주식회사 업데이터 딥러닝 영상인식을 활용한 지장물 예측 모델 생성 방법 및 장치
KR102397882B1 (ko) * 2019-12-23 2022-05-16 주식회사 엘지씨엔에스 정보 처리 방법 및 장치
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
KR102298618B1 (ko) * 2020-02-20 2021-09-06 주식회사 에이모 바운딩 박스 생성 장치 및 그를 이용한 바운딩 박스 생성 방법
CN112270297B (zh) * 2020-11-13 2024-05-31 杭州睿琪软件有限公司 用于显示识别结果的方法和计算机系统
CN112507186B (zh) * 2020-11-27 2024-06-14 北京数立得科技有限公司 网页元素分类方法
US20220203930A1 (en) * 2020-12-29 2022-06-30 Nvidia Corporation Restraint device localization
US11430030B1 (en) * 2021-02-26 2022-08-30 Adobe Inc. Generation of recommendations for visual product details

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6429875B1 (en) * 1998-04-02 2002-08-06 Autodesk Canada Inc. Processing image data
CN103443816A (zh) * 2011-03-17 2013-12-11 电子湾有限公司 用于在视频帧中识别物品的视频处理系统

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US642987A (en) * 1898-03-25 1900-02-06 Lauritz Petersen Hviid Apparatus for generating acetylene gas.
GB9601957D0 (en) * 1996-01-31 1996-04-03 Crosfield Electronics Ltd Method and apparatus for locating an image on a support
US6763148B1 (en) 2000-11-13 2004-07-13 Visual Key, Inc. Image recognition methods
US6873380B2 (en) 2001-07-12 2005-03-29 Intel Corporation Providing optical elements over emissive displays
GB2378602A (en) 2001-08-11 2003-02-12 Central Research Lab Ltd Applying two-part codes to stationary images
US7162102B2 (en) 2001-12-19 2007-01-09 Eastman Kodak Company Method and system for compositing images to produce a cropped image
US20050058350A1 (en) * 2003-09-15 2005-03-17 Lockheed Martin Corporation System and method for object identification
US7876938B2 (en) 2005-10-06 2011-01-25 Siemens Medical Solutions Usa, Inc. System and method for whole body landmark detection, segmentation and change quantification in digital images
US7917519B2 (en) * 2005-10-26 2011-03-29 Sizatola, Llc Categorized document bases
KR101582142B1 (ko) * 2008-06-06 2016-01-05 톰슨 라이센싱 이미지들의 유사성 검색을 위한 시스템 및 방법
US8306872B2 (en) * 2008-08-08 2012-11-06 Nikon Corporation Search supporting system, search supporting method and search supporting program
US8208746B2 (en) * 2009-06-29 2012-06-26 DigitalOptics Corporation Europe Limited Adaptive PSF estimation technique using a sharp preview and a blurred image
US8351668B2 (en) * 2010-01-11 2013-01-08 Utah State University System and method for automated particle imaging analysis
CN102567736A (zh) * 2010-12-14 2012-07-11 三星电子株式会社 图像识别设备及方法
US9129413B2 (en) * 2011-08-15 2015-09-08 Agency For Science, Technology And Research Method and device for aligning a plurality of digital pictures
US20150169993A1 (en) * 2012-10-01 2015-06-18 Google Inc. Geometry-preserving visual phrases for image classification using local-descriptor-level weights
US9703274B2 (en) * 2012-10-12 2017-07-11 Telefonaktiebolaget L M Ericsson (Publ) Method for synergistic occupancy sensing in commercial real estates
US8929683B2 (en) * 2012-10-25 2015-01-06 Nvidia Corporation Techniques for registering and warping image stacks
US20160036860A1 (en) * 2013-03-15 2016-02-04 Telefonaktiebolaget L M Ericsson (Publ) Policy based data processing
EP2932470A2 (en) * 2013-10-18 2015-10-21 Koninklijke Philips N.V. Registration of medical images
CN103761326A (zh) * 2014-01-29 2014-04-30 百度在线网络技术(北京)有限公司 图片搜索方法以及搜索引擎
US10387773B2 (en) * 2014-10-27 2019-08-20 Ebay Inc. Hierarchical deep convolutional neural network for image classification
US9684963B2 (en) * 2014-12-31 2017-06-20 Flir Systems, Inc. Systems and methods for dynamic registration of multimodal images
US9818048B2 (en) * 2015-01-19 2017-11-14 Ebay Inc. Fine-grained categorization
US10445616B2 (en) * 2015-01-22 2019-10-15 Bae Systems Information And Electronic Systems Integration Inc. Enhanced phase correlation for image registration
JP6494341B2 (ja) * 2015-03-13 2019-04-03 株式会社ジャパンディスプレイ 表示装置
US10250642B2 (en) * 2016-07-29 2019-04-02 International Business Machines Corporation System, method and apparatus for fine-grained privacy specification and verification

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6429875B1 (en) * 1998-04-02 2002-08-06 Autodesk Canada Inc. Processing image data
CN103443816A (zh) * 2011-03-17 2013-12-11 电子湾有限公司 用于在视频帧中识别物品的视频处理系统

Also Published As

Publication number Publication date
CN107592839A (zh) 2018-01-16
KR20170105094A (ko) 2017-09-18
US9818048B2 (en) 2017-11-14
CN111582297B (zh) 2023-12-26
EP3247567A1 (en) 2017-11-29
US10885394B2 (en) 2021-01-05
EP3247567A4 (en) 2018-06-20
KR102132575B1 (ko) 2020-08-05
US20190266451A1 (en) 2019-08-29
WO2016118332A1 (en) 2016-07-28
US20160210533A1 (en) 2016-07-21
US20180039866A1 (en) 2018-02-08
US10282642B2 (en) 2019-05-07
KR102039235B1 (ko) 2019-10-31
KR20190122907A (ko) 2019-10-30
CN111582297A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
CN107592839B (zh) 细粒度分类
US20210406960A1 (en) Joint-based item recognition
US11222246B2 (en) Generating a digital image using a generative adversarial network
KR102032038B1 (ko) 이미지로 묘사된 아이템 인식
US11893611B2 (en) Document optical character recognition
US20240054687A1 (en) Encoding and decoding a stylized custom graphic
US11861999B2 (en) Object detection based on object relation
US20160125274A1 (en) Discovering visual concepts from weakly labeled image collections
US10296638B1 (en) Generating a probability of music using machine learning technology

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
GR01 Patent grant
GR01 Patent grant