KR20180041202A - 사용자와 연관된 이미지들의 조직화 - Google Patents

사용자와 연관된 이미지들의 조직화 Download PDF

Info

Publication number
KR20180041202A
KR20180041202A KR1020187007531A KR20187007531A KR20180041202A KR 20180041202 A KR20180041202 A KR 20180041202A KR 1020187007531 A KR1020187007531 A KR 1020187007531A KR 20187007531 A KR20187007531 A KR 20187007531A KR 20180041202 A KR20180041202 A KR 20180041202A
Authority
KR
South Korea
Prior art keywords
user
images
image
labels
search
Prior art date
Application number
KR1020187007531A
Other languages
English (en)
Other versions
KR102090010B1 (ko
Inventor
로빈 두아
수지트 라비
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20180041202A publication Critical patent/KR20180041202A/ko
Application granted granted Critical
Publication of KR102090010B1 publication Critical patent/KR102090010B1/ko

Links

Images

Classifications

    • G06F17/30244
    • 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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/86Mapping to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • G06K9/52
    • G06K9/6267
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/235Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/30Scenes; Scene-specific elements in albums, collections or shared content, e.g. social network photos or video

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Artificial Intelligence (AREA)
  • Library & Information Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

방법은 사용자와 연관된 이미지들을 식별하는 단계를 포함하며, 이미지는 사용자와 연관된 사용자 디바이스에 의해 캡처된 것, 사용자와 연관된 사용자 디바이스 상에 저장된 것, 그리고 사용자와 연관된 클라우드 스토리지에 저장된 것 중 적어도 하나로서 식별된다. 방법은 또한, 이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하는 단계를 포함하며, 하나 또는 그 초과의 라벨들은 메타데이터 및 1차 주석 중 적어도 하나에 기반한다. 방법은 또한, 하나 또는 그 초과의 신뢰 점수들로의 하나 또는 그 초과의 라벨들의 매핑을 생성하는 단계를 포함하며, 하나 또는 그 초과의 신뢰 점수들은, 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시한다. 방법은 또한, 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 사용자와 상호작용하는 단계를 포함한다.

Description

사용자와 연관된 이미지들의 조직화
[0001] 본 출원은, ORGANIZING IMAGES ASSOCIATED WITH A USER란 명칭으로 2015년 12월 28일자로 출원된 미국 특허 출원 번호 제 14/980,835호를 우선권으로 주장하며, 이 특허 출원은 그 전체가 인용에 의해 본원에 통합된다.
[0002] 스마트폰들의 카메라들의 표준화에 따라, 소비자들은 그전보다 더 많은 픽처들 및 비디오들을 찍고 있다. 소비자들이 수백 또는 수천 개의 사진들을 그들의 모바일 디바이스들 상에 저장되게 하는 것은 드물지 않다. 이들 사진들은 때때로 클라우드 스토리지 서비스에 백업되지만, 많은 경우들에서, 사진들은 모바일 디바이스 상에 저장된 상태로 남아 있다. 사용자들은, 클라우드 스토리지 서비스를 사용하는 것과 연관된 비용, 브로드밴드 액세스의 고비용, 브로드밴드 연결성의 부족, 또는 다른 요인들에 기인하여, 그들의 사진들을 클라우드에 백업하지 않기로 선정할 수 있다.
[0003] 특정 사진 또는 사진들의 세트를 검색하는 사용자들은 일반적으로, 그들이 특정 사진 또는 사진들의 세트를 발견할 때까지 그들의 이미지들을 수동으로 살펴야 한다. 클라우드에 또는 폰 상에 저장된 사진을 검색 용어들을 사용하여 검색하는 어떤 신속한 방식도 없을 수 있다. 자연 언어 프로세싱 기법들을 사용하는 미디어 검색 엔진들은 특정 사진 또는 사진들의 세트를 발견하는 데 실패할 수 있는데, 그 이유는 상이한 사용자들이 사진 내의 소정의 특징들 또는 특성들을 설명하기 위해 사용할 수 있는 단어들에 높은 변동성이 있을 수 있기 때문이다.
[0004] 구현들은 일반적으로, 사용자와 연관된 이미지들을 조직화하는 것에 관한 것이다. 일부 구현들에서, 방법은 사용자와 연관된 이미지들을 식별하는 단계를 포함하며, 이미지는 사용자와 연관된 사용자 디바이스에 의해 캡처된 것, 사용자와 연관된 사용자 디바이스 상에 저장된 것, 그리고 사용자와 연관된 클라우드 스토리지에 저장된 것 중 적어도 하나로서 식별된다. 방법은 또한, 이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하는 단계를 포함하며, 하나 또는 그 초과의 라벨들은 메타데이터 및 1차 주석 중 적어도 하나에 기반한다. 방법은 또한, 하나 또는 그 초과의 신뢰 점수들로의 하나 또는 그 초과의 라벨들의 매핑을 생성하는 단계를 포함하며, 하나 또는 그 초과의 신뢰 점수들은, 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시한다. 방법은 또한, 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 사용자와 상호작용하는 단계를 포함한다.
[0005] 일부 구현들에서, 방법은, 이미지들 중 하나 또는 그 초과에 식별 정보를 추가함으로써 매핑을 업데이트하는 단계를 더 포함한다. 일부 구현들에서, 방법은, 사용자와 연관된 이미지들 중 하나 또는 그 초과의 이미지들에 대한 하나 또는 그 초과의 사용자-생성 검색 용어들을 사용자로부터 수신하는 단계, 사용자-생성 검색 용어들의 애매성(ambiguity)을 결정하는 단계, 및 사용자-생성 검색 용어들의 애매성을 해결하기 위해 명료화 정보를 제공하도록 사용자에게 요청하는 단계를 더 포함한다. 일부 구현들에서, 방법은, 이미지들 중 하나 또는 그 초과의 이미지들을 제3자 애플리케이션과 연관된 사람에게 전송하라는 명령을 사용자로부터 수신하는 단계, 이 사람과 연관된 접촉 프로파일을 결정하는 단계, 및 접촉 프로파일에 기반하여 하나 또는 그 초과의 이미지들을 이 사람에게 제공하는 단계를 더 포함한다. 일부 구현들에서, 하나 또는 그 초과의 라벨들은 2차 주석을 포함하며, 2차 주석은, 메타데이터 및 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성된다. 일부 구현들에서, 사용자와 상호작용하는 단계는 이미지, 및 이 이미지 내의 엔티티에 관한 식별 정보를 제공하라는 오디오 프롬프트를 송신하는 단계를 포함한다. 일부 구현들에서, 방법은, 이미지들 중 하나의 이미지 내의 엔티티에 관련된 아이템을 구매하라는 요청을 사용자로부터 수신하는 단계, 및 사용자를 위해 아이템을 구매하는 단계를 더 포함한다.
[0006] 일부 구현들에서, 시스템은 메모리에 커플링된 하나 또는 그 초과의 프로세서들, 메모리에 저장되며, 하나 또는 그 초과의 프로세서들에 의해 실행가능한 이미지 프로세싱 모듈을 포함하며, 이미지 프로세싱 모듈은, 사용자와 연관된 이미지들을 식별하며, 그리고 이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하도록 동작가능하며, 하나 또는 그 초과의 라벨들은 메타데이터, 1차 주석, 및 2차 주석 중 적어도 하나에 기반하며, 2차 주석은, 메타데이터 및 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성된다. 시스템은, 메모리에 저장되며, 하나 또는 그 초과의 프로세서들에 의해 실행가능한 인덱싱 모듈을 더 포함할 수 있으며, 인덱싱 모듈은, 하나 또는 그 초과의 신뢰 점수들로의 하나 또는 그 초과의 라벨들의 매핑을 생성하도록 동작가능하며, 하나 또는 그 초과의 신뢰 점수들은, 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시한다. 시스템은, 메모리에 저장되며, 하나 또는 그 초과의 프로세서들에 의해 실행가능한 이미지 어시스턴트를 더 포함할 수 있으며, 이미지 어시스턴트는, 하나 또는 그 초과의 라벨들 중의 하나 또는 그 초과의 라벨들에 대응하는 하나 또는 그 초과의 사용자-생성 검색 용어들을 포함하는 제1 검색 질의를 수신하며, 그리고 대응하는 이미지를 사용자에게 제공하도록 동작가능하다. 인덱싱 모듈은 추가로, 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 사용자와 상호작용하며, 그리고 이미지들 중 하나 또는 그 초과에 식별 정보를 추가함으로써 매핑을 업데이트하도록, 인덱싱 모듈에 명령하도록 동작가능하다.
[0007] 일부 구현들에서, 방법은 사용자와 연관된 이미지들을 식별하기 위한 수단을 포함할 수 있으며, 이미지는 사용자와 연관된 사용자 디바이스에 의해 캡처된 것, 사용자와 연관된 사용자 디바이스 상에 저장된 것, 그리고 사용자와 연관된 클라우드 스토리지에 저장된 것 중 적어도 하나로서 식별된다. 방법은 또한, 이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하기 위한 수단을 포함하며, 하나 또는 그 초과의 라벨들은 메타데이터 및 1차 주석 중 적어도 하나에 기반한다. 방법은 또한, 하나 또는 그 초과의 신뢰 점수들로의 하나 또는 그 초과의 라벨들의 매핑을 생성하기 위한 수단을 포함하며, 하나 또는 그 초과의 신뢰 점수들은, 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시한다. 방법은 또한, 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 사용자와 상호작용하기 위한 수단을 포함한다.
[0008] 다른 양상들은 대응하는 방법들, 시스템들, 장치, 및 컴퓨터 프로그램 제품들을 포함할 수 있다.
[0009] 아래에서 설명된 시스템 및 방법들은 유리하게, 검색 질의를 사용하여 이미지들을 검색하는 능력을 개선시키며, 그리고 검색 질의에 매칭하는 이미지들을 리트리빙하기 위해 필요한 컴퓨테이션 비용 및 시간을 감소시키는, 이미지들을 조직화하기 위한 구조화된 포맷을 생성한다.
[0010] 본 개시내용은 첨부된 도면들 중의 도면들에서 제한이 아닌 예로서 예시되며, 도면들에서는 유사한 엘리먼트들을 지칭하기 위해 유사한 참조 부호들이 사용된다.
[0011] 도 1은 이미지들을 조직화하는 예시적인 시스템의 블록 다이어그램을 예시한다.
[0012] 도 2는 이미지들을 조직화하는 예시적인 컴퓨팅 디바이스의 블록 다이어그램을 예시한다.
[0013] 도 3a는 이미지 내의 엔티티들에 관한 추가 정보를 제공하도록 동작가능한 사용자 인터페이스의 그래픽 표현을 예시한다.
[0014] 도 3b는 이미지 내의 엔티티에 관한 정보를 제공하도록 동작가능한 사용자 인터페이스의 다른 예의 그래픽 표현을 예시한다.
[0015] 도 4a는 모델 전파가 수행되기 전의 그래프의 그래픽 표현을 예시한다.
[0016] 도 4b는 모델 전파 후의 그래프의 그래픽 표현을 예시한다.
[0017] 도 5는 사용자들에게 명료화 질문들을 물어보도록 동작가능한 사용자 인터페이스의 그래픽 표현을 예시한다.
[0018] 도 6a-도 6b는 이미지들을 조직화하기 위한 예시적인 방법의 흐름도이다.
[0019] 일부 구현들은 사용자와 연관되는 이미지들을 조직화하기 위한 시스템 및 방법을 포함할 수 있다. 예컨대, 이미지들은 사용자와 연관된 사용자 디바이스에 의해 캡처, 사용자와 연관된 사용자 디바이스 상에 저장, 클라우드 스토리지에 저장, 및 사용자와 연관될 수 있거나, 또는 이미지들의 결합이 사용자 디바이스에 의해 캡처되고, 사용자 디바이스 상에 저장되며, 그리고 클라우드 스토리지에 저장될 수 있다. 일부 구현들에서, 이미지들이 사용자에 의해 캡처되거나 또는 사용자에 의해 클라우드에 업로드되면, 이미지들은 사용자와 연관될 수 있다. 일부 구현들에서, 이미지가 사용자의 식별을 포함하도록 주석이 달렸다면, 예컨대, 사용자 또는 다른 사람에 의해 이미지 내에서 사용자가 태깅되었다면(tagged), 이미지들은 사용자와 연관될 수 있다. 이미지들 각각에 대해, 하나 또는 그 초과의 라벨들이 결정될 수 있다. 하나 또는 그 초과의 라벨들은 메타데이터, 1차 주석, 및 2차 주석 중 적어도 하나에 기반할 수 있다. 하나 또는 그 초과의 라벨들을 하나 또는 그 초과의 신뢰 점수들에 매핑함으로써, 인덱스가 생성될 수 있다. 신뢰 점수는, 라벨이 대응하는 이미지에 적용되는 정도를 표시할 수 있다.
[0020] 메타데이터는 사용자 디바이스, 이를테면 이미지를 캡처하기 위해 사용되는 이미지 캡처 디바이스에 의해 생성된 데이터, 또는 사용자에 의해 제공된 데이터에 기반할 수 있다. 이미지 내에서 나타나는 엔티티 및 이미지와 연관된 하나 또는 그 초과의 특성들 중 하나 또는 그 초과를 결정하기 위한 이미지 인식을 수행함으로써, 1차 주석이 생성될 수 있다. 예컨대, 엔티티는 이미지 내의 랜드마크 또는 사람을 포함할 수 있고, 특성은 안개일 수 있으며, 1차 주석은 랜드마크(에펠탑), 사람(제인 도), 또는 특성(안개)의 설명일 수 있다. 1차 주석은 또한, 메타데이터가 표현하는 것에 관한 하나 또는 그 초과의 추론들에 기반하여, 이미지와 연관된 메타데이터로부터 생성될 수 있다. 예컨대, 메타데이터는, 이미지가 캡처된 시간의 고도의 표시를 포함할 수 있다. 고도가 약 35,000 피트인 것에 기반하여, 이미지가 비행기에서 캡처되었다는 것이 추론될 수 있다. 1차 주석들은 이미지를 검색하는 것을 더 쉽게 하기 위해 "비행 동안 찍힘" 또는 "비행기에서 찍힘"을 포함할 수 있다.
[0021] 이미지와 연관된 메타데이터 또는 1차 주석의 라벨 확장을 통해, 관련된 주석을 식별함으로써, 2차 주석이 생성될 수 있다. 라벨 확장은, 엔티티에 대한 카테고리보다 더 넓은 하나 또는 그 초과의 고차 라벨들을 결정하는 것, 예컨대, 불독을 식별하는 것 그리고 개, 동물, 및 포유동물 라벨들을 생성하는 것을 포함하는 계층적 분류체계에 기반하는 확장을 포함할 수 있다. 라벨 확장은 또한, 다른 단어들과 메타데이터 또는 1차 주석의 의미론적 유사성에 기반하는 확장, 이를테면 커피 숍을 카페로 확장하는 것, 또는 시각적 유사성에 기반하는 확장, 이를테면 강아지를 개로 확장하는 것을 포함할 수 있다. 일부 구현들에서, 라벨 확장은 시각적 유사성과 의미론적 유사성 이 둘의 결합, 이를테면 1차 주석 "존이 검은 포르쉐에 앉다"를 확장하여 2차 주석 "남자가 어두운 자동차에 앉다"를 생성하는 것을 포함할 수 있다.
[0022] 이미지와 연관된 라벨들과 하나 또는 그 초과의 신뢰 점수들을 연관시키고, 이미지, 라벨들, 및 하나 또는 그 초과의 신뢰 점수들을 인덱싱함으로써, 인덱스가 생성될 수 있다. 신뢰 점수들은, 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시할 수 있다. 예컨대, 성인 개의 이미지는, 라벨 "강아지"가 라벨 "개"만큼 밀접하게 이미지에 적용되지 않는다는 것을 표시하는 신뢰 점수를 가질 수 있다. 인덱스는, 각각의 사용자와 연관된 이미지들에 대해 결정된 라벨들 및 신뢰 점수들에 기반하여, 상이한 사용자들에 대해 개인화될 수 있다. 예컨대, 제1 사용자는, "해변" 라벨로 인덱싱되는 제1 사용자 캡처 이미지들에 기반하여, "해변" 라벨과의 강한 연관을 표시하는 신뢰 점수와 연관될 수 있다. 제2 사용자는, "카페" 라벨로 인덱싱되는 제2 사용자 업로드 이미지들에 기반하여, "카페" 라벨과의 강한 연관을 표시하는 신뢰 점수와 연관될 수 있다.
[0023] 인덱스는, 사용자-생성 검색 용어들에 매칭하는 검색 결과들을 사용자에게 제공하는 것, 검색 질의를 자동완성하는 것, 그리고 검색 결과들의 품질을 개선시키기 위해 사용자-생성 검색 용어들을 카테고리화된 검색 용어들로 번역하는 것을 포함하는 다양한 방식들로 사용될 수 있다. 일부 구현들에서, 사진 검색 어시스턴트는, 사용자의 이미지들을 조직화하고, 이미지들에 추가 라벨들을 추가하고, 이미지들 내에 포함된 엔티티들에 관한 정보를 제공하고, 구두 커맨드들을 사용하여 이미지들을 편집하며, 그리고 이미지들 내에서 나타나는 제품들을 주문하거나 또는 이미지 자체를 포함하는 제품을 주문할 수 있다.
[0024] 본원에서 논의된 시스템들 및 방법들이 사용자들에 관한 개인 정보를 수집할 수 있거나 또는 개인 정보(예컨대, 사용자 데이터)를 사용할 수 있는 상황들에서, 정보가 사용자에 관해 수집되고 하나 또는 그 초과의 설명된 특징들에서 사용되는 방법을 제어할 하나 또는 그 초과의 기회들이 사용자들에게 제공된다. 프로그램들 또는 특징들이 사용자 데이터(예컨대, 사용자의 소셜 네트워크, 사용자 특성들, 소셜 액션들 또는 활동들에 관한 정보, 사용자의 선호들, 사용자에 의해 생성되거나 또는 제출된 콘텐츠, 사용자의 현재 위치 등)를 수집할지 여부에 대한 제어가 사용자에게 제공된다. 프로그램들 또는 특징들이 프로그램 또는 특징에 관련된 다른 사용자들 또는 그 특정 사용자에 관한 사용자 정보를 수집할지 여부에 대한 제어가 사용자에게 제공된다. 개인 정보가 수집되어야 하는 각각의 사용자에게는, 그 사용자에 관련된 정보 수집에 대한 제어가, 정보가 수집되는지 여부에 관한 그리고 정보의 부분들이 수집되어야 하는지에 관한 승인 또는 허가를 제공할 수 있게 하는 하나 또는 그 초과의 옵션들이 제시된다. 예컨대, 통신 네트워크에 대한 하나 또는 그 초과의 제어 옵션들이 사용자들에게 제공될 수 있다. 부가하여, 소정의 데이터는 이 데이터가 저장되거나 또는 사용되기 전에 하나 또는 그 초과의 방식들로 취급되어서, 개인 식별가능 정보는 제거될 수 있다. 예컨대, 어떤 개인 식별가능 정보도 사용자에 대해 결정될 수 없도록, 사용자의 아이덴티티가 취급될 수 있거나, 또는 사용자의 특정 위치가 결정될 수 없도록, 사용자의 지리적 위치가 더 큰 구역으로 일반화될 수 있다.
예시적인 시스템
[0025] 도 1은 사용자와 연관된 이미지들을 조직화하는 예시적인 시스템(100)의 블록 다이어그램을 예시한다. 예시된 시스템(100)은 이미지 서버(101), 사용자 디바이스들(115a-115n), 제3자 서버(120), 및 네트워크(105)를 포함한다. 사용자들(125a-125n)은 개개의 사용자 디바이스들(115a-115n)과 연관될 수 있다. 일부 구현들에서, 시스템(100)은 도 1에서 도시되지 않은 다른 서버들 또는 디바이스들을 포함할 수 있다. 도 1 및 나머지 도면들에서, 참조 번호 뒤의 문자, 예컨대 "115a"는 그 특정 참조 번호를 갖는 엘리먼트에 대한 참조를 표현한다. 다음에 나오는 문자가 없는 텍스트로 된 참조 번호, 예컨대 "115"는 그 참조 번호를 지니는 엘리먼트의 구현들에 대한 일반적인 참조를 표현한다.
[0026] 예시된 구현에서, 시스템(100)의 엔티티들은 네트워크(105)를 통해 통신가능하게 커플링된다. 네트워크(105)는 종래 타입의 유선 또는 무선일 수 있으며, 스타 구성, 토큰 링 구성 또는 다른 구성들을 포함하는 많은 상이한 구성들을 가질 수 있다. 또한, 네트워크(105)는 LAN(local area network), WAN(wide area network)(예컨대, 인터넷), 및/또는 다수의 디바이스들이 통신할 수 있게 하는 다른 상호연결된 데이터 경로들을 포함할 수 있다. 일부 구현들에서, 네트워크(105)는 피어-투-피어 네트워크일 수 있다. 네트워크(105)는 또한, 다양한 상이한 통신 프로토콜들로 데이터를 전송하기 위한 원격통신 네트워크의 부분들을 포함하거나 또는 그에 커플링될 수 있다. 일부 구현들에서, 네트워크(105)는 Bluetooth® 통신 네트워크들, WiFi®, 또는 SMS(short messaging service), MMS(multimedia messaging service), HTTP(hypertext transfer protocol), 직접 데이터 연결, 이메일 등을 통해서를 포함하여 데이터를 전송 및 수신하기 위한 셀룰러 통신 네트워크를 포함한다. 도 1이 사용자 디바이스들(115) 및 이미지 서버(101)에 커플링된 하나의 네트워크(105)를 예시하지만, 실제, 하나 또는 그 초과의 네트워크들(105)이 이들 엔티티들에 커플링될 수 있다.
[0027] 이미지 서버(101)는 프로세서, 메모리 및 네트워크 통신 능력들을 포함할 수 있다. 일부 구현들에서, 이미지 서버(101)는 하드웨어 서버이다. 이미지 서버(101)는 신호 라인(102)을 통해 네트워크(105)에 통신가능하게 커플링된다. 신호 라인(102)은 유선 연결, 이를테면 이더넷, 동축 케이블, 광섬유 케이블 등, 또는 무선 연결, 이를테면 Wi-Fi, 블루투스 또는 다른 무선 기술일 수 있다. 일부 구현들에서, 이미지 서버(101)는 네트워크(105)를 통해 제3자 서버(120) 및 사용자 디바이스들(115a-115n) 중 하나 또는 그 초과에 데이터를 전송하고 이로부터 데이터를 수신한다. 이미지 서버(101)는 이미지 애플리케이션(103a) 및 데이터베이스(199)를 포함할 수 있다.
[0028] 이미지 애플리케이션(103a)은 이미지들을 조직화하도록 동작가능한 코드 및 루틴들일 수 있다. 일부 구현들에서, 이미지 애플리케이션(103a)은 FPGA(field-programmable gate array) 또는 ASIC(application-specific integrated circuit)를 포함하는 하드웨어를 사용하여 구현될 수 있다. 일부 구현들에서, 이미지 애플리케이션(103a)은 하드웨어와 소프트웨어의 결합을 사용하여 구현될 수 있다.
[0029] 데이터베이스(199)는 각각의 사용자에 대한 하나 또는 그 초과의 인덱스들, 사용자들과 연관된 이미지들, 및 이 인덱스들을 생성하거나 또는 미세조정하기 위해 사용되는 트레이닝 데이터를 저장할 수 있다. 데이터베이스(199)는 또한, 사용자들(125)과 연관된 소셜 네트워크 데이터, 제3자 서버(120)로부터 수신된 정보, 접촉 정보 등을 저장할 수 있다.
[0030] 사용자 디바이스(115)는, 메모리 및 하드웨어 프로세서를 포함하는 컴퓨팅 디바이스, 예컨대, 카메라, 랩톱 컴퓨터, 데스크톱 컴퓨터, 태블릿 컴퓨터, 모바일 텔레폰, 웨어러블 디바이스, 헤드-장착 디스플레이, 모바일 이메일 디바이스, 휴대용 게임 플레이어, 휴대용 뮤직 플레이어, 판독기 디바이스, 하나 또는 그 초과의 프로세서들이 내부에 임베딩된 또는 커플링된 텔레비전, 또는 네트워크(105)에 액세스할 수 있는 다른 전자 디바이스일 수 있다.
[0031] 예시된 구현에서, 사용자 디바이스(115a)는 신호 라인(108)을 통해 네트워크(105)에 커플링되며, 사용자 디바이스(115n)는 신호 라인(110)을 통해 네트워크(105)에 커플링된다. 신호 라인들(108 및 110)은 유선 연결, 이를테면 이더넷, 동축 케이블, 광섬유 케이블 등, 또는 무선 연결, 이를테면 Wi-Fi, 블루투스 또는 다른 무선 기술일 수 있다. 사용자 디바이스들(115a, 115n)은 사용자들(125a, 125n)에 의해 각각 액세스된다. 도 1의 사용자 디바이스들(115a, 115n)은 예로서 사용된다. 도 1이 2 개의 사용자 디바이스들(115a 및 115n)을 예시하지만, 본 개시내용은 하나 또는 그 초과의 사용자 디바이스들(115)을 갖는 시스템 아키텍처에 적용된다.
[0032] 일부 구현들에서, 사용자 디바이스(115)는 사용자(125)에 의해 착용되는 웨어러블 디바이스에 포함되는 모바일 디바이스일 수 있다. 예컨대, 사용자 디바이스(115)는 클립(예컨대, 리스트밴드)의 일부, 쥬얼리의 일부, 또는 안경 하나의 일부로서 포함된다. 다른 예에서, 사용자 디바이스(115)는 스마트 워치일 수 있다. 사용자(125)는 사용자(125)에 의해 착용된 디바이스의 디스플레이 상에서 이미지 애플리케이션(103)으로부터의 이미지들을 볼 수 있다. 예컨대, 사용자(125)는 스마트 워치 또는 스마트 리스트밴드의 디스플레이 상에서 이미지들을 볼 수 있다.
[0033] 일부 구현들에서, 이미지 애플리케이션(103b)은 사용자 디바이스(115a) 상에 저장될 수 있다. 이미지 애플리케이션(103)은 사용자 디바이스(115a) 상에 저장되는 신-클라이언트(thin-client) 이미지 애플리케이션(103b), 그리고 이미지 서버(101) 상에 저장되는 이미지 애플리케이션(103a)을 포함할 수 있다. 예컨대, 이미지 애플리케이션(103)은, 사용자 디바이스(115a) 상에서 실행되며, 정보를 이미지 서버(101) 상에 저장된 이미지 애플리케이션(103a)에 전송하는 모바일 애플리케이션을 포함할 수 있다. 예컨대, 사용자(125a)는, 사용자 디바이스(115a)를 사용하여 이미지들을 캡처하고, 이 이미지들을 이미지 애플리케이션(103a)을 위한 이미지 서버(101)에 송신할 수 있다. 이미지 서버(101) 상에 저장된 이미지 애플리케이션(103a)은 이미지들을 프로세싱하며, 사용자 디바이스(115a) 상에 저장된 이미지 애플리케이션(103b)에 다시 추가 정보를 전송할 수 있다. 예컨대, 이미지 애플리케이션(103a)은, 이미지들에 기반하여 사용자에 대한 인덱스를 생성하고, 사용자 디바이스(115a) 상의 이미지 애플리케이션(103b)으로부터 사용자 질의를 수신하며, 그리고 사용자 질의에 매칭하는 검색 결과들을 디스플레이를 위해 사용자 디바이스(115a)에 송신할 수 있다.
[0034] 일부 구현들에서, 이미지 애플리케이션(103)은 이미지 서버(101) 상에 저장된 독립형 애플리케이션일 수 있다. 사용자(125a)는 브라우저를 사용하는 웹 페이지들을 통해 또는 사용자 디바이스(115a) 상의 다른 소프트웨어를 통해 이미지 애플리케이션(103)에 액세스할 수 있다. 이 구현에서, 사용자 디바이스(115a) 상에 저장된 이미지 애플리케이션(103b)은, 이미지 애플리케이션(103a)에 의해 생성된 정보를 디스플레이하라는 명령들을, 이미지 서버(101) 상에 저장된 이미지 애플리케이션(103a)으로부터 수신할 수 있다. 일부 구현들에서, 이미지 애플리케이션(103)은 이미지 서버(101) 상에 포함된 것과 동일한 컴포넌트들을 사용자 디바이스(115a) 상에 포함할 수 있다. 이들 구현들에서, 이미지들은 이미지 서버(101)에 의해 또는 사용자 디바이스(115)에 의해 조직화될 수 있다.
[0035] 제3자 서버(120)는 프로세서, 메모리 및 네트워크 통신 능력들을 포함할 수 있다. 일부 구현들에서, 제3자 서버(120)는 하드웨어 서버이다. 제3자 서버(120)는 신호 라인(118)을 통해 네트워크(105)에 통신가능하게 커플링된다. 신호 라인(118)은 유선 연결, 이를테면 이더넷, 동축 케이블, 광섬유 케이블 등, 또는 무선 연결, 이를테면 Wi-Fi, 블루투스 또는 다른 무선 기술일 수 있다. 일부 구현들에서, 제3자 서버(120)는 네트워크(105)를 통해 사용자 디바이스들(115a-115n) 및 이미지 서버(101) 중 하나 또는 그 초과에 데이터를 전송하고 이로부터 데이터를 수신한다.
[0036] 제3자 서버(120)는 추가 정보를 이미지 애플리케이션(103)에 제공할 수 있다. 예컨대, 제3자 서버(120)는 소셜 네트워크 프로파일들을 관리하는 소셜 네트워크 애플리케이션, 사용자들의 프로파일 이미지들을 포함하는 이메일 애플리케이션, 경도 및 위도 좌표들을 제공하는 매핑 애플리케이션, 엔티티들에 관한 정보를 제공하는 전자 백과사전, 제품들 또는 상품들이 구매될 수 있는 웹사이트 등을 포함할 수 있다.
[0037] 사용자가 그러한 데이터의 사용에 동의하는 한, 제3자 서버(120)는, 대응하는 소셜 네트워크 프로파일을 갖는 이미지 내의 사람을 식별하기 위해 이미지 애플리케이션(103)이 사용할 수 있는, 사용자의 프로파일 정보 또는 프로파일 이미지들을 이미지 애플리케이션(103)에 제공할 수 있다. 다른 예에서, 제3자 서버(120)는, 이미지 애플리케이션(103)에 의해 사용되는 이미지들 내에서 식별되는 엔티티들에 관련된 정보를 이미지 애플리케이션(103)에 제공할 수 있다. 예컨대, 제3자 서버(120)는, 이미지들 내에서 식별된 랜드마크들에 관한 정보를 제공하는 전자 백과사전, 이미지들 내에서 식별된 엔티티들을 구매하기 위한 정보를 제공하는 전자 쇼핑 웹사이트, 사용자 동의에 따라서, 이미지 내에서 식별된 사용자로부터의 여행일정표를 제공하는 전자 달력 애플리케이션, 이미지 내의 엔티티가 보일 수 있는 인근의 위치들에 관한 정보를 제공하는 지도 애플리케이션, 이미지 내의 요리가 서빙되었던 레스토랑에 대한 웹사이트 등을 포함할 수 있다.
[0038] 일부 구현들에서, 이미지 애플리케이션(103)은 제3자 서버(120)와 정보를 공유할 수 있다. 예컨대, 사용자는 "이 픽처를 톰에게 전송"하도록 이미지 애플리케이션(103)에 명령할 수 있다. 이미지 애플리케이션(103)은, 톰을 식별하기 위해 제3자 서버(120)에 의해 사용되는 접촉 정보, 이를테면 이메일 주소 또는 소셜 미디어 핸들을 결정할 수 있다. 이미지 애플리케이션(103)은 대응하는 이메일 주소 또는 소셜 미디어 핸들을 사용하여 이미지를 제3자 서버(120)에 송신할 수 있다.
[0039] 이미지 애플리케이션(103)이 이미지들을 참조로 설명되지만, 아래에서 설명된 구현들은 3 차원 이미저리, 비디오들, 가상 현실 비디오, 홀로그래픽 비디오, 오디오, 문서들 등을 포함하는 다른 타입들의 미디어에 대해 작용할 수 있다.
예시적인 컴퓨팅 디바이스
[0040] 도 2는 이미지들을 조직화하는 예시적인 컴퓨팅 디바이스(200)의 블록 다이어그램을 예시한다. 컴퓨팅 디바이스(200)는 이미지 서버(101) 또는 사용자 디바이스(115)일 수 있다. 컴퓨팅 디바이스(200)는 프로세서(235), 메모리(237), 통신 유닛(239), 디스플레이(241), 마이크로폰(243), 스피커(245), 및 저장 디바이스(247)를 포함할 수 있다. 이미지 애플리케이션(103)은 메모리(237)에 저장될 수 있다. 컴퓨팅 디바이스(200)의 컴포넌트들은 버스(220)에 의해 통신가능하게 커플링될 수 있다.
[0041] 프로세서(235)는, 컴퓨테이션들을 수행하고 명령들을 디스플레이 디바이스에 제공하기 위한 산술 논리 유닛, 마이크로프로세서, 범용 제어기 또는 어떤 다른 프로세서 어레이를 포함한다. 프로세서(235)는 데이터를 프로세싱하며, 그리고 CISC(complex instruction set computer) 아키텍처, RISC(reduced instruction set computer) 아키텍처, 또는 명령 세트들의 결합을 구현하는 아키텍처를 포함하는 다양한 컴퓨팅 아키텍처들을 포함할 수 있다. 도 2가 단일 프로세서(235)를 포함하지만, 다수의 프로세서들(235)이 포함될 수 있다. 다른 프로세서들, 운영체제들, 센서들, 디스플레이들 및 물리적 구성들은 컴퓨팅 디바이스(200)의 일부일 수 있다. 프로세서(235)는 신호 라인(222)을 통한 다른 컴포넌트들과의 통신을 위해 버스(220)에 커플링된다.
[0042] 메모리(237)는 프로세서(235)에 의해 실행될 수 있는 명령들 및/또는 데이터를 저장한다. 명령들은 본원에서 설명된 기법들을 수행하기 위한 코드를 포함할 수 있다. 메모리(237)는 DRAM(dynamic random access memory) 디바이스, 정적 RAM, 또는 어떤 다른 메모리 디바이스일 수 있다. 일부 구현들에서, 메모리(237)는 또한, 비-휘발성 메모리, 이를테면 (SRAM) 디바이스 또는 플래시 메모리, 또는 하드 디스크 드라이브, 플로피 디스크 드라이브, CD ROM(compact disc read only memory) 디바이스, DVD ROM 디바이스, DVD RAM 디바이스, DVD RW 디바이스, 플래시 메모리 디바이스를 포함하는 유사한 영구적인 저장 디바이스 및 매체, 또는 더욱 영구적으로 정보를 저장하기 위한 어떤 다른 대용량 저장 디바이스를 포함한다. 메모리(237)는, 아래에서 더욱 상세히 설명되는 이미지 애플리케이션(103)을 실행하도록 동작가능한 코드 및 루틴들을 포함한다. 메모리(237)는 신호 라인(224)을 통한 다른 컴포넌트들과의 통신을 위해 버스(220)에 커플링된다.
[0043] 통신 유닛(239)은, 이미지 애플리케이션(103)이 저장될 수 있는 곳에 따라, 사용자 디바이스(115), 이미지 서버(101), 및 제3자 서버(120) 중 적어도 하나에 데이터를 송신하고, 이로부터 데이터를 수신한다. 일부 구현들에서, 통신 유닛(239)은 네트워크(105) 또는 다른 통신 채널에 대한 직접적인 물리적 연결을 위한 포트를 포함한다. 예컨대, 통신 유닛(239)은, 이미지 애플리케이션(103)이 저장될 수 있는 곳에 따라, USB(universal serial bus), SD(secure digital), CAT-5(category 5 cable), 또는 사용자 디바이스(115) 또는 이미지 서버(101)와의 유선 통신을 위한 유사한 포트를 포함한다. 일부 구현들에서, 통신 유닛(239)은, IEEE 802.11, IEEE 802.16, Bluetooth® 또는 다른 적절한 무선 통신 방법을 포함하는 하나 또는 그 초과의 무선 통신 방법들을 사용하여 사용자 디바이스(115), 이미지 서버(101) 또는 다른 통신 채널들과 데이터를 교환하기 위한 무선 트랜시버를 포함한다. 통신 유닛(239)은 신호 라인(226)을 통한 다른 컴포넌트들과의 통신을 위해 버스(220)에 커플링된다.
[0044] 일부 구현들에서, 통신 유닛(239)은, SMS(short messaging service), MMS(multimedia messaging service), HTTP(hypertext transfer protocol), 직접 데이터 연결, 이-메일 또는 다른 적절한 타입의 전자 통신을 통해서를 포함하여 셀룰러 통신 네트워크를 통해 데이터를 전송 및 수신하기 위한 셀룰러 통신 트랜시버를 포함한다. 일부 구현들에서, 통신 유닛(239)은 유선 포트 및 무선 트랜시버를 포함한다. 통신 유닛(239)은 또한, UDP(user datagram protocol), TCP/IP, HTTP, HTTPS(HTTP secure), SMTP(simple mail transfer protocol), SPDY, QUIC(quick UDP internet connections) 등(그러나, 이에 제한되지 않음)을 포함하는 표준 네트워크 프로토콜들을 사용하는 파일들 및/또는 미디어 오브젝트들의 분산을 위해, 네트워크(105)에 대한 다른 종래의 연결들을 제공한다.
[0045] 디스플레이(241)는 이미지 애플리케이션(103)으로부터 수신된 그래픽 데이터를 디스플레이하도록 동작가능한 하드웨어를 포함할 수 있다. 예컨대, 디스플레이(241)는 사용자 인터페이스를 디스플레이하기 위해 그래픽들을 렌더링할 수 있다. 디스플레이(241)는 신호 라인(228)을 통해 다른 컴포넌트들과의 통신을 위해 버스(220)에 커플링된다. 사용자에게 정보를 제공하는 다른 하드웨어 컴포넌트들이 컴퓨팅 디바이스(200)의 일부로서 포함될 수 있다. 예컨대, 컴퓨팅 디바이스(200)는 오디오 인터페이스들을 위한 스피커, 진동 또는 힘 피드백 디바이스, 또는 다른 타입들의 비-디스플레이 출력 디바이스들을 포함할 수 있다. 일부 구현들에서, 이를테면 컴퓨팅 디바이스(200)가 이미지 서버(101)인 경우, 디스플레이(241)는 선택적일 수 있다. 일부 구현들에서, 컴퓨팅 디바이스(200)는 컴포넌트들 전부를 포함하지는 않을 수 있다. 컴퓨팅 디바이스(200)가 웨어러블 디바이스인 구현들에서, 컴퓨팅 디바이스(200)는 저장 디바이스(247)를 포함하지 않을 수 있다. 일부 구현들에서, 컴퓨팅 디바이스(200)는 여기서 열거되지 않은 다른 컴포넌트들, 예컨대 하나 또는 그 초과의 카메라들, 센서들, 배터리 등을 포함할 수 있다.
[0046] 마이크로폰(243)은 사용자로부터의 오디오를 레코딩하기 위한 하드웨어를 포함할 수 있다. 예컨대, 마이크로폰(243)은, 검색 질의에 매칭하는 이미지들을 제공하도록 이미지 애플리케이션(103)에 요구하기 위해 사용자에 의해 발화된 오디오를 레코딩한다. 마이크로폰(243)은 컴퓨팅 디바이스(200) 운영체제, 이미지 애플리케이션(103), 또는 오디오를 이미지 애플리케이션(103)에 의해 이해가능한 신호로 변환하기 위한 별개의 애플리케이션에 오디오를 송신할 수 있다. 마이크로폰(243)은 신호 라인(230)을 통해 버스(220)에 커플링된다.
[0047] 스피커(245)는 재생을 위한 오디오를 생성하기 위한 하드웨어를 포함할 수 있다. 예컨대, 스피커(245)는 검색 질의에 관한 명료화 질문들을 생성하라는 명령들을 이미지 애플리케이션(103)으로부터 수신한다. 스피커(245)는 명령들을 오디오로 변환하고, 사용자에 대한 오디오를 생성한다. 스피커(245)는 신호 라인(232)을 통해 버스(220)에 커플링된다.
[0048] 저장 디바이스(247)는 본원에서 설명된 기능성을 제공하는 데이터를 저장하는 비-일시적인 컴퓨터-판독가능 저장 매체일 수 있다. 컴퓨팅 디바이스(200)가 이미지 서버(101)인 구현들에서, 저장 디바이스(247)는 도 1의 데이터베이스(199)를 포함할 수 있다. 저장 디바이스(247)는 DRAM 디바이스, SRAM 디바이스, 플래시 메모리 또는 어떤 다른 메모리 디바이스일 수 있다. 일부 구현들에서, 저장 디바이스(247)는 또한, 비-휘발성 메모리, 또는 하드 디스크 드라이브, 플로피 디스크 드라이브, CD ROM 디바이스, DVD ROM 디바이스, DVD RAM 디바이스, DVD RW 디바이스, 플래시 메모리 디바이스를 포함하는 유사한 영구적인 저장 디바이스 및 매체, 또는 영구적으로 정보를 저장하기 위한 어떤 다른 대용량 저장 디바이스를 포함한다. 저장 디바이스(247)는 신호 라인(234)을 통한 다른 컴포넌트들과의 통신을 위해 버스(220)에 커플링된다.
[0049] 도 2에서 도시된 예시된 구현에서, 이미지 애플리케이션(103)은 이미지 프로세싱 모듈(202), 인덱싱 모듈(204), 검색 모듈(206), 이미지 어시스턴트(208), 및 사용자 인터페이스 모듈(210)을 포함한다. 다른 모듈들 및/또는 구성들이 가능하다.
[0050] 이미지 프로세싱 모듈(202)은 이미지들을 프로세싱하도록 동작가능할 수 있다. 일부 구현들에서, 이미지 프로세싱 모듈(202)은 이미지들을 프로세싱하기 위해 프로세서(235)에 의해 실행가능한 명령들의 세트일 수 있다. 일부 구현들에서, 이미지 프로세싱 모듈(202)은 컴퓨팅 디바이스(200)의 메모리(237)에 저장될 수 있으며, 프로세서(235)에 의해 액세스가능 및 실행가능할 수 있다.
[0051] 일부 구현들에서, 이미지 프로세싱 모듈(202)은 사용자와 연관된 이미지들을 수신한다. 이미지 프로세싱 모듈(202)은 이미지에 대한 하나 또는 그 초과의 라벨들을 결정할 수 있으며, 하나 또는 그 초과의 라벨들은 메타데이터, 1차 주석들, 또는 2차 주석들을 포함할 수 있다. 논의 각각에 대해, 상이한 타입들의 라벨들이 메타데이터, 1차 주석들, 및 2차 주석들로서 아래에서 논의되지만, 일단 라벨들의 타입들이 이미지 프로세싱 모듈(202)에 의해 인식되거나 또는 생성되면, 이미지 프로세싱 모듈(202)은 그들을, 이미지와 연관되는 라벨들로서 취급한다.
[0052] 이미지들은 메타데이터와 연관될 수 있다. 예시적인 메타데이터는 사용자 디바이스(115)에 의해 생성되는 데이터, 이를테면 EXIF(exchangeable image file format) 데이터, 및 사용자에 의해 제공되는 메타데이터(그러나, 이들에 제한되지 않음)를 포함할 수 있다. 사용자 디바이스에 의해 생성되는 메타데이터는 위치 좌표들, 고도, 방향, 이미지 사이즈, 이미지 타입(JPEG(joint photographic experts group), TIFF(tagged image file format), GIF(graphics interchange format), BMP(bitmap), PNG(portable network graphics) 등), 컬러 깊이, 이미지 해상도, 이미지의 창작자의 아이덴티티, 날짜 및 시간(예컨대, 이미지가 캡처되었던 시간을 반영하는 타임스탬프) 등을 포함할 수 있다. 사용자에 의해 제공되는 메타데이터는 엔티티들(사람들, 오브젝트들, 장소들 등)의 태깅(tagging)을 포함할 수 있다.
[0053] 일부 구현들에서, 이미지 프로세싱 모듈(202)은 이미지에 대한 1차 주석을 생성할 수 있다. 이미지 프로세싱 모듈(202)은, 이미지 내의 엔티티(예컨대, 사람들, 오브젝트들, 또는 장소들)를 식별하고, 엔티티에 대응하는 1차 주석을 이미지와 연관시키기 위한 이미지 인식을 수행할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은 컴퓨터 비전, 심층 신경망들, 또는 이미지 내의 오브젝트들 및 특성들을 식별하기 위해 이미지 인식 알고리즘들을 사용하는 다른 기법들을 사용할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은 동물들, 자동차들, 또는 제품들, 이를테면 와인 병 라벨, 시계, 자동차, 드레스, 신발 등을 포함하는 오브젝트들을 식별할 수 있다. 이미지 프로세싱 모듈(202)은 또한, 이를테면 오브젝트들에 관련된 텍스트, 이를테면 책 표지들 또는 표지판(sign)들 상의 텍스트를 식별하기 위해 OCR(optical character recognition) 또는 다른 텍스트 인식 알고리즘을 적용함으로써, 텍스트를 식별할 수 있다. 일부 구현들에서, 이미지 프로세싱 모듈(202)은 인식된 텍스트에 기반하여 라벨을 이미지에 추가할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은 책 표지로부터 책의 제목을 식별하고, 책 제목을 포함하는 라벨을 추가할 수 있다. 이미지 프로세싱 모듈(202)은, "해변에서", "빗속에", "안개", "햇살", "눈", "내부", "외부", "앞에" 등과 같이 이미지의 속성들을 표현하는 특성들을 식별할 수 있다.
[0054] 이미지 프로세싱 모듈(202)은, 이미지 내의 사람들을 식별하고, 사람들에 관한 정보(이름, 식별자, 특성들 등)를 이미지와 연관된 1차 주석들로서 추가하기 위해 이미지 인식 알고리즘을 이미지에 적용하기 위한 사용자 동의(예컨대, 사용자 승인)가 획득되었는지 여부를 검사한다. 사용자 동의 시, 이미지 프로세싱 모듈(202)은 이미지 내의 사람들을, 이러한 이미지를 다른 이미지들 ―이 사람들이 이러한 다른 이미지들 내에서 식별됨― 또는 공개적으로 이용가능한 정보와 비교함으로써, 식별할 수 있다. 이미지 프로세싱 모듈(202)은, 사용자 동의 시, 이미지 내의 사람들을 식별하기 위한 추가 정보를 제3자 서버(120)로부터 수신할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은 이미지 내의 사람을 존으로서 시험적으로 식별하며, 그리고 소셜 네트워크와 연관된 존의 사용자 프로파일, 사용자 디바이스(115)와 연관된 디바이스 프로파일(예컨대, MAC(media access control) 주소), 또는 제3자 서버(120)에 의해 유지되는 웹사이트(예컨대, 웹사이트가 그것의 사용자들의 비즈니스 프로파일들을 제공하는 경우)와 이미지를 비교함으로써, 존의 아이덴티티를 확인할 수 있다.
[0055] 이미지 프로세싱 모듈(202)은 이미지와 연관된 특성을 결정하기 위한 이미지 인식을 수행할 수 있다. 특성은 예컨대 햇살, 안개, 눈, 또는 비를 포함할 수 있다. 일부 구현들에서, 이미지 프로세싱 모듈(202)은, 메타데이터를 추론들에 기반하여 1차 주석으로 변환함으로써, 1차 주석을 생성할 수 있다. 예컨대, 메타데이터는 "12/25/2014"와 같은 캡처 날짜를 포함할 수 있다. 이미지 프로세싱 모듈(202)은 캡처 날짜를 "성탄절"로 변환할 수 있다. 이미지 프로세싱 모듈(202)은, 검색 문자열들 또는 자연 언어 질의들에서 사용될 1차 주석의 경향에 기반하여, 메타데이터를 1차 주석들로 변환할 수 있다. 예컨대, 메타데이터는, 캡처 날짜, 캡처 시간, 이미지가 캡처되었던 위도 및/또는 경도 좌표들, 이미지가 캡처되었던 고도 등을 포함하는 표준 1차 주석들로 자동적으로 변환될 수 있다. 메타데이터를 1차 주석으로 변환하는 프로세스는 이미지 캡처 소프트웨어, 이미지를 캡처하는 사용자 디바이스(115), 또는 사용자 디바이스(115) 상에 또는 이미지 서버(101) 상에 저장될 수 있는 프로세싱 모듈(202)에 의해 수행될 수 있다.
[0056] 일부 구현들에서, 이미지 프로세싱 모듈(202)은 메타데이터를, 이미지를 더욱 쉽게 검색가능하게 하는 1차 주석으로 변환함으로써 1차 주석을 생성한다. 예컨대, 이미지 프로세싱 모듈(202)은 메타데이터로부터, 이미지와 연관된 위도 및 경도 좌표들을 식별하며, 이 위도 및 경도 좌표들을 의미론적 위치, 이를테면 에펠탑으로 변환한다. 다른 예에서, 이미지 프로세싱 모듈(202)은, 고도가 35,000 피트인 곳에서의 메타데이터로부터, 이미지가 비행기에서 캡처되었다는 것을 결정할 수 있다. 이미지 프로세싱 모듈(202)은 1차 주석, 이를테면 "비행 동안 찍힘" 또는 "비행기에서 찍힘"을 이미지에 추가할 수 있다. 또 다른 예에서, 이미지 프로세싱 모듈(202)은 위도 및 경도 좌표들 그리고 다른 신호들로부터, 사용자가 집에 있었던 동안 이미지가 찍혔다는 것을 결정할 수 있다. 이미지 프로세싱 모듈(202)은 "집" 1차 주석을 이미지와 연관시킬 수 있다. 일부 구현들에서, 이는 장소 1차 주석으로 지칭될 수 있다.
[0057] 일부 구현들에서, 이미지 프로세싱 모듈(202)은, 이미지 내의 엔티티들의 식별 그리고 엔티티가 장소 1차 주석에 대응한다는 결정에 기반하여, 장소 1차 주석을 이미지와 연관시킨다. 장소 1차 주석은 사용자와 연관된 장소 위치의 식별, 사용자와 연관된 작업 위치, 사용자와 연관된 교육 기관, 또는 의미론적 관심대상 장소를 포함할 수 있다. 의미론적 관심대상 장소는 예컨대 타지 마할, 자유의 여신상, 엠파이어 스테이트 빌딩 등을 포함할 수 있다.
[0058] 이미지 프로세싱 모듈(202)은, 위도 및 경도 정보를 관심대상 장소들에 매칭하는, (예컨대, 개별 정보 또는 애그리게이트(aggregate) 정보로부터의) 의미론적 위치에 기반하여, 또는 데이터 신호들의 결합을 사용하여 이미지 내의 관심대상 위치 또는 장소를 추론함으로써, 장소 1차 주석을 결정할 수 있다. 데이터 신호들의 결합은 GPS(global positioning system) 데이터, WiFi 위치 데이터, 셀룰러 위치 데이터, 검색 히스토리, 이메일 데이터, 달력 데이터, 사용자 계정 프로파일 데이터, 사용자 디바이스(115) 데이터, 또는 다른 신호들 중 임의의 것을 결합하는 것을 포함할 수 있다. 일부 구현들에서, 이미지 프로세싱 모듈(202)은 하나 또는 그 초과의 제3자 서버들(120), 이를테면 이메일 애플리케이션들, 달력 애플리케이션들, 소셜 네트워크들 등을 호스팅하는 제3자 서버들(120)로부터 데이터 신호들을 수신한다.
[0059] 일부 구현들에서, 이미지 프로세싱 모듈(202)은 위치와 연관될 사용자 활동을 식별하며, 그리고 위치와 연관되는 이미지들과 사용자 활동 1차 주석을 연관시키도록 인덱스 모듈(204)에 명령할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은 특정 리조트들과 스키타기를 연관시키며, 특정 골프 코스들과 골프치기를 연관시킬 수 있다. 이미지 프로세싱 모듈(202)은 사용자 활동들에 기반하여 장소들과 활동들을 연관시키는 방법을 결정할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은 이미지들로부터, 이미지들의 시간들 및 날짜들에 기반하여 사용자가 3 개의 상이한 스키 리조트들로 이산적인 여행들 또는 야유회들을 갔다는 것을 식별할 수 있다. 이미지 프로세싱 모듈(202)은 활동으로서 스키타기에 기반하여 여행들 또는 야유회들로부터의 이미지들을 클러스터링할 수 있다. 일부 구현들에서, 이미지 프로세싱 모듈(202)은 3 개의 스키 리조트들 중 임의의 리조트와 연관되는 임의의 이미지에 "스키타기" 1차 주석을 추가할 수 있다. 일부 구현들에서, 이미지 프로세싱 모듈(202)은 이미지들을 이산적인 "스키 여행" 1차 주석들로서 클러스터링한다.
[0060] 이미지 프로세싱 모듈(202)은, 메타데이터 또는 1차 주석들에 대해 라벨 확장을 수행함으로써 2차 주석들을 생성할 수 있다. 일부 구현들에서, 이미지 프로세싱 모듈(202)은 계층적 확장, 의미론적 유사성 확장, 시각적 유사성 확장, 또는 의미론적 유사성 확장과 시각적 유사성 확장의 결합에 기반하여 2차 주석들을 생성한다.
[0061] 일부 구현들에서, 이미지 프로세싱 모듈(202)은 계층적 분류체계에 기반하여 계층적 확장을 수행한다. 예컨대, 이미지 프로세싱 모듈(202)은 메타데이터로부터의 이미지의 위치를 데이비스빌 빌리지로서 식별할 수 있다. 계층적 분류체계는 위치들이 데이비스빌 빌리지 → 토론토 → 온타리오 → 캐나다로서 조직화되게 할 수 있다. 이미지 프로세싱 모듈(202)은, 사진들을 필터링하기 위한 검색 문자열로서 이미지 어시스턴트(208)에 의해 사용될 수 있는 2차 주석들을 생성할 수 있다. 유사하게, 이미지 프로세싱 모듈(202)이 이미지 내의 엔티티를 타지 마할(즉, 관심대상 장소)로서 식별하면, 계층적 분류체계는 타지 마할 → 아그라 → 우타르 프라데시 → 인도로서 조직화될 수 있다. 또 다른 예에서, 이미지 프로세싱 모듈(202)은 이미지가 불독을 포함한다는 것을 식별할 수 있다. 계층적 분류체계는 엔티티가 불독 → 개 → 동물 → 포유동물로서 조직화되게 할 수 있다. 계층적 분류체계는 일반적으로 수용되는 표준, 또는 이미지 애플리케이션(103)에 의해 생성되는 특별 버전일 수 있다. 계층적 분류체계는 복잡하거나, 또는 조직화의 몇몇 레벨들이 생략될 수 있다.
[0062] 이미지 프로세싱 모듈(202)은 의미론적으로 유사한 용어들을 식별함으로써 의미론적 유사성 확장에 기반하여 2차 주석들을 생성할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은 1차 주석 "카페"를 사용하여 2차 주석 "커피 숍"을 생성할 수 있다. 이미지 프로세싱 모듈(202)은 동일한 엔티티에 대한 시각적으로 유사한 또는 관련된 용어들을 식별함으로써 시각적 유사성 확장에 기반하여 2차 주석들을 생성할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은 1차 주석 "강아지"를 사용하여 2차 주석 "개"를 생성할 수 있다. 이미지 프로세싱 모듈(202)은, 시각적 유사성 및 의미론적 유사성 둘 모두에 기반하여 용어들을 식별함으로써, 의미론적 유사성 확장과 시각적 유사성 확장의 결합에 기반하여 2차 주석들을 생성할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은 1차 주석 "존이 검은 포르쉐에 앉다"를 사용하여 2차 주석 "남자가 어두운 자동차에 앉다"를 생성할 수 있다.
[0063] 일부 구현들에서, 이미지 프로세싱 모듈(202)은 이미지 내의 엔티티의 경계와 라벨(즉, 메타데이터, 1차 주석, 또는 2차 주석)을 연관시킨다. 이미지 프로세싱 모듈(202)이 엔티티에 관한 정보와 경계를 연관시켜서, 엔티티의 경계 내에서의 선택을 수신하는 것에 대한 응답으로, 사용자 인터페이스 모듈(210)은 엔티티에 관한 정보를 사용자에게 제공할 수 있다. 선택은 탭, 경계 내에서의 더블 탭, 경계 내에서의 롱 프레스(long press), 경계 내에서의 프레스에 대한 미리 결정된 레벨의 압력, 엔티티 주위에 원을 그리는 것, 엔티티 위를 마우스로 맴도는 것(hovering) 등을 포함할 수 있다.
[0064] 일부 구현들에서, 검색 모듈(206)이, 엔티티가 선택되었다는 표시를 수신하는 것에 대한 응답으로, 검색 모듈(206)은 대응하는 라벨을 식별하며, 대응하는 라벨에 기반하여, 선택된 엔티티에 관한 정보를 리트리빙한다. 검색 모듈(206)은 검색 엔진, 제3자 서버(120), 이를테면 서버-호스팅되는 지식 그래프를 생성하는 제3자 서버(120) 등으로부터 정보를 리트리빙할 수 있다. 검색 모듈(206)은, 추가 정보를 사용자에게 제공하도록 사용자 인터페이스 모듈(210)에 명령할 수 있다.
[0065] 추가 정보는 많은 형태들을 취할 수 있다. 도 3a를 참조하면, 이미지 내의 엔티티들에 관한 추가 정보를 제공하도록 동작가능한 사용자 인터페이스의 그래픽 표현(300)이 예시된다. 예컨대, 이미지(305)는, 사용자의 친구(306)가 타지 마할(307) 앞에 서 있는 것이다. 사용자는, 예컨대 타지 마할(307)의 경계 내를 선택함으로써, 타지 마할을 선택할 수 있다. 사용자 인터페이스 모듈(210)은, 인도에서 타지 마할이 위치된 곳의 지도(311)와 함께, 여백(310)에서 타지 마할의 배경 및 역사적 요약을 제공할 수 있다. 일부 구현들에서, 엔티티가 추가로 세분화될 수 있어서, 검색 모듈(206)은 사용자가 타지 마할의 미나레트들 중 하나를 선택했다는 것을 결정할 수 있으며, 검색 모듈(206)은 이 미나레트에 관한 추가 정보, 이를테면 이 미나레트에 관한 고유한 이야기를 제공할 수 있다. 사용자는 자신의 친구의 얼굴을 선택할 수 있다. 사용자 인터페이스 모듈(210)은, 사용자 동의 시, 타지 마할 여행에 대응하는 자신의 친구의 소셜 미디어 피드 또는 소셜 미디어 피드의 부분, 여행의 이 부분이 시각화에서 강조된 상태로, 이 여행에 인도를 여행하는 동안 자신의 친구의 여행일정표의 스냅샷 등을 사용자에게 제공할 수 있다.
[0066] 도 3b는 이미지 내의 엔티티에 관한 정보를 제공하도록 동작가능한 사용자 인터페이스의 다른 예의 그래픽 표현(350)을 예시한다. 이 예에서, 이미지 프로세싱 모듈(202)에 의해 생성된 경계는 도 3a에서와 동일할 수 있다. 이미지 어시스턴트(208)는 경계 내의 엔티티를 식별하는 구두 질의를 검출할 수 있다. 질의는 도 3a에서 예시된 상호작용에 대한 팔로우 온(follow on)일 수 있다. 사용자가 엔티티에 관해 이미 물어보고 있었기 때문에, 이미지 어시스턴트(208)는, 사용자가 "그것은 무엇으로 만들어져 있니"라고 물어볼 때 "그것"이 타지 마할을 지칭한다는 것을 결정한다. 이미지 어시스턴트(208)는 추가 정보를 리트리빙하여, 타지 마할이 대리석으로 만들어져 있다는 것을 결정할 수 있다.
[0067] 다른 예에서, 이미지는, 어린이가 테슬라 모델 S 세단 앞에 서 있는 것이다. 이미지 프로세싱 모듈(202)은 어린이 및 테슬라 모델 S 세단 주위에 경계들을 생성할 수 있다. 사용자는 테슬라 모델 S에 관해 더 학습하기 위해 테슬라 모델 S의 경계 내를 선택할 수 있다. 사용자 인터페이스 엔진(212)은 여백에서 테슬라 모델 S에 관한 정보의 요약을 사용자에게 제공할 수 있다. 요약은 제조자의 제안 소매 가격, 레인지(range), 마력, 테슬라에 관한 정보, 인근의 딜러들, 마케팅 비디오들 등을 포함할 수 있다. 다른 예는 이미지 내의 어린이에 대한 추가 경계들을 생성하는 것을 포함할 수 있다. 예컨대, 이미지 프로세싱 모듈(202)이 어린이의 의류(articles of clothing) 주위에 경계를 생성하여서, 사용자가 어린이의 재킷의 경계 내를 선택하는 것에 대한 응답으로, 사용자 인터페이스 모듈(210)은 재킷의 3 차원 상호작용 이미지, 설명, 가격결정, 소매상 정보, 및 배송 정보를 갖는 제품 개요를 제공할 수 있다. 사용자 인터페이스는 또한, 사용자가 금융 정보를 이미지 애플리케이션(103)에 제공했다면, 제3자 서버(120)와 연관된 소매상을 통한 1 회-클릭 구매를 허용하는 "구입" 버튼(또는 다른 타입의 아이콘)을 포함할 수 있다. 또 다른 예는, 꽃의 이미지의 선택을 수신하고, 꽃의 타입에 관한 정보를 제공하는 것; 동물의 이미지의 선택을 수신하고, 동물에 관한 정보를 제공하는 것; 빌딩의 선택을 수신하고, 빌딩, 눈에 띄는 소식들, 지도 상의 빌딩의 위치 등에 관한 정보를 제공하는 것; 해변에서 찍힌 바다의 이미지의 선택을 수신하고, 바다와 해변이 라벨링된 지도를 제공하며, 그리고 해변과 연관된 호텔 등에 관한 정보를 제공하는 것; 그리고 음식의 이미지의 선택을 수신하고, 이미지가 찍혔던 레스토랑, 이 레스토랑의 리뷰들, 이 레스토랑으로부터의 메뉴 등에 관한 정보를 제공하는 것을 포함할 수 있다.
[0068] 일부 구현들에서, 라벨들은 이미지 자체와 연관될 수 있으며, 이미지의 임의의 부분을 선택하는 것은, 사용자 인터페이스 모듈(210)이 이미지 내의 모든 엔티티들에 관한 정보를 제공하는 것으로 귀착될 수 있다. 대안적으로, 사용자 인터페이스 모듈(210)은 정보의 서브세트, 이를테면 이미지의 가장 맥락적으로 관련된 양상들을 제공할 수 있다. 예컨대, 타지 마할, 혼다 자동차, 및 나무를 포함하는 이미지의 경우, 그러한 엔티티들 각각에 관한 정보에 사람들이 액세스하는 횟수 또는 당업자들에게 알려진 다른 메트릭을 비교하는 것에 기반하여, 이미지의 가장 맥락적으로 관련된 양상은 타지 마할일 수 있다. 일부 구현들에서, 맥락적인 관련성(relevancy)은 사용자에 대해 개인화될 수 있다. 예컨대, 제3자 서버(120)로부터 리트리빙된 사용자의 브라우저 히스토리에 기반하여, 사용자가 상이한 타입들의 자동차들을 검색하고 있다면, 이미지 프로세싱 모듈(202)은 다른 추가 정보보다 혼다에 관한 추가 정보를 우선시킬 수 있다.
[0069] 일부 구현들에서, 선택은 구두 커맨드, 이를테면 사용자가 "미나레트에 관한 정보를 나에게 보여줘", "그 자동차에 관해 나에게 더 말해줘", "리사가 어떤 종류의 재킷을 착용하고 있니", "이것이 어느 해변에서 찍혔니", "저것은 어느 바다이니", "그 교회에 관해 나에게 말해줘" 등을 말하는 것일 수 있다. 사용자 인터페이스 모듈(210)은, 추가 정보의 시각적 표현을 제공하는 대신에, 추가 정보의 구두 설명을 생성할 수 있다.
[0070] 이미지 프로세싱 모듈(202)의 위의 설명에서, 단계들은 기계 학습에 기반하여 수행될 수 있다. 예컨대, 이미지 프로세싱 모듈(202)은, 2차 주석들 및 라벨들이 수동으로 이미지와 연관되었거나, 또는 자동적으로 생성되었지만 정확성을 확인하기 위해 수동으로 검토되었던 가이드로서 트레이닝 데이터의 세트를 사용할 수 있다. 이미지 프로세싱 모듈(202)은 트레이닝 데이터를 사용하여, 2차 주석들 및 라벨들을 생성하기 위해 이미지 분류기들을 학습시킬 수 있다.
[0071] 인덱싱 모듈(204)은 인덱스를 생성하도록 동작가능할 수 있다. 일부 구현들에서, 인덱싱 모듈(204)은 인덱스를 생성하기 위해 프로세서(235)에 의해 실행가능한 명령들의 세트일 수 있다. 일부 구현들에서, 인덱싱 모듈(204)은 컴퓨팅 디바이스(200)의 메모리(237)에 저장될 수 있으며, 프로세서(235)에 의해 액세스가능 및 실행가능할 수 있다.
[0072] 일부 구현들에서, 인덱싱 모듈(204)은 하나 또는 그 초과의 라벨들과 연관되는 이미지들로부터 인덱스를 생성하며, 라벨들은 메타데이터, 하나 또는 그 초과의 1차 주석들, 및 하나 또는 그 초과의 2차 주석들을 포함한다. 인덱싱 모듈(204)은 유리하게, 검색 질의를 사용하여 이미지들을 검색하는 능력을 개선시키며, 그리고 검색 질의에 매칭하는 이미지들을 리트리빙하기 위해 필요한 컴퓨테이션 비용 및 시간을 감소시키는, 이미지들을 조직화하기 위한 구조화된 포맷을 생성한다.
[0073] 인덱싱 모듈(204)은 인덱스를 생성할 수 있으며, 이 인덱스는, 이미지들이 인덱스 내의 노드들을 표현하며, 에지들이 대응하는 이미지들과 연관된 하나 또는 그 초과의 라벨들에 기반하는 그래프이다. 예컨대, 기계 학습 알고리즘은, 알려진 라벨들을 갖는 이미지들과 인덱싱될 이미지들을 비교하고, 이미지들 사이의 유사성을 결정하며, 유사성에 기반하여 에지 가중치들을 정의함으로써, 그래프를 생성할 수 있다. 일부 구현들에서, 기계 학습 알고리즘은 그래프-기반 준-지도 학습을 위한 라벨 전파 알고리즘이다. 인덱싱 모듈(204)은, (1) 라벨링된 그리고 라벨링되지 않은 노드들을 포함하는 무방향(undirected) 그래프, 그리고 (2) 그래프 내의 라벨링된 노드들에 대한 시드(seed) 라벨들 및 가중치들을 입력으로서 취하며; 그리고 각각의 반복에서 그래프 내의 각각의 노드에 대한 라벨 분산을 컴퓨팅할 수 있다.
[0074] 인덱싱 모듈(204)은, 하나 또는 그 초과의 라벨들을 하나 또는 그 초과의 신뢰 점수들에 매핑할 수 있다. 신뢰 점수는, 라벨이 대응하는 이미지에 적용되는 정도를 표시할 수 있다. 예컨대, 작은 개의 이미지에 대해, 인덱싱 모듈(204)은, 이미지가 "작은 개" 라벨을 강하게 표현한다는 것을 표시하는 신뢰 점수, 그리고 이미지가 "커다란 개" 라벨을 약하게 표현한다는 것을 표시하는 신뢰 점수를 할당할 수 있다.
[0075] 일부 구현들에서, 인덱싱 모듈(204)은, 확인된 라벨들을 포함하는 이미지들과 특정 이미지를 비교하는 것에 기반하여, 하나 또는 그 초과의 라벨들 각각에 할당할 신뢰 점수를 결정한다. 예컨대, 인덱싱 모듈(204)은 "개" 라벨과 연관된 이미지와 보스톤 테리어의 제1 이미지를 비교하여, 이미지들이 시각적으로 유사한지 여부를 결정할 수 있다. 인덱싱 모듈(204)은 이미지 인식, 이미지들의 히스토그램들을 비교하는 것 등에 기반하여 시각적 유사성을 결정할 수 있다. 인덱싱 모듈(204)은 시각적 유사성 정도에 기반하여 신뢰 점수를 할당할 수 있다.
[0076] 도 4a를 참조하면, 모델 전파 전의 그래프(400)의 그래픽 표현이 예시된다. 이 예에서, 노드(405)는 "고양이" 라벨과 연관된 이미지이고, 노드(410)는 "쥐" 라벨과 연관된 이미지이며, 그리고 노드(415)는 털이 없는 고양이의 라벨링되지 않은 이미지이다. 인덱싱 모듈(204)은 노드들(405 및 410)에 의해 표현된 이미지들과 노드(415)에 의해 표현된 이미지를 비교하여 이미지들 사이의 시각적 유사성을 결정함으로써 모델 전파를 수행할 수 있다. 털이 없는 고양이가 고양이처럼 보이기 때문에, 인덱싱 모듈(204)은, 이미지가 고양이를 강하게 닮는다는 것을 표시하는 신뢰 점수를, 노드(415)에 의해 표현된 이미지에 할당할 수 있다. 털이 없는 고양이가 쥐와 약간 유사한 것으로 보이기 때문에, 인덱싱 모듈(204)은, 이미지가 쥐를 약간 표현한다는 것을 표시하는 신뢰 점수를, 노드(415)에 의해 표현된 이미지에 할당할 수 있다.
[0077] 도 4b를 참조하면, 모델 전파 후의 그래프(425)의 그래픽 표현이 예시된다. 도 4a의 노드(415)에 의해 표현된 라벨링되지 않은 이미지는 이제, 라벨링된 이미지들과 라벨링되지 않은 이미지의 비교에 기반하는 신뢰 점수들을 포함하는, 라벨링된 이미지와 연관된 노드(430)로서 예시된다. 라벨링된 이미지와 연관된 노드(430)는, 라벨들이 라벨링된 이미지에 적용된다는 것을 신뢰 점수들이 표시하는 정도를 표현한다. 구체적으로, 노드(430)는, 라벨링된 이미지가 고양이를 강하게 닮고 쥐를 약간 닮는다는 것을 표시하도록 예시된다.
[0078] 검색 모듈(206)은 검색 질의들을 수신하고, 이 검색 질의들에 기반하여 액션들을 수행할 수 있다. 일부 구현들에서, 검색 모듈(206)은, 검색 질의들을 수신하고 액션들을 수행하기 위해 프로세서(235)에 의해 실행가능한 명령들의 세트일 수 있다. 일부 구현들에서, 검색 모듈(206)은 컴퓨팅 디바이스(200)의 메모리(237)에 저장될 수 있으며, 프로세서(235)에 의해 액세스가능 및 실행가능할 수 있다.
[0079] 검색 모듈(206)은 사용자와 연관된 하나 또는 그 초과의 이미지들에 대한 사용자-생성 검색 용어들을 포함하는 검색 질의를 사용자로부터 수신할 수 있다. 예컨대, 검색 모듈(206)은 특정 사용자의 이미지, 특정 엔티티의 이미지, 특정 시간 기간부터의 이미지, 특정 위치로부터의 이미지 등에 대한 요청인 검색 질의를 수신한다. 검색 모듈(206)은, 검색 모듈(206)이 대응하는 장소 라벨들에 매칭할 수 있는 용어들을 포함하는 검색 질의들을 수신할 수 있다. 예컨대, 검색 모듈(206)은 집 장소 라벨(예컨대, "집의 픽처들을 나에게 보여줘"), 작업 장소 라벨, 교육 장소 라벨, 또는 의미론적 관심대상 장소란 장소 라벨에 대응하는 사용자-생성 검색 용어들을 식별할 수 있다.
[0080] 일부 구현들에서, 검색 모듈(206)은 사용자-생성 검색 용어들을 포함하는 검색 질의를 사용자로부터 수신하며, 매칭 이미지들과 이 사용자-생성 검색 용어들을 더욱 잘 매칭시키기 위해 이 사용자-생성 검색 용어들을 카테고리화한다. 예컨대, 검색 모듈(206)은, 다음의 상이한 검색 질의들: "슈퍼 볼의 픽처들을 나에게 보여줘", "축구 게임으로부터의 픽처들을 나에게 보여줘" 그리고 "게임으로부터의 픽처들을 나에게 보여줘"에 기반하여, 동일한 매칭 이미지들을 리트리빙할 수 있다.
[0081] 검색 모듈(206)은 사용자-생성 검색 용어들을 카테고리화된 검색 용어들로 번역할 수 있으며, 카테고리들은 날짜, 시간(시간 레인지를 포함함), 위치, 고도, 또는 방향을 포함한다. 날짜에 관하여, 검색 모듈(206)은 다음의 검색 용어들을 다음과 같이 카테고리화할 수 있다: "2014년 8월 1일부터의 픽처들"은 특정 날짜에 기반하여 카테고리화되고, "금요일부터의 픽처들"은 가장 최근의 요일에 기반하여 카테고리화되고, "어제부터의 픽처들"은 전날에 기반하여 카테고리화되고, "그저께부터의 픽처들"은 이틀 전부터의 날짜에 기반하여 카테고리화되고, "지난 주부터의 픽처들"은 전주부터의 날짜에 기반하여 카테고리화되고, "지난 달부터의 픽처들"은 전달부터의 날짜에 기반하여 카테고리화되고, "작년부터의 픽처들"은 전년도부터의 날짜에 기반하여 카테고리화되고, "성탄절부터의 픽처들"은 대응하는 날짜로 번역되는 휴일에 기반하여 카테고리화되며, 그리고 "슈퍼 볼로부터의 픽처들"은 대응하는 날짜 및 위치로 번역되는 이벤트에 기반하여 카테고리화된다. 시간에 관하여, 검색 모듈(206)은 검색 용어들을 다음과 같이 카테고리화할 수 있다: "오전 8시부터의 픽처들"은 특정 시간에 기반하여 카테고리화되며, "오늘 아침부터의 픽처들"은 대응하는 시간 레인지로 번역되는 시간 기간에 기반한다.
[0082] 위치(예컨대, 위도 및 경도 좌표들)에 관하여, 검색 모듈(206)은 다음의 질의들을 그들의 의미론적 위치를 포함하도록 카테고리화할 수 있다: "샌프란시스코로부터의 픽처들"은 이웃, 도시, 지방, 및 국가에 기반하여 카테고리화되고; "샌프란시스코과학관(Exploratorium)으로부터의 픽처들"은 특정 관심대상 비즈니스 또는 장소에 기반하여 카테고리화되고, "인근의 베이 브리지로부터의 픽처들"은 관심대상 장소 근처에 기반하여 카테고리화되고, "17번가로부터의 픽처들"은 특정 거리에 기반하여 카테고리화되고, "인근의 24번 처치 스트리트로부터의 픽처들"은 대응하는 교차로에 기반하여 카테고리화되고, "집으로부터의 픽처들"은 사용자의 추론된 집 위치에 기반하여 카테고리화되고, "작업으로부터의 픽처들"은 사용자의 추론된 작업 위치에 기반하여 카테고리화되고, "에펠탑 건너 편 카페로부터의 픽처들"은 관심대상 장소에 대한 근접성에 기반하여 관심대상 장소를 추론함으로써 카테고리화되며, 그리고 "49ers 게임으로부터의 픽처들"은 49ers 게임을 관심대상 장소로 카테고리화하는 것에 기반하여 카테고리화된다.
[0083] 고도에 관하여, 검색 모듈(206)은 검색 질의들을 다음과 같이 카테고리화할 수 있다: "금문교로부터 찍힌 픽처들"은 고도를 사용하여 확인된 관심대상 장소에 기반하여 카테고리화되며, 그리고 "비행기에서 찍힌 픽처들"은 고도를 사용하여 확인되는 비행기 사진에 기반하여 카테고리화된다. 방향에 관하여, 검색 모듈(206)은 검색 질의들을 다음과 같이 카테고리화할 수 있다: "태평양의 뷰를 갖는 픽처들"은 방향에 기반하여 확인된 뷰로부터 카테고리화되고, "에펠탑의 픽처들"은 방향에 기반하여 확인된 관심대상 장소로부터 카테고리화되며, 그리고 "타지 마할의 동부 미나레트의 픽처들"은 방향을 확인하는 것에 기반하여 카테고리화된다.
[0084] 일부 구현들에서, 검색 모듈(206)은, 사용자 질의들을 카테고리화하기 위한 추가 정보를 실시간으로 획득하기 위해, 도 1로부터의 제3자 서버(120)에 액세스한다. 검색 모듈(206)은, 지식 그래프 또는 검색 엔진을 유지하는 제3자 서버(120)에 질의할 수 있다. 검색 모듈(206)은 질의로부터, 날짜, 위치, 엔티티, 또는 다른 타입의 추가 정보가 필요하다는 것을 추론할 수 있다. 검색 모듈(206)은 추가 정보를 사용하여, 하나 또는 그 초과의 사용자-생성 검색 용어들을 카테고리화된 검색 용어들로 번역할 수 있다.
[0085] 예컨대, 사용자가 "성탄절부터의 픽처들을 나에게 보여줘"라고 요구하는 위의 예를 사용하여, 검색 모듈(206)은 "성탄절"에 대응하는 날짜에 관한 추가 정보를 필요로 할 수 있다. 검색 모듈(206)은, "성탄절"이 12월 25일이란 날짜에 대응한다는 것을 결정하기 위해 제3자 서버(120)에 질의하며, 2014년 12월 25일자로 캡처되었던 이미지들에 대한 인덱스를 질의할 수 있다. 검색 모듈(206)이 추가 정보를 위해 제3자 서버(120)에 질의할 수 있는 유사한 상황들은 사용자가 메이시의 날 퍼레이드, 현충일, 및 노동절의 긴 주말 연휴의 픽처들을 요구하는 것을 포함한다.
[0086] 상기와 다른 예에서, 검색 모듈(206)은, "49ers 게임으로부터의 픽처들을 나에게 보여줘"라고 요구하는 사용자가, "49ers"에 대응하는 이미지들을 검색하기 위해 추가 정보를 필요로 한다는 것을 결정할 수 있다. 검색 모듈(206)은, "49ers"가 축구 팀의 이름이라는 것을 결정하기 위해 제3자 서버(120)에 질의할 수 있다. 일부 실시예들에서, 검색 모듈(206)은 "49ers"에 대응하는 데이터의 타입, 즉, "49ers"가 엔티티이며 위치가 아니다라는 것 등을 결정하기 위해 반복적으로 제3자 서버(120)에 질의한다. 일부 구현들에서, 검색 모듈(206)은 베뉴(venue) 정보, 날짜들, 및 시간들을 포함하는 스케줄을 포함하는, "49ers"에 관한 추가 정보를 획득할 수 있다. 검색 모듈(206)은 49ers가 경기를 했던 위치의 위도 및 경도 좌표들, 게임 날짜, 및 게임 시간을 갖는 추가 정보를 상호-참조하며, 이 추가 정보를 사용하여, 인덱스로부터 대응하는 이미지들을 식별할 수 있다.
[0087] 상기와는 또 다른 예에서, 검색 모듈(206)은, "보스톤 마라톤으로부터의 픽처들을 나에게 보여줘"가, 이미지들에 대한 인덱스를 검색하기 위해 사용될 수 있는 보스톤 마라톤에 대응하는 위치 및 하나 또는 그 초과의 날짜들을 포함하도록, 질의를 번역하기 위한 추가 정보를 필요로 한다는 것을 결정할 수 있다. 다른 예에서, 검색 모듈(206)은 "동부 캐나다로부터의 픽처들을 나에게 보여줘"를 수신하며, 동부 캐나다의 주(province)들에 관한 정보를 획득하기 위해 제3자 서버(120)에게 질의할 수 있다. 검색 모듈(206)은 동부 캐나다의 주들에서 캡처되었던 이미지들에 대한 인덱스를 검색할 수 있다.
[0088] 검색 모듈(206)은 사용자-생성 검색 용어들을 카테고리화된 검색 용어들로 번역하기 위한 추가 정보를 획득하기 위해 다수의 제3자 서버들(120)에 액세스할 수 있다. 예컨대, 검색 모듈(206)은 검색 질의 "야무나 강의 제방들로부터의 픽처들을 나에게 보여줘"를 수신하며, "야무나"가 인도의 강이라는 것을 결정하기 위해 제1의 제3자 서버(120)에 질의할 수 있다. 다음으로, 검색 모듈(206)은, 그것의 제방들을 포함하는 야무나 강 영역 주위의 경계 영역의 위도들 및 경도들을 결정하기 위해, 제2의 제3자 서버(120), 이를테면 매핑 서비스들을 제공하는 제3자 서버(120)에 질의할 수 있다. 이후, 검색 모듈(206)은 경계 영역 내에서 캡처되었던 이미지들을 식별하기 위한 인덱스를 검색할 수 있다. 이 프로세스의 다른 예들은 이웃 또는 영역, 이를테면 샌프란시스코에서 이웃들인 피셔맨즈 워프 또는 노에 밸리에 대한 경계 영역을 식별하는 것을 포함할 수 있다.
[0089] 일부 구현들에서, 검색 모듈(206)은, 인덱스를 사용하여 검색 용어들의 문법 또는 표현들을 확장함으로써, 사용자-생성 검색 용어들을 추론 검색 용어들로 번역할 수 있다. 추론들은 이미지 내의 사람들의 수, 실외 이미지와 실내 이미지 사이의 차이, 경치(scenery) 인식, 그리고 주간 또는 야간 속성들에 적용될 수 있다.
[0090] 이미지 내의 사람들의 수에 기반하여 이루어지는 추론들의 경우, 검색 모듈(206)은 특정 수를 표시하는 사용자-생성 검색 용어들을 식별할 수 있다. 예컨대, 검색 모듈(206)은 검색 질의 "코스타리카의 해변에서의 가족의 사진들을 나에게 보여줘"를 수신하며, 사용자-생성 검색 용어 "가족"이 추론 검색 용어들 "3 명 또는 그 초과의 사람들"로 번역될 수 있다는 것을 결정할 수 있다. 다음으로, 검색 모듈(206)은 3 명 또는 그 초과의 사람들을 포함하는 이미지들을 검색할 수 있다. 다른 예에서, 검색 모듈(206)은 검색 질의 "타지 마할 앞에서의 나에 대한 픽처들을 나에게 보여줘"를 수신하며, "나(me)"를 추론 검색 용어들 "1 명의 개인"으로 번역할 수 있다. 또 다른 예에서, 검색 모듈(206)은 검색 질의 "지난 주부터의 팀 사진을 나에게 보여줘"를 수신하며, 사용자-생성 검색 용어들 "팀 사진"을 추론 검색 용어들 "3 명 초과"로 번역할 수 있다.
[0091] 실내와 실외의 차이에 기반하여 이루어지는 추론들의 경우, 검색 모듈(206)은 디폴트 추론 검색 용어가 "실외"라는 것을 결정할 수 있다. 예컨대, 검색 모듈(206)은 검색 질의 "성 베드로 대성당의 픽처들을 나에게 보여줘"를 수신하며, 사용자가 성 베드로 대성당의 실외 픽처들을 요청하고 있다는 것을 추론할 수 있다. 다른 예에서, 검색 모듈(206)은 검색 질의 "성 베드로 대성당 내부로부터의 픽처들을 나에게 보여줘"를 수신하며, 사용자가 "실내로부터의 픽처들"을 명시적으로 요청하는 것에 기반하여, 추론 검색 용어가 "실내"라는 것을 결정할 수 있다.
[0092] 경치 인식에 기반하여 이루어지는 추론들의 경우, 검색 모듈(206)은 경치 속성들에 대응하는 사용자-생성 검색 용어들을 식별할 수 있다. 예컨대, 검색 모듈(206)은 검색 질의 "해변에서의 일몰의 픽처들"을 수신하며, 사용자-생성 검색 용어들이 다음의 추론 검색 용어들: 바다, 해변, 호수, 및 일몰에 대응한다는 것을 결정할 수 있다. 이 예에서, 검색 모듈(206)은 "해변"이 다수의 타입들의 수역들(즉, 바다, 해변, 및 호수)에 대응한다는 것을 결정할 수 있다. 다른 예에서, 사용자-생성 검색 용어 "나무"는 추론 검색 용어들 "나무" 및 "숲"에 대응할 수 있다. 또 다른 예에서, 검색 모듈(206)은 사용자-생성 검색 용어들에 기반하여 상이한 날씨 상태들을 추론할 수 있다. 예컨대, 사용자-생성 검색 용어 "흐림"은 "안개" 및 "비"에 대응할 수 있다.
[0093] 주간 및 야간 속성들에 기반하여 이루어지는 추론들의 경우, 검색 모듈(206)은 주간 및 야간 속성들에 대응하는 사용자-생성 검색 용어들을 식별할 수 있다. 예컨대, 검색 모듈(206)은 검색 질의 "밤에 도쿄의 픽처들"을 수신하며, 사용자-생성 검색 용어 "밤"이 일몰 후에 캡처된 이미지들에 대응한다는 것을 결정할 수 있다. 일부 구현들에서, 검색 모듈(206)은 이미지들 내의 광 레벨, 일몰 후인 것에 대응하는 캡처 시간 등에 기반하여 매칭 이미지들을 식별할 수 있다.
[0094] 일부 구현들에서, 검색 모듈(206)은 사용자와 연관된 하나 또는 그 초과의 이미지들에 대한 사용자-생성 검색 용어들을 포함하는 검색 질의를 사용자로부터 수신한다. 검색 모듈(206)은, 사용자-생성 검색 용어들을 자동완성하는 사용자에 대해, 사용자-생성 검색 용어들 및 인덱스에 기반하여 하나 또는 그 초과의 제안 검색 용어들을 생성할 수 있다. 일부 구현들에서, 검색 모듈(206)은, 인덱스로부터 출력된 애그리게이팅된 라벨에 기반하여, 제안 검색 용어들을 생성할 수 있다. 구체적으로, 검색 모듈(206)은, 검색 질의에 대응하는 인덱스 내의 라벨들을 식별하고, 라벨들의 빈도를 결정하며, 라벨들을 랭킹함으로써, 제안 검색 용어들을 생성할 수 있다. 예컨대, 사용자가 부분 사용자 질의 "m의 픽처들"을 입력하면, 검색 모듈(206)은, 인덱스가 내림차순으로 "m"으로 시작하는 다음의 라벨들: mom(엄마), Martha(마르타), 및 monkey(원숭이)를 포함한다는 것을 결정할 수 있다. 그 결과, 검색 모듈(206)은 검색 질의를 자동완성하는 "엄마(mom)"를 제안하거나, 또는 자동완성 제안들의 랭킹된 목록을 제공할 수 있다. 제안 검색 용어들은, 사용자-생성 검색 용어들 및 인덱스에 기반하여 자동적으로 생성되는 키워드들 또는 자연 언어 표현들을 포함할 수 있다.
[0095] 일부 구현들에서, 검색 모듈(206)은 사용자 질의 내의 하나 또는 그 초과의 용어들의 문법을 확장하여, 관련된 검색 용어들을 식별하고, 이 관련된 검색 용어들에 매칭하는 이미지들을 발견한다. 검색 모듈(206)은 본래 사용자 질의와의 상관에 기반하여 검색 결과들을 랭킹할 수 있다. 예컨대, 사용자 질의가 "강아지들의 사진들"에 대한 것일 경우, 검색 모듈(206)은 라벨의 일부로서 "강아지들의 사진들"을 갖는 매칭 이미지들을 식별할 수 있다. 검색 모듈(206)은 문법을 확장하고, 임의의 타입의 개에 대한 라벨들을 갖는 이미지들을 식별하며, 커다란 개들보다 우선순위를 갖는 작은 개들을 갖는 검색 결과들을 랭킹할 수 있다. 그 결과, 사용자가 모든 개들에 대한 일반적인 용어로서 "강아지들"을 사용하는 경우, 검색 모듈(206)은 사용자의 원하는 의도에 매칭하는 이미지들을 캡처할 수 있다.
[0096] 일부 구현들에서, 검색 모듈(206)은 검색 용어들에 매칭하는 이미지들을 포함하는 검색 결과들을 식별한다. 검색 모듈(206)은 대응하는 이미지들과 연관된 신뢰 점수들에 기반하여 검색 결과들을 랭킹할 수 있다. 예컨대, 검색 질의가 "타지 마할의 이미지들"에 대한 것일 경우, 검색 모듈(206)은 라벨의 일부로서 "타지 마할"을 갖는 매칭 이미지들을 식별할 수 있다. 검색 모듈(206)은 매칭 이미지들 각각과 연관된 "타지 마할"에 대한 신뢰 점수를 식별하며, 대응하는 신뢰 점수들에 기반하여, 검색 결과들을 랭킹할 수 있다. 일부 구현들에서, 검색 모듈(206)은 미리 결정된 임계치를 충족시키는 신뢰 점수들을 갖는 검색 결과들을 선택할 수 있다. 이미지가 다수의 신뢰 점수들과 연관되는 경우, 검색 모듈(206)은 다수의 신뢰 점수들의 가중된 합이 미리 결정된 임계치를 충족시키는지 여부를 결정할 수 있다. 검색 모듈(206)은, 미리 결정된 임계치를 충족시키는 신뢰 점수들과 연관되는 검색 결과들에 기반하여, 검색 결과들의 랭킹된 목록의 적어도 부분을 사용자에게 제공할 수 있다.
[0097] 일부 구현들에서, 검색 모듈(206)은 검색 질의들 내의 표시자들에 기반하여 이미지들의 필터링을 수행할 수 있다. 필터링은 검색 결과들의 후속 좁히기(narrowing)를 수행하는 것을 포함할 수 있다. 예컨대, 검색 모듈(206)은 사용자와 연관된 이미지들에 대한 제1 검색 질의를 수신할 수 있다. 이 예에서, 제1 검색 질의는 "샌프란시스코에서의 픽처들을 나에게 보여줘"일 수 있다. 검색 모듈(206)은 제2 검색 질의를 수신할 수 있다. 검색 모듈(206)은 제2 검색 질의가 제1 검색 결과들에 적용되어야 한다는 것을 결정할 수 있다. 예컨대, 제2 검색 질의는 "딱 지난 달부터의 것들을 나에게 보여줘"일 수 있다. 검색 모듈(206)은, 제1 검색 결과들로부터 필터링되며 제2 검색 질의에 매칭하는 제2 검색 결과들을 사용자에게 제공할 수 있다. 이 예에서, 제2 검색 결과들은 지난 달에 찍힌 샌프란시스코에서의 픽처들을 포함할 수 있다. 검색 모듈(206)은 제3 검색 질의가 제2 검색 결과들에 기반해야 한다는 표시를 갖는 제3 검색 질의를 수신할 수 있다. 예컨대, 제3 검색 질의는 "딱 금문교 근처의 것들을 나에게 보여줘"일 수 있다.
[0098] 일부 구현들에서, 검색 모듈(206)은 다수의 속성들을 갖는 복합적인 질의들에 기반하여 이미지들의 검색들을 수행할 수 있다. 예컨대, 검색 모듈(206)은 사용자로부터 다음의 검색 질의: "지난 달에 찍힌 샌프란시스코에서의 픽처들을 나에게 보여줘"를 수신할 수 있다. 검색 모듈(206)은, 사용자-생성 검색 용어 "샌프란시스코"를 샌프란시스코에 대한 위도 및 경도 좌표들에 대응하는 카테고리화된 검색 용어들로 번역하고, 사용자-생성 검색 용어들 "지난 달"을 "지난 달"에 대한 시간 레인지에 대응하는 카테고리화된 검색 용어들로 번역하며, 그리고 카테고리화된 검색 용어들에 매칭하는 이미지들을 검색할 수 있다. 다른 예에서, 검색 모듈(206)은 사용자로부터 다음의 검색 질의: "에펠탑의 위에서 본 주간 픽처들을 나에게 보여줘"를 수신할 수 있다. 검색 모듈(206)은, 사용자-생성 검색 용어 "주간"을 "주간"에 대한 시간 레인지에 대응하는 카테고리화된 검색 용어들로 번역하고, 사용자-생성 검색 용어 "위"를 에펠탑의 "위"에 대응하는 고도에서의 이미지들로 번역하고, 사용자-생성 검색 용어들 "에펠탑"을 관심대상 장소에 대한 카테고리화된 검색 용어들로 번역하며, 그리고 "에펠탑"에 대응하는 위치의 "위"에 대응하는 고도에서의 "주간" 이미지들에 대한 시간 레인지에 대응하는 이미지들을 검색할 수 있다.
[0099] 일부 구현들에서, 검색 모듈(206)은, 사용자로부터의 검색 질의로부터 정보를 추론하는 것 그리고 이미지 인식 결과들에 기반하여, 자동 라벨링을 수행할 수 있다. 예컨대, 사용자는 다음의 검색 질의: "코스타리카의 해변에서의 사만다와 나의 사진들을 나에게 보여줘"를 제공할 수 있다. 검색 모듈(206)은 2 명의 사람들을 포함하는, 해변 근처에서 코스타리카에서 찍혔던 이미지들을 식별할 수 있으며, 이 2 명의 사람들 중 1 명은 사용자이다. 이미지 프로세싱 모듈(202)은, 이미지 인식 검색, 이미지를 사용자의 이전에 태깅된 이미지들과 비교하는 것, 이미지를 사용자의 공개 프로파일과 비교하는 것 등에 기반하여, 이미지들 내의 사용자의 아이덴티티를 결정했을 수 있다. 이전 기준들에 매칭하는 유일한 이미지들이 1 명의 다른 사람을 포함하면, 검색 모듈(206)은, 제2 사용자가 "사만다"라는 것을 추론하며, 사만다에 대한 자동 라벨과 대응하는 이미지들을 연관시키도록 인덱스 모듈(204)에 명령할 수 있다. 추가 확인 단계로서 그리고/또는 이미지들 내에 다수의 제2 사람들을 갖는 이미지들이 있으면, 검색 모듈(206)은, 사만다를 포함하는 이미지들을 식별하기 위해, 알려진 사람들의 이미지들과 제2 사용자의 이미지를 비교할 수 있다. 예컨대, 검색 모듈(206)은 소셜 네트워크 애플리케이션으로부터 프로파일 이미지들을 요청하며, 그리고 수행될 비교들의 수를 감소시키기 위해, 프로파일 이미지들과 제2 사용자의 이미지를 비교할 수 있다. 이후, 검색 모듈(206)은 사만다에 대한 자동 라벨과 대응하는 이미지들을 연관시키도록 인덱스 모듈(204)에 명령할 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는 대응하는 이미지들을 사용자에게 디스플레이하며, 이미지들을 자동적으로 라벨링하기 전에 제2 사람이 사만다라는 것을 확인하도록 사용자에게 요구할 수 있다.
[0100] 이미지 어시스턴트(208)는 사용자에 대한 이미지들을 조직화하도록 동작가능할 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는 사용자에 대한 이미지들을 조직화하기 위해 프로세서(235)에 의해 실행가능한 명령들의 세트일 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는 컴퓨팅 디바이스(200)의 메모리(237)에 저장될 수 있으며, 프로세서(235)에 의해 액세스가능 및 실행가능할 수 있다.
[0101] 이미지 어시스턴트(208)는 사용자가 이미지들을 자동적으로 조직화하고, 이미지들을 검색하고, 이미지들을 추천하고, 이미지들 내의 엔티티들에 관한 추가 정보를 제공하고, 이미지들에 특수 효과들을 추가하고, 이미지들을 공유하며, 그리고 이미지들을 백업하는 것을 도울 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는 음성 상호작용과 사용자 인터페이스 모듈(210)의 명령의 결합을 사용하여, 사용자 인터페이스를 생성할 수 있다. 이미지 어시스턴트(208)는, 각각의 상호작용 단계에서 사용자 인터페이스로부터 선정하거나 또는 계속해서 음성 커맨드들을 사용하기 위한 옵션들을 사용자에게 제공할 수 있다. 이미지 어시스턴트(208)는, 사용자가 이미지 어시스턴트(208)와 상호작용하기 위해 사용하고 있는 사용자 디바이스(115)의 타입에 관계없이, 이 옵션을 제공할 수 있다.
[0102] 이미지 어시스턴트(208)는, 이미지들을 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해 사용자와 상호작용하며, 사용자로부터 식별 정보를 수신하는 것에 대한 응답으로, 식별 정보를 대응하는 이미지들에 추가함으로써 인덱스를 업데이트하도록 인덱싱 모듈(204)에 명령할 수 있다. 예컨대, 이미지 어시스턴트(208)는 다음: "저는 당신의 사진들을 조직화하기 위해 몇몇 것들을 확인할 필요가 있습니다. 단지 몇 분의 시간이 걸릴 것입니다. 이것이 당신입니까?"를 구두로 또는 텍스트를 제공함으로써 요구할 수 있다. 이미지 어시스턴트(208)는, 이미지 어시스턴트(208)가 잠재적으로 사용자를 포함하는 것으로서 식별했던 하나 또는 그 초과의 이미지들을 디스플레이하도록 사용자 인터페이스 모듈(210)에 명령할 수 있다.
[0103] 도 5를 참조하면, 명료화 질문들을 사용자에게 제공하도록 동작가능한 사용자 인터페이스의 그래픽 표현(500)이 예시된다. 이 예에서, 이미지 어시스턴트(208)는 사용자와 연관된 이미지들을 조직화하며, 조직화될 502 개의 이미지들을 식별한다. 사용자 인터페이스 모듈(210)은 이미지들(510, 515) 및 사용자 인터페이스의 패널(505)에 명료화 질문을 제공하며, 이미지 어시스턴트(208)는 사용자가 적절하게 식별되었다는 확인을 요청한다. 이 예에서, 사용자는 "예" 버튼(520) 및 "아니오" 버튼(525)을 사용하여 사용자의 식별을 확인하거나 또는 거부할 수 있다. 사용자가, 이미지 내의 사용자를 적절하게 식별하는 것으로서 이미지들 중 어느 하나를 식별하면, 이미지 어시스턴트(208)는 사용자를 식별하는 이미지에 라벨을 추가하도록 인덱스 모듈(204)에 명령할 수 있다. 라벨은, 사용자가 예컨대 "나의 이미지들을 나에게 보여줘"라고 요구할 때 검색 모듈(206)이 이미지들을 식별할 수 있도록, 사용자의 이름, "나", 그리고 "내가(I)" 중 적어도 하나를 포함할 수 있다. 사용자가, 이미지들 둘 모두가 사용자를 부적절하게 식별한다는 것을 표시하면, 이미지 어시스턴트(208)는 사용자를 포함할 수 있는 추가 이미지들을 식별하도록 사용자 인터페이스 모듈(210)에 명령할 수 있다.
[0104] 이미지 어시스턴트(208)는, 사용자와 연관된 이미지들 내에서 빈번히 나타나는 사람들의 이미지들을 제공하도록 사용자 인터페이스 모듈(210)에 명령함으로써, 이미지들을 조직화할 수 있다. 예컨대, 이미지 어시스턴트(208)는, 이미지들의 임계 수(threshold number)로 나타나는 사람들을 식별할 수 있다(예컨대, 5%, 10% 등). 이미지 어시스턴트(208)는, 식별될 사람의 이미지들을 디스플레이하도록 사용자 인터페이스 모듈(210)에 명령하며, "이들 사진들 내에서 나타나는 이 사람이 누구인지를 저에게 말해줄 수 있어요?"라고 사용자에게 물어볼 수 있다. 이미지 어시스턴트(208)는 이미지들 내의 사람에 대한 상이한 타입들의 용어들, 이를테면 "엄마" 또는 사용자의 엄마의 전체 이름을 수신할 수 있다. 이미지 어시스턴트(208)는 추가 명료화 질문들을 요구할 수 있다. 예컨대, 이미지 어시스턴트(208)는 "제가 사진을 적절하게 태깅할 수 있도록 당신의 엄마의 전체 이름을 저에게 말해줄 수 있어요? 이것은 또한 그녀와의 사진들의 공유를 미래에 더 쉽게 해줄 거예요"로 응답할 수 있다. 사용자는 예컨대, "사만다 브라운"으로 응답할 수 있다. 이미지 어시스턴트(208)는, "잘했어요! 저는 또한 당신이 미래에 '엄마와 공유'와 같은 것들을 말할 수 있도록 그녀의 사진들을 '엄마'로서 태깅할 꺼예요"라고 진술함으로써, 미래에 이미지들을 검색하는 방법에 대한 큐(cue)들을 사용자에게 제공할 수 있다.
[0105] 일부 구현들에서, 이미지 어시스턴트(208)는, 사용자로부터의 정보를 확인하기 위해, 또는 사용자에게 제시하기 위한 질문들의 수를 감소시키기 위한 추론들을 하는 것을 돕기 위해, 제3자 정보에 액세스한다. 예컨대, 사용자가 이미지 내의 사람을 "로버트"로서 식별하면, 이미지 어시스턴트(208)는, "로버트"가 "로버트 스타인"을 지칭한다는 것을 결정하기 위해, 소셜 미디어 프로파일들, 이메일 프로파일들 등에 액세스할 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는 이미지 내의 사람과 식별 사이의 매치를 표시하는 신뢰 점수를 생성할 수 있다. 신뢰 점수가 임계 값을 충족시키면, 이미지 어시스턴트(208)는 사람의 아이덴티티를 갖는 이미지에 라벨을 추가하도록 인덱싱 모듈(204)에 명령할 수 있다. 신뢰 점수가 임계 값을 충족시키는 데 실패하면(예컨대, 신뢰 점수가 임계 값 아래로 떨어지면), 이미지 어시스턴트(208)는 이미지가 "로버트 스타인"을 포함한다는 확인을 위해 사용자에게 물어볼 수 있다.
[0106] 일부 구현들에서, 이미지 어시스턴트(208)는, 하나 또는 그 초과의 라벨들에 대응하는 하나 또는 그 초과의 사용자-생성 검색 용어들을 갖는 사용자 질의를 수신한다. 예컨대, 이미지 어시스턴트(208)는 "나의 픽처들을 나에게 보여줘"라고 이미지 어시스턴트(208)에 요구할 수 있다. 이미지 어시스턴트(208)는 사용자를 포함하는 하나 또는 그 초과의 대응하는 이미지들을 사용자에게 제공할 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는 사용자-생성 검색 용어들로부터의 하나 또는 그 초과의 애매성들을 결정하며, 사용자-생성 검색 용어들로부터의 하나 또는 그 초과의 애매성들을 명료화하기 위한 질문을 사용자에게 제공한다. 예컨대, 사용자는 다음의 검색 질의: "스키 여행의 픽처들을 나에게 보여줘"를 제공할 수 있다. 이 예에서, 이미지 프로세싱 모듈(202)은 "스키타기" 라벨들을 3 개의 상이한 스키 여행에 추가했을 수 있다. 그 결과, 이미지 어시스턴트(208)는 스키타기와 연관되는, 이미지들을 디스플레이하기 위한 이미지들의 3 개의 상이한 클러스터들이 있다는 것을 결정할 수 있다. 이미지 어시스턴트(208)는, 스키 여행들 중 사용자가 보고 싶어하는 스키 여행을 특정하도록 사용자에게 요구할 수 있다. 예컨대, 이미지 어시스턴트(208)는, 텍스트 형태로 질문을 디스플레이하는 사용자 인터페이스를 생성하도록 사용자 인터페이스 모듈(210)에 명령할 수 있다. 이미지 어시스턴트(208)는 또한, 스키 여행들 각각으로부터의 이미지를 포함하도록 사용자 인터페이스 모듈(210)에 명령할 수 있으며, 스키 여행들의 식별은 질문과 함께, 예컨대 그들의 날짜들 또는 리조트들의 이름(예컨대, 리조트 A, 리조트 B, 리조트 C)에 기반한다. 질문은 다른 포맷들, 이를테면 오디오 프롬프트로 제공될 수 있다. 사용자가 질문에 대한 답변을 제공하면, 이미지 어시스턴트(208)는 사용자 질의 내의 애매한 검색 용어들을 업데이트할 수 있다. 위의 예를 계속하면, 이미지 어시스턴트(208)는, 리조트 A로의 스키 여행과 연관된 이미지들을 획득하기 위해, 사용자 질의 내에서 "스키 여행"을 "스키타기" 및 "리조트 A"로 대체할 수 있다.
[0107] 다른 예에서, 이미지 어시스턴트(208)는 이미지들의 다수의 유사한 카테고리들로부터 명확하게 하기 위한 제안들 또는 옵션들을 제공할 수 있다. 예컨대, 사용자는 "축구 게임에서의 픽처들을 나에게 보여줘"라고 요구할 수 있다. 이미지 어시스턴트(208)는, 축구 스타디움들의 위치들을 포함하는 이미지들을 식별하고, 상이한 날짜들 및 위치들과 연관된 상이한 게임들의 이미지들을 클러스터링하며, 그리고 그 날짜들에 그 시간들에 이루어졌던 특정 축구 게임들에 대해 제3자 서버(120)에 질의할 수 있다. 이미지 어시스턴트(208)는, "뉴잉글랜드 패트리어츠 대 댈러스 카우보이스 게임 또는 시카고 베어스 대 뉴욕 자이언츠 게임에서 당신이 찍었던 픽처들을 보고 싶으세요?"라고 응답할 수 있다.
[0108] 또 다른 예에서, 이미지 어시스턴트(208)는 동일한 위치 카테고리와 연관되어 있는 다수의 관심대상 장소들로부터 명확하게 하기 위한 제안들 또는 옵션들을 제공할 수 있다. 예컨대, 사용자는 "박물관에서의 사진들을 나에게 보여줘"라고 요구할 수 있다. 이미지 어시스턴트(208)는 사용자와 연관된 이미지들로부터, 이미지들이 박물관들로서 지정되는 3 개의 상이한 관심대상 장소들을 포함한다는 것을 식별할 수 있다. 이미지 어시스턴트(208)는 "영국 박물관, 과학 박물관, 또는 자연사 박물관에서 당신이 찍었던 픽처들을 보고 싶으세요?"라고 응답할 수 있다. 이미지 어시스턴트(208)에 대한 사용자의 응답은 3 개의 박물관들 중 하나의 선택 이외의 옵션들을 포함할 수 있다. 예컨대, 사용자는 "그것은 블룸즈버리 극장 근처의 박물관이야"라고 응답할 수 있다. 이미지 어시스턴트(208)는 검색 엔진, 매핑 애플리케이션 등을 호스팅하는 제3자 서버(120)에 질의하여, 블룸즈버리 극장과 3 개의 박물관들 사이의 거리를 결정하고, 영국 박물관이 가장 가깝다는 것을 식별할 수 있다. 따라서, 이미지 어시스턴트(208)는 이미지 클러스터들 사이를 명확하게 하기 위한 속성들을 컴퓨팅하기 위해 다수의 데이터 소스들로부터의 정보의 다수의 조각들을 결합할 수 있다.
[0109] 일부 구현들에서, 이미지 어시스턴트(208)는 사용자에 대한 검색을 완료하기 위해 정보가 부족한 것에 대한 응답으로 팔로우-업 질문을 물어볼 수 있다. 예컨대, 사용자는 "사만다의 생일 파티에서의 픽처들을 나에게 보여줘"라고 진술할 수 있다. 이미지 어시스턴트(208)는 사만다의 생일에 대응하는 날짜에 액세스하지 못할 수 있다. 이미지 어시스턴트(208)는 정보에 대해 제3자 서버들(120)에 질의할 수 있다. 이미지 어시스턴트(208)가 날짜를 찾아낼 수 없으면, 이미지 어시스턴트(208)는 "사만다의 생일이 언제였는지 아세요?"라고 사용자에게 물어볼 수 있다. 일단 이미지 어시스턴트(208)가 답변을 수신하면, 이미지 어시스턴트(208)는 매칭 이미지들에 대해 "사만다의 생일 파티"를 포함하는 라벨들을 생성할 수 있다. 이미지 어시스턴트(208)가 사만다의 생일 날짜를 획득하기 위해 제3자 서버들(120)에 자동적으로 액세스하지 않는 일부 구현들에서, 사용자는 제3자 서버들(120)을 검사하도록 이미지 어시스턴트(208)에 명령할 수 있다. 예컨대, 사용자는 정보를 포함할 수 있는 데이터 소스를 특정할 수 있다(예컨대, "내 달력을 검사해").
[0110] 다른 예에서, 사용자는 "아빠의 집에서의 픽처들을 나에게 보여줘"라고 요구할 수 있다. 이미지 어시스턴트(208)는 사용자의 아버지를 포함하는 이미지들에 대한 라벨로서 "아빠"를 이미 추가했을 수 있지만, 이미지 어시스턴트(208)는 아빠의 집 위치에 액세스하지 못할 수 있다. 이미지 어시스턴트(208)는 "당신 아빠의 주소를 나에게 말해줄 수 있어요(이것은 비공개로 남을 꺼예요)?"라고 사용자에게 물어볼 수 있다. 사용자로부터 주소를 수신하는 것에 대한 응답으로, 이미지 어시스턴트(208)는 거리 주소를 위도 및 경도 좌표들로 컴퓨팅하여, 그 위치에서 찍힌 이미지들을 식별할 수 있다. 이미지 어시스턴트(208)는 또한, 매칭 이미지들에 라벨로서 "아빠의 집"을 추가할 수 있다.
[0111] 일부 구현들에서, 이미지 어시스턴트(208)는 이미지 애플리케이션(103)에 의해 이루어진 추론들이 정확했다는 것을 확인할 수 있다. 예컨대, 이미지 어시스턴트(208)는 장소 라벨을 사용하는 검색 질의를 사용자로부터 수신할 수 있다(예컨대, "작업에서의 픽처들을 나에게 보여줘"). 이미지 어시스턴트(208)는, 작업 장소 라벨을 포함하는 이미지들을 식별하고, 대응하는 이미지들을 사용자에게 제공하며, 그리고 이미지들이 적절하게 라벨링되었다는 것을 확인하도록 사용자에게 요구할 수 있다.
[0112] 위에서 논의된 바와 같이, 이미지 어시스턴트(208)는, 이미지 내의 엔티티에 관해 사용자가 질문하는 것에 대한 응답으로, 추가 정보를 사용자에게 제공할 수 있다. 이미지 어시스턴트(208)는 구두 사용자 질의들을 수신하며, 사용자가 어떤 엔티티에 관해 질문하고 있는지를 결정할 수 있다. 예컨대, 다시 도 3a를 참조하면, 사용자는 "그 빌딩은 무엇이니?"라고 물어볼 수 있다. 이미지 어시스턴트(208)는 이미지로부터, 엔티티들 중 "빌딩" 라벨을 포함하는 엔티티를 식별할 수 있다. 이후, 이미지 어시스턴트(208)는 사용자 질의를 업데이트하여 "타지 마할은 무엇이니"라고 진술하며, 검색 모듈(206)과 통신하여 타지 마할에 관한 추가 정보를 획득하여 사용자에게 제공할 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는 검색 용어들의 문법을 확장하며, 확장 검색 용어들에 관한 추가 정보를 획득할 수 있다. 예컨대, 이미지 어시스턴트(208)는 "그 빌딩은 무엇이니?"를, "그 묘(mausoleum)는 무엇이니"를 포함하도록 확장하며, 검색 모듈(206)과 통신하여 묘들에 관한 추가 정보를 획득할 수 있다.
[0113] 일부 구현들에서, 이미지 어시스턴트(208)는 사용자의 음성에 기반하여 사용자를 식별하며, 사용자에 대한 인덱스를 매칭한다. 이미지 애플리케이션(103)이 가족의 다수의 멤버들에 의해 액세스되는 음성-기반 텔레비전 시스템, 셋-톱 박스, 태블릿, 또는 데스크톱 컴퓨터 상에 저장되는 경우, 이미지 어시스턴트(208)는 사용자로부터 검색 질의를 수신하며, 음성 서명에 기반하여 사용자를 식별할 수 있다. 예컨대, 이미지 어시스턴트(208)는 "타지 마할 앞에서의 나의 픽처들을 나에게 보여줘"를 수신할 수 있다. 전체 가족이 인도로 동일한 여행을 갔더라도, 이미지 어시스턴트(208)는 사용자에 따라 상이한 검색 결과들을 제공할 수 있다.
[0114] 일부 구현들에서, 이미지 어시스턴트(208)는, 도 1의 제3자 서버(120)에 의해 호스팅되는 제3자 애플리케이션과 연관된 사람에게 이미지들을 전송하라는 명령들을 사용자로부터 수신한다. 명령들은 구두 또는 원문일 수 있다. 이미지 어시스턴트(208)는 사람과 연관된 접촉 프로파일을 결정할 수 있다. 예컨대, 사용자는 "존과 하와이 휴가 앨범을 공유해"라고 진술할 수 있다. 이미지 어시스턴트(208)는, 존의 이미지를 제공하고, "존 디(D)를 의미하세요?"라고 사용자에게 물어봄으로써, 세부사항들을 확인할 수 있다. 사용자가 "응"이라고 응답하면, 이미지 어시스턴트(208)는 "제가 앨범을 어떻게 공유하기를 원하세요?"라고 물어볼 수 있다. 사용자는 이미지들을 전송하기 위한 애플리케이션의 타입을 특정할 수 있으며, 이미지 어시스턴트(208)는 접촉 프로파일에 기반하여 하나 또는 그 초과의 이미지들을 그 사람에게 제공할 수 있다. 예컨대, 사용자가 "앨범에 대한 링크를 그에게 이메일로 보내"라고 응답하면, 이미지 어시스턴트(208)는, 예컨대 사용자의 이메일 애플리케이션을 유지하는 제3자 서버(120)에게, 앨범에 대한 링크 및 존 핼프린에 대한 이메일 주소로 이 링크를 전송하라는 명령들을 제공함으로써, 존 핼프린에 대한 이메일 주소를 식별할 수 있다.
[0115] 일부 구현들에서, 이미지 어시스턴트(208)는 음성 커맨드들을 사용하여 사용자에 대한 이미지들을 편집한다. 예시적인 편집 명령들은 "사진 속의 사람을 잘라", "이 사진을 흑백으로 만들어", "그것을 밝게 해", 그리고 "그것을 어둡게 해"를 포함할 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는 특정된 이미지와 연관되는 제품들을 주문할 수 있다. 예컨대, 사용자는 "사진을 갖는 8x10 포스터를 주문하고, 그것이 검은 액자에 끼워지게 해. 그것이 사만다를 위한 선물 카드와 함께 사만다의 집으로 배달되게 해"라고 이미지 어시스턴트(208)에 명령할 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는, 이미지 내의 엔티티에 관련된 아이템을 구매하라는 요청을 사용자로부터 수신하며, 사용자를 위해 이 아이템을 구매할 수 있다. 요청은 오디오, 이를테면 "이미지 속의 재킷을 구매해"일 수 있거나, 또는 사용자는 이미지 내의 엔티티를 선택할 수 있다. 다른 옵션들은, 이미지가 있는 커피 머그 또는 티-셔츠를 주문하는 것을 포함할 수 있다. 일부 구현들에서, 이미지 어시스턴트(208)는 사용자에 대한 이미지 내의 아이템을 주문할 수 있다. 예컨대, 사용자는 이미지 내에서 묘사된 재킷을 주문하도록 이미지 어시스턴트(208)에 명령할 수 있다.
[0116] 사용자 인터페이스 모듈(210)은 정보를 사용자에게 제공하도록 동작가능할 수 있다. 일부 구현들에서, 사용자 인터페이스 모듈(210)은, 정보를 사용자에게 제공하기 위한 아래에서 설명된 기능성을 제공하기 위해 프로세서(235)에 의해 실행가능한 명령들의 세트일 수 있다. 일부 구현들에서, 사용자 인터페이스 모듈(210)은 컴퓨팅 디바이스(200)의 메모리(237)에 저장될 수 있으며, 프로세서(235)에 의해 액세스가능 및 실행가능할 수 있다.
[0117] 일부 구현들에서, 이미지 어시스턴트(208)는 사용자에 대한 이미지 내의 엔티티들을 구매한다. 엔티티들은 음성 커맨드들, 이를테면 "구매해"를 통해 사용자에 의해 식별될 수 있다.
[0118] 사용자 인터페이스 모듈(210)은, 사용자 인터페이스를 디스플레이하도록 동작가능한 그래픽 데이터를 생성하라는 명령들을 이미지 애플리케이션(103)의 다른 모듈들로부터 수신할 수 있다. 예컨대, 사용자 인터페이스 모듈(210)은, 사용자에 의해 캡처된 이미지들, 사용자가 이미지들에 대한 검색을 입력할 수 있는 검색 바 등을 디스플레이하는 사용자 인터페이스를 생성할 수 있다. 일부 구현들에서, 사용자 인터페이스 모듈(210)은 이미지들 내의 엔티티들 주위에 경계들을 포함하는 이미지들을 디스플레이할 수 있다. 엔티티의 경계 내에서의 선택을 수신하는 것에 대한 응답으로, 사용자 인터페이스 모듈(210)은 엔티티에 관한 추가 정보를 생성할 수 있다.
예시적인 방법들
[0119] 도 6a-도 6b는 이미지들을 조직화하기 위한 예시적인 방법의 흐름도이다. 방법(600)은, 도 1에서 예시된 이미지 애플리케이션(103)을 사용하여, 이미지 서버(101), 사용자 디바이스(115), 또는 이미지 서버(101)와 사용자 디바이스(115)의 결합에 의해 구현될 수 있다. 이미지 애플리케이션(103)은 도 2에서 예시된 이미지 프로세싱 모듈(202), 인덱싱 모듈(204), 및 검색 모듈(206)을 포함할 수 있다.
[0120] 블록(602)에서, 사용자와 연관된 이미지가 식별된다. 이미지는 사용자 디바이스 상에 저장되거나 또는 클라우드에 저장될 수 있다.
[0121] 블록(604)에서, 하나 또는 그 초과의 라벨들이 이미지에 대해 결정되며, 여기서: 하나 또는 그 초과의 라벨들은 메타데이터, 1차 주석, 및 2차 주석 중 적어도 하나에 기반하며, 1차 주석은 다음: (1) 이미지 내에서 나타나는 엔티티 및 이미지와 연관된 특성 중 하나 또는 그 초과를 결정하기 위한 이미지 인식, 그리고 (2) 메타데이터에 관한 추론에 기반하는 메타데이터의 변환 중 적어도 하나를 수행함으로써 결정되며, 그리고 2차 주석은, 메타데이터 및 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성된다.
[0122] 블록(606)에서, 하나 또는 그 초과의 신뢰 점수들로의 하나 또는 그 초과의 라벨들의 매핑이 생성되며, 하나 또는 그 초과의 신뢰 점수들은, 하나 또는 그 초과의 라벨들이 이미지에 적용되는 정도를 표시한다. 다수의 이미지들이 사용자와 연관되는 구현들에서, 매핑은, 이미지들이 노드들을 표현하고 노드들 사이의 각각의 에지가 대응하는 이미지들과 연관된 하나 또는 그 초과의 라벨들에 기반하는, 이미지들의 그래프를 포함할 수 있다.
[0123] 블록(608)에서, 이미지를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 사용자와의 상호작용이 발생한다. 예컨대, 시각적 및 오디오 엘리먼트을 사용하여 이미지에 관한 식별 정보를 제공하는 것에 대한 요청이 사용자에게 제공될 수 있다. 사용자의 다수의 사진들의 시각자료, 그리고 사진들이 사용자의 사진들인지를 사용자에게 물어보는 오디오가 사용자에게 제공될 수 있다. 블록(610)에서, 매핑은, 식별 정보를 이미지에 추가함으로써 업데이트된다. 예컨대, 사용자가 "나를 포함하는 이미지들을 나에게 보여줘"라고 요청할 수 있도록, 사용자를 포함하는 이미지가 "나" 라벨을 갖게 업데이트될 수 있다.
[0124] 블록들(602 내지 610)이 특정 순서로 예시되지만, 중간 단계들과 함께 다른 순서들이 가능하다. 일부 구현들에서, 일부 블록들이 추가되거나, 생략되거나, 또는 결합될 수 있다.
[0125] 위의 설명에서, 설명의 목적들을 위해, 많은 특정 세부사항들이 본 명세서의 완전한 이해를 제공하기 위하여 제시된다. 그러나, 본 개시내용이 이들 특정 세부사항들 없이 실시될 수 있다는 것이 당업자에게 자명할 것이다. 일부 사례들에서, 구조들 및 디바이스들은 설명을 모호하게 하는 것을 방지하기 위하여 블록 다이어그램 형태로 도시된다. 예컨대, 구현들은 주로 사용자 인터페이스들 및 특정 하드웨어를 참조로 위에서 설명될 수 있다. 그러나, 구현들은, 데이터 및 커맨드들을 수신할 수 있는 임의의 타입의 컴퓨팅 디바이스, 및 서비스들을 제공하는 임의의 주변 디바이스들에 적용될 수 있다.
[0126] 본 명세서에서 "일부 구현들" 또는 "일부 사례들"에 대한 참조는, 구현들 또는 사례들과 관련하여 설명된 특정 특징, 구조, 또는 특성이 설명의 적어도 하나의 구현에 포함될 수 있다는 것을 의미한다. 본 명세서의 다양한 장소들에서의 문구 "일부 구현들에서"의 출현들은 반드시 전부가 동일한 구현들을 지칭하는 것은 아니다.
[0127] 위의 상세한 설명들 중 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 연산들의 알고리즘들 및 기호 표현들 측면에서 제시된다. 이들 알고리즘 설명들 및 표현들은, 그들의 작업의 본질을 다른 당업자들에게 가장 효과적으로 전달하기 위해 데이터 프로세싱 분야들의 당업자들에 의해 사용되는 수단이다. 알고리즘은, 여기서 그리고 일반적으로, 원하는 결과로 이어지는 단계들의 일관성 있는(self-consistent) 시퀀스인 것으로 이해된다. 단계들은 물리적인 양들의 물리적인 조작들을 요구하는 것들이다. 반드시 아니지만 보통, 이들 양들은 저장, 전송, 결합, 비교, 및 다른 방식으로 조작될 수 있는 전기 또는 자기 데이터의 형태를 취한다. 주로 일반적인 사용의 이유들로, 비트들, 값들, 엘리먼트들, 심볼들, 문자들, 용어들, 숫자들 등으로서 이들 데이터를 지칭하는 것이 때로는 편리한 것으로 증명되었다.
[0128] 그러나, 이들 그리고 유사한 용어들 전부가 적절한 물리적인 양들과 연관되어야 하며, 단지 이들 양들에 적용되는 편리한 라벨들일 뿐임을 명심해야 한다. 다음의 논의로부터 명백한 바와 같이, 달리 구체적으로 진술되지 않는 한, 설명 전체에 걸쳐, "프로세싱" 또는 "컴퓨팅" 또는 "계산" 또는 "결정" 또는 "디스플레이" 등을 포함하는 용어들을 활용하는 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적인 (전자) 양들로서 표현된 데이터를, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장, 송신 또는 디스플레이 디바이스들 내의 물리적인 양들로 유사하게 표현된 다른 데이터로 조작 및 변환하는, 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭한다는 것이 인식된다.
[0129] 본 명세서의 구현들은 또한, 위에서 설명된 방법들의 하나 또는 그 초과의 단계들을 수행하기 위한 프로세서에 관한 것일 수 있다. 프로세서는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 또는 재구성된 특수-목적 프로세서일 수 있다. 그러한 컴퓨터 프로그램은 플로피 디스크들, 광학 디스크들, ROM들, CD-ROM들, 자기 디스크들, RAM들, EPROM들, EEPROM들, 자기 또는 광학 카드들을 포함하는 임의의 타입의 디스크, 비-휘발성 메모리를 갖는 USB 키들을 포함하는 플래시 메모리, 또는 컴퓨터 시스템 버스에 각각 커플링된, 전자 명령들을 저장하기에 적절한 임의의 타입의 매체(그러나, 이들에 제한되지 않음)를 포함하는 비-일시적인 컴퓨터-판독가능 저장 매체에 저장될 수 있다.
[0130] 본 명세서는 어떤 전적으로 하드웨어 구현들, 어떤 전적으로 소프트웨어 구현들, 또는 하드웨어 엘리먼트와 소프트웨어 엘리먼트 둘 모두를 포함하는 어떤 구현들의 형태를 취할 수 있다. 일부 구현들에서, 본 명세서는 소프트웨어로 구현되며, 소프트웨어는 펌웨어, 상주 소프트웨어, 마이크로 코드 등(그러나, 이들에 제한되지 않음)을 포함한다.
[0131] 또한, 설명은, 컴퓨터 또는 임의의 명령 실행 시스템에 의한 또는 이와 관련한 사용을 위한 프로그램 코드를 제공하는 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체로부터 액세스가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 본 설명의 목적들을 위해, 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는, 명령 실행 시스템, 장치, 또는 디바이스에 의한 또는 이와 관련한 사용을 위한 프로그램을 포함, 저장, 통신, 전파, 또는 전송할 수 있는 임의의 장치일 수 있다.
[0132] 프로그램 코드를 저장하거나 또는 실행하기에 적절한 데이터 프로세싱 시스템은 시스템 버스를 통해 메모리 엘리먼트들에 직접적으로 또는 간접적으로 커플링된 적어도 하나의 프로세서를 포함할 것이다. 메모리 엘리먼트들은 프로그램 코드의 실제 실행 동안에 사용되는 로컬 메모리, 대용량 스토리지, 그리고 실행 동안 대용량 스토리지로부터 코드가 리트리빙되어야 하는 횟수를 감소시키기 위하여 적어도 어떤 프로그램 코드의 일시적 저장을 제공하는 캐시 메모리들을 포함할 수 있다.
[0133] 추가적인 구현들은 다음의 예들에서 요약된다:
[0134] 예 1: 컴퓨터-구현 방법으로서, 사용자와 연관된 이미지들을 식별하는 단계 ―이미지는 사용자와 연관된 사용자 디바이스에 의해 캡처된 것, 사용자와 연관된 사용자 디바이스 상에 저장된 것, 그리고 사용자와 연관된 클라우드 스토리지에 저장된 것 중 적어도 하나로서 식별됨―; 이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하는 단계 ―하나 또는 그 초과의 라벨들은 메타데이터 및 1차 주석 중 적어도 하나에 기반함―; 하나 또는 그 초과의 신뢰 점수들로의 하나 또는 그 초과의 라벨들의 매핑을 생성하는 단계 ―하나 또는 그 초과의 신뢰 점수들은, 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시함―; 및 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 사용자와 상호작용하는 단계를 포함한다.
[0135] 예 2: 예 1의 방법에 있어서, 이미지들 중 하나 또는 그 초과에 식별 정보를 추가함으로써, 매핑을 업데이트하는 단계를 더 포함한다.
[0136] 예 3: 예 1 또는 예 2의 방법에 있어서, 사용자와 연관된 이미지들 중 하나 또는 그 초과의 이미지들에 대한 하나 또는 그 초과의 사용자-생성 검색 용어들을 사용자로부터 수신하는 단계; 사용자-생성 검색 용어들의 애매성을 결정하는 단계; 및 사용자-생성 검색 용어들의 애매성을 해결하기 위해 명료화 정보를 제공하도록 사용자에게 요청하는 단계를 더 포함한다.
[0137] 예 4: 예 1 내지 예 3 중 일 예의 방법에 있어서, 이미지들 중 하나 또는 그 초과의 이미지들을 제3자 애플리케이션과 연관된 사람에게 전송하라는 명령을 사용자로부터 수신하는 단계; 이 사람과 연관된 접촉 프로파일을 결정하는 단계; 및 접촉 프로파일에 기반하여 하나 또는 그 초과의 이미지들을 이 사람에게 제공하는 단계를 더 포함한다.
[0138] 예 5: 예 1 내지 예 4 중 일 예의 방법에 있어서, 하나 또는 그 초과의 라벨들은 2차 주석을 포함하며, 2차 주석은, 메타데이터 및 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성된다.
[0139] 예 6: 예 1 내지 예 5 중 일 예의 방법에 있어서, 사용자와 상호작용하는 단계는 이미지, 및 이 이미지 내의 엔티티에 관한 식별 정보를 제공하라는 오디오 프롬프트를 송신하는 단계를 포함한다.
[0140] 예 7: 예 1 내지 예 6 중 일 예의 방법에 있어서, 이미지들 중 하나의 이미지 내의 엔티티에 관련된 아이템을 구매하라는 요청을 사용자로부터 수신하는 단계; 및 사용자를 위해 아이템을 구매하는 단계를 더 포함한다.
[0141] 예 8: 컴퓨터 시스템으로서, 메모리에 커플링된 하나 또는 그 초과의 프로세서들; 메모리에 저장되며, 하나 또는 그 초과의 프로세서들에 의해 실행가능한 이미지 프로세싱 모듈 ―이미지 프로세싱 모듈은, 사용자와 연관된 이미지들을 식별하며, 그리고 이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하도록 동작가능하며, 하나 또는 그 초과의 라벨들은 메타데이터, 1차 주석, 및 2차 주석 중 적어도 하나에 기반하며, 2차 주석은, 메타데이터 및 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성됨―; 메모리에 저장되며, 하나 또는 그 초과의 프로세서들에 의해 실행가능한 인덱싱 모듈 ―인덱싱 모듈은, 하나 또는 그 초과의 신뢰 점수들로의 하나 또는 그 초과의 라벨들의 매핑을 생성하도록 동작가능하며, 하나 또는 그 초과의 신뢰 점수들은, 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시함―; 및 메모리에 저장되며, 하나 또는 그 초과의 프로세서들에 의해 실행가능한 이미지 어시스턴트를 포함하며, 이미지 어시스턴트는, 하나 또는 그 초과의 라벨들 중의 하나 또는 그 초과의 라벨들에 대응하는 하나 또는 그 초과의 사용자-생성 검색 용어들을 포함하는 제1 검색 질의를 수신하며, 그리고 대응하는 이미지를 사용자에게 제공하도록 동작가능하다.
[0142] 예 9: 예 8의 시스템에 있어서, 인덱싱 모듈은 추가로, 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 사용자와 상호작용하며; 그리고 이미지들 중 하나 또는 그 초과에 식별 정보를 추가함으로써 매핑을 업데이트하도록, 인덱싱 모듈에 명령하도록 동작가능하다.
[0143] 예 10: 예 8 또는 예 9의 시스템에 있어서, 메모리에 저장되며, 하나 또는 그 초과의 프로세서들에 의해 실행가능한 검색 모듈을 더 포함하며, 검색 모듈은, 사용자와 연관된 이미지들 중 하나 또는 그 초과의 이미지들에 대한 하나 또는 그 초과의 사용자-생성 검색 용어들을 포함하는 제2 요청을 사용자로부터 수신하도록 동작가능하며; 그리고 이미지 어시스턴트는 추가로, 사용자-생성 검색 용어들의 애매성을 결정하며, 그리고 사용자-생성 검색 용어들의 애매성을 해결하기 위해 명료화 정보를 제공하도록 사용자에게 요청하도록 동작가능하다.
[0144] 예 11: 예 8 내지 예 10 중 일 예의 시스템에 있어서, 이미지 어시스턴트는 추가로, 이미지들 중 하나 또는 그 초과의 이미지들을 제3자 애플리케이션과 연관된 사람에게 전송하라는 명령을 사용자로부터 수신하고, 이 사람과 연관된 접촉 프로파일을 결정하며, 그리고 접촉 프로파일에 기반하여 하나 또는 그 초과의 이미지들을 이 사람에게 제공하도록 동작가능하다.
[0145] 예 12: 예 8 내지 예 11 중 일 예의 시스템에 있어서, 하나 또는 그 초과의 라벨들은 2차 주석을 포함하며, 2차 주석은, 메타데이터 및 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성된다.
[0146] 예 13: 예 8 내지 예 12 중 일 예의 시스템에 있어서, 사용자와 상호작용하는 것은 이미지, 및 이 이미지 내의 엔티티에 관한 식별 정보를 제공하라는 오디오 프롬프트를 송신하는 것을 포함한다.
[0147] 예 14: 예 8 내지 예 13 중 일 예의 시스템에 있어서, 이미지 어시스턴트는 추가로, 이미지들 중 하나의 이미지 내의 엔티티에 관련된 아이템을 구매하라는 요청을 사용자로부터 수신하며; 그리고 사용자를 위해 아이템을 구매하도록 동작가능하다.
[0148] 예 15: 컴퓨터 프로그램으로 인코딩된 비-일시적인 컴퓨터 저장 매체로서, 컴퓨터 프로그램은 명령들을 포함하며, 명령들은, 하나 또는 그 초과의 컴퓨터들에 의해 실행될 때, 하나 또는 그 초과의 컴퓨터들로 하여금, 사용자와 연관된 이미지를 식별하는 동작 ―이미지는 사용자와 연관된 사용자 디바이스에 의해 캡처된 것, 사용자와 연관된 사용자 디바이스 상에 저장된 것, 그리고 사용자와 연관된 클라우드 스토리지에 저장된 것 중 적어도 하나로서 식별됨―; 이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하는 동작 ―하나 또는 그 초과의 라벨들은 메타데이터 및 1차 주석 중 적어도 하나에 기반함―; 하나 또는 그 초과의 신뢰 점수들로의 하나 또는 그 초과의 라벨들의 매핑을 생성하는 동작 ―하나 또는 그 초과의 신뢰 점수들은, 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시함―; 및 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 사용자와 상호작용하는 동작을 포함하는 동작들을 수행하게 한다.
[0149] 예 16: 예 15의 컴퓨터 저장 매체에 있어서, 명령들은 추가로, 이미지들 중 하나 또는 그 초과에 식별 정보를 추가함으로써 매핑을 업데이트하는 동작을 포함하는 동작들을 수행하도록 동작가능하다.
[0150] 예 17: 예 15 또는 예 16의 컴퓨터 저장 매체에 있어서, 명령들은 추가로, 사용자와 연관된 이미지들 중 하나 또는 그 초과의 이미지들에 대한 하나 또는 그 초과의 사용자-생성 검색 용어들을 사용자로부터 수신하는 동작; 사용자-생성 검색 용어들의 애매성을 결정하는 동작; 및 사용자-생성 검색 용어들의 애매성을 해결하기 위해 명료화 정보를 제공하도록 사용자에게 요청하는 동작을 포함하는 동작들을 수행하도록 동작가능하다.
[0151] 예 18: 예 15 내지 예 17 중 일 예의 컴퓨터 저장 매체에 있어서, 명령들은 추가로, 이미지들 중 하나 또는 그 초과의 이미지들을 제3자 애플리케이션과 연관된 사람에게 전송하라는 명령을 사용자로부터 수신하는 동작; 이 사람과 연관된 접촉 프로파일을 결정하는 동작; 및 접촉 프로파일에 기반하여 하나 또는 그 초과의 이미지들을 이 사람에게 제공하는 동작을 포함하는 동작들을 수행하도록 동작가능하다.
[0152] 예 19: 예 15 내지 예 18 중 일 예의 컴퓨터 저장 매체에 있어서, 하나 또는 그 초과의 라벨들은 2차 주석을 포함하며, 2차 주석은, 메타데이터 및 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성된다.
[0153] 예 20: 예 15 내지 예 19 중 일 예의 컴퓨터 저장 매체에 있어서, 사용자와 상호작용하는 동작은 이미지, 및 이 이미지 내의 엔티티에 관한 식별 정보를 제공하라는 오디오 프롬프트를 송신하는 동작을 포함한다.
[0154] 위에서 논의된 시스템들이 개인 정보를 수집하는 상황들에서, 시스템들은, 프로그램들 또는 특징들이 사용자 정보(예컨대, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호들, 또는 사용자의 현재 위치에 관한 정보)를 수집할지 여부를 제어하거나, 또는 사용자에 더욱 관련될 수 있는 콘텐츠를 서버로부터 수신할지 여부 및/또는 수신하는 방법을 제어할 기회를 사용자들에게 제공한다. 부가하여, 소정의 데이터는 이 데이터가 저장되거나 또는 사용되기 전에 하나 또는 그 초과의 방식들로 취급되어서, 개인 식별가능 정보는 제거될 수 있다. 예컨대, 어떤 개인 식별가능 정보도 사용자에 대해 결정될 수 없도록, 사용자의 아이덴티티가 취급될 수 있거나, 또는 위치 정보가 획득되는 곳에서 사용자의 지리적 위치가 (이를테면, 도시, ZIP 코드, 또는 국가 레벨로) 일반화될 수 있어서, 사용자의 특정 위치가 결정될 수 없다. 따라서, 사용자는, 정보가 사용자에 관해 수집되고 서버에 의해 사용되는 방법에 대한 제어를 가질 수 있다.

Claims (20)

  1. 컴퓨터-구현 방법으로서,
    사용자와 연관된 이미지들을 식별하는 단계 ―상기 이미지는 상기 사용자와 연관된 사용자 디바이스에 의해 캡처된 것, 상기 사용자와 연관된 사용자 디바이스 상에 저장된 것, 그리고 상기 사용자와 연관된 클라우드 스토리지에 저장된 것 중 적어도 하나로서 식별됨―;
    이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하는 단계 ―상기 하나 또는 그 초과의 라벨들은 메타데이터 및 1차 주석 중 적어도 하나에 기반함―;
    하나 또는 그 초과의 신뢰 점수들로의 상기 하나 또는 그 초과의 라벨들의 매핑을 생성하는 단계 ―상기 하나 또는 그 초과의 신뢰 점수들은, 상기 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시함―; 및
    상기 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 상기 사용자와 상호작용하는 단계
    를 포함하는,
    컴퓨터-구현 방법.
  2. 제1 항에 있어서,
    상기 이미지들 중 하나 또는 그 초과에 상기 식별 정보를 추가함으로써, 상기 매핑을 업데이트하는 단계
    를 더 포함하는,
    컴퓨터-구현 방법.
  3. 제1 항에 있어서,
    상기 사용자와 연관된 이미지들 중 하나 또는 그 초과의 이미지들에 대한 하나 또는 그 초과의 사용자-생성 검색 용어들을 상기 사용자로부터 수신하는 단계;
    상기 사용자-생성 검색 용어들의 애매성(ambiguity)을 결정하는 단계; 및
    상기 사용자-생성 검색 용어들의 애매성을 해결하기 위해 명료화 정보를 제공하도록 상기 사용자에게 요청하는 단계
    를 더 포함하는,
    컴퓨터-구현 방법.
  4. 제1 항에 있어서,
    상기 이미지들 중 하나 또는 그 초과의 이미지들을 제3자 애플리케이션과 연관된 사람에게 전송하라는 명령을 상기 사용자로부터 수신하는 단계;
    상기 사람과 연관된 접촉 프로파일을 결정하는 단계; 및
    상기 접촉 프로파일에 기반하여 상기 하나 또는 그 초과의 이미지들을 상기 사람에게 제공하는 단계
    를 더 포함하는,
    컴퓨터-구현 방법.
  5. 제1 항에 있어서,
    상기 하나 또는 그 초과의 라벨들은 2차 주석을 포함하며, 상기 2차 주석은, 상기 메타데이터 및 상기 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성되는,
    컴퓨터-구현 방법.
  6. 제1 항에 있어서,
    상기 사용자와 상호작용하는 단계는 이미지, 및 상기 이미지 내의 엔티티에 관한 식별 정보를 제공하라는 오디오 프롬프트를 송신하는 단계를 포함하는,
    컴퓨터-구현 방법.
  7. 제1 항에 있어서,
    상기 이미지들 중 하나의 이미지 내의 엔티티에 관련된 아이템을 구매하라는 요청을 상기 사용자로부터 수신하는 단계; 및
    상기 사용자를 위해 상기 아이템을 구매하는 단계
    를 더 포함하는,
    컴퓨터-구현 방법.
  8. 컴퓨터 시스템으로서,
    메모리에 커플링된 하나 또는 그 초과의 프로세서들;
    상기 메모리에 저장되며, 상기 하나 또는 그 초과의 프로세서들에 의해 실행가능한 이미지 프로세싱 모듈 ―상기 이미지 프로세싱 모듈은, 사용자와 연관된 이미지들을 식별하며, 그리고 상기 이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하도록 동작가능하며, 상기 하나 또는 그 초과의 라벨들은 메타데이터, 1차 주석, 및 2차 주석 중 적어도 하나에 기반하며, 상기 2차 주석은, 상기 메타데이터 및 상기 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성됨―;
    상기 메모리에 저장되며, 상기 하나 또는 그 초과의 프로세서들에 의해 실행가능한 인덱싱 모듈 ―상기 인덱싱 모듈은, 하나 또는 그 초과의 신뢰 점수들로의 상기 하나 또는 그 초과의 라벨들의 매핑을 생성하도록 동작가능하며, 상기 하나 또는 그 초과의 신뢰 점수들은, 상기 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시함―; 및
    상기 메모리에 저장되며, 상기 하나 또는 그 초과의 프로세서들에 의해 실행가능한 이미지 어시스턴트
    를 포함하며,
    상기 이미지 어시스턴트는, 상기 하나 또는 그 초과의 라벨들 중의 하나 또는 그 초과의 라벨들에 대응하는 하나 또는 그 초과의 사용자-생성 검색 용어들을 포함하는 제1 검색 질의를 수신하며, 그리고 대응하는 이미지를 상기 사용자에게 제공하도록 동작가능한,
    컴퓨터 시스템.
  9. 제8 항에 있어서,
    상기 인덱싱 모듈은 추가로,
    상기 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 상기 사용자와 상호작용하며; 그리고
    상기 이미지들 중 하나 또는 그 초과에 상기 식별 정보를 추가함으로써 상기 매핑을 업데이트하도록, 상기 인덱싱 모듈에 명령하도록
    동작가능한,
    컴퓨터 시스템.
  10. 제8 항에 있어서,
    상기 메모리에 저장되며, 상기 하나 또는 그 초과의 프로세서들에 의해 실행가능한 검색 모듈
    을 더 포함하며,
    상기 검색 모듈은, 상기 사용자와 연관된 이미지들 중 하나 또는 그 초과의 이미지들에 대한 하나 또는 그 초과의 사용자-생성 검색 용어들을 포함하는 제2 요청을 상기 사용자로부터 수신하도록 동작가능하며; 그리고
    상기 이미지 어시스턴트는 추가로, 상기 사용자-생성 검색 용어들의 애매성을 결정하며, 그리고 상기 사용자-생성 검색 용어들의 애매성을 해결하기 위해 명료화 정보를 제공하도록 상기 사용자에게 요청하도록 동작가능한,
    컴퓨터 시스템.
  11. 제8 항에 있어서,
    상기 이미지 어시스턴트는 추가로, 상기 이미지들 중 하나 또는 그 초과의 이미지들을 제3자 애플리케이션과 연관된 사람에게 전송하라는 명령을 상기 사용자로부터 수신하고, 상기 사람과 연관된 접촉 프로파일을 결정하며, 그리고 상기 접촉 프로파일에 기반하여 상기 하나 또는 그 초과의 이미지들을 상기 사람에게 제공하도록 동작가능한,
    컴퓨터 시스템.
  12. 제8 항에 있어서,
    상기 하나 또는 그 초과의 라벨들은 2차 주석을 포함하며, 상기 2차 주석은, 상기 메타데이터 및 상기 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성되는,
    컴퓨터 시스템.
  13. 제8 항에 있어서,
    상기 사용자와 상호작용하는 것은 이미지, 및 상기 이미지 내의 엔티티에 관한 식별 정보를 제공하라는 오디오 프롬프트를 송신하는 것을 포함하는,
    컴퓨터 시스템.
  14. 제8 항에 있어서,
    상기 이미지 어시스턴트는 추가로,
    상기 이미지들 중 하나의 이미지 내의 엔티티에 관련된 아이템을 구매하라는 요청을 상기 사용자로부터 수신하며; 그리고
    상기 사용자를 위해 상기 아이템을 구매하도록
    동작가능한,
    컴퓨터 시스템.
  15. 컴퓨터 프로그램으로 인코딩된 비-일시적인 컴퓨터 저장 매체로서,
    상기 컴퓨터 프로그램은 명령들을 포함하며, 상기 명령들은, 하나 또는 그 초과의 컴퓨터들에 의해 실행될 때, 상기 하나 또는 그 초과의 컴퓨터들로 하여금,
    사용자와 연관된 이미지를 식별하는 동작 ―상기 이미지는 상기 사용자와 연관된 사용자 디바이스에 의해 캡처된 것, 상기 사용자와 연관된 사용자 디바이스 상에 저장된 것, 그리고 상기 사용자와 연관된 클라우드 스토리지에 저장된 것 중 적어도 하나로서 식별됨―;
    이미지들 각각에 대해, 하나 또는 그 초과의 라벨들을 결정하는 동작 ―상기 하나 또는 그 초과의 라벨들은 메타데이터 및 1차 주석 중 적어도 하나에 기반함―;
    하나 또는 그 초과의 신뢰 점수들로의 상기 하나 또는 그 초과의 라벨들의 매핑을 생성하는 동작 ―상기 하나 또는 그 초과의 신뢰 점수들은, 상기 하나 또는 그 초과의 라벨들이 대응하는 이미지들에 적용되는 정도를 표시함―; 및
    상기 이미지들 중 하나 또는 그 초과를 카테고리화하기 위해 사용되는 식별 정보를 획득하기 위해, 상기 사용자와 상호작용하는 동작
    을 포함하는 동작들을 수행하게 하는,
    비-일시적인 컴퓨터 저장 매체.
  16. 제15 항에 있어서,
    상기 명령들은 추가로,
    상기 이미지들 중 하나 또는 그 초과에 상기 식별 정보를 추가함으로써 상기 매핑을 업데이트하는 동작
    을 포함하는 동작들을 수행하도록 동작가능한,
    비-일시적인 컴퓨터 저장 매체.
  17. 제15 항에 있어서,
    상기 명령들은 추가로,
    상기 사용자와 연관된 이미지들 중 하나 또는 그 초과의 이미지들에 대한 하나 또는 그 초과의 사용자-생성 검색 용어들을 상기 사용자로부터 수신하는 동작;
    상기 사용자-생성 검색 용어들의 애매성을 결정하는 동작; 및
    상기 사용자-생성 검색 용어들의 애매성을 해결하기 위해 명료화 정보를 제공하도록 상기 사용자에게 요청하는 동작
    을 포함하는 동작들을 수행하도록 동작가능한,
    비-일시적인 컴퓨터 저장 매체.
  18. 제15 항에 있어서,
    상기 명령들은 추가로,
    상기 이미지들 중 하나 또는 그 초과의 이미지들을 제3자 애플리케이션과 연관된 사람에게 전송하라는 명령을 상기 사용자로부터 수신하는 동작;
    상기 사람과 연관된 접촉 프로파일을 결정하는 동작; 및
    상기 접촉 프로파일에 기반하여 상기 하나 또는 그 초과의 이미지들을 상기 사람에게 제공하는 동작
    을 포함하는 동작들을 수행하도록 동작가능한,
    비-일시적인 컴퓨터 저장 매체.
  19. 제15 항에 있어서,
    상기 하나 또는 그 초과의 라벨들은 2차 주석을 포함하며, 상기 2차 주석은, 상기 메타데이터 및 상기 1차 주석 중 적어도 하나에 대해 라벨 확장을 수행함으로써 생성되는,
    비-일시적인 컴퓨터 저장 매체.
  20. 제15 항에 있어서,
    상기 사용자와 상호작용하는 동작은 이미지, 및 상기 이미지 내의 엔티티에 관한 식별 정보를 제공하라는 오디오 프롬프트를 송신하는 동작을 포함하는,
    비-일시적인 컴퓨터 저장 매체.
KR1020187007531A 2015-12-28 2016-12-22 사용자와 연관된 이미지들의 조직화 KR102090010B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/980,835 US9881236B2 (en) 2015-12-28 2015-12-28 Organizing images associated with a user
US14/980,835 2015-12-28
PCT/US2016/068428 WO2017117028A1 (en) 2015-12-28 2016-12-22 Organizing images associated with a user

Publications (2)

Publication Number Publication Date
KR20180041202A true KR20180041202A (ko) 2018-04-23
KR102090010B1 KR102090010B1 (ko) 2020-03-17

Family

ID=57868347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187007531A KR102090010B1 (ko) 2015-12-28 2016-12-22 사용자와 연관된 이미지들의 조직화

Country Status (5)

Country Link
US (3) US9881236B2 (ko)
EP (1) EP3398087B1 (ko)
KR (1) KR102090010B1 (ko)
CN (1) CN108431802B (ko)
WO (1) WO2017117028A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200106115A (ko) * 2019-02-27 2020-09-11 한국전력공사 이미지 캡션 자동 생성 장치 및 방법

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534783B1 (en) * 2016-02-08 2020-01-14 Microstrategy Incorporated Enterprise search
US10715580B2 (en) * 2016-06-01 2020-07-14 Facebook, Inc. Grouping content based on geographic data
EP4033431A1 (en) * 2016-06-02 2022-07-27 Kodak Alaris Inc. Method for producing and distributing one or more customized media centric products
US11785161B1 (en) 2016-06-20 2023-10-10 Pipbin, Inc. System for user accessibility of tagged curated augmented reality content
US11044393B1 (en) 2016-06-20 2021-06-22 Pipbin, Inc. System for curation and display of location-dependent augmented reality content in an augmented estate system
US11201981B1 (en) 2016-06-20 2021-12-14 Pipbin, Inc. System for notification of user accessibility of curated location-dependent content in an augmented estate
US10334134B1 (en) 2016-06-20 2019-06-25 Maximillian John Suiter Augmented real estate with location and chattel tagging system and apparatus for virtual diary, scrapbooking, game play, messaging, canvasing, advertising and social interaction
US10638256B1 (en) 2016-06-20 2020-04-28 Pipbin, Inc. System for distribution and display of mobile targeted augmented reality content
US10805696B1 (en) 2016-06-20 2020-10-13 Pipbin, Inc. System for recording and targeting tagged content of user interest
US11876941B1 (en) 2016-06-20 2024-01-16 Pipbin, Inc. Clickable augmented reality content manager, system, and network
WO2018034610A1 (en) * 2016-08-17 2018-02-22 Delaval Holding Ab Method and control unit for locating animals
US10366368B2 (en) * 2016-09-22 2019-07-30 Microsoft Technology Licensing, Llc Search prioritization among users in communication platforms
CN106844641A (zh) * 2017-01-20 2017-06-13 百度在线网络技术(北京)有限公司 图片搜索结果页的展示方法、装置、设备及存储介质
US10565256B2 (en) * 2017-03-20 2020-02-18 Google Llc Contextually disambiguating queries
US10860637B2 (en) * 2017-03-23 2020-12-08 International Business Machines Corporation System and method for rapid annotation of media artifacts with relationship-level semantic content
US10360257B2 (en) * 2017-08-08 2019-07-23 TuSimple System and method for image annotation
US10909166B1 (en) * 2017-11-03 2021-02-02 Shutterstock, Inc. Reverse search with manual composition
US10769371B1 (en) * 2017-11-28 2020-09-08 Amazon Technologies, Inc. Automatic execution of actions responsive to search queries
US11194842B2 (en) * 2018-01-18 2021-12-07 Samsung Electronics Company, Ltd. Methods and systems for interacting with mobile device
CN110248244A (zh) * 2018-03-08 2019-09-17 萧又滋 影像信息分享系统
WO2020026036A1 (en) 2018-07-31 2020-02-06 Marvell World Trade Ltd. Metadata generation at the storage edge
US11048734B1 (en) * 2018-08-20 2021-06-29 Pinterest, Inc. Auto-completion based on content similarities
WO2020066443A1 (ja) * 2018-09-26 2020-04-02 日本電気株式会社 顧客情報登録装置
CN109272390A (zh) * 2018-10-08 2019-01-25 中山大学 融合评分和标签信息的个性化推荐方法
CN109286902B (zh) * 2018-11-19 2020-12-15 中国联合网络通信集团有限公司 景区游客的人流量获取方法及装置
US10997231B2 (en) * 2019-01-17 2021-05-04 International Business Machines Corporation Image-based ontology refinement using clusters
CN109977246B (zh) * 2019-03-22 2023-07-07 深圳金袋鼠科技有限公司 一种基于用户行程归类照片的方法及系统
US11645505B2 (en) * 2020-01-17 2023-05-09 Servicenow Canada Inc. Method and system for generating a vector representation of an image
US20210304086A1 (en) * 2020-06-12 2021-09-30 Parag Mehta System and method for sharing a travel itinerary with booking options
US11270062B2 (en) 2020-07-20 2022-03-08 Labelbox, Inc. System and method for automated content annotation workflow
US11361152B2 (en) * 2020-07-20 2022-06-14 Labelbox, Inc. System and method for automated content labeling
US20220382811A1 (en) * 2021-06-01 2022-12-01 Apple Inc. Inclusive Holidays
WO2024087202A1 (zh) * 2022-10-28 2024-05-02 华为技术有限公司 一种搜索方法、模型训练方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011017557A1 (en) 2009-08-07 2011-02-10 Google Inc. Architecture for responding to a visual query
EP2402867A1 (en) * 2010-07-02 2012-01-04 Accenture Global Services Limited A computer-implemented method, a computer program product and a computer system for image processing
US20120047145A1 (en) * 2010-08-19 2012-02-23 Sap Ag Attributed semantic search
US20120158686A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Image Tag Refinement
US20130262588A1 (en) * 2008-03-20 2013-10-03 Facebook, Inc. Tag Suggestions for Images on Online Social Networks
KR20150038375A (ko) * 2012-09-19 2015-04-08 애플 인크. 음성 기반 미디어 검색

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8031170B2 (en) 2007-05-09 2011-10-04 Research In Motion Limited User interface for selecting a photo tag
US20120226602A1 (en) * 2011-03-01 2012-09-06 Allen Narcisse Online Marketplace for Content Licensing Using Geopositional Data
US20130046648A1 (en) * 2011-08-17 2013-02-21 Bank Of America Corporation Shopping list system and process
US9087273B2 (en) * 2011-11-15 2015-07-21 Facebook, Inc. Facial recognition using social networking information
US8873867B1 (en) 2012-07-10 2014-10-28 Google Inc. Assigning labels to images
US10169702B2 (en) 2013-12-30 2019-01-01 Htc Corporation Method for searching relevant images via active learning, electronic device using the same
US9177194B2 (en) 2014-01-29 2015-11-03 Sony Corporation System and method for visually distinguishing faces in a digital image
US11222044B2 (en) 2014-05-16 2022-01-11 Microsoft Technology Licensing, Llc Natural language image search
US9641770B2 (en) 2015-06-18 2017-05-02 Wasaka Llc Algorithm and devices for calibration and accuracy of overlaid image data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130262588A1 (en) * 2008-03-20 2013-10-03 Facebook, Inc. Tag Suggestions for Images on Online Social Networks
WO2011017557A1 (en) 2009-08-07 2011-02-10 Google Inc. Architecture for responding to a visual query
KR20120058538A (ko) * 2009-08-07 2012-06-07 구글 인코포레이티드 시각 질의에 응답하기 위한 아키텍처
EP2402867A1 (en) * 2010-07-02 2012-01-04 Accenture Global Services Limited A computer-implemented method, a computer program product and a computer system for image processing
US20120047145A1 (en) * 2010-08-19 2012-02-23 Sap Ag Attributed semantic search
US20120158686A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Image Tag Refinement
KR20150038375A (ko) * 2012-09-19 2015-04-08 애플 인크. 음성 기반 미디어 검색

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200106115A (ko) * 2019-02-27 2020-09-11 한국전력공사 이미지 캡션 자동 생성 장치 및 방법

Also Published As

Publication number Publication date
EP3398087A1 (en) 2018-11-07
US20180101753A1 (en) 2018-04-12
CN108431802B (zh) 2023-04-18
US10248889B2 (en) 2019-04-02
US20170185869A1 (en) 2017-06-29
US11138476B2 (en) 2021-10-05
WO2017117028A4 (en) 2017-08-17
US9881236B2 (en) 2018-01-30
EP3398087B1 (en) 2021-10-27
KR102090010B1 (ko) 2020-03-17
US20190220708A1 (en) 2019-07-18
WO2017117028A1 (en) 2017-07-06
CN108431802A (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
US11138476B2 (en) Organizing images associated with a user
KR102092763B1 (ko) 사용자와 연관된 이미지들에 대한 라벨들의 생성
CN109416685B (zh) 用于与用户主动交互的方法
AU2010326654B2 (en) Actionable search results for visual queries
US20180035074A1 (en) System, Method and Computer Program Product for Processing Image Data
AU2010326655B2 (en) Hybrid use of location sensor data and visual query to return local listings for visual query
US20170270222A1 (en) Organizing search results based upon clustered content
US9405772B2 (en) Actionable search results for street view visual queries
US9179192B1 (en) Associating video content with geographic maps
KR20120058538A (ko) 시각 질의에 응답하기 위한 아키텍처
JP2011215964A (ja) サーバ装置、クライアント装置、コンテンツ推薦方法及びプログラム
CN105874452B (zh) 从社交摘要中标记兴趣点
US20150081703A1 (en) Providing labels for photos
JP7090779B2 (ja) 情報処理装置、情報処理方法及び情報処理システム
AU2014200923A1 (en) Hybrid use of location sensor data and visual query to return local listings for visual query

Legal Events

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