KR102244748B1 - Systems and methods for image classification by correlating contextual cues with images - Google Patents

Systems and methods for image classification by correlating contextual cues with images Download PDF

Info

Publication number
KR102244748B1
KR102244748B1 KR1020167005447A KR20167005447A KR102244748B1 KR 102244748 B1 KR102244748 B1 KR 102244748B1 KR 1020167005447 A KR1020167005447 A KR 1020167005447A KR 20167005447 A KR20167005447 A KR 20167005447A KR 102244748 B1 KR102244748 B1 KR 102244748B1
Authority
KR
South Korea
Prior art keywords
image
images
module
sample set
classifier
Prior art date
Application number
KR1020167005447A
Other languages
Korean (ko)
Other versions
KR20160040633A (en
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 KR20160040633A publication Critical patent/KR20160040633A/en
Application granted granted Critical
Publication of KR102244748B1 publication Critical patent/KR102244748B1/en

Links

Images

Classifications

    • G06K9/00684
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
    • 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
    • G06K9/6256
    • G06K9/72
    • G06K9/726
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/35Categorising the entire scene, e.g. birthday party or wedding scene
    • 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/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • G06V30/274Syntactic or semantic context, e.g. balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/913Multimedia
    • Y10S707/915Image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

이미지들의 샘플 세트가 수신된다. 샘플 세트에서 각각의 이미지는 하나 이상의 소셜 큐들과 연관될 수 있다. 이미지와 관련된 하나 이상의 소셜 큐에 기초하여 샘플 세트 내의 각각의 이미지의 상관관계는 이미지 클래스로 점수화된다. 점수화에 기초하여, 분류기를 트레이닝하는 이미지들의 트레이닝 세트가 샘플 세트로부터 결정된다. 일실시예로, 이미지 클래스로 이미지들의 평가 세트가 상관되는 정도가 결정된다. 결정은 이미지들의 평가 세트 중 최상위 점수의 서브세트를 순위화하는 것을 포함할 수 있다.A sample set of images is received. Each image in the sample set may be associated with one or more social cues. The correlation of each image in the sample set based on one or more social cues associated with the image is scored as an image class. Based on the scoring, a training set of images training the classifier is determined from the sample set. In one embodiment, the degree to which an evaluation set of images is correlated with an image class is determined. Determining may include ranking a subset of the highest score among the evaluation set of images.

Description

컨텍스트 큐를 이미지와 상관시켜 이미지를 분류하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR IMAGE CLASSIFICATION BY CORRELATING CONTEXTUAL CUES WITH IMAGES}System and method for classifying images by correlating context queues with images {SYSTEMS AND METHODS FOR IMAGE CLASSIFICATION BY CORRELATING CONTEXTUAL CUES WITH IMAGES}

기술 분야는 소셜 네트워크 분야에 관한 것이다. 더욱 특히, 기술 분야는 소셜 네트워크에서의 이미지 분류 기술에 관한 것이다.The technical field is about the field of social networks. More particularly, the technical field relates to image classification techniques in social networks.

소셜 네트워크는 구성원들을 서로 연결해주는 상호작용 및 컨텐츠가 풍부한 온라인 커뮤니티를 제공할 수 있다. 소셜 네트워크의 구성원들은 그들이 서로 어떻게 관련되는지를 표시할 수 있다. 예컨대, 소셜 네트워크의 구성원들은 그들이 친구, 가족 구성원, 사업 동료, 또는 서로의 팔로워라고 표시할 수 있고, 구성원들은 일부 다른 관계를 서로에게 지정할 수 있다. 소셜 네트워크는 구성원들이 서로 메시징하거나 메시지를 온라인 커뮤니티에 게시하도록 할 수 있다.Social networks can provide an online community rich in interactions and content that connects members with each other. Members of the social network can indicate how they relate to each other. For example, members of a social network may indicate that they are friends, family members, business colleagues, or followers of each other, and members may assign some other relationship to each other. Social networks can allow members to message each other or post messages to an online community.

소셜 네트워크는 또한, 구성원들이 서로 컨텐츠를 공유하도록 할 수 있다. 예컨대, 구성원들은 다수의 플랫폼에 걸쳐 열람될 수 있는 상호작용형 피드(interactive feed)를 포함하는 하나 이상의 페이지를 생성하거나 사용할 수 있다. 페이지는, 구성원이 소셜 네트워크의 특정 구성원들과 공유하거나 일반적으로 소셜 네트워크에 발행(publish)하기를 희망하는 이미지, 비디오, 및 다른 컨텐츠를 포함할 수 있다. 구성원들은 또한, 다른 방식으로 소셜 네트워크와 컨텐츠를 공유할 수 있다. 예컨대, 이미지의 경우, 구성원들은 이미지 보드에 이미지들을 발행하거나 온라인 커뮤니티에 의한 검색에 이미지들이 이용가능하게 만들 수 있다.Social networks can also allow members to share content with each other. For example, members may create or use one or more pages containing interactive feeds that can be viewed across multiple platforms. Pages may contain images, videos, and other content that a member wishes to share with certain members of the social network or generally wish to publish on the social network. Members can also share content with social networks in different ways. For example, in the case of images, members may publish images on an image board or make the images available for search by an online community.

본 발명의 내용 중에 포함되어 있다.It is included in the content of the present invention.

시스템은 적어도 하나의 프로세서 및 프로세서가 이미지들의 샘플 세트의 수신을 수행하게끔 명령하도록 구성된 명령들을 저장하는 메모리를 포함할 수 있고, 샘플 세트에서 각각의 이미지는 하나 이상의 소셜 큐들(social cues)과 관련된다. 샘플 세트에서 각각의 이미지의 이미지 클래스에 대한 상관관계는, 이미지와 관련된 하나 이상의 소셜 큐들에 기초하여 점수화된다. 점수에 기초하여, 분류기(classifier)를 트레이닝(train)하는 이미지들의 트레이닝 세트가 샘플 세트로부터 결정될 수 있다.The system may include at least one processor and a memory storing instructions configured to instruct the processor to perform reception of a sample set of images, each image in the sample set associated with one or more social cues. . The correlation for the image class of each image in the sample set is scored based on one or more social cues associated with the image. Based on the score, a training set of images to train the classifier may be determined from the sample set.

일부 실시예로, 이미지 클래스가 특정될 수 있다. 일부 실시예로, 결정은 점수에 기초하여 샘플 세트로부터 각각의 이미지를 순위화(rank)하는 것을 포함할 수 있다. 결정은 이미지들의 샘플 세트 중 최상위 점수의 서브세트를 선택하는 것을 포함할 수 있다. 최상위 점수의 서브세트가 이미지들의 트레이닝 세트일 수 있다.In some embodiments, an image class may be specified. In some embodiments, the determination may include ranking each image from the set of samples based on a score. Determining may include selecting a subset of the highest score among the sample set of images. The subset of the highest score may be the training set of images.

다양한 실시예로, 분류기는 이미지들의 트레이닝 세트에 기초하여 트레이닝될 수 있다. 이미지 클래스와 관련된 시각적 패턴 템플릿(template)이 생성될 수 있다. 분류기는 일부 실시예로, 시각적 단어 가방식(bag of visual words) 이미지 분류 기술 또는 신경 네트워크 이미지 분류 기술을 사용하도록 구성될 수 있다.In various embodiments, the classifier may be trained based on a training set of images. A visual pattern template related to the image class may be created. The classifier may be configured to use a bag of visual words image classification technique or a neural network image classification technique, in some embodiments.

일부 실시예로, 이미지들의 평가 세트가 이미지 클래스와 상관되는 정도가 결정될 수 있다. 이미지들의 평가 세트는 이미지들의 샘플 세트와 상이할 수 있다. 이미지들의 평가 세트는 이미지들의 샘플 세트보다 큰 이미지들의 세트를 포함할 수 있다.In some embodiments, the degree to which an evaluation set of images correlates with an image class may be determined. The evaluation set of images may be different from the sample set of images. The evaluation set of images may comprise a set of images that are larger than the sample set of images.

다양한 실시예로, 이미지들의 평가 세트의 각각의 이미지의, 이미지 클래스와 관련된 시각적 패턴 템플릿에 대한 상관관계는 점수화될 수 있다. 평가 세트의 각각의 이미지는, 이미지들의 평가 세트의 각각의 이미지의 점수화된 상관관계에 기초하여 순위화될 수 있다. 이미지들의 평가 세트 중 최상위 점수의 서브세트가 이미지 클래스와 관련될 수 있다.In various embodiments, a correlation of each image of a rating set of images to a visual pattern template associated with an image class may be scored. Each image in the rating set may be ranked based on the scored correlation of each image in the rating set of images. A subset of the highest score among the evaluation set of images may be associated with the image class.

일부 실시예로, 하나 이상의 소셜 큐들은 하나 이상의 이미지 태그를 포함할 수 있다. 이미지와 관련된 하나 이상의 이미지 태그의 총 개수에서 특정 이미지 태그의 인스턴스들의 개수가 결정될 수 있다.In some embodiments, one or more social cues may include one or more image tags. The number of instances of a specific image tag may be determined from the total number of one or more image tags related to an image.

일부 실시예로, 하나 이상의 소셜 큐들은: 이미지들의 샘플 세트 중 하나의 이미지와 관련된 위치 데이터; 또는 이미지들의 샘플 세트 중 상기 이미지의 업로더, 태거(tagger), 또는 소유자의 신원 중 하나 이상을 포함할 수 있다. 다양한 실시예로, 하나 이상의 소셜 큐들은 소셜 네트워킹 시스템에 의해 수신될 수 있다.In some embodiments, the one or more social cues may include: location data associated with an image of a sample set of images; Alternatively, one or more of the image uploader, tagger, or the identity of the owner may be included in the sample set of images. In various embodiments, one or more social cues may be received by a social networking system.

컴퓨터로 구현되는 방법은, 컴퓨터 시스템에 의해 이미지들의 샘플세트를 수신하는 것을 포함할 수 있고, 샘플 세트에서 각각의 이미지는 하나 이상의 소셜 큐들와 관련된다. 방법은, 컴퓨터 시스템에 의해, 이미지와 관련되는 하나 이상의 소셜 큐들에 기초하여 샘플 세트의 각각의 이미지와 이미지 클래스의 상관관계(correlation)를 점수화하는 것을 포함할 수 있다. 방법은 또한, 컴퓨터 시스템에 의해, 점수에 기초하여 분류기를 트레이닝하는 이미지들의 트레이닝 세트를 샘플 세트로부터 결정하는 것을 포함할 수 있다.The computer-implemented method may include receiving a sample set of images by a computer system, wherein each image in the sample set is associated with one or more social cues. The method may include scoring, by a computer system, a correlation of an image class with each image in the sample set based on one or more social cues associated with the image. The method may also include determining, by the computer system, a training set of images that train the classifier based on the score, from the sample set.

컴퓨터 저장 매체는, 실행시 컴퓨터 시스템이 이미지들의 샘플 세트를 수신하는 것을 포함하는 컴퓨터로 구현되는 방법을 수행하도록 하는 컴퓨터-실행가능한 명령을 저장하며, 샘플 세트에서 각각의 이미지는 하나 이상의 소셜 큐들와 관련된다. 방법은, 이미지와 관련된 하나 이상의 소셜 큐들에 기초하여 샘플 세트의 각각의 이미지와 이미지 클래스 간의 상관관계를 점수화하는 것을 포함할 수 있다. 방법은 또한, 점수에 기초하여 분류기를 트레이닝하는 이미지들의 트레이닝 세트를 샘플 세트로부터 결정하는 것을 포함할 수 있다.The computer storage medium stores computer-executable instructions that, when executed, cause a computer system to perform a computer-implemented method comprising receiving a sample set of images, wherein each image in the sample set includes one or more social cues and It is related. The method may include scoring a correlation between the image class and each image in the sample set based on one or more social cues associated with the image. The method may also include determining from the sample set a training set of images that train the classifier based on the score.

다른 특징 및 실시예들은 첨부되는 도면 및 이하의 상세한 설명으로부터 자명해질 것이다.Other features and embodiments will become apparent from the accompanying drawings and the detailed description below.

본 발명의 내용 중에 포함되어 있다.It is included in the content of the present invention.

도 1은 일부 실시예에 따른, 컨텍스트 이미지 분류 시스템(contextual image classification system)의 예를 도시한다.
도 2a는 일부 실시예에 따른, 이미지 분류 모듈의 예를 도시한다.
도 2b는 일부 실시예에 따른, 이미지 분류 모듈의 예를 도시한다.
도 3은 일부 실시예에 따른, 이미지 분류 트레이닝 모듈의 예를 도시한다.
도 4는 일부 실시예에 따른, 이미지 분류 평가 모듈의 예를 도시한다.
도 5는 일부 실시예에 따른, 분류기의 예를 도시한다.
도 6은 일부 실시예에 따른, 이미지를 분류하기 위한 프로세스의 예를 도시한다.
도 7은 일부 실시예에 따른, 분류기를 트레이닝하기 위한 프로세스의 예를 도시한다.
도 8은 일부 실시예에 따른, 이미지를 분류하기 위한 프로세스의 예를 도시한다.
도 9는 일부 실시예에 따른, 이미지들의 그룹에 적용되는 컨텍스트적으로(contextually) 생성된 이미지 필터들의 미리보기(preview)의 예를 도시한다.
도 10은 일부 실시예에 따른, 이미지들의 그룹에 적용된 컨텍스트적으로 생성된 이미지 필터의 미리보기의 예를 도시한다.
도 11은 일부 실시예에 따른, 소셜 네트워킹 시스템 내의 컨텍스트 이미지 분류 시스템의 네트워크 다이어그램의 예를 도시한다.
도 12는 일부 실시예에 따른, 본 명세서에 기술된 하나 이상의 실시예를 구현하는데 사용될 수 있는 컴퓨터 시스템의 예를 도시한다.
도면들은 오로지 예시적인 목적을 위해 본 발명의 다양한 실시예들을 도시하며, 도면들은 같은 구성요소를 식별하기 위해 같은 참조 번호를 사용한다. 통상의 기술자는 다음의 설명으로부터 도면들에 도시된 구조들 및 방법들의 대안적 실시예가 본 명세서에 기술된 발명의 원리로부터 벗어남이 없이 이용될 수 있음을 쉽게 인식할 것이다.
1 shows an example of a contextual image classification system, according to some embodiments.
2A shows an example of an image classification module, according to some embodiments.
2B shows an example of an image classification module, according to some embodiments.
3 shows an example of an image classification training module, according to some embodiments.
4 illustrates an example of an image classification evaluation module, according to some embodiments.
5 shows an example of a classifier, according to some embodiments.
6 shows an example of a process for classifying an image, according to some embodiments.
7 shows an example of a process for training a classifier, in accordance with some embodiments.
8 shows an example of a process for classifying an image, according to some embodiments.
9 shows an example of a preview of contextually generated image filters applied to a group of images, according to some embodiments.
10 shows an example of a preview of a contextually generated image filter applied to a group of images, according to some embodiments.
11 shows an example of a network diagram of a context image classification system in a social networking system, in accordance with some embodiments.
12 shows an example of a computer system that may be used to implement one or more embodiments described herein, in accordance with some embodiments.
The drawings show various embodiments of the present invention for illustrative purposes only, and the drawings use the same reference numerals to identify the same elements. One of ordinary skill in the art will readily appreciate from the following description that alternative embodiments of structures and methods shown in the figures may be used without departing from the principles of the invention described herein.

컨텍스트 큐를 상관시키는 것에 의한 이미지 분류Image classification by correlating context queues

소셜 네트워킹 시스템은 컨텐츠를 생성하고 친구들과 공유하는 능력을 사용자들에게 제공할 수 있다. 소셜 네트워킹 시스템의 사진-공유 서비스의 사용자들은 그들의 모바일 전화에서 이미지(예컨대, 정지 이미지, 밈(meme)), 비디오, 또는 상호작용형 컨텐츠를 캡쳐하고 컨텐츠를 그들의 온라인 친구들과 공유하는 것을 즐길 수 있다. 유사하게, 사용자들은 예컨대, 그들의 홈페이지에 상호작용형 피드를 업데이트함으로써 그들의 친구들과 컨텐츠를 공유하는 것을 즐길 수 있다. The social networking system can provide users with the ability to create content and share it with friends. Users of the social networking system's photo-sharing service can enjoy capturing images (e.g., still images, memes), videos, or interactive content from their mobile phones and sharing the content with their online friends. . Similarly, users can enjoy sharing content with their friends, for example by updating an interactive feed on their home page.

소셜 네트워킹 시스템은 또한, 컨텐츠의 아이템에 관한 정보 또는 컨텐츠에 관한 속성을 표시하거나, 식별하거나, 카테고리화하거나, 라벨링하거나, 기술하거나, 또는 제공하는 능력을 제공 또는 지원할 수 있다. 이러한 정보를 표시하는 한가지 방법은 컨텐츠 또는 그것의 속성의 대상물을 식별할 수 있거나 아니면 관련시킬 수 있는 태그를 통하는 것이다. 이러한 정보는 표시하는 다른 방법은 업로드의 위치, 또는 컨텐츠가 어디에서 캡쳐되었는지를 식별하기 위해 사용자가 업로드하는 컨텐츠의 GPS(global positioning system) 좌표를 통하는 것이다. 본 명세서에서 더 상세히 기술될 것처럼, 소셜 네트워킹 시스템에서 컨텐츠에 관한 정보를 표시하기 위한 많은 다른 방법들이 있다. 태그(예컨대, 해시태그 또는 다른 메타데이터 태그) 및 GPS 시스템 좌표를 포함하는 이러한 많은 표시자는 시각적이지 않으며, 컨텐츠에서 시각적 데이터의 자동화된 분석에 기초하지 않는다.The social networking system may also provide or support the ability to display, identify, categorize, label, describe, or provide information about an item of content or an attribute about the content. One way to display this information is through tags that can identify or relate to the object of the content or its attributes. Another way to display this information is through the location of the upload, or through global positioning system (GPS) coordinates of the content that the user is uploading to identify where the content was captured. As will be described in more detail herein, there are many different methods for presenting information about content in a social networking system. Many of these indicators, including tags (eg, hashtags or other metadata tags) and GPS system coordinates, are not visual and are not based on automated analysis of visual data in the content.

특정 상황에서, 비시각적 표시자는 주관적이거나 잠재적으로 오인의 소지가 있을 수 있다. 예컨대, 컨텐츠 생성자가 그의 또는 그녀 자신의 컨텐츠에 적용하기 위해 선택한 태그들은 컨텐츠 생성자의 관점에서는 컨텐츠의 대상물을 기술할 수 있지만, 태그들은 다른 사람들의 관점에서는 잘못 기술하고 있거나 심지어는 관련이 없을 수 있다. 예컨대, 스스로를 할로윈에 캣우먼으로 차려입은 사진을 게시하는 사용자는, 사진이 가정에서의 집 고양이를 포함하지 않음에도 그 사진을 "#cat"으로 태그할 수 있다. "Paris"라고 명명된 개의 사진을 게시하는 사용자는, 사진이 프랑스 파리를 묘사하지 않음에도 그 사진을 태그 "#paris"로 태그할 수 있다. Super Bowl Sunday에 뉴올리언스의 Super Bowl에 그의 가족을 캡쳐한 이미지를 게시하는 사용자는, 이미지들이 Super Bowl에서 캡쳐되었음을 표시하는 GPS 좌표 및/또는 타임 스탬프를 가질 수 있지만, 이미지들 자체의 컨텐츠는 풋볼 경기와 관련되지 않을 수 있다.In certain circumstances, non-visual indicators may be subjective or potentially misleading. For example, tags selected by the content creator to apply to his or her own content may describe the object of the content from the content creator's point of view, but the tags may be misrepresented or even irrelevant from the perspective of others. . For example, a user who posts a picture of himself dressed as a catwoman on Halloween can tag the picture as "#cat" even though the picture does not include a house cat at home. A user posting a photo of a dog named "Paris" can tag the photo with the tag "#paris" even though the photo does not depict Paris, France. A user posting images of his family captured in the Super Bowl in New Orleans on Super Bowl Sunday may have GPS coordinates and/or timestamps indicating that the images were captured in the Super Bowl, but the content of the images themselves is football. It may not be related to the game.

비시각적 표시자의 주관성은 소셜 네트워킹 시스템의 사용자들이 풍부하게 다양한 컨텐츠를 창의적으로 표현하고 공유하도록 돕지만, 비시각적 표시자의 주관성은 종종 사진과 같은 사용자가-업로드한 이미지들을 검색하는 것을 어렵게 만든다. 예컨대, "고양이"에 대해 소셜 네트워킹 시스템에 게시된 이미지들을 검색하려는 시도는 할로윈에 캣우먼 복장을 입은 사용자의 이미지를 나타내 보일 수 있다. 프랑스 파리에서의 에펠탑의 이미지에 대한 그래픽 검색을 수행하려는 시도는 "Paris"라고 이름지어진 개의 이미지로 이어질 수 있다. Super Bowl 사진을 검색하려는 시도는 풋볼 경기의 1차적 설명을 찾는 사람에게 높은 관련성이 없을 수 있는 팬의 가족의 개인적인 사진들을 나타내 보일 수 있다. 어느 정도, 이러한 예들에서 이미지들과 관련된 비시각적 표시자는, 그들이 관련된 이미지의 컨텐츠를 정확하게 반영하지 않을 수 있다는 점에서 "노이즈(noisy)"가 된다. 소셜 네트워킹 시스템에서 사용자-업로드된 컨텐츠를 정확하게 검색하는 것이 바람직할 수 있다.The subjectivity of non-visual indicators helps users of social networking systems to creatively express and share a wide variety of content, but the subjectivity of non-visual indicators often makes it difficult to search for user-uploaded images such as photographs. For example, an attempt to search for images posted on a social networking system for a "cat" may reveal an image of a user dressed as a catwoman on Halloween. An attempt to conduct a graphical search for an image of the Eiffel Tower in Paris, France, could lead to an image of a dog named "Paris". Attempts to search for Super Bowl photos may reveal personal photos of a fan's family that may not be highly relevant to anyone looking for a primary description of a football match. To some extent, non-visual indicators associated with images in these examples become "noisy" in that they may not accurately reflect the content of the associated image. It may be desirable to accurately search for user-uploaded content in a social networking system.

도 1은 일부 실시예에 따른, 컨텍스트 이미지 분류 시스템(102)의 예를 도시한다. 컨텍스트 이미지 분류 시스템(102)은 소셜 네트워킹 시스템으로 통합될 수 있고, 그 예가 도 11에 제공된다. 도 1의 예에서, 컨텍스트 이미지 분류 시스템(102)은 이미지 분류 모듈(104) 및 이미지 애플리케이션 모듈(106)을 포함할 수 있다.1 shows an example of a context image classification system 102, in accordance with some embodiments. The context image classification system 102 may be integrated into a social networking system, an example of which is provided in FIG. 11. In the example of FIG. 1, the context image classification system 102 may include an image classification module 104 and an image application module 106.

이미지 분류 모듈(104)은, 컨텐츠 및 컨텐츠의 시각적 속성과 관련된 컨텍스트 큐에 기초하여 컨텐츠에서 대상물을 인식할 수 있다. 컨텐츠는 예컨대, 이미지, 밈(meme), 비디오, 상호작용형 시청각 자료 등을 포함할 수 있다. 시각적 속성은 컨텐츠에서 묘사되는 대상물의 특징적 속성을 반영하는 이미지 또는 이미지 세그먼트에서의 시각적 패턴을 포함할 수 있다. 시각적 속성은 예컨대, 외관, 색상, 형태, 레이아웃 등 중 하나 또는 이들의 조합에 기초할 수 있다.The image classification module 104 may recognize an object in the content based on the content and a context queue related to the visual attribute of the content. Content may include, for example, images, memes, videos, interactive audio-visual materials, and the like. The visual attribute may include an image reflecting the characteristic attribute of the object depicted in the content or a visual pattern in the image segment. The visual attributes may be based on, for example, one or a combination of appearance, color, shape, layout, and the like.

컨텍스트 큐는 컨텐츠에 묘사된 대상물의 시각적 표시자를 포함할 수 있다. 컨텍스트 큐는 컨텐츠의 적어도 일부의 대상물을 반영하거나 시사할 수 있다. 일부 실시예로, 컨텍스트 큐는 컨텐츠 태그를 포함할 수 있다. 컨텍스트 큐는 또한, 가령 소셜 큐와 같은 컨텐츠에서 대상물의 비시각적 표시자의 다른 타입들을 포함할 수 있다. 예컨대, 제한 없이, 컨텍스트 큐는: 이미지 또는 사용자의 디지털 장치의 GPS 좌표, 특정된 태그가 아닌 태그들의 개수, 특정된 태그가 일련의 태그들에서 발생하는 정도, 일련의 태그에서 특정된 태그의 순서, 컨텐츠의 태거(tagger)(예컨대, 문자 스트링을 컨텐츠와 관련시키는 엔티티)의 신원, 컨텐츠의 업로더(예컨대, 소셜 네트워킹 시스템의 데이터 스토어에 저장하기 위해 컨텐츠를 제공하는 엔티티)의 신원, 컨텐츠의 소유자의 신원, 컨텐츠 업로드의 시간, 태거 (또는 업로더나 소유자)의 연결 및 연결의 타입(예컨대, 친구), 태거 (또는 업로더나 소유자)의 상태 또는 프로필, 컨텐츠와 관련된 메타데이터, 주어진 타입의 컨텐츠, EXIF(Exchangeable Image File) 정보 등을 열람하거나 좋아하는 사람들의 신원을 포함할 수 있다.The context cue may include a visual indicator of an object depicted in the content. The context queue may reflect or suggest at least some objects of the content. In some embodiments, the context queue may include a content tag. The context queue may also include other types of non-visual indicators of objects in the content, such as a social queue. For example, without limitation, the context cue may include: GPS coordinates of an image or a user's digital device, the number of tags other than a specified tag, the degree to which a specified tag occurs in a series of tags, and the order of tags specified in a series of tags. , The identity of the content's tagger (e.g., an entity that associates a character string with the content), the identity of the content's uploader (e.g., an entity providing content for storage in a data store of a social networking system), of the content The identity of the owner, the time of uploading the content, the connection of the tagger (or uploader or owner) and the type of connection (e.g., friend), the status or profile of the tagger (or uploader or owner), metadata related to the content, given type It can include the identity of people you like or browse the contents of, EXIF (Exchangeable Image File) information, etc.

일부 실시예로, 이미지 분류 모듈(104)은 분류기가 이미지들의 샘플 세트로부터 수집된 컨텍스트 큐에 기초하여 이미지 클래스의 시각적 속성을 인식하도록 트레이닝할 수 있다. 이미지들의 샘플 세트는 분류기를 트레이닝하기 위한 트레이닝 세트가 선택되는 이미지들의 그룹을 포함할 수 있다. 이미지들의 샘플 세트는, 분류기에 의한 정확한 결과를 보장하기 위해 충분히 많은 수의 이미지들을 포함할 수 있다. 분류기는, 컨텐츠가 특정 이미지 클래스 내에 속하는 정도에 상응하는 통계 점수를 컨텐츠의 각각의 아이템에 할당할 수 있다. 일부 실시예로, 분류기는 계층적 분류기, 선형 분류기, 또는 다른 분류기를 통합할 수 있다. 분류기의 예는 도 5에 제공된다. 일부 실시예로, 분류기는 초기에 소셜 네트워킹 시스템에 의해 관리되는 이미지들의 선택된 서브세트에 기초하여 트레이닝될 수 있다. 분류기는 다양한 상황에서 유지될 수 있다. 예컨대, 분류기는 선택된 주파수에서 주기적으로 유지되거나, 이미지가 분류기에 이용가능하게 됨에 따라 비-주기적으로 유지될 수 있다. 다른 예로, 분류기는, 소셜 네트워킹 시스템으로 업로드될 많은 수의 이미지들을 발생시킬 확률이 높은 이벤트들(예컨대, Super Bowl)과 같은 특정 이벤트들이 발생할 때 유지될 수 있다. 또 다른 예로, 분류기는, 소셜 네트워킹 시스템이 임계 개수의 새로운 이미지들을 수신할 때 유지될 수 있다. 이러한 상황들 및 다른 상황들에서 유지하는 것은 분류기가 이미지 클래스들의 시각적 속성을 인식하는 능력을 보다 섬세하게(refine) 만들 수 있다.In some embodiments, the image classification module 104 may train the classifier to recognize a visual attribute of an image class based on a context cue collected from a sample set of images. The sample set of images may comprise a group of images from which a training set for training the classifier is selected. A sample set of images may contain a sufficiently large number of images to ensure accurate results by the classifier. The classifier may allocate a statistical score corresponding to the degree to which the content belongs to a specific image class to each item of the content. In some embodiments, the classifier may incorporate a hierarchical classifier, a linear classifier, or other classifier. An example of a classifier is provided in FIG. 5. In some embodiments, the classifier may be initially trained based on a selected subset of images managed by the social networking system. Classifiers can be maintained in a variety of situations. For example, the classifier may be held periodically at a selected frequency, or it may be held non-periodically as the image becomes available to the classifier. As another example, the classifier may be maintained when certain events occur, such as events with a high probability of generating a large number of images to be uploaded to the social networking system (eg, Super Bowl). As another example, the classifier may be maintained when the social networking system receives a threshold number of new images. Keeping in these and other situations can further refine the ability of the classifier to recognize the visual properties of the image classes.

이미지 클래스는 예컨대, 객체(예컨대, 고양이, 자동차, 사람, 지갑 등), 브랜드 또는 브랜드와 관련된 객체(예컨대, Coca-Cola®, Ferrari®), 프로 스포츠 팀(예컨대, the Golden State Warriors®), 위치(예컨대, 에베레스트 산), 활동(예컨대, 수영하기), 구절 또는 컨셉(예컨대, 적색 드레스, 행복), 및 컨텐츠와 관련될 수 있는 임의의 다른 것들, 행위 또는 관념을 포함할 수 있다. 본 명세서에서 제공되는 많은 예는 단일의 "이미지 클래스"를 의미하는 한편, 이미지 클래스는 객체, 브랜드, 프로 스포츠 팀, 위치 등의 조합을 포함하는 복수의 이미지 클래스들 또는 하나 이상의 이미지 클래스들을 의미할 수 있다.Image classes include, for example, objects (e.g., cats, cars, people, wallets, etc.), objects associated with a brand or brand (e.g., Coca-Cola®, Ferrari®), professional sports teams (e.g., the Golden State Warriors®), Location (eg, Mount Everest), activity (eg, swimming), phrases or concepts (eg, red dress, happiness), and any other things, actions or ideas that may be associated with the content. While many examples provided herein mean a single "image class", an image class may mean a plurality of image classes or one or more image classes including a combination of an object, brand, professional sports team, location, etc. I can.

일부 실시예로, 이미지 분류 모듈(104)은 이미지들의 평가 세트의 시각적 속성을 이미지 클래스의 시각적 속성과 비교하고, 이미지들의 평가 세트에서의 시각적 속성이 이미지 클래스의 시각적 속성과 충분히 상관될 수 있는지 여부를 결정하기 위해 트레이닝된 분류기를 사용할 수 있다. 이미지들의 평가 세트는 분류기에 의한 분류를 위해 선택된 이미지들의 그룹을 포함할 수 있다. 다양한 실시예로, 이미지들의 평가 세트는 데이터 스토어에서의 이미지들의 전부 또는 일부, 또는 소셜 네트워킹 시스템에서의 이미지들의 전부 또는 일부를 포함할 수 있다. 일실시예로, 분류기는 기계 습득과 같은 임의의 적절한 기술에 의해 트레이닝될 수 있다.In some embodiments, the image classification module 104 compares the visual attribute of the evaluation set of images with the visual attribute of the image class, and whether the visual attribute in the evaluation set of images can be sufficiently correlated with the visual attribute of the image class. We can use the trained classifier to determine. The evaluation set of images may include a group of images selected for classification by a classifier. In various embodiments, a rating set of images may include all or part of the images in a data store, or all or part of the images in a social networking system. In one embodiment, the classifier may be trained by any suitable technique, such as machine learning.

다양한 실시예로, 이미지 분류 모듈(104)은 이미지 애플리케이션 모듈(106)로 분류된 컨텐츠를 제공할 수 있다. 분류된 컨텐츠는 분류기에 의해 순위화 및/또는 점수화된 컨텐츠를 포함할 수 있다. 반면에, 비가공 컨텐츠 또는 미분류(unclassified) 컨텐츠는 분류기에 의해 순위화 및/또는 점수화되지 않았거나 아니면 하나 이상의 이미지 클래스와 관련되지 않은 컨텐츠를 포함할 수 있다. 분류된 컨텐츠는, 상기 분류된 컨텐츠가 이미지 클래스를 매칭(match)하는 정도를 표시하는 점수를 가질 수 있다. 분류된 컨텐츠의 더 높은 점수를 얻은 아이템들은 이미지 클래스의 시각적 속성과 더 높은 상관도(higher degrees of correlation)를 가질 수 있다. 결과적으로, 다양한 실시예에서, 이미지 분류 모듈(104)은 점수에 기초하여 분류된 컨텐츠를 효과적으로 검색하도록 할 수 있다.In various embodiments, the image classification module 104 may provide content classified by the image application module 106. The classified content may include content ranked and/or scored by a classifier. On the other hand, raw content or unclassified content may include content that is not ranked and/or scored by a classifier or is not related to one or more image classes. The classified content may have a score indicating the degree to which the classified content matches an image class. Items with higher scores of classified content may have higher degrees of correlation with the visual properties of the image class. As a result, in various embodiments, the image classification module 104 may effectively search for classified content based on a score.

분류를 위해 이미지들의 평가 세트의 분석 중에 분류기를 사용하는 것은 다양한 시간에서 발생할 수 있다. 예컨대, 분류기는 선택된 주파수에서 이미지들의 평가 세트를 분석하거나, 이미지들이 분류기로 이용가능하게 됨에 따라 비-주기적으로 평가 세트를 분석할 수 있다. 분류기는 또한, 가령 소셜 네트워킹 시스템으로 업로드되는 많은 수의 이미지들을 발생시킬 확률이 높은 이벤트들과 같은 특정 이벤트가 발생할 때 이미지들의 평가 세트를 분석할 수 있다. 분류기는, 소셜 네트워킹 시스템이 임계 개수의 새로운 이미지들을 수신할 때 이미지들의 평가 세트를 분석할 수 있다. 또 다른 예로, 분류기는, 예상되는 이미지 검색이 수행되기에 앞서 분류를 위해 이미지들의 평가 세트를 분석할 수 있다.Using a classifier during analysis of an evaluation set of images for classification can occur at various times. For example, the classifier may analyze the evaluation set of images at a selected frequency, or non-periodically as the images become available as a classifier. The classifier may also analyze a rating set of images when a specific event occurs, such as events with a high probability of generating a large number of images that are uploaded to the social networking system. The classifier may analyze a rating set of images when the social networking system receives a threshold number of new images. As another example, the classifier may analyze an evaluation set of images for classification prior to performing an expected image search.

이미지 애플리케이션 모듈(106)은 분류된 컨텐츠를 소셜 네트워킹 시스템에서 사용하기 위해 적응(adapt)시킬 수 있다. 일부 실시예로, 이미지 애플리케이션 모듈(106)은 검색 APIs(application programming interfaces)와 인터페이싱하여 분류된 컨텐츠의 각각의 아이템들이 그것의 이미지 클래스에 따라 검색가능하도록 만들 수 있다. 예컨대, 이미지 애플리케이션 모듈(106)은, 사용자가 소셜 네트워킹 시스템으로 업로드한 분류된 이미지를 검색하는 검색 모듈과 인터페이스할 수 있다. 다른 예로, 이미지 애플리케이션 모듈(106)은, 사용자가 그들의 피드에 게시한 분류된 이미지 또는 밈스를 위해 소셜 네트워킹 시스템의 피드를 검색하는 검색 모듈과 인터페이스할 수 있다. 이미지 애플리케이션 모듈(106)은 또한, 검색 질의에 응답하여 분류된 컨텐츠를 제공할 수 있다. 일부 실시예로, 이미지 애플리케이션 모듈(106)은, 주제 사전(subject dictionary), 카테고리 트리, 및 토픽 태그 기술을 사용하여 이미지 분류 모듈(104)에 의해 제공되는 분류된 이미지들과 관련된 토픽들을 추출할 수 있다.The image application module 106 may adapt the classified content for use in a social networking system. In some embodiments, the image application module 106 may interface with search application programming interfaces (APIs) to make each item of classified content searchable according to its image class. For example, the image application module 106 may interface with a search module that searches for classified images uploaded by a user to a social networking system. As another example, the image application module 106 may interface with a search module that retrieves a feed of a social networking system for classified images or memes that users have posted in their feed. The image application module 106 may also provide classified content in response to a search query. In some embodiments, the image application module 106 may extract topics related to the classified images provided by the image classification module 104 using a subject dictionary, category tree, and topic tag technology. I can.

도 2a는 일부 실시예에 따른, 이미지 분류 모듈(104)의 예를 도시한다. 이미지 분류 모듈(104)은 미분류 이미지 데이터스토어(202), 이미지 분류 트레이닝 모듈(204), 및 분류기(208)를 포함할 수 있다. 도 2a에 도시된 컴포넌트들에 추가하여, 이미지 분류 모듈(104)은 또한, 도 2b에 도시된 컴포넌트들을 포함할 수 있다. 도 2a 및 도 2b에서 같은 구성요소들은 같은 참조 번호를 가질 수 있음을 유의해야 한다.2A shows an example of an image classification module 104, in accordance with some embodiments. The image classification module 104 may include an unclassified image datastore 202, an image classification training module 204, and a classifier 208. In addition to the components shown in FIG. 2A, the image classification module 104 may also include the components shown in FIG. 2B. It should be noted that the same components in FIGS. 2A and 2B may have the same reference numerals.

미분류 이미지 데이터스토어(202)는 이미지 분류 트레이닝 모듈(204) 및 이미지 분류 평가 모듈(206)에 연결될 수 있다. 미분류 이미지 데이터스토어(202)는 미분류 이미지들을 포함할 수 있다. 미분류 이미지들은 그들과 관련된 컨텍스트 큐를 가질 수 있다. 데이터스토어는 테이블, CSV(comma-separated values) 파일, 전통적인 데이터베이스(예컨대, SQL), 또는 다른 알려지거나 종래의 조직화 포맷을 포함하는 임의의 데이터의 조직을 포함할 수 있다. 일부 실시예로, 미분류 데이터스토어(202)는 또한, 가령 태그 또는 다른 큐들과 같은 이미지와 관련된 컨텍스트 큐들의 세트를 저장할 수 있다. 일부 실시예로, 미분류 이미지 데이터스토어(202)는 소셜 네트워킹 시스템에서 미분류 이미지들의 일부 또는 전부를 표현할 수 있다.The unclassified image datastore 202 may be connected to the image classification training module 204 and the image classification evaluation module 206. The unclassified image datastore 202 may include unclassified images. Uncategorized images can have context cues associated with them. A datastore may contain an organization of any data including tables, comma-separated values (CSV) files, traditional databases (eg, SQL), or other known or conventional organizational formats. In some embodiments, unclassified datastore 202 may also store a set of context cues associated with an image, such as a tag or other cues. In some embodiments, the unclassified image datastore 202 may represent some or all of the unclassified images in a social networking system.

이미지 분류 트레이닝 모듈(204)은 미분류 이미지 데이터스토어(202) 및 분류기(208)에 연결될 수 있다. 일부 실시예로, 이미지 분류 트레이닝 모듈(204)은 트레이닝 단계(training phase)를 구현할 수 있다. 트레이닝 단계는, 이미지 분류 트레이닝 모듈(204)이 분류기(208)가 이미지들의 샘플 세트로부터 선택된 이미지들의 시각적 속성을 인식하도록 트레이닝하는 이미지 분류 모듈(104)의 단계를 포함할 수 있다. 트레이닝 단계 동안에, 이미지 분류 트레이닝 모듈(204)은 미분류 이미지 데이터스토어(202)로부터 이미지들의 샘플 세트를 획득할 수 있다. 이미지 분류 트레이닝 모듈(204)은 또한, 각각의 획득된 미분류 이미지와 관련된 컨텍스트 큐들의 세트를 수집할 수 있다. 컨텍스트 큐들의 세트에 기초하여, 이미지들의 샘플 세트로부터 선택된 이미지들의 트레이닝 세트는, 분류기(208)가 시각적 패턴을 인식하도록 트레이닝하는데 사용될 수 있다. 미분류 이미지들 및/또는 컨텍스트 큐들은, 이미지들의 샘플 세트로부터 이미지들의 트레이닝 세트를 결정하기 위해 관련 정보에 대해 미분류 이미지 데이터스토어(202)를 질의함으로써 획득될 수 있다.The image classification training module 204 may be connected to the unclassified image datastore 202 and the classifier 208. In some embodiments, the image classification training module 204 may implement a training phase. The training step may include the step of the image classification module 104 where the image classification training module 204 trains the classifier 208 to recognize the visual properties of images selected from a sample set of images. During the training phase, the image classification training module 204 may obtain a sample set of images from the unclassified image datastore 202. The image classification training module 204 may also collect a set of context cues associated with each obtained unclassified image. Based on the set of context cues, a training set of images selected from a sample set of images may be used to train the classifier 208 to recognize a visual pattern. Unclassified images and/or context cues may be obtained by querying the unclassified image datastore 202 for relevant information to determine a training set of images from a sample set of images.

트레이닝 단계 동안에, 이미지 분류 트레이닝 모듈(204)은 분류기(208)를 트레이닝 시킬 하나 이상의 이미지 클래스를 특정하도록 구성될 수 있다. 이미지 클래스를 특정하기 위해, 이미지 분류 트레이닝 모듈(204)은 이미지 클래스를 정의하는 자동화된 입력을 수신할 수 있다. 이미지 클래스의 특정은 가령, 이미지 분류의 작업이 맡겨진 관리자와 같은 사람으로부터의 수동 입력을 또한, 수반할 수 있다.During the training phase, the image classification training module 204 may be configured to specify one or more image classes for which the classifier 208 is to be trained. To specify the image class, the image classification training module 204 may receive an automated input defining the image class. The specification of the image class may also involve manual input from a person, such as an administrator who is assigned the task of classifying images as well.

트레이닝 단계 동안에, 이미지 분류 트레이닝 모듈(204)은, 이미지 클래스에 상응하는 컨텍스트 큐들을 식별하고 선택하도록 구성될 수 있다. 다양한 실시예로, 이미지 분류 트레이닝 모듈(204)은 특정 이미지 클래스의 속성들을 평가할 수 있고, 특정 컨텍스트 큐들이 그 이미지 클래스와 아마도 관련되었을지를 결정할 수 있다. 예컨대, 이미지 분류 트레이닝 모듈(204)은 하나의 타입의 태그들이 가정의 집 고양이의 사진을 수반할 확률이 높은 한편, 다른 타입의 태그는 할로윈에 캣우먼의 복장인 사용자의 사진을 수반할 가능성이 높다고 결정할 수 있다. 이 경우, 이미지 분류 트레이닝 모듈(204)은, 고양이의 이미지 클래스에 상응하는 가정의 집 고양이의 사진을 수반할 가능성이 높은 태그들의 타입을 선택할 수 있다. 본 명세서에서 더 상세히 논의되는 것처럼, 컨텍스트 큐들을 특정 이미지 클래스에 적용할 지의 판단(consideration)은, 가령 태그(예컨대, 태그 "#cat", 태그 "#Halloween" 등), 태그들의 순서, 특정 태그들이 다른 특정 태그들에 의해 수반되는지 여부(예컨대, 태그 "#cat"이 태그 "#animal"에 의해 수반되는지 또는 태그 "#cat"이 태그 "#Halloween"에 의해 수반되는지) 등과 같은 판단들에 기초할 수 있다. 이미지 분류 트레이닝 모듈(204)은 또한, 특정 이미지와 관련된 컨텍스트 큐들이 특정 이미지 클래스에 상응하는 정도를 순위화 및/또는 점수화하도록 구성될 수 있다.During the training phase, the image classification training module 204 may be configured to identify and select context cues corresponding to the image class. In various embodiments, the image classification training module 204 may evaluate properties of a particular image class, and may determine if certain contextual cues were possibly associated with that image class. For example, the image classification training module 204 says that one type of tag has a high probability of carrying a picture of a house cat at home, while another type of tag has a high probability of carrying a picture of a user who is a catwoman's outfit on Halloween. You can decide. In this case, the image classification training module 204 may select a type of tags that are likely to carry a picture of a domestic cat corresponding to the cat's image class. As discussed in more detail herein, the determination of whether to apply context cues to a specific image class is, for example, a tag (eg, tag "#cat", tag "#Halloween", etc.), the order of tags, and a specific tag. Are carried by other specific tags (eg, whether the tag “#cat” is carried by the tag “#animal” or whether the tag “#cat” is carried by the tag “#Halloween”), etc. Can be based. The image classification training module 204 may also be configured to rank and/or score the degree to which context cues associated with a particular image correspond to a particular image class.

컨텍스트 큐들은, 이미지들의 샘플 세트로부터 이미지들의 트레이닝 세트를 식별하기 위해 분석된다. 이미지들의 트레이닝 세트는 이미지 클래스와 가장 밀접하게 상관되는 이미지들을 표현한다. 트레이닝 단계 동안에, 이미지 분류 트레이닝 모듈(204)은 이미지 클래스와 관련된 시각적 속성들을 식별하기 위해 이미지들의 트레이닝 세트를 분류기(208)로 제공할 수 있다. 일부 실시예로, 이미지 분류 트레이닝 모듈(204)은 분류기(208)가 특정 이미지 클래스에 상응하는 시각적 패턴의 템플릿을 생성하도록 명령할 수 있다. 일부 실시예로, 이미지 분류 트레이닝 모듈(204)은, 원한다면, 가령 분류된 이미지 데이터스토어(210)와 같은 위치에 분류된 이미지들 및/또는 관련된 시각적 패턴 템플릿들을 저장할 수 있다. 이미지 분류 트레이닝 모듈(204)은 또한, 이미지들의 트레이닝 세트를 선택하는 것을 돕기 위해 수동 주석자(manual annotator)를 사용할 수 있다. 이미지 분류 트레이닝 모듈(204)은 도 3 및 도 7의 컨텍스트에서 더 논의된다.Context cues are analyzed to identify a training set of images from a sample set of images. The training set of images represents the images that correlate most closely with the image class. During the training phase, the image classification training module 204 may provide a training set of images to the classifier 208 to identify visual attributes associated with the image class. In some embodiments, the image classification training module 204 may instruct the classifier 208 to generate a template of a visual pattern corresponding to a specific image class. In some embodiments, the image classification training module 204 may store classified images and/or associated visual pattern templates, if desired, in a location such as the classified image datastore 210. The image classification training module 204 may also use a manual annotator to help select a training set of images. The image classification training module 204 is further discussed in the context of FIGS. 3 and 7.

분류기(208)는 이미지 분류 트레이닝 모듈(204)에 연결될 수 있고, 분류된 이미지 데이터스토어(예컨대, 도 2b에 도시된 분류된 이미지 데이터스토어(210))에 연결될 수 있다. 분류기는 이미지 분류 트레이닝 모듈(204)로부터 이미지들을 수신할 수 있다. 트레이닝 단계에서, 분류기(208)는 특정 시각적 패턴의 존재에 대해 이미지들의 트레이닝 세트를 평가할 수 있다. 분류기(208)는 특정 시각적 패턴을 이미지 클래스와 관련시킬 수 있고, 시각적 패턴 템플릿을 생성할 수 있으며, 시각적 패턴 템플릿이 저장되도록 할 수 있다. 트레이닝 단계에서, 분류기(208)는 트레이닝에 사용된 이미지들을 이미지 분류 트레이닝 모듈(204)로 돌려보낼 수 있다. 일부 실시예로, 분류기(208)는 이미지 분류 트레이닝 모듈(204)로 돌아가는 연결(예컨대, 피드백 루프를 통해)을 포함할 수 있다. 결과적으로, 분류기(208)는 이미지 분류 트레이닝 모듈(204)의 정확성을 보조할 수 있다. 이러한 돌아가는 연결은 향후의 분류 및 트레이닝의 향상을 보조할 수 있다. 분류기(208)는 도 5의 컨텍스트에서 더 논의된다.The classifier 208 may be connected to the image classification training module 204 and may be connected to a classified image datastore (eg, the classified image datastore 210 shown in FIG. 2B ). The classifier may receive images from the image classification training module 204. In the training phase, the classifier 208 may evaluate the training set of images for the presence of a particular visual pattern. The classifier 208 may associate a specific visual pattern with an image class, generate a visual pattern template, and allow the visual pattern template to be stored. In the training phase, the classifier 208 may return the images used for training to the image classification training module 204. In some embodiments, the classifier 208 may include a connection back to the image classification training module 204 (eg, via a feedback loop). As a result, the classifier 208 may assist the accuracy of the image classification training module 204. These revolving connections can help improve classification and training in the future. The classifier 208 is further discussed in the context of FIG. 5.

도 2b는 일부 실시예에 따른, 이미지 분류 모듈(104)의 예를 도시한다. 이미지 분류 모듈(104)은 미분류 이미지 데이터스토어(212), 이미지 분류 평가 모듈(206), 분류기(208), 및 분류된 이미지 데이터스토어(210)를 포함할 수 있다. 미분류 이미지 데이터스토어(212)는 이미지 분류 평가 모듈(206)에 연결될 수 있다. 미분류 이미지 데이터스토어(212)는 미분류 이미지들을 저장할 수 있다. 미분류 이미지 데이터스토어(212)는 도 2a에 도시된 미분류 이미지 데이터스토어(202)와 동일할 수 있으나, 그럴 필요가 있는 것은 아니다.2B shows an example of an image classification module 104, according to some embodiments. The image classification module 104 may include an unclassified image data store 212, an image classification evaluation module 206, a classifier 208, and a classified image data store 210. The unclassified image data store 212 may be connected to the image classification evaluation module 206. The unclassified image data store 212 may store unclassified images. The unclassified image data store 212 may be the same as the unclassified image data store 202 shown in FIG. 2A, but it is not necessary.

이미지 분류 평가 모듈(206)은 미분류 이미지 데이터스토어(212)에 연결될 수 있고, 분류기(208)에 연결될 수 있다. 일부 실시예로, 이미지 분류 평가 모듈(206)은 평가 단계(evaluation phase)를 구현할 수 있다. 평가 단계는, 이미지 분류 평가 모듈(206)이 분류기(208)를 사용하여 이미지들의 평가 세트에서 시각적 패턴을 인식하는 이미지 분류 모듈(104)의 단계를 포함할 수 있다. 일실시예로, 이미지들의 평가 세트는 미분류 이미지 데이터스토어(212)로부터 선택될 수 있다.The image classification evaluation module 206 may be connected to the unclassified image data store 212 and may be connected to the classifier 208. In some embodiments, the image classification evaluation module 206 may implement an evaluation phase. The evaluating step may include the step of the image classification module 104 in which the image classification evaluation module 206 recognizes a visual pattern in the evaluation set of images using the classifier 208. In one embodiment, the evaluation set of images may be selected from the unclassified image datastore 212.

평가 단계 동안에, 이미지 분류 평가 모듈(206)은 미분류 이미지 데이터스토어(212)로부터의 이미지들의 평가 세트를 분류기(208)로 제공할 수 있다. 다양한 실시예로, 이미지 분류 트레이닝 모듈(204)은, 트레이닝 단계에서, 분류기(208)가 이미지 클래스와 관련된 이미지들의 트레이닝 세트의 시각적 속성을 인식하도록 트레이닝했을 수 있다. 이미지들의 평가 세트는, 이미지들의 샘플 세트 및 이미지들의 트레이닝 세트와는 다른 이미지들의 세트를 포함할 수 있다. 일부 실시예로, 이미지 분류 평가 모듈(206)은 또한, 분류기(208)가 이미지들의 평가 세트와 비교할 이미지 클래스를 분류기(208)에 제공할 수 있다. 다양한 실시예로, 이미지 분류 평가 모듈(206)은 분류기(208)가 이미지 클래스와의 상관관계에 기초하여 이미지들의 평가 세트를 순위화 및/또는 점수화하도록 명령할 수 있다. 이미지 분류 평가 모듈(206)은 또한, 분류된 이미지 데이터스토어(210)에 이미지들(즉, 이미지 클래스와의 상관관계에 기초하여 점수화된 이미지들)의 순위 및 점수를 저장할 수 있다. 이미지 분류 평가 모듈(206)은 도 4 및 도 8의 컨텍스트에서 더 논의된다.During the evaluation phase, the image classification evaluation module 206 may provide an evaluation set of images from the unclassified image datastore 212 to the classifier 208. In various embodiments, the image classification training module 204 may have trained, in the training phase, the classifier 208 to recognize the visual properties of the training set of images associated with the image class. The evaluation set of images may include a set of images that are different from the sample set of images and the training set of images. In some embodiments, the image classification evaluation module 206 may also provide an image class to the classifier 208 for the classifier 208 to compare to the evaluation set of images. In various embodiments, the image classification evaluation module 206 may instruct the classifier 208 to rank and/or score the evaluation set of images based on a correlation with the image class. The image classification evaluation module 206 may also store a ranking and score of images (ie, images scored based on a correlation with an image class) in the classified image data store 210. The image classification evaluation module 206 is further discussed in the context of FIGS. 4 and 8.

분류기(208)는 이미지 분류 트레이닝 모듈(204) 및 이미지 분류 평가 모듈(206)에 연결될 수 있다. 분류기(208)는 이미지 분류 평가 모듈(206)로부터 이미지들을 수신할 수 있다. 평가 단계에서, 분류기(208)는, 각각의 이미지 및 관심있는 이미지 클래스와 관련된 시각적 패턴 템플릿 사이의 상관관계를 점수화하기 위해 이미지들의 평가 세트에 시각적 패턴 인식을 수행할 수 있다. 평가 단계에서, 분류기(208)는 평가에서 사용된 이미지들을 이미지 분류 평가 모듈(206)로 돌려보낼 수 있다. 분류기(208)는 도 5의 컨텍스트에서 더 논의된다.The classifier 208 may be connected to the image classification training module 204 and the image classification evaluation module 206. The classifier 208 may receive images from the image classification evaluation module 206. In the evaluation step, the classifier 208 may perform visual pattern recognition on the evaluation set of images to score a correlation between each image and the visual pattern template associated with the image class of interest. In the evaluation step, the classifier 208 may return the images used in the evaluation to the image classification evaluation module 206. The classifier 208 is further discussed in the context of FIG. 5.

분류된 이미지 데이터스토어(210)는 분류기(208) 및 이미지 애플리케이션 모듈(106)로 연결될 수 있다. 분류된 이미지 데이터스토어(210)는 분류된 이미지, 이미지 클래스, 시각적 패턴 템플릿, 및 다른 정보를 포함하는 정보를 저장할 수 있다. 일부 실시예로, 분류된 이미지 데이터스토어(210)는, 분류된 이미지에 대한 액세스를 찾는 API들에 의한 분류된 이미지들의 효율적인 검색을 용이하게 하도록 인덱싱될 수 있다. 예컨대, 분류된 이미지 데이터스토어(210)는 분류된 이미지들을 액세스하려는 이미지 애플리케이션 모듈(106)에 연결된 검색 모듈과 호환되도록 구성될 수 있다.The classified image datastore 210 may be connected to the classifier 208 and the image application module 106. The classified image data store 210 may store information including classified images, image classes, visual pattern templates, and other information. In some embodiments, the classified image datastore 210 may be indexed to facilitate efficient retrieval of classified images by APIs that find access to the classified image. For example, the classified image data store 210 may be configured to be compatible with a search module connected to the image application module 106 to access the classified images.

도 3은 일부 실시예에 따른, 이미지 분류 트레이닝 모듈(204)의 예를 도시한다. 이미지 분류 트레이닝 모듈(204)은 트레이닝 이미지 선택 모듈(301), 트레이닝 이미지 데이터스토어(309), 및 분류기 트레이닝 모듈(310)을 포함할 수 있다.3 shows an example of an image classification training module 204, in accordance with some embodiments. The image classification training module 204 may include a training image selection module 301, a training image data store 309, and a classifier training module 310.

트레이닝 이미지 선택 모듈(301)은 미분류 이미지 데이터스토어(202)에 연결될 수 있고, 트레이닝 이미지 데이터스토어(309)에 연결될 수 있다. 트레이닝 미지 선택 모듈(301)은 이미지들의 샘플 세트로부터 이미지들의 트레이닝 세트를 식별할 수 있다. 트레이닝 이미지 선택 모듈(301)은 또한, 트레이닝 이미지 데이터스토어(309)에 이미지들의 트레이닝 세트를 저장할 수 있다. 트레이닝 이미지 선택 모듈(301)은 트레이닝 이미지 수집 모듈(302), 컨텍스트 큐 추출 모듈(304), 이미지 클래스 특정(specification) 모듈(306), 및 이미지 클래스 상관 모듈(308)을 포함할 수 있다.The training image selection module 301 may be connected to the unclassified image data store 202 and may be connected to the training image data store 309. The training unknown selection module 301 may identify a training set of images from a sample set of images. The training image selection module 301 may also store a training set of images in the training image datastore 309. The training image selection module 301 may include a training image collection module 302, a context queue extraction module 304, an image class specification module 306, and an image class correlation module 308.

트레이닝 이미지 수집 모듈(302)은 트레이닝 이미지 선택 모듈(301)의 다른 모듈들에 연결될 수 있다. 일부 실시예로, 트레이닝 이미지 수집 모듈(302)은, 이미지들의 샘플 세트와 관련된 컨텍스트 큐와 함께 이미지들의 샘플 세트를 수집할 수 있다. 이미지들의 샘플 세트 및 관련된 컨텍스트 큐는 미분류 이미지 데이터스토어(202)로부터 검색될 수 있다.The training image collection module 302 may be connected to other modules of the training image selection module 301. In some embodiments, the training image collection module 302 may collect a sample set of images along with a context queue associated with the sample set of images. A sample set of images and an associated context queue may be retrieved from the unclassified image datastore 202.

컨텍스트 큐 추출 모듈(304)은 트레이닝 이미지 선택 모듈(301)의 다른 모듈들에 연결될 수 있다. 컨텍스트 큐 추출 모듈(304)은 이미지들의 샘플 세트와 관련된 컨텍스트 큐들을 추출하도록 구성될 수 있다. 본 명세서에서 논의되는 것처럼, 컨텍스트 큐는 이미지의 컨텍스의 비시각적 표시자를 포함할 수 있다. 이미지에 대한 컨텍스트 큐의 예는 이미지를 위한 이미지 태그, 이미지를 캡쳐하는 장치의 GPS 좌표, 이미지의 태거, 업로더, 및 소유자의 신원, 이미지의 소유자들의 신원, 이미지와 직접 또는 간접적으로 관련된 다른 정보 등을 포함할 수 있다. 일부 실시예로, 컨텍스트 큐 추출 모듈(304)은 이미지 클래스 상관 모듈(308)에 컨텍스트 큐들의 세트를 제공하여, 이미지 클래스 상관 모듈(308)이 컨텍스트 큐를 이미지 클래스와 상관시키도록 할 수 있다.The context queue extraction module 304 may be connected to other modules of the training image selection module 301. The context queue extraction module 304 may be configured to extract context queues associated with a sample set of images. As discussed herein, the context cue may include a non-visual indicator of the context of an image. Examples of context cues for an image are the image tag for the image, the GPS coordinates of the device capturing the image, the tagger of the image, the uploader, and the identity of the owner, the identity of the owner of the image, and other information directly or indirectly related to the image And the like. In some embodiments, the context queue extraction module 304 may provide the image class correlation module 308 with a set of context queues to cause the image class correlation module 308 to correlate the context queue with the image class.

이미지 클래스 특정 모듈(306)은 트레이닝 이미지 선택 모듈(301)의 다른 모듈들에 연결될 수 있다. 이미지 클래스 특정 모듈(306)은 분류기(208)가 인식하도록 트레이닝된 이미지 클래스를 특정하도록 구성될 수 있다. 일부 실시예로, 이미지 클래스 특정 모듈(306)은 사람이거나 또는 자동화될 수 있는 관리자로부터 이미지 클래스를 특정하는 명령을 수신할 수 있다. 다양한 실시예로, 이미지 클래스의 특정은, 이미지 클래스가 존재하지 않는다면 이미지 클래스를 생성하거나, 혹은 이러한 이미지 클래스가 존재한다면 이미지 클래스를 지정하는 것을 수반할 수 있다.The image class specification module 306 may be connected to other modules of the training image selection module 301. The image class specification module 306 may be configured to specify an image class that the classifier 208 has trained to recognize. In some embodiments, the image class specifying module 306 may receive a command specifying an image class from an administrator that may be human or automated. In various embodiments, specifying an image class may involve creating an image class if the image class does not exist, or designating an image class if such an image class exists.

이미지 클래스 상관 모듈(308)은 트레이닝 이미지 선택 모듈(301)의 다른 모듈들에 연결될 수 있다. 이미지 클래스 상관 모듈(308)은 컨텍스트 큐 추출 모듈(304)로부터 관련된 컨텍스트 큐와 함께 하나 이상의 이미지들의 샘플 세트를 수신할 수 있고, 이미지 클래스 특정 모듈(306)로부터 특정된 이미지 클래스를 수신할 수 있다. 이미지 클래스 상관 모듈(308)은 특정 이미지의 컨텍스트 큐들이 특정 이미지 클래스와 상관될 정도(extent)를 결정할 수 있다. 더 구체적으로, 이미지 클래스 상관 모듈(308)은 각각의 이미지에, 주어진 이미지가 이미지 클래스와 상관되는 확률을 표시하는 점수 또는 값을 할당할 수 있다. 일부 실시예로, 이미지 클래스 상관 모듈(308)은 또한, 각각의 이미지의 점수에 기초하여 이미지들의 샘플 세트 중 각각을 순위화할 수 있다. 일부 실시예로, 이미지 클래스 상관 모듈(308)은 이미지들의 샘플 세트로부터 가령 이미지들의 샘플 세트 중 최고 점수의 이미지들과 같은 트레이닝 세트를, 분류기 트레이닝 모듈(310)로 제공하기 위해 선택할 수 있다. 유리하게, 이미지 클래스 상관 모듈(308)은 이미지들의 샘플 세트에서 컨텐츠의 어떠한 시각적 인식도 수행할 필요가 없다.The image class correlation module 308 may be connected to other modules of the training image selection module 301. The image class correlation module 308 may receive a sample set of one or more images with an associated context queue from the context queue extraction module 304, and may receive a specified image class from the image class specific module 306. . The image class correlation module 308 may determine an extent to which context cues of a specific image are correlated with a specific image class. More specifically, the image class correlation module 308 may assign to each image a score or value indicating a probability that a given image is correlated with the image class. In some embodiments, the image class correlation module 308 may also rank each of the sample sets of images based on the score of each image. In some embodiments, the image class correlation module 308 may select from a sample set of images to provide a training set, such as the highest scored images of the sample set of images, to the classifier training module 310. Advantageously, the image class correlation module 308 does not need to perform any visual recognition of the content in the sample set of images.

다음의 설명은 이미지 클래스 상관 모듈(308)이 이미지들과 관련된 컨텍스트 큐에 기초하여 어떻게 가능성이 높은 이미지들의 컨텐츠를 결정할 수 있는지의 예를 제공한다. 다음의 설명에서 제공되는 것처럼, 이미지 클래스 상관 모듈(308)은 태그 자체, 태그의 신택스(syntax)를 분석할 수 있거나, 또는 컨텍스트 큐 추출 모듈(304)에 의해 추출된 컨텍스트 큐에 다른 타입의 분석을 수행할 수 있다. 이미지 클래스 상관 모듈(308)은 또한, 이미지들의 트레이닝 세트를 결정하기 위해 컨텍스트 큐들에 기초하여 이미지들의 샘플 세트를 특정된 이미지 클래스와 상관시키는 다음의 예들의 임의의 조합을 제공할 수 있다.The following description provides an example of how the image class correlation module 308 can determine the content of likely images based on the context queue associated with the images. As provided in the following description, the image class correlation module 308 may analyze the tag itself, the syntax of the tag, or other types of analysis in the context queue extracted by the context queue extraction module 304 You can do it. The image class correlation module 308 may also provide any combination of the following examples of correlating a sample set of images with a specified image class based on context cues to determine a training set of images.

일부 실시예로, 이미지 클래스 상관 모듈(308)은 이미지들의 샘플의 이미지 태그의 신택스를 분석할 수 있다. 이미지 클래스 상관 모듈(308)은 특정 신택스가 주어진 이미지 클래스와 얼마나 확률이 높게 상관되는지를 결정할 수 있다. 일부 실시예로, 이미지 태그의 신택스 분석은 이미지 태그의 정확한 언어에 가중치를 할당하는 것을 수반할 수 있다. 즉, 이미지 클래스 상관 모듈(308)은, 이미지와 관련된 태그의 정확한 단어 선택(wording)은, 태그가 이미지 클래스와 상관되어야 함을 표시한다고 결정할 수 있다. 예컨대, 이미지는 이미지 태그 "#domestic housecat"으로 태그될 수 있다. 이미지 클래스 상관 모듈(308)은 태그 "#domestic housecat"이 가정의 집 고양이의 이미지에 대한 이미지 클래스와 높은 정도로 상관된다고 결정할 수 있다. 다른 예로, 이미지 클래스 상관 모듈(308)은 태그 "#domestic house market"이 가정의 집 고양이에 대한 이미지 클래스와 낮은 정도로 상관된다고 결정할 수 있다.In some embodiments, the image class correlation module 308 may analyze the syntax of an image tag of a sample of images. The image class correlation module 308 may determine how likely a particular syntax is correlated with a given image class. In some embodiments, syntax analysis of an image tag may involve assigning weights to the exact language of the image tag. That is, the image class correlation module 308 may determine that correct wording of the tag associated with the image indicates that the tag should be correlated with the image class. For example, the image may be tagged with the image tag "#domestic housecat". The image class correlation module 308 may determine that the tag "#domestic housecat" correlates to a high degree with the image class for the image of the domestic house cat. As another example, the image class correlation module 308 may determine that the tag "#domestic house market" correlates to a low degree with the image class for the domestic cat.

이미지 클래스 상관 모듈(308)은 또한, 이미지와 관련된 일련의 이미지 태그에서 특정 이미지 태그의 순서를 분석할 수 있다. 예컨대, 가정의 집 고양이의 사진을 태그하고자 하는 사람은 다음의 일련의 태그들: "#cat, #athome, #Sunday, #animal"을 포함할 수 있다. 이미지 클래스 상관 모듈(308)은 태그 "#cat"이 일련의 태그들에서 제1 태그이며, 따라서 이미지가 가정의 집 고양이의 이미지일 확률이 높다고 식별할 수 있다. 이미지 클래스 상관 모듈(308)은 이미지를 이미지 클래스에 상관시키는 것에서의 가중치를 일련의 태그들에 할당할 수 있다. 이미지를 이미지 클래스와 상관시키기 위해, 이미지 클래스 상관 모듈(308)은 또한, 일련의 태그들에서의 제1 위치와는 다른 위치들에서의 태그들을 감안할 수 있음을 유의해야 한다.The image class correlation module 308 may also analyze the order of a particular image tag in a series of image tags associated with the image. For example, a person who wants to tag a picture of a home cat may include the following series of tags: "#cat, #athome, #Sunday, #animal". The image class correlation module 308 may identify that the tag "#cat" is a first tag in a series of tags, and thus, the image is likely to be an image of a domestic cat. The image class correlation module 308 may assign a weight in correlating an image to an image class to a series of tags. It should be noted that, to correlate an image with an image class, the image class correlation module 308 may also take into account tags at locations other than the first location in the series of tags.

이미지 클래스 상관 모듈(308)은 또한, 복수의 이미지 태그들이 서로 동의어인지 여부를 분석할 수 있다. 예컨대, 제1 이미지가 다음과 같이 태그되었다고 가정한다: "#cat, #athome, #Halloween, #Catwoman, #costume, #DC Comics®". 또한, 제2 이미지는 다음과 같이 태그되었다고 가정한다: "#cat, #mammal, #animal, #housecat, #tomcat, #feline, #cute". 이미지 클래스 상관 모듈(308)은, 제1 이미지의 태그들의 일부에 기초하여, 일련의 태그들이 서로와 동의어가 아니며, 제1 이미지는 가정의 집 고양이의 이미지를 포함할 가능성이 높지 않다고 결정할 수 있다. 이미지 클래스 상관 모듈(308)은 또한, 제2 이미지의 태그들의 일부에 기초하여, 일련의 태그들이 동의어이며(예컨대, "cat", "tomcat", 및 "feline"), 제2 이미지는 가정의 집 고양이의 이미지를 포함할 확률이 제1 이미지보다 높다고 결정할 수 있다. 따라서, 이미지 클래스 상관 모듈(308)은 가정의 집 고양이의 이미지 클래스와 관련하여 제1 이미지의 점수보다 높은 점수를 제2 이미지에 대해 할당할 수 있다.The image class correlation module 308 may also analyze whether a plurality of image tags are synonymous with each other. For example, suppose the first image was tagged as: "#cat, #athome, #Halloween, #Catwoman, #costume, #DC Comics®". Also, assume that the second image is tagged as: "#cat, #mammal, #animal, #housecat, #tomcat, #feline, #cute". The image class correlation module 308 may determine that, based on some of the tags of the first image, the series of tags are not synonymous with each other, and that the first image is not likely to include an image of a domestic cat. . The image class correlation module 308 also allows a series of tags to be synonymous (e.g., "cat", "tomcat", and "feline"), based on a portion of the tags of the second image, and the second image It may be determined that the probability of including the image of the house cat is higher than that of the first image. Accordingly, the image class correlation module 308 may allocate a score higher than the score of the first image to the second image in relation to the image class of the domestic cat.

일부 실시예로, 이미지 클래스 상관 모듈(308)은 반의어 또는 다른 의미의 부존재에 대해 복수의 이미지 태그들을 평가할 수 있다. 예컨대, 제1 이미지가 다음과 같이 태그되었다고 가정한다: "#blackcar," "#whitecar," "#luxurycar," "#My Mercedes". 제2 이미지는 다음과 같이 태그되었다고 가정한다: "#blackcar," "#darkcar," "#luxurycar," "#My Mercedes". 이미지 클래스 상관 모듈(308)은 제2의 일련의 태그들이 "blackcar"에 대한 반의어가 부족하다는 사실에 기초하여, 제2 이미지는 검정색 자동차에 상응하는 이미지 클래스와 높은 정도로 상관된다고 결정할 수 있다. 이미지 클래스 상관 모듈(308)은 검정색 자동차의 이미지 클래스와 관련하여 제1 이미지에 대한 점수보다 큰 제2 이미지에 대한 점수를 할당할 수 있다.In some embodiments, the image class correlation module 308 may evaluate a plurality of image tags for antonym or non-presence of another meaning. For example, assume that the first image is tagged as: "#blackcar," "#whitecar," "#luxurycar," "#My Mercedes". Assume the second image was tagged as: "#blackcar," "#darkcar," "#luxurycar," "#My Mercedes". The image class correlation module 308 may determine that the second image correlates to a high degree with an image class corresponding to a black car, based on the fact that the second series of tags lack an antonym for “blackcar”. The image class correlation module 308 may allocate a score for the second image that is greater than the score for the first image in relation to the image class of the black car.

이미지 클래스 상관 모듈(308)은 일부 실시예로, 온톨로지(ontology) 또는 언어 계층(language hierarchy)에 기초하여 이미지 태그의 관계를 평가할 수 있다. 예컨대, 이미지 클래스 상관 모듈(308)은 온라인 소스(예컨대, WordNet)로부터 하나 이상의 단어의 온톨로지를 개발할 수 있고, 감정적인 영향을 갖는 단어들(예컨대, "happy," "sad," red dress," "black car")을 찾을 수 있다. 다른 예로, 이미지가 다음과 같이 태그되었다고 가정한다: "#cat, #mammal, #animal, #housecat, #tomcat, #feline, #cute". 이미지 클래스 상관 모듈(308)은 "cat"이 "mammal"에 의해 식별되는 아이템들의 패밀리의 일부이며, 결국 "animal"에 의해 식별되는 아이템들의 패밀리의 일부라고 결정할 수 있다. 결과적으로, 이미지 클래스 상관 모듈(308)은 이러한 예에서, 태그가 이미지에 묘사된 가정의 집 고양이의 신뢰할 수 있는 표시자를 제공하는 것으로 식별할 수 있다. 이미지 클래스 상관 모듈(308)은 이후 가정의 집 고양이의 이미지 클래스와 관련하여 이미지들을 그에 맞춰 점수화할 수 있다.The image class correlation module 308 may, in some embodiments, evaluate the relationship of image tags based on an ontology or language hierarchy. For example, the image class correlation module 308 may develop an ontology of one or more words from an online source (eg, WordNet), and words with emotional influence (eg, “happy,” “sad,” red dress,” "black car") As another example, suppose the image is tagged as: "#cat, #mammal, #animal, #housecat, #tomcat, #feline, #cute". Image class correlation module 308 may determine that “cat” is part of the family of items identified by “mammal”, and eventually is part of the family of items identified by “animal.” As a result, the image class correlation module 308 In this example, the tag can be identified as providing a reliable indicator of the domestic house cat depicted in the image. The image class correlation module 308 then retrieves the images in relation to the image class of the household house cat. You can score accordingly.

다양한 실시예로, 이미지 클래스 상관 모듈(308)은 태그 단어 및 구절의 다른 자연어 분석을 수행할 수 있다. 일부 실시예로, 이미지 클래스 상관 모듈(308)은 태그 단어들의 철자 오기를 감안할 수 있다. 이미지 클래스 상관 모듈(308)은 또한, 영어가 아닌 언어들을 감안할 수 있고, 영어에 대응되는 것과 연계하여 영어가 아닌 단어들의 존재(예컨대, 동일한 일련의 태그들에서 "#cat" 및 "#gato")를 찾는 것을 포함할 수 있다. 이러한 예들 각각에서, 이미지 클래스 상관 모듈(308)은 특정 이미지 클래스와 관련하여 이미지들의 세트를 적절하게 점수화할 수 있다.In various embodiments, the image class correlation module 308 may perform other natural language analysis of tagged words and phrases. In some embodiments, the image class correlation module 308 may allow for misspelling of tag words. The image class correlation module 308 may also take into account non-English languages, and the presence of non-English words (eg, “#cat” and “#gato” in the same series of tags) in association with the English equivalent. ). In each of these examples, the image class correlation module 308 may appropriately score a set of images with respect to a particular image class.

이미지 태그의 신택스를 분석하는 것에 추가로, 이미지 클래스 상관 모듈(308)은 이미지 생성 및/또는 태깅과 관련된 소셜 큐(social cue)들을 분석할 수 있다. 예컨대, 이미지 클래스 상관 모듈(308)은 이미지들의 샘플 세트와 관련된 위치 데이터를 분석할 수 있다. 더욱 구체적으로, 이미지 클래스 상관 모듈(308)은 이미지의 GPS 좌표를 평가할 수 있다. 예컨대, GPS 좌표는 사용자의 모바일 장치 상의 GPS 송수신기로부터 획득될 수 있거나, 이미지가 업로드될 때 또는 그 후에 이미지의 지리적 태깅(geographical tagging)으로부터 획득될 수 있다. 특정 이미지의 위치 데이터를 사용하여, 이미지 클래스 상관 모듈(308)은 특정 이미지 클래스에 관련된 점수를 특정 이미지에 할당할 수 있다. 예컨대, 이미지 클래스 상관 모듈(308)은 이미지가 샌프란시스코의 금문교(Golden Gate Bridge in San Francisco) 근처에서 찍혔다고 위치 데이터로부터 결정할 수 있다. 이미지 클래스 상관 모듈(308)은 이후 대교(bridge)의 이미지 클래스와 관련된 점수를 이미지에 할당할 수 있다.In addition to analyzing the syntax of an image tag, the image class correlation module 308 may analyze social cues related to image generation and/or tagging. For example, the image class correlation module 308 may analyze positional data associated with a sample set of images. More specifically, the image class correlation module 308 may evaluate the GPS coordinates of the image. For example, GPS coordinates may be obtained from a GPS transceiver on the user's mobile device, or from geographical tagging of the image when or after the image is uploaded. Using the location data of a particular image, the image class correlation module 308 may assign a score related to the particular image class to the particular image. For example, the image class correlation module 308 may determine from location data that the image was taken near the Golden Gate Bridge in San Francisco. The image class correlation module 308 may then assign a score related to the image class of the bridge to the image.

일부 실시예로, 이미지 클래스 상관 모듈(308)은 이미지들의 샘플 세트 중 특정 이미지의 생성자의 신원을 포함하는 소셜 큐를 분석할 수 있다. 이미지 클래스 상관 모듈(308)은 특정 엔티티들이 특정 이미지 클래스에서 이미지들을 생성할 가능성이 높은지 여부에 따라 점수를 할당할 수 있다. 예컨대, 엔티티가 과거에 특정 이미지 클래스에서 많은 이미지들을 생성했었다면, 이미지 클래스 상관 모듈(308)은 이미지 클래스와의 높은 정도의 상관관계를 반영하도록 엔티티의 특정 이미지를 점수화할 수 있다.In some embodiments, the image class correlation module 308 may analyze a social cue that includes the identity of a creator of a particular image among a sample set of images. The image class correlation module 308 may allocate a score according to whether certain entities are likely to generate images in a certain image class. For example, if an entity has generated many images from a particular image class in the past, the image class correlation module 308 may score a particular image of the entity to reflect a high degree of correlation with the image class.

일부 실시예로, 이미지 클래스 상관 모듈(308)은 이미지들의 샘플 세트 중 하나의 소유자가 이미지의 생성자 또는 이미지의 태거였는지를 표시하는 소셜 큐를 분석할 수 있다. 일부 실시예로, 이미지 클래스 상관 모듈(308)은 엔티티가 이미지를 소유하거나 또는 생성되거나 태그된 이미지에 대한 지식 재산권을 소유하는지 여부를 결정할 수 있다. 예컨대, 상표(예컨대, Coca-Cola® 로고)의 이미지 클래스와 관련하여, 이미지 클래스 상관 모듈(308)은, 이미지가 상표를 소유한 엔티티(예컨대, Coca-Cola® 사)에 의해 생성되거나 태그되었다면, 높은 정도의 상관관계를 반영하는 점수를 이미지에 제공할 수 있다. 이러한 가중치 기법은 상표등록된 이미지 또는 로고를 인식하는데 특히 유용한 것으로 증명될 수 있다.In some embodiments, the image class correlation module 308 may analyze a social cue indicating whether the owner of one of the sample set of images was the creator of the image or the tagger of the image. In some embodiments, the image class correlation module 308 may determine whether the entity owns the image or owns intellectual property rights for the created or tagged image. For example, with respect to the image class of a trademark (e.g., Coca-Cola® logo), the image class correlation module 308 may be used if the image was created or tagged by an entity that owns the trademark (e.g., Coca-Cola®). , A score reflecting a high degree of correlation can be provided to the image. This weighting technique can prove to be particularly useful for recognizing trademarked images or logos.

일부 실시예로, 이미지 클래스 상관 모듈(308)은 소셜 네트워킹 시스템에서 사람의 상태 또는 프로필을 표시하는 소셜 큐를 분석할 수 있다. 사람은 이미지들의 샘플 세트 중 특정 이미지의 생성자 및/또는 태거일 수 있다. 예컨대, 이미지 클래스 상관 모듈(308)은, 사람의 활동들(예컨대, 과거 게시물, 상태 업데이트, 친구관계, 메시지 이력, 과거 태그 이력, 과거 이미지 생성 이력, 이력의 브라우징, 온라인 프로필 등), 또는 관계들(예컨대, 친구들)에 기초하여 사람이 신뢰할 만한 이미지 생성자 및/또는 태거일 가능성이 높은지 여부를 결정할 수 있다. 이미지 클래스 상관 모듈(308)은 사람의 상태 또는 프로필이 사람이 일반적으로 또는 특히 이미지 클래스와 관련하여 신뢰할 만한 이미지 생성자 및/또는 태거임을 표시하는지 여부에 기초하여 하나 이상의 이미지에 다양한 점수를 할당할 수 있다.In some embodiments, the image class correlation module 308 may analyze a social queue indicating a person's status or profile in a social networking system. A person may be the creator and/or tagger of a particular image of a sample set of images. For example, the image class correlation module 308 may include human activities (eg, past posts, status updates, friend relationships, message history, past tag history, past image creation history, history browsing, online profile, etc.), or relationships. Based on their friends (eg, friends), one can determine whether a person is likely to be a reliable image creator and/or tagger. The image class correlation module 308 may assign various scores to one or more images based on whether the person's status or profile indicates that the person is a reliable image creator and/or predecessor in general or particularly with respect to the image class. have.

다양한 실시예로, 이미지 클래스 상관 모듈(308)은 다른 이미지 클래스들의 존재 또는 부존재를 표시하는 소셜 큐들을 분석할 수 있다. 예컨대, 이미지 클래스 상관 모듈(308)은 이미지가 보트(boat)를 포함하고, 결과적으로 이미지가 실내가 아닐 가능성이 높다고 결정할 수 있다. 컨텍스트 큐들(예컨대, 해시태그 "#indoors")의 존재는 이미지가 보트를 포함할 가능성이 낮다고 표시할 수 있다. 다른 예로, 이미지 클래스 상관 모듈(308)은 이미지에서 하나의 객체의 존재는, 다른 객체가 이미지에 존재하거나 존재하지 않을 수 있음을 의미할 수 있다고 결정할 수 있다. 예컨대, 이미지에서 소(cow)를 표시하는 컨텍스트 큐들의 존재는, 이미지가 소와 비행기 모두를 포함할 가능성이 낮다는 사실에 비추어 볼 때, 이미지 클래스 상관 모듈(308)이 비행기에 대한 음의 상관관계(negative correlation)를 제공하도록 할 수 있다. 다른 예로, 이미지에서 한마리의 닭을 표시하는 하나의 컨텍스트 큐의 존재는, 한마리의 닭을 포함하는 이미지가 다른 닭들을 포함할 가능성이 높다는 사실에 비추어 볼 때, 이미지 클래스 상관 모듈(308)이 이미지에서 다른 닭들에 대한 양의 상관관계를 제공하도록 할 수 있다. 마찬가지로, 양(sheep)의 존재는 목양견(sheepdog)에 대한 양의 상관관계(positive correlation)를 표시할 수 있다.In various embodiments, the image class correlation module 308 may analyze social cues indicating the presence or absence of other image classes. For example, the image class correlation module 308 may determine that the image includes a boat, and as a result, it is highly likely that the image is not indoors. The presence of context cues (eg, hashtag “#indoors”) may indicate that the image is unlikely to contain a boat. As another example, the image class correlation module 308 may determine that the existence of one object in the image may mean that another object may or may not exist in the image. For example, the presence of context cues representing cows in an image is that, given the fact that the image is unlikely to contain both a cow and an airplane, the image class correlation module 308 is negatively correlated with the airplane. You can try to provide a negative correlation. As another example, the existence of one context queue representing one chicken in the image, in light of the fact that the image containing one chicken is likely to contain other chickens, the image class correlation module 308 Can be made to provide positive correlations for other chickens. Likewise, the presence of a sheep can indicate a positive correlation for a sheepdog.

이미지 클래스 상관 모듈(308)은 위에서 논의된 것들을 포함하지만 이들로 제한되지 않고 하나 이상의: 업로더가 이미지의 소유자인지 여부, 이미지의 파일 타입, 이미지의 또는 이미지와 관련된 메타데이터, 이미지를 좋아한 사람들의 신원, 태그 또는 이미지를 열람한 사용자들의 숙련도 또는 경험, 이미지가 이미지 클래스에서 이전에 분류되었는지 여부 (및 그렇다면, 그 이미지 클래스와 관련된 이미지의 점수가 무엇인지) 등을 포함하는 다양한 소셜 큐들을 분석할 수 있다. 본 명세서에서 명시적으로 논의된 것들을 제외한 다른 소셜 큐들은 이미지들을 이미지 클래스와 상관시키고 점수화하기 위해 이미지 클래스 상관 모듈(308)에 의해 분석될 수 있다. 이미지 클래스 상관 모듈(308)은, 이러한 이미지들의 컨텍스트 큐가 하나 이상의 이미지 클래스와 높은 정도로 상관되는 정도에 기초하여 다양한 점수들을 다양한 이미지들에 할당할 수 있다.The image class correlation module 308 includes, but is not limited to, those discussed above, one or more: whether the uploader is the owner of the image, the file type of the image, the metadata of the image or related to the image, people who liked the image. Analyze various social cues including the identity of the user, the skill level or experience of users who viewed the tag or image, whether the image was previously classified in the image class (and, if so, what the score of the image associated with that image class), etc. can do. Social cues other than those explicitly discussed herein may be analyzed by the image class correlation module 308 to correlate and score images with the image class. The image class correlation module 308 may assign various scores to various images based on the degree to which the context queue of these images correlates to one or more image classes to a high degree.

점수를 이미지에 할당하는 것에 추가로, 이미지 클래스 상관 모듈(308)은 또한, 하나 이상의 이미지 클래스에 관해 이미지들의 샘플 세트를 순위화할 수 있다. 예컨대, 이미지 클래스 상관 모듈(308)은 이미지 클래스와 관련된 각각의 이미지의 점수에 기초하여 이미지들의 샘플 세트의 각각의 이미지를 순위화할 수 있다. 순위는 각각의 이미지의 이미지 클래스에 대한 상대적인 상관관계를 반영할 수 있다. 이미지 클래스 상관 모듈(308)은 이미지들의 트레이닝 세트를 생성하기 위해 가중치, 점수, 및/또는 순위를 사용할 수 있다.In addition to assigning a score to an image, the image class correlation module 308 may also rank a sample set of images with respect to one or more image classes. For example, the image class correlation module 308 may rank each image in a sample set of images based on the score of each image associated with the image class. The ranking may reflect the relative correlation of each image to the image class. Image class correlation module 308 may use weights, scores, and/or rankings to generate a training set of images.

트레이닝 이미지 데이터스토어(309)는 트레이닝 이미지 선택 모듈(301)로부터 이미지들의 트레이닝 세트를 수신할 수 있다. 트레이닝 이미지 데이터스토어(309)는 이미지들의 트레이닝 세트를 저장할 수 있다. 일부 실시예로, 트레이닝 이미지 데이터스토어(309)는 분류 트레이닝 모듈(310)이 이미지들의 트레이닝 세트를 액세스하는 것을 허용할 수 있다.The training image datastore 309 may receive a training set of images from the training image selection module 301. The training image datastore 309 may store a training set of images. In some embodiments, the training image datastore 309 may allow the classification training module 310 to access a training set of images.

분류기 트레이닝 모듈(310)은 트레이닝 이미지 데이터스토어(309)에 연결될 수 있고, 분류기(208)에 연결될 수 있다. 다양한 실시예로, 분류기 트레이닝 모듈(310)은 이미지 클래스를 인식하게끔 분류기(208)를 트레이닝하는 이미지들의 트레이닝 세트를 제공할 수 있다. 이미지들의 트레이닝 세트는, 특정 이미지 클래스와 관련하여 샘플 세트의 최상위의 이미지들의 임계 개수로 제한될 수 있다. 최상위 이미지들의 임계 개수는 값 K에 의해 표현될 수 있고, 여기서 K는 임의의 정수 값(integer value)이다. 예컨대, 트레이닝 이미지 수집 모듈(302)이 궁극적으로 분류기(208)가 "domestic housecats"에 대한 이미지 클래스를 인식하도록 트레이닝 하기 위한 이미지들의 샘플 세트로 1000개의 이미지들을 수집했다고 가정한다. 또한, 이미지 클래스 상관 모듈(308)이 이러한 이미지들 중 200개에 잔존하는 800개의 이미지들에 할당된 점수보다 높은 점수들을 할당했다고 가정한다. 이러한 경우, 분류기 트레이닝 모듈(310)은 분류기(208)에 상위 점수의 200개 이미지를 이미지들의 트레이닝 세트로서 제공할 수 있어서 분류기(208)가 가정의 집 고양이에 대한 이미지 클래스와 높게 상관되는 이미지들의 시각적 속성을 효율적으로 결정할 수 있도록 한다.The classifier training module 310 may be connected to the training image datastore 309 and may be connected to the classifier 208. In various embodiments, the classifier training module 310 may provide a training set of images to train the classifier 208 to recognize an image class. The training set of images may be limited to a threshold number of topmost images of the sample set with respect to a particular image class. The threshold number of top-level images can be represented by the value K, where K is an arbitrary integer value. For example, assume that the training image collection module 302 ultimately collected 1000 images with a sample set of images to train the classifier 208 to recognize the image class for “domestic housecats”. In addition, it is assumed that the image class correlation module 308 has assigned scores higher than the scores assigned to 800 images remaining in 200 of these images. In this case, the classifier training module 310 may provide the classifier 208 with 200 images of the high score as a training set of images, so that the classifier 208 Enables efficient determination of visual properties.

도 4는 일부 실시예에 따른, 이미지 분류 평가 모듈(206)의 예를 도시한다. 이미지 분류 평가 모듈(206)은 평가 이미지 수집 모듈(402), 분류기 입력 모듈(404), 시각적 패턴 템플릿 수집 모듈(405), 분류기 점수 수신 모듈(406), 시각적 속성 순위화 모듈(408), 및 평가된 이미지 제공 모듈(410)을 포함할 수 있다.4 shows an example of an image classification evaluation module 206, according to some embodiments. The image classification evaluation module 206 includes an evaluation image collection module 402, a classifier input module 404, a visual pattern template collection module 405, a classifier score receiving module 406, a visual attribute ranking module 408, and It may include an evaluated image providing module 410.

평가 이미지 수집 모듈(402)은 이미지 분류 평가 모듈(206)의 다른 모듈들에 연결될 수 있다. 일부 실시예로, 평가 이미지 수집 모듈(402)은 미분류 이미지 데이터스토어(202)로부터 이미지 분류를 위한 이미지들의 평가 세트를 수집할 수 있다. 이미지들의 평가 세트는 이미지들의 샘플 세트 및 이미지들의 트레이닝 세트와 동일하거나 상이할 수 있다. 이미지들의 평가 세트는, 이미지들의 샘플 세트와 이미지들의 트레이닝 세트와는 상이한 개수의 이미지들(예컨대, 더 많은 수의 이미지들)을 포함할 수 있다. 다양한 실시예로, 이미지들의 평가 세트는 미분류 이미지 데이터스토어(202)로부터 무작위로 또는 선택적으로 획득될 수 있다.The evaluation image collection module 402 may be connected to other modules of the image classification evaluation module 206. In some embodiments, the evaluation image collection module 402 may collect an evaluation set of images for image classification from the unclassified image data store 202. The evaluation set of images may be the same or different from the sample set of images and the training set of images. The evaluation set of images may include a different number of images (eg, a greater number of images) than the sample set of images and the training set of images. In various embodiments, the evaluation set of images may be obtained randomly or selectively from unclassified image datastore 202.

시각적 패턴 템플릿 수집 모듈(405)은 이미지 분류 평가 모듈(206)의 다른 모듈들에 연결될 수 있고, 이미지 분류 트레이닝 모듈(204)에 연결될 수 있다. 일부 실시예로, 시각적 패턴 템플릿 수집 모듈(405)은 특정 이미지 클래스에 상응하는 시각적 패턴 템플릿을 이미지 분류 트레이닝 모듈(204)로부터 수신할 수 있다. 시각적 패턴 템플릿 수집 모듈(405)은 분류기 입력 모듈(404)에 시각적 패턴 템플릿을 더 제공할 수 있다.The visual pattern template collection module 405 may be connected to other modules of the image classification evaluation module 206 and may be connected to the image classification training module 204. In some embodiments, the visual pattern template collection module 405 may receive a visual pattern template corresponding to a specific image class from the image classification training module 204. The visual pattern template collection module 405 may further provide a visual pattern template to the classifier input module 404.

분류기 입력 모듈(404)은 이미지 분류 평가 모듈(206)의 다른 모듈들에 연결될 수 있다. 일부 실시예로, 분류기 입력 모듈(404)은 이미지들의 평가 세트를 평가 이미지 수집 모듈(402)로부터 수신할 수 있다. 분류기 입력 모듈(404)은 또한, 시각적 패턴 템플릿 수집 모듈(405)로부터 특정 이미지 클래스에 상응하는 시각적 패턴 템플릿을 수신할 수 있다. 분류기 입력 모듈(404)은, 분류기(208)가 이미지들의 평가 세트 각각에서 시각적 패턴 템플릿의 인식을 시도하도록 명령할 수 있다.The classifier input module 404 may be connected to other modules of the image classification evaluation module 206. In some embodiments, the classifier input module 404 may receive a rating set of images from the rating image collection module 402. The classifier input module 404 may also receive a visual pattern template corresponding to a specific image class from the visual pattern template collection module 405. The classifier input module 404 may instruct the classifier 208 to attempt to recognize the visual pattern template in each evaluation set of images.

분류기 점수 수신 모듈(406)은 이미지 분류 평가 모듈(206)의 다른 모듈들에 연결될 수 있다. 일부 실시예로, 분류기 점수 수신 모듈(406)은 분류기(208)로부터 이미지들의 평가 세트 중 특정 이미지들이 시각적 패턴 템플릿과 상관되는 정도를 표시하는 점수들을 수신할 수 있다.The classifier score receiving module 406 may be connected to other modules of the image classification evaluation module 206. In some embodiments, the classifier score receiving module 406 may receive scores from the classifier 208 indicating a degree to which specific images of the evaluation set of images are correlated with the visual pattern template.

시각적 속성 순위화 모듈(408)은 이미지 분류 평가 모듈(206)의 다른 모듈들에 연결될 수 있다. 다양한 실시예로, 시각적 속성 순위화 모듈(408)은, 이미지들의 평가 세트의 각각의 이미지의 점수가 시각적 패턴 템플릿과 상관되는 정도에 기초하여 이미지들의 평가 세트를 순위화할 수 있다. 일부 실시예로, 시각적 속성 순위화 모듈(408)은, 인덱싱 또는 검색을 위한 이미지들의 분류된 세트를 구성하는 이미지들의 재순위화된(re-ranked) 세트를 제공할 수 있다.The visual attribute ranking module 408 may be connected to other modules of the image classification evaluation module 206. In various embodiments, the visual attribute ranking module 408 may rank the evaluation set of images based on the degree to which the score of each image in the evaluation set of images correlates with the visual pattern template. In some embodiments, the visual attribute ranking module 408 may provide a re-ranked set of images that make up a classified set of images for indexing or search.

평가된 이미지 제공 모듈(410)은 이미지 분류 평가 모듈(206)의 다른 모듈들에 연결될 수 있다. 일부 실시예로, 평가된 이미지 제공 모듈(410)은 시각적 속성 순위화 모듈(408)로부터 재순위화되거나 분류된 이미지들을 수신할 수 있다. 평가된 이미지 제공 모듈(410)은, 각각의 재순위화된 이미지가 특정된 이미지 클래스와 상관되는 정도를 반영하는 인덱스 또는 다른 정보와 함께 재순위화된 이미지를 분류된 이미지 데이터스토어(210)에 제공할 수 있다.The evaluated image providing module 410 may be connected to other modules of the image classification evaluation module 206. In some embodiments, the evaluated image providing module 410 may receive re-ranked or classified images from the visual attribute ranking module 408. The evaluated image providing module 410 stores the re-ranked image together with an index or other information reflecting the degree to which each re-ranked image is correlated with the specified image class in the classified image data store 210. Can provide.

도 5는 일부 실시예에 따른, 분류기(208)의 예를 도시한다. 분류기(208)는 시각적 패턴 생성 모듈(502), 시각적 패턴 인식 모듈(504), 및 분류된 이미지 인터페이스 모듈(506)을 포함할 수 있다.5 shows an example of a classifier 208, in accordance with some embodiments. The classifier 208 may include a visual pattern generation module 502, a visual pattern recognition module 504, and a classified image interface module 506.

시각적 패턴 생성 모듈(502)은 시각적 패턴 인식 모듈(504)에 연결될 수 있다. 시각적 패턴 생성 모듈(502)은, 분류기(208)의 트레이닝 단계 동안에, 이미지 분류 트레이닝 모듈(204)로부터 이미지들의 트레이닝 세트를 수신할 수 있고, 이미지 클래스와 관련된 이미지들의 트레이닝 세트에 공통적인 특징들의 시각적 패턴 템플릿을 생성할 수 있다. 시각적 패턴 템플릿을 생성하기 위해, 시각적 패턴 생성 모듈(502)은 가령 이미지들의 트레이닝 세트 각각에서 로컬 이미지 특징들의 어휘의 발생을 계산(count)하는 컴퓨터 비젼(vision) 또는 기술에서 단어 가방식 모델과 같은 시각적 패턴 인식 알고리즘을 구현할 수 있다. 일실시예로, 시각적 패턴 생성 모듈(502)은 이미지를 세그먼트로 분할(break up)할 수 있고, 시각적 특징의 존재에 대해 이미지의 각각의 세그먼트를 평가할 수 있다. 시각적 패턴 생성 모듈(502)은 또한, 이미지의 각각의 세그먼트에서 식별된 시각적 특징들을 추출할 수 있고, 시각적 특징들을 벡터로 표현할 수 있다. 그 벡터를 사용하여, 시각적 패턴 생성 모듈(502)은 이미지들의 트레이닝 세트에 공통되는 특징들의 시각적 패턴 템플릿을 생성할 수 있다.The visual pattern generation module 502 may be connected to the visual pattern recognition module 504. The visual pattern generation module 502 may receive a training set of images from the image classification training module 204, during the training phase of the classifier 208, and visualize features common to the training set of images associated with the image class. You can create a pattern template. To create a visual pattern template, the visual pattern generation module 502 can be used, such as a word bag model in a computer vision or technique that counts the occurrence of a vocabulary of local image features in each of the training sets of images. Visual pattern recognition algorithm can be implemented. In one embodiment, the visual pattern generation module 502 may break up the image into segments and evaluate each segment of the image for the presence of a visual feature. The visual pattern generation module 502 may also extract visual features identified in each segment of the image, and express the visual features as a vector. Using the vector, the visual pattern generation module 502 can generate a visual pattern template of features common to the training set of images.

다양한 실시예로, 시각적 패턴 생성 모듈(502)은 이미지들의 트레이닝 세트에서 가장 많이 공통적으로 발견되는 특징들에 기초하여 시각적 패턴 템플릿을 생성할 수 있다. 예컨대, 이러한 실시예들에서, 이미지 분류 트레이닝 모듈(204)은 시각적 패턴 생성 모듈(502)에 정수 "K" 개의 이미지들을 제공할 수 있고, 시각적 패턴 생성 모듈(502)은 K개의 이미지들에서 가장 많이 공통적으로 발견되는 특징들을 인식할 수 있다.In various embodiments, the visual pattern generation module 502 may generate a visual pattern template based on features most commonly found in a training set of images. For example, in these embodiments, the image classification training module 204 may provide an integer “K” images to the visual pattern generation module 502, and the visual pattern generation module 502 is the most Many commonly found features can be recognized.

시각적 패턴 인식 모듈(504)은 시각적 패턴 생성 모듈(502)에 연결될 수 있다. 시각적 패턴 인식 모듈(504)은 평가 단계 동안에, 이미지 분류 평가 모듈(206)로부터 이미지들의 평가 세트를 수신할 수 있고, 이미지들의 평가 세트의 각각이 이미지 클래스와 관련된 특정 시각적 패턴 템플릿과 상관되는 정도를 식별할 수 있다. 일부 실시예로, 시각적 패턴 인식 모듈(504)은 가령 단어 가방식 알고리즘과 같은 시각적 패턴 인식을 이용할 수 있다. 시각적 패턴 인식은 일부 실시예들에서, 신경 네트워크 이미지 분류 기술을 포함할 수 있다. 시각적 패턴 인식 모듈(504)은 이미지들의 평가 세트 내에서 다양한 시각적 특징들을 결정할 수 있고, 각각의 이미지에 대해, 추출된 시각적 특징들을 벡터들의 세트로 표현할 수 있다. 시각적 패턴 인식 모듈(504)은 또한, 이미지들의 평가 세트의 각각을 위한 벡터들을 특징들의 다양한 시각적 패턴 템플릿과 비교할 수 있다. 일부 실시예로, 시각적 패턴 인식 모듈(504)은 이미지들의 평가 세트의 각각이 트레이닝 단계 동안 생성된 다양한 시각적 패턴 템플릿들과 상관되는 정도를 점수화할 수 있다.The visual pattern recognition module 504 may be connected to the visual pattern generation module 502. The visual pattern recognition module 504 may receive an evaluation set of images from the image classification evaluation module 206 during the evaluation step, and determine the degree to which each of the evaluation sets of images is correlated with a specific visual pattern template associated with the image class Can be identified. In some embodiments, the visual pattern recognition module 504 may use visual pattern recognition, such as a word bag algorithm. Visual pattern recognition may include neural network image classification techniques, in some embodiments. The visual pattern recognition module 504 may determine various visual features within the evaluation set of images, and for each image, may express the extracted visual features as a set of vectors. The visual pattern recognition module 504 may also compare vectors for each of the evaluation sets of images to various visual pattern templates of features. In some embodiments, the visual pattern recognition module 504 may score the degree to which each of the evaluation set of images correlates with various visual pattern templates generated during the training phase.

분류된 이미지 인터페이스 모듈(506)은 시각적 패턴 생성 모듈(502) 및 시각적 패턴 인식 모듈(504)에 연결될 수 있다. 일부 실시예로, 분류된 이미지 인터페이스 모듈(506)은 시각적 패턴 인식 모듈(504)로부터 분류된 이미지들을 그들의 점수와 함께 수신할 수 있다. 분류된 이미지 인터페이스 모듈(506)은 분류된 이미지 데이터스토어(210)에 분류된 이미지들 및/또는 점수들을 제공할 수 있다. 분류된 이미지 인터페이스 모듈(506)은 또한, 시각적 패턴 템플릿을 분류된 이미지 데이터스토어(210)에 제공할 수 있다.The classified image interface module 506 may be connected to the visual pattern generation module 502 and the visual pattern recognition module 504. In some embodiments, the classified image interface module 506 may receive the classified images from the visual pattern recognition module 504 along with their scores. The classified image interface module 506 may provide classified images and/or scores to the classified image data store 210. The classified image interface module 506 may also provide a visual pattern template to the classified image data store 210.

도 6은 일부 실시예에 따른, 이미지를 분류하기 위한 프로세스(600)의 예를 도시한다. 프로세스(600)는 도 2a에 도시된 이미지 분류 모듈(104)과 함께 논의된다. 프로세스(600)는 트레이닝 단계(600a) 및 평가 단계(600b)를 포함할 수 있다. 프로세스(600)의 블록(602)에서, 이미지 분류 트레이닝 모듈(204)은 미분류 이미지 데이터스토어(202)로부터 이미지들의 샘플 세트를 수집할 수 있다. 블록(604)에서, 이미지 분류 트레이닝 모듈(204)은 이미지들의 샘플 세트와 관련된 컨텍스트 큐를 수집할 수 있다. 블록(606)에서, 이미지 분류 트레이닝 모듈(204)은, 본 명세서에서 논의되는 이미지들의 트레이닝 세트를 생성하기 위해 이미지들의 관심있는 이미지 클래스에 대한 상관관계에 기초하여 이미지들을 점수화하고 순위화하는데 컨텍스트 큐들을 사용할 수 있다. 점수화 및 순위화에 기초하여, 이미지들의 트레이닝 세트가 결정될 수 있다. 블록(607)에서, 이미지 분류 트레이닝 모듈(204)은 트레이닝 세트에 기초하여 분류기(208)를 트레이닝할 수 있다. 블록(608)에서, 이미지 분류 평가 모듈(206)은 미분류 이미지 데이터스토어(202)로부터 이미지들의 평가 세트를 수집할 수 있다. 블록(610)에서, 분류기(208)는 이미지들의 평가 세트의 시각적 속성을 이미지 클래스와 관련된 시각적 패턴 템플릿들의 세트와 비교할 수 있다. 블록(612)에서, 분류기(208)는 상기 비교에 기초하여 이미지들의 평가 세트 중 각각의 이미지가 이미지 클래스에 속하는지 여부를 결정할 수 있다.6 shows an example of a process 600 for classifying an image, in accordance with some embodiments. The process 600 is discussed in conjunction with the image classification module 104 shown in FIG. 2A. Process 600 may include a training step 600a and an evaluation step 600b. At block 602 of process 600, image classification training module 204 may collect a sample set of images from unclassified image datastore 202. At block 604, the image classification training module 204 may collect a context queue associated with a sample set of images. At block 606, the image classification training module 204 scores and ranks the images based on their correlation to the image class of interest to generate the training set of images discussed herein. You can use them. Based on scoring and ranking, a training set of images can be determined. At block 607, the image classification training module 204 may train the classifier 208 based on the training set. At block 608, the image classification evaluation module 206 may collect a rating set of images from the unclassified image datastore 202. At block 610, classifier 208 may compare the visual attribute of the evaluation set of images to a set of visual pattern templates associated with the image class. At block 612, the classifier 208 may determine whether each image in the evaluation set of images belongs to an image class based on the comparison.

도 7은 일부 실시예에 따른, 분류기를 트레이닝하기 위한 프로세스(700)의 예를 도시한다. 프로세스(700)는 도 3에 도시된 이미지 분류 트레이닝 모듈(204)과 함께 논의된다. 블록(701)에서, 이미지 클래스 특정 모듈(306)은 분류기(208)가 인식하도록 트레이닝하기 위한 이미지 클래스를 특정할 수 있다. 블록(702)에서, 트레이닝 이미지 수집 모듈(302)은 이미지들의 샘플 세트를 수신할 수 있고, 이미지들의 샘플 세트의 각각은 관련된 컨텍스트 큐들을 가진다. 블록(704)에서, 컨텍스트 큐 추출 모듈(304)은 이미지들의 샘플 세트로부터 컨텍스트 큐를 추출할 수 있다. 블록(708)에서, 이미지 클래스 상관 모듈(308)은 이미지와 관련된 하나 이상의 컨텍스트 큐에 기초하여 이미지들의 샘플 세트에서 각각의 이미지와 이미지 클래스 간의 상관관계를 점수화할 수 있다. 블록(710)에서, 이미지 클래스 상관 모듈(308)은 각각의 이미지의 점수에 기초하여 이미지들의 샘플 세트를 순위화할 수 있다. 블록(712)에서, 이미지 클래스 상관 모듈(308)은 샘플 세트로부터 분류기(208)를 트레이닝할 이미지들의 트레이닝 세트를 결정할 수 있다. 일부 실시예로, 트레이닝 세트의 결정은 점수화에 기초하여 샘플 세트에서 각각의 이미지를 순위화하는 것을 포함할 수 있다. 결정은 또한, 이미지들의 샘플 세트 중 최상위 점수의 서브세트를 선택하는 것을 포함할 수 있다. 최상위 점수의 서브세트는 이미지들의 트레이닝 세트를 포함할 수 있다. 블록(714)에서, 분류 트레이닝 모듈(310)은 이미지들의 트레이닝 세트에서 공통된 시각적 패턴들을 식별하도록 분류기(208)를 트레이닝할 수 있다.7 shows an example of a process 700 for training a classifier, in accordance with some embodiments. The process 700 is discussed in conjunction with the image classification training module 204 shown in FIG. 3. At block 701, the image class specification module 306 may specify an image class for training to be recognized by the classifier 208. At block 702, training image collection module 302 may receive a sample set of images, each of which has an associated context cue. At block 704, the context queue extraction module 304 may extract the context queue from the sample set of images. At block 708, the image class correlation module 308 may score a correlation between each image and the image class in the sample set of images based on one or more context cues associated with the image. At block 710, the image class correlation module 308 may rank a sample set of images based on the score of each image. At block 712, the image class correlation module 308 may determine a training set of images to train the classifier 208 from the sample set. In some embodiments, determining the training set may include ranking each image in the sample set based on scoring. The determination may also include selecting a subset of the highest score among the sample set of images. The subset of the top score may include a training set of images. At block 714, the classification training module 310 can train the classifier 208 to identify common visual patterns in the training set of images.

도 8은 일부 실시예에 따른, 이미지들을 분류하기 위한 프로세스(800)의 예를 도시한다. 프로세스(800)는 도 4에 도시된 이미지 분류 평가 모듈(206) 및 도 5에 도시된 분류기(208)와 함께 논의된다. 블록(802)에서, 평가 이미지 수집 모듈(402)은 미분류 이미지 데이터스토어(202)로부터 이미지들의 평가 세트를 수집할 수 있다. 블록(804)에서, 평가 이미지 수집 모듈(402)은 이미지들의 평가 세트의 시각적 속성을 평가하기 위한 이미지 클래스를 결정할 수 있다. 일부 실시예로, 분류기 입력 모듈(404)은 이미지들의 평가 세트 및 이미지 클래스를 분류기(208)에 제공할 수 있다. 블록(806)에서, 시각적 패턴 인식 모듈(504)은, 이미지 클래스와 관련된 시각적 패턴 템플릿에 대한 이미지들의 평가 세트의 각각의 이미지의 상관관계를 점수화할 수 있다. 블록(808)에서, 시각적 패턴 인식 모듈(504)은 이미지들의 평가 세트 중 각각의 이미지의 점수화된 상관관계에 기초하여 이미지들의 평가 세트 중 각각의 이미지를 순위화할 수 있다. 블록(810)에서, 시각적 패턴 인식 모듈(504)은 이미지들의 평가 세트 중 최상위 점수의 서브세트를 이미지 클래스와 관련시킬 수 있다. 일부 실시예로, 분류된 이미지 인터페이스 모듈(506)은 이후 최상위 점수의 서브세트를 소셜 네트워킹 시스템에서 다양한 다른 모듈에 제공할 수 있다.8 shows an example of a process 800 for classifying images, in accordance with some embodiments. The process 800 is discussed with the image classification evaluation module 206 shown in FIG. 4 and the classifier 208 shown in FIG. 5. At block 802, the evaluation image collection module 402 may collect a rating set of images from the unclassified image datastore 202. At block 804, the evaluation image collection module 402 may determine an image class for evaluating the visual attribute of the evaluation set of images. In some embodiments, the classifier input module 404 may provide an image class and a rating set of images to the classifier 208. At block 806, the visual pattern recognition module 504 may score a correlation of each image in the evaluation set of images to the visual pattern template associated with the image class. At block 808, the visual pattern recognition module 504 may rank each image in the evaluation set of images based on the scored correlation of each image in the evaluation set of images. At block 810, the visual pattern recognition module 504 may associate a subset of the highest score among the evaluation set of images with the image class. In some embodiments, the classified image interface module 506 may then provide a subset of the highest score to various other modules in the social networking system.

도 9는 일부 실시예에 따른, 이미지 분류 모듈(104)에 의한 이미지들의 그룹의 컨텍스트적으로 생성된 분류의 미리보기(900)의 예를 도시한다. 미리보기(900)는 이미지들의 미분류 그룹(902), 제1 이미지들의 분류된 그룹(904), 제2 이미지들의 분류된 그룹(906), 제3 이미지들의 분류된 그룹(908), 및 제4 이미지들의 분류된 그룹(910)을 포함한다. 도 9의 예에서, 이미지들의 미분류 그룹(902)은 관련된 컨텍스트 큐를 갖는 이미지들의 그룹을 포함한다. 컨텍스트 큐는 이미지 태그 및 다른 컨텍스트 정보를 포함할 수 있다. 제1 이미지들의 분류된 그룹(904), 제2 이미지들의 분류된 그룹(906), 제3 이미지들의 분류된 그룹(908), 및 제4 이미지들의 분류된 그룹(910)을 생성하기 위해, 하나 이상의 이미지들의 미분류 그룹(902)이 이미지 분류 트레이닝 모듈(204)에 제공되었다. 이미지 분류 트레이닝 모듈(204)은 트레이닝 단계 동안에, 4개의 이미지 클래스들, 즉: 합성된 외관/느낌을 갖는 이미지들의 제1 이미지 클래스, 클로즈-업(close-up) 이미지들의 제2 이미지 클래스, 실외에서 찍힌 이미지들의 제3 이미지 클래스, 및 물을 묘사하는 이미지들의 제4 이미지 클래스와 관련된 시각적 속성들을 인식하도록 분류기(208)를 트레이닝하기 위해, 컨텍스트 큐에 기초하여 분류된 이미지들의 미분류 그룹(902)의 세트들을 사용했다. 이미지 분류 평가 모듈(206)은 평가 단계 동안에, 이미지들의 미분류 그룹(902)의 시각적 속성들을 4개의 이미지 클래스들과 관련된 시각적 패턴 템플릿들과 비교하도록 트레이닝된 분류기(208)에 이미지들의 미분류 그룹(902)을 제공하였다. 분류기(208)의 출력은, 분류기(208)가 인식하도록 트레이닝된 4개의 이미지 클래스들에 상응하였다. 더욱 구체적으로, 분류기(208)는, 제1 이미지 클래스에 상응하는 제1 이미지들의 분류된 그룹(904); 제2 이미지 클래스에 상응하는 제2 이미지들의 분류된 그룹(906); 제3 이미지 클래스에 상응하는 제3 이미지들의 분류된 그룹(908); 및 제4 이미지 클래스에 상응하는 제4 이미지들의 분류된 그룹(910)을 생성하였다.9 shows an example of a preview 900 of a contextually generated classification of a group of images by the image classification module 104, in accordance with some embodiments. The preview 900 includes an unclassified group 902 of images, a classified group 904 of first images, a classified group 906 of second images, a classified group 908 of third images, and a fourth image. Includes a classified group 910 of images. In the example of FIG. 9, the unclassified group 902 of images includes a group of images with an associated context queue. The context queue may contain image tags and other context information. To create a classified group 904 of first images, a classified group 906 of second images, a classified group 908 of third images, and a classified group 910 of fourth images, one The unclassified group 902 of the above images was provided to the image classification training module 204. During the training phase, the image classification training module 204 includes four image classes, namely: a first image class of images with a synthesized look/feel, a second image class of close-up images, and outdoor. In order to train the classifier 208 to recognize the visual properties associated with the third image class of images taken at and the fourth image class of images depicting water, the unclassified group 902 of images classified based on the context cue. Used sets of. The image classification evaluation module 206 provides an unclassified group 902 of images to a classifier 208 trained to compare the visual properties of the unclassified group 902 of images with visual pattern templates associated with the four image classes during the evaluation phase. ) Was provided. The output of the classifier 208 corresponded to the four image classes that the classifier 208 was trained to recognize. More specifically, the classifier 208 includes a classified group 904 of first images corresponding to the first image class; A classified group 906 of second images corresponding to a second image class; A classified group 908 of third images corresponding to the third image class; And a classified group 910 of fourth images corresponding to the fourth image class.

도 10은 일부 실시예에 따른, 이미지 분류 모듈(104)에 의한 이미지들의 그룹의 컨텍스트적으로 생성된 이미지 필터 분류의 미리보기(1000)의 예를 도시한다. 미리보기(1000)는 이미지들의 미분류 그룹(1002) 및 이미지들의 분류된 그룹(1004)을 포함한다. 이미지들의 미분류 그룹(1002)은 소셜 네트워킹 시스템에서 미분류 이미지들의 일부를 표현할 수 있다. 이미지들의 샘플 세트는 태그 및 다른 컨텍스트 큐들과 관련되었다. 그것의 컨텍스트 큐들에 기초하여, 이미지들의 샘플 세트의 각각의 이미지는 관심있는 이미지 클래스와의 상관관계에 기초하여 점수화되었다. 이 예에서, "cat"은 관심있는 이미지 클래스이다. 이미지들의 샘플 세트의 이미지들은 이후 그들의 점수에 기초하여 순위화되었다. 이 예에서, 이미지들의 샘플 세트의 최상위 200개의 이미지들이 이미지들의 트레이닝 세트로 지정되었다. 이미지들의 트레이닝 세트는 이후, 분류기가 이미지들에 묘사된 공통의 시각적 패턴을 인식하도록 트레이닝하는데 적용되었다. 시각적 패턴 템플릿은, 트레이닝 세트에 기초하여 생성되었고, "cat" 이미지 클래스와 관련되었다. 이미지들의 미분류 그룹(1002)은 이미지들의 평가 세트로 이용되었다. 이미지들의 평가 세트는 "cat" 이미지 클래스와 관련된 시각적 패턴 템플릿과의 그들의 상관관계를 점수화하기 위해 분류기에 적용되었다. 이미지들의 평가 세트의 점수가 순위화되었고, 이미지들의 평가 세트에서 최상위의 이미지들은 이미지들의 분류된 그룹(1004)으로 선택되었다.10 shows an example of a preview 1000 of a contextually generated image filter classification of a group of images by the image classification module 104, according to some embodiments. The preview 1000 includes an unclassified group 1002 of images and a classified group 1004 of images. The unclassified group 1002 of images may represent some of the unclassified images in a social networking system. A sample set of images was associated with tags and other context cues. Based on its context cues, each image in the sample set of images was scored based on correlation with the image class of interest. In this example, "cat" is the image class of interest. Images of the sample set of images were then ranked based on their score. In this example, the top 200 images of the sample set of images have been designated as the training set of images. The training set of images was then applied to train the classifier to recognize a common visual pattern depicted in the images. The visual pattern template was created based on the training set and was associated with the "cat" image class. The unclassified group 1002 of images was used as an evaluation set of images. A rating set of images was applied to a classifier to score their correlation with the visual pattern template associated with the "cat" image class. The scores of the rating set of images were ranked, and the topmost images in the rating set of images were selected as a classified group 1004 of images.

소셜 네트워킹 시스템 - 예시적인 구현예Social Networking System-Example Implementation

도 11은 일부 실시예에 따른, 컨텍스트 이미지 분류 시스템(102)을 구현하는 예시적인 소셜 네트워킹 시스템(1100)의 네트워크 다이어그램이다. 소셜 네트워킹 시스템(1100)은 하나 이상의 사용자 장치(1110), 하나 이상의 외부 시스템(1120), 소셜 네트워킹 시스템(1130), 및 네트워크(1150)를 포함한다. 일실시예로, 전술한 실시예들과 연계하여 논의된 소셜 네트워킹 시스템은 소셜 네트워킹 시스템(1130)으로 구현될 수 있다. 예시적인 목적을 위해, 도 11에 도시된 소셜 네트워킹 시스템(1100)의 실시예는, 단일 외부 시스템(1120) 및 단일 사용자 장치(1110)를 포함한다. 하지만, 다른 실시예로, 소셜 네트워킹 시스템(1100)은 더 많은 사용자 장치(1110) 및/또는 더 많은 외부 시스템(1120)을 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(1130)은 소셜 네트워킹 시스템 제공자에 의해 운영되는 한편, 외부 시스템(1120)은, 상이한 엔티티들에 의해 운영될 수 있는 점에서 소셜 네트워킹 시스템(1130)으로부터 분리되어 있다. 하지만, 다양한 실시예로, 소셜 네트워킹 시스템(1130) 및 외부 시스템(1120)은 소셜 네트워킹 시스템(1130)의 사용자들 (또는 구성원들)에게 소셜 네트워킹 서비스를 제공하기 위해 함께 동작한다. 이러한 측면에서, 소셜 네트워킹 시스템(1130)은, 외부 시스템(1120)과 같은 다른 시스템들이 인터넷을 통해 사용자에게 소셜 네트워킹 서비스 및 기능을 제공하는데 사용할 수 있는 플랫폼 또는 백본을 제공한다.11 is a network diagram of an exemplary social networking system 1100 that implements a context image classification system 102, in accordance with some embodiments. The social networking system 1100 includes one or more user devices 1110, one or more external systems 1120, a social networking system 1130, and a network 1150. In one embodiment, the social networking system discussed in connection with the above-described embodiments may be implemented as the social networking system 1130. For illustrative purposes, the embodiment of the social networking system 1100 shown in FIG. 11 includes a single external system 1120 and a single user device 1110. However, in other embodiments, the social networking system 1100 may include more user devices 1110 and/or more external systems 1120. In a specific embodiment, the social networking system 1130 is operated by a social networking system provider, while the external system 1120 is separate from the social networking system 1130 in that it can be operated by different entities. . However, in various embodiments, social networking system 1130 and external system 1120 operate together to provide social networking services to users (or members) of social networking system 1130. In this respect, social networking system 1130 provides a platform or backbone through which other systems, such as external systems 1120, can be used to provide social networking services and functions to users over the Internet.

사용자 장치(1110)는 사용자로부터 입력을 수신하고 네트워크(1150)를 통해 데이터를 송수신할 수 있는 하나 이상의 컴퓨팅 장치를 포함한다. 일실시예로, 사용자 장치(1110)는 예컨대, Microsoft Windows 호환가능한 운영 시스템(OS), Apple OS X, 및/또는 리눅스 배포판을 실행하는 종래의 컴퓨터 시스템이다. 다른 실시예로, 사용자 장치(1110)는 가령 스마트폰, 태블릿, PDA(personal digital assistant), 모바일 전화 등과 같은 컴퓨터 기능을 갖는 장치일 수 있다. 사용자 장치(1110)는 네트워크(1150)를 통해 통신하도록 구성된다. 사용자 장치(1110)는 예컨대, 사용자 장치(1110)의 사용자가 소셜 네트워킹 시스템(1130)과 상호작용할 수 있게 하는 브라우저 애플리케이션과 같은 애플리케이션을 실행할 수 있다. 또 다른 실시예로, 사용자 장치(1110)는 iOS 및 ANDROID와 같은 사용자 장치(1110)의 네이티브 운영 시스템에 의해 제공되는 API(application programming interface)를 통해 소셜 네트워킹 시스템(1130)과 상호작용한다. 사용자 장치(1110)는, 유선 및/또는 무선 통신 시스템을 사용하는 로컬 영역 및/또는 광역 네트워크의 임의의 조합을 포함할 수 있는 네트워크(1150)를 통해 외부 시스템(1120) 및 소셜 네트워킹 시스템(1130)과 통신하도록 구성된다.User device 1110 includes one or more computing devices capable of receiving input from a user and transmitting and receiving data through network 1150. In one embodiment, the user device 1110 is a conventional computer system running, for example, a Microsoft Windows compatible operating system (OS), Apple OS X, and/or a Linux distribution. In another embodiment, the user device 1110 may be a device having a computer function such as a smart phone, a tablet, a personal digital assistant (PDA), a mobile phone, or the like. User device 1110 is configured to communicate over network 1150. User device 1110 may run an application such as a browser application that allows a user of user device 1110 to interact with social networking system 1130. In another embodiment, the user device 1110 interacts with the social networking system 1130 through an application programming interface (API) provided by the native operating system of the user device 1110 such as iOS and ANDROID. User device 1110 may include external systems 1120 and social networking systems 1130 via network 1150, which may include any combination of local area and/or wide area networks using wired and/or wireless communication systems. ) To communicate with.

일실시예로, 네트워크(1150)는 표준 통신 기술 및 프로토콜을 사용한다. 따라서, 네트워크(1150)는 Ethernet, 802.11, WiMAX(worldwide interoperability for microwave access), 3G, 4G, CDMA, GSM, LTE, DSL(digital subscriber line) 등과 같은 기술을 사용하는 링크를 포함할 수 있다. 유사하게, 네트워크(1150)에서 사용되는 네트워킹 프로토콜은 MPLS(multiprotocol label switching), TCP/IP(transmission control protocol/Internet protocol), UDP(User Datagram Protocol), HTTP(hypertext transport protocol), SMTP(simple mail transfer protocol), FTP(file transfer protocol) 등을 포함할 수 있다. 네트워크(1150) 상에서 교환되는 데이터는 HTML(hypertext markup language) 및 XML(extensible markup language)을 포함하는 기술 및/또는 포맷을 사용하여 표현될 수 있다. 추가로, 모든 또는 일부 링크는 SSL(secure sockets layer), TLS(transport layer security), 및 IPsec(Internet Protocol security)와 같은 종래의 암호화 기술을 사용하여 암호화될 수 있다.In one embodiment, network 1150 uses standard communication technologies and protocols. Accordingly, the network 1150 may include links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 3G, 4G, CDMA, GSM, LTE, and digital subscriber line (DSL). Similarly, networking protocols used in the network 1150 include multiprotocol label switching (MPLS), transmission control protocol/Internet protocol (TCP/IP), User Datagram Protocol (UDP), hypertext transport protocol (HTTP), and simple mail (SMTP). transfer protocol), FTP (file transfer protocol), and the like. Data exchanged on the network 1150 may be expressed using a technology and/or format including hypertext markup language (HTML) and extensible markup language (XML). Additionally, all or some of the links may be encrypted using conventional encryption techniques such as secure sockets layer (SSL), transport layer security (TLS), and Internet Protocol security (IPsec).

일실시예로, 사용자 장치(1110)는 브라우저 애플리케이션(1112)을 사용하여, 외부 시스템(1120) 및 소셜 네트워킹 시스템(1130)으로부터 수신된 마크업 언어 문서(1114)를 프로세싱함으로써 외부 시스템(1120) 및/또는 소셜 네트워킹 시스템(1130)으로부터의 컨텐츠를 디스플레이할 수 있다. 마크업 언어 문서(1114)는 컨텐츠 및 컨텐츠의 포맷 또는 프레젠테이션을 기술하는 하나 이상의 명령들을 식별한다. 마크업 언어 문서(1114)에 포함된 명령들을 실행함으로써, 브라우저 애플리케이션(1112)은 마크업 언어 문서(1114)에 의해 기술된 포맷 또는 프레젠테이션을 사용하여 식별된 컨텐츠를 디스플레이한다. 예컨대, 마크업 언어 문서(1114)는, 외부 시스템(1120) 및 소셜 네트워킹 시스템(1130)으로부터 검색된 텍스트 및/또는 이미지 데이터를 포함하는 다수의 프레임들을 갖는 웹 페이지를 생성하고 디스플레이하기 위한 명령들을 포함한다. 다양한 실시예로, 마크업 언어 문서(1114)는 XML(extensible markup language) 데이터, XHTML(extensible hypertext markup language) 데이터, 또는 다른 마크업 언어 데이터를 포함하는 데이터 파일을 포함한다. 추가로, 마크업 언어 문서(1114)는 JSON(JavaScript Object Notation) 데이터, 패딩(padding)을 갖는 JSON(JSONP), 및 외부 시스템(1120)과 사용자 장치(1110) 사이의 데이터 상호교환을 용이하게 하는 자바스크립트 데이터를 포함할 수 있다. 사용자 장치(1110)상의 브라우저 애플리케이션(1112)은 마크업 언어 문서(1114)를 디코딩하기 위해 자바스크립트 컴파일러를 사용할 수 있다.In one embodiment, the user device 1110 uses the browser application 1112 to process the markup language document 1114 received from the external system 1120 and the social networking system 1130 to allow the external system 1120 to And/or display content from the social networking system 1130. The markup language document 1114 identifies the content and one or more instructions describing the format or presentation of the content. By executing the instructions contained in markup language document 1114, browser application 1112 displays content identified using the format or presentation described by markup language document 1114. For example, markup language document 1114 includes instructions for creating and displaying a web page having multiple frames containing text and/or image data retrieved from external systems 1120 and social networking system 1130. do. In various embodiments, the markup language document 1114 includes a data file including extensible markup language (XML) data, extensible hypertext markup language (XHTML) data, or other markup language data. Additionally, the markup language document 1114 facilitates the exchange of JavaScript Object Notation (JSON) data, JSON (JSONP) with padding, and data between the external system 1120 and the user device 1110. You can include JavaScript data that you want. The browser application 1112 on the user device 1110 may use a JavaScript compiler to decode the markup language document 1114.

마크업 언어 문서(1114)는 또한, FLASH™ 또는 Unity™ 애플리케이션들, SilverLight™ 애플리케이션 프레임워크(framework) 등과 같은 애플리케이션 또는 애플리케이션 프레임워크를 포함하거나 링크할 수 있다. The markup language document 1114 may also include or link to an application or application framework such as FLASH™ or Unity™ applications, SilverLight™ application framework, or the like.

일실시예로, 사용자 장치(1110)는 또한, 사용자 장치(1110)의 사용자가 소셜 네트워킹 시스템(1130)으로 로그되는지 여부를 표시하는 데이터를 포함하는 하나 이상의 쿠키(1116)를 포함하고, 이는 소셜 네트워킹 시스템(1130)으로부터 사용자 장치(1110)로 통신되는 데이터의 수정을 가능하게 할 수 있다.In one embodiment, the user device 1110 also includes one or more cookies 1116 containing data indicating whether a user of the user device 1110 is logged into the social networking system 1130, which It may enable modification of data communicated from the networking system 1130 to the user device 1110.

외부 시스템(1120)은, 네트워크(1150)를 사용하여 사용자 장치(1110)로 통신되는 하나 이상의 웹 페이지들(1122a, 1122b)을 포함하는 하나 이상의 웹 서버들을 포함한다. 외부 시스템(1120)은 소셜 네트워킹 시스템(1130)으로부터 분리된다. 예컨대, 외부 시스템(1120)은 제1 도메인과 연관되는 한편, 소셜 네트워킹 시스템(1130)은 분리된 소셜 네트워킹 도메인과 연관된다. 외부 시스템(1120)에 포함된 웹 페이지들(1122a, 1122b)은 컨텐츠를 식별하고 식별된 컨텐츠의 포맷 또는 프레젠테이션을 특정하는 명령들을 포함하는 마크업 언어 문서(1114)를 포함한다.External system 1120 includes one or more web servers including one or more web pages 1122a and 1122b that are communicated to user device 1110 using network 1150. External system 1120 is separate from social networking system 1130. For example, external system 1120 is associated with a first domain, while social networking system 1130 is associated with a separate social networking domain. Web pages 1122a and 1122b included in external system 1120 include a markup language document 1114 that identifies content and includes instructions that specify the format or presentation of the identified content.

소셜 네트워킹 시스템(1130)은 복수의 사용자들을 포함하는 소셜 네트워킹 시스템을 위해 소셜 네트워킹 시스템의 사용자들에게 소셜 네트워킹 시스템의 다른 사용자들과 통신하고 상호작용하는 능력을 제공하는 하나 이상의 컴퓨팅 장치를 포함한다. 일부 예에서, 소셜 네트워킹 시스템은 그래프 즉, 에지 및 노드를 포함하는 데이터 구조로 표현될 수 있다. 데이터 베이스, 객체, 클래스, 메타 구성요소, 파일, 또는 임의의 다른 데이터 구조를 포함하지만 이에 제한되지 않는 다른 데이터 구조가 또한, 소셜 네트워킹 시스템을 표현하는데 사용될 수 있다. 소셜 네트워킹 시스템(1130)은 오퍼레이터에 의해 관리되고, 유지되거나, 또는 제어될 수 있다. 소셜 네트워킹 시스템(1130)의 오퍼레이터는 사람, 자동화된 애플리케이션, 또는 컨텐츠를 관리하고, 정책을 규제하고, 소셜 네트워킹 시스템(1130) 내에서 사용 메트릭을 수집하기 위한 일련의 애플리케이션들일 수 있다. 임의의 타입의 오퍼레이터가 사용될 수 있다.Social networking system 1130 includes one or more computing devices that provide users of the social networking system the ability to communicate and interact with other users of the social networking system for a social networking system including a plurality of users. In some examples, a social networking system may be represented as a graph, that is, a data structure including edges and nodes. Other data structures, including but not limited to databases, objects, classes, meta elements, files, or any other data structure, may also be used to represent social networking systems. The social networking system 1130 may be managed, maintained, or controlled by an operator. The operator of the social networking system 1130 may be a person, an automated application, or a set of applications for managing content, regulating policies, and collecting usage metrics within the social networking system 1130. Any type of operator can be used.

사용자들은 소셜 네트워킹 시스템(1130)에 가입할 수 있고, 이후 그들이 연결되고자 하는 소셜 네트워킹 시스템(1130)의 임의의 수의 다른 사용자들에 대한 연결을 추가할 수 있다. 본 명세서에서 사용되는 용어 "친구"는, 사용자가 소셜 네트워킹 시스템(1130)을 통해 연결, 연관, 또는 관계를 형성한 소셜 네트워킹 시스템(1130)의 임의의 다른 사용자를 의미한다. 예컨대, 일실시예로, 소셜 네트워킹 시스템(1130)에서의 사용자들이 소셜 그래프에서 노드로 표현된다면, 용어 "친구"는 2개의 사용자 노드를 직접 연결하고 그 사이에 형성되는 에지를 의미할 수 있다.Users may subscribe to social networking system 1130 and then add connections to any number of other users of social networking system 1130 to which they wish to connect. The term “friend” as used herein refers to any other user of the social networking system 1130 to which the user has connected, associated, or established a relationship through the social networking system 1130. For example, in an embodiment, if users in the social networking system 1130 are represented as nodes in a social graph, the term “friend” may mean an edge formed between directly connecting two user nodes.

연결은 사용자에 의해 명시적으로 추가되거나 사용자의 공통의 특징(예컨대,동일한 교육 기관의 졸업생들인 사용자들)에 기초하여 소셜 네트워킹 시스템(1130)에 의해 자동으로 생성될 수 있다. 예컨대, 제1 사용자는 구체적으로 특정의 다른 사용자를 친구로 선택한다. 소셜 네트워킹 시스템(1130)에서의 연결은 보통 양방향이지만, 그럴 필요는 없고, 따라서 용어들 "사용자" 및 "친구"는 준거 기준(frame of reference)에 따른다. 소셜 네트워킹 시스템(1130)의 사용자들 사이의 연결은 보통 양방향("쌍방향"), 또는 "상호적"이지만, 연결들은 또한, 일방적, 또는 "일방향"일 수 있다. 예컨대, Bob과 Joe가 모두 소셜 네트워킹 시스템(1130)의 사용자들이고 서로에게 연결되어있다면, Boe과 Joe는 서로의 연결들이다. 반면에, Bob이 소셜 네트워킹 시스템(1130)으로 Joe에 의해 통신되는 데이터를 열람하기 위해 Joe에게 연결하기를 희망한지만, Joe가 상호 연결을 형성하기를 희망하지 않는다면, 일방향 연결이 확립될 수 있다. 사용자들 사이의 연결은 직접적인 연결일 수 있지만, 소셜 네트워킹 시스템(1130)의 일부 실시예들은 하나 이상의 연결 레벨 또는 이격도를 통한 간접적인 연결을 허용한다.The connection may be explicitly added by the user or may be automatically created by the social networking system 1130 based on common characteristics of the user (eg, users who are graduates of the same educational institution). For example, the first user specifically selects a specific other user as a friend. The connection in social networking system 1130 is usually two-way, but need not, so the terms “user” and “friend” are subject to a frame of reference. The connections between users of the social networking system 1130 are usually two-way ("two-way"), or "interactive," but the connections may also be one-way, or "one-way." For example, if Bob and Joe are both users of the social networking system 1130 and are connected to each other, then Boe and Joe are their connections. On the other hand, if Bob wishes to connect to Joe to view the data communicated by Joe to the social networking system 1130, but Joe does not wish to establish an interconnection, a one-way connection may be established. Connections between users may be direct connections, but some embodiments of social networking system 1130 allow indirect connections through one or more connection levels or degrees of separation.

사용자들 사이의 연결을 확립 및 관리하고 사용자들 사이의 상호작용을 허용하는 것에 추가로, 소셜 네트워킹 시스템(1130)은 사용자들에게 소셜 네트워킹 시스템(1130)에 의해 지원되는 다양한 타입의 아이템들에 대해 행위를 수행할 능력을 제공한다. 이러한 아이템들은, 소셜 네트워킹 시스템(1130)의 사용자들이 속할 수 있는 그룹들 또는 네트워크들(즉, 사람들, 엔티티들, 및 컨셉들의 소셜 네트워크), 사용자가 관심이 있을 수 있는 이벤트 또는 캘린더 엔트리들, 사용자가 소셜 네트워킹 시스템(1130)을 통해 사용할 수 있는 컴퓨터-기초의 애플리케이션들, 사용자가 소셜 네트워킹 시스템(1130)에 의해 제공되거나 소셜 네트워킹 시스템(1130)을 통한 서비스를 통해 아이템들을 사거나 팔 수 있도록 하는 거래들, 사용자가 소셜 네트워킹 시스템(1130) 내에서 혹은 밖에서 수행할 수 있는 광고와의 상호작용들을 포함할 수 있다. 이들은 사용자가 소셜 네트워킹 시스템(1130)에 대해 행동할 수 있는 아이템들의 몇몇 예시에 불과하며, 많은 다른 예들이 가능하다. 사용자는 소셜 네트워킹 시스템(1130)에서 또는 소셜 네트워킹 시스템(1130)과 분리되거나 네트워크(1150)를 통해 소셜 네트워킹 시스템(1130)으로 연결된 외부 시스템(1120)에서, 표현될 수 있는 그 어떠한 것과도 상호작용할 수 있다.In addition to establishing and managing connections between users and allowing interaction between users, social networking system 1130 provides users with information on various types of items supported by social networking system 1130. It provides the ability to perform an action. These items include groups or networks to which users of social networking system 1130 may belong (i.e., social networks of people, entities, and concepts), events or calendar entries that the user may be interested in, and users. Computer-based applications available through the social networking system 1130, allowing a user to buy or sell items provided by the social networking system 1130 or through services through the social networking system 1130. Transactions may include interactions with advertisements that a user may perform within or outside the social networking system 1130. These are just a few examples of items a user can act on for the social networking system 1130, and many other examples are possible. A user may interact with anything that may be represented in the social-networking system 1130 or in an external system 1120 that is separate from the social-networking system 1130 or connected to the social-networking system 1130 through the network 1150. I can.

소셜 네트워킹 시스템(1130)은 또한, 다양한 엔티티들을 링크할 수 있다. 예컨대, 소셜 네트워킹 시스템(1130)은 사용자가 API, 웹 서비스, 또는 다른 통신 채널을 통해 외부 시스템(1120) 또는 다른 엔티티들과 상호작용하는 것뿐만 아니라 사용자들 서로와 상호작용할 수 있게 한다. 소셜 네트워킹 시스템(1130)은 복수의 에지에 의해 상호연결된 복수의 노드를 포함하는 "소셜 그래프"를 생성하고 관리한다. 소셜 그래프에서의 각각의 노드는 다른 노드에 대해 행동할 수 있거나 및/또는 다른 노드가 행동할 수 있는 엔티티를 표현할 수 있다. 소셜 그래프는 다양한 타입의 노드들을 포함할 수 있다. 노드의 타입의 예들은 사용자들, 비-인간 엔티티들, 컨텐츠 아이템, 웹 페이지, 그룹, 활동, 메시지, 컨셉, 및 소셜 네트워킹 시스템(1130)에서 객체에 의해 표현될 수 있는 임의의 다른 것들을 포함한다. 소셜 그래프에서의 2개의 노드 사이의 에지는 2개의 노드 사이의 특정 유형의 연결 또는 연관을 표현할 수 있고, 에지는 노드 연결로부터 또는 노드들 중 하나가 다른 노드에 대해 수행하는 행위로부터 발생할 수 있다. 일부 경우에서, 노드 사이의 에지에는 가중치가 부과될 수 있다. 에지의 가중치는 노드 사이의 연결 또는 연관의 강도와 같은 에지와 연관된 속성을 표현할 수 있다. 상이한 타입의 에지에는 상이한 가중치가 제공될 수 있다. 예컨대, 한 명의 사용자가 다른 사용자를 "좋아요"할 때 생성된 에지에는 하나의 가중치가 부여될 수 있는 한편, 사용자가 다른 사용자를 친구로 삼을 때 생성된 에지에는 상이한 가중치가 부여될 수 있다.The social networking system 1130 may also link various entities. For example, social networking system 1130 allows users to interact with each other as well as interact with external systems 1120 or other entities via APIs, web services, or other communication channels. The social networking system 1130 creates and manages a “social graph” comprising a plurality of nodes interconnected by a plurality of edges. Each node in the social graph may act on another node and/or may represent an entity on which the other node may act. The social graph can include various types of nodes. Examples of types of nodes include users, non-human entities, content items, web pages, groups, activities, messages, concepts, and any other that may be represented by an object in the social networking system 1130. . An edge between two nodes in a social graph may represent a certain type of connection or association between the two nodes, and an edge may arise from a node connection or from an action one of the nodes performs on another node. In some cases, the edges between nodes may be weighted. The weight of the edge may represent an attribute associated with the edge, such as the strength of a connection or association between nodes. Different weights may be provided for different types of edges. For example, one weight may be given to an edge created when one user “likes” another user, while a different weight may be given to an edge created when a user makes another user a friend.

예로서, 제1 사용자가 제2 사용자를 친구로 식별할 때, 소셜 그래프에서의 에지는 제1 사용자를 표현하는 노드와 제2 사용자를 표현하는 제2 노드를 연결하도록 생성된다. 다양한 노드가 서로 연관되고 상호작용함에 따라, 소셜 네트워킹 시스템(1130)은 관계 및 상호작용을 반영하도록 다양한 노드를 연결하는 에지들을 수정한다.As an example, when a first user identifies a second user as a friend, an edge in the social graph is created to connect a node representing the first user and a second node representing the second user. As the various nodes are associated and interact with each other, the social networking system 1130 modifies the edges connecting the various nodes to reflect the relationships and interactions.

소셜 네트워킹 시스템(1130)은 또한, 소셜 네트워킹 시스템(1130)과의 사용자 상호작용을 향상시키는 사용자-생성된 컨텐츠를 포함한다. 사용자-생성된 컨텐츠는, 사용자가 소셜 네트워킹 시스템(1130)에 추가, 업로드, 전송 또는 "게시"할 수 있는 모든 것을 포함할 수 있다. 예컨대, 사용자는 사용자 장치(1110)로부터 소셜 네트워킹 시스템(1130)에 게시물을 통신한다. 게시물은 상태 업데이트 또는 다른 텍스트 데이터, 위치 정보, 사진과 같은 이미지, 비디오, 링크, 음악, 또는 다른 유사한 데이터 및/또는 미디어와 같은 데이터를 포함할 수 있다. 컨텐츠는 또한, 제3자에 의해 소셜 네트워킹 시스템(1130)에 추가될 수 있다. 컨텐츠 "아이템"들은 소셜 네트워킹 시스템(1130)에서 객체로 표현될 수 있다. 이러한 방식으로, 소셜 네트워킹 시스템(1130)의 사용자들은, 다양한 통신 채널을 통해 미디어의 다양한 타입의 텍스트 및 컨텐츠 아이템을 게시함으로써 서로와 통신하도록 장려된다. 이러한 통신은 사용자들 서로간의 상호작용을 증가시키고 사용자가 소셜 네트워킹 시스템(1130)과 상호작용하는 빈도를 증가시킨다.Social networking system 1130 also includes user-generated content that enhances user interaction with social networking system 1130. User-generated content may include anything that a user can add, upload, transmit, or “post” to social networking system 1130. For example, a user communicates a post from user device 1110 to social networking system 1130. Posts may include status updates or other textual data, location information, images such as photos, videos, links, music, or other similar data and/or data such as media. Content may also be added to the social networking system 1130 by a third party. Content “items” may be represented as objects in the social networking system 1130. In this manner, users of the social networking system 1130 are encouraged to communicate with each other by posting various types of text and content items of media over various communication channels. Such communication increases the interaction of users with each other and increases the frequency with which users interact with the social networking system 1130.

소셜 네트워킹 시스템(1130)은 웹 서버(1132), API 요청 서버(1134), 사용자 프로필 스토어(1136), 연결 스토어(1138), 행위 로거(1140), 활동 로그(1142), 인증 서버(1144), 이미지 분류 모듈(1146), 및 이미지 애플리케이션 모듈(1148)을 포함한다. 일실시예로, 소셜 네트워킹 시스템(1130)은 다양한 애플리케이션을 위해 추가의, 더 적은 수의, 혹은 상이한 컴포넌트들을 포함할 수 있다. 네트워크 인터페이스, 보안 메커니즘, 부하 균형기(load balancer), 장애복구 서버(failover server), 관리 및 네트워크 운영 콘솔 등과 같은 다른 컴포넌트들은 시스템의 세부사항을 불명확하게 만들지 않기 위해 도시되지 않는다.The social networking system 1130 includes a web server 1132, an API request server 1134, a user profile store 1136, a connection store 1138, an action logger 1140, an activity log 1142, an authentication server 1144. , An image classification module 1146, and an image application module 1148. In one embodiment, social networking system 1130 may include additional, fewer, or different components for various applications. Other components such as network interfaces, security mechanisms, load balancers, failover servers, management and network operation consoles, etc. are not shown in order not to obscure the details of the system.

사용자 프로필 스토어(1136)는, 사용자에 의해 선언되었거나 소셜 네트워킹 시스템(1130)에 의해 추론된 경력, 학력, 취미 또는 선호도, 위치 등과 같은 인명적, 인구학적, 및 다른 타입의 기술적 정보를 포함하는 사용자 계정에 관한 정보를 관리한다. 이 정보는 사용자 프로필 스토어(1136)에 저장되어서, 각각의 사용자가 고유하게 식별되도록 한다. 소셜 네트워킹 시스템(1130)은 또한, 연결 스토어(1138)에서의 상이한 사용자들 사이의 하나 이상의 연결을 기술하는 데이터를 저장한다. 연결 정보는 유사하거나 공통되는 경력, 그룹 멤버쉽, 취미, 또는 학력을 갖는 사용자들을 표시할 수 있다. 추가로, 소셜 네트워킹 시스템(1130)은 상이한 사용자들 사이의 사용자-정의된 연결을 포함하여, 사용자들이 다른 사용자들과의 그들의 관계를 특정할 수 있도록 한다. 예컨대, 사용자-정의된 연결은 사용자가 사용자의 실제-삶에서의 관계들, 가령 친구들, 동료들, 파트너들 등에 필적하는 다른 사용자들과의 관계를 생성할 수 있도록 한다. 사용자들은 미리 정의된 타입의 연결로부터 선택하거나 필요에 따라 그들 스스로의 연결 타입을 정의할 수 있다. 소셜 네트워킹 시스템(1130)에서의 다른 노드들과의 연결, 가령 비-인간 엔티티들, 버켓, 클러스터 센터, 이미지, 관심사, 페이지, 외부 시스템, 컨셉 등이 또한, 연결 스토어(1138)에 저장된다.The user profile store 1136 contains personal, demographic, and other types of technical information such as career, education, hobbies or preferences, location, etc. declared by the user or inferred by the social networking system 1130. Manage information about your account. This information is stored in the user profile store 1136 so that each user is uniquely identified. The social networking system 1130 also stores data describing one or more connections between different users in the connection store 1138. The connection information may indicate users with similar or common careers, group memberships, hobbies, or educational backgrounds. Additionally, social networking system 1130 includes user-defined connections between different users, allowing users to specify their relationships with other users. For example, user-defined connections allow the user to create real-life relationships of the user, such as relationships with other users that rival friends, colleagues, partners, and the like. Users can choose from predefined types of connections or define their own connection types as needed. Connections to other nodes in the social networking system 1130, such as non-human entities, buckets, cluster centers, images, interests, pages, external systems, concepts, etc. are also stored in the connection store 1138.

소셜 네트워킹 시스템(1130)은 사용자가 상호작용할 수 있는 객체들에 관한 데이터를 관리한다. 이 데이터를 관리하기 위해, 사용자 프로필 스토어(1136) 및 연결 스토어(1138)는 소셜 네트워킹 시스템(1130)에 의해 관리되는 객체들의 대응하는 타입의 인스턴스(instance)들을 저장한다. 각각의 객체 타입은 객체의 타입에 적절한 정보는 저장하는데 적합한 정보 필드를 가진다. 예컨대, 사용자 프로필 스토어(1136)는 사용자의 계정 및 사용자의 계정과 관련된 정보를 기술하기에 적절한 필드를 갖는 데이터 구조를 포함한다. 특정 타입의 새로운 객체가 생성될 때, 소셜 네트워킹 시스템(1130)은 대응하는 타입의 새로운 데이터 구조를 초기화하고, 고유한 객체 식별자를 그것에 할당하며, 필요에 따라 객체에 데이터를 추가한다. 이는 예컨대, 사용자가 소셜 네트워킹 시스템(1130)의 사용자가 되고, 소셜 네트워킹 시스템(1130)이 사용자 프로필 스토어(1136)에 사용자 프로필의 새로운 인스턴스를 생성하며, 고유한 식별자를 사용자 계정에 할당하고, 사용자에 의해 제공된 정보로 사용자 계정의 필드를 채우는 것을 시작할 때에 발생할 수 있다.The social networking system 1130 manages data about objects with which a user can interact. To manage this data, user profile store 1136 and connection store 1138 store instances of corresponding types of objects managed by social networking system 1130. Each object type has an information field suitable for storing information appropriate to the type of object. For example, user profile store 1136 includes a data structure with fields suitable for describing the user's account and information related to the user's account. When a new object of a particular type is created, the social networking system 1130 initializes a new data structure of the corresponding type, assigns a unique object identifier to it, and adds data to the object as necessary. This, for example, allows the user to become a user of the social networking system 1130, the social networking system 1130 creates a new instance of the user profile in the user profile store 1136, assigns a unique identifier to the user account, and This can occur when starting to fill in the fields of the user account with the information provided by.

연결 스토어(1138)는 사용자의 다른 사용자들에 대한 연결, 외부 시스템(1120)으로의 연결 또는 다른 엔티티들로의 연결을 기술하는데 적절한 데이터 구조를 포함한다. 연결 스토어(1138)는 또한, 연결 타입을 사용자의 연결과 연관시킬 수 있고, 연결 타입은 사용자에 관한 정보에 대한 액세스를 규제하기 위해 사용자의 개인정보 설정과 함께 사용될 수 있다. 일실시예로, 사용자 프로필 스토어(1136) 및 연결 스토어(1138)는 연합된 데이터베이스로 구현될 수 있다.The connection store 1138 contains a data structure suitable for describing a user's connection to other users, a connection to an external system 1120, or a connection to other entities. The connection store 1138 can also associate a connection type with the user's connection, and the connection type can be used in conjunction with the user's privacy settings to regulate access to information about the user. In one embodiment, the user profile store 1136 and the connection store 1138 may be implemented as a federated database.

연결 스토어(1138), 사용자 프로필 스토어(1136), 및 활동 로그(1142)에 저장된 데이터는 소셜 네트워킹 시스템(1130)이 상이한 객체들 사이의 관계를 식별하기 위해 다양한 객체 및 노드를 연결하는 에지를 식별하도록 노드를 사용하는 소셜 그래프를 생성할 수 있도록 한다. 예컨대, 제1 사용자가 소셜 네트워킹 시스템(1130)에서 제2 사용자와의 연결을 확립한다면, 사용자 프로필 스토어(1136)로부터의 제1 사용자 및 제2 사용자의 사용자 계정들은 소셜 그래프에서 노드로서 역할을 할 수 있다. 연결 스토어(1138)에 의해 저장된 제1 사용자 및 제2 사용자 사이의 연결은 제1 사용자 및 제2 사용자와 연관된 노드들 사이의 에지이다. 이 예로 계속하면, 제2 사용자는 이후, 소셜 네트워킹 시스템(1130) 내에서 제1 사용자에게 메시지를 전송할 수 있다. 저장될 수 있는 이 메시지를 전송하는 행위는, 제1 사용자 및 제2 사용자를 표현하는 소셜 그래프에서의 2개의 노드 사이의 또 다른 에지이다. 추가로, 메시지 자체는 식별될 수 있고, 제1 사용자 및 제2 사용자를 표현하는 노드들에 연결된 또 다른 노드로서 소셜 그래프에 포함될 수 있다.The data stored in the connection store 1138, the user profile store 1136, and the activity log 1142 identifies the edges that connect the various objects and nodes for the social networking system 1130 to identify relationships between different objects. Lets you create a social graph that uses nodes to do so. For example, if a first user establishes a connection with a second user in the social networking system 1130, the user accounts of the first user and the second user from the user profile store 1136 will serve as nodes in the social graph. I can. The connection between the first user and the second user stored by the connection store 1138 is the edge between the nodes associated with the first user and the second user. Continuing with this example, the second user may then transmit a message to the first user within the social networking system 1130. The act of sending this message, which can be stored, is another edge between the two nodes in the social graph representing the first user and the second user. Additionally, the message itself may be identified and included in the social graph as another node connected to nodes representing the first user and the second user.

다른 예로, 제1 사용자는 소셜 네트워킹 시스템(1130)에 의해 관리되는 이미지에서 (또는 대안으로, 소셜 네트워킹 시스템(1130) 외부의 다른 시스템에 의해 관리되는 이미지)에서 제2 사용자를 태그할 수 있다. 이미지는 그 자체가 소셜 네트워킹 시스템(1130)에서 노드로 표현될 수 있다. 이러한 태깅 행위는 제1 사용자 및 제2 사용자 사이의 에지를 생성할 뿐만 아니라 소셜 그래프에서 또한, 노드가 되는 각각의 사용자들 및 이미지 사이의 에지를 생성할 수 있다. 또 다른 예로, 사용자가 이벤트에 참석하는 것을 확인한다면, 사용자 및 이벤트는 사용자 프로필 스토어(1136)로부터 획득되는 노드들이며, 여기서 이벤트의 참석은 활동 로그(1142)로부터 검색될 수 있는 노드 사이의 에지이다. 소셜 그래프를 생성하고 관리함으로써, 소셜 네트워킹 시스템(1130)은 상이한 타입의 객체 및 상호작용과 그 객체들 사이의 연결을 기술하는 데이터를 포함하고, 소셜적으로 관련된(socially relevant) 정보의 풍부한 소스를 제공한다.As another example, the first user may tag the second user in an image managed by the social networking system 1130 (or alternatively, an image managed by another system outside the social networking system 1130 ). The image itself may be represented as a node in social networking system 1130. This tagging action may not only create an edge between the first user and the second user, but also create an edge between the images and respective users who become nodes in the social graph. As another example, if the user confirms attending an event, the user and the event are nodes obtained from the user profile store 1136, where the attendance of the event is the edge between the nodes that can be retrieved from the activity log 1142 . By creating and managing social graphs, the social networking system 1130 contains data describing different types of objects and interactions and the connections between those objects, and provides a rich source of socially relevant information. to provide.

웹 서버(1132)는 네트워크(1150)를 통해 소셜 네트워킹 시스템(1130)을 하나 이상의 사용자 장치(1110) 및/또는 하나 이상의 외부 시스템(1120)으로 링크한다. 웹 서버(1132)는, 가령 Java, JavaScript, Flash, XML 등과 같은 다른 웹-연관 컨텐츠뿐만 아니라 웹 페이지들을 서빙한다. 웹 서버(1132)는 메일 서버 또는 소셜 네트워킹 시스템(1130)과 하나 이상의 사용자 장치(1110) 사이의 메시지를 수신하고 라우팅하기 위한 다른 메시징 기능을 포함할 수 있다. 메시지는 인스턴트 메시지, 큐잉된 메시지(예컨대, 이메일), 텍스트 및 SMS 메시지, 또는 임의의 다른 적절한 메시지 포맷일 수 있다.Web server 1132 links social networking system 1130 to one or more user devices 1110 and/or one or more external systems 1120 via network 1150. The web server 1132 serves web pages as well as other web-associated content such as Java, JavaScript, Flash, XML, and the like. The web server 1132 may include a mail server or other messaging functionality for receiving and routing messages between the social networking system 1130 and one or more user devices 1110. The messages may be instant messages, queued messages (eg, email), text and SMS messages, or any other suitable message format.

API 요청 서버(1134)는, 하나 이상의 API 함수를 호출함으로써 하나 이상의 외부 시스템(1120) 및 사용자 장치(1110)가 소셜 네트워킹 시스템(1130)으로부터 액세스 정보를 호출하도록 한다. API 요청 서버(1134)는 또한, API들을 호출함으로써 외부 시스템(1120)이 소셜 네트워킹 시스템(1130)으로 정보를 전송하도록 할 수 있다. 일실시예로, 외부 시스템(1120)은 네트워크(1150)를 통해 소셜 네트워킹 시스템(1130)으로 API 요청을 전송하고, API 요청 서버(1134)는 API 요청을 수신한다. API 요청 서버(1134)는, API 요청 서버(1134)가 네트워크(1150)를 통해 외부 시스템(1120)으로 통신하는 적절한 응답을 생성하기 위해 API 요청과 연관된 API를 호출함으로써 그 요청을 프로세싱한다. 예컨대, API 요청에 응답하여, API 요청 서버(1134)는 가령 외부 시스템(1120)으로 로그된 사용자의 연결과 같은 사용자와 연관된 데이터를 수집하고, 수집된 데이터를 외부 시스템(1120)으로 통신한다. 다른 실시예로, 사용자 장치(1110)는 외부 시스템(1120)과 동일한 방식으로 API들을 통해 소셜 네트워킹 시스템(1130)과 통신한다.The API request server 1134 causes one or more external systems 1120 and user devices 1110 to call access information from the social networking system 1130 by calling one or more API functions. The API request server 1134 may also cause the external system 1120 to send information to the social networking system 1130 by calling APIs. In one embodiment, the external system 1120 transmits an API request to the social networking system 1130 through the network 1150, and the API request server 1134 receives the API request. The API request server 1134 processes the request by calling an API associated with the API request to generate an appropriate response for the API request server 1134 to communicate to the external system 1120 via the network 1150. For example, in response to an API request, the API request server 1134 collects data associated with the user, such as a user's connection logged to the external system 1120, and communicates the collected data to the external system 1120. In another embodiment, the user device 1110 communicates with the social networking system 1130 through APIs in the same manner as the external system 1120.

행위 로거(1140)는 소셜 네트워킹 시스템(1130) 안에서의 및/또는 밖에서의 사용자 행위에 관한 통신을 웹 서버(1132)로부터 수신할 수 있다. 행위 로거(1140)는 사용자 행위에 관한 정보로 활동 로그(1142)를 채워서 소셜 네트워킹 시스템(1130)이 소셜 네트워킹 시스템(1130) 내에서 및 소셜 네트워킹 시스템(1130) 밖에서 그것의 사용자들에 의해 행해진 다양한 행위를 발견할 수 있도록 한다. 특정 사용자가 소셜 네트워킹 시스템(1130) 상의 다른 노드에 관해 행한 임의의 행위는, 활동 로그(1142) 또는 유사한 데이터베이스 또는 다른 데이터 저장소에 관리되는 정보를 통해 각각의 사용자의 계정과 연관될 수 있다. 식별되고 저장된 소셜 네트워킹 시스템(1130) 내에서 사용자에 의해 행해진 행위의 예들은 예컨대, 다른 사용자로의 연결의 추가, 다른 사용자에게 메세지를 전송, 다른 사용자로부터의 메시지를 읽기, 다른 사용자와 연관된 컨텐츠를 열람, 다른 사용자에 의해 게시된 이벤트에 참석, 이미지를 게시, 이미지를 게시하는 것의 시도, 또는 다른 사용자 또는 다른 객체와 상호작용하는 다른 행위들을 포함할 수 있다. 사용자가 소셜 네트워킹 시스템(1130) 내에서 행위를 행할 때, 행위는 활동 로그(1142)에 기록된다. 일실시예로, 소셜 네트워킹 시스템(1130)은 활동 로그(1142)를 엔트리들의 데이터베이스로서 관리한다. 행위가 소셜 네트워킹 시스템(1130) 내에서 행해질 때, 행위에 대한 엔트리는 활동 로그(1142)에 추가된다. 활동 로그(1142)는 행위 로그라고 불릴 수 있다.The behavior logger 1140 may receive communications from the web server 1132 regarding user behavior in and/or outside the social networking system 1130. The behavior logger 1140 populates the activity log 1142 with information about user behavior so that the social networking system 1130 can perform various actions performed by its users within the social networking system 1130 and outside the social networking system 1130. Make the action discoverable. Any action a particular user has done with respect to other nodes on social networking system 1130 may be associated with each user's account through activity log 1142 or information managed in a similar database or other data store. Examples of actions performed by a user within the identified and stored social networking system 1130 include, for example, adding a connection to another user, sending a message to another user, reading a message from another user, and viewing content associated with another user. It may include viewing, attending an event posted by another user, posting an image, attempting to post an image, or other actions of interacting with another user or other object. When a user performs an action within the social networking system 1130, the action is recorded in an activity log 1142. In one embodiment, social networking system 1130 manages activity log 1142 as a database of entries. When an action is performed within the social networking system 1130, an entry for the action is added to the activity log 1142. The activity log 1142 may be referred to as an activity log.

추가로, 사용자 행위는 가령 소셜 네트워킹 시스템(1130)으로부터 분리된 외부 시스템(1120)과 같이 소셜 네트워킹 시스템(1130)의 외부의 엔트리 내에서 발생하는 컨셉 및 행위와 연관될 수 있다. 예컨대, 행위 로거(1140)는 웹 서버(1132)로부터 외부 시스템(1120)과의 사용자 상호작용을 기술하는 데이터를 수신할 수 있다. 이 예에서, 외부 시스템(1120)은 소셜 그래프에서의 구조화된 행위 및 객체에 따라 사용자의 상호작용을 보고한다.Additionally, user actions may be associated with concepts and actions occurring within entries external to the social networking system 1130, such as an external system 1120 separate from the social networking system 1130. For example, the behavior logger 1140 may receive data describing a user interaction with the external system 1120 from the web server 1132. In this example, external system 1120 reports user interactions according to structured actions and objects in the social graph.

사용자가 외부 시스템(1120)과 상호작용하는 행위들의 다른 예들은, 사용자가 외부 시스템(1120) 또는 다른 엔티티에 대한 관심을 표현하는 것, 사용자가 외부 시스템(1120) 또는 외부 시스템(1120) 내의 웹 페이지(1122a)를 논의하는 코멘트를 소셜 네트워킹 시스템(1130)에 게시하는 것, 사용자가 외부 시스템(1120)과 연관된 URL(Uniform Resource Locator) 또는 다른 식별자를 소셜 네트워킹 시스템(1130)에 게시하는 것, 사용자가 외부 시스템(1120)과 연관된 이벤트에 참석하는 것, 또는 외부 시스템(1120)과 관련된 사용자에 의한 임의의 다른 행위를 포함한다. 따라서, 활동 로그(1142)는 소셜 네트워킹 시스템(1130)의 사용자 및 소셜 네트워킹 시스템(1130)으로부터 분리된 외부 시스템(1120) 사이의 상호작용을 기술하는 행위들을 포함할 수 있다.Other examples of actions in which the user interacts with the external system 1120 include the user expressing interest in the external system 1120 or other entity, the user's Posting a comment discussing page 1122a to the social networking system 1130, the user posting a Uniform Resource Locator (URL) or other identifier associated with the external system 1120 to the social networking system 1130, The user attends an event associated with the external system 1120, or any other action by the user associated with the external system 1120. Accordingly, the activity log 1142 may include actions that describe interactions between a user of the social networking system 1130 and an external system 1120 that is separate from the social networking system 1130.

인증 서버(1144)는 소셜 네트워킹 시스템(1130)의 사용자들의 하나 이상의 개인정보 설정을 강제한다. 사용자의 개인정보 설정은 어떻게 사용자와 연관된 특정 정보가 공유될 수 있는지를 결정한다. 개인정보 설정은 사용자와 연관된 특정 정보의 명세(specification) 및 정보가 공유될 수 있는 엔티티 또는 엔티티들의 명세를 포함한다. 정보가 공유될 수 있는 엔티티들의 예들은 다른 사용자들, 애플리케이션, 외부 시스템(1120), 또는 정보에 잠재적으로 액세스할 수 있는 임의의 엔티티를 포함할 수 있다. 사용자에 의해 공유될 수 있는 정보는 가령, 프로필 사진, 사용자와 연관된 전화번호, 사용자의 연결, 연결을 추가하기, 사용자의 프로필 정보를 변경하기와 같은 사용자에 의해 행해진 행위 등과 같은 사용자 계정 정보를 포함한다.The authentication server 1144 forces one or more personal information settings of users of the social networking system 1130. The user's privacy settings determine how certain information associated with the user can be shared. The personal information setting includes a specification of specific information associated with a user and a specification of entities or entities to which the information can be shared. Examples of entities to which information may be shared may include other users, applications, external systems 1120, or any entity that may potentially have access to the information. Information that can be shared by a user includes user account information, such as profile picture, phone number associated with the user, connection of the user, actions taken by the user, such as adding a connection, changing the user's profile information, etc. do.

개인정보 설정 명세가 상이한 레벨의 입상도(granularity)에서 제공될 수 있다. 예컨대, 개인정보 설정은 다른 사용자들과 공유될 특정 정보를 식별할 수 있고; 개인정보 설정은 직장 전화번호 또는 가령, 프로필 사진, 집 전화번호, 및 상태와 같은 관련된 정보의 특정 세트를 식별한다. 대안으로, 개인정보 설정은 사용자와 연관된 모든 정보에 적용될 수 있다. 특정 정보에 액세스할 수 있는 엔티티들의 세트의 명세는 또한, 다양한 레벨의 입상도에서 특정될 수 있다. 정보가 공유될 수 있는 다양한 세트의 엔티티들은 예컨대, 사용자의 모든 친구들, 친구들의 모든 친구들, 모든 애플리케이션, 또는 모든 외부 시스템(1120)을 포함할 수 있다. 일실시예는 엔티티들의 세트의 명세가 엔티티들의 목록을 포함할 수 있도록 한다. 예컨대, 사용자는 특정 정보에 액세스하는 것이 허용되는 외부 시스템(1120)의 리스트를 제공할 수 있다. 다른 실시예는 명세가, 정보에 액세스하는 것이 허용되지 않은 예외들을 함께 갖는 엔티티들의 세트를 포함하도록 한다. 예컨대, 사용자는 모든 외부 시스템(1120)이 사용자의 작업 정보에 액세스할 수 있도록 하지만, 작업 정보에 액세스하는 것이 허용되지 않는 외부 시스템(1120)의 리스트를 특정할 수 있다. 특정 실시예들은 특정 정보를 액세스하는 것이 허용되지 않는 예외들의 리스트를 "차단 리스트"라고 할 수 있다. 사용자에 의해 특정된 차단 리스트에 속하는 외부 시스템(1120)은 개인정보 설정에 특정된 정보를 액세스하는 것으로부터 차단된다. 정보의 명세의 입상도 및 정보가 공유되는 엔티티들의 명세의 입상도의 다양한 조합이 가능하다. 예컨대, 모든 개인 정보는 친구들과 공유될 수 있는 한편, 모든 작업 정보는 친구의 친구들과 공유될 수 있다.Personal information setting specifications can be provided at different levels of granularity. For example, privacy settings can identify specific information to be shared with other users; The privacy settings identify a work phone number or a specific set of related information, such as a profile picture, home phone number, and status. Alternatively, privacy settings can be applied to all information associated with the user. The specification of the set of entities that can access certain information can also be specified at various levels of granularity. The various sets of entities to which information may be shared may include, for example, all friends of the user, all friends of friends, all applications, or all external systems 1120. One embodiment allows a specification of a set of entities to include a list of entities. For example, a user may provide a list of external systems 1120 that are allowed to access certain information. Another embodiment allows the specification to include a set of entities with exceptions that are not allowed to access information. For example, the user may allow all external systems 1120 to access the user's job information, but specify a list of external systems 1120 that are not allowed to access the job information. Certain embodiments may refer to a list of exceptions that are not allowed to access certain information as a “block list”. The external system 1120 belonging to the block list specified by the user is blocked from accessing the information specified in the personal information setting. Various combinations of the granularity of the specification of the information and the granularity of the specification of the entities to which the information is shared are possible. For example, all personal information can be shared with friends, while all work information can be shared with friends of friends.

인증 서버(1144)는 사용자와 연관된 특정 정보가 사용자의 친구들, 외부 시스템(1120), 및/또는 다른 애플리케이션과 엔티티들에 의해 액세스될 수 있는지 여부를 결정하는 로직을 포함한다. 외부 시스템(1120)은 가령 사용자의 직장 전화번호와 같은 사용자의 더 개인적이고 민감한 정보에 액세스하기 위해 인증 서버(1144)로부터의 인증이 필요할 수 있다. 사용자의 개인정보 설정에 기초하여, 인증 서버(1144)는, 다른 사용자, 외부 시스템(1120), 애플리케이션, 또는 다른 엔티티가 사용자에 의해 행해진 행위에 관한 정보를 포함하는 사용자와 연관된 정보에 액세스하는 것이 허용되는지 여부를 결정한다.The authentication server 1144 includes logic to determine whether certain information associated with the user can be accessed by the user's friends, external systems 1120, and/or other applications and entities. The external system 1120 may require authentication from the authentication server 1144 in order to access the user's more personal and sensitive information, such as the user's work phone number. Based on the user's personal information settings, the authentication server 1144 may allow other users, external systems 1120, applications, or other entities to access information associated with the user, including information about actions taken by the user. Decide whether it is allowed or not.

도 11의 예에서, 소셜 네트워킹 시스템(1130)은 본 명세서에서 더 상세히 기술되는 이미지 분류 모듈(1146) 및 이미지 애플리케이션 모듈(1148)을 포함할 수 있다. 일실시예로, 이미지 분류 모듈(1146)은 이미지들의 샘플 세트에 대한 컨텍스트 힌트들을 수집할 수 있고, 이미지들의 트레이닝 세트를 생성하기 위해 컨텍스트 힌트들을 사용할 수 있다. 이미지들의 트레이닝 세트는 이미지 클래스의 시각적 패턴 템플릿을 생성하도록 분류기를 트레이닝시키는데 사용될 수 있다. 분류기는, 시각적 패턴 템플릿과의 상관관계에 기초하여 이미지들의 평가 세트를 점수화할 수 있다. 이미지들의 평가 세트 중 가장 높은 점수의 이미지들은 이미지 클래스에 가장 밀접하게 관련되는 것으로 여겨질 수 있다. 일실시예로, 이미지 분류 모듈(1146)은 이미지 분류 모듈(104)로 구현될 수 있다. 이미지 애플리케이션 모듈(1148)은 분류된 이미지의 검색을 허용하도록 다른 애플리케이션과 인터페이싱할 수 있다. 일실시예로, 이미지 애플리케이션 모듈(1148)은 이미지 애플리케이션 모듈(106)로 구현될 수 있다.In the example of FIG. 11, the social networking system 1130 may include an image classification module 1146 and an image application module 1148 described in more detail herein. In one embodiment, the image classification module 1146 may collect context hints for a sample set of images and may use the context hints to generate a training set of images. The training set of images can be used to train the classifier to create a visual pattern template of the image class. The classifier may score a rating set of images based on correlation with the visual pattern template. The images with the highest scores among the evaluation set of images may be considered to be most closely related to the image class. In one embodiment, the image classification module 1146 may be implemented as the image classification module 104. The image application module 1148 may interface with other applications to allow searching of classified images. In one embodiment, the image application module 1148 may be implemented as the image application module 106.

하드웨어 구현Hardware implementation

전술한 프로세스 및 특징들은 광범위하게 다양한 네트워크 및 컴퓨팅 환경에서 광범위하게 다양한 기계 및 컴퓨터 시스템 구조에 의해 구현될 수 있다. 도 12는 일실시예에 따른, 본 명세서에 기술된 하나 이상의 실시예들을 구현하도록 사용될 수 있는 컴퓨터 시스템(1200)의 예시를 도시한다. 컴퓨터 시스템(1200)은 컴퓨터 시스템(1200)이 본 명세서에 기술된 프로세스 및 특징들을 수행하도록 야기하는 명령들의 세트들을 포함한다. 컴퓨터 시스템(1200)은 다른 기계들에 연결(예컨대, 네트워킹)될 수 있다. 네트워킹된 배치에서, 컴퓨터 시스템(1200)은 클라이언트-서버 네트워크 환경에서의 서버 기계 또는 클라이언트 기계의 용량으로 또는 피어-투-피어 (또는 분산형) 네트워크 환경에서의 피어 기계로서 동작할 수 있다. 일실시예로, 컴퓨터 시스템(1200)은 소셜 네트워킹 시스템(1130), 사용자 장치(1110), 외부 시스템(1120), 또는 이들의 컴포넌트일 수 있다. 일실시예로, 컴퓨터 시스템(1200)은 소셜 네트워킹 시스템(1130)의 전부 또는 일부를 구성하는 많은 수의 서버들 중 하나의 서버일 수 있다.The processes and features described above may be implemented by a wide variety of machine and computer system architectures in a wide variety of network and computing environments. 12 shows an illustration of a computer system 1200 that may be used to implement one or more embodiments described herein, according to one embodiment. Computer system 1200 includes sets of instructions that cause computer system 1200 to perform the processes and features described herein. Computer system 1200 may be connected (eg, networked) to other machines. In a networked deployment, computer system 1200 may operate at the capacity of a server machine or client machine in a client-server network environment or as a peer machine in a peer-to-peer (or distributed) network environment. In one embodiment, computer system 1200 may be a social networking system 1130, a user device 1110, an external system 1120, or a component thereof. In one embodiment, computer system 1200 may be one of a number of servers that make up all or part of social networking system 1130.

컴퓨터 시스템(1200)은, 본 명세서에 기술된 프로세스 및 특징에 관련되고, 컴퓨터-판독가능한 매체에 저장된 프로세서(1202), 캐시(1204), 및 하나 이상의 실행가능한 모듈 및 드라이버를 포함한다. 추가로, 컴퓨터 시스템(1200)은 고성능 입력/출력(I/O) 버스(1206) 및 표준 I/O 버스(1212)를 포함한다. 호스트 브릿지(1210)는 프로세서(1202)를 고성능 I/O 버스(1206)에 연결하는 한편, I/O 버스 브릿지(1212)는 2개의 버스들(1206, 1212)을 서로 연결한다. 시스템 메모리(1214) 및 네트워크 인터페이스(1216)는 고성능 I/O 버스(1206)에 연결된다. 컴퓨터 시스템(1200)은 비디오 메모리 및 비디오 메모리에 연결된 디스플레이 장치(도시되지 않음)를 더 포함할 수 있다. 대용량 저장소(1218) 및 I/O 포트(1220)는 표준 I/O 버스(1212)에 연결된다. 컴퓨터 시스템(1200)은 선택적으로 키보드, 포인팅 장치, 디스플레이 장치, 또는 표준 I/O 버스(1212)에 연결된 다른 입력/출력 장치들(도시되지 않음)을 포함할 수 있다. 전체적으로, 이러한 구성요소들은, 캘리포니아 산타 클라라의 인텔사에 의해 제조된 x126-호환 프로세서, 및 캘리포니아 서니데일의 AMD(Advanced Micro Devices), Inc.에 의해 제조된 x126-호환 프로세서뿐만 아니라 임의의 다른 적절한 프로세서에 기초하는 컴퓨터 시스템을 포함하지만 이에 제한되지 않는 컴퓨터 하드웨어 시스템의 넓은 카테고리를 표현하도록 의도되었다.Computer system 1200 includes a processor 1202, a cache 1204, and one or more executable modules and drivers related to the processes and features described herein and stored on a computer-readable medium. Additionally, computer system 1200 includes a high performance input/output (I/O) bus 1206 and a standard I/O bus 1212. The host bridge 1210 connects the processor 1202 to the high performance I/O bus 1206, while the I/O bus bridge 1212 connects the two buses 1206 and 1212 to each other. System memory 1214 and network interface 1216 are connected to a high performance I/O bus 1206. The computer system 1200 may further include a video memory and a display device (not shown) connected to the video memory. Mass storage 1218 and I/O ports 1220 are connected to a standard I/O bus 1212. Computer system 1200 may optionally include a keyboard, pointing device, display device, or other input/output devices (not shown) connected to a standard I/O bus 1212. Overall, these components include an x126-compatible processor manufactured by Intel Corporation of Santa Clara, CA, and an x126-compatible processor manufactured by Advanced Micro Devices (AMD), Inc. of Sunnydale, CA, as well as any other suitable processor. It is intended to represent a broad category of computer hardware systems including, but not limited to, computer systems based on.

운영 시스템은, 소프트웨어 애플리케이션(도시되지 않음)으로 오가는 데이터의 입력 및 출력을 포함하는 컴퓨터 시스템(1200)의 동작을 관리하고 제어한다. 운영 시스템은 시스템상에 실행되는 소프트웨어 애플리케이션과 시스템의 하드웨어 컴포넌트들 사이의 인터페이스를 제공한다. 가령 LINUX 운영 시스템, 캘리포니아 쿠퍼티노의 Apple Computer Inc.로부터 이용가능한 Apple Macintosh 운영 시스템, UNIX 운영 시스템, Microsoft® Windows® 운영 시스템, BSD 운영 시스템 등과 같은 임의의 적절한 운영 시스템이 이용될 수 있다. 다른 구현도 가능하다.The operating system manages and controls the operation of the computer system 1200, including input and output of data to and from a software application (not shown). The operating system provides an interface between the software applications running on the system and the hardware components of the system. Any suitable operating system may be used, such as the LINUX operating system, the Apple Macintosh operating system available from Apple Computer Inc. of Cupertino, Calif., the UNIX operating system, the Microsoft® Windows® operating system, the BSD operating system, and the like. Other implementations are possible.

컴퓨터 시스템(1200)의 구성요소들은 아래에서 더 상세하게 기술된다. 특히, 네트워크 인터페이스(1216)는 컴퓨터 시스템(1200) 및 가령 Ethernet(예컨대, IEEE 1202.3) 네트워크, 백플레인(backplane) 등과 같은 임의의 광범위의 네트워크 사이의 통신을 제공한다. 대용량 저장소(1218)는 앞서 식별된 각각의 컴퓨팅 시스템들에 의해 구현되는 상기 프로세스들 및 특징들을 수행하는 프로그래밍 명령들 및 데이터를 위한 영구적인 저장소를 제공하는 한편, 시스템 메모리(1214)(예컨대, DRAM)는 프로세서(1202)에 의해 실행될 때 데이터 및 프로그래밍 명령들을 위한 임시적인 저장소를 제공한다. I/O 포트(1220)는, 컴퓨터 시스템(1200)에 연결될 수 있는 추가 주변 장치들 사이의 통신을 제공하는 하나 이상의 직렬 및/또는 병렬 통신 포트일 수 있다.The components of computer system 1200 are described in more detail below. In particular, network interface 1216 provides communication between computer system 1200 and any wide range of networks such as Ethernet (eg, IEEE 1202.3) networks, backplanes, and the like. Mass storage 1218 provides permanent storage for programming instructions and data to perform the processes and features implemented by each of the computing systems identified above, while system memory 1214 (e.g., DRAM ) Provides temporary storage for data and programming instructions when executed by processor 1202. The I/O port 1220 may be one or more serial and/or parallel communication ports that provide communication between additional peripheral devices that may be connected to the computer system 1200.

컴퓨터 시스템(1200)은 다양한 시스템 구조들을 포함할 수 있고, 컴퓨터 시스템(1200)의 다양한 컴포넌트들은 재정렬될 수 있다. 예컨대, 캐시(1204)는 프로세서(1202)를 갖는 온-칩일 수 있다. 대안으로, 캐시(1204) 및 프로세서(1202)는 프로세서(1202)가 "프로세서 코어"로 불리는 "프로세서 모듈"로 함께 패킹(pack)될 수 있다. 더욱이, 특정 실시예들은 상기의 컴포넌트들 전부를 요구하지도 않고 포함하지도 않을 수 있다. 예컨대, 표준 I/O 버스(1212)에 연결된 주변 장치들은 고성능 I/O 버스(1206)에 연결될 수 있다. 추가로, 일부 실시예로, 단일 버스만이 존재할 수 있고, 컴퓨터 시스템(1200)의 컴포넌트들은 단일 버스에 연결될 수 있다. 더욱이, 컴퓨터 시스템(1200)은 가령 추가적인 프로세서, 저장 장치, 또는 메모리와 같은 추가 컴포넌트들을 포함할 수 있다.Computer system 1200 may include various system structures, and various components of computer system 1200 may be rearranged. For example, the cache 1204 may be an on-chip having a processor 1202. Alternatively, the cache 1204 and the processor 1202 may be packed together into a "processor module" in which the processor 1202 is referred to as a "processor core." Moreover, certain embodiments may neither require nor include all of the above components. For example, peripheral devices connected to the standard I/O bus 1212 may be connected to the high performance I/O bus 1206. Additionally, in some embodiments, only a single bus may exist, and components of computer system 1200 may be connected to a single bus. Moreover, computer system 1200 may include additional components such as additional processors, storage devices, or memory.

일반적으로, 본 명세서에 기술된 프로세스 및 특징들은 운영 시스템 또는 특정 애플리케이션, 컴포넌트, 프로그램, 객체, 모듈 또는 "프로그램"으로 불리는 일련의 명령들의 일부로서 구현될 수 있다. 예컨대, 하나 이상의 프로그램들은 본 명세서에 기술된 특정 프로세스들을 실행하는데 사용될 수 있다. 프로그램들은 전형적으로 하나 이상의 프로세서에 의해 읽혀지고 실행될 때 컴퓨터 시스템(1200)이 본 명세서에 기술된 프로세스 및 특징들을 실행하는 동작들을 수행하도록 야기하는 하나 이상의 명령들을 컴퓨터 시스템(1200)에서 다양한 메모리 및 저장 장치에서 포함할 수 있다. 본 명세서에 기술된 프로세스 및 특징들은 소프트웨어, 펌웨어, 하드웨어(예컨대, 애플리케이션 고유의 집적 회로(application specific integrated circuit; ASIC), 또는 이들의 임의의 조합에서 구현될 수 있다.In general, the processes and features described herein may be implemented as part of an operating system or a specific application, component, program, object, module, or series of instructions referred to as a “program”. For example, one or more programs may be used to execute certain processes described herein. Programs typically contain one or more instructions in computer system 1200 that, when read and executed by one or more processors, cause the computer system 1200 to perform operations that perform the processes and features described herein. It can be included in the device. The processes and features described herein may be implemented in software, firmware, hardware (eg, application specific integrated circuit (ASIC), or any combination thereof).

하나의 구현예로, 본 명세서에 기술된 프로세스 및 특징들은, 컴퓨터 시스템(1200)에 의해 실행되는 일련의 실행가능한 모듈로서 분산형 컴퓨팅 환경에서 개별적으로 또는 집합적으로 구현될 수 있다. 전술한 모듈들은 하드웨어, 컴퓨터-판독가능한 매체 (또는 기계-판독가능한 매체), 또는 이들 모두의 조합에 의해 실현될 수 있다. 예컨대, 모듈은 가령, 프로세서(1202)와 같은 하드웨어 시스템에서의 프로세서에 의해 실행되는 복수의 또는 일련의 명령들을 포함할 수 있다. 초기에, 일련의 명령들은 가령, 대용량 저장소(1218)와 같은 저장 장치에 저장될 수 있다. 하지만, 일련의 명령들은 임의의 적절한 컴퓨터-판독가능한 저장 매체에 저장될 수 있다. 더욱이, 일련의 명령들은 로컬에서 저장될 필요가 없으며, 네트워크 인터페이스(1216)를 통해 가령 네트워크상의 서버와 같은 원격 저장 장치로부터 수신될 수 있다. 명령들은 가령 대용량 저장소(1218)와 같은 저장 장치로부터 시스템 메모리(1214)로 복사되고, 이후 프로세서(1202)에 의해 액세스되고 실행된다. 다양한 구현예로, 모듈 또는 모듈들은 가령, 병렬 프로세싱 환경에서의 다수의 서버들과 같이 하나 또는 다수의 위치들에서 프로세서 또는 다수의 프로세서들에 의해 실행될 수 있다.In one implementation, the processes and features described herein may be implemented individually or collectively in a distributed computing environment as a series of executable modules executed by the computer system 1200. The above-described modules may be realized by hardware, a computer-readable medium (or a machine-readable medium), or a combination of both. For example, a module may include a plurality or series of instructions executed by a processor in a hardware system such as processor 1202. Initially, a series of instructions may be stored in a storage device such as mass storage 1218, for example. However, the series of instructions may be stored on any suitable computer-readable storage medium. Moreover, the series of commands need not be stored locally, but may be received from a remote storage device, such as a server on a network, via network interface 1216. Instructions are copied from a storage device, such as mass storage 1218 to system memory 1214, and then accessed and executed by processor 1202. In various implementations, a module or modules may be executed by a processor or multiple processors in one or multiple locations, such as multiple servers in a parallel processing environment.

컴퓨터-판독가능한 매체의 예들은, 가령 휘발성 및 비-휘발성 메모리 장치와 같은 기록 가능한 타입의 매체; 고체 상태 메모리(solid state memory; SSD); 플로피 및 다른 제거가능한 디스크; 하드 디스크 드라이브, 자기 매체; 광학 디스크(예컨대, CD ROMS(Compact Disk Read-Only Memory), DVDs(Digital Versatile Disks)); 다른 유사한 비-일시적 (또는 일시적), 실체적 (또는 비-실체적) 저장 매체; 또는 본 명세서에 기술되는 임의의 하나 이상의 프로세스 및 특징을 수행하는 컴퓨터 시스템(1200)에 의해 실행하기 위한 일련의 명령들을 저장하고, 인코딩하고, 운반하는데 적절한 임의의 타입의 매체를 포함하지만, 이에 제한되지 않는다.Examples of computer-readable media include, for example, media of a recordable type such as volatile and non-volatile memory devices; Solid state memory (SSD); Floppy and other removable disks; Hard disk drives, magnetic media; Optical disks (eg, Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks (DVDs)); Other similar non-transitory (or transient), tangible (or non-substantial) storage media; Or any type of medium suitable for storing, encoding, and carrying a series of instructions for execution by computer system 1200 performing any one or more processes and features described herein. It doesn't work.

설명하기 위한 목적을 위해, 발명의 설명의 완전한 이해를 제공하도록 다수의 구체적인 세부사항들이 언급된다. 하지만, 본 명세서의 실시예들은 이러한 구체적인 세부사항들 없이도 실행될 수 있음이 통상의 기술자에게 자명해질 것이다. 일부 예에서, 모듈, 구조, 프로세스, 특징, 및 장치는 발명의 설명을 불명확하게 하는 것을 피하기 위해 블록 다이어그램의 형태로 도시된다. 다른 예에서, 기능적 블록 다이어그램 및 흐름 다이어그램은 데이터 및 로직의 흐름을 표현하도록 도시된다. 블록 다이어그램 및 흐름 다이어그램의 컴포넌트들(예컨대, 모듈, 블록, 구조, 장치, 특징 등)은 본 명세서에 명시적으로 기술되고 도시된 것과 다른 방식으로 다양하게 조합되고, 분리되고, 제거되고, 재정렬되고, 대체될 수 있다.For illustrative purposes, a number of specific details are referred to to provide a thorough understanding of the description of the invention. However, it will be apparent to those skilled in the art that the embodiments of the present specification may be implemented without these specific details. In some instances, modules, structures, processes, features, and devices are shown in block diagram form in order to avoid obscuring the description of the invention. In another example, functional block diagrams and flow diagrams are shown to represent the flow of data and logic. The components of the block diagram and flow diagram (e.g., modules, blocks, structures, devices, features, etc.) may be variously combined, separated, removed, rearranged, and other ways than those explicitly described and illustrated herein. , Can be replaced.

본 명세서에서의 "일실시예", "실시예", "일부 실시예", "다양한 실시예", "특정 실시예", "다른 실시예", "일련의 실시예" 등에 대한 언급은, 실시예와 연계되어 기술된 특정의 특징, 설계, 구조, 또는 특성이 본 명세서의 적어도 하나의 실시예에 포함되는 것을 의미한다. 본 명세서에서의 다양한 위치에서 가령, "일실시예로" 또는 "실시예로"와 같은 구절이 나타나는 것은 동일한 실시예를 언급하거나 혹은 다른 실시예들과 상호 배타적이며 분리된 또는 대안적 실시예들을 필연적으로 언급하는 것은 아니다. 더욱이, "실시예" 등에 대한 명시적인 언급이 있는지와 무관하게, 다양하게 조합될 수 있고 일부 실시예들에 포함될 수 있는 다양한 특징들이 기술되지만, 이들은 또한, 다른 실시예들에서 다양하게 생략된다. 유사하게, 일부 실시예들에 대한 선호사항 또는 요구사항일 수 있지만 다른 실시예들에서는 그렇지 않을 수 있는 다양한 특징들이 기술된다.References to "one embodiment", "example", "some embodiments", "various embodiments", "specific embodiments", "other embodiments", "series of embodiments" and the like in the present specification are, It means that a specific feature, design, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present specification. The appearances of phrases such as "in one embodiment" or "in an embodiment" in various places in the specification refer to the same embodiment or are mutually exclusive with other embodiments and refer to separate or alternative embodiments. It is not necessarily mentioned. Moreover, regardless of whether there is an explicit reference to “an embodiment” or the like, various features that can be variously combined and included in some embodiments are described, but these are also variously omitted in other embodiments. Similarly, various features are described that may be a preference or requirement for some embodiments, but not for other embodiments.

본 명세서에 사용되는 용어는 원칙적으로 가독성 및 훈시적 목적을 위해서 선택되었으며, 발명의 대상을 묘사하거나 제한하기 위해 선택된 것은 아니다. 따라서, 보호범위는, 본 발명의 상세한 설명에 의해 제한되는 것이 아니며, 출원이 기초으로 하는 제출된 청구범위에 의해 정의되는 것으로 의도되었다. 그러므로 실시예들의 개시내용은 이하의 청구범위에서 정의되는 보호범위를 제한하는 것이 아니라 그 예시가 되는 것으로 의도되었다.The terms used herein are in principle selected for readability and instructional purposes, and are not selected to describe or limit the subject of the invention. Accordingly, the scope of protection is not intended to be limited by the detailed description of the present invention, but is intended to be defined by the submitted claims on which the application is based. Therefore, the disclosure of the embodiments is intended to be illustrative rather than limiting the scope of protection defined in the following claims.

Claims (20)

적어도 하나의 프로세서; 및
복수의 이미지 클래스들과 연관된 이미지 분류기(image classifier)를 트레이닝하기 위해 이미지들을 선택한 이미지들의 샘플 세트를 수신하는 것으로서, 상기 샘플 세트에서 적어도 하나의 이미지는 하나 이상의 소셜 큐들(social cues)과 연관되고, 상기 하나 이상의 소셜 큐들은 소셜 네트워킹 시스템 상의 적어도 하나의 생성자 또는 태거(tagger)의 대화에 기초하여 적어도 하나의 이미지의 상기 적어도 하나의 생성자 또는 태거의 신뢰성을 포함하는, 상기 이미지들의 샘플 세트를 수신하는 것;
상기 이미지와 관련된 하나 이상의 소셜 큐들에 기초하여 상기 샘플 세트 내의 각각의 이미지의 이미지 클래스에 대한 상관관계(correlation)를 점수화(score)하는 것; 및
상기 점수화에 기초하여 상기 샘플 세트로부터 분류기를 트레이닝할 이미지들의 트레이닝 세트를 결정하는 것을 적어도 하나의 프로세서로 하여금 수행하게끔 명령하도록 구성된 명령들을 저장하는 메모리를 포함하는, 시스템.
At least one processor; And
Receiving a sample set of images selected for training an image classifier associated with a plurality of image classes, wherein at least one image in the sample set is associated with one or more social cues, The one or more social cues comprising the reliability of the at least one creator or the tagger of at least one image based on the conversation of the at least one creator or tagger on a social networking system to receive a sample set of images. that;
Scoring a correlation for an image class of each image in the sample set based on one or more social cues associated with the image; And
And a memory storing instructions configured to instruct at least one processor to perform determining a training set of images to train a classifier from the sample set based on the scoring.
제 1 항에 있어서,
상기 이미지 클래스를 특정하는 것을 더 포함하는, 시스템.
The method of claim 1,
The system further comprising specifying the image class.
제 1 항에 있어서,
상기 결정하는 것은 상기 점수화에 기초하여 상기 이미지들의 샘플 세트 내의 각각의 이미지를 순위화하는 것을 포함하는, 시스템.
The method of claim 1,
Wherein the determining includes ranking each image in the sample set of images based on the scoring.
제 1 항에 있어서,
상기 결정하는 것은 상기 이미지들의 샘플 세트 중 최상위 점수의 서브세트를 선택하는 것을 포함하는, 시스템.
The method of claim 1,
Wherein the determining includes selecting a subset of the highest score among the sample set of images.
제 4 항에 있어서,
상기 최상위 점수의 서브세트는 상기 이미지들의 트레이닝 세트인, 시스템.
The method of claim 4,
The subset of the top score is a training set of the images.
제 1 항에 있어서,
상기 이미지들의 트레이닝 세트에 기초하여 상기 분류기를 트레이닝하는 것을 더 포함하는, 시스템.
The method of claim 1,
Further comprising training the classifier based on the training set of images.
제 1 항에 있어서,
상기 이미지 클래스와 관련된 시각적 패턴 템플릿(visual pattern template)을 생성하는 것을 더 포함하는, 시스템.
The method of claim 1,
The system further comprising creating a visual pattern template associated with the image class.
제 1 항에 있어서,
상기 분류기는 시각적 단어 가방식 이미지 분류 기술(bag of visual words image classification technique) 또는 신경 네트워크 이미지 분류 기술(neural network image classification technique)을 사용하도록 구성되는, 시스템.
The method of claim 1,
Wherein the classifier is configured to use a bag of visual words image classification technique or a neural network image classification technique.
제 1 항에 있어서,
이미지들의 평가 세트가 상기 이미지 클래스에 상관되는 정도(extent)를 결정하는 것을 더 포함하는, 시스템.
The method of claim 1,
The system further comprising determining an extent to which an evaluation set of images correlates to the image class.
제 9 항에 있어서,
상기 이미지들의 평가 세트는 상기 이미지들의 샘플 세트와 상이한, 시스템.
The method of claim 9,
The evaluation set of images is different from the sample set of images.
제 9 항에 있어서,
상기 이미지들의 평가 세트는 상기 이미지들의 샘플 세트보다 큰 이미지들의 세트를 포함하는, 시스템.
The method of claim 9,
The evaluation set of images comprising a set of images that are larger than the sample set of images.
제 9 항에 있어서,
상기 이미지 클래스와 관련된 시각적 패턴 템플릿에 의해 상기 이미지들의 평가 세트의 각각의 이미지의 상관관계를 점수화하는 것을 더 포함하는, 시스템.
The method of claim 9,
And scoring a correlation of each image of the rating set of images by a visual pattern template associated with the image class.
제 12 항에 있어서,
상기 이미지들의 평가 세트의 각각의 이미지의 상관관계의 점수화에 기초하여 상기 평가 세트의 각각의 이미지를 순위화하는 것을 더 포함하는, 시스템.
The method of claim 12,
And ranking each image of the rating set based on scoring a correlation of each image of the rating set of images.
제 12 항에 있어서,
상기 이미지들의 평가 세트의 최상위 점수의 서브세트를 상기 이미지 클래스에 관련시키는 것을 더 포함하는, 시스템.
The method of claim 12,
And associating a subset of the highest score of the rating set of images to the image class.
제 1 항에 있어서,
상기 하나 이상의 소셜 큐들은 하나 이상의 이미지 태그들을 포함하는, 시스템.
The method of claim 1,
The one or more social cues comprising one or more image tags.
제 15 항에 있어서,
이미지와 관련된 상기 하나 이상의 이미지 태그들의 총수에서 특정 이미지 태그의 인스턴스(instance)들의 수를 결정하는 것을 더 포함하는, 시스템.
The method of claim 15,
Further comprising determining a number of instances of a particular image tag in the total number of the one or more image tags associated with an image.
제 1 항에 있어서,
상기 하나 이상의 소셜 큐들은: 상기 이미지들의 샘플 세트의 이미지와 연관된 위치 데이터; 또는 상기 이미지들의 샘플 세트의 상기 이미지의 업로더(uploader), 태거, 또는 소유자의 신원 중 하나 이상을 포함하는, 시스템.
The method of claim 1,
The one or more social cues may include: location data associated with an image of the sample set of images; Or one or more of the identity of an uploader, tagger, or owner of the image of the sample set of images.
제 1 항에 있어서,
상기 하나 이상의 소셜 큐들은 상기 소셜 네트워킹 시스템에 의해 수신되는, 시스템.
The method of claim 1,
The one or more social queues are received by the social networking system.
컴퓨터 시스템에 의해, 복수의 이미지 클래스들과 연관된 이미지 분류기를 트레이닝하기 위해 이미지들을 선택한 이미지들의 샘플 세트를 수신하는 단계로서, 상기 샘플 세트에서 적어도 하나의 이미지는 하나 이상의 소셜 큐들과 연관되고, 상기 하나 이상의 소셜 큐들은 소셜 네트워킹 시스템 상의 적어도 하나의 생성자 또는 태거의 대화에 기초하여 상기 적어도 하나의 이미지의 상기 적어도 하나의 생성자 또는 태거의 신뢰성을 포함하는, 상기 이미지들의 샘플 세트를 수신하는 단계;
상기 컴퓨터 시스템에 의해, 상기 이미지와 관련된 하나 이상의 소셜 큐들에 기초하여 상기 샘플 세트 내의 각각의 이미지의 이미지 클래스에 대한 상관관계를 점수화하는 단계; 및
상기 컴퓨터 시스템에 의해, 상기 점수화에 기초하여 상기 샘플 세트로부터 분류기를 트레이닝할 이미지들의 트레이닝 세트를 결정하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
Receiving, by a computer system, a sample set of images selected for training an image classifier associated with a plurality of image classes, wherein at least one image in the sample set is associated with one or more social cues, the one Receiving a sample set of images, wherein the social cues include a credibility of the at least one creator or tagger of the at least one image based on a conversation of at least one creator or tagger on a social networking system;
Scoring, by the computer system, a correlation for an image class of each image in the sample set based on one or more social cues associated with the image; And
Determining, by the computer system, a training set of images to train a classifier from the sample set based on the scoring.
복수의 이미지 클래스들과 연관된 이미지 분류기를 트레이닝하기 위해 이미지들을 선택한 이미지들의 샘플 세트를 수신하는 단계로서, 상기 샘플 세트에서 적어도 하나의 이미지는 하나 이상의 소셜 큐들과 연관되고, 상기 하나 이상의 소셜 큐들은 소셜 네트워킹 시스템 상의 적어도 하나의 생성자 또는 태거의 대화에 기초하여 상기 적어도 하나의 이미지의 상기 적어도 하나의 생성자 또는 태거의 신뢰성을 포함하는, 상기 이미지들의 샘플 세트를 수신하는 단계;
상기 이미지와 관련된 하나 이상의 소셜 큐들에 기초하여 상기 샘플 세트 내의 각각의 이미지의 이미지 클래스에 대한 상관관계를 점수화하는 단계; 및
상기 점수화에 기초하여 상기 샘플 세트로부터 분류기를 트레이닝할 이미지들의 트레이닝 세트를 결정하는 단계를 포함하는 컴퓨터로 구현되는 방법을, 실행시 컴퓨터 시스템으로 하여금 수행하도록 하는 컴퓨터-실행가능한 명령들을 저장하는 컴퓨터 저장 매체.
Receiving a sample set of images selected for training an image classifier associated with a plurality of image classes, wherein at least one image is associated with one or more social cues, wherein the one or more social cues are social Receiving a sample set of images comprising the reliability of the at least one creator or tagger of the at least one image based on the conversation of at least one creator or tagger on a networking system;
Scoring a correlation for an image class of each image in the sample set based on one or more social cues associated with the image; And
A computer-implemented method comprising determining a training set of images to train a classifier from the sample set based on the scoring, comprising: computer storage storing computer-executable instructions that, when executed, cause a computer system to perform. media.
KR1020167005447A 2013-08-05 2014-02-11 Systems and methods for image classification by correlating contextual cues with images KR102244748B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/959,446 US10169686B2 (en) 2013-08-05 2013-08-05 Systems and methods for image classification by correlating contextual cues with images
US13/959,446 2013-08-05
PCT/US2014/015887 WO2015020691A1 (en) 2013-08-05 2014-02-11 Systems and methods for image classification by correlating contextual cues with images

Publications (2)

Publication Number Publication Date
KR20160040633A KR20160040633A (en) 2016-04-14
KR102244748B1 true KR102244748B1 (en) 2021-04-28

Family

ID=52427721

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167005447A KR102244748B1 (en) 2013-08-05 2014-02-11 Systems and methods for image classification by correlating contextual cues with images

Country Status (10)

Country Link
US (2) US10169686B2 (en)
JP (1) JP6612229B2 (en)
KR (1) KR102244748B1 (en)
CN (1) CN105612514B (en)
AU (1) AU2014304803B2 (en)
BR (1) BR112016003926A2 (en)
CA (1) CA2920193A1 (en)
IL (1) IL243859A0 (en)
MX (1) MX367510B (en)
WO (1) WO2015020691A1 (en)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104751198B (en) * 2013-12-27 2018-04-27 华为技术有限公司 The recognition methods of object in image and device
US10223727B2 (en) * 2014-10-20 2019-03-05 Oath Inc. E-commerce recommendation system and method
US10977571B2 (en) * 2015-03-02 2021-04-13 Bluvector, Inc. System and method for training machine learning applications
CN104899872B (en) * 2015-05-18 2017-11-03 北京大学 Image vision significance computational methods and device based on explicit and implicit information
US10534810B1 (en) * 2015-05-21 2020-01-14 Google Llc Computerized systems and methods for enriching a knowledge base for search queries
US11537262B1 (en) 2015-07-21 2022-12-27 Monotype Imaging Inc. Using attributes for font recommendations
US9906704B2 (en) 2015-09-17 2018-02-27 Qualcomm Incorporated Managing crowd sourced photography in a wireless network
US10878286B2 (en) * 2016-02-24 2020-12-29 Nec Corporation Learning device, learning method, and recording medium
CN105825228B (en) * 2016-03-14 2019-04-30 百度在线网络技术(北京)有限公司 Image-recognizing method and device
CN105761269A (en) * 2016-03-14 2016-07-13 北京大学 Image salient object detection method based on multiscale discrimination subspaces
US9892326B2 (en) 2016-03-31 2018-02-13 International Business Machines Corporation Object detection in crowded scenes using context-driven label propagation
US11237857B2 (en) * 2016-07-07 2022-02-01 Data Accelerator Ltd Method and system for application virtualization that includes machine learning
US11314565B2 (en) * 2016-07-07 2022-04-26 Data Accelerator Ltd Method and system for application virtualization that includes resource access control
US10929461B2 (en) * 2016-07-25 2021-02-23 Evernote Corporation Automatic detection and transfer of relevant image data to content collections
US10645142B2 (en) 2016-09-20 2020-05-05 Facebook, Inc. Video keyframes display on online social networks
US10026021B2 (en) 2016-09-27 2018-07-17 Facebook, Inc. Training image-recognition systems using a joint embedding model on online social networks
US10083379B2 (en) 2016-09-27 2018-09-25 Facebook, Inc. Training image-recognition systems based on search queries on online social networks
EP3306555A1 (en) * 2016-10-10 2018-04-11 Facebook, Inc. Diversifying media search results on online social networks
US20180101540A1 (en) * 2016-10-10 2018-04-12 Facebook, Inc. Diversifying Media Search Results on Online Social Networks
US11200273B2 (en) 2016-10-16 2021-12-14 Ebay Inc. Parallel prediction of multiple image aspects
US10452688B2 (en) 2016-11-08 2019-10-22 Ebay Inc. Crowd assisted query system
US11347374B2 (en) * 2016-11-17 2022-05-31 Meta Platforms, Inc. Systems and methods for managing shared content
US11544579B2 (en) 2016-11-23 2023-01-03 Primal Fusion Inc. System and method for generating training data for machine learning classifier
CA3044530A1 (en) * 2016-11-23 2018-05-31 Primal Fusion Inc. System and method for using a knowledge representation with a machine learning classifier
CN106650795B (en) * 2016-12-01 2020-06-12 携程计算机技术(上海)有限公司 Hotel room type image sorting method
EP3336800B1 (en) * 2016-12-19 2019-08-28 Siemens Healthcare GmbH Determination of a training function for generating annotated training images
US10803013B2 (en) * 2017-02-10 2020-10-13 Smugmug, Inc. Efficient similarity detection
US11301506B2 (en) * 2017-06-29 2022-04-12 Adobe Inc. Automated digital asset tagging using multiple vocabulary sets
CN107463953B (en) * 2017-07-21 2019-11-19 上海媒智科技有限公司 Image classification method and system based on quality insertion in the noisy situation of label
JP7027070B2 (en) * 2017-08-31 2022-03-01 キヤノン株式会社 Information processing equipment, information processing methods, and programs
US11334750B2 (en) 2017-09-07 2022-05-17 Monotype Imaging Inc. Using attributes for predicting imagery performance
US10909429B2 (en) * 2017-09-27 2021-02-02 Monotype Imaging Inc. Using attributes for identifying imagery for selection
CN107679183B (en) 2017-09-29 2020-11-06 百度在线网络技术(北京)有限公司 Training data acquisition method and device for classifier, server and storage medium
WO2019089578A1 (en) 2017-10-30 2019-05-09 Monotype Imaging Inc. Font identification from imagery
KR102074654B1 (en) * 2017-11-03 2020-02-07 카페24 주식회사 Method, Apparatus and System for Editing Shopping Mall Webpage
US10140553B1 (en) * 2018-03-08 2018-11-27 Capital One Services, Llc Machine learning artificial intelligence system for identifying vehicles
CN110351180A (en) * 2018-04-03 2019-10-18 鸿富锦精密电子(天津)有限公司 Internet of Things information management system
JP7219023B2 (en) * 2018-06-22 2023-02-07 日立造船株式会社 Information processing device and object determination program
US10635940B1 (en) * 2018-12-11 2020-04-28 Capital One Services, Llc Systems and methods for updating image recognition models
JP7261022B2 (en) * 2019-01-30 2023-04-19 キヤノン株式会社 Information processing system, terminal device and its control method, program, storage medium
US11494884B2 (en) 2019-02-21 2022-11-08 Canon U.S.A., Inc. Method and system for evaluating image sharpness
EP3935576A4 (en) * 2019-03-06 2022-11-23 Telepathy Labs, Inc. Method and system for assisting a developer in improving an accuracy of a classifier
WO2021081741A1 (en) * 2019-10-29 2021-05-06 深圳大学 Image classification method and system employing multi-relationship social network
US11704716B2 (en) * 2019-11-18 2023-07-18 Meta Platforms, Inc. Identifying objects within an image from a user of an online system matching products identified to the online system by the user
US11354936B1 (en) * 2020-07-15 2022-06-07 Amazon Technologies, Inc. Incremental clustering for face recognition systems
US11184445B2 (en) * 2020-09-27 2021-11-23 Jean-Michel Michel Cloutier System and method of establishing communication between users
JP7102563B2 (en) * 2021-02-03 2022-07-19 プライマル フュージョン インコーポレイテッド Systems and methods for using knowledge representation with machine learning classifiers
JP7388662B2 (en) * 2021-08-20 2023-11-29 Lineヤフー株式会社 Information processing device, information processing method, and information processing program
CN113822252B (en) * 2021-11-24 2022-04-22 杭州迪英加科技有限公司 Pathological image cell robust detection method under microscope
US20230260275A1 (en) * 2022-02-11 2023-08-17 Whammy, Inc. System and method for identifying objects and/or owners

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271297A1 (en) 2006-05-19 2007-11-22 Jaffe Alexander B Summarization of media object collections
JP2009258953A (en) * 2008-04-16 2009-11-05 Univ Of Electro-Communications Image processing method, program for executing the method, storage medium, imaging apparatus, and image processing system
JP2011523137A (en) * 2008-06-06 2011-08-04 トムソン ライセンシング Image similarity search system and method
US20130007667A1 (en) 2011-06-28 2013-01-03 Microsoft Corporation People centric, cross service, content discovery system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909510A (en) 1997-05-19 1999-06-01 Xerox Corporation Method and apparatus for document classification from degraded images
US7296032B1 (en) * 2001-05-17 2007-11-13 Fotiva, Inc. Digital media organization and access
US7941009B2 (en) 2003-04-08 2011-05-10 The Penn State Research Foundation Real-time computerized annotation of pictures
US9715542B2 (en) * 2005-08-03 2017-07-25 Search Engine Technologies, Llc Systems for and methods of finding relevant documents by analyzing tags
US7949186B2 (en) * 2006-03-15 2011-05-24 Massachusetts Institute Of Technology Pyramid match kernel and related techniques
US8024343B2 (en) * 2006-04-07 2011-09-20 Eastman Kodak Company Identifying unique objects in multiple image collections
US7877384B2 (en) 2007-03-01 2011-01-25 Microsoft Corporation Scoring relevance of a document based on image text
US8880529B2 (en) * 2007-05-15 2014-11-04 Tivo Inc. Hierarchical tags with community-based ratings
US20090083332A1 (en) * 2007-09-21 2009-03-26 The Penn State Research Foundation Tagging over time: real-world image annotation by lightweight metalearning
US8385971B2 (en) 2008-08-19 2013-02-26 Digimarc Corporation Methods and systems for content processing
US20100271297A1 (en) * 2009-04-27 2010-10-28 Shoei-Lai Chen Non-contact touchpad apparatus and method for operating the same
US8478052B1 (en) * 2009-07-17 2013-07-02 Google Inc. Image classification
US8370282B1 (en) * 2009-07-22 2013-02-05 Google Inc. Image quality measures
US20110188742A1 (en) 2010-02-02 2011-08-04 Jie Yu Recommending user image to social network groups
US8401282B2 (en) 2010-03-26 2013-03-19 Mitsubishi Electric Research Laboratories, Inc. Method for training multi-class classifiers with active selection and binary feedback
US20120106854A1 (en) 2010-10-28 2012-05-03 Feng Tang Event classification of images from fusion of classifier classifications
US9218364B1 (en) * 2011-01-28 2015-12-22 Yahoo! Inc. Monitoring an any-image labeling engine
US9037600B1 (en) * 2011-01-28 2015-05-19 Yahoo! Inc. Any-image labeling engine
US8774515B2 (en) * 2011-04-20 2014-07-08 Xerox Corporation Learning structured prediction models for interactive image labeling
US9646226B2 (en) * 2013-04-16 2017-05-09 The Penn State Research Foundation Instance-weighted mixture modeling to enhance training collections for image annotation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271297A1 (en) 2006-05-19 2007-11-22 Jaffe Alexander B Summarization of media object collections
JP2009258953A (en) * 2008-04-16 2009-11-05 Univ Of Electro-Communications Image processing method, program for executing the method, storage medium, imaging apparatus, and image processing system
JP2011523137A (en) * 2008-06-06 2011-08-04 トムソン ライセンシング Image similarity search system and method
US20130007667A1 (en) 2011-06-28 2013-01-03 Microsoft Corporation People centric, cross service, content discovery system

Also Published As

Publication number Publication date
MX2016001687A (en) 2016-09-06
KR20160040633A (en) 2016-04-14
BR112016003926A2 (en) 2019-11-12
US20150036919A1 (en) 2015-02-05
WO2015020691A1 (en) 2015-02-12
MX367510B (en) 2019-08-26
IL243859A0 (en) 2016-04-21
US10169686B2 (en) 2019-01-01
CN105612514A (en) 2016-05-25
AU2014304803A1 (en) 2016-02-25
AU2014304803B2 (en) 2019-07-04
JP6612229B2 (en) 2019-11-27
US20190279053A1 (en) 2019-09-12
CN105612514B (en) 2020-07-21
JP2016527646A (en) 2016-09-08
CA2920193A1 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
KR102244748B1 (en) Systems and methods for image classification by correlating contextual cues with images
US20180012236A1 (en) Systems and methods for analyzing interaction-bait content based on classifier models
US10154312B2 (en) Systems and methods for ranking and providing related media content based on signals
US10630632B2 (en) Systems and methods for ranking comments
US10699216B2 (en) Systems and methods for providing content
US10460171B2 (en) Systems and methods for processing media content that depict objects
US10360466B2 (en) Systems and methods for image description generation
US20180032898A1 (en) Systems and methods for comment sampling
US11709996B2 (en) Suggesting captions for content
US10552473B2 (en) Systems and methods for processing media content that depict objects
US20160373454A1 (en) Systems and methods for providing content to verified entities
US10769199B2 (en) Systems and methods for processing media content that depict objects
EP2835748A1 (en) Systems and methods for image classification by correlating contextual cues with images
US20160078035A1 (en) Systems and methods for providing real-time content items associated with topics
US10360255B2 (en) Systems and methods to determine location of media items
US10929770B2 (en) Systems and methods for recommending pages
US20180096390A1 (en) Systems and methods for promoting content items
US20190155929A1 (en) Systems and methods for automated query expansion
US20220303632A1 (en) Systems and methods for automatically adjusting playback of media content items
US10733478B2 (en) Systems and methods for processing media content that depict objects
US10419383B2 (en) Systems and methods for ranking comments based on interaction-to-impression ratio
US10270772B2 (en) Systems and methods for providing content to verified entities

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant