KR102039235B1 - 세분화된 범주화 - Google Patents

세분화된 범주화 Download PDF

Info

Publication number
KR102039235B1
KR102039235B1 KR1020177023101A KR20177023101A KR102039235B1 KR 102039235 B1 KR102039235 B1 KR 102039235B1 KR 1020177023101 A KR1020177023101 A KR 1020177023101A KR 20177023101 A KR20177023101 A KR 20177023101A KR 102039235 B1 KR102039235 B1 KR 102039235B1
Authority
KR
South Korea
Prior art keywords
image
category
identifying
subdivided
categories
Prior art date
Application number
KR1020177023101A
Other languages
English (en)
Other versions
KR20170105094A (ko
Inventor
엠 하디 키아포어
웨이 디
비그네쉬 자가디쉬
로빈슨 피라무수
Original Assignee
이베이 인크.
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 이베이 인크. filed Critical 이베이 인크.
Publication of KR20170105094A publication Critical patent/KR20170105094A/ko
Application granted granted Critical
Publication of KR102039235B1 publication Critical patent/KR102039235B1/ko

Links

Images

Classifications

    • G06K9/6276
    • 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
    • G06K9/00979
    • G06K9/3216
    • G06K9/3241
    • G06K9/4628
    • G06K9/6229
    • G06K9/6256
    • G06K9/6857
    • 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년 1월 19일에 "Fine-Grained Categorization"이라는 제목으로 출원된 미국 가출원 제62/105,110호의 우선권을 주장하는 2015년 12월 14일에 "Fine-Grained Categorization"이라는 제목으로 출원된 미국 특허 출원 제14/967,876호의 우선권을 주장하며, 이들 각각은 본 명세서에서 그 전체가 참조로서 포함된다.
본 명세서에 개시된 주제는 일반적으로 데이터를 분류하기 위한 딥 콘볼루션 신경망(deep convolutional neural network:CNN)의 사용에 관한 것이다.
딥 콘볼루션 신경망(CNN)은 이미지에 표시된 아이템에 기초하여 그 이미지를 분류하는데 사용될 수 있다. 일정 레벨의 트레이닝(training)을 위해, CNN은 유한한 구별 능력(finite discriminatory capacity)을 갖는다. 일반적인 데이터 세트에서, 아이템의 방향은 이미지마다 다르며, 결과 CNN의 구별 능력은 방향에 관계없이 아이템의 클래스를 인식하는 데 사용될 수 있다. 따라서, CNN은 유형이 비슷한 아이템들 간의 미묘한 차이점을 인식하는 데 어려움을 겪는다.
몇몇 실시예는 첨부 도면의 도면들에 제한이 아닌 예로서 설명된다.
도 1은 본 발명의 일 실시예에 따른, 세분화된(fine-grained) 이미지 분류에 적합한 네트워크 환경을 도시한 네트워크 구성도이다.
도 2는 일부 예시적인 실시예에 따른, 세분화된 이미지 분류에 적합한 범주화 서버의 컴포넌트를 나타내는 블록도이다.
도 3은 일부 예시적인 실시예에 따른, 세분화된 이미지 분류에 적합한 장치의 컴포넌트를 나타내는 블록도이다.
도 4는 일부 예시적인 실시예에 따라, 세분화된 이미지 분류에 적합한 이미지 처리의 5단계를 도시하는 도면이다.
도 5는 일부 예시적인 실시예에 따른, 세분화된 이미지 분류 프로세스를 수행하는 서버의 동작을 도시한 흐름도이다.
도 6은 일부 예시적인 실시예에 따른, 세분화된 이미지 분류를 이용하여 광고를 디스플레이하는 프로세스를 수행하는 서버의 동작을 도시한 흐름도이다.
도 7은 일부 예시적인 실시예에 따른, 세분화된 이미지 분류를 이용하여 검색 결과를 디스플레이하는 프로세스를 수행하는 서버의 동작을 도시한 흐름도이다.
도 8은 일부 예시적인 실시 예에 따른, 머신 상에 설치될 수 있는 소프트웨어 아키텍처의 예를 도시하는 블록도이다.
도 9는 예시적인 실시예에 따른, 머신이 본 명세서에서 논의된 임의의 하나 이상의 방법을 수행하게 하기 위한 명령어 세트가 실행될 수 있는 컴퓨터 시스템의 형태의 머신의 개략도를 도시한다.
예시적인 방법 및 시스템은 세분화된 이미지 분류에 관한 것이다. 예들은 단지 가능한 변형예들을 나타낼 뿐이다. 명시적으로 달리 언급하지 않는 한, 컴포넌트 및 기능은 선택사항이며 결합되거나 세분화될 수 있으며, 동작들은 순서가 바뀔 수 있거나 결합되거나 세분화될 수 있다. 이하의 설명에서, 설명을 목적으로, 예시적인 실시예들의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항들이 설명된다. 그러나, 본 발명은 이러한 특정 세부 사항 없이도 실시될 수 있음은 당업자에게 자명할 것이다. 적절히 구성된 컴퓨터 시스템은 세분화된 이미지 분류의 프로세스를 제어한다. 설명을 목적으로, 이 프로세스는 다양한 모듈 또는 애플리케이션에 의해 수행되는 단계들로 나뉘어진다.
이미지의 개략적인 범주(coarse category) 및 범주화된 객체의 경계 박스(bounding box)를 식별하기 위해 객체의 이미지에 대해 이미지 식별자가 동작한다. 이 이미지 식별자는 컨볼루션 신경망(CNN), 지원 벡터 머신(SVM), 또는 이들의 임의의 적절한 조합일 수 있다. 개략적인 범주에서 식별된 객체를 갖는 특정 이미지에 대해, 마스크(예를 들어, grabCut 마스크)를 사용하여 객체를 나타내는 이미지의 일부분을 식별한다. 전경 마스크로부터, 객체의 볼록 껍질(convex hull)이 배치되고 이 껍질을 둘러싸는 최소 영역의 회전된 사각형이 장착된다(fitted). 이 회전된 사각형은 정렬된 경계 박스(aligned bounding box)라고 한다. 정렬된 경계 박스는 회전되고 크기가 조정되어 보정된 이미지를 형성하므로, 전경 객체는 보정된 이미지에서의 표준 배향 및 크기로 대략적으로 이동한다.
보정된 이미지는 입력 이미지의 개략적인 범주 내에서 세분화된 범주를 결정하는 세분화된 범주화 모듈(fine-grained categorization module)의 입력으로 사용된다. 예를 들어, 개략적인 범주는 "자동차" 및 "새"일 수 있다. 세분화된 범주는 특정 이미지나 객체의 개략적인 범주에 대한 추가 정보를 제공한다. 예를 들어, "자동차"의 개략적인 범주에 대한 세분화된 범주는 자동차의 제조사 또는 모델일 수 있다. 또 다른 예로서, "새"의 개략적인 범주에 대한 세분화된 범주는 새들의 개별적인 종(species)일 수 있다. 따라서, 예시적인 실시예에서, 이미지가 새를 묘사한 것으로 식별되고 묘사된 새의 보정된 이미지를 생성하도록 처리되면, 보정된 이미지는 묘사된 새의 종을 결정하는 세분화된 범주화 모듈에 공급된다.
도 1은 몇몇 예시적인 실시예에 따른, 세분화된 이미지 분류에 적합한 네트워크 환경(100)을 나타내는 네트워크 도면이다. 네트워크 환경(100)은 전자 상거래 서버(120 및 140), 범주화 서버(130) 및 장치(150A, 150B 및 150C)를 포함하며, 이들 모두는 네트워크(170)를 통해 서로 통신 가능하게 연결된다. 장치(150A, 150B 및 150C)는 통칭하여 "장치(150)"로 지칭될 수 있는데, 즉 일반적으로 "장치(150)"로 지칭될 수 있다. 이와 달리, 장치(150)는 범주화 서버(130)에 직접 또는 전자 상거래 서버(120 또는 140)에 연결하는데 사용되는 네트워크(170)와는 별개인 로컬 네트워크를 통해 연결될 수 있다. 전자 상거래 서버(120 및 140), 범주화 서버(130) 및 장치(150)는 각각 도 8 및 도 9와 관련하여 이하에서 설명되는 바와 같이, 컴퓨터 시스템에 전체적으로 또는 부분적으로 구현될 수 있다.
전자 상거래 서버(120 및 140)는 네트워크(170)를 통해 다른 머신(예를 들어, 장치(150))에 전자 상거래 애플리케이션을 제공한다. 전자 상거래 서버(120 및 140)는 또한 범주화 서버(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) 및 저장 모듈을 포함하는 것으로 도시되어 있다. 본 명세서에서 설명되는 모듈들 중 임의의 하나 이상은 하드웨어(예를 들어, 머신의 프로세서)를 사용하여 구현될 수 있다. 더욱이, 이들 모듈 중 임의의 2개 이상은 단일 모듈로 결합될 수 있고, 단일 모듈에 대해 본 명세서에 설명된 기능은 다수의 모듈로 세분화될 수 있다. 또한, 다양한 예시적인 실시예에 따르면, 본 명세서에서 단일 머신, 데이터베이스 또는 장치 내에 구현되는 것으로 설명된 모듈은 다수의 머신, 데이터베이스 또는 장치에 걸쳐 분산될 수 있다.
통신 모듈(210)은 데이터를 송수신하도록 구성된다. 예를 들어, 통신 모듈(210)은 네트워크(170)를 통해 이미지 데이터를 수신하고 수신된 데이터를 개략적인 식별 모듈(220)에 전송할 수 있다. 다른 예로서, 세분화된 식별 모듈(240)은 아이템의 범주를 식별할 수 있고, 아이템의 범주는 통신 모듈(210)에 의해 네트워크(170)를 통해 전자 상거래 서버(140)로, 또는 직접적으로 또는 다른 네트워크를 통해 전자 상거래 서버(120)로 전송될 수 있다.
개략적인 식별 모듈(220)은 주어진 이미지에 대한 하나 이상의 개략적인 범주를 식별하도록 구성된다. 일부 예시적인 실시예에서, CNN, SVM, 또는 이들의 임의의 적절한 조합은 이미지의 개략적 범주화를 제공하는데 사용된다.
정렬 모듈(230)은 범주화된 이미지 내의 객체에 대해 정렬된 경계 박스를 식별하고, 세분화된 식별 모듈(240)에 입력하기 위해 정렬된 경계 박스에 의해 둘러싸인 이미지의 부분을 회전시키도록 구성된다. 일부 예시적인 실시예에서, 정렬된 경계 박스는 정렬되지 않은 경계 박스를 취하고, 그 정렬되지 않은 경계 박스 내의 픽셀을 객체의 일부로 취급하고, 정렬되지 않은 경계 박스 외부의 픽셀을 객체의 일부가 아닌 것으로서 취급함으로써 결정된다. 일부 예시적인 실시예에서, 정렬되지 않은 경계 박스는 객체보다는 이미지와 정렬된다. 정렬되지 않은 경계 박스는 사용자에 의해 정의되거나 개략적인 식별 모듈(220)에 의해 생성될 수 있다.
일부 예시적인 실시예에서, grabCut 알고리즘("GrabCut" - Interactive Foreground Extraction using Iterated Graph Cuts, Rother et al. SIGGRAPH(2004)에 설명되어 있음)이 사용되어 정렬되지 않은 경계 박스 내의 픽셀을 객체의 일부가 아닌 것으로 더 분류한다. 다른 예시적인 실시예에서, 다른 알고리즘이 사용되어 물체와 배경을 구별한다. 예를 들어, 정렬되지 않은 경계 박스의 중심에 있는 픽셀은 전경 픽셀로서 식별될 수 있다. 인접 픽셀들의 컬러는 전경 픽셀들의 컬러와 비교될 수 있다. 컬러의 차이가 임계 값보다 낮으면, 인접 픽셀은 전경의 일부인 것으로 분류된다. 그렇지 않으면, 인접 픽셀은 배경의 일부인 것으로 분류된다. 이러한 프로세스는 전경 픽셀 영역의 바깥 경계가 발견될 때까지 반복된다. 일부 예시적인 실시예에서, 임계치를 초과하는 휘도를 갖는 정렬되지 않은 경계 박스 내의 모든 픽셀은 전경 픽셀로 분류된다.
객체를 포함하는 정렬되지 않은 경계 박스 내의 이미지 부분을 식별한 후, 객체의 향상과 정렬된 객체를 포함하는 정렬된 경계 박스가 생성된다. 일부 예시적인 실시예에서, 정렬된 경계 박스는 객체 내의 모든 식별된 픽셀을 포함하는 가장 작은 볼록 껍질 내의 모든 픽셀을 포함하는 가장 작은 직사각형을 발견함으로써 생성된다.
정렬된 경계 박스는 세분화된 식별 모듈(240)에 의해 기대되는 방향으로 정렬 모듈(230)에 의해 회전된다. 예를 들어, 개략적인 범주가 "새"인 경우, 개략적인 식별 모듈(240)은 이미지가 가장 긴 모서리를 수직으로 하고 새의 머리가 이미지의 상단을 향하도록 새의 이미지들 사이의 미세한 구별을 수행하도록 (예를 들어, 트레이닝을 통해) 구성될 수 있다. 따라서, 정렬된 경계 박스는 가장 긴 모서리를 수직축과 정렬시키도록 회전된다.
세분화된 식별 모듈(240)은 준비된 이미지가 정렬 모듈(230)에 의해 생성된 객체의 세분화된 범주를 식별하도록 구성된다. 일부 실시예에서, 세분화된 식별 모듈(240)은 CNN, 계층적 딥 CNN(HD-CNN), 또는 이들의 임의의 적절한 조합을 사용하여 구현된다. 세분화된 식별 모듈(240)은 특정 방향을 갖는 포지티브 예만을 사용하여 트레이닝되었을 수 있다. 이 트레이닝은 회전을 보상하는 어떠한 구별 기능도 사용하지 않음으로써 유사한 객체들 간의 보다 미세한 구별을 허용할 수 있다.
UI 모듈(250)은 사용자 인터페이스가 장치들(150A-150C) 중 하나 이상 상에 제공되게 하도록 구성된다. 예를 들어, UI 모듈(250)은 웹 서버가 네트워크(170)를 통해 장치(150)에 하이퍼텍스트 마크업 언어(HTML) 파일을 제공함으로써 구현될 수 있다. 사용자 인터페이스는 통신 모듈(210)에 의해 수신된 이미지, 정렬 모듈(230)에 의해 생성된 정렬된 경계 박스(240), 세분화된 식별 모듈(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)을 포함하는 것으로 도시되어 있다. 본 명세서에서 설명되는 모듈들 중 임의의 하나 이상은 하드웨어(예를 들어, 머신의 프로세서)를 사용하여 구현될 수 있다. 더욱이, 이들 모듈 중 임의의 2개 이상은 단일 모듈로 결합될 수 있고, 단일 모듈에 대해 본 명세서에 설명된 기능은 다수의 모듈로 세분화될 수 있다. 또한, 다양한 예시적인 실시예에 따르면, 본 명세서에서 단일 머신, 데이터베이스 또는 장치 내에 구현되는 것으로 설명된 모듈은 다수의 머신, 데이터베이스 또는 장치에 걸쳐 분산될 수 있다.
입력 모듈(310)은 사용자 인터페이스를 통해 사용자로부터 입력을 수신하도록 구성된다. 예를 들어, 사용자는 입력 모듈에 사용자 이름과 암호를 입력하거나, 카메라를 구성하거나, 리스트 또는 아이템 검색의 기초로 사용할 이미지를 선택하거나, 또는 이들의 적절한 조합을 수행할 수 있다.
카메라 모듈(320)은 이미지 데이터를 캡쳐하도록 구성된다. 예를 들어, 이미지는 카메라로부터 수신될 수 있고, 깊이 이미지는 적외선 카메라로부터 수신될 수 있고, 이미지의 쌍은 양안 카메라로부터 수신될 수 있다.
통신 모듈(330)은 입력 모듈(310) 또는 카메라 모듈(320)에 의해 수신된 데이터를 범주화 서버(130), 전자 상거래 서버(120) 또는 전자 상거래 서버(140)에 통신하도록 구성된다. 예를 들어, 입력 모듈은 카메라 모듈(320)로 촬영된 이미지의 선택, 및 사용자(예를 들어, 사용자(160))가 판매하고자 하는 아이템을 이미지가 묘사하고 있다는 표시를 수신할 수 있다. 통신 모듈(330)은 이미지 및 표시를 전자 상거래 서버(120)에 전송할 수 있다. 전자 상거래 서버(120)는 이미지를 범주화 서버(130)로 전송하여 이미지의 범주화를 요청하고, 범주에 기초하여 리스트 템플릿을 생성하며, 이 리스트 템플릿이 통신 모듈(330) 및 입력 모듈(310)을 통해 사용자에게 제공되도록 할 수 있다.
도 4는 일부 예시적인 실시예에 따른, 세분화된 이미지 분류에 적합한 이미지 처리의 5 단계를 도시하는 도면이다. 열(column)(410)은 정렬되지 않은 경계 박스를 포함하는 4개의 예시적인 새 이미지를 도시한다. 열(420)은 각 이미지에 대한 grabCut 마스크를 나타낸다. 열(430)은 각각의 이미지에 대해 정렬된 경계 박스를 도시한다. 열(440)은 각 이미지에 대한 회전 및 자르기 후에 정렬된 경계 박스를 도시한다. 열(450)은 각 이미지에 대해 방향을 갖는 grabCut 마스크를 나타낸다.
도 5는 몇몇 예시적인 실시예에 따른, 세분화된 범주를 식별하는 프로세스(500)를 수행할 때의 범주화 서버(130)의 동작을 도시하는 흐름도이다. 프로세스(500)는 동작들(510, 520, 530, 540, 550 및 560)을 포함한다. 제한이 아닌 단지 예로서, 동작들(510-560)은 모듈들(210-270)에 의해 수행되는 것으로 설명된다.
동작(510)에서, 개략적인 식별 모듈(220)은 이미지에 액세스하고, 동작(520)에서 이미지에 묘사된 아이템의 개략적인 범주를 결정한다. 예를 들어, 트레이닝된 CNN을 사용하여 개략적인 범주를 결정할 수 있다.
정렬 모듈(230)은 동작(530)에서 이미지 주위에 정렬된 경계 박스를 생성하고, 동작(540)에서 정렬된 경계 박스를 회전시킨다. 일부 예시적인 실시예에서, grabCut 마스크는 객체를 나타내는 이미지 부분을 식별하는데 사용된다. grabCut로부터 전경 마스크가 주어지면, 마스크의 볼록 껍질이 배치되고 이 껍질을 둘러싸는 최소 영역의 회전된 직사각형이 장착된다. 정렬된 경계 박스가 회전되고 크기가 조정되어, 전경 객체는 표준 배향과 크기로 대략적으로 이동한다. 예를 들어, 정렬 된 경계 박스는 더 긴 치수가 가로축과 정렬되도록 회전되고 또한 결과적인 이미지가 300 픽셀 x 200 픽셀이도록 크기가 조정될 수 있다. 표준 배향 및 크기는 전역적으로 정의되거나 각 개략적인 범주별로 지정될 수 있다.
일부 예시적인 실시예에서, 볼록 껍질은 껍질상의 제1 지점으로서 전경 마스크의 가장 왼쪽 지점으로부터 시작하는 것으로 발견된다. 전경 마스크 내의 각각의 잠재적인 제2 지점에 대해, 제1 지점과 잠재적인 제2 지점 사이에 라인이 생성되고 전경 마스크의 다른 모든 점이 생성된 라인의 오른쪽에 있는지 확인하기 위한 검사가 수행된다. 검사가 성공적이면, 잠재적인 제2 지점은 볼록 껍질의 제2 지점이된다. 프로세스는 제1 지점에 다시 도달할 때까지 제2 지점으로부터 계속되어 제3 지점을 생성하고 또 다음 지점을 계속 생성한다.
일부 예시적인 실시예에서, 볼록 껍질을 둘러싸는 최소 영역의 직사각형은 볼록 껍질의 각 에지에 대해, 에지를 공유하고 볼록 껍질을 둘러싸는 가장 작은 직사각형의 영역을 결정함으로써 발견된다. 직사각형들 중에서 가장 작은 것은 껍질을 둘러싼 최소 영역의 직사각형이다.
회전된 경계 박스에 기초한 새로운 이미지가 동작(550)에서 정렬 모듈(230)에 의해 생성된다. 예를 들어, 정렬된 경계 박스 내의 이미지 부분은 입력 이미지로부터 추출될 수 있고 동작(540)의 회전 프로세스의 일부로서 새로운 데이터 구조에 저장될 수 있다.
동작(560)에서, 세분화된 식별 모듈(240)은 새로운 이미지에 기초하여 세분화된 범주를 식별한다. 예를 들어, 프로세스(600)를 사용하여 트레이닝된 분류자는 세분화된 범주를 결정하는데 사용될 수 있다.
이하는 일부 예시적인 실시예에 따른, 세분화된 이미지 분류자(예를 들어, 세분화된 식별 모듈(240))를 트레이닝하는 프로세스를 수행하는 서버의 동작을 도시한 슈도코드(psuedocode) 리스트이다.
Figure 112017079888271-pct00001
세분화된 식별 모듈을 트레이닝하려면 일반적으로 트레이닝 세트(예를 들면, 트레이닝 세트(Ti))가 필요하다. 대부분 이용 가능한 트레이닝 세트는(이미지, 라벨) 쌍을 포함하며, 도시된 객체는 특정 방식으로 정렬되지 않는다. 추가 트레이닝 이미지를 생성하기 위해, 트레이닝 세트 내의 이미지를 수평으로 뒤집어서 해당 원본 이미지와 동일한 라벨을 할당할 수 있다. 세분화된 식별 모듈을 위한 트레이닝 세트는 이미지의 전경에서 라벨링된 객체를 식별하는 단계, 정렬된 경계 박스를 생성하는 단계, 경계된 부분을 회전 및 크기 변경하는 단계, 및 새로운 이미지를 원본 라벨과 연관시키는 단계를 포함하는 프로세스(500)의 단계들을 수행함으로써 이용가능 트레이닝 세트로부터 생성될 수 있다. 이미지의 전경에서 라벨링된 객체를 식별하는 것은 Selective search for object recongnition, Uijlings et al., IJCV(2013)에 설명되어 있는 선택적 검색을 사용하여 수행될 수 있다. 하나의 예시적인 실시예에서, 색상-채도-값(hue-saturation-value)(HSV) 컬러 공간 및 랩(Lab) 컬러 공간을 사용하고 파라미터 k=100을 갖는 2개의 유사성 측정, 즉 ColorTextureSizeFill 및 TestureSizeFill을 사용하여 선택적 검색이 사용된다. 영역이 추출된 후에는 30 픽셀보다 작은 측면을 갖는 임의의 영역은 삭제된다. 다른 예시적인 실시예에서, 다양한 크기의 슬라이딩 윈도우가 트레이닝 이미지의 영역 위로 슬라이딩되고 윈도우가 식별된 전경 객체를 포함하는지를 알아보기 위해 (예를 들어, CNN을 사용하여) 테스트된다. 전경 객체의 위치를 식별하기 위해 객체에 대해 가장 강한 포지티브 인식을 갖는 가장 작은 윈도우가 결정된다.
딥 러닝 도구(예를 들어, Caffe)와 함께 사전 트레이닝된 CNN 모델을 사용하여 딥 콘볼루션 기능을 추출할 수 있다. 하나의 예시적인 실시예에서, Imagenet classification with deep convolutional neural networks, Kirzhevsky et al., NIPS(2012)에 설명된 CNN 아키텍처가 사용된다. Krizhevsky 아키텍처에서 1000개의 선형 분류자의 마지막 계층은 새로운 분류자들의 계층으로 대체되는데, 각 세분화된 범주마다 하나의 분류자가 대응한다. 각 입력 이미지는 완전히 연결된 계층(fc-6(4096 치수))의 활성화로 표시된다. 딥 활성화를 추출하기 위해, 각 입력 이미지는 256 x 256 픽셀로 왜곡되고(warped) 227 x 227 픽셀의 중앙 부분이 첫 번째 계층의 고정 크기 입력으로서 사용된다. 왜곡 및 자르기를 보상하기 위해, 각 입력 프래그먼트은 특징 계산에 사용되는 최종 중앙 패치가 원래 추출된 프래그먼트과 정확하게 대응하도록 크기에 비례하여 더 큰 높이와 너비로 추출된다. 일부 예시적인 실시예에서, 미세 조정을 위해, 사전 트레이닝된 이미지-네트 모델(image-net model)이 사용되며, 세분화된 클래스의 수에 대해 500회 반복으로 미세 조정된다. 추가의 예시적인 파라미터는 0.001의 기본 학습 속도, 0.9의 모멘텀, 0.0005의 중량 감쇠, 및 4:1의 트레이닝-검증 비율을 포함한다.
효율성을 위해, 생성된 트레이닝 이미지 세트는 세분화된 범주들 사이를 적절히 구별하기 위해 트레이닝된 분류자의 능력을 유지하면서, 정제되어(refined) 트레이닝시 사용되는 이미지의 개수를 줄일 수 있다. 하나의 예시적인 실시예에서, 이러한 정제는 모든 프래그먼트으로부터 시작하고, 일반화를 달성하기 위해 더 많은 프래그먼트를 부가함으로써 반복적으로 확장한 다음, 가장 구별적인 프래그먼트 세트를 선택함으로써 처리된다. 일부 예시적인 실시예에서, 5번의 반복이 사용되고 각 단계에서 10개의 새로운 프래그먼트가 추가된다. n개의 범주를 포함하는 세트가 주어진 경우, 트레이닝 세트 내의 추출된 프래그먼트들 각각에 대해, 프래그먼트가 추출되는 범주와 모든 n-1개의 다른 범주를 구별하는 1 대 전부 분류자(one-vs.~all classifier)가 트레이닝된다. 트레이닝된 모델은 다음과 같은 방식으로 반복적으로 정제된다. 각 반복에서, 이전 반복에서 학습된 모델이 초기 프래그먼트과 동일한 범주로부터 추출된 모든 프래그먼트에 적용된다. 그런 다음, 프래그먼트들은 시작 프래그먼트과 동일한 범주에 속한다는 그들의 신뢰성에 기초하여 소팅(sort)되고 상위 m개의 스코어 프래그먼트는 새로운 트레이닝 샘플로서 세트에 추가된다. 두 가지 제약 조건이 강제되는데, 즉 1) 추가된 새로운 프래그먼트는 현재 트레이닝 세트에 존재하지 않아야 하며, 2) 새로운 프래그먼트 각각은 다른 이미지로부터 생성되어야 한다. 이러한 제약 조건으로 인해, 트레이닝된 모델은 해당 범주의 특정 인스턴스를 학습하는 것에 과다적합하게(overfit) 되지 않으며 각 반복에서 다양성을 증가시키는 것을 보장한다. p번의 반복에 대해 이 프로세스를 계속하는데, 여기서 p는 체험을 바탕으로 발견된다. 이러한 마이닝 프로세스는 모델을 정제하기 위한 반복적인 트레이닝을 포함하며 초기에는 모든 프래그먼트가 잠재적으로 구별적이라고 가정하기 때문에 트레이닝 세트 내의 각 프래그먼트에 대해 수행된다.
학습 프로세스를 가속화하기 위해, 폐쇄형(closed-form) 업데이트를 사용한 효율적인 선형 판별 분석(linear discrimin: LDA) 트레이닝이 사용된다. 이 트레이닝은 광범위한 하드 네거티브 마이닝(extensive hard-nagative mining)의 필요성을 우회한다. 특히, n개의 타겟 범주를 포함하는 세트가 주어진 경우, 네거티브 예의 샘플 평균(μ-) 및 전체 트레이닝 세트의 샘플 공분산 행렬(S)을 계산하는 동작은 한 번만 수행될 필요가 있다. 이진 LDA를 위해, 클래스가 공유 공분산 행렬(S)을 가지며 각 반복에서 μ+만을 업데이트할 필요가 있다. 포지티브 클래스에 대한 결과적인 LDA 분류자는 다음과 같이 얻어진다.
Figure 112017079888271-pct00002
가장 구별적인 세트는 엔트로피-랭크 곡선에 기초하여 식별된다. 모든 세트에 대해, 마지막 반복으로부터의 최종 정제된 모델을 사용하여 유효성 검사에서 프래그먼트들을 분류한다. 프래그먼트들은 그들의 스코어에 따라 소팅되고, k개의 상위 순위 블록이 선택된다. 그런 다음, 엔트로피 H(Y|k)가 다음과 같이 계산된다.
Figure 112017079888271-pct00003
이 계산에서, n은 타겟 범주의 개수이고, p(y=yi|k)는 라벨(yi)을 갖는 상위 점수의 k개의 프래그먼트의 일부이다. 엔트로피-랭크 곡선의 곡선(AUC) 아래의 영역이 계산된다. 이상적인 분류자의 경우, 엔트로피는 0에서 시작하여 검색된 프래그먼트의 수가 많아질 때까지 제로를 유지한 다음 그룹의 타겟 클래스 이외의 클래스로부터 반환된 프래그먼트으로 인해 증가하기 시작한다. 프래그먼트 세트는 AUC에 기초하여 오름차순으로 소팅되고 각 세분화된 범주의 상위 r개의 그룹이 선택된다. 따라서, n개의 범주의 그룹에 대하여, n×r개의 모델이 선택되고, 각각은 세분화된 범주에 민감한 구별적 프래그먼트(a fine-category-sensitive discriminative fragment)를 검출한다.
도 6은 일부 예시적인 실시예에 따른, 세분화된 이미지 분류를 사용하여 광고를 디스플레이하는 프로세스(600)를 수행하는 서버의 동작을 도시하는 흐름도이다. 프로세스(600)는 동작(610, 620, 630, 및 640)을 포함한다. 제한이 아닌 단지 예로서, 동작(610-640)은 모듈(210-270)에 의해 수행되는 것으로 설명된다.
동작(610)에서, 통신 모듈(210)은 소셜 미디어 사용자 계정으로부터 이미지를 수신한다. 예를 들어, 사용자는 친구와 공유할 이미지를 업로드하거나, 공용 소비를 위해 이미지를 업로드하거나, 개인 사진 앨범에 이미지를 업로드하거나, 인터넷상의 다른 곳에 호스팅된 이미지의 URL을 제공하거나, 또는 이들의 적절한 조합을 제공할 수 있다.
동작(620)에서, 세분화된 식별 모듈(240)은 이미지 내의 아이템을 식별한다. 예를 들어, 세분화된 식별 모듈(240)은 이미지가 혼다 세단을 포함한다고 결정할 수 있다. 동작(630)에서, 이미지는 사용자의 친구의 계정에 대한 뉴스 피드에 디스플레이된다. 일부 예시적인 실시예에서, 이미지의 디스플레이는 통신 모듈(210)이 이미지를 친구의 장치(150)로 전송된 HTML 페이지에 이미지를 내장하는 소셜 미디어 서버에 그 이미지를 보냄으로써 수행된다. 이미지 외에, 동작(640)에서 이미지의 콘텐츠에 기초하여 선택된 광고가 디스플레이된다. 예를 들어, 이미지가 혼다 세단을 포함한다는 결정에 기초하여, 혼다 세단, 다른 혼다, 또 다른 자동차, 다른 자동차 관련 제품, 또는 이들의 임의의 조합에 대한 광고가 제시된다.
도 7은 일부 예시적인 실시예에 따른, 세분화된 이미지 분류를 사용하여 검색 결과를 디스플레이하는 프로세스(700)를 수행하는 범주화 서버(130)의 동작을 도시한 흐름도이다. 프로세스(700)는 동작(710, 720, 730, 740, 750)을 포함한다. 제한이 아닌 예로서, 동작(710-750)은 모듈(210-270)에 의해 수행되는 것으로 설명된다.
동작(710)에서, 통신 모듈(210)은 제1 사용자 계정으로부터 이미지를 수신한다. 예를 들어, 소셜 미디어 서비스의 사용자(예를 들어, 사용자(160))가 자신의 벽 또는 발신 피드(wall or outgoing feed)에 게시할 이미지를 (예를 들어, 장치(150A)로부터) 업로드할 수 있다. 또 다른 예를 들어, 전자 상거래 사이트의 사용자는 판매할 아이템 리스트의 일부에 사용되는 이미지를 업로드할 수 있다. 또 다른 예를 들어, 전자 상거래 사이트의 사용자는 사용자의 관심 아이템을 묘사하는 이미지를 업로드할 수 있다. 또 다른 예로서, 범용 검색 엔진의 사용자는 전체 또는 일부 검색 쿼리로서 이미지를 업로드할 수 있다. 사용자 계정은 익명(예를 들어, 인터넷 프로토콜(IP) 주소로만 식별됨)일 수 있고 또는 사용자에 대한 데이터의 세트와 연관될 수 있다.
동작(720)에서 거친 식별 모듈(220)은 수신된 이미지를 분석하여 이미지에 나타낸 아이템의 개략적인 범주를 식별한다. 개략적인 식별의 기존 방법이 동작(720)에서 사용될 수도 있다.
동작(730)에서, 세분화된 식별 모듈(240)은 수신된 이미지를 식별된 개략적인 범주에 비추어 분석하여 아이템의 세분화된 범주를 결정한다. 예를 들어, 도 5의 동작(530-560)은 동작(730)을 수행하는데 이용될 수 있다. 일부 예시적인 실시예에서, 아이템의 세분화된 범주는 아이템에 대한 복수의 속성을 나타낸다. 예를 들어, 개략적인 범주는 신발, 스커트, 재킷과 같은 특정 유형의 의류인 것으로 아이템을 식별할 수 있다. 아이템의 세분화된 범주는 컬러, 크기, 스타일, 길이, 또는 브랜드와 같은 추가 정보를 추가할 수 있다. 따라서, 스커트의 개략적인 범주는 짧은 빨간색 스커트의 세분화된 범주가 될 수 있다. 마찬가지로, 재킷의 개략적인 범주는 긴 갈색 재킷의 세분화된 범주가 될 수 있다. 또 다른 예를 들어, 신발의 개략적인 범주는 굽이 높은 검은색 신발 또는 갈색 샌들의 세분화된 범주가 될 수 있다.
동작(740)에서, 사용자 계정(예를 들어, 사용자와 상호작용하는 웹 페이지)로부터의 정보가 사용되어 동작(730)에서 결정된 범주 정보를 보완하거나 대체한다. 예를 들어, 아이템에 대한 세분화된 범주는 긴 갈색 재킷이 될 수 있지만, 사용자는 그 대신 긴 검은 재킷에 정보를 수신하기를 원할 수 있다. 따라서, 결정된 세분화된 범주와 연관된 속성을 나타내는 사용자 인터페이스가 사용자에게 제시된다. 이 사용자 인터페이스는 속성을 추가하거나 수정하도록 사용자에 의해 조작가능하다. 추가된 속성이 세분화된 범주화 모듈(240)에 의해 판정되지 않은 또는 판정가능하지 않은 속성을 포함할 수 있다. 예를 들어, 추가된 속성은 아이템이 신상인지 또는 중고인지 여부, 아이템의 특정 브랜드, 또는 아이템의 정확한 크기를 포함할 수 있다.
동작(750)에서, 동작(730)(및 선택에 따라서는 동작(740))에서 세부적으로 범주화된 하나 이상의 아이템에 관련된 정보가 UI 모듈(250)에 의해 제1 사용자 계정에 대한 디스플레이에 제시된다. 예를 들어, 검색 엔진은 텍스트 검색에 대한 결과를 포함하는 결과 세트의 디스플레이를 야기할 수 있는데, 검색을 위한 텍스트는 아이템의 세분화된 범주의 이름이다. 또 다른 예를 들어, 전자 상거래 사이트는 세분화된 범주의 이름, 설명 또는 브랜드에 일치하는 아이템 리스트들(예를 들어, 판매할 아이템의 리스트들)의 세트의 디스플레이를 야기할 수 있다. 일부 예시적인 실시예에서, 정보는 범주화 서버(130) 또는 전자 상거래 서버(120 또는 140)로부터 네트워크(170)를 통해 사용자 장치(예를 들어, 장치(150A))로 전송되어 사용자에게 제시된다.
다양한 예시적인 실시예에서, 본 명세서에서 기술된 하나 이상의 방법은 아이템의 세분화된 범주화를 용이하게 할 수 있다. 관심 아이템을 주문할 시 사용자가 들이는 노력이 또한 본원에 기재된 하나 이상의 방법에 의해 감소될 수 있다. 예를 들어, 사용자에게 관심있는 아이템의 세분화된 범주를 이미지로부터 식별함으로써 아이템 리스트를 작성하거나 구매할 아이템을 발견하려 할 때 사용자가 들이는 시간 또는 노력을 감소시킬 수 있다. (예를 들어, 네트워크 환경(100) 내에 있는) 하나 이상의 머신, 데이터베이스 또는 장치에 의해 사용되는 컴퓨팅 리소스가 유사하게 감소될 수 있다. 이러한 컴퓨팅 리소스의 예는 프로세서 사이클, 네트워크 트래픽, 메모리 사용, 데이터 저장 용량, 전력 및 냉각 용량을 포함한다.
소프트웨어 아키텍처
도 8은 전술한 장치들 중 임의의 하나 이상에 설치될 수 있는 소프트웨어(802)의 아키텍처를 도시한 블록도(800)이다. 도 8은 단지 소프트웨어 아키텍처의 비제한적인 예이며, 본 명세서에서 설명된 기능을 용이하게 하는 다른 많은 아키텍처가 구현될 수 있다는 것을 이해할 것이다. 소프트웨어(802)은 프로세서(910), 메모리(930) 및 I/O 컴포넌트(950)를 포함하는 도 9의 머신(900)과 같은 하드웨어에 의해 구현될 수 있다. 이 예시적인 아키텍처에서, 소프트웨어(802)는 각각의 계층이 특정 기능을 제공할 수 있는 계층들의 스택으로서 개념화될 수 있다. 예를 들어, 소프트웨어(802)는 운영 체제(804), 라이브러리(806), 프레임워크(808), 및 애플리케이션(810)과 같은 계층을 포함할 수 있다. 일부 실시예에 따라, 애플리케이션(810)은 동작에 따라 소프트웨어 스택을 통해 애플리케이션 프로그래밍 인터페이스(API) 콜(812)을 호출하고 이 API 콜(812)에 응답하여 메시지(814)를 수신한다.
다양한 구현에서, 운영 체제(804)는 하드웨어 리소스를 관리하고 공통 서비스를 제공한다. 운영 체제(804)는 예를 들어 커널(820), 서비스(822) 및 드라이버(824)를 포함한다. 커널(820)은 일부 구현 예에서, 하드웨어와 다른 소프트웨어 계층 사이의 추상화 계층으로서 동작한다. 예를 들면, 커널(820)은 다른 기능 중에서 메모리 관리, 프로세서 관리(예를 들어, 스케쥴링), 컴포넌트 관리, 네트워킹, 보안 설정을 제공한다. 서비스(822)는 다른 소프트웨어 계층에 대한 다른 일반적인 서비스를 제공할 수 있다. 드라이버(824)는 기본 하드웨어를 제어하고 그와의 인터페이싱을 담당할 수 있다. 예를 들어, 드라이버(824)는 디스플레이 드라이버, 카메라 드라이버, 블루투스® 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예를 들어, 범용 직렬 버스(USB) 드라이버), Wi-Fi® 드라이버, 오디오 드라이버, 전력 관리 드라이버 등을 포함할 수 있다.
일부 구현예에서, 라이브러리(806)는 애플리케이션(810)에 의해 이용될 수 있는 낮은 레벨의 공통 인프라구조를 제공한다. 라이브러리(806)는 메모리 할당 기능, 문자열 처리 기능, 수학 함수 등과 같은 기능들을 제공할 수 있는 시스템 ㄹ라이브러리(830)(예를 들어, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(806)는 미디어 라이브러리(예를 들어, 이동 사진 전문가 그룹-4(MPEG4), 고급 비디오 코딩 이동(H.264 또는 AVC), 이동 사진 전문가 그룹 레이어-3(MP3), 고급 오디오 코딩(AAC), 적응형 멀티 레이트(AMR) 오디오 코덱, 공동 사진 전문가 그룹(JPEG 또는 JPG), 이동식 네트워크 그래픽(PNG)), 그래픽 라이브러리(예를 들어, 디스플레이 상에서 그래픽 컨텍스트에서 2차원(2D) 및 3차원(3D)으로 렌더링하는데 사용되는 OpenGL 프레임워크) 및 데이터베이스 라이브러리(예를 들어, 다양한 관계형 데이터베이스 기능을 제공하는 SQLite), 웹 라이브러리(예를 들면, 웹 브라우징 기능을 제공하는 웹킷) 등과 같은 API 라이브러리(832)를 포함한다. 라이브러리(806)는 다수의 다른 API를 애플리케이션(810)에 제공하기 위해 다양한 다른 라이브러리(934)를 또한 포함할 수 있다.
프레임워크(808)는 일부 실시예에 따라, 애플리케이션(810)에 의해 이용될 수 있는 높은 레벨의 공통 인프라구조를 제공한다. 예를 들어, 프레임워크(808)는 다양한 그래픽 유저 인터페이스(GUI) 기능, 높은 레벨의 리소스 관리, 높은 레벨의 위치 서비스 등을 제공한다. 프레임워크(808)는 애플리케이션(810)에 의해 이용될 수 있는 다른 API의 광범위한 스펙트럼을 제공할 수 있는데, 이들 중 일부는 특정 운영 체제 또는 플랫폼에 특정할 수 있다.
예시적인 실시예에서, 애플리케이션(810)은 홈 애플리케이션(850), 주소록 애플리케이션(852), 브라우저 애플리케이션(854), 북 리더 애플리케이션(856), 위치 애플리케이션(858), 미디어 애플리케이션(860), 메시징 애플리케이션(862), 게임 애플리케이션(864), 및 제3자 애플리케이션(866)과 같은 다른 애플리케이션들의 광범위한 모음을 포함한다. 일부 실시예에 따라, 애플리케이션(810)은 프로그램에 정의된 기능을 실행하는 프로그램이다. 다양한 프로그래밍 언어가 사용되어 다양한 방식으로 구성되는 하나 이상의 애플리케이션(810)을 생성할 수 있는데, 이러한 언어의 예로는 객체 지향 프로그래밍 언어(예를 들면, 오브젝티브-C, Java 또는 C ++) 또는 절차적 프로그래밍 언어(예를 들어, C 또는 어셈블리 언어)가 있다. 특정 예에서, 제3자 애플리케이션(866)(예를 들어, 특정 플랫폼의 공급자 이외의 엔티티에 의해 AndroidTM 또는 iOSTM 소프트웨어 개발 키트(SDK)를 사용하여 개발된 애플리케이션)은 iOSTM, AndroidTM, Windows® 전화기 또는 다른 모바일 운영 체제와 같은 모바일 이동 체제에서 실행되는 모바일 소프트웨어일 수 있다. 이 예에서, 제3자 애플리케이션(866)은 모바일 운영 체제(804)에 의해 제공되는 API 콜(812)을 호출하여 본 명세서에서 설명된 기능을 용이하게 할 수 있다.
예시적인 머신 아키텍처 및 머신 판독가능 매체
도 9는 일부 예시적인 실시예에 따라, 머신 판독가능 매체(예를 들어, 머신 판독가능 저장 매체)로부터 명령어를 판독하고 본 명세서에서 설명된 임의의 하나 이상의 방법을 수행할 수 있는 머신(900)의 컴포넌트들을 나타내는 블록도이다. 구체적으로, 도 9는 머신(900)으로 하여금 본 명세서에서 설명한 임의의 하나 이상의 방법을 수행하게 하는 명령어(916)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱, 또는 다른 실행가능 코드)가 실행될 수 있는 컴퓨터 시스템의 예시적인 형태를 갖는 머신(900)을 도면으로 나타낸다. 또 다른 실시예에서, 머신(900)은 독립형 장치로서 동작할 수 있거나 또는 다른 머신에 연결(예를 들어, 네트워크화)될 수 있다. 네트워크형 배치에서, 머신(900)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 역량으로 동작하거나, 또는 피어 투 피어(또는 분산형) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신(900)은 서버 컴퓨터, 클라이언트 컴퓨터, 퍼스널 컴퓨터(PC), 태블릿 컴퓨터, 랩탑 컴퓨터, 노트북, 셋톱 박스(STB), 퍼스널 디지털 정보 단말기(PDA), 오락 미디어 시스템, 셀룰러 전화기, 스마트폰, 이동 장치, 착용형 장치(예를 들어, 스마트 와치), 스마트 홈 장치(예를 들어, 스마트 어플라이언스), 다른 스마트 장치, 웹 어플라이언스, 네트워크 라우터, 네트워크 스위치, 네트워크 브리지, 또는 머신(900)에 의해 실행될 동작들을 지정하는 명령어(916)를 순차적으로 또는 달리 실행할 수 있는 임의의 머신을 포함하나 이에 국한되지 않는다. 또한, 단일 머신(900)만이 도시되어 있지만, "머신"이라는 용어는 또한 본 명세서에서 설명된 임의의 하나 이상의 방법을 수행하는 명령어(916)를 개별적으로 또는 함께 실행하는 머신(900)의 모음을 포함하는 것으로 취급되어야 한다.
머신(900)은 버스(902)를 통해 서로 통신하도록 구성될 수 있는 프로세서(910), 메모리(930) 및 I/O 컴포넌트(950)를 포함할 수 있다. 예시적인 실시예에서, 프로세서(910)(예컨대, 중앙 처리 장치(CPU), RISC(reduced instruction set computing) 프로세서, CISC(complex instruction set computing) 프로세서, GPU(graphics processing unit), DSP(digital signal processor), ASIC(application specific integrated circuit), RFIC(radio-frequency integrated circuit), 다른 프로세서 또는 이들의 임의의 적합한 조합)는, 예를 들어, 명령어(916)를 실행할 수 있는 프로세서(912)와 프로세서(914)를 포함할 수 있다. "프로세서"라는 용어는 명령어를 동시에 실행할 수 있는 두 개 이상의 독립적인 프로세서("코어"로도 지칭됨)를 포함할 수 있는 멀티-코어 프로세서를 포함하도록 의도된다. 도 9는 복수의 프로세서를 도시하지만, 머신(900)은 단일 코어의 단일 프로세서, 복수의 코어(예컨대, 멀티-코어 프로세스)를 갖는 단일 프로세서, 단일 코어의 복수의 프로세서, 복수의 코어를 갖는 복수의 프로세서 또는 이들의 임의의 조합을 포함할 수 있다.
메모리(930)는 메인 메모리(932), 정적 메모리(934) 및 버스(902)를 통해 프로세서(910)에 액세스가능한 저장 유닛(936)을 포함할 수 있다. 저장 유닛(936)은 본 명세서에 설명된 임의의 하나 이상의 방법 또는 기능을 실시하는 명령어(916)를 저장하는 머신 판독가능 매체(938)를 포함할 수 있다. 명령어(916)는 머신(900)에 의한 실행 동안에 메인 메모리(932) 내에, 정적 메모리(934) 내에, 적어도 하나의 프로세서(910) 내에(예컨대, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적절한 조합에 완전히 또는 적어도 부분적으로 존재할 수 있다. 따라서, 메인 메모리(932), 정적 메모리(934) 및 프로세서(910)는 머신 판독가능 매체(938)로 간주될 수 있다.
본 명세서에서 사용되는 바와 같이, "메모리"라는 용어는 데이터를 일시적으로 또는 영구적으로 저장할 수 있는 머신 판독가능 매체(938)를 지칭하고, RAM(random-access memory), ROM(read-only memory), 버퍼 메모리, 플래시 메모리 및 캐시 메모리를 포함할 수 있지만 이에 제한되지 않는다. 머신 판독가능 매체(938)가 단일 매체로서 예시적인 실시예에 도시되었으나, "머신 판독가능 매체"라는 용어는 명령어(916)를 저장할 수 있는 단일 매체 또는 복수의 매체(예컨대, 중앙형 또는 분산된 데이터베이스, 또는 연관된 캐시 및 서버) 포함할 수 있어야 한다. "머신 판독가능 매체"라는 용어는 또한 머신(예컨대, 머신(900))에 의한 실행을 위해 명령어(예컨대, 명령어(916))를 저장할 수 있는 임의의 매체, 또는 복수의 매체의 조합을 포함해서, 명령어(916)는 머신(900)의 하나 이상의 프로세서(예컨대, 프로세서(910))에 의해 실행되는 경우 머신(900)으로 하여금 본 명세서에 설명된 임의의 하나 이상의 방법을 수행하게 해야 한다. 따라서, "머신 판독가능 매체"는 단일 저장 장치 또는 디바이스뿐만 아니라 복수의 저장 장치 또는 디바이스를 포함하는 "클라우드-기반" 저장 시스템 또는 저장 네트워크를 지칭한다. 따라서, "머신 판독가능 매체"라는 용어는 고체 상태 메모리(예컨대, 플래시 메모리), 광학 매체, 자기 매체, 다른 비휘발성 메모리(예컨대, EPROM(erasable programmable read-only memory)) 또는 이들의 임의의 적합한 조합의 형태의 하나 이상의 데이터 저장소를 포함해야 하지만 이에 제한되지 않는다.
I/O 컴포넌트(950)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하며, 정보를 전송하고, 정보를 교환하며, 측정치를 캡처하는 등을 위한 매우 다양한 컴포넌트를 포함할 수 있다. I/O 컴포넌트(950)가 도 9에 도시되지 않은 다른 많은 컴포넌트를 포함할 수 있는 것이 이해될 것이다. I/O 컴포넌트(950)는 하기의 논의를 간단화할 목적으로 기능에 따라 그룹화되며, 이러한 그룹화는 제한적인 방식이 아니다. 다양한 예시적인 실시예에서, I/O 컴포넌트(950)는 출력 컴포넌트(952)와 입력 컴포넌트(954)를 포함할 수 있다. 출력 컴포넌트(952)는 시각적 컴포넌트(예컨대, PDP(plasma display panel), LED(light emitting diode) 디스플레이, LCD(liquid crystal display), 프로젝터 또는 CRT(cathode ray tube)와 같은 디스플레이), 음향 컴포넌트(예컨대, 스피커), 햅틱 컴포넌트(예컨대, 진동 모터), 다른 신호 생성기 등을 포함한다. 입력 컴포넌트(954)는 문자숫자(alphanumeric) 입력 컴포넌트(예컨대, 문자숫자 입력을 수신하도록 구성된 키보드, 터치스크린, 사진-광(photo-optical) 키보드, 또는 다른 문자숫자 입력 컴포넌트), 포인트 기반 입력 컴포넌트(예컨대, 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서 또는 다른 포인팅 기구), 촉각 입력 컴포넌트(예컨대, 물리적 버튼, 터치의 위치 및 강도와 터치 제스처를 제공하는 터치스크린, 또는 다른 촉각 입력 컴포넌트), 오디오 입력 컴포넌트(예컨대, 마이크로폰) 등을 포함한다.
추가적인 예시적인 실시예에서, I/O 컴포넌트(950)는 광범위한 다른 컴포넌트 중에서 생체 컴포넌트(956), 모션 컴포넌트(958), 환경 컴포넌트(960) 또는 포지션 컴포넌트(962)를 포함할 수 있다. 예를 들어, 생체 컴포넌트(956)는 표현(예컨대, 손표현, 얼굴 표정, 목소리 표현, 몸 제스처 또는 안구 추적)을 검출하고, 생체신호(예컨대, 혈압, 심박, 체온, 땀 또는 뇌파)를 측정하고, 사람을 식별(음성 식별, 망막 식별, 얼굴 식별, 지문 식별 또는 뇌전도 기반 식별)하는 등을 위한 컴포넌트를 포함할 수 있다. 모션 컴포넌트(958)는 가속 센서 컴포넌트(예컨대, 가속도계), 중력 센서 컴포넌트, 회전 센서 컴포넌트(예컨대, 자이로스코프) 등을 포함할 수 있다. 환경 컴포넌트(960)는, 예를 들어, 조명 센서 컴포넌트(예컨대, 광도계), 온도 센서 컴포넌트(예컨대, 주위 온도를 검출하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예컨대, 기압계), 음향 센서 컴포넌트(예컨대, 배경 잡음을 검출하는 하나 이상의 마이크로폰), 근접 센서 컴포넌트(예컨대, 인근의 물체를 검출하는 적외선 센서), 가스 센서(예컨대, 안전을 위해 유해 가스의 농도를 검출하거나 공기 중의 오염 물질을 측정하는 가스 검출 센서) 또는 주변의 물리적 환경에 대응하는 표시, 측정 또는 신호를 제공할 수 있는 다른 컴포넌트를 포함할 수 있다. 포지션 컴포넌트(962)는 위치 센서 컴포넌트(예컨대, GPS(Global Positioning System) 수신기 컴포넌트), 고도 센서 컴포넌트(예컨대, 고도가 유추될 수 있도록 하는 공기압을 검출하는 고도계 또는 기압계), 방위 센서 컴포넌트(예컨대, 자력계) 등을 포함할 수 있다.
다양한 범위의 기술을 사용하여 통신이 구현될 수 있다. I/O 컴포넌트(950)는 각각 연결(982) 및 연결(972)을 통해 머신(900)을 네트워크(980) 또는 장치(970)에 연결하도록 동작하는 통신 컴포넌트(964)를 포함할 수 있다. 예를 들어, 통신 컴포넌트(964)는 네트워크 인터페이스 컴포넌트 또는 네트워크(980)와 인터페이스하는데 적합한 다른 장치를 포함할 수 있다. 추가적인 예시에서, 통신 컴포넌트(964)는 유선 통신 컴포넌트, 무선 통신 컴포넌트, 셀룰러 통신 컴포넌트, NFC(near field communication) 컴포넌트, Bluetooth® 컴포넌트(예컨대, Bluetooth® 로우 에너지), Wi-Fi® 컴포넌트, 및 다른 양식을 통해 통신을 제공하는 다른 통신 컴포넌트를 포함할 수 있다. 장치(970)는 다른 머신(900) 또는 임의의 다양한 주변 장치(예컨대, USB(Universal Serial Bus)를 통해 연결된 주변 장치)일 수 있다.
또한, 일부 구현예에서, 통신 컴포넌트(964)는 식별자를 검출하거나 식별자를 검출하도록 동작가능한 컴포넌트를 포함할 수 있다. 예를 들어, 통신 컴포넌트(964)는 RFID(radio frequency identification) 태그 리더 컴포넌트, NFC 스마트 태그 검출 컴포넌트, 광학 리더 컴포넌트(예컨대, UPC(Universal Product Code) 바코드와 같은 일차원 바코드, QR(Quick Response) 코드와 같은 다차원 바코드, Aztec 코드, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D 바코드, 및 다른 광학 코드), 음향 검출 컴포넌트(예컨대, 태깅된 오디오 신호를 식별하는 마이크로폰), 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 또한, 다양한 정보가 통신 컴포넌트(964)로부터 유도될 수 있는데, IP(Internet Protocol) 지오로케이션을 통한 위치, Wi-Fi® 신호 삼각측량을 통한 위치, 특정 위치를 나타낼 수 있는 NFC 비콘 신호 검출을 통한 위치 등이 그것이다.
전송 매체
다양한 예시적인 실시예에서, 네트워크(980)의 하나 이상의 부분은 애드혹(ad hoc) 네트워크, 인트라넷, 엑스트라넷, VPN(virtual private network), LAN(local area network), WLAN(wireless LAN), WAN(wide area network), WWAN(wireless WAN), MAN(metropolitan area network), 인터넷, 인터넷의 부분, PSTN(public switched telephone network)의 부분, POTS(plain old telephone service) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 다른 유형의 네트워크 또한 이러한 네트워크의 둘 이상의 조합일 수 있다. 예를 들어, 네트워크(980) 또는 네트워크(980)의 부분은 무선 또는 셀룰러 네트워크를 포함할 수 있고, 연결(982)은 CDMA(Code Division Multiple Access) 접속, GSM(Global System for Mobile communications) 접속 또는 다른 유형의 셀룰러 또는 무선 연결일 수 있다. 이러한 예시에서, 연결(982)은 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3G를 포함하는 3GPP(third Generation Partnership Project), 4G(fourth generation wireless) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준, 다양한 표준 설정 기관에 의해 정의된 다른 기술, 다른 장거리 프로토콜 또는 다른 데이터 전송 기술과 같은 임의의 다양한 유형의 데이터 전송 기술을 구현할 수 있다.
예시적인 실시예에서, 명령어(916)는 네트워크 인터페이스 장치(예를 들어, 통신 컴포넌트(964)에 포함된 네트워크 인터페이스 컴포넌트)를 거쳐 전송 매체를 사용하여 그리고 다수의 잘 알려진 전송 프로토콜 중 임의의 하나(예를 들어, HTTP(Hypertext Transfer Protocol))를 이용하여 네트워크(980)를 통해 전송되거나 수신될 수 있다. 이와 마찬가지로, 다른 예시적인 실시예에서, 명령어(916)는 장치(970)에 대한 연결(972)(예를 들어, 피어 투 피어 연결)을 통해 전송 매체를 사용하여 전송되거나 수신될 수 있다. 용어 "전송 매체"는 머신(900)에 의해 실행되는 명령어(916)를 저장, 인코딩, 또는 전달할 수 있는 임의의 무형의 매체를 포함하는 것으로 여겨져야 하며, 이러한 소프트웨어의 통신을 가능하게 하는 디지털 또는 아날로그 통신 신호 또는 다른 무형 매체를 포함한다.
삭제
언어
본 명세서 전반에 걸쳐, 복수의 인스턴스는 단일 인스턴스로 설명된 컴포넌트, 동작 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개별 동작이 별도의 동작으로 도시되고 기술되었지만, 개별 동작들 중 하나 이상은 동시에 수행될 수도 있고, 동작이 도시된 순서대로 수행될 것을 요구하는 것은 아니다. 예시적인 구성에서 별도의 컴포넌트로서 제시된 구조 및 기능은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 이와 마찬가지로, 단일 컴포넌트로서 나타낸 구조 및 기능은 개별 컴포넌트들로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 본 명세서의 주제의 범위 내에 있다.
본 발명의 청구대상에 관한 개요가 특정 예시적인 실시예들을 참조하여 설명되었으나, 다양한 수정 및 변경이 본 개시물의 실시예들에 관한 넓은 범위를 벗어나지 않으면서 이들 실시예들에 행해질 수 있다. 본 발명의 청구대상에 관한 이러한 실시예들은 본 명세서에서 단지 편의상 그리고 실제로 둘 이상이 개시되어 있는 경우 본 출원의 범주를 임의의 단일 개시물 또는 발명적 개념으로 자발적으로 제한하려는 의도 없이 "발명"이란 용어로 개별적으로 또는 집합적으로 지칭될 수 있다.
본 명세서에 도시된 실시예는 당업자가 개시된 교시를 실시할 수 있도록 충분히 상세하게 설명된다. 본 개시의 범위를 벗어나지 않고 구조적 및 논리적 대체 및 변경이 이루어질 수 있도록 다른 실시예가 사용되고 그로부터 도출될 수 있다. 따라서, 상세한 설명은 제한적인 의미로 여겨져서는 안 되며, 다양한 실시예의 범위는 청구 범위가 부여되는 균등 범위의 전체 범위와 함께 첨부된 특허청구범위에 의해서만 정의된다.
본원에 사용된 바와 같이, 용어 "또는"은 포괄적이거나 배타적인 의미 중 하나로 여겨질 수 있다. 더욱이, 본 명세서에서 단일 인스턴스로 설명된 리소스, 동작, 또는 구조에 대해 복수의 인스턴스가 제공될 수 있다. 추가적으로, 다양한 리소스, 동작, 모듈, 엔진, 및 데이터 저장소 사이의 경계는 다소 임의적이며, 특정 동작은 특정 예시적인 구성과 관련하여 설명된다. 기능의 다른 할당들이 계획되고 본 개시물의 다양한 실시 예의 범위 내에 있을 수 있다. 일반적으로, 예시적 구성들에서 별개의 리소스로서 나타낸 구조 및 기능은 조합된 구조 또는 리소스로서 구현될 수도 있다. 이와 마찬가지로, 단일 리소스로 나타낸 구조 및 기능은 별개의 리소스들로 구현될 수도 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 첨부된 특허청구범위에 의해 표현되는 본 개시물의 실시예의 범위 내에 있다. 따라서, 본 명세서 및 도면은 제한적인 의미라기보다는 예시적인 것으로 여겨져야 한다.
이하에서 열거되는 예들은 본 명세서에서 논의된 방법, 머신 판독가능 매체 및 시스템(예를 들어, 장치)의 다양한 예시적인 실시예를 정의한다.
실시예 1. 시스템으로서,
명령어들을 포함하는 메모리와,
동작들을 수행하도록 명령어들에 의해 구성되는 하나 이상의 프로세서를 포함하되,
이 동작들은
제1 이미지에 기초하여 개략적인 범주를 식별하는 동작과,
제1 이미지에 묘사된 아이템을 포함하는 경계 박스를 생성하는 동작과,
제1 이미지를 경계 박스에 대해 잘라내고 잘라낸 부분을 회전시킴으로써 제2 이미지를 생성하는 동작과,
제2 이미지에 기초하여, 개략적인 범주의 하위 범주인 세분화된 범주를 식별하는 동작을 포함한다.
실시예 2. 실시예 1의 시스템으로서, 동작들은
제1 이미지를 수신하는 동작과,
세분화된 범주에 기초하여 광고를 선택하는 동작과,
제1 이미지 및 광고의 디스플레이를 야기하는 동작을 더 포함한다.
실시예 3. 실시예 1 또는 실시예 2의 시스템으로서,
제1 이미지는 제1 사용자 계정과 연관되고,
제1 이미지와 광고의 디스플레이는 제2 사용자 계정에 대한 것이다.
실시예 4. 실시예 1 내지 3 중 어느 한 실시예의 시스템으로서,
제1 이미지에 묘사된 아이템을 포함하는 경계 박스를 생성하는 동작은
제1 이미지에 묘사된 아이템에 대한 마스크를 생성하는 동작과,
마스크에 대한 볼록 껍질(convex hull)를 생성하는 동작과,
볼록 껍질을 포함하는 경계 박스를 생성하는 동작을 포함한다.
실시예 5. 실시예 1 내지 4 중 어느 한 실시예의 시스템으로서,
세분화된 범주는 개략적인 범주에 대해 이용가능한 세분화된 범주의 세트로부터 선택되고,
동작들은
이용가능 세분화된 범주 각각에 대한 트레이닝 이미지 세트에 액세스하는 동작과,
이용가능 세분화된 범주 각각에 대한 검증 이미지 세트에 액세스하는 동작과,
트레이닝 이미지 세트 및 검증 이미지 세트로부터, 이용가능 세분화된 범주 각각에 대한 구별적 프래그먼트 세트(discriminative fragment set)를 식별하는 동작을 포함하는 동작들을 사용하여 개략적인 범주에 대한 프래그먼트 검출기 세트를 트레이닝하는 동작을 더 포함하고,
제2 이미지에 기초하여 세분화된 범주를 식별하는 동작은 개략적인 범주에 대한 트레이닝된 프래그먼트 검출기 세트에 제2 이미지를 제공하는 동작을 포함한다.
실시예 6. 실시예 5의 시스템으로서, 개략적인 범주에 대해 이용가능한 세분화된 범주 각각에 대해 구별적 프래그먼트 세트를 식별하는 동작은
개략적인 범주에 대해 이용가능한 세분화된 범주 각각에 대해,
세분화된 범주에 대한 트레이닝 이미지 세트로부터 프래그먼트를 추출하는 동작과,
세분화된 범주에 대한 검증 이미지 세트로부터 프래그먼트를 추출하는 동작을 포함한다.
실시예 7. 실시예 6의 시스템으로서, 이용가능 세분화된 범주 각각에 대해 구별적 프래그먼트 세트를 식별하는 동작은
이용가능 세분화된 범주 각각에 대해,
세분화된 범주에 대한 트레이닝 이미지 세트로부터 추출된 프래그먼트의 랜덤 서브세트를 선택하는 동작과,
세분화된 범주에 대한 검증 이미지 세트로부터 추출된 프래그먼트의 랜덤 서브세트를 선택하는 동작을 포함한다.
실시예 8. 실시예 1 내지 7 중 어느 한 실시예의 시스템으로서, 동작들은
클라이언트 장치로부터 제1 이미지를 수신하는 동작과,
세분화된 범주에 기초하여 이미지 세트를 식별하는 동작과,
이미지 세트가 클라이언트 장치에 디스플레이되게 하는 동작을 더 포함한다.
실시예 9. 실시예 8의 시스템으로서, 세분화된 범주에 기초하여 이미지 세트를 식별하는 동작은 세분화된 범주와 연관된 이미지를 식별하는 동작을 포함한다.
실시예 10. 실시예 8 또는 9의 시스템으로서, 세분화된 범주에 기초하여 이미지 세트를 식별하는 동작은 온라인 마켓플레이스에서 판매할 아이템의 이미지를 식별하는 동작을 포함한다.
실시예 11. 컴퓨터 구현 방법으로서,
제1 이미지에 기초하여 개략적인 범주를 식별하는 단계와,
제1 이미지에 묘사된 아이템을 포함하는 경계 박스를 생성하는 단계와,
제1 이미지를 경계 박스에 대해 잘라내고 잘라낸 부분을 회전시킴으로써 제2 이미지를 생성하는 단계와,
머신의 프로세서에 의해, 제2 이미지에 기초하여, 개략적인 범주의 하위 범주인 세분화된 범주를 식별하는 단계를 포함한다.
실시예 12. 실시예 11의 방법으로서,
제1 이미지를 수신하는 단계와,
세분화된 범주에 기초하여 광고를 선택하는 단계와,
제1 이미지 및 광고의 디스플레이를 야기하는 단계를 더 포함한다.
실시예 13. 실시예 11 또는 실시예 12의 방법으로서,
제1 이미지는 제1 사용자 계정과 연관되고,
제1 이미지와 광고의 디스플레이는 제2 사용자 계정에 대한 것이다.
실시예 14. 실시예 11 내지 13 중 어느 한 실시예의 방법으로서,
제1 이미지에 묘사된 아이템을 포함하는 경계 박스를 생성하는 단계는
제1 이미지에 묘사된 아이템에 대한 마스크를 생성하는 단계와,
마스크에 대한 볼록 껍질을 생성하는 단계와,
볼록 껍질을 포함하는 경계 박스를 생성하는 단계를 포함한다.
실시예 15. 실시예 11 내지 14 중 어느 한 실시예의 방법으로서,
세분화된 범주는 개략적인 범주에 대해 이용가능한 세분화된 범주의 세트로부터 선택되고,
방법은
이용가능 세분화된 범주 각각에 대한 트레이닝 이미지 세트에 액세스하는 동작과,
이용가능 세분화된 범주 각각에 대한 검증 이미지 세트에 액세스하는 동작과,
트레이닝 이미지 세트 및 검증 이미지 세트로부터, 이용가능 세분화된 범주 각각에 대한 구별적 프래그먼트 세트(discriminative fragment set)를 식별하는 동작을 포함하는 동작들을 사용하여 개략적인 범주에 대한 프래그먼트 검출기 세트를 트레이닝하는 단계를 더 포함하고,
새로운 이미지 내의 아이템의 세분화된 범주를 식별하는 단계는 개략적인 범주에 대한 트레이닝된 프래그먼트 검출기 세트에 제2 이미지를 제공하는 단계를 포함한다.
실시예 16. 실시예 15의 방법으로서, 개략적인 범주에 대해 이용가능한 세분화된 범주 각각에 대해 구별적 프래그먼트 세트를 식별하는 단계는
개략적인 범주에 대해 이용가능한 세분화된 범주 각각에 대해,
세분화된 범주에 대한 트레이닝 이미지 세트로부터 프래그먼트를 추출하는 단계와,
세분화된 범주에 대한 검증 이미지 세트로부터 프래그먼트를 추출하는 단계를 포함한다.
실시예 17. 실시예 16의 방법으로서, 이용가능 세분화된 범주 각각에 대해 구별적 프래그먼트 세트를 식별하는 단계는
이용가능 세분화된 범주 각각에 대해,
세분화된 범주에 대한 트레이닝 이미지 세트로부터 추출된 프래그먼트의 랜덤 서브세트를 선택하는 동작과,
세분화된 범주에 대한 검증 이미지 세트로부터 추출된 프래그먼트의 랜덤 서브세트를 선택하는 단계를 포함한다.
실시예 18. 실시예 11 내지 17 중 어느 한 실시예의 방법으로서,
클라이언트 장치로부터 제1 이미지를 수신하는 단계와,
세분화된 범주에 기초하여 이미지 세트를 식별하는 단계와,
이미지 세트가 클라이언트 장치에 디스플레이되게 하는 단계를 더 포함한다.
실시예 19. 실시예 18의 방법으로서, 세분화된 범주에 기초하여 이미지 세트를 식별하는 단계는 세분화된 범주와 연관된 이미지를 식별하는 단계를 포함한다.
실시예 20. 명령어를 포함하는 머신 판독가능 매체로서, 이 명령어는 머신의 프로세서에 의해 실행되는 경우 머신으로 하여금 실시예 11 내지 19 중 어느 한 실시예의 방법을 수행하게 한다.

Claims (20)

  1. 시스템으로서,
    명령어를 포함하는 메모리와,
    하나 이상의 프로세서를 포함하되,
    상기 명령어는 동작들을 수행하도록 상기 하나 이상의 프로세서에 의해 실행되고,
    상기 동작들은
    제1 이미지에 기초하여 개략적인 범주(coarse category)를 식별하는 동작과,
    상기 제1 이미지에 묘사된 아이템을 포함하는 경계 박스(bounding box)를 생성하는 동작과,
    상기 제1 이미지를 상기 경계 박스에 대해 잘라내고 상기 잘라낸 부분을 회전시킴으로써 제2 이미지를 생성하는 동작과,
    상기 제2 이미지에 기초하여, 상기 개략적인 범주의 하위 범주인 세분화된 범주(fine category)를 식별하는 동작을 포함하는
    시스템.
  2. 제1항에 있어서,
    상기 동작들은
    상기 제1 이미지를 수신하는 동작과,
    상기 세분화된 범주에 기초하여 광고를 선택하는 동작과,
    상기 제1 이미지 및 상기 광고의 디스플레이를 야기하는 동작을 더 포함하는
    시스템.
  3. 제2항에 있어서,
    상기 제1 이미지는 제1 사용자 계정과 연관되고,
    상기 제1 이미지와 상기 광고의 디스플레이는 제2 사용자 계정에 대한 것인
    시스템.
  4. 제1항에 있어서,
    상기 제1 이미지에 묘사된 아이템을 포함하는 상기 경계 박스를 생성하는 동작은
    상기 제1 이미지에 묘사된 상기 아이템에 대한 마스크를 생성하는 동작과,
    상기 마스크에 대한 볼록 껍질(convex hull)을 생성하는 동작과,
    상기 볼록 껍질을 포함하는 경계 박스를 생성하는 동작을 포함하는
    시스템.

  5. 제1항에 있어서,
    상기 세분화된 범주는 상기 개략적인 범주에 대해 이용가능한 세분화된 범주 세트로부터 선택되고,
    상기 동작들은
    상기 이용가능한 세분화된 범주 각각에 대한 트레이닝 이미지 세트(training set of images)에 액세스하는 동작과,
    상기 이용가능한 세분화된 범주 각각에 대한 검증 이미지 세트(validation set of images)에 액세스하는 동작과,
    상기 트레이닝 이미지 세트 및 상기 검증 이미지 세트로부터, 상기 이용가능한 세분화된 범주 각각에 대한 구별적 프래그먼트 세트(discriminative fragment set)를 식별하는 동작을 포함하는 동작들을 사용하여 상기 개략적인 범주에 대한 프래그먼트 검출기 세트를 트레이닝하는 동작을 더 포함하고,
    상기 제2 이미지에 기초하여 상기 세분화된 범주를 식별하는 동작은 상기 개략적인 범주에 대한 상기 트레이닝된 프래그먼트 검출기 세트에 상기 제2 이미지를 제공하는 동작을 포함하는
    시스템.
  6. 제5항에 있어서,
    상기 개략적인 범주에 대해 이용가능한 세분화된 범주 각각에 대한 상기 구별적 프래그먼트 세트를 식별하는 동작은
    상기 개략적인 범주에 대해 이용가능한 세분화된 범주 각각에 대해,
    상기 세분화된 범주에 대한 상기 트레이닝 이미지 세트로부터 프래그먼트를 추출하는 동작과,
    상기 세분화된 범주에 대한 상기 검증 이미지 세트로부터 프래그먼트를 추출하는 동작을 포함하는
    시스템.
  7. 제6항에 있어서,
    상기 이용가능한 세분화된 범주 각각에 대한 구별적 프래그먼트 세트를 식별하는 동작은
    상기 이용가능한 세분화된 범주 각각에 대해,
    상기 세분화된 범주에 대한 상기 트레이닝 이미지 세트로부터 추출된 프래그먼트의 랜덤 서브세트를 선택하는 동작과,
    상기 세분화된 범주에 대한 상기 검증 이미지 세트로부터 추출된 프래그먼트의 랜덤 서브세트를 선택하는 동작을 포함하는
    시스템.
  8. 제1항에 있어서,
    상기 동작들은
    클라이언트 장치로부터 상기 제1 이미지를 수신하는 동작과,
    상기 세분화된 범주에 기초하여 이미지 세트를 식별하는 동작과,
    상기 이미지 세트가 상기 클라이언트 장치에 디스플레이되게 하는 동작을 더 포함하는
    시스템.
  9. 제8항에 있어서,
    상기 세분화된 범주에 기초하여 이미지 세트를 식별하는 동작은 상기 세분화된 범주와 연관된 이미지를 식별하는 동작을 포함하는
    시스템.
  10. 제8항에 있어서,
    상기 세분화된 범주에 기초하여 상기 이미지 세트를 식별하는 동작은 온라인 마켓플레이스에서 판매할 아이템의 이미지를 식별하는 동작을 포함하는
    시스템.
  11. 컴퓨터 구현 방법으로서,
    제1 이미지에 기초하여 개략적인 범주를 식별하는 단계와,
    상기 제1 이미지에 묘사된 아이템을 포함하는 경계 박스를 생성하는 단계와,
    상기 제1 이미지를 경계 박스에 대해 잘라내고 상기 잘라낸 부분을 회전시킴으로써 제2 이미지를 생성하는 단계와,
    머신의 프로세서에 의해, 상기 제2 이미지에 기초하여, 상기 개략적인 범주의 하위 범주인 세분화된 범주를 식별하는 단계를 포함하는
    컴퓨터 구현 방법.
  12. 제11항에 있어서,
    상기 제1 이미지를 수신하는 단계와,
    상기 세분화된 범주에 기초하여 광고를 선택하는 단계와,
    상기 제1 이미지 및 상기 광고의 디스플레이를 야기하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  13. 제12항에 있어서,
    상기 제1 이미지는 제1 사용자 계정과 연관되고,
    상기 제1 이미지와 상기 광고의 디스플레이는 제2 사용자 계정에 대한 것인
    컴퓨터 구현 방법.
  14. 제11항에 있어서,
    상기 제1 이미지에 묘사된 아이템을 포함하는 상기 경계 박스를 생성하는 단계는
    상기 제1 이미지에 묘사된 상기 아이템에 대한 마스크를 생성하는 단계와,
    상기 마스크에 대한 볼록 껍질을 생성하는 단계와,
    상기 볼록 껍질을 포함하는 경계 박스를 생성하는 단계를 포함하는
    컴퓨터 구현 방법.
  15. 제11항에 있어서,
    상기 세분화된 범주는 상기 개략적인 범주에 대해 이용가능한 세분화된 범주 세트로부터 선택되고,
    상기 방법은, 상기 이용가능한 세분화된 범주 각각에 대한 트레이닝 이미지 세트에 액세스하는 동작과, 상기 이용가능한 세분화된 범주 각각에 대한 검증 이미지 세트에 액세스하는 동작과, 상기 트레이닝 이미지 세트 및 상기 검증 이미지 세트로부터, 상기 이용가능한 세분화된 범주 각각에 대한 구별적 프래그먼트 세트(discriminative fragment set)를 식별하는 동작을 포함하는 동작들을 사용하여 상기 개략적인 범주에 대한 프래그먼트 검출기 세트를 트레이닝하는 단계를 더 포함하고,
    상기 제2 이미지에 기초하여 상기 세분화된 범주를 식별하는 단계는 상기 개략적인 범주에 대한 상기 트레이닝된 프래그먼트 검출기 세트에 상기 제2 이미지를 제공하는 단계를 포함하는
    컴퓨터 구현 방법.
  16. 제15항에 있어서,
    상기 개략적인 범주에 대해 이용가능한 세분화된 범주 각각에 대한 구별적 프래그먼트 세트를 식별하는 단계는
    상기 개략적인 범주에 대해 이용가능한 세분화된 범주 각각에 대해,
    상기 세분화된 범주에 대한 상기 트레이닝 이미지 세트로부터 프래그먼트를 추출하는 단계와,
    상기 세분화된 범주에 대한 상기 검증 이미지 세트로부터 프래그먼트를 추출하는 단계를 포함하는
    컴퓨터 구현 방법.
  17. 제16항에 있어서,
    상기 이용가능한 세분화된 범주 각각에 대한 상기 구별적 프래그먼트 세트를 식별하는 단계는
    상기 이용가능한 세분화된 범주 각각에 대해,
    상기 세분화된 범주에 대한 상기 트레이닝 이미지 세트로부터 추출된 프래그먼트의 랜덤 서브세트를 선택하는 단계와,
    상기 세분화된 범주에 대한 상기 검증 이미지 세트로부터 추출된 프래그먼트의 랜덤 서브세트를 선택하는 단계를 포함하는
    컴퓨터 구현 방법.
  18. 제11항에 있어서,
    클라이언트 장치로부터 상기 제1 이미지를 수신하는 단계와,
    상기 세분화된 범주에 기초하여 이미지 세트를 식별하는 단계와,
    상기 이미지 세트가 상기 클라이언트 장치에 디스플레이되게 하는 단계를 더 포함하는
    컴퓨터 구현 방법.

  19. 제18항에 있어서,
    상기 세분화된 범주에 기초하여 상기 이미지 세트를 식별하는 단계는 상기 세분화된 범주와 연관된 이미지를 식별하는 단계를 포함하는
    컴퓨터 구현 방법.
  20. 머신 판독가능 매체로서,
    명령어를 포함하되,
    상기 명령어는 머신의 프로세서에 의해 실행되는 경우 상기 머신으로 하여금 청구항 제11항 내지 제19항 중 어느 한 항의 컴퓨터 구현 방법을 수행하게 하는
    머신 판독가능 매체.
KR1020177023101A 2015-01-19 2016-01-07 세분화된 범주화 KR102039235B1 (ko)

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
KR1020197031355A Division KR102132575B1 (ko) 2015-01-19 2016-01-07 세분화된 범주화

Publications (2)

Publication Number Publication Date
KR20170105094A KR20170105094A (ko) 2017-09-18
KR102039235B1 true KR102039235B1 (ko) 2019-10-31

Family

ID=56408107

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197031355A KR102132575B1 (ko) 2015-01-19 2016-01-07 세분화된 범주화
KR1020177023101A KR102039235B1 (ko) 2015-01-19 2016-01-07 세분화된 범주화

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197031355A KR102132575B1 (ko) 2015-01-19 2016-01-07 세분화된 범주화

Country Status (5)

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

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030058257A1 (en) 2001-08-11 2003-03-27 Yin Jia Hong Applying identifying codes to stationary images
US20030113035A1 (en) 2001-12-19 2003-06-19 Eastman Kodak Company Method and system for compositing images to produce a cropped image
US20070081712A1 (en) 2005-10-06 2007-04-12 Xiaolei Huang System and method for whole body landmark detection, segmentation and change quantification in digital images
US20120095982A1 (en) * 2000-11-13 2012-04-19 Lennington John W Digital Media Recognition Apparatus and Methods

Family Cites Families (25)

* 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
GB9807097D0 (en) 1998-04-02 1998-06-03 Discreet Logic Inc Processing image data
US6873380B2 (en) 2001-07-12 2005-03-29 Intel Corporation Providing optical elements over emissive displays
US20050058350A1 (en) * 2003-09-15 2005-03-17 Lockheed Martin Corporation System and method for object identification
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 三星电子株式会社 图像识别设备及方法
US20120238254A1 (en) * 2011-03-17 2012-09-20 Ebay Inc. Video processing system for identifying items in video frames
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120095982A1 (en) * 2000-11-13 2012-04-19 Lennington John W Digital Media Recognition Apparatus and Methods
US20030058257A1 (en) 2001-08-11 2003-03-27 Yin Jia Hong Applying identifying codes to stationary images
US20030113035A1 (en) 2001-12-19 2003-06-19 Eastman Kodak Company Method and system for compositing images to produce a cropped image
US20070081712A1 (en) 2005-10-06 2007-04-12 Xiaolei Huang System and method for whole body landmark detection, segmentation and change quantification in digital images

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Efstratios Gavves 외 4명, "Local Alignments for Fine-Grained Categorization", International Journal of Computer Vision, vol. 111, Issue 2, pp. 191-212, 19 July 2014(온라인 공개).*
Mayank Juneja 외 3명, "Blocks that Shout: Distinctive Parts for Scene Classification", 2013 IEEE Conference on Computer Vision and Pattern Recognition, pp. 923-930, 23 June 2013.*
Omkar M Parkhi 외 3명, "Cats and Dogs", 2012 IEEE Conference on Computer Vision and Pattern Recognition, pp. 3498-3505, 16 June 2012.
Omkar M Parkhi 외 3명, "The Truth About Cats and Dogs", 2011 IEEE International Conference on Computer Vision, pp. 1427-1434, 6 November 2011.

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
CN107592839B (zh) 2020-03-20
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
KR20190122907A (ko) 2019-10-30
CN111582297A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
KR102039235B1 (ko) 세분화된 범주화
US11222246B2 (en) Generating a digital image using a generative adversarial network
US11120478B2 (en) Joint-based item recognition
US20240127302A1 (en) Document optical character recognition
KR102032038B1 (ko) 이미지로 묘사된 아이템 인식
US11861999B2 (en) Object detection based on object relation
US9965704B2 (en) Discovering visual concepts from weakly labeled image collections
US10839007B1 (en) Generating a probability of music
KR102224757B1 (ko) 확인된 특성을 갖는 아이템을 결정하는 기법
CN118247632A (zh) 用于图像搜索的方法、系统以及存储指令的计算机可读介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent