KR102004058B1 - 모바일 컴퓨팅 디바이스 상에 저장된 사진들을 편성하기 위한 시스템, 방법 및 장치 - Google Patents

모바일 컴퓨팅 디바이스 상에 저장된 사진들을 편성하기 위한 시스템, 방법 및 장치 Download PDF

Info

Publication number
KR102004058B1
KR102004058B1 KR1020177002492A KR20177002492A KR102004058B1 KR 102004058 B1 KR102004058 B1 KR 102004058B1 KR 1020177002492 A KR1020177002492 A KR 1020177002492A KR 20177002492 A KR20177002492 A KR 20177002492A KR 102004058 B1 KR102004058 B1 KR 102004058B1
Authority
KR
South Korea
Prior art keywords
image
list
images
tag
software application
Prior art date
Application number
KR1020177002492A
Other languages
English (en)
Other versions
KR20170023168A (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 KR20170023168A publication Critical patent/KR20170023168A/ko
Application granted granted Critical
Publication of KR102004058B1 publication Critical patent/KR102004058B1/ko

Links

Images

Classifications

    • 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/10File systems; File servers
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/51Indexing; Data structures therefor; Storage structures
    • 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/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5854Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using shape and object relationship

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

이미지들을 편성하고 모바일 디바이스 상에 존재하는 이미지 저장소에서 검색하기 위한 이미지 편성 시스템이 제공된다. 이미지 편성 시스템은 이미지 저장소를 포함하는 모바일 컴퓨팅 디바이스를 포함한다. 모바일 컴퓨팅 디바이스는 소형화 모델이 생성된 이미지의 색인을 포함하는 이미지 저장소의 이미지로부터 소형화 모델을 생성하기에 적합하다. 일 실시예에서 소형화 모델은 그 다음 모바일 컴퓨팅 디바이스로부터, 그 다음 모바일 컴퓨팅 디바이스로 다시 송신되는, 이미지를 설명하는 태그 리스트를 생성하는 인식 소프트웨어를 포함하는 클라우드 컴퓨팅 플랫폼으로 송신된다. 그 다음 태그들은 편성 시스템을 형성한다. 대안적으로, 이미지 인식 소프트웨어는 모바일 컴퓨팅 디바이스 상에 존재할 수 있고, 그에 따라 어떤 클라우드 컴퓨팅 플랫폼도 요구되지 않는다.

Description

모바일 컴퓨팅 디바이스 상에 저장된 사진들을 편성하기 위한 시스템, 방법 및 장치{SYSTEM, METHOD AND APPARATUS FOR ORGANIZING PHOTOGRAPHS STORED ON A MOBILE COMPUTING DEVICE}
관련 출원들에 대한 상호 참조
본 출원은 캘리포니아, 마운틴 뷰의 Orbeus, Inc.에 양도된, 2014년 6월 24일에 출원된, "모바일 컴퓨팅 디바이스 상에 저장된 사진들을 편성하기 위한 시스템, 방법 및 장치"라는 명칭의, 미국 특허 출원 제14/316,905호의 혜택 및 우선권을 주장하며, 이는 그 전체가 이에 의해 참조로 원용된다. 본 출원은 캘리포니아, 마운틴 뷰의 Orbeus, Inc.에 양도된, 2013년 11월 7일에 출원된, "장면 인식을 위한 시스템, 방법 및 장치"라는 명칭의, 미국 특허 출원 제14/074,594호와 관련이 있으며, 이는 그 전체가 이에 의해 참조로 원용되고, 이는 캘리포니아, 마운틴 뷰의 Orbeus, Inc.에 양도된, 2012년 11월 9일에 출원된, "장면 인식을 위한 시스템, 방법 및 장치"라는 명칭의, 미국 특허 출원 61/724,628호에 대한 우선권을 주장하며, 이는 그 전체가 이에 의해 참조로 원용된다. 본 출원은 또한 캘리포니아, 마운틴 뷰의 Orbeus, Inc.에 양도된, 2013년 11월 7일에 출원된, 미국 특허 출원 제14/074,615호와 관련이 있으며, 이는 그 전체가 이에 의해 참조로 원용되고, 이는 캘리포니아, 마운틴 뷰의 Orbeus, Inc.에 양도된, 2013년 6월 20일에 출원된, "얼굴 인식을 위한 시스템, 방법 및 장치"라는 명칭의, 미국 특허 출원 61/837,210호에 대한 우선권을 주장하며, 이는 그 전체가 이에 의해 참조로 원용된다.
본 발명은 디지털 카메라를 포함하는 모바일 컴퓨팅 디바이스 상에 저장된 이미지들의 편성 및 범주화에 관한 것이다. 특히 더, 본 발명은 디지털 카메라를 포함하는 이미지들을 자동적으로 범주화하기 위해 모바일 컴퓨팅 디바이스 상에서 구동하는 소프트웨어 뿐만 아니라 클라우드 서비스를 통해 구동하는 소프트웨어를 포함하는 시스템, 방법 및 장치에 관한 것이다.
이미지 인식은 이미지(이를테면 사진 또는 비디오 클립)를 분석 및 파악하기 위한, 컴퓨터들에 의해 수행되는, 프로세스이다. 이미지들은 일반적으로 감광 카메라들을 포함하여, 센서들에 의해 생성된다. 각 이미지는 다수(이를테면 수백만)의 픽셀을 포함한다. 각 픽셀은 이미지에서 특정 위치에 대응한다. 추가적으로, 각 픽셀은 통상적으로 하나 이상의 스펙트럼 대역에서의 광도, 물리적 측정치(이를테면 음파 또는 전자기파의 심도, 흡수율 또는 반사율) 등에 대응한다. 픽셀들은 통상적으로 색 공간에서의 색 튜플들로서 표현된다. 예를 들어, 주지의 적색, 녹색, 및 청색(RGB) 색 공간에서, 각 색은 일반적으로 세 개의 값을 갖는 튜플로서 표현된다. RGB 튜플의 세 개의 값은 RGB 튜플에 의해 표현되는 색을 생성하기 위해 함께 추가되는 적색, 녹색, 및 청색 광들을 표현한다.
픽셀들을 설명하는 데이터(이를테면 색)에 더하여, 이미지 데이터는 또한 이미지에서의 객체를 설명하는 정보를 포함할 수 있다. 예를 들어, 이미지에서의 사람의 얼굴은 정면, 30° 좌측면, 또는 45° 우측면일 수 있다. 추가 예로서, 이미지에서의 객체는 집 또는 항공기가 아니라, 자동차이다. 이미지를 파악하는 것은 이미지 데이터에 의해 표현되는 상징 정보를 구분하는 것을 필요로 한다. 이미지들 내에서 색들, 패턴들, 사람 얼굴들, 차량들, 항공기들, 및 다른 객체들, 상징들, 형태들 등을 인식하기 위한 전문화된 이미지 인식 기술들이 개발되어왔다.
장면 파악 또는 인식은 또한 최근 진보해왔다. 장면은 하나보다 많은 객체를 포함하는 실제 주변 또는 환경 뷰이다. 장면 이미지는 다양한 유형(이를테면 사람들, 차량)의 다수의 물리적 객체를 포함할 수 있다. 추가적으로, 장면에서의 각각의 객체들은 서로 또는 그것들의 환경과 상호작용하거나 관련이 있다. 예를 들어, 해변 휴양지의 사진은 세 개의 객체 - 하늘, 바다, 및 해변을 포함할 수 있다. 추가 예로서, 교실의 장면은 일반적으로 책상들, 의자들, 학생들, 및 교사를 포함한다. 장면 파악은 다양한 상황, 이를테면 교통 모니터링, 침입 탐지, 로봇 개발, 표적 광고 등에서 대단히 유익할 수 있다.
얼굴 인식은 디지털 이미지(이를테면 사진) 또는 비디오 프레임(들) 내에서 사람이 컴퓨터에 의해 식별 또는 확인되는 프로세스이다. 얼굴 검출 및 인식 기술들은 예를 들어, 공항들, 거리들, 건물 입구들, 스타디움들, ATM들(현금 자동 입출금기들), 및 다른 공공 및 사적 장소들에서 폭넓게 활용된다. 얼굴 인식은 보통 이미지를 분석 및 파악하는 컴퓨터 상에서 실행하는 소프트웨어 프로그램 또는 애플리케이션에 의해 수행된다.
이미지 내에서 얼굴을 인식하는 것은 이미지 데이터에 의해 표현되는 상징 정보를 구분하는 것을 필요로 한다. 이미지들 내에서 사람 얼굴들을 인식하기 위한 전문화된 이미지 인식 기술들이 개발되어왔다. 예를 들어, 몇몇 얼굴 인식 알고리즘들은 사람 얼굴을 갖는 이미지에서 특징들을 추출함으로써 얼굴 특징들을 인식한다. 알고리즘들은 눈, 코, 입, 턱, 귀 등의 상대 위치, 크기 및 형상을 분석할 수 있다. 그 다음 추출된 특징들을 특징들을 매칭함으로써 이미지에서 얼굴을 식별하기 위해 사용된다.
일반적으로 이미지 인식 그리고 특히 얼굴 및 장면 인식이 최근 진보해왔다. 예를 들어, 주성분 분석(“PCA”; Principal Component Analysis) 알고리즘, 주요인 분석(“LDA”; Linear Discriminant Analysis) 알고리즘, 단일 잔류 교차 타당화(“LOOCV”; Leave One Out Cross-Validation) 알고리즘, K 최근접 이웃(“KNN”; K Nearest Neighbors) 알고리즘, 및 파티클 필터(Particle Filter) 알고리즘이 얼굴 및 장면 인식을 위해 개발 및 지원되어왔다. 이들 예시적인 알고리즘의 설명들은 마슬랜드, CRC Press, 2009의 "알고리즘 중심의 머신 러닝(Machine Learning, An Algorithmic Perspective)" 챕터 3, 8, 10, 15, 페이지 47-90, 167-192, 221-245, 333-361에 보다 완전히 설명되며, 이는 이에 의해 여기에 제출된 자료들을 참조로 원용된다.
최근 발전에도 불구하고, 얼굴 인식 및 장면 인식은 도전해 볼 만한 문제를 제시하는 것으로 판명되었다. 과제의 핵심은 이미지 변경이다. 예를 들어, 동일한 장소 및 시간에, 두 개의 상이한 카메라는 통상적으로 카메라 그것들 자체의 차이, 이를테면 렌즈들 및 센서들의 변화로 인해, 광도가 상이하고 객체 형상이 변경된 두 개의 사진을 생성한다. 추가적으로, 각각의 객체들 간 공간적 관계 및 상호작용은 무한히 많은 변화가 있다. 그밖에도, 한 사람의 얼굴이 무한히 많은 상이한 이미지로 묘사될 수 있다. 현재 얼굴 인식 기술들은 정면에서 20o를 초과하는 각도에서 얼굴 이미지를 취할 때 정확도가 떨어지게 된다. 추가 예로서, 현재 얼굴 인식 시스템들은 얼굴의 표정 변화를 다루기에 비효율적이다.
이미지 인식에 대한 종래 접근법은 입력 이미지에서 이미지 특징들을 획득하고, 획득된 이미지 특징들을 알려진 이미지들의 이미지 특징들과 비교하는 것이다. 예를 들어, 얼굴 인식에 대한 종래 접근법은 입력 이미지에서 얼굴 특징들을 획득하고, 획득된 이미지 특징들을 알려진 이미지들의 얼굴 특징들과 비교하는 것이다. 비교 결과들은 입력 이미지 및 알려진 이미지들 중 하나 간 매치를 구술한다. 얼굴 또는 장면을 인식하는 것에 대한 종래 접근법은 일반적으로 인식 프로세싱 효율을 위해 매칭 정확도를 또는 그 반대로 희생한다.
사람들은 앨범들, 이를테면 휴가, 사적지의 주말 방문 또는 경조사 동안 특정 스톱에 대한 사진 앨범을 수동으로 생성한다. 오늘날 디지털 세상에서, 수동 사진 앨범 생성 프로세스는 시간 소모가 크고 지루한 것으로 판명되었다. 디지털 디바이스들, 이를테면 스마트폰들 및 디지털 카메라들은 보통 대용량 저장소를 갖는다. 예를 들어, 32 기가바이트("GB")의 저장소 카드는 사용자가 수천장의 사진을 찍고 수시간의 비디오를 녹화할 수 있게 한다. 사용자들은 종종 그들의 사진들 및 비디오들을 공유 및 장소에 관계없이 액세스하기 위해 소셜 웹사이트들(이를테면 페이스북, 트위터 등) 및 컨텐츠 호스팅 사이트들(이를테면 드롭박스 및 피카사)에 업로드한다. 디지털 카메라 사용자들은 특정 기준을 기초로 사진들의 앨범들을 생성하기 위한 자동 시스템 및 방법을 바란다. 추가적으로, 사용자들은 그들의 사진들을 인식하고 인식 결과들에 기초하여 사진 앨범들을 자동으로 생성하기 위한 시스템 및 방법을 갖기를 원한다.
모바일 디바이스들에 대한 보다 큰 의존성을 고려할 때, 사용자들은 현재 보통 그들의 모바일 디바이스들 상에 전체 사진 라이브러리들을 유지한다. 모바일 디바이스들 상에서 이용가능한 막대하고 빠르게 증가하는 메모리를 이용하여, 사용자들은 수천장 그리고 수만장까지의 사진들을 모바일 디바이스들 상에 저장할 수 있다. 그러한 다량의 사진을 고려할 때, 사용자가 편성되어 있지 않은 사진집들 중에서 특정 사진의 위치를 찾는 것은 불가능하지는 않지만, 어렵다.
따라서, 본 발명의 목적은 모바일 디바이스 상의 이미지들을 편성하기 위한 시스템, 장치 및 방법을 제공하는 것이다.
본 발명의 다른 목적은 클라우드 서비스에 의해 결정되는 범주들에 기초하여 모바일 디바이스 상의 이미지들을 편성하기 위한 시스템, 장치 및 방법을 제공하는 것이다.
본 발명의 다른 목적은 사용자들이 모바일 컴퓨팅 디바이스 상에 저장된 이미지들의 위치를 찾을 수 있게 하기 위한 시스템, 장치 및 방법을 제공하는 것이다.
본 발명의 다른 목적은 사용자들이 탐색 문자열을 사용하여 모바일 컴퓨팅 디바이스 상에 저장된 이미지들의 위치를 찾을 수 있게 하기 위한 시스템, 장치 및 방법을 제공하는 것이다.
본 발명의 다른 이점들은 당해 기술분야의 통상의 기술자에게 분명해질 것이다. 그러나 시스템 또는 방법이 열거된 이점들 전부를 달성하지 않더라도 본 발명을 실시할 수 있다는 것, 그리고 보호될 발명은 청구항들에 의해 정의된다는 것이 파악되어야 한다.
일반적으로 말하면, 다양한 실시예에 따라, 본 발명은 이미지들을 편성하고 모바일 컴퓨팅 디바이스 상에 존재하는 이미지 저장소에서 검색하기 위한 이미지 편성 시스템을 제공한다. 예를 들어, 스마트폰, 태블릿 컴퓨터, 또는 웨어러블 컴퓨터일 수 있는 모바일 컴퓨팅 디바이스는 처리기, 저장 디바이스, 네트워크 인터페이스, 및 디스플레이를 포함한다. 모바일 컴퓨팅 디바이스는 하나 이상의 서버 및 데이터베이스를 포함할 수 있는 클라우드 컴퓨팅 플랫폼과 인터페이싱할 수 있다.
모바일 컴퓨팅 디바이스는 예를 들어, 모바일 컴퓨팅 디바이스 상의 파일 시스템을 사용하여 구현될 수 있는 이미지 저장소를 포함한다. 모바일 컴퓨팅 디바이스는 또한 이미지 저장소의 이미지로부터 소형화 모델을 생성하기에 적합한 제1 소프트웨어를 포함한다. 소형화 모델은 예를 들어, 썸네일 또는 이미지 시그니처일 수 있다. 소형화 모델은 일반적으로 소형화 모델이 생성된 이미지의 색인을 포함할 것이다. 그 다음 소형화 모델은모바일 컴퓨팅 디바이스로부터 클라우드 플랫폼으로 송신된다.
클라우드 플랫폼은 소형화 모델을 수신하기에 적합한 제2 소프트웨어를 포함한다. 제2 소프트웨어는 소형화 모델이 소형화 모델로 구성된 이미지의 색인을 추출하기에 적합하다. 제2 소프트웨어는 또한 이미지 내에서 인식되는 장면 유형 및 인식되는 임의의 얼굴들에 대응하는 소형화 모델로부터 태그 리스트를 생성하기에 적합하다. 제2 소프트웨어는 생성된 태그 리스트 및 추출된 색인을 포함하는 패킷을 구성한다. 그 다음 패킷은 모바일 컴퓨팅 디바이스로 다시 송신된다.
그 다음 모바일 컴퓨팅 디바이스 상에서 구동하는 제1 소프트웨어가 패킷으로부터 색인 및 태그 리스트를 추출하고 모바일 컴퓨팅 디바이스 상의 데이터베이스에 태그 리스트를 색인과 연관시킨다.
그 다음 사용자는 이미지 저장소에 저장된 이미지들을 탐색하기 위해 모바일 컴퓨팅 디바이스 상에서 구동하는 제3 소프트웨어를 사용할 수 있다. 특히, 사용자는 자연 언어 처리기에 의해 파싱되고 모바일 컴퓨팅 디바이스 상의 데이터베이스를 탐색하기 위해 사용되는 탐색열을 실행 의뢰할 수 있다. 자연 언어 처리기는 순서화된 태그 리스트를 리턴하고, 그에 따라 이미지들이 가장 관련 있는 것으로부터 가장 관련이 적은 것 순으로 디스플레이될 수 있다.
본 발명의 특성 특징들이 특히 청구항들에 언급될 것이지만, 본 발명 그 자체 그리고 그것이 만들어지고 사용될 수 있는 방식이 이의 부분을 형성하는 첨부 도면들과 관련되어 취해지는 이하의 설명을 참조함으로써 보다 양호하게 파악될 수 있으며, 여기서 몇몇 도면에 걸쳐 같은 참조 부호들은 유사한 부분들을 지칭하고 여기서:
도 1은 본 발명에 따라 구성된 얼굴 인식 시스템의 간략화된 블록도이다;
도 2는 최종 얼굴 특징이 본 발명의 교시들에 따라 획득되는 프로세스를 도시하는 흐름도이다;
도 3은 얼굴 인식 모델이 본 발명의 교시들에 따라 획득되는 프로세스를 도시하는 흐름도이다;
도 4는 이미지가 본 발명의 교시들에 따라 인식되는 프로세스를 도시하는 흐름도이다;
도 5는 이미지가 본 발명의 교시들에 따라 인식되는 프로세스를 도시하는 흐름도이다;
도 6은 얼굴 인식 서버 컴퓨터 및 클라이언트 컴퓨터가 공동으로 본 발명의 교시들에 따라 이미지 내에서 얼굴을 인식하는 프로세스를 도시하는 순서도이다;
도 7은 얼굴 인식 서버 컴퓨터 및 클라이언트 컴퓨터가 공동으로 본 발명의 교시들에 따라 이미지 내에서 얼굴을 인식하는 프로세스를 도시하는 순서도이다;
도 8은 얼굴 인식 클라우드 컴퓨터 및 클라우드 컴퓨터가 공동으로 본 발명의 교시들에 따라 이미지와 얼굴을 인식하는 프로세스를 도시하는 순서도이다;
도 9는 얼굴 인식 서버 컴퓨터가 본 발명의 교시들에 따라 소셜 미디어 네트워킹 웹 페이지 상에 포스팅된 사진들 내에서 얼굴을 인식하는 프로세스를 도시하는 순서도이다;
도 10은 얼굴 인식 컴퓨터가 본 발명의 교시들에 따라 얼굴 인식을 개선하는 반복적 프로세스를 도시하는 흐름도이다;
도 11a는 얼굴 인식 컴퓨터가 본 발명의 교시들에 따라 비디오 클립으로부터 얼굴 인식 모델을 획득하는 프로세스를 도시하는 흐름도이다;
도 11b는 얼굴 인식 컴퓨터가 본 발명의 교시들에 따라 비디오 클립에서 얼굴을 인식하는 프로세스를 도시하는 흐름도이다;
도 12는 얼굴 인식 컴퓨터가 본 발명의 교시들에 따라 이미지 내에서 얼굴을 검출하는 프로세스를 도시하는 흐름도이다;
도 13은 얼굴 인식 컴퓨터가 본 발명의 교시들에 따라 얼굴 이미지 내에서 얼굴 특징 위치들을 결정하는 프로세스를 도시하는 흐름도이다;
도 14는 얼굴 인식 컴퓨터가 본 발명의 교시들에 따라 두 개의 이미지 특징의 유사성을 결정하는 프로세스를 도시하는 흐름도이다;
도 15는 본 발명의 교시들에 따른 클라이언트 컴퓨터들의 사시도이다;
도 16은 본 발명에 따라 구성된 이미지 프로세싱 시스템의 간략화된 블록도이다;
도 17은 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 이미지를 인식하는 프로세스를 도시하는 흐름도이다;
도 18a는 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 이미지에 대한 장면 유형을 결정하는 프로세스를 도시하는 흐름도이다;
도 18b는 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 이미지에 대한 장면 유형을 결정하는 프로세스를 도시하는 흐름도이다;
도 19는 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 알려진 이미지들의 집합으로부터 이미지 특징들 및 가중치들을 추출하는 프로세스를 도시하는 흐름도이다;
도 20은 이미지 프로세싱 컴퓨터 및 클라이언트 컴퓨터가 공동으로 본 발명의 교시들에 따라 장면 이미지를 인식하는 프로세스를 도시하는 순서도이다;
도 21은 이미지 프로세싱 컴퓨터 및 클라이언트 컴퓨터가 공동으로 본 발명의 교시들에 따라 장면 이미지를 인식하는 프로세스를 도시하는 순서도이다;
도 22는 이미지 프로세싱 컴퓨터 및 클라이언트 컴퓨터가 공동으로 본 발명의 교시들에 따라 장면 이미지를 인식하는 프로세스를 도시하는 순서도이다;
도 23은 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 소셜 미디어 네트워킹 웹 페이지 상에 포스팅된 사진들에서 장면들을 인식하는 프로세스를 도시하는 순서도이다;
도 24는 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 웹 비디오 서버 상에 호스팅된 비디오 클립에서 장면들을 인식하는 프로세스를 도시하는 순서도이다;
도 25는 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 장면 파악을 개선하는 반복 프로세스를 도시하는 흐름도이다;
도 26은 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 장면 파악을 개선하는 반복 프로세스를 도시하는 흐름도이다;
도 26은 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 장면 파악을 개선하는 반복 프로세스를 도시하는 흐름도이다;
도 27은 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 이미지에 대한 태그들을 프로세싱하는 프로세스를 도시하는 흐름도이다;
도 28은 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 GPS 좌표들에 기초하여 위치명을 결정하는 프로세스를 도시하는 흐름도이다;
도 29는 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 이미지에 대해 장면 인식 및 얼굴 인식을 수행하는 프로세스를 도시하는 흐름도이다;
도 30은 본 발명의 교시들에 따라 맵들을 맵들 상에 디스플레이되는 사진들과 도시하는 두 개의 샘플 스크린샷이다;
도 31은 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 사진 탐색 결과들에 기초하여 사진 앨범을 생성하는 프로세스를 도시하는 흐름도이다;
도 32는 이미지 프로세싱 컴퓨터가 본 발명의 교시들에 따라 자동적으로 사진 앨범을 생성하는 프로세스를 도시하는 흐름도이다;
도 33은 개시된 이미지 편성 시스템의 부분을 구현하는 모바일 컴퓨팅 디바이스의 시스템도이다;
도 34는 개시된 이미지 편성 시스템의 부분을 구현하는 클라우드 컴퓨팅 플랫폼의 시스템도이다;
도 35a는 개시된 이미지 편성 시스템의 부분을 구현하기 위한 모바일 컴퓨팅 디바이스 및 클라우드 컴퓨팅 플랫폼 상에서 구동하는 소프트웨어 구성요소들의 시스템도이다;
도 35b는 개시된 이미지 편성 시스템의 부분을 구현하기 위한 모바일 컴퓨팅 디바이스 상에서 구동하는 소프트웨어 구성요소들의 시스템도이다;
도 36a는 개시된 이미지 편성 시스템의 부분을 구현하는 모바일 컴퓨팅 디바이스 상에서 구동하는 프로세스의 흐름도이다;
도 36b는 개시된 이미지 편성 시스템의 부분을 구현하는 모바일 컴퓨팅 디바이스 상에서 구동하는 프로세스의 흐름도이다;
도 37은 개시된 이미지 편성 시스템의 부분을 구현하는 클라우드 컴퓨팅 플랫폼 상에서 구동하는 프로세스의 흐름도이다;
도 38은 개시된 이미지 편성 시스템의 부분을 구현하는 모바일 컴퓨팅 디바이스 및 클라우드 컴퓨팅 플랫폼의 동작을 도시하는 순서도이다;
도 39는 개시된 이미지 편성 시스템의 부분을 구현하는 모바일 컴퓨팅 디바이스 상에서 구동하는 프로세스의 흐름도이다;
도 40a는 사용자로부터 주문된 탐색열 및 영역 태그를 채택하는 모바일 컴퓨팅 디바이스 상에서 구동하는 프로세스의 흐름도이다; 그리고
도 40b는 주문된 탐색열 및 영역 태그를 데이터베이스에 저장하는 클라우드 컴퓨팅 플랫폼 상에서 구동하는 프로세스의 흐름도이다.
도면들 및 특히 도 1을 참조하면, 하나 이상의 이미지 내에서 얼굴을 인식 또는 식별하기 위한 얼굴 인식 시스템(100)이 도시된다. 시스템(100)은 이미지들, 이미지 특징들, 인식 얼굴 모델들(또는 요약하여 모델들), 및 라벨들을 저장한 데이터베이스(104)에 접속되는 얼굴 인식 서버 컴퓨터(102)를 포함한다. 라벨(이를테면 고유 번호 또는 명칭)은 사람 및/또는 사람의 얼굴을 식별한다. 라벨들은 데이터베이스(104)의 데이터 구조들에 의해 표현될 수 있다. 컴퓨터(102)는 하나 이상의 처리기, 이를테면, 예를 들어, Intel Xeon군의 처리기들의 변종들 중 임의의 처리기, 또는 AMD Opteron군의 처리기들의 변종들 중 임의의 처리기를 포함한다. 덧붙여, 컴퓨터(102)는 하나 이상의 인터페이스, 이를테면, 예를 들어, 기가비트 이더넷 인터페이스, 상당량의 메모리, 및 상당량의 저장소, 이를테면 하드 드라이브를 포함한다. 일 구현예에서, 데이터베이스(104)는 예를 들어, 다수의 이미지, 이미지들로부터 획득되는 이미지 특징들 및 모델들을 저장한다. 컴퓨터(102)는 또한 광역 네트워크, 이를테면 인터넷(110)에 접속된다.
본 출원에서 사용될 때, 이미지 특징은 이미지의 정보의 한 부분을 나타내고 통상적으로 이미지에 적용되는 동작의 결과(이를테면 특징 추출 또는 특징 검출)를 지칭한다. 예시적인 이미지 특징들은 색 히스토그램 특징, 로컬 바이너리 패턴(“LBP”; Local Binary Pattern) 특징, 다중-크기 로컬 바이너리 패턴(“MS-LBP”; Multi-scale Local Binary Pattern) 특징, 기울기 방향성 특징점(“HOG”; Histogram of Oriented Gradients), 및 크기 불변 특징 변환(“SIFT”; Scale-Invariant Feature Transform) 특징들이다.
인터넷(110)을 통해, 컴퓨터(102)는 다양한 컴퓨터, 이를테면 클라이언트들(또한 본 출원에서 사용자들로서도 지칭된다)(120)에 의해 사용되는 클라이언트 또는 소비자 컴퓨터(122)(도 15에 도시된 디바이스들 중 하나일 수 있다)로부터 얼굴 이미지들을 수신한다. 도 15의 디바이스들의 각각은 하우징, 처리기, 네트워킹 인터페이스, 디스플레이 스크린, 상당량의 메모리(이를테면 8 GB RAM), 및 상당량의 저장소를 포함한다. 덧붙여, 디바이스들(1502 및 1504)은 각각 터치 패널을 갖는다. 대안적으로, 컴퓨터(102)는 직접 링크, 이를테면 고속 범용 직렬 버스(USB; Universal Serial Bus) 링크를 통해 얼굴 이미지들을 검색한다. 컴퓨터(102)는 이미지들 내에서 얼굴들을 인식하기 위해 수신된 이미지들을 분석 및 파악한다. 그밖에도, 컴퓨터(102)는 이미지 인식 모델들(또는 요약하여 모델들)을 트레이닝하기 위해 동일한 사람의 얼굴을 포함하는 이미지들의 배치(batch) 또는 비디오 클립을 검색 또는 수신한다.
뿐만 아니라, 얼굴 인식 컴퓨터(102)는 인터넷(110), 이를테면 웹 서버들(112 및 114)을 통해 다른 컴퓨터들로부터 이미지들을 수신할 수 있다. 예를 들어, 컴퓨터(112)는 클라이언트(120)의 얼굴 이미지, 이를테면 페이스북 프로필 사진(또한 본 출원에서 사진들 및 그림들로서도 호환하여 지칭됨)에 대한 URL(Uniform Resource Locator)을 컴퓨터(102)로 전송한다. 이에 응답하여, 컴퓨터(102)는 웹 서버(112)로부터 URL이 가리키는 이미지를 검색한다. 추가 예로서, 컴퓨터(102)는 웹 서버(114)로부터의 프레임들 또는 스틸 이미지 집합(하나 이상을 이미)을 포함하는 비디오 클립을 요청한다. 웹 서버(114)는 파일 및 저장소 호스팅 디바이스, 이를테면 드롭박스에 의해 제공되는 임의의 서버(들)일 수 있다. 추가 실시예에서, 컴퓨터(102)는 이미지들, 이를테면 사진들 및 비디오 클립들을 검색하기 위해 웹 서버들(112 및 114)에 크롤링(crawling)한다. 예를 들어, Perl 언어로 기입된 프로그램이 이미지들을 검색하기 위해 클라이언트(120)의 페이스북 페이지들을 크롤링하기 위해 컴퓨터(102) 상에서 실행될 수 있다. 일 구현예에서, 클라이언트(120)는 그의 페이스북 또는 드롭박스에 액세스하기 위한 허가를 제공한다.
본 교시들의 일 실시예에서, 이미지 내에서 얼굴을 인식하기 위해, 얼굴 인식 컴퓨터(102)는 모든 얼굴 인식 단계를 수행한다. 상이한 구현예에서, 얼굴 인식은 클라이언트-서버 접근법을 사용하여 수행된다. 예를 들어, 클라이언트 컴퓨터(122)가 컴퓨터(102)에 얼굴을 인식할 것을 요청할 때, 클라이언트 컴퓨터(122)는 이미지로부터 특정 이미지 특징들을 생성하고 생성된 이미지 특징들을 컴퓨터(102)에 업로드한다. 그러한 경우, 컴퓨터(102)는 이미지를 수신하거나 업로드된 이미지의 특징들을 생성하지 않고도 얼굴 인식을 수행한다. 대안적으로, 컴퓨터(122)는 데이터베이스(104)로부터 (직접적으로 또는 간접적으로 컴퓨터(102)를 통해) 미리 결정된 이미지 특징들 및/또는 다른 이미지 특징 정보를 다운로드한다. 그에 따라, 이미지에서 얼굴을 인식하기 위해, 컴퓨터(122)는 얼굴 인식을 독자적으로 수행한다. 그러한 경우, 컴퓨터(122)는 이미지들 또는 이미지 특징들을 컴퓨터(102) 상에 업로드하는 것을 회피한다.
추가 구현예에서, 얼굴 인식은 클라우드 컴퓨팅 환경(152)에서 수행된다. 클라우드(152)는 하나보다 많은 지리적 영역, 이를테면 미국의 이치 코스트 및 웨스트 코스트 지방들에 걸쳐 분산되는 다수의 그리고 상이한 유형들의 컴퓨팅 디바이스들을 포함할 수 있다. 예를 들어, 상이한 얼굴 인식 서버(106)에 컴퓨터들(122)이 액세스가능하다. 서버들(102 및 106)은 병행하는 얼굴 인식을 제공한다. 서버(106)는 이미지들, 이미지 특징들, 모델들, 사용자 정보 등을 저장한 데이터베이스(108)에 액세스한다. 데이터베이스들(104, 108)은 데이터 복제, 백업, 인덱싱 등을 지원하는 분산 데이터베이스들일 수 있다. 일 구현예에서, 물리적 이미지들은 데이터베이스(104) 외에 저장된 파일들이나, 데이터베이스(104)는 이미지들에 대한 참조 표시들(이를테면 물리적 경로들 및 파일명들)을 저장한다. 그러한 경우, 본 출원에서 사용될 때, 데이터베이스(104)는 여전히 이미지들을 저장하는 것으로 여겨진다. 추가 예로서, 클라우드(152)의 서버(154), 워크스테이션 컴퓨터(156), 및 데스크탑 컴퓨터(158)는 물리적으로 상이한 지역들 또는 나라들에 위치되고 얼굴 이미지들을 인식하기 위해 컴퓨터(102)와 더불어 작용한다.
추가 구현예에서, 서버들(102 및 106) 양자는 서버들(102 및 106) 상의 부하에 기초하여 얼굴 인식 작업들/요청들을 그것들 사이에 배당하는, 부하 균형 디바이스(118) 뒤에 있다. 얼굴 인식 서버 상의 부하는 예를 들어, 서버가 핸들링 또는 프로세싱하고 있는 현재 얼굴 인식 작업들의 수로 정의된다. 부하는 또한 서버의 CPU(중앙 처리 장치) 부하로 정의될 수 있다. 계속해서 추가 예로서, 부하 균형 디바이스(118)는 얼굴 인식 요청을 핸들링하기 위한 서버를 임의로 선택한다.
도 2는 얼굴 인식 컴퓨터(102)가 최종 얼굴 특징을 획득하는 프로세스(200)를 도시한다. 202에서, 컴퓨터(102) 상에서 실행되는 소프트웨어 애플리케이션이 예를 들어, 데이터베이스(104), 클라이언트 컴퓨터(122) 또는 웨버 서버들(112 또는 114)로부터 이미지를 획득한다. 획득된 입력는 프로세스(200)에 대한 입력 이미지이다. 204에서, 소프트웨어 애플리케이션은 이미지 내에서 사람의 얼굴을 검출한다. 소프트웨어 애플리케이션은 이에 의해 여기에 제출된 자료들을 참조로 원용되는, "Detecting Faces in Images: A Survey", Ming-Hsuan Yang 외, IEEE Transactions on Pattern Analysis and machine Intelligence, 24권, 1호, 2002. 1.에 설명된 바와 같이 입력 이미지 내에서 얼굴을 검출하기 위해 다수의 기술, 이를테면 지식-기반 하향식 방법들, 얼굴들의 불변 특징들에 기초한 상향식 방법들, 템플릿 매칭 방법들, 및 외관-기반 방법들을 이용할 수 있다.
일 구현예에서, 소프트웨어 애플리케이션은 도 12의 1200에 도시된, 다면적 접근법을 사용하여 이미지(202에서 획득된) 내에서 얼굴을 검출한다. 이제 도 12를 참조하면, 1202에서, 소프트웨어 애플리케이션은 얼굴이 이미지에 존재하는지 여부를 결정하기 위해 이미지에 대해 고속 얼굴 검출 프로세스를 수행한다. 일 구현예에서 고속 얼굴 검출 프로세스(1200)는 연속적인 특징들에 기초한다. 고속 얼굴 검출 방법의 일례는 이에 의해 여기에 제출된 자료들을 참조로 원용되는, "Rapid Object Detection using a Boosted Cascade of Simple Features", Paul Viola 외, Computer Vision and Pattern Recognition 2001, IEEE Computer Society Conference, 1권 , 2001에 설명된 바와 같은 다단계 검출 프로세스이다. 다단계 검출 프로세스는 증폭된 일련의 단순 특징들을 사용하는 고속 얼굴 검출 방법이다. 그러나, 고속 얼굴 검출 프로세스는 정확도를 희생하여 속도를 얻는다. 그에 따라, 예시적인 구현예는 다면적 검출 방법을 채용한다.
1204에서, 소프트웨어 애플리케이션은 얼굴이 1202에서 검출되었는지 여부를 결정한다. 그렇지 않은 경우, 1206에서, 소프트웨어 애플리케이션은 이미지에 대한 얼굴 인식을 종료한다. 그렇지 않은 경우, 1208에서, 소프트웨어 애플리케이션은 딥 러닝 프로세스를 사용하는 제2 단계의 얼굴 인식을 수행한다. 딥 러닝 프로세스 또는 알고리즘, 이를테면 딥 빌리프 네트워크(deep belief network)는 입력들의 계층화된 모델들의 학습을 시도하는 머신 러닝 방법이다. 계층들은 상위 레벨 컨셉들이 하위 레벨 컨셉들로부터 획득되는 상이한 레벨들의 컨셉들에 대응한다. 다양한 딥 러닝 알고리즘은 이에 의해 여기에 제출된 자료들을 참조로 원용되는, "Learning Deep Architectures for AI", Yoshua Bengio, Foundations and Trends in Machine Learning, 2권 , 1호, 2009에서 더 설명된다.
일 구현예에서, 모델들은 먼저, 얼굴이 이미지에 존재하는지 여부를 결정하기 위해 모델들이 입력 이미지에 대해 사용 또는 적용되기 전, 얼굴들을 포함하는 이미지 집합으로부터 트레이닝된다. 이미지들 집합으로부터 모델들을 트레이닝하기 위해, 소프트웨어 애플리케이션은 이미지들 집합으로부터 LBP 특징들을 추출한다. 대안적인 실시예들에서, 상이한 이미지 특징들 또는 상이한 치수들의 LBP 특징들이 이미즐 집합으로부터 추출된다. 그 다음 컨볼루션 딥 빌리프 네트워크의 두 계층을 이용하는 딥 러닝 알고리즘이 새로운 특징들을 학습하기 위해 추출된 LBP 특징들에 적용된다. 그 다음 SVM 방법이 학습된 새로운 특징들에 대한 모델들을 트레이닝하기 위해 사용된다.
그 다음 트레이닝된 모델들이 이미지에서 얼굴을 검출하기 위해 이미지로부터 학습된 새로운 특징들에 대해 적용된다. 예를 들어, 이미지의 새로운 특징들은 딥 빌리프 네트워크를 사용하여 학습된다. 일 구현예에서, 하나 또는 두 개의 모델이 트레이닝된다.. 예를 들어, 하나의 모델(또한 본 출원에서 "얼굴이 있는(is-a-face)" 모델로서도 지칭된다)은 얼굴이 이미지에 존재하는지 여부를 결정하기 위해 적용될 수 있다. 얼굴은 얼굴이 있는 모델이 매칭되는 경우 이미지에서 검출된다. 추가 예로서, 상이한 모델(또한 본 출원에서 "얼굴이 없는(is-not-a-face)" 모델로서도 지칭된다)은 얼굴이 이미지에 존재하지 않는지 여부를 결정하기 위해 트레이닝 및 사용된다.
1210에서, 소프트웨어 애플리케이션은 얼굴이 1208에서 검출되었는지 여부를 결정한다. 그렇지 않은 경우, 1206에서, 소프트웨어 애플리케이션은 이러한 이미지에 대한 얼굴 인식을 종료한다. 그렇지 않은 경우, 1212에서, 소프트웨어 애플리케이션은 이미지에 대해 제3 단계의 얼굴 인식을 수행한다. 모델들은 먼저 트레이닝 이미지들 집합으로부터 추출된 LBP 특징들로부터 트레이닝된다. LBP 특징이 이미지로부터 추출된 후, 모델들은 얼굴이 이미지에 존재하는지 여부를 결정하기 위해 이미지의 LBP 특징에 대해 적용된다. 모델들 및 LBP 특징은 또한 본 출원에서 각각 제3 단계 모델들 및 특징으로도 지칭된다. 1214에서, 소프트웨어 애플리케이션은 얼굴이 1212에서 검출되었는지 여부를 체크한다. 그렇지 않은 경우, 1206에서, 소프트웨어 애플리케이션은 이러한 이미지에 대한 얼굴 인식을 종료한다. 그렇지 않은 경우, 1216에서 소프트웨어 애플리케이션은 검출된 얼굴을 포함하는 이미지 내 부분을 식별 및 마킹한다. 일 구현예에서, 얼굴 부분(또한 직사각형서 얼굴 윈도우로서도 지칭된다)은 직사각형 영역이다. 추가 구현예에서, 얼굴 윈도우는 상이한 사람들의 상이한 얼굴들에 대해, 고정된 크기, 이를테면 100x100 픽셀을 갖는다. 추가 구현예에서, 1216에서, 소프트웨어 애플리케이션은 검출된 얼굴의 중심정, 이를테면 얼굴 윈도우의 중앙점을 식별한다. 1218에서, 소프트웨어 애플리케이션은 얼굴이 이미지에서 검출되었거나 존재한다고 표시한다.
다시 도 2로 돌아가면 얼굴이 입력 이미지 내에서 검출된 후, 206에서, 소프트웨어 애플리케이션은 중요한 얼굴 특징점들, 이를테면 눈, 코, 입, 볼, 턱 등의 중앙점들을 결정한다. 그밖에도, 중요한 얼굴 특징점들은 예를 들어, 얼굴의 중앙점을 포함할 수 있다. 추가 구현예에서, 206에서, 소프트웨어 애플리케이션은 중요한 얼굴 특징들의 치수, 이를테면 크기 및 윤곽을 결정한다. 예를 들어, 206에서, 소프트웨어 애플리케이션은 왼쪽 눈의 상하좌우점들을 결정한다. 일 구현예에서, 점의 각각은 입력 이미지의 하나의 코너, 이를테면 왼쪽 상단 코너에 관한 다수의 픽셀 쌍이다.
얼굴 특징 위치들(얼굴 특징점들 및/또는 치수들을 의미한다)은 도 13에 예시된 바와 같은 프로세스(1300)에 의해 결정된다. 이제 도 13을 참조하면, 1302에서, 소프트웨어 애플리케이션은 소스 이미지들 집합으로부터 얼굴 특징들(이를테면 눈, 코, 입 등) 집합에서의 각 얼굴 특징에 대한 LBP 특징 템플릿들 집합을 획득한다. 일 구현예에서, 하나 이상의 LBP 특징이 소스 이미지로부터 획득된다. 하나 이상의 LBP 특징의 각각은 얼굴 특징에 대응한다. 예를 들어, 하나의 왼쪽 눈의 LBP 특징이 소스 이미지 내에서 얼굴의 왼쪽 눈을 포함하는 이미지 영역(또한 본 출원에서 LBP 특징 템플릿 이미지 크기로서도 지칭된다), 이를테면 100x100으로부터 획득된다. 특징 얼굴들에 대해 획득된 그러한 LBP 특징들은 본 출원에서 총괄적으로 LBP 특징 템플릿들로서 지칭된다.
1304에서, 소프트웨어 애플리케이션은 LBP 특징 템플릿의 각각에 대해 컨볼루션 값("p1")을 계산한다. 값(p1)은 대응하는 얼굴 특징, 예를 들어, 이를테면 왼쪽 눈이 소스 이미지 내에서 위치(m, n)에서 나타날 확률을 나타낸다. 일 구현예에서, LBP 특징 템플릿(Ft)에 대해, 대응하는 값(p1)이 반복 프로세스를 사용하여 계산된다. mt및 nt를 LBP 특징 템플릿의 LBP 특징 템플릿 이미지 크기로 표기하자. 추가적으로, (u, v)를 소스 이미지 내 픽셀의 좌표들 또는 위치들로 표기하자. (u, v)는 소스 이미지의 왼쪽 상단 코너로부터 측정된다. 소스 이미지 내 각 이미지 영역((u, v) (u+mt,v+nt))에 대해, LBP 특징(Fs)이 획득된다. 그 다음 Ft및 Fs의 내적(p(u, v))이 계산된다. p(u, v)는 대응하는 얼굴 특징(이를테면 왼쪽 눈)이 소스 이미지 내에서 위치(u, v)에서 나타날 확률로서 여겨진다. p(u, v)의 값들은 정규화될 수 있다. 그 다음 (m, n)이 argmax( p(u, v) )로서 결정된다.argmax는 최대에 대한 인수를 의미한다.
보통, 얼굴 중심점(또는 상이한 얼굴점)에 대한 얼굴 특징, 이를테면 입 또는 코의 상대 위치는 대부분 얼굴에 대해 동일하다. 그에 따라, 각 얼굴 특징은 대응하는 공통 상대 위치를 갖는다. 1306에서, 소프트웨어 애플리케이션은 공통 상대 위치에서, 대응하는 얼굴 특징이 검출된 얼굴에 나타나거나 또는 존재한다는 얼굴 특징 확률("p2")을 추정 및 결정한다. 일반적으로, 얼굴들이 있는 이미지들에서의 특정 얼굴 특징의 위치(m, n)는 확률 분포(p2(m, n))에 따른다. 확률 분포(p2(m, n))가 2차원 가우시안 분포인 경우, 얼굴 특징이 존재할 가장 공산이 있는 위치는 가우시안 분포의 피크가 위치하는 곳이다. 그러한 2차원 가우시안 분포의 평균 및 분산은 알려진 얼굴 이미지들 집합에서의 경험적 얼굴 특징 위치들에 기초하여 수립될 수 있다.
1308에서, 검출된 얼굴에서의 각 얼굴 특징에 대해, 소프트웨어 애플리케이션이 대응하는 LBP 특징 템플릿들의 컨볼루션 값들의 각각 및 얼굴 특징 확률을 사용하여 각 위치(m, n)에 대해 매칭 점수를 계산한다. 예를 들어, 매칭 점수는 p1(m,n) 및 p2(m,n)의 적, 즉, p1 x p2이다. 1310에서, 검출된 얼굴에서의 각 얼굴 특징에 대해, 소프트웨어 애플리케이션은 최대 얼굴 특징 매칭 점수를 결정한다. 1312에서, 검출된 얼굴에서의 각 얼굴 특징에 대해, 소프트웨어 애플리케이션은 최대 매칭 점수에 대응하는 LBP 특징 템플릿에 대응하는 얼굴 특징 위치를 선택함으로써 얼굴 특징 위치를 결정한다. 상기 예의 경우, 대응하는 얼굴 특징의 위치로서 argmax( p1(m,n) * p2(m,n) )이 취해진다.
다시 도 2로 돌아가면, 중요한 얼굴 특징들의 결정된 점들 및/또는 치수에 기초하여, 208에서, 소프트웨어 애플리케이션은 얼굴을 수사 얼굴 부분들, 이를테면 왼쪽 눈, 오른쪽 눈, 및 코로 분리한다. 일 구현예에서, 각 얼굴 부분은 고정된 크기, 이를테면 17x17 픽셀의 직사각형 또는 정사각형 영역이다. 얼굴 특징 부분들의 각각에 대해, 210에서, 소프트웨어 애플리케이션은 이미지 특징들, 이를테면 LBP 또는 HOG 특징들 집합을 추출한다. 추출될 수 있는 다른 이미지 특징은 210에서, 피라미드 변환 도메인("PLBP"; pyramid transform domain)으로 확장되는 LBP이다. 계층적인 공간적 피라미드들의 LBP 정보를 캐스케이딩함으로써, PLBP 기술어들은 텍스처 해상도 변화들을 고려한다. PLBP 기술어들은 텍스처 표현에 효율적이다.
종종, 단일 유형의 이미지 특징은 이미지로부터 관련 정보를 획득하거나 입력 이미지에서 얼굴을 인식하기에 불충분하다. 대신 두 개 이상의 상이한 이미지 특징이 이미지로부터 추출된다. 두 개 이상의 상이한 이미지 특징은 일반적으로 하나의 단일 이미지 특징 벡터로서 편성된다. 일 구현예에서, 다수(이를테면 10개 이상)의 이미지 특징이 얼굴 특징 부분들로부터 추출된다. 예를 들어, 1x1 픽셀 셀 및/또는 4x4 픽셀 셀에 기초한 LBP 특징들이 얼굴 특징 부분으로부터 추출된다.
각 얼굴 특징 부분에 대해, 212에서, 소프트웨어 애플리케이션은 이미지 특징들 집합을 하위 부분 특징으로 연결시킨다. 예를 들어, 이미지 특징들 집합은 Mx1 또는 1xM 벡터(여기서 M은 집합에서의 이미지 특징들의 수이다)로 연결된다. 214에서, 소프트웨어 애플리케이션은 모든 얼굴 특징 부분의 Mx1 또는 1xM 벡터들을 얼굴에 대한 완전한 특징들로 연결시킨다. 예를 들어, N(양수, 이를테면 6)개의 얼굴 특징 부분이 존재하는 경우, 완전한 특징들은 (N*M)x1 벡터 또는 1x(N*M) 벡터이다. 본 출원에서 사용될 때, N*M은 정수들(N 및 M)의 승적을 의미한다. 216에서, 소프트웨어 애플리케이션은 입력 이미지 내 얼굴에 대한 최종 특징을 획득하기 위해 완전한 특징에 대해 차원 축소를 수행한다. 최종 특징은 완전한 특징의 이미지 특징들 부분 집합이다. 일 구현예에서, 216에서, 소프트웨어 애플리케이션은 이미지 특징들의 부분 집합을 선택하고 이미지 특징들의 부분 집합에서 각 이미지 특징에 대한 이미지 특징 가중치를 획득하기 위해 완전한 특징에 대해 PCA 알고리즘을 적용한다. 이미지 특징 가중치들은 이미지 특징들 부분 집합에 대응하고, 이미지 특징 가중치 메트릭을 포함한다.
PCA는 본질적으로 고차원으로 만들어진 데이터 집합을 H-차원(여기서 H는 고차원으로 만들어진 데이터의 대부분을 포함하는 초평면의 차원들의 수의 추정치이다)으로 축소시킬 수 있는 간단한 방법이다. 데이터 집합에서의 각 데이터 원소는 공분산 매트릭스의 고유 벡터들 집합으로 표현된다. 본 교시들에 따르면, 이미지 특징들의 부분 집합은 완전한 특징의 이미지 특징들을 개략적으로 표현하기 위해 선택된다. 이미지 특징들의 부분 집합에서의 어떤 이미지 특징들은 얼굴 인식에서 다른 이미지 특징들보다 유의미할 수 있다. 뿐만 아니라, 그에 따라 고유 값들의 집합은 이미지 특징 가중치 메트릭, 즉, 이미지 특징 거리 메트릭을 나타낸다. PCA는 이에 의해 여기에 제출된 자료들을 참조로 원용되는, "Machine Learning and Pattern Recognition Principal Component Analysis", David Barber, 2004에서 설명된다.
수학적으로, 이미지 특징 거리 메트릭을 획득하기 위해 입력 이미지들의 많은 집합에 PCA가 적용될 수 있는 프로세스는 다음과 같이 표현될 수 있다:
먼저, 입력 데이터의 평균(m) 및 공분산 매트릭스(S)가 계산된다:
Figure 112017009301331-pct00001
가장 큰 고유 값들을 갖는 공분산 매트릭스(s)의 고유 벡터들(e1, …, eM)이 위치된다. 매트릭스(E = [e1, …, eM])는 그것의 열들을 포함하여 가장 큰 고유 값들로 구성된다.
각 고차 데이터 지점(y μ )의 저차원 표현은 다음 식에 의해 결정될 수 있다:
Figure 112017009301331-pct00002
상이한 구현예에서, 소프트웨어 애플리케이션은 이미지 특징들의 부분 집합을 선택하고 대응하는 이미지 특징 가중치들을 획득하기 위해 완전한 특징에 대해 LDA를 적용한다. 추가 구현예에서, 218에서, 소프트웨어 애플리케이션은 최종 특징 및 대응하는 이미지 특징 가중치들을 데이터베이스(104)로 저장한다. 추가적으로, 218에서, 소프트웨어 애플리케이션은 최종 특징을 입력 이미지에서 얼굴을 식별하는 라벨과 연관시킴으로써 최종 특징을 라벨링한다. 일 구현예에서, 연관은 관계형 데이터베이스를 갖는 표에서의 레코드에 의해 표현된다.
도 3을 참조하면, 서버 컴퓨터(102) 상에서 실행되는 소프트웨어 애플리케이션에 의해 수행되는 모델 트레이닝 프로세스(300)가 예시된다. 302에서, 소프트웨어 애플리케이션은 알려진 사람, 이를테면 클라이언트(120)의 얼굴을 포함하는 상이한 이미지들의 집합을 검색한다. 예를 들어, 클라이언트 컴퓨터(122)는 이미지들의 집합을 서버(102) 또는 클라우드 컴퓨터(154)로 업로드한다. 추가 예로서, 클라이언트 컴퓨터(122)는 서버(122) 상에 호스팅되는 이미지들의 집합을 가리키는 URL들의 집합을 서버(102)로 업로드한다. 그 다음 서버(102)는 서버(122)로부터 이미지들의 집합을 검색한다. 검색된 이미지들의 각각에 대해, 304에서, 소프트웨어 애플리케이션은 예를 들어, 프로세스(200)의 요소들을 수행함으로써 최종 특징을 추출한다.
306에서, 소프트웨어 애플리케이션은 얼굴 인식을 위한 인식 모델을 획득하기 위해 최종 특징들의 집합에 대해 하나 이상의 모델 트레이닝 알고리즘(이를테면 SVM)을 수행한다. 인식 모델은 얼굴을 보다 정확하게 표현한다. 308에서, 인식 모델은 데이터베이스(104)에 저장된다. 추가적으로, 308에서, 소프트웨어 애플리케이션은 인식 모델과 연관되는 얼굴을 식별하는, 인식 모델 및 라벨 간 연관을 데이터베이스(104)로 저장한다. 다시 말해서, 308에서, 소프트웨어 애플리케이션이 인식 모델을 라벨링한다. 일 구현예에서, 연관은 관계형 데이터베이스 내 표에서의 레코드에 의해 표현된다.
예시적인 모델 트레이닝 알고리즘들은 K-평균 클러스터링, 서포트 벡터 머신("SVM"; Support Vector Machine), 메트릭 러닝, 딥 러닝 등이다. K-평균 클러스터은 관측치들(즉, 본 출원에서 모델들)을 각 관찰치가 최근접 평균을 갖는 클러스터에 속하는 k(양수)개의 클러스터로 나눈다. K-평균 클러스터링의 컨셉은 다음 식에 의해 더 예시된다:
Figure 112017009301331-pct00003
관측치들의 집합(x1,x2,…,xn)은 k개의 집합({S1,S2,…,Sk})으로 나뉜다. k개의 집합은 클러스터 내 적산을 최소화하도록 결정된다. K-평균 클러스터링 방법은 보통 두 개의 단계, 부여 단계 및 업데이트 단계 간 반복 방식으로 수행된다. k 평균의 초기 집합(m1 (1),…,mk (1))이 주어지면, 두 개의 단계는 아래와 같이 제시된다:
Figure 112017009301331-pct00004
이러한 단계 동안, 각 xp는 정확하게 하나의 S(t)에 부여된다. 다음 단계는 새로운 클러스터들에서 관측치들의 중심들일 새로운 평균들을 계산한다.
Figure 112017009301331-pct00005
일 구현예에서, K-평균 클러스터링은 얼굴들을 그룹화하고 잘못된 얼굴들을 제거하기 위해 사용된다. 예를 들어, 클라이언트(120)가 그의 얼굴이 있는 오십(50) 개의 이미지를 업로드할 때, 그는 예를 들어, 다른 사람의 얼굴이 있는 세(3) 개의 이미지를 잘못 업로드할 수 있다. 클라이언트(120)의 얼굴에 대한 인식 모델을 트레이닝하기 위해서는, 인식 모델이 업로드된 이미지들로부터 트레이닝될 때 50개의 이미지로부터 3개의 잘못된 이미지를 제거하는 것이 바람직하다. 추가 예로서, 클라이언트(120)가 상이한 사람들의 다수의 얼굴 이미지를 업로드할 때, K-평균 클러스터링은 이들 이미지에 포함된 얼굴들에 기초하여 다수의 이미지를 그룹화하기 위해 사용된다.
SVM 방법이 SVM 분류자를 트레이닝 또는 획득하기 위해 사용된다. 트레이닝된 SVM 분류자는 SVM 결정 함수, 트레이닝된 임계치 및 다른 트레이닝된 파라미터들에 의해 식별된다. SVM 분류자는 모델들 중 하나와 연관되고 그에 대응한다. SVM 분류자 및 대응하는 모델은 데이터베이스(104)에 저장된다.
머신 러닝 알고리즘들, 이를테면 KNN은 보통 두 개의 이미지 특징이 서로 얼마나 밀접한지를 측정하기 위해 거리 메트릭에 의존한다. 다시 말해서, 이미지 특징 거리, 이를테면 유클리드 거리는 하나의 얼굴 이미지가 다른 미리 결정된 얼굴 이미지에 얼마나 밀접하게 매칭하는지를 측정한다. 거리 메트릭 러닝 프로세스로부터 획득되는, 학습된 메트릭은 얼굴 인식의 성능 및 정확도를 상당히 개선할 수 있다. 하나의 학습된 그러한 거리 메트릭은 알려진 이미지에 대한 알려지지 않은 이미지의 유사도를 추산하는 마할라노비스 거리이다. 예를 들어, 마할라노비스 거리는 입력 얼굴 이미지가 알려진 사람의 얼굴 이미지에 얼마나 밀접하게 매칭되는지를 측정하기 위해 사용될 수 있다. 값들의 그룹의 평균 값(μ = (μ1, μ2 ,…, μN) T )의 벡터, 및 공분산 매트릭(S)이 주어질 때, 마할라노비스 거리는 다음 식으로 제시된다:
Figure 112017009301331-pct00006
다양한 마할라노비스 거리 및 거리 메트릭 러닝 방법들은 이에 의해 여기에 제출된 자료들을 참조로 원용되는, “Distance Metric Learning: A Comprehensive Survey,” Liu Yang, 2006. 5. 19.에 더 설명된다. 일 구현예에서, 마할라노비스 거리는 도 14에 도시된 바와 같은 딥 러닝 프로세스(1400)를 사용하여 학습 또는 획득된다. 도 14를 참조하면, 1402에서, 컴퓨터, 이를테면 서버(102)에 의해 수행되는 소프트웨어 애플리케이션은 입력으로서, 두 개의 특징(X 및 Y)을 검색 또는 수신한다. 예를 들어, X 및 Y는 동일한 알려진 얼굴이 있는 두 개의 상이한 이미지의 최종 특징들이다. 1404에서, 소프트웨어 애플리케이션은 다층 딥 빌리프 네트워크에 기초하여, 입력 특징들(X 및 Y)로부터 새로운 이미지 특징을 획득한다. 일 구현예에서, 1404에서, 딥 빌리프 네트워크의 제1 계층은 특징들(X 및 Y)의 차(X-Y)를 사용한다.
제2 계층에서는, 특징들(X 및 Y)의 적(XY)이 사용된다. 제3 계층에서는, 특징들(X 및 Y)의 컨볼루션이 사용된다. 다층 딥 빌리프 네트워크의 계층들 및 신경들에 대한 가중치들은 트레이닝 얼굴 이미지들로부터 트레이닝된다. 딥 러닝 프로세스의 마지막으로서, 커널 함수가 획득된다. 다시 말해서, 커널 함수(K(X, Y))는 딥 러닝 프로세스의 출력이다. 상기 마할라노비스 거리 식은 커널 함수의 하나의 형태이다.
1406에서, 모델 트레이닝 알고리즘, 이를테면 SVM 방법이 딥 러닝 프로세스의 출력(K(X, Y))에 대한 모델들을 트레이닝하기 위해 사용된다. 그 다음 두 개의 입력 이미지 특징이 동일한 얼굴로부터 획득되는지, 즉, 그것들이 동일한 얼굴을 나타내고 표현하는지를 결정하기 위해 트레이닝된 모델들이 두 개의 이미지 특징(X1 및 Y1)의 딥 러닝 프로세싱의 특정 출력(K(X1, Y1))에 적용된다.
모델 트레이닝 프로세스는 특정 얼굴에 대한 최종 또는 인식 모델을 획득하기 위해 이미지들의 집합에 대해 수행된다. 모델이 이용가능하면, 그것이 이미지 내에서 얼굴을 인식하기 위해 사용된다. 인식 프로세스는 얼굴 인식 프로세스(400)이 도시된 도 4를 참조하여 더 예시된다. 402에서, 서버(102) 상에서 실행되는 소프트웨어 애플리케이션이 얼굴 인식을 위해 이미지를 검색한다. 이미지는 클라이언트 컴퓨터(122)로부터 수신되거나 서버들(112 및 114)로부터 검색될 수 있다. 대안적으로, 이미지는 데이터베이스(104)로부터 검색된다. 추가 구현예에서, 402에서, 이미지들의 배치(batch)가 얼굴 인식을 위해 검색된다. 404에서, 소프트웨어 애플리케이션은 데이터베이스(104)로부터 모델들의 집합을 검색한다. 모델들은 예를 들어, 모델 트레이닝 프로세스(300)로부터 생성된다. 406에서, 소프트웨어 애플리케이션은 검색된 이미지로부터 최종 특징을 추출하기 위해 프로세스(200)를 수행, 또는 다른 프로세스 또는 이를 수행하기 위한 다른 소프트웨어 애플리케이션을 호출한다. 검색된 이미지가 얼굴을 포함하지 않는 경우, 프로세스(400)는 406에서 종료한다.
408에서, 소프트웨어 애플리케이션은 비교 점수들의 집합을 생성하기 위해 최종 피처에 모델들의 각각을 적용한다. 다시 말해서, 모델들은 비교 점수들을 생성 또는 계산하도록 최종 특징에 작용할 수 있다. 410에서, 소프트웨어 애플리케이션은 비교 점수들의 집합으로부터 가장 큰 점수를 선택한다. 그 다음 가장 높은 점수를 출력하는 모델에 대응하는 얼굴이 입력 이미지에서의 얼굴로서 인식된다. 다시 말해서, 402에서 검색된 입력 이미지에서의 얼굴이 가장 높은 점수에 대응하는 또는 그와 연관되는 모델에 의해 식별되는 것으로서 인식된다. 각 모델은 자연인의 얼굴과 연관 또는 라벨링된다. 입력 이미지에서의 얼굴이 인식될 때, 그 다음 입력 이미지는 인식된 얼굴을 식별하는 라벨로 라벨링 및 연관된다. 그에 따라, 얼굴 또는 얼굴을 포함하는 이미지를 라벨링하는 것은 이미지를, 가장 높은 점수를 갖는 모델과 연관된 라벨과, 연관시킨다. 인식된 얼굴을 갖는 사람의 연관 및 개인 정보가 데이터베이스(104)에 저장된다.
412에서, 소프트웨어 애플리케이션은 얼굴 및 검색된 이미지를, 가장 높은 점수를 갖는 모델과 연관된 라벨로, 라벨링한다. 일 구현예에서, 각 라벨 및 연관은 관계형 데이터베이스 내 표에서의 레코드이다. 다시 410으로 돌아가면, 선택된 가장 높은 점수가 매우 낮은 점수일 수 있다. 예를 들어, 얼굴이 검색된 모델들과 연관된 얼굴들과 상이한 경우, 가장 높은 점수는 보다 낮은 점수일 공산이 있다. 그러한 경우, 추가 구현예에서, 가장 높은 점수가 미리 결정된 임계치와 비교된다. 가장 높은 점수가 임계치 아래인 경우, 414에서, 소프트웨어 애플리케이션은 검색된 이미지에서 얼굴이 인식되지 않는다고 표시한다.
추가 구현예에서, 416에서, 소프트웨어 애플리케이션은 얼굴 인식을 위해 검색된 이미지가 정확하게 인식 및 라벨링되는지를 체크한다. 예를 들어, 소프트웨어 애플리케이션은 얼굴이 정확하게 인식되는 클라이언트(120)로부터 사용자 확인을 검색한다. 그렇다면, 418에서, 소프트웨어 애플리케이션이 최종 특징 및 라벨(기초가 되는 사람 및 얼굴 및 이미지 간 연관을 의미한다)을 데이터베이스(104)로 저장한다. 그렇지 않으면, 420에서, 소프트웨어 애플리케이션은 예를 들어, 클라이언트(120)로부터, 얼굴을 기초가 되는 사람과 연관시키는 새로운 라벨을 검색한다. 418에서, 소프트웨어 애플리케이션은 최종 특징, 인식 모델들 및 새로운 라벨을 데이터베이스(104)로 저장한다.
그 다음 저장된 최종 특징들 및 라벨들이 모델들을 개선 및 업데이트하기 위해 모델 트레이닝 프로세스(300)에 의해 사용된다. 예시적인 개선 및 정정 프로세스(1000)가 도 10을 참조하여 도시된다. 1002에서, 소프트웨어 애플리케이션은 알려진 사람, 이를테면 클라이언트(120)의 얼굴이 있는 입력 이미지를 검색한다. 1004에서, 소프트웨어 애플리케이션은 입력 이미지에 대해 얼굴 인식, 이를테면 프로세스(400)를 수행한다. 1006에서, 소프트웨어 애플리케이션은 얼굴이 정확하게 인식되는지를, 이를테면 클라이언트(120)로부터의 확인을 구함으로써 결정한다. 그렇지 않은 경우, 1008에서, 소프트웨어 애플리케이션은 입력 이미지를 클라이언트(120)로 라벨링 및 연관시킨다. 1010에서, 소프트웨어 애플리케이션은 입력 이미지에 대해 모델 트레이닝 프로세스(300)를 수행하고, 획득된 인식 모델 및 라벨을 데이터베이스(104)로 저장한다. 추가 구현예에서, 소프트웨어 애플리케이션은 클라이언트(120)의 얼굴이 있는 다른 알려진 이미지들과 함께 입력 이미지에 대해 트레이닝 프로세스(300)를 수행한다. 얼굴이 정확하게 인식되는 경우, 애플리케이션 어플리케이션은 또한 1012에서, 입력 이미지를 라벨링하고, 임의로 클라이언트(120)에 대한 인식 모델을 강화하기 위해 트레이닝 프로세스(300)를 수행한다.
다시 도 4로 돌아가면, 얼굴 인식 프로세스(400)가 이미지 특징 모델들에 기초하여, 프로세스(300)로부터 트레이닝 및 생성된다. 모델 트레이닝 프로세스(300)는 일반적으로 막대한 양의 계산 자원, 이를테면 CPU 사이클 및 메모리를 요구한다. 그에 따라 프로세스(300)는 상대적으로 시간 소모가 크고 자원이 많이 드는 프로세스이다. 특정 경우들, 이를테면 실시간 얼굴 인식에서, 보다 빠른 얼굴 인식 프로세스가 바람직하다. 일 구현예에서, 각각 214 및 216에서 추출된, 최종 특징들 및/또는 완전한 특징들이 데이터베이스(104)에 저장된다. 이미지들 내에서 얼굴들을 인식하기 위해 최종 특징들 또는 완전한 특징들을 사용하는 프로세스(500)가 도 5를 참조하여 도시된다. 일 구현예에서, 프로세스(500)는 서버(102) 상에서 실행되는 소프트웨어 애플리케이션에 의해 수행되고, 주지된 KNN 알고리즘을 이용한다.
502에서, 소프트웨어 애플리케이션이 예를 들어, 데이터베이스(104), 클라이언트 컴퓨터(122) 또는 서버(112)로부터 얼굴 인식을 위한 얼굴이 있는 이미지를 검색한다. 추가 구현예에서, 502에서, 소프트웨어 애플리케이션은 이미지들의 배치(batch)를 얼굴 인식을 위해 검색한다. 504에서, 소프트웨어 애플리케이션은 데이터베이스(104)로부터 최종 특징들을 검색한다. 대안적으로, 완전한 특징들이 얼굴 인식을 위해 검색 및 사용된다. 최종 특징들의 각각은 알려진 얼굴 또는 사람에 대응하거나 그를 식별한다. 다시 말해서, 최종 특징들의 각각이 라벨링된다. 일 실시예에서는, 단지 최종 특징들이 얼굴 인식을 위해 사용된다. 대안적으로는 단지 완전한 특징들이 사용된다. 506에서, 소프트웨어 애플리케이션은 KNN 알고리즘의 정수(K) 값을 설정한다. 일 구현예에서, K 값은 일(1)이다. 그러한 경우, 최근접 이웃이 선택된다. 다시 말해서, 데이터베이스(104)에서의 알려진 얼굴들의 가장 밀접한 매치가 502에서 검색된 이미지에서 인식된 얼굴로서 선택된다. 508에서, 소프트웨어 애플리케이션은 이미지로부터 최종 특징을 추출한다. 완전한 특징들이 얼굴 인식을 위해 사용되는 경우, 510에서, 소프트웨어 애플리케이션은 이미지로부터 완전한 특징들을 획득한다.
512에서, 소프트웨어 애플리케이션은 K 최근접 매칭 얼굴들을 검색된 이미지에서의 얼굴로 선택하기 위해 KNN 알고리즘을 수행한다. 예를 들어, 최근접 매치들은 검색된 이미지의 최종 특징 및 504에서 검색된 최종 특징들 간 이미지 특징 거리들에 기초하여 선택된다. 일 구현예에서, 이미지 특징 거리들은 가장 작은 것에서 가장 큰 것을 순위가 매겨지고; K개의 얼굴은 처음 K개의 가장 작은 이미지 특징 거리에 대응한다. 예를 들어,
Figure 112017009301331-pct00007
이 순위 점수로서 지정될 수 있다. 그에 따라, 보다 높은 점수가 보다 근접한 매치를 나타낸다. 이미지 특징 거리들은 유클리드 거리들 또는 마할라노비스 거리들일 수 있다. 514에서, 소프트웨어 애플리케이션은 이미지 내 얼굴을 최근접 매칭 얼굴로 라벨링 및 연관시킨다. 516에서, 소프트웨어 애플리케이션은 라벨 및 연관에 의해 나타나는 매치를 데이터베이스(104)로 저장한다.
본 교시들의 대안적인 실시예에서, 얼굴 프로세스들(400 및 500)이 클라이언트-서버 또는 클라우드 컴퓨팅 프레임워크에서 수행된다. 이제 도 6 및 도 7을 참조하면, 두 개의 클라이언트-서버 기반 얼굴 인식 프로세스가 각각 600 및 700에 도시된다. 602에서, 클라이언트 컴퓨터(122) 상에서 실행되는 클라이언트 소프트웨어 애플리케이션이 얼굴 인식을 위한 입력 이미지로부터 완전한 특징들의 집합을 추출한다. 입력 이미지는 클라이언트 컴퓨터(122)의 저장 디바이스로부터 메모리로 로딩된다. 추가 구현에서, 602에서, 클라이언트 소프트웨어 애플리케이션은 완전한 특징들의 집합으로부터 최종 특징들의 집합을 추출한다. 604에서, 클라이언트 소프트웨어 애플리케이션은 이미지 특징들을 서버(102)로 업로드한다. 컴퓨터(102) 상에서 실행되는 서버 소프트웨어 애플리케이션은 606에서, 클라이언트 컴퓨터(122)로부터 이미지 특징들의 집합을 수신한다.
608에서, 서버 소프트웨어 애플리케이션은 입력 이미지 내에서 얼굴을 인식하기 위해 프로세스들(400 및/또는 500)의 요소들을 수행한다. 예를 들어, 608에서, 서버 소프트웨어 애플리케이션은 얼굴을 인식하기 위해 프로세스(500)의 요소들(504, 506, 512, 514, 516)을 수행한다. 512에서, 서버 소프트웨어 애플리케이션은 인식 결과를 클라이언트 컴퓨터(122)로 송신한다. 예를 들어, 결과는 입력 이미지에 사람 얼굴이 없다거나, 이미지 내에서 얼굴이 인식되지 않는다거나, 또는 얼굴이 특정 개인의 얼굴로 인식된다고 표시할 수 있다.
상이한 구현예에서, 도 7에 도시된 바와 같은 방법(700)을 참조하여 예시되는 바와 같이, 클라이언트 컴퓨터(122)는 하나 이상의 입력 이미지 내에서 얼굴을 인식하기 위해 프로세싱의 대부분을 수행한다. 702에서, 클라이언트 컴퓨터(122) 상에서 실행되는 소프트웨어 애플리케이션은 알려진 얼굴들의 최종 특징들 또는 모델들에 대한 요청을 서버 컴퓨터(102)로 전송한다. 대안적으로, 클라이언트 소프트웨어 애플리케이션은 하나보다 많은 데이터 카테고리를 요청한다. 예를 들어, 클라이언트 소프트웨어 애플리케이션은 알려진 얼굴들의 최종 특징들 및 모델들을 요청한다. 그밖에도, 클라이언트 소프트웨어 애플리케이션은 단지 특정 사람들에 대한 그러한 데이터를 요청할 수 있다.
704에서, 서버 소프트웨어 애플리케이션은 요청을 수신하고, 데이터베이스(104)로부터 요청된 데이터를 검색한다. 706에서, 서버 소프트웨어 애플리케이션은 요청된 데이터를 클라이언트 컴퓨터(122)로 전송한다. 708에서, 클라이언트 소프트웨어 애플리케이션은 예를 들어, 얼굴 인식을 위한 이미지 데이터로부터 최종 특징을 추출한다. 입력 이미지는 클라이언트 컴퓨터(122)의 저장 디바이스로부터 메모리로 로딩된다. 710에서, 클라이언트 소프트웨어 애플리케이션은 입력 이미지 내에서 얼굴을 인식하기 위해 프로세스들(400 및/또는 500)의 요소들을 수행한다. 예를 들어, 710에서, 클라이언트 소프트웨어 애플리케이션이 입력 이미지에서 얼굴을 인식하기 위해 프로세스(500)의 요소들(504, 506, 512, 514, 516)을 수행한다.
얼굴 인식 프로세스(400 또는 500)는 또한 클라우드 컴퓨팅 환경(152)에서도 수행될 수 있다. 하나의 그러한 예시적인 구현예가 도 8에 도시된다. 802에서, 얼굴 인식 서버 컴퓨터(102) 상에서 실행되는 서버 소프트웨어 애플리케이션이 입력 이미지 또는 입력 이미지에 대한 URL을 클라우드 컴퓨터(154, 156 또는 158) 상에서 실행되는 클라우드 소프트웨어 애플리케이션으로 전송한다. 804에서, 클라우드 소프트웨어 애플리케이션은 입력 이미지 내에서 얼굴을 인식하기 위해 프로세스(400 또는 500)의 요소들의 일부 또는 전부를 수행한다. 806에서, 클라우드 소프트웨어 애플리케이션은 인식 결과를 서버 소프트웨어 애플리케이션으로 리턴한다. 예를 들어, 결과는 입력 이미지에 사람 얼굴이 없다거나, 이미지 내에서 얼굴이 인식되지 않는다거나, 또는 얼굴이 특정 개인의 얼굴로 인식된다고 표시할 수 있다.
대안적으로, 클라이언트 컴퓨터(122)는 이미지 또는 비디오 클립 내에서 얼굴을 인식하기 위한 요소들(702, 704, 706, 708, 710)을 수행하기 위해, 클라우드 컴퓨터(154), 이를테면 클라우드 컴퓨터(154)와 통신 및 더불어 작용한다. 추가 구현예에서, 부하 균형 메커니즘이 서버 컴퓨터들 및 클라우드 컴퓨터들 사이에 얼굴 인식 요청들을 분배하기 위해 활용 및 사용된다. 예를 들어, 유틸리티 툴이 각 서버 컴퓨터 및 클라우드 컴퓨터 상의 처리 부담을 모니터링하고, 새로운 얼굴 인식 요청 또는 작업을 수행하기 위해 보다 적은 처리 부담을 갖는 서버 컴퓨터 또는 클라우드 컴퓨터를 선택한다. 추가 구현예에서, 모델 트레이닝 프로세스(300)가 또한 클라우드-서버 또는 클라우드 아키텍처에서 수행된다.
이제 얼굴 인식 컴퓨터(102)가 소셜 미디어 네트워킹 서버 또는 파일 저장 서버, 이를테면 서버(112 또는 114)에 의해 호스팅 및 제공되는 사진 이미지들 또는 비디오 클립들에서 얼굴들을 인식하는 프로세스(900)를 예시하는 순서도인, 도 9를 참조한다. 902에서, 클라이언트 컴퓨터(122) 상에서 실행되는 클라이언트 소프트웨어 애플리케이션이 소셜 미디어 웹사이트, 이를테면 페이스북, 또는 파일 저장 호스팅 사이트, 이를테면 드롭박스 상에 호스팅된 그의 사진들 또는 비디오 클립들 상의 얼굴 인식에 대한 요청을 발행한다. 일 구현예에서, 클라이언트 소프트웨어 애플리케이션은 또한 소셜 미디어 웹사이트 또는 파일 저장 호스팅 사이트에 그의 계정 액세스 정보(이를테면 로그인 자격들)를 제공한다. 904에서, 서버 컴퓨터(102) 상에서 실행되는 서버 소프트웨어 애플리케이션이 서버(112)로부터 사진들 또는 비디오 클립들을 검색한다. 예를 들어, 서버 소프트웨어 애플리케이션은 사진들을 검색하기 위해 서버(112) 상에서 클라이언트(122)와 연관된 웹 페이지들을 크롤링한다. 추가 예로서, 서버 소프트웨어 애플리케이션은 HTTP(하이퍼텍스트 전송 프로토콜) 요청들을 통해 사진들 또는 비디오 클립들을 요청한다.
906에서, 사진(122)는 사진들 또는 비디오 클립들을 서버(102)에 리턴한다. 908에서, 서버 소프트웨어 애플리케이션은 이를테면 검색된 사진들 또는 비디오 클립들에 대해, 프로세스(300, 400 또는 500)를 수행함으로써, 얼굴 인식을 수행한다. 예를 들어, 프로세스(300)가 수행될 때, 클라이언트(120)의 얼굴을 설명하는 이미지 특징들 또는 모델이 획득되어 데이터베이스(104)에 저장된다. 910에서, 서버 소프트웨어 애플리케이션은 인식 결과 또는 알림을 클라이언트 소프트웨어 애플리케이션으로 리턴한다.
이제 도 11을 참조하면, 얼굴 인식 모델이 비디오 클립에서 획득되는 프로세싱(1100A)이 도시된다. 1102에서, 서버(102) 상에서 실행되는 소프트웨어 애플리케이션이 얼굴 인식을 위해, 스틸 비디오 프레임들 또는 이미지들의 스트림 또는 시퀀스를 포함하는 비디오 클립을 검색한다. 1102에서, 애플리케이션은 또한 모델을 획득하기 위해 비디오 클립으로부터 대표 프레임들 또는 모든 프레임의 집합을 선택한다. 1104에서, 소프트웨어 애플리케이션은 얼굴을 검출하고 제1 프레임, 예를 들어, 이를테면 선택된 프레임들의 집합의 제1 또는 제2 프레임으로부터 얼굴의 최종 특징을 획득하기 위해, 프로세스, 이를테면 프로세스(200)를 수행한다. 추가적으로, 1104에서, 서버 애플리케이션은 검출된 얼굴을 포함하는 제1 프레임 내에서 얼굴 영역 또는 윈도우를 식별한다. 예를 들어, 얼굴 윈도우는 직사각형 또는 정사각형 형상에 있다.
1106에서, 선택된 프레임이 집합에서의 다른 프레임들의 각각에 대해, 서버 애플리케이션은 1104에서 식별된 얼굴 윈도우에 대응하는 이미지 영역으로부터 최종 특징을 추출 또는 획득한다. 예를 들어, 1104에서 식별된 얼굴 윈도우가 픽셀 좌표 쌍들((101, 242) 및 (300, 435))에 의해 표시되는 경우, 1106에서, 다른 프레임들에서의 대응하는 얼굴 윈도우들의 각각이 픽셀 좌표 쌍들((101, 242) 및 (300, 435))에 의해 정의된다. 추가 구현예에서, 얼굴 윈도우는 1104에서 식별된 얼굴 윈도우보다 크거나 작다. 예를 들어, 1104에서 식별된 얼굴 윈도우가 픽셀 좌표 쌍들((101, 242) 및 (300, 435))에 의해 표시되는 경우, 다른 프레임들에서의 대응하는 얼굴 윈도우들의 각각은 픽셀 좌표 쌍들((91, 232) 및 (310, 445))에 의해 정의된다. 후자의 두 개의 픽셀 좌표 쌍은 1104의 얼굴 영역보다 큰 이미지 영역을 정의한다. 1108에서, 서버 애플리케이션은 식별된 얼굴의 인식 모델을 획득하기 위해 최종 특징들에 대해 모델 트레이닝을 수행한다. 1110에서, 서버 애플리케이션은 인식된 얼굴을 갖는 개인을 나타내는 모델 및 라벨을 데이터베이스(104)로 저장한다.
얼굴이 비디오 클립에서 인식되는 프로세스(1100B)는 도 11을 참조하여 예시된다. 1152에서, 서버(102) 상에서 실행되는 소프트웨어 애플리케이션이 예를 들어, 데이터베이스(104)로부터 얼굴 인식 모델들의 집합을 검색한다. 일 구현예에서, 애플리케이션을 또한 검색된 모델들과 연관된 라벨들을 검색한다. 1154에서, 애플리케이션이 얼굴 인식을 위해, 스틸 비디오 프레임들 또는 이미지들의 스트림 또는 시퀀스를 포함하여, 비디오 클립을 검색한다. 1156에서, 애플리케이션은 비디오 클립으로부터 대표 프레임들의 집합을 선택한다. 1158에서, 검색될 모델들을 사용하여, 애플리케이션은 얼굴을 인식하기 위해 선택된 프레임들의 각각에 대해 얼굴 인식 프로세스를 수행한다. 인식될 얼굴의 각각은 모델에 대응한다. 그밖에도, 1158에서, 인식될 얼굴들의 각각에 대해, 애플리케이션은 얼굴을 인식된 얼굴에 대응하는 모델의 연관된 라벨과 연관시킨다. 1160에서, 애플리케이션은 비디오 클립에서의 얼굴을 선택된 프레임과 연관된 라벨들 사이에서 최고 빈도를 갖는 라벨로 라벨링한다.
도 16을 참조하면, 장면 이미지를 파악하기 위한 이미지 프로세싱 시스템(1600)이 도시된다. 일 구현예에서, 시스템(1600)은 시스템(100)의 기능들을, 그리고 그 반대로 수행할 수 있다. 시스템(1600)은 이미지들(또는 이미지 파일들에 대한 참조 표시들) 및 이미지 특징들을 저장한 데이터베이스(1604)에 접속되는 이미지 프로세싱 컴퓨터(1602)를 포함한다. 일 구현예에서, 데이터베이스(1604)는 예를 들어, 다수의 이미지, 및 이미지들로부터 획득되는 이미지 특징들을 저장한다. 뿐만 아니라, 이미지들은 장면 유형들, 이를테면 해변 휴양지 또는 강으로 범주화된다. 컴퓨터(1602)는 또한 광역 네트워크, 이를테면 인터넷(1610)에 접속된다. 인터넷(1610)을 통해, 컴퓨터(1602)는 클라이언트들(1620)에 의해 사용되는 다양한 컴퓨터, 이를테면 클라이언트(소비자 또는 사용자) 컴퓨터(1622)(도 15에 도시된 디바이스들 중 하나일 수 있다)로부터 장면 이미지들을 수신한다. 대안적으로, 컴퓨터(1602)는 직접 링크, 이를테면 고속 USB 링크를 통해 장면 이미지들을 검색한다. 컴퓨터(1602)는 이미지들의 장면 유형들을 결정하기 위해 수신된 장면 이미지들을 분석 및 파악한다.
뿐만 아니라, 이미지 프로세싱 컴퓨터(1602)는 웹 서버들(1606 및 1608)로부터 이미지들을 수신할 수 있다. 예를 들어, 컴퓨터(1622)는 장면 이미지(이를테면 웹 서버(1606) 상에 호스팅된 제품에 대한 광고 사진)에 대한 URL을 컴퓨터(1602)로 전송한다. 이에 응답하여, 컴퓨터(1602)는 웹 서버(1606)로부터 URL이 가리키는 이미지를 검색한다. 추가 예로서, 컴퓨터(1602)는 웹 서버(1608) 상에 호스팅된 여행 웹사이트로부터 해변 휴양지 장면 이미지를 요청한다. 본 교시들의 일 실시예에서, 클라이언트(1620)는 그의 컴퓨터(1622) 상에 소셜 네트워킹 웹 페이지를 로딩한다. 소셜 네트워킹 웹 페이지는 호스트 서버(1612) 상에 호스팅되는 사진들의 집합을 포함한다. 클라이언트(1620)가 사진들의 집합 내 장면들의 인식을 요청할 때, 컴퓨터(1602)는 소셜 미디어 네트워킹 서버(1612)로부터 사진들의 집합을 검색하고 사진들에 대해 장면 파악을 수행한다. 추가 예로서, 클라이언트(1620)가 그의 컴퓨터(1622) 상에서 웹 비디오 서버(1614) 상에 호스팅된 비디오 클립을 시청할 때, 그녀는 컴퓨터(1602)에 비디오 클립에서의 장면 유형을 인식하기를 요청한다. 그에 따라, 컴퓨터(1602)는 웹 비디오 서버(1614)로부터 비디오 프레임들의 집합을 검색하고 비디오 프레임들에 대해 장면 파악을 수행한다.
일 구현예에서, 장면 이미지를 파악하기 위해, 이미지 프로세싱 컴퓨터(1602)가 모든 장면 인식 단계를 수행한다. 상이한 구현예에서, 장면 인식은 클라이언트-서버 접근법을 사용하여 수행된다. 예를 들어, 컴퓨터(1622)가 컴퓨터(1602)에 장면 이미지를 파악할 것을 요청할 때, 컴퓨터(1622)는 장면 이미지로부터 특정 이미지 특징들을 생성하고 생성된 이미지 특징들을 컴퓨터(1602)에 업로드한다. 그러한 경우, 컴퓨터(1602)는 이미지를 수신하거나 업로드된 이미지의 특징들을 생성하지 않고도 장면 파악을 수행한다. 대안적으로, 컴퓨터(1622)는 데이터베이스(1604)로부터 (직접적으로 또는 간접적으로 컴퓨터(1602)를 통해) 미리 결정된 이미지 특징들 및/또는 다른 이미지 특징 정보를 다운로드한다. 그에 따라, 장면 이미지를 인식하기 위해, 컴퓨터(1622)는 이미지 인식을 독자적으로 수행한다. 그러한 경우, 컴퓨터(1622)는 이미지들 또는 이미지 특징들을 컴퓨터(1602) 상에 업로드하는 것을 회피한다.
추가 구현예에서, 장면 이미지 인식은 클라우드 컴퓨팅 환경(1632)에서 수행된다. 클라우드(1632)는 하나보다 많은 지리적 영역, 이를테면 미국의 이치 코스트 및 웨스트 코스트 지방들에 걸쳐 분산되는 다수의 그리고 상이한 유형들의 컴퓨팅 디바이스들을 포함할 수 있다. 예를 들어, 클라우드(1632)의 서버(1634), 워크스테이션 컴퓨터(1636), 및 데스크탑 컴퓨터(1638)는 물리적으로 상이한 지역들 또는 나라들에 위치되고 장면 이미지들을 인식하기 위해 컴퓨터(1602)와 더불어 작용한다.
도 17은 이미지 프로세싱 컴퓨터(1602)가 이미지를 분석 및 파악하는 프로세스(1700)를 도시한다. 1702에서, 컴퓨터(1602) 상에서 실행되는 소프트웨어 애플리케이션이 장면 인식을 위해 클라이언트 컴퓨터(1622)로부터 네트워크(이를테면 인터넷(1610))를 통해 소스 장면 이미지를 수신한다. 대안적으로, 소프트웨어 애플리케이션은 상이한 네트워킹된 디바이스, 이를테면 웹 서버(1606 또는 1608)로부터 소스 장면 이미지를 수신한다. 종종, 장면 이미지는 상이한 객체들의 다수의 이미지를 포함한다. 예를 들어, 일몰 이미지는 하늘에서 빛나는 태양의 이미지 및 경관의 이미지를 포함할 수 있다. 그러한 경우, 태양 및 경관에 대해 별도로 장면 파악을 수행하는 것이 바람직할 수 있다. 그에 따라, 1704에서, 소프트웨어 애플리케이션은 장면 인식을 위해 소스 이미지를 다수의 이미지로 세그먼트화할지 여부를 결정한다. 그렇다면, 1706에서, 소프트웨어 애플리케이션은 소스 장면 이미지를 다수의 이미지로 세그먼트화한다.
다양한 이미지 세그먼트화 알고리즘(이를테면 Normalized Cut 또는 해당 기술분야의 통상의 기술자들에게 알려진 다른 알고리즘)이 소스 장면 이미지를 세그먼트화하기 위해 이용될 수 있다. 하나의 그러한 알고리즘이 이에 의해 여기에 제출된 자료들을 참조로 원용되는, “Adaptive Background Mixture Models for Real-Time Tracking,” Chris Stauffer, W.E.L Grimson, The Artificial Intelligence Laboratory, 에 설명된다 Normalized Cut 알고리즘은 또한 이에 의해 여기에 제출된 자료들을 참조로 원용되는, “Normalized Cuts and Image Segmentation,” Jianbo Shi 및 Jitendra Malik, IEEE Transactions on Pattern Analysis and Machine Intelligence, 22권 , 8호 2000. 8., 에 설명된다.
예를 들어, 소스 장면 이미지가 해변 휴양지 사진인 경우, 소프트웨어 애플리케이션은 사진을 세 개의 이미지 - 하늘 이미지, 바다 이미지, 및 해변 이미지로 나누기 위해 배경 제거(Background Subtraction) 알고리즘을 적용할 수 있다. 다양한 배경 제거 알고리즘이 이에 의해 여기에 제출된 자료들을 참조로 원용되는, “Segmenting Foreground Objects from a Dynamic Textured Background via a Robust Kalman Filter,” Jing Zhong 및 Stan Sclaroff, Proceedings of the Ninth IEEE International Conference on Computer Vision (ICCV 2003) 2-Volume Set 0-7695-1950-4/03; “Saliency, Scale and Image Description,” Timor Kadir, Michael Brady, International Journal of Computer Vision 45(2), 83-105, 2001; 및 “GrabCut - Interactive Foreground Extraction using Iterated Graph Cuts,” Carsten Rother, Vladimir Kolmogorov, Andrew Blake, ACM Transactions on Graphics (TOG), 2004에 설명된다.
이어서, 소프트웨어 애플리케이션은 장면 파악을 위해 세 개의 이미지의 각각을 분석한다. 추가 구현예에서, 이미지 세그먼트들의 각각은 공간적 파라미터화 프로세스를 통해 복수의 이미지 블록으로 분리된다. 예를 들어, 복수의 이미지 블록은 네(4) 개, 열여섯(16) 개, 또는 이백오십육(256) 개의 이미지 블록을 포함한다. 그 다음 장면 파악 방법들이 구성 이미지 블록의 각각에 대해 수행된다. 1708에서, 소프트웨어 애플리케이션은 장면 파악을 위해 다수의 이미지 중 하나를 입력 이미지로서 선택한다. 다시 1704로 돌아가면, 소프트웨어 애플리케이션이 소스 장면 이미지를 단일 이미지로서 분석 및 프로세싱하기로 결정하는 경우, 1710에서, 소프트웨어 애플리케이션은 장면 파악을 위해 소스 장면 이미지를 입력 이미지로서 선택한다. 1712에서, 소프트웨어 애플리케이션은 데이터베이스(1604)로부터 거리 메트릭을 검색한다. 일 실시예에서, 거리 메트릭은 이미지 특징들의 집합(또는 벡터)를 나타내고 이미지 특징들의 집합에 대응하는 이미지 특징 가중치들의 집합을 포함한다.
일 구현예에서, 다수(이를테면 수천개 이상)의 이미지 특징이 이미지들로부터 추출된다. 예를 들어, 1x1 픽셀 셀 및/또는 4x4 픽셀 셀에 기초한 LBP 특징들이 장면 파악을 위해 이미지들로부터 추출된다. 추가 예로서, 정지 이미지의 추정 깊이는 이미지를 캡처한 센서 및 이미지에서의 객체의 표면 간 물리적 거리를 정의한다. 삼각측량법이 추정 깊이 특징을 추출하기 위한 주지된 기술이다. 종종, 단일 유형의 이미지 특징은 이미지로부터 관련 정보를 획득하거나 이미지를 인식하기에 불충분하다. 대신 두 개 이상의 상이한 이미지 특징이 이미지로부터 추출된다. 두 개 이상의 상이한 이미지 특징은 일반적으로 하나의 단일 이미지 특징 벡터로서 편성된다. 모든 가능한 특징 벡터들의 집합이 특징 공간을 구성한다.
거리 메트릭은 알려진 이미지들의 집합으로부터 추출된다. 이미지들의 집합은 입력 이미지에 대한 장면 유형 및/또는 매칭 이미지를 찾기 위해 사용된다. 이미지들의 집합은 하나 이상의 데이터베이스(이를테면 데이터베이스(1604))에 저장될 수 있다. 상이한 구현예에서, 이미지들의 집합은 클라우드 컴퓨팅 환경(이를테면 클라우드(1632))에 저장되고 액세스가능하다. 추가적으로, 이미지들의 집합은 다수의 이미지, 이를테면, 예를 들어, 2백만개의 이미지를 포함할 수 있다. 뿐만 아니라, 이미지들의 집합은 장면 유형들로 범주화된다. 예시적인 일 구현예에서, 2백만개의 이미지의 집합은 수십개의 범주 또는 유형, 이를테면, 예를 들어, 해변, 사막, 꽃, 음식, 숲, 실내, 산, 밤_생활, 바다, 공원, 레스토랑, 강, 암벽-등반, 눈, 교외, 일몰, 도시, 및 물로 분리된다. 뿐만 아니라, 장면 이미지는 하나보다 많은 장면 유형으로 라벨링 및 연관될 수 있다. 예를 들어, 바다-해변 장면 이미지는 해변 유형 및 해안 유형 양자를 갖는다. 이미지에 대한 다수의 장면 유형은 예를 들어, 보는 사람에 의해 제공되는 신뢰 수준에 의해 순서화된다.
거리 메트릭의 추출은 도 19에 도시된 바와 같은 트레이닝 프로세스(1900)를 참조하여 더 예시된다. 이제 도 19를 참조하면, 1902에서, 소프트웨어 애플리케이션은 데이터베이스(1604)로부터 이미지들의 집합을 검색한다. 일 구현예에서, 이미지들의 집합은 장면 유형들로 범주화된다. 1904에서, 소프트웨어 애플리케이션은 이미지들의 집합에서의 각 이미지로부터 원 이미지 특징들(이를테면 색 히스토그램 및 LBP 이미지 특징들)의 집합을 추출한다. 원 이미지 특징들의 각 집합은 동일한 수의 이미지 특징을 포함한다. 추가적으로, 원 이미지 특징들의 각 집합에서의 이미지 특징들은 동일한 유형들의 이미지 특징들을 갖는다. 예를 들어, 원 이미지 특징들의 집합들의 각각의 제1 이미지 특징들은 동일한 유형의 이미지 특징을 갖는다. 추가 예로서, 원 이미지 특징들의 집합들의 각각의 마지막 이미지 특징들은 동일한 유형의 이미지 특징을 갖는다. 그에 따라, 원 이미지 특징들의 집합들은 본 출원에서 이미지 특징들의 대응하는 집합들로서 지칭된다.
원 이미지 특징들의 각 집합은 일반적으로 다수의 이미지 특징을 포함한다. 추가적으로, 원 이미지 특징들의 대부분은 비용이 많이 드는 계산들을 초래하고/하거나 장면 파악에 유의미하지 않다. 그에 따라, 1906에서, 소프트웨어 애플리케이션은 장면 인식을 위한 이미지 특징들의 부분 집합을 선택하기 위해 차원 축소 프로세스를 수행한다. 일 구현예에서, 1906에서, 소프트웨어 애플리케이션은 이미지 특징들의 부분 집합들을 선택하고 이미지 특징들 부분 집합들에서 각 이미지 특징에 대한 이미지 특징 가중치를 획득하기 위해 원 이미지 특징들의 집합들에 대해 PCA 알고리즘을 적용한다. 이미지 특징 가중치들은 이미지 특징 가중치 메트릭을 포함한다. 상이한 구현예에서, 소프트웨어 애플리케이션은 이미지 특징들의 부분 집합을 선택하고 대응하는 이미지 특징 가중치들을 획득하기 위해 원 이미지 특징들의 집합들에 대해 LDA를 적용한다.
이미지 특징들의 선택된 부분 집합으로부터 획득되는 이미지 특징 가중치 메트릭이 본 출원에서 모델로서 지칭된다. 다수의 모델이 원 이미지 특징들의 집합들로부터 획득될 수 있다. 상이한 모델들은 보통 상이한 이미지 특징들의 부분 집합들 및/또는 이미지 특징에 의해 트레이닝된다. 따라서, 몇몇 모델이 다른 모델들보다 원 이미지들의 집합들을 보다 정확하게 표현할 수 있다. 그에 따라, 1908에서, 교차 타당화 프로세스가 장면 인식을 위한 다수의 모델로부터 하나의 모델을 선택하기 위해 이미지들의 집합에 적용된다. 교차 타당화는 상이한 모델들의 장면 파악의 결과를 평가하기 위한 기술이다. 교차 타당화 프로세스는 이미지들의 집합을 상보적 부분집합들로 분할하는 것을 수반한다. 장면 파악 모델이 이미지들 중 하나의 부분 집합으로부터 획득되는 한편 이미지들의 부분 집합이 타당화를 위해 사용된다.
예를 들어, 교차 타당화 프로세스가 이미지들의 집합에 대해 수행될 때, 제1 모델하 장면 인식 정확도는 구십 퍼센트(90%)인 한편 제2 모델하 장면 인식 정확도는 팔십 퍼센트(80%)이다. 그러한 경우, 제1 모델이 제2 모델보다 정확하게 원 이미지들의 집합들을 표현하고, 그에 따라 제2 모델에 우선하여 선택된다. 일 실시예에서, 단일 잔류 교차 타당화 알고리즘이 1908에서 적용된다.
1910에서, 소프트웨어 애플리케이션은 이미지 특징 메트릭 및 이미지 특징들의 부분 집합들을 포함하는 선택된 모델을 데이터베이스(1604)로 저장한다. 상이한 구현예에서, 단지 하나의 모델이 트레이닝 프로세스(1900)에서 획득된다. 그러한 경우, 단계(1908)는 트레이닝 프로세스(1900)에서 수행되지 않는다.
다시 도 17로 돌아가면, 1714에서, 소프트웨어 애플리케이션은 입력 이미지로부터, 거리 메트릭에 의해 표시되는 이미지 특징들의 집합에 대응하는 입력 이미지 특징들의 집합을 추출한다. 본 출원에서 사용될 때, 입력 이미지 특징들의 집합이 거리 메트릭에 대응한다고 한다. 1716에서, 소프트웨어 애플리케이션이 이미지 장면 유형들에 의해 범주화되는 이미지들의 집합에서의 각 이미지에 대한 이미지 특징들의 집합(프로세스(1900)를 사용하여 생성됨)을 검색한다. 이미지 특징들의 검색된 집합들의 각각은 거리 메트릭에 의해 표시되는 이미지 특징들의 집합에 대응한다. 일 구현예에서, 이미지 특징들의 검색된 집합들이 데이터베이스(1604) 또는 클라우드(1632)에 저장된다.
1718에서, 거리 메트릭을 사용하여, 소프트웨어 애플리케이션이 입력 이미지 특징들의 집합 및 이미지들의 집합에 대한 이미지 특징들의 집합들의 각각 간 이미지 특징 거리를 계산한다. 일 구현예에서, 이미지 특징들의 두 개의 집합 간 이미지 특징 거리는 거리 메트릭에 포함되는 가중치들이 적용된 두 개의 이미지 특징 벡터 간 유클리드 거리이다. 1720에서, 계산된 이미지 특징 거리들에 기초하여, 소프트웨어 애플리케이션은 입력 이미지에 대한 장면 유형을 결정하고, 장면 유형의 입력 이미지로의 부여가 데이터베이스(1604)에 기입된다. 그러한 결정 프로세스는 도 18a 및 도 18b를 참조하여 더 예시된다.
도 18a를 참조하면, 정확한 이미지 인식을 위해 이미지들의 부분 집합을 선택하기 위한 프로세스(1800A)가 도시된다. 일 구현예에서, 소프트웨어 애플리케이션은 이미지들의 부분 집합을 선택하기 위해 KNN 알고리즘을 이용한다. 1802에서, 소프트웨어 애플리케이션은 정수(K) 값(이를테면 5 또는 10)을 설정한다. 1804에서, 소프트웨어 애플리케이션은 1716에서 계산된 K개의 가장 작은 이미지 특징 거리 및 대응하는 K개의 이미지를 선택한다. 다시 말해서, 선택된 K개의 이미지는 상위 K개의 매치이고, 계산된 이미지 특징 거리들의 면에서 입력 이미지에 가장 밀접하다. 1806에서, 소프트웨어 애플리케이션은 K개의 이미지의 장면 유형들(이를테면 해변 휴양지 또는 산)을 결정한다. 1808에서, 소프트웨어 애플리케이션은 K개의 이미지가 동일한 장면 이미지 유형을 갖는지 여부를 체크한다. 그렇다면, 1810에서, 소프트웨어 애플리케이션은 K개의 이미지의 장면 유형을 입력 이미지에 부여한다.
그렇지 않으면, 1812에서, 소프트웨어 애플리케이션은 보다 추상적인 장면 유형을 생성하기 위해 K개의 이미지의 장면 유형들을 병합하기 위한 예를 들어, 자연 언어 프로세싱 기술들을 적용한다. 예를 들어, K개의 이미지의 절반이 바다-해변 유형을 갖는 한편 다른 절반은 호수-해안 유형을 갖는다면, 소프트웨어 애플리케이션은 1812에서 해안 유형을 생성한다. 자연 언어 프로세싱은 이에 의해 여기에 제출된 자료들을 참조로 원용되는, “Artificial Intelligence, aModernApproach,”챕터 23, 페이지 691-719, Russell, Prentice Hall, 1995에서 설명된다. 1814에서, 소프트웨어 애플리케이션은 보다 추상적인 장면 유형이 성공적으로 생성되었는지 여부를 체크한다. 그렇다면, 1816에서, 소프트웨어 애플리케이션은 보다 추상적인 장면 유형을 입력 이미지에 부여한다. 추가 구현예에서, 소프트웨어 애플리케이션은 K개의 이미지의 각각을 생성된 장면 유형으로 라벨링한다.
다시 1814로 돌아가서, 보다 추상적인 장면 유형이 성공적으로 생성된 경우, 1818에서, 소프트웨어 애플리케이션은 각 결정된 장면 유형에 대한 K개의 이미지에서의 이미지들의 수를 계산한다. 1820에서, 소프트웨어 애플리케이션은 가장 큰 계산된 수의 이미지가 속하는 장면 유형을 식별한다. 1822에서, 소프트웨어 애플리케이션은 식별된 장면 유형을 입력 이미지에 부여한다. 예를 들어, K가 정수 십(10)이고, K개의 이미지 중 여덟(8) 개가 장면 유형 숲을 가지며, K개의 이미지 중 다른 두(2) 개가 장면 유형 공원을 갖는 경우, 가장 큰 계산된 수의 이미지를 갖는 장면 유형은 장면 유형 숲이고 가장 큰 계산된 수는 8이다. 이러한 경우, 소프트웨어 애플리케이션은 장면 유형 숲을 입력 이미지에 부여한다. 추가 구현예에서, 소프트웨어 애플리케이션은 장면 배정에 대한 신뢰 수준을 부여한다. 예를 들어, 위에서 설명된 예에서, 입력 이미지를 장면 유형 숲으로 정확하게 라벨링한 것의 신뢰 수준은 팔십 퍼센트(80%)이다.
대안적으로, 1720에서, 소프트웨어 애플리케이션은 도 18b를 참조하여 예시될 바와 같은 차별 분류(discriminative classification) 방법(1800B)을 수행함으로써 입력 이미지에 대한 장면 유형을 결정한다. 이제 도 18b를 참조하면, 1832에서, 소프트웨어 애플리케이션은 데이터베이스(1604)에 저장된 각 장면 유형에 대해, 복수의 이미지로부터 이미지 특징들을 추출한다. 예를 들어, 해변 유형의 수만개의 이미지가 1832에서 프로세싱된다. 그러한 각 이미지의 추출된 이미지 특징들은 거리 메트릭에 의해 표시되는 이미지 특징들의 집합에 대응한다. 1834에서, 소프트웨어 애플리케이션은 분류 모델을 획득하기 위한 거리 메트릭 및 장면 유형의 추출된 이미지 특징들에 대해 머신 러닝, 이를테면 주지된 서포트 벡터 머신(SVM)을 수행한다. 상이한 구현예에서, 1832 및 1834가 이미지 트레이닝 프로세스 동안 상이한 소프트웨어 애플리케이션에 의해 수행된다.
상이한 구현예에서, 1720에서, 소프트웨어 애플리케이션은 방법(1800A) 및 방법(1800B) 양자의 요소들을 수행함으로써 입력 이미지에 대한 장면 유형을 결정한다. 예를 들어, 소프트웨어 애플리케이션은 상위 K개의 매칭 이미지를 선택하기 위해 방법(1800A)을 채용한다. 그 후, 소프트웨어 애플리케이션은 매칭된 상위 K개의 이미지에 대해 방법(1800B)의 몇몇 요소, 이를테면 요소(1836, 1838, 1840)를 수행한다.
1836에서, 획득된 분류 모델들이 매칭 점수들을 생성하기 위해 입력 이미지 특징들에 적용된다. 일 구현예에서, 각 점수는 입력 이미지 및 분류 모델의 기초 장면 유형 간 매칭 확률이다. 1838에서, 소프트웨어 애플리케이션은 가장 높은 매칭 점수들을 갖는 다수(이를테면 8 또는 12)의 장면 유형을 선택한다. 1840에서, 소프트웨어 애플리케이션은 입력 이미지에 대한 하나 이상의 장면 유형을 결정하기 위해 선택된 장면 유형들을 가지치기한다. 일 실시예에서, 소프트웨어 애플리케이션은 입력 이미지에 대한 장면 유형들을 식별하기 위해 자연 언어 프로세싱 기술들을 수행한다.
추가 구현예에서, 소스 장면 이미지가 다수의 이미지로 세그먼트화되고 장면 파악이 다수의 이미지의 각각에 대해 수행되는 경우, 소프트웨어 애플리케이션은 다수의 이미지의 각각에 대해 부여된 장면 유형을 분석하고 장면 유형을 소스 장면 이미지에 부여한다. 예를 들어, 소스 장면 이미지가 두 개의 이미지로 세그먼트화되고 두 개의 이미지가 각각 바다 이미지 및 해변 이미지로서 인식되는 경우, 소프트웨어 애플리케이션은 소스 장면 이미지를 바다_해변 유형으로 라벨링한다.
본 교시들의 대안적인 실시예에서, 장면 파악 프로세스들(1700)이 클라이언트-서버 또는 클라우드 컴퓨팅 프레임워크를 사용하여 수행된다. 이제 도 20 및 도 21을 참조하면, 두 개의 클라이언트-서버 기반 장면 인식 프로세스가 각각 2000 및 2100에 도시된다. 2002에서, 컴퓨터(1622) 상에서 실행되는 클라이언트 소프트웨어 애플리케이션이 입력 이미지로부터, 1714에서 추출된 입력 이미지 특징들의 집합에 대응하는 이미지 특징들의 집합을 추출한다. 2004에서, 클라이언트 소프트웨어 애플리케이션은 이미지 특징들을 컴퓨터(1602) 상에서 실행되는 서버 소프트웨어 애플리케이션으로 업로드한다. 2006에서, 소프트웨어 애플리케이션은 예를 들어, 프로세스(1700)의 1712, 1716, 1718, 1720을 수행함으로써, 입력 이미지에 대한 하나 이상의 장면 유형을 결정한다. 2008에서, 서버 소프트웨어 애플리케이션은 하나 이상의 장면 유형을 클라이언트 소프트웨어 애플리케이션에 전송한다.
상이한 구현예에서, 도 21에 도시된 바와 같은 방법(2100)을 참조하여 예시되는 바와 같이, 클라이언트 컴퓨터(1622)는 장면 이미지를 인식하기 위해 프로세싱의 대부분을 수행한다. 2102에서, 클라이언트 컴퓨터(1622) 상에서 실행되는 클라이언트 소프트웨어 애플리케이션은 이미지 프로세싱 컴퓨터(1602)에 데이터베이스(1604)에 저장된 알려진 이미지들에 대한 이미지 특징들의 집합들 및 거리 메트릭에 대한 요청을 전송한다. 이미지 특징들의 집합들의 1714에서 추출된 입력 이미지 특징들의 집합에 대응한다. 2104에서, 컴퓨터(1602) 상에서 실행되는 서버 소프트웨어 애플리케이션은 데이터베이스(1604)로부터 이미지 특징들의 집합들 및 거리 메트릭을 검색한다. 2106에서, 서버 소프트웨어 애플리케이션은 이미지 특징들의 집합들 및 거리 메트릭을 클라이언트 소프트웨어 애플리케이션으로 리턴한다. 2108에서, 클라이언트 소프트웨어 애플리케이션은 입력 이미지로부터 입력 이미지 특징들의 집합을 추출한다. 2110에서, 클라이언트 소프트웨어 애플리케이션은 예를 들어, 프로세스(1700)의 1718, 1720을 수행함으로써, 입력 이미지에 대한 하나 이상의 장면 유형을 결정한다.
장면 이미지 파악 프로세스(1700)는 또한 클라우드 컴퓨팅 환경(1632)에서도 수행될 수 있다. 하나의 예시적인 구현예가 도 22에 도시된다. 2202에서, 이미지 프로세싱 컴퓨터(1602) 상에서 실행되는 서버 소프트웨어 애플리케이션이 입력 이미지 또는 입력 이미지에 대한 URL을 클라우드 컴퓨터(1634) 상에서 실행되는 클라우드 소프트웨어 애플리케이션으로 전송한다. 2204에서, 클라우드 소프트웨어 애플리케이션은 입력 이미지를 인식하기 위해 프로세스(1700)의 요소들을 수행한다. 2206에서, 클라우드 소프트웨어 애플리케이션은 입력 이미지에 대해 결정된 장면 유형(들)을 서버 소프트웨어 애플리케이션으로 리턴한다.
이제 컴퓨터(1602)가 소셜 미디어 네트워킹 서버(1612)에 의해 제공된 웹 페이지에 포함된 사진 이미지들에서 장면들을 인식하는 프로세스(2300)를 예시하는 순서도인, 도 23을 참조한다. 2302에서, 클라이언트 컴퓨터(1622)는 소셜 미디어 네트워킹 서버(1612)로부터 하나 이상의 사진이 있는 웹 페이지에 대한 요청을 발행한다. 2304에서, 서버(1612)는 요청된 웹 페이지를 클라이언트 컴퓨터(1622)로 전송한다. 예를 들어, 클라이언트(1620)가 컴퓨터(1622)를 사용하여 페이스북 페이지(이를테면 홈 페이지)에 액세스할 때, 컴퓨터(1622)는 페이스북 서버에 페이지 요청을 전송한다. 대안적으로, 페이스북 서버는 클라이언트(1620)의 성공적인 인증 및 인가 시 클라이언트의 홈 페이지를 다시 전송한다. 클라이언트(1620)가 컴퓨터(1602)에 웹 페이지에 포함된 사진들에서 장면들을 인식하기를 요청할 때, 클라이언트(1620)는 예를 들어, 웹 페이지 상의 URL 또는 인터넷 브라우저 플러그인 버튼을 클릭한다.
사용자 요청에 응답하여, 2306에서, 클라이언트 컴퓨터(1622)는 컴퓨터(1602)에 사진들에서 장면들을 인식할 것을 요청한다. 일 구현예에서에서, 요청(2306)은 사진들에 대한 URL들을 포함한다. 상이한 구현예에서, 요청(2306)은 사진들 중 하나 이상을 포함한다. 2308에서, 컴퓨터(1602)는 서버(1612)로부터 사진들을 요청한다. 2310에서, 서버(1612)는 요청된 사진들을 리턴한다. 2312에서, 컴퓨터(1602)는 사진들에서 장면들을 인식하기 위한 방법(1700)을 수행한다. 2314에서, 컴퓨터(1602)는 클라이언트 컴퓨터(1622)에 각 사진에 대해 인식된 장면 유형 및/또는 매칭된 이미지의 식별을 전송한다.
도 24를 참조하면, 컴퓨터(1602)가 웹 비디오 클립에서 하나 이상의 장면을 인식하는 프로세스(2400)를 예시하는 순서도가 도시된다. 2402에서, 컴퓨터(1622)는 웹 비디오 클립(이를테면 YouTube.com 서버 상에 포스팅된 비디오 클립)에 대한 요청을 전송한다. 2404에서, 웹 비디오 서버(1614)는 비디오 클립 또는 비디오 클립에 대한 URL을 컴퓨터(1622)로 리턴한다. URL이 컴퓨터(1622)로 리턴되는 경우, 그 다음 컴퓨터(1622)는 URL이 가리키는 웹 비디오 서버(1614) 또는 상이한 웹 비디오 서버로부터 비디오 클립의 비디오 프레임들을 요청한다. 2406에서, 컴퓨터(1622)는 컴퓨터(1602)에 웹 비디오 클립에서 하나 이상의 장면을 인식하기를 요청한다. 일 구현예에서, 요청(2406)은 URL을 포함한다.
2408에서, 컴퓨터(1602)는 웹 비디오 서버(1614)로부터 하나 이상의 비디오 프레임을 요청한다. 2410에서, 웹 비디오 서버(1614)는 비디오 프레임들을 컴퓨터(1602)로 리턴한다. 2412에서, 컴퓨터(1602)는 비디오 프레임들 중 하나 이상에 대해 방법(1700)을 수행한다. 일 구현예에서, 컴퓨터(1602)는 각 비디오 프레임을 정적 이미지로 처리하고 다수의 비디오 프레임, 이를테면 6개의 비디오 프레임에 대해 장면 인식을 수행한다. 컴퓨터(1602)가 프로세싱된 비디오 프레임들의 특정 퍼센테이지(이를테면 50 퍼센트)의 장면 유형을 인식하는 경우, 인식된 장면 유형이 비디오 프레임들의 장면 유형인 것으로 추정된다. 뿐만 아니라, 인식된 장면 유형은 비디오 프레임들의 인덱스 범위와 연관된다. 2414에서, 컴퓨터(1602)는 인식된 장면 유형을 클라이언트 컴퓨터(1622)로 전송한다.
추가 구현예에서, 데이터베이스(1604)는 장면 유형들로 라벨링 또는 범주화되지 않은 이미지들의 집합을 포함한다. 그러한 범주화되지 않은 이미지들은 장면 파악을 개량 및 개선시키기 위해 사용될 수 있다. 도 25는 소프트웨어 애플리케이션 또는 상이한 애플리케이션 프로그램이 하나의 예시적인 구현예에서, PCA 알고리즘을 사용하여 1712에서 검색된 거리 메트릭을 개선하는 반복 프로세스(2500)를 예시한다. 2502에서, 소프트웨어 애플리케이션은 예를 들어, 데이터베이스(1604)로부터 라벨링되지 않은 또는 부여되지 않은 이미지를 입력 이미지로서 검색한다. 2504에서, 입력 이미지로부터, 소프트웨어 애플리케이션은 1712에서 검색된 거리 메트릭에 대응하는 입력 이미지 특징들의 집합을 추출한다. 2506에서, 소프트웨어 애플리케이션은 2504에서 추출된 이미지 특징들의 집합 및 거리 메트릭을 사용하여 입력 이미지의 이미지 특징들을 재구성한다. 그러한 표현은 다음과 같이 표현될 수 있다:
Figure 112017009301331-pct00008
2508에서, 소프트웨어 애플리케이션은 입력 이미지 및 2506에서 구성된 표현 간 재구성 오류를 계산한다. 재구성 오류는 다음과 같이 표현될 수 있다:
Figure 112017009301331-pct00009
(여기서
Figure 112017009301331-pct00010
내지
Figure 112017009301331-pct00011
은 거리 메트릭을 획득하기 위해 도 4의 프로세스(1900)를 수행 시 폐기된 고유 값들을 나타낸다.)
2510에서, 소프트웨어 애플리케이션은 재구성 오류가 미리 결정된 임계치 미만인지 여부를 체크한다. 그렇다면, 소프트웨어 애플리케이션은 2512에서 입력 이미지에 대해 장면 파악을 수행하고, 2514에서 인식된 장면 유형을 입력 이미지에 부여한다. 추가 구현예에서, 2516에서, 소프트웨어 애플리케이션은 입력 이미지를 라벨링된 이미지로서 갖고 다시 트레이닝 프로세스(1900)를 수행한다. 그 결과, 개선된 거리 메트릭이 생성된다. 다시 2510으로 돌아가서, 재구성 오류가 미리 결정된 임계치 내가 아닌 경우, 2518에서, 소프트웨어 애플리케이션이 입력 이미지에 대한 장면 유형을 검색한다. 예를 들어, 소프트웨어 애플리케이션은 입력 디바이스 또는 데이터 소스로부터 입력 이미지에 대한 장면 유형의 표시를 수신한다. 그 후, 2514에서, 소프트웨어 애플리케이션은 입력 이미지를 검색된 장면 유형으로 라벨링한다.
대안적인 반복적 장면 파악 프로세스(2600)가 도 26을 참조하여 도시된다. 프로세스(2600)는 장면 파악을 최적화하기 위해 소프트웨어 애플리케이션에 의해 하나 또는 다수의 이미지에 대해 수행될 수 있다. 2602에서, 소프트웨어 애플리케이션은 알려진 장면 유형이 있는 입력 이미지를 검색한다. 일 구현예에서, 입력 이미지에 대해 알려진 장면 유형은 사람 운영자에 의해 제공된다. 예를 들어, 사람 운영자는 입력 디바이스들, 이를테면 키보드 및 디스플레이 스크린을 사용하여 입력 이미지에 대해 알려진 장면 유형을 입력 또는 설정한다. 대안적으로, 입력 이미지에 대해 알려진 장면 유형은 데이터 소스, 이를테면 데이터베이스로부터 검색된다. 2604에서, 소프트웨어 애플리케이션은 입력 이미지에 대해 장면 파악을 수행한다. 2606에서, 소프트웨어 애플리케이션은 알려진 장면 유형이 인식된 장면 유형과 동일한지 여부를 체크한다. 그렇다면, 소프트웨어 애플리케이션은 다음 입력 이미지를 검색하기 위해 2602로 이행한다. 그렇지 않으면, 2608에서, 소프트웨어 애플리케이션은 입력 이미지를 알려진 장면 유형으로 라벨링한다. 2610에서, 소프트웨어 애플리케이션은 장면 유형으로 라벨링된 입력 이미지로 다시 트레이닝 프로세스(1900)를 수행한다.
디지털 사진은 보통 메타 데이터(사진에 대한 데이터를 의미한다)의 집합을 포함한다. 예를 들어, 디지털 사진은 다음 메타 데이터를 포함한다: 제목; 주제; 저작자들; 획득된 날짜; 저작권; 생성 시간 - 사진이 찍힌 날짜 및 시간; 초점 거리(이를테면 4 mm); 35mm 초점 거리(이를테면 33); 사진의 치수들; 수평 해상도; 수직 해상도; 비트 심도(이를테면 24); 색채 표현(이를테면 sRGB); 카메라 모델(이를테면 iPhone 5); F-스톱; 노출 시간; ISO 속도; 밝기; 크기(이를테면 2.08 MB); GPS(전역 측위 시스템) 위도(이를테면 42; 8; 3.00000000000426); GPS 경도(이를테면 87; 54; 8.999999999912); 및 GPS (이를테면 198.36673773987206).
디지털 사진은 또한 사진에 내장된 하나 이상의 태그를 메타데이터로서 포함할 수 있다. 태그들은 사진의 특성들을 설명 및 표시한다. 예를 들어, "가족" 태그는 사진이 가족 사진임을 표시하고, "웨딩" 태그는 사진이 웨딩 사진임을 표시하고, "부분 집합" 태그는 사진이 일몰 장면 사진임을 표시하고, "산타 모니카 해변" 태그는 사진이 산타 모니카 해변에서 찍혔음을 표시하는 등이다. GPS 위도, 경도 및 고도는 또한 GeoTag(지오태그)로서 지칭되며 이는 사진이 찍혔을 때 카메라의 지리적 위치(또는 요약하여 지리위치) 및 보통 사진 내 객체들을 식별한다. GeoTag를 갖는 사진 또는 비디오는 지오태깅되었다고 한다. 상이한 구현예에서, GeoTag는 사진에 내장된 태그들 중 하나이다.
서버(102, 106, 1602, 또는 1604) 상에서 실행되는 서버 소프트웨어 애플리케이션이 사진 앨범(또한 본 출원에서 스마트 앨범으로서도 지칭된다)을 자동으로 생성하는 프로세스가 도 27의 2700에 도시된다. 프로세스(2700)가 또한 클라우드 컴퓨터들, 이를테면 클라우드 컴퓨터들(1634, 1636, 1638)에 의해 수행될 수 있음이 주의되어야 한다. 사용자(120)가 사진들의 집합을 업로드할 때, 2702에서, 서버 소프트웨어 애플리케이션이 컴퓨터(122)(이를테면 iPhone 5)로부터 하나 이상의 사진을 수신한다. 업로딩은 클라이언트(120)가 서버(102)에 의해 제공되는 웹 페이지 인터페이스 또는 컴퓨터(122) 상에서 실행되는 모바일 소프트웨어 애플리케이션을 사용하여 개시될 수 있다. 대안적으로, 웹 페이지 인터페이스 또는 모바일 소프트웨어 애플리케이션을 사용하여, 사용자(120)가 서버(112) 상에 호스팅된 그의 사진들을 가리키는 URL을 제공한다. 2702에서, 그 다음 서버 소프트웨어 애플리케이션이 서버(112)로부터 사진들을 검색한다.
2704에서, 서버 소프트웨어 애플리케이션은 각 수신된 또는 검색된 사진으로부터 메타 데이터 및 태그들을 추출 또는 검색한다. 예를 들어, 컴퓨터 프로그래밍 언어 C#으로 기입된 소프트웨어 프로그램 코드의 부분이 사진들로부터 메타 데이터 및 태그들을 판독하기 위해 사용될 수 있다. 임의로, 2706에서, 서버 소프트웨어 애플리케이션이 검색된 사진들의 태그들을 정규화한다. 예를 들어, "황혼" 및 "박명" 양자의 태그가 "일몰"로 변경된다. 2708에서, 서버 소프트웨어 애플리케이션은 각 사진에 대해 추가 태그들을 생성한다. 예를 들어, 위치 태그가 사진의 GeoTag로부터 생성된다. 위치 태그 생성 프로세스는 도 28을 참조하여 2800에 더 예시된다. 2802에서, 서버 소프트웨어 애플리케이션은 GeoTag 내 GPS 좌표들을 GPS 좌표들에 대응하는 위치를 요청하는 지도 서비스 서버(이를테면 구글 지도 서비스)로 전송한다. 예를 들어, 위치가 "산타 모니타 해변" 또는 "오헤어(O’Hare) 공항"이다. 2804에서, 서버 소프트웨어 애플리케이션은 매핑된 위치명을 수신한다. 그 다음 위치명이 사진에 대한 위치 태그로 여겨진다.
추가 예로서, 2708에서, 서버 소프트웨어 애플리케이션이 각 사진에 대해 수행되는 장면 파악 및/또는 얼굴 인식의 결과들에 기초하여 태그들을 생성한다. 태그 생성 프로세스는 도 29를 참조하여 2900에 더 예시된다. 2902에서, 서버 소프트웨어 애플리케이션은 2702에서 검색된 각 사진에 대해 장면 파악을 수행한다. 예를 들어, 서버 소프트웨어 애플리케이션은 각 사진의 장면 유형(이를테면 해변, 일몰 등)을 결정하기 위해 프로세스(1700, 1800A 및 1800B)의 단계들을 수행한다. 그 다음 장면 유형은 기초가 된 사진에 대한 추가 태그(즉, 장면 태그)로서 사용된다. 추가 구현예에서, 사진 생성 시간이 장면 파악을 돕기 위해 사용된다. 예를 들어, 장면 유형이 해변인 것으로 결정되고 사진에 대한 생성 시간이 5:00 PM일 때, 해변 및 일몰 해변 양자가 사진의 장면 유형들일 수 있다. 추가 예로서, 동일한 위치 또는 구조의 황혼 장면 사진 및 일몰 장면 사진은 매우 밀접하게 보일 수 있다. 그러한 경우, 사진 생성 시간이 장면 유형, 즉, 황혼 장면 또는 일몰 장면을 결정하도록 돕는다.
사진 생성 시간을 장면 유형 결정에 도움이 되도록 더 사용하기 위해서는, 사진의 생성 시간의 날짜 및 지리위치가 장면 유형 결정 시 고려된다. 예를 들어, 태양은 연중 상이한 계절들에 상이한 시간들에 하늘에서 보이지 않는 곳으로 사라진다. 그밖에도, 일몰 시간들은 상이한 위치들에 따라 상이하다. 지리위치는 다른 방법들로 장면 파악에 도움이 될 수 있다. 예를 들어, 큰 호수의 사진 및 바다의 사진은 매우 유사하게 보일 수 있다. 그러한 경우, 사진들의 지리위치들이 호수 사진을 바다 사진과 구별하기 위해 사용된다.
추가 구현예에서, 2904에서, 서버 소프트웨어 애플리케이션이 각 사진 내에서 개인들의 얼굴들을 인식하고 얼굴 표정들을 결정하도록 얼굴 인식을 수행한다. 일 구현예에서, 상이한 얼굴 이미지들(이를테면 미소, 역정 등)이 상이한 장면 유형들로 보여진다. 서버 소프트웨어 애플리케이션은 각 사진에서 감정을 인식하도록 각 사진에 대해 장면 파악을 수행한다. 예를 들어, 서버 소프트웨어 애플리케이션은 이러한 감정에 대한 모델을 획득하기 위해 특정 얼굴 표정 또는 감정의 트레이닝 이미지들의 집합에 대해 방법(1900)을 수행한다. 감정의 각 유형에 대해, 다수의 모델이 획득된다. 그 다음 다수의 모델은 방법(1700)을 수행함으로써 테스팅 이미지들에 대해 적용된다. 그 다음 최상의 매칭 또는 인식 결과를 갖는 모델이 선택되어 특정 감정과 연관지어진다. 그러한 프로세스가 각 감정에 대해 수행된다.
2904에서, 서버 소프트웨어 애플리케이션은 또한 감정 태그를 각 사진에 추가한다. 예를 들어, 사진에 대한 얼굴 표정이 미소일 때, 서버 소프트웨어 애플리케이션은 "미소" 태그를 사진에 추가한다. "미소" 태그는 얼굴 표정 또는 감정 유형 태그이다.
다시 도 27로 돌아가면, 계속해서 추가 예로서, 2708에서, 서버 소프트웨어 애플리케이션이 시간 태그를 생성한다. 예를 들어, 사진의 생성 시간이 7월 4일 또는 12우러 25일일 때, 그 다음 "6월 4일" 태그 또는 "크리스마스" 태그가 생성된다. 일 구현예에서, 생성된 태그들은 사진의 파일에 기입되지 않는다. 대안적으로, 사진 파일은 추가 태그들로 변형된다. 추가 구현예에서, 2710에서, 서버 소프트웨어 애플리케이션은 사용자(120)에 의해 입력되는 태그들을 수신한다. 예를 들어, 서버 소프트웨어 애플리케이션은 사용자(120)가 새로운 태그들을 입력함으로써 사진에 태그를 달 수 있게 하는 웹 페이지 인터페이스를 제공한다. 2712에서, 서버 소프트웨어 애플리케이션은 각 사진에 대한 메타 데이터 및 태그들을 데이터베이스(104)로 저장한다. 서버 소프트웨어 애플리케이션은 각 사진의 메타 데이터의 각 부분을 데이터베이스(104)로 기입하지 않을 수도 있음이 주의되어야 한다. 다시 말해서, 서버 소프트웨어 애플리케이션은 사진 메타 데이터를 데이터베이스(104)에 선택적으로 기입할 수 있다.
일 구현예에서, 2712에서, 서버 소프트웨어 애플리케이션은 사진들이 데이터베이스(104)와 상이한 저장 디바이스에 저장된 물리적 파일들이더라도, 각 사진에 대한 참조 표시를 데이터베이스(104)로 저장한다. 그러한 경우, 데이터베이스(104)는 각 사진에 대한 고유 식별자를 유지한다. 고유 식별자는 데이터베이스(104) 내에서 대응하는 사진의 메타 데이터 및 태그들의 위치를 찾기 위해 사용된다. 2714에서, 서버 소프트웨어 애플리케이션은 각 사진의 태그들 및/또는 메타 데이터에 기초하여 그것을 인덱싱한다. 일 구현예에서, 서버 소프트웨어 애플리케이션은 데이터베이스(104) 상에서 실행되는 데이터베이스 관리 소프트웨어에 의해 제공되는 소프트웨어 유틸리티를 사용하여 각 사진을 인덱싱한다.
2716에서, 서버 소프트웨어 애플리케이션이 사진들의 GeoTag들에 기초하여 지도 상에 2702에서 검색된 사진들을 디스플레이한다. 대안적으로, 2716에서, 서버 소프트웨어 애플리케이션은 사진들의 GeoTag들에 기초하여 지도 상에 2702에서 검색된 사진들의 부분 집합을 디스플레이한다. 디스플레이된 사진들의 두 개의 스크린 샷이 도 30의 3002 및 3004에 도시된다. 사용자(120)는 사진들을 특정 지리적 영역 내에 디스플레이하기 위해 지도 상에서 줌-인 및 줌-아웃 제어들을 사용할 수 있다. 사진들이 업로드 및 인덱싱된 후, 서버 소프트웨어 애플리케이션은 사용자(120)가 2702에서 업로드된 사진들을 포함하여, 그의 사진들을 탐색할 수 있게 한다. 그 다음 앨범이 탐색 결과(즉, 사진 리스트)로부터 생성될 수 있다. 앨범 생성 프로세스는 도 31을 참조하여 3100에 더 예시된다. 3102에서, 서버 소프트웨어 애플리케이션은 탐색 파라미터들, 이를테면 장면 유형, 얼굴 표정, 생성 시간, 상이한 태그들 등의 집합을 검색한다. 파라미터들은 예를 들어 서버 소프트웨어 애플리케이션 또는 모바일 소프트웨어 애플리케이션의 웹 페이지 인터페이스를 통해 입력된다. 3104에서, 서버 소프트웨어 애플리케이션은 탐색 질의를 공식화하고 데이터베이스(104)에 탐색 질의를 실행할 것을 요청한다.
이에 응답하여, 데이터베이스(104)는 질의를 실행하고 질의 결과들의 집합을 리턴한다. 3106에서, 서버 소프트웨어 애플리케이션은 탐색 결과들을 수신한다. 3108에서, 서버 소프트웨어 애플리케이션은 탐색 결과들을 예를 들어, 웹 페이지 상에 디스플레이한다. 탐색 결과 리스트에서의 각 사진은 특정 메타 데이터 및/또는 태그, 및 특정 크기(이를테면 원본 크기의 절반)의 사진과 함께 디스플레이된다. 그 다음 사용자(120)가 리턴된 사진들을 갖는 사진 앨범을 생성하기 위한 버튼을 클릭한다. 클릭에 응답하여, 3110에서, 서버 소프트웨어 애플리케이션이 탐색 결과들을 포함하는 앨범을 생성하고, 앨범을 데이터베이스(104)로 저장한다. 예를 들어, 데이터베이스(104)에서의 앨범은 앨범 내 각 사진의 고유 식별자, 및 앨범의 제목 및 설명을 포함하는 데이터 구조이다. 제목 및 설명은 사용자(120)에 의해 입력되거나 사진들의 메타 데이터 및 태그들에 기초하여 자동으로 생성된다.
추가 구현예에서, 사진들이 2702에서 업로드된 후, 서버(102) 상에서 실행되는 서버 소프트웨어 애플리케이션 또는 백그라운드 프로세스는 업데이트된 사진들 중 일부를 포함하는 하나 이상의 앨범을 자동으로 생성한다. 자동 생성 프로세스는 도 32를 참조하여 3200에 더 예시된다. 3202에서, 서버 소프트웨어 애플리케이션이 업로드된 사진들의 태그들을 검색한다. 3204에서, 서버 소프트웨어 애플리케이션은 상이한 태그들의 조합들을 결정한다. 예를 들어, 하나의 조합은 "해변," "일몰," "가족 휴가," 및 "샌 디에고 씨 월드" 태그들을 포함한다. 추가 예로서, 조합들은 태그 유형들, 이를테면 시간 태그들, 위치 태그들 등에 기초한다. 각 조합은 탐색 파라미터들의 집합이다. 3206에서, 각 태그 조합에 대해, 서버 소프트웨어 애플리케이션은 예를 들어, 업로드된 사진들, 또는 각각 모두 태그들을 조합하여 포함하는 업로드된 사진들 및 기존 사진들로부터 사진들을 선택한다(이를테면 데이터베이스(104)에 질의함으로써). 상이한 구현예에서, 사진들은 메타 데이터(이를테면 생성 시간) 및 태그들에 기초하여 선택된다.
3208에서, 서버 소프트웨어 애플리케이션은 선택된 사진들의 각 집합에 대해 앨범을 생성한다. 앨범들의 각각은 예를 들어, 제목 및/또는 앨범 내 사진들의 메타 데이터 및 태그들에 기초하여 생성될 수 있는 요약을 포함한다. 3210에서, 서버 소프트웨어 애플리케이션은 앨범들을 데이터베이스(104)로 저장한다. 추가 구현예에서, 서버 소프트웨어 애플리케이션은 하나 이상의 앨범을 사용자(120)에게 디스플레이한다. 요약이 또한 각 디스플레이된 앨범에 대해 디스플레이된다. 추가적으로, 각 앨범은 앨범 내 대표 사진, 또는 사진들의 썸네일들과 제시된다.
이미지 편성 시스템
본 발명은 또한 이미지 편성 시스템을 포함한다. 특히, 위에서 개시된 장면 인식 및 얼굴 인식 기술을 사용하여, 이미지들의 컬렉션이 자동으로 태깅 및 인덱싱될 수 있다. 예를 들어, 이미지 저장소의 각 이미지에 대해, 태그 리스트 및 이미지 색인이, 이를테면 데이터베이스 레코드에 의해 연관될 수 있다. 그 다음 데이터베이스 레코드는 데이터베이스에 저장될 수 있으며, 이는 예를 들어, 탐색열을 사용하여 탐색될 수 있다.
이미지 편성 시스템에 해당되는 도면들을 참조하면, 도 33이 개시된 이미지 편성 시스템과 사용하기 위해 구성된 모바일 컴퓨팅 디바이스(3300)를 도시한다. 모바일 컴퓨팅 디바이스(3300)는 예를 들어, 스마트폰(1502), 태블릿 컴퓨터(1504), 또는 웨어러블 컴퓨터(1510)일 수 있으며, 이들 전부가 도 15에 도시된다. 모바일 컴퓨팅 디바이스(3300)는 대표적인 구현예에서, 디스플레이(3304) 및 입력 디바이스(3314)에 접속되는 처리기(3302)를 포함할 수 있다. 디스플레이(3304)는 예를 들어, 액정 디스플레이 또는 유기 발광 다이오드 디스플레이일 수 있다. 입력 디바이스(3314)는 예를 들어, 터치스크린, 터치스크린 및 하나 이상의 버튼의 조합, 터치스크린 및 키보드의 조합, 또는 터치스크린, 키보드, 및 별개의 포인팅 디바이스의 조합일 수 있다.
모바일 컴퓨팅 디바이스(3300)는 또한 내부 저장 디바이스(3310), 이를테면 플래쉬 메모리(다른 유형들의 메모리도 사용될 수 있으나), 및 착탈가능한 저장 디바이스(3312), 이를테면 SD 카드 슬롯을 포함할 수 있으며, 이는 일반적으로 플래쉬 메모리를 포함할 뿐만 아니라, 다른 유형들의 메모리, 이를테면 회전 자기 드라이브를 포함할 수 있다. 덧붙여, 모바일 컴퓨팅 디바이스(3300)는 또한 카메라(3308), 및 네트워크 인터페이스(3306)를 포함할 수 있다. 네트워크 인터페이스(3306)는 무선 네트워킹 인터페이스, 이를테면, 예를 들어, 802.11 또는 셀룰러 라디오 인터페이스의 변종들 중 하나 수 있다.
도 34는 가상화된 서버(3402) 및 가상화된 데이터베이스(3404)를 포함하는 클라우드 컴퓨팅 플랫폼(3400)을 도시한다. 가상화된 서버(3402)는 일반적으로 그것들을 이용하는 임의의 애플리케이션들에 단일 서버로 보이는 많은 물리적 서버를 포함할 것이다. 가상화된 데이터베이스(3404)는 유사하게 가상화된 데이터베이스(3404)를 사용하는 단일 데이터베이스로 소개한다.
도 35a는 클라우드 기반 이미지 편성 시스템의 주요 소프트웨어 구성요소들을 예시하는 소프트웨어 블록도를 도시한다. 모바일 컴퓨팅 디바이스(3300)는 그것의 처리기(3302) 상에서 구동하는 다양한 구성요소 및 다른 구성요소들을 포함한다. 보통 디바이스 제조자 또는 운영 체제 생산자에 의해 구현되는 카메라 모듈(3502)은 사용자 지시 시 사진들을 생성하고 사진들을 이미지 저장소(3504)에 둔다. 이미지 저장소(3504)는 예를 들어, 모바일 컴퓨팅 디바이스(3300)의 내부 저장소(3310) 또는 착탈가능한 저장소(3312) 상에서 구현되는 파일 시스템의 디렉토리로서 구현될 수 있다. 전처리 및 범주화 구성요소(3506)는 이미지 저장소의 이미지의 소형화 모델을 생성한다.
전처리 및 범주화 구성요소(3506)는 예를 들어, 특정 이미지의 썸네일을 생성할 수 있다. 예를 들어, 4000x3000 픽셀 이미지가 240x180 픽셀 이미지로 축소되어, 상당한 공간 절약으로 이어질 수 있다. 덧붙여, 이미지 시그니처가 소형화 모델로서 생성 및 사용될 수 있다. 이미지 시그니처는 예를 들어, 이미지에 대한 특징들의 컬렉션을 포함할 수 있다. 이들 특징은 이미지의 색 히스토그램, 이미지의 LBP 특징들 등을 포함할 수 있지만, 이에 한정되지는 않는다. 이들 특징의 보다 완전한 리스팅은 장면 인식 및 얼굴 인식 알고리즘들을 설명할 때 위에서 논의되었다. 덧붙여, 이미지와 연관된 임의의 지오-태그 정보 및 날짜 및 시간 정보가 또한 썸네일 또는 이미지 시그니처와 함께 송신될 수 있다. 또한, 별개의 실시예에서, 모바일 디바이스의 색인, 이를테면 모바일 디바이스의 네트워크 인터페이스와 연관된 MAC 식별자, 또는 모바일 디바이스와 연관되어 생성된 보편적 고유 식별자(UUID)가 썸과 함께 송신된다.
전처리 및 범주화 구성요소(3506)는 다수의 상이한 방법으로 활성화될 수 있다. 먼저, 전처리 및 범주화 구성요소(3506)는 이미지 저장소(3504)의 모든 이미지에 걸쳐 반복될 수 있다. 이는 보통 예를 들어, 애플리케이션이 처음 실행될 때, 또는 사용자의 지시 시 발생할 수 있다. 둘째로, 전처리 및 범주화 구성요소(3506)는 사용자에 의해 활성화될 수 있다. 셋째로, 전처리 및 범주화 구성요소(3506)는 새로운 이미지가 이미지 저장소(3504)에서 감지될 때 활성화될 수 있다. 넷째로, 전처리 및 범주화 구성요소(3506)는 주기적으로, 이를테면, 예를 들어, 하루에 한 번, 또는 한 시간에 한 번 활성화될 수 있다.
전처리 및 범주화 구성요소(3506)는 소형화 모델들이 생성될 때 그것들을 네트워킹 모듈(3508)로 전달한다. 네트워킹 모듈(3508)은 또한 주문형 탐색 용어 스크린(3507)과 인터페이싱한다. 주문형 탐색 용어 스크린(3507)는 아래에서 설명될 바와 같이, 주문형 탐색 용어들을 채택한다. 그 다음 네트워킹 모듈(3508)은 소형화 모델(또는 소형화 모델들)을 클라우드 플랫폼(3400)에 송신하며, 여기서 그것은 클라우드 플랫폼(3400) 상에서 구동하는 네트워킹 모듈(3516)에 의해 수신된다. 네트워킹 모듈(3516)은 소형화 모델을 가상화된 서버(3402) 상에서 구동하는 이미지 파서(parser) 및 인식기(3518)에 전달한다.
이미지 파서 및 인식기(3518)는 소형화 모델을 설명하는 태그 리스트를 생성하기 위해 본 발명의 이전 섹션들에 논의된 알고리즘들을 사용한다. 그 다음 이미지 파서 및 인식기(3518)는 파싱된 소형화 모델에 대응하는 이미지의 색인 및 태그 리스트를 다시 네트워킹 모듈(3516)로 전달하며, 이는 태그 리스트 및 색인을 다시 모바일 컴퓨팅 디바이스(3300)의 네트워킹 모듈(3508)로 송신한다. 그 다음 태그 리스트 및 색인은 네트워킹 모듈(3508)로부터 데이터베이스(3510)의 태그 리스트 및 색인을 연관시켜 레코드가 생성되는 전처리 및 범주화 모듈(3506)로 전달된다.
본 발명의 이미지 편성 시스템의 일 실시예에서, 태그들은 또한 모바일 디바이스의 색인과 함께 데이터베이스(3520)에 저장된다. 이는 이미지 저장소가 다수의 디바이스에 걸쳐 탐색될 수 있게 한다.
도 35b를 참조하면, 이미지 탐색 기능을 구현하기 위한 소프트웨어 구성요소들을 도시하는 소프트웨어 블록도가 도시된다. 탐색 스크린(3512)은 사용자로부터 탐색열을 채택한다. 탐색열(3512)은 자연 언어 처리기(3513)에 작업 의뢰되며, 이는 데이터베이스 인터페이스(3516)에 작업 의뢰되는 정렬된 태그 리스트를 생성한다. 그 다음 데이터베이스 인터페이스(3516)이 이미지 스크린(3514) 상에 도시되는 이미지 리스트를 리턴한다.
자연 언어 처리기(3513)는 예를 들어, 거리 메트릭에 기초하여 태그 리스트를 정렬할 수 있다. 예를 들어, "해변의 개"의 탐색열은 "개" 및 "해변" 양자와 태깅되는 이미지 리스트를 생성할 것이다. 그러나, 리스트에는 "개," 또는 "해변," 또는 심지어 "고양이"로 태깅되는 이미지들이 낮추어 정렬될 것이다. 운영자가 애완 동물 유형에 대해 탐색했기 때문에 고양이가 포함되고, 애완 동물들의 유형들의 사진들, 이를테면 고양이들 또는 카나리아들이 모바일 컴퓨팅 디바이스 상에 존재하는 경우, 그것들도 또한 리턴될 것이다.
위치가 또한 탐색열로서 사용될 수 있다. 예를 들어, "보스톤"의 탐색열은 메사추세츠, 보스턴의 경계들 내 위치로 지오-태깅된 모든 이미지를 리턴할 것이다.
도 36a는 소형화 모델들을 클라우드 플랫폼(3400)에 송신하기 이전에 모바일 컴퓨팅 디바이스(3300) 상에서 구동하는 전처리기 및 범주화기(3506)에 의해 수행되는 단계들을 예시하는 흐름도를 도시한다. 단계(3602)에서, 이미지 저장소의 새로운 이미지가 주목된다. 3604에서, 이미지는 소형화 모델를 생성하기 위해 프로세싱되고, 단계(3606)에서, 소형화 모델은 클라우드 플랫폼(3400)에 송신된다.
도 36b는 클라우드 플랫폼(3400)으로부터 소형화 모델들을 수신한 후 모바일 컴퓨팅 디바이스(3300) 상에서 구동하는 전처리기 및 범주화기(3506)에 의해 수행되는 단계들을 예시하는 흐름도를 도시한다. 단계(3612)에서 이미지에 대응하는 태그 리스트 및 색인이 수신된다. 단계(3614)에서, 태그 리스트 및 색인을 연관시키는 레코드가 생성되고, 단계(3616)에서, 레코드는 데이터베이스(3510)에 커밋된다.
단계(3614)에서 데이터베이스 레코드들을 형성하기 위해 사용되는 태그들은 또한 자동으로 생성된 앨범들로서 사용될 수도 있다. 이들 앨범은 사용자가 이미지 저장소를 브라우징할 수 있게 한다. 예를 들어, 앨범들은 이미지들에서 발견된 것들의 유형들에 기초하여 생성될 수 있다; 즉, "개"라는 제목의 앨범은 사용자의 이미지 저장소 내 개의 사진들이 있는 모든 이미지를 포함할 것이다. 유사하게, 앨범들은 장면 유형들, 이를테면 "일몰," 또는 "자연"에 기초하여 자동으로 생성될 수 있다. 앨범들은 또한 지오-태그 정보, 이를테면 "디트로이트" 앨범, 또는 "샌 프란시스코" 앨범에 기초하여 생성될 수 있다. 덧붙여, 앨범들은 또한 날짜 및 시간, 이를테면 "2013. 6. 21.," 또는 "2012, 신년 전야, 자정"에 생성될 수 있다.
도 37은 시스템에 의해 파싱되는 소형화 모델에 대응하는 이미지를 설명하는 태그 리스트를 생성하기 위해 클라우드 컴퓨팅 플랫폼(3400) 상에서 구동하는 이미지 파서 및 인식기(3518)에 의해 수행되는 단계들을 예시하는 흐름도를 도시한다. 단계(3702)에서, 소형화 모델이 수신된다. 단계(3704)에서, 소형화 모델에 대응하는 이미지의 색인이 추출되고, 단계(3706)에서, 소형화 모델이 파싱되고 이미지 특징들이 위에서 설명된 방법들을 사용하여 인식된다. 단계(3708)에서, 소형화 모델에 대한 태그 리스트가 생성된다. 예를 들어, 배경에 보트가 있는 사람들의 그룹의 해변 상의 사진은 태그들로서 사진의 사람들의 이름들 뿐만 아니라 "해변," 및 "보트"를 생성할 수 있다. 마지막으로, 단계(3710)에서, 파싱된 소형화 모델에 대응하는 이미지의 색인 및 태그 리스트는 클라우드 컴퓨팅 플랫폼(3400)으로부터 모바일 컴퓨팅 디바이스(3300)로 송신된다.
도 38은 모바일 컴퓨팅 디바이스(3300) 및 클라우드 컴퓨팅 플랫폼(3400) 간 통신의 순서도를 도시한다. 단계(3802)에서, 모바일 컴퓨팅 디바이스(3300) 상의 이미지 저장소의 이미지가 프로세싱되고, 이미지에 대응하는 소형화 모델이 생성된다. 단계(3804)에서, 소형화 모델은 모바일 컴퓨팅 디바이스(3300)로부터 클라우드 플랫폼(3400)으로 송신된다. 단계(3806)에서, 클라우드 플랫폼(3400)은 소형화 모델을 수신한다. 단계(3808)에서, 이미지 색인이 소형화 모델로부터 추출되고, 단계(3810)에서, 소형화 모델로부터의 이미지 특징들이 파싱 및 인식 프로세스를 사용하여 추출된다. 단계(3812)에서, 이들 이미지 특징이 단계(3808)에서 추출된 태그 리스트 및 이미지 색인을 포함하는 패킷으로 모아서 정리된다.
단계(3814)에서, 태그 리스트 및 이미지 색인을 포함하는 패킷이 클라우드 컴퓨팅 플랫폼(3400)으로부터 모바일 컴퓨팅 디바이스(3300)로 송신된다. 단계(3816)에서, 태그 리스트 및 이미지 색인을 포함하는 패킷이 수신된다. 단계(3818)에서, 이미지 색인 및 태그 리스트를 연관시키는 데이터베이스 레코드가 생성되고, 단계(3820)에서, 데이터베이스 레코드는 데이터베이스에 커밋된다.
도 39는 모바일 컴퓨팅 디바이스 상의 이미지 저장소의 이미지들이 탐색될 수 있는 프로세스의 흐름도를 도시한다. 단계(3902)에서, 탐색 스크린이 디스플레이된다. 탐색 스크린은 사용자가 단계(3904)에서 채택될, 탐색열을 입력할 수 있게 한다. 단계(3906)에서, 탐색열은 자연 언어 파서(3513)에 작업 의뢰된다. 탐색열은 단일 단어, 이를테면 "개들," 또는 용어들의 조합, 이를테면 "개들 및 고양이들"일 수 있다. 탐색열은 또한 예를 들어, 설정, 이를테면 "일몰," 또는 "자연"을 설명하는 용어들, 특정 카테고리, 이를테면 "동물," 또는 "음식"을 설명하는 용어들, 및 특정 위치 또는 날짜 및 시간 기간을 설명하는 용어들을 포함할 수 있다. 탐색 스크린이 또한 음성 명령을 통해; 즉, 사용자가 구 "개들 및 고양이들"을 말하는 것에 의해 채택될 수 있다는 것이 주의되어야 한다.
자연 언어 파서(3513)는 탐색열을 채택하고 데이터베이스(3510)에 존재하는 태그 리스트를 리턴한다. 자연 언어 파서(3513)는 데이터베이스(3510)의 태그 용어들로 트레이닝된다.
단계(3908)로 돌아가, 자연 언어 파서가 정렬된 태그 리스트를 리턴한다. 단계(3910)에서, 정렬된 리스트의 모든 태그에 걸쳐 루핑되는 루프가 개시된다. 단계(3912)에서, 데이터베이스가 태그 리스트에 존재하는 태그에 기초하여 탐색된다. 단계(3912)에서, 데이터베이스에는 탐색 태그에 대응하는 이미지들이 탐색된다.
단계(3914)에서, 탐색된 태그를 매칭하는 규칙이 이미 수립되었는지를 결정하기 위한 체크가 이루어진다. 탐색된 태그를 매칭하는 규칙이 수립된 경우, 규칙이 단계(3916)에서 활성화된다. 단계(3918)에서, 탐색된 태그에 대응하는 이미지들이 매치 집합에 추가된다. 매칭 이미들(또는 그것들의 이미지들의 색인들)이 정렬된 태그 리스트의 순서에 대응하는 순서로 추가되기 때문에, 매치 집합도 또한 정렬된 태그 리스트의 순서로 정렬된다. 그 다음 현재 태그가 정렬된 리스트에서 마지막 태그인지를 결정하기 위한 체크가 이루어지는 단계(3920)로의 이행들이 실행된다. 그렇지 않은 경우, 실행은 정렬된 리스트의 다음 태그가 선택되는 단계(3921)로 이동된다. 단계(3920)를 참조하여, 현재 태그가 정렬된 리스트의 마지막 태그인 경우, 실행은 프로세스가 종료되는 단계(3922)로 이행된다.
위에서, 단계(3914)는 이전에 수립된 규칙에 대한 체크를 수행한 것으로 논의되었다. 개시된 이미지 편성 시스템의 이러한 특징은 시스템의 탐색 및 편성 시스템이 사용자의 모바일 디바이스 상의 다른 애플리케이션들과 공유될 수 있게 한다. 이는 탐색된 이미지가 특정 카테고리에 매칭할 때 구성된 규칙을 활성화함으로써 실현된다. 예를 들어, 탐색된 이미지가 명함, 이를테면 업무용 명함으로 범주화되는 경우, 광학식 문자 인식(OCR; optical character recognition) 애플리케이션과 업무용 명함을 공유하는 규칙이 활성화될 수 있다. 유사하게, 탐색된 이미지가 "개" 또는 "고양이"로 범주화되는 경우, 규칙은 사용자에게 그녀가 이미지를 애완 동물을 사랑하는 친구와 고유하기 원하는지를 물어 활성화될 수 있다.
도 40a를 참조하면, 단계(4002)에서 주문형 탐색 용어 스크린(3507)이 이미지에 적용되는 영역 태그와 함께 사용자로부터 주문형 탐색열을 채택한다. 사용자에 의해 정의되는 기하학적 영역인 영역 태그는 이미지의 임의의 부분에 적용될 수 있다. 예를 들어, 주문형 탐색열은 예를 들어, 이미지 내 특정 고양이를 표기하기 위해 사용될 수 있는 "복슬복슬(Fluffy)"일 수 있다. 단계(4004)에서, 주문형 탐색열 및 영역 태그가 네트워크 모듈(3508)에 의해 클라우드 서버로 송신된다.
도 40b를 참조하면, 단계(4012)에서 네트워크 모듈(3516)이 주문형 탐색열 및 영역 태그를 수신한다. 단계(4014)에서, 이미지 파서 및 인식기(3518)는 주문형 탐색열 및 영역 태그를 단계(4016)에서 저장되는 데이터베이스 레코드에 연관시킨다. 저장되면, 이미지 파서 및 인식기(3518)는 태그 영역로 태깅되는 항목이 인식될 때 주문형 탐색열을 리턴할 것이다. 그에 따라, "복슬복슬"이 영역 태그 및 주문형 탐색열로 표기된 후, 그녀의 사진이 작업 의뢰되는 경우, "복슬복슬"의 태그가 리턴될 것이다.
개시된 이미지 편성 시스템가 클라우드 구성에서 구현되는 것으로 논의되었지만, 그것은 또한 모바일 컴퓨팅 디바이스 상에서 전적으로 구현될 수 있다. 그러한 구현예에서, 이미지 파서 및 인식기(3518)는 모바일 컴퓨팅 디바이스(3300) 상에 구현될 수 있다. 덧붙여, 네트워킹 모듈들(3508 및 3516)은 요구되지 않을 수 있다. 또한, 클라우드 컴퓨팅 부분이 단일 보조 디바이스, 이를테면 추가 모바일 디바이스, 로컬 서버, 무선 라우터, 또는 심지어 관련 데스크탑 또는 랩탑 컴퓨터 상에 구현될 수 있다.
명백하게, 상기 교시들을 고려하여 본 발명의 많은 추가적인 변형예 및 변경예가 가능하다. 그에 따라, 첨부된 청구항들의 범위 내에서, 본 발명이 위에서 구체적으로 설명된 바와 다르게 실시될 수 있다는 것이 파악되어야 한다. 예를 들어, 데이터베이스(104)는 단일 위치의 또는 다수의 위치에 걸쳐 분산되는 하나보다 많은 물리적 데이터베이스를 포함할 수 있다. 데이터베이스(104)는 관계형 데이터베이스, 이를테면 오라클 데이터베이스 또는 마이크로소프트 Oracle 데이터베이스일 수 있다. 대안적으로, 데이터베이스(104)는 NoSQL(Not Only SQL) 데이터베이스 또는 구글의 Bigtable 데이터베이스이다. 그러한 경우, 서버(102)는 인터넷(110)을 통해 데이터베이스(104)에 액세스한다. 추가 예로서, 서버들(102 및 106)은 인터넷(110)과 상이한 광역 네트워크를 통해 액세스될 수 있다. 계속해서 추가 예로서, 서버들(1602 및 1612)의 기능은 하나보다 많은 물리적 서버에 의해 수행될 수 있고; 데이터베이스(1604)는 하나보다 많은 물리적 데이터베이스를 포함할 수 있다.
본 발명의 앞선 설명은 예시 및 설명을 위해 제공되었고, 망라적인 것이나 본 발명을 정확히 개시된 형태로 제한하는 것으로 의도되지 않는다. 설명은 해당 기술분야의 다른 기술자들이 고려되는 특정 용도에 적합한 대로 다양한 실시예 및 다양한 변형예를 가장 잘 이용할 수 있게 하기 위해 본 교시들의 원리들 및 이들 원리의 실제적 적용을 가장 잘 설명하도록 선택된다. 본 발명의 범위는 본 상세한 설명에 의해 제한되지 않고, 아래 제시될 청구항들에 의해 정의되는 것으로 의도된다. 덧붙여, 아래에 좁은 청구항들의 제시될 수 있으나, 본 발명의 범위는 청구항(들)에 의해 제시된 것보다 훨씬 더 넓다는 것이 인식되어야 한다. 보다 넓은 청구항들이 본 출원으로부터의 우선권의 혜택을 주장하는 하나 이상의 출원으로 제출될 것으로 의도된다. 상기 설명 및 첨부 도면들이 아래 청구항 또는 청구항들의 범위 내에 있지 않은 추가 주제를 개시하는 한에 있어서는, 추가 발명들도 공중에 제공되지 않고 그러한 추가 발명들을 주장할 하나 이상의 출원을 제출할 권리가 유보된다.

Claims (24)

  1. 하나 이상의 메모리에 저장되고 하나 이상의 프로세서에 의해 실행되어,
    복수의 이미지를 상기 하나 이상의 메모리의 이미지 저장소에 저장하고,
    상기 복수의 이미지 중 특정 이미지의 소형화 모델을 생성하고 - 상기 소형화 모델은 상기 특정 이미지와 연관된 색인을 포함함 -,
    네트워크 인터페이스를 통하여 상기 소형화 모델을 원격 컴퓨팅 디바이스에 송신하고,
    상기 원격 컴퓨팅 디바이스로부터 상기 색인 및 상기 소형화 모델에 대응하는 태그 리스트를 포함하는 패킷을 수신하고 - 상기 태그 리스트는 적어도 장면 인식 태그 및 얼굴 인식 태그를 포함하고, 상기 장면 인식 태그는 지리위치 또는 타임 스탬프 중 적어도 하나와 연관되며, 상기 얼굴 인식 태그는 사람의 신원 또는 감정 표현 중 적어도 하나와 연관됨 -,
    상기 패킷으로부터 상기 색인 및 상기 태그 리스트를 추출하고,
    상기 태그 리스트를 상기 색인에 대응하는 상기 이미지와 연관시키는 레코드를 상기 하나 이상의 메모리의 데이터베이스에 생성하고 저장하며,
    디스플레이 상에 탐색 스크린을 제시하고,
    상기 탐색 스크린을 통하여 탐색열을 채택하고,
    상기 하나 이상의 메모리에 저장된 자연 언어 파서에 상기 탐색열을 실행 의뢰하고,
    상기 자연 언어 파서를 통하여, 적어도 상기 탐색열, 상기 장면 인식 태그, 및 상기 얼굴 인식 태그에 기초하여 범주 리스트을 생성하고,
    상기 범주 리스트에 기초하여 상기 데이터베이스에 질의하고,
    상기 질의에 기초하여 이미지 리스트를 수신하고,
    상기 디스플레이 상에 상기 이미지 리스트를 제시하고,
    사용자 입력 수신 시 상기 하나 이상의 프로세서로 하여금 상기 하나 이상의 메모리에 상기 이미지 리스트를 저장하도록 하는 상호작용 요소를 제시할 수 있는 컴퓨터-실행가능 명령어들을 포함하는 모바일 디바이스.
  2. 청구항 1에 있어서, 상기 자연 언어 파서는 정렬된 범주 리스트를 리턴하되, 상기 범주 리스트는 거리 메트릭에 의해 정렬되는, 모바일 디바이스.
  3. 청구항 1에 있어서, 상기 모바일 디바이스는 스마트폰, 태블릿 컴퓨터, 또는 웨어러블 컴퓨터 중 하나 이상을 포함하는, 모바일 디바이스.
  4. 청구항 1에 있어서, 상기 네트워크 인터페이스는 무선 네트워크 인터페이스, 802.11 무선 네트워크 인터페이스, 셀룰러 라디오 인터페이스 중 하나 이상을 포함하는, 모바일 디바이스.
  5. 청구항 1에 있어서, 상기 데이터베이스는 관계형 데이터베이스, 객체 지향 데이터베이스, NO SQL 데이터베이스, 또는 New SQL 데이터베이스 중 하나 이상을 포함하는, 모바일 디바이스.
  6. 하나 이상의 메모리에 저장되고 하나 이상의 프로세서에 의해 실행되어,
    네트워크 인터페이스를 통하여, 모바일 컴퓨팅 디바이스에 저장된 복수의 이미지 중 특정 이미지의 소형화 모델을 수신하고 - 상기 소형화 모델은 상기 특정 이미지와 연관된 색인을 포함함 -,
    상기 소형화 모델에 대응하는 제1 태그 리스트를 생성하고 - 상기 제1 태그 리스트는 위치, 시각 또는 장면 유형에 대응하는 적어도 하나 이상의 태그를 포함함 -,
    상기 소형화 모델에 대응하는 제2 태그 리스트를 생성하고 - 상기 제2 태그 리스트는 사람의 신원 또는 감정 표현에 대응하는 적어도 하나 이상의 상이한 태그를 포함함 -,
    상기 네트워크 인터페이스를 통하여 상기 모바일 컴퓨팅 디바이스로, 상기 색인, 상기 제1 태그 리스트 및 상기 제2 태그 리스트를 포함하는 패킷을 전송할 수 있는 컴퓨터-실행가능 명령어들; 및
    상기 모바일 컴퓨팅 디바이스에 의해 실행되도록 구성되고, 상기 제1 태그 리스트 및 상기 제2 태그 리스트를 저장하고, 하나 이상의 탐색열 질의를 수신하며 상기 하나 이상의 탐색열 질의가 상기 제1 태그 리스트 중 적어도 하나의 태그 및 상기 제2 태그 리스트 중 적어도 하나의 태그에 대응하는 경우 정렬된 이미지 리스트를 생성하는 자연 언어 파서를 제공하는 모바일 컴퓨팅 디바이스 애플리케이션
    을 포함하는 시스템.
  7. 청구항 6에 있어서, 상기 자연 언어 파서는 정렬된 범주 리스트를 리턴하되, 상기 범주 리스트는 거리 메트릭에 의해 정렬되는, 시스템.
  8. 청구항 6에 있어서, 상기 하나 이상의 메모리는 플래쉬 메모리 또는 SD 카드 중 적어도 하나를 포함하는, 시스템.
  9. 하나 이상의 메모리에 저장되고 하나 이상의 프로세서에 의해 실행될 수 있는 컴퓨터-실행가능 명령어들에 의하여 구현되는 방법으로서,
    하나 이상의 이미지를 상기 하나 이상의 메모리의 이미지 저장소에 저장하는 단계;
    상기 하나 이상의 이미지 중 특정 이미지의 소형화 모델을 생성하는 단계 - 상기 소형화 모델은 상기 특정 이미지와 연관된 색인을 포함함 -;
    네트워크 인터페이스를 통하여 상기 소형화 모델을 원격 컴퓨팅 디바이스에 송신하는 단계;
    상기 원격 컴퓨팅 디바이스로부터 상기 색인 및 상기 소형화 모델에 대응하며 상기 원격 컴퓨팅 디바이스에서 생성된 장면 인식 태그 리스트를 포함하는 패킷을 수신하는 단계 - 상기 장면 인식 태그 리스트는 적어도 위치 또는 시각에 대응하는 하나 이상의 태그를 포함함 -;
    상기 원격 컴퓨팅 디바이스로부터 상기 색인 및 상기 소형화 모델에 대응하며 상기 원격 컴퓨팅 디바이스에서 생성된 얼굴 인식 태그 리스트를 포함하는 패킷을 수신하는 단계 - 상기 얼굴 인식 태그 리스트는 적어도 사람의 신원 또는 감정 표현에 대응하는 하나 이상의 태그를 포함함 -;
    상기 패킷으로부터 상기 색인, 상기 장면 인식 태그 리스트 및 상기 얼굴 인식 태그 리스트를 추출하는 단계;
    상기 장면 인식 태그 리스트 및 상기 얼굴 인식 태그 리스트를 상기 색인에 대응하는 상기 이미지와 연관시키는 레코드를 상기 하나 이상의 메모리의 데이터베이스에 생성하고 저장하는 단계;
    디스플레이 상에 탐색 스크린을 제시하는 단계;
    상기 탐색 스크린을 통하여 탐색열을 채택하는 단계;
    상기 하나 이상의 메모리에 저장된 자연 언어 파서에 상기 탐색열을 실행 의뢰하는 단계;
    상기 장면 인식 태그 리스트 중 하나 이상의 태그 및 상기 얼굴 인식 태그 리스트 중 하나 이상의 태그에 기초하여 범주 리스트을 생성하는 단계;
    상기 탐색열에 기초하여 상기 범주 리스트에 질의하는 단계;
    상기 질의에 기초하여 이미지 리스트를 수신하는 단계;
    상기 디스플레이 상에 상기 이미지 리스트를 제시하는 단계; 및
    사용자 입력 수신 시 상기 하나 이상의 프로세서로 하여금 상기 하나 이상의 메모리에 상기 이미지 리스트를 저장하고, 상기 장면 인식 태그 리스트 중 하나 이상의 태그 및 상기 얼굴 인식 태그 리스트 중 하나 이상의 태그에 기초하여 상기 이미지 리스트를 라벨링하도록 하는 상호작용 요소를 제시하는 단계
    를 포함하는 방법.
  10. 청구항 9에 있어서, 상기 데이터베이스는 관계형 데이터베이스, 객체 지향 데이터베이스, NO SQL 데이터베이스, 또는 New SQL 데이터베이스 중 적어도 하나를 포함하는, 방법.
  11. 청구항 1에 있어서, 상기 복수의 이미지 중 하나 이상은 제3자 웹 서비스에 의하여 저장된 이미지에 대응하는 URL(Uniform Resource Locator)로부터 수신되는, 모바일 디바이스.
  12. 청구항 6에 있어서, 상기 제1 태그 리스트 또는 상기 제2 태그 리스트를 생성하기 이전에, 적어도 트레이닝 비디오 클립 또는 복수의 트레이닝 이미지를 포함하는 하나 이상의 인식 트레이닝 모델을 수신하는 것을 더 포함하는, 시스템.
  13. 청구항 6에 있어서, 상기 제1 태그 리스트 또는 상기 제2 태그 리스트를 생성하는 결정을 더 포함하며, 상기 결정은 상기 제1 태그 리스트 또는 상기 제2 태그 리스트를 생성하는 것과 연관된 CPU 부하 요구사항을 인식하는 것에 적어도 부분적으로 기초하는, 시스템.
  14. 청구항 6에 있어서, 상기 제2 태그 리스트를 생성하기 이전에, 트레이닝 이미지들의 세트로부터 하나 이상의 얼굴 특징에 대응하는 하나 이상의 로컬 바이너리 패턴 특징을 추출하는 것을 더 포함하는, 시스템.
  15. 청구항 14에 있어서, 상기 제2 태그 리스트를 생성하기 이전에,
    상기 하나 이상의 로컬 바이너리 패턴 특징으로부터, 얼굴 특징의 존재에 대응하는 제1 트레이닝 모델 및 상기 얼굴 특징의 부존재에 대응하는 제2 트레이닝 모델을 생성하는 것을 더 포함하는, 시스템.
  16. 청구항 14에 있어서, 상기 하나 이상의 얼굴 특징은 눈들 사이의 중앙점, 얼굴의 중앙점, 코, 입, 볼 또는 턱 중 하나 이상을 포함하는, 시스템.
  17. 청구항 14에 있어서, 상기 제2 태그 리스트를 생성하는 것은 제1 얼굴 특징의 제1 위치를 결정하는 것, 제2 얼굴 특징의 제2 위치를 결정하는 것, 및 상기 제1 위치와 상기 제2 위치 사이의 거리를 미리 결정된 상대 거리와 비교하는 것을 더 포함하는, 시스템.
  18. 청구항 6에 있어서, 상기 제1 태그 리스트 또는 상기 제2 태그 리스트를 생성하기 이전에, 상기 소형화 모델의 부분을 포함하는 직사각형 윈도우를 생성하는 것 및 상기 태그 리스트를 상기 직사각형 윈도우 내에 위치되는 하나 이상의 픽셀에 기초하는 것을 더 포함하는, 시스템.
  19. 청구항 18에 있어서, 상기 직사각형 윈도우는 상기 소형화 모델 내의 식별된 얼굴 특징의 위치에 적어도 부분적으로 기초하여 정의되는, 시스템.
  20. 청구항 18에 있어서, 상기 직사각형 윈도우는 100x100 픽셀의 치수를 포함하는, 시스템.
  21. 청구항 1에 있어서, 상기 이미지 리스트 중 하나 이상의 이미지를 지도상에 디스플레이하는 것을 더 포함하고, 상기 지도상의 상기 하나 이상의 이미지의 위치는 상기 하나 이상의 이미지와 연관되는 지리위치 태그에 대응하는, 모바일 디바이스.
  22. 청구항 1에 있어서, 상기 태그 리스트는 명함의 텍스트에 대응하는 태그를 더 포함하는, 모바일 디바이스.
  23. 청구항 6에 있어서, 상기 특정 이미지는 비디오 클립으로부터 검색되는 스틸 프레임을 포함하는, 시스템.
  24. 청구항 9에 있어서, 상기 장면 인식 태그 리스트는 크리스마스와 연관되는 날짜 또는 7월 4일과 연관되는 날짜에 대응하는 하나 이상의 태그를 더 포함하는, 방법.
KR1020177002492A 2014-06-27 2015-06-19 모바일 컴퓨팅 디바이스 상에 저장된 사진들을 편성하기 위한 시스템, 방법 및 장치 KR102004058B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/316,905 US20180107660A1 (en) 2014-06-27 2014-06-27 System, method and apparatus for organizing photographs stored on a mobile computing device
US14/316,905 2014-06-27
PCT/US2015/036637 WO2015200120A1 (en) 2014-06-27 2015-06-19 System, method and apparatus for organizing photographs stored on a mobile computing device

Publications (2)

Publication Number Publication Date
KR20170023168A KR20170023168A (ko) 2017-03-02
KR102004058B1 true KR102004058B1 (ko) 2019-07-25

Family

ID=54938686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177002492A KR102004058B1 (ko) 2014-06-27 2015-06-19 모바일 컴퓨팅 디바이스 상에 저장된 사진들을 편성하기 위한 시스템, 방법 및 장치

Country Status (9)

Country Link
US (1) US20180107660A1 (ko)
EP (1) EP3161655A4 (ko)
JP (1) JP6431934B2 (ko)
KR (1) KR102004058B1 (ko)
CN (1) CN107003977B (ko)
AU (1) AU2015280393B2 (ko)
CA (1) CA2952974C (ko)
SG (1) SG11201610568RA (ko)
WO (1) WO2015200120A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150120224A1 (en) 2013-10-29 2015-04-30 C3 Energy, Inc. Systems and methods for processing data relating to energy usage
KR102230267B1 (ko) * 2014-09-04 2021-03-19 삼성전자주식회사 영상 표시 장치 및 방법
US10185894B2 (en) * 2015-03-26 2019-01-22 Beijing Kuangshi Technology Co., Ltd. Picture management method and device, picture synchronization method and device
EP3278213A4 (en) 2015-06-05 2019-01-30 C3 IoT, Inc. SYSTEMS, METHODS AND DEVICES FOR AN APPLICATION DEVELOPMENT PLATFORM OF AN INTERNET OF THE THINGS OF A COMPANY
CN106776662B (zh) * 2015-11-25 2020-03-03 腾讯科技(深圳)有限公司 一种照片的分类整理方法和装置
WO2018117704A1 (en) 2016-12-23 2018-06-28 Samsung Electronics Co., Ltd. Electronic apparatus and operation method thereof
CN108959312B (zh) * 2017-05-23 2021-01-29 华为技术有限公司 一种多文档摘要生成的方法、装置和终端
US10839002B2 (en) 2017-06-04 2020-11-17 Apple Inc. Defining a collection of media content items for a relevant interest
US10922354B2 (en) 2017-06-04 2021-02-16 Apple Inc. Reduction of unverified entity identities in a media library
CN109215055A (zh) * 2017-06-30 2019-01-15 杭州海康威视数字技术股份有限公司 一种目标特征提取方法、装置及应用系统
CN108230491A (zh) * 2017-07-20 2018-06-29 深圳市商汤科技有限公司 门禁控制方法和装置、系统、电子设备、程序和介质
US10572321B2 (en) 2018-03-12 2020-02-25 Amazon Technologies, Inc. Machine learning repository service
CN108334439B (zh) * 2018-03-14 2021-06-04 百度在线网络技术(北京)有限公司 一种压力测试方法、装置、设备和存储介质
US11169677B1 (en) 2018-06-08 2021-11-09 Wells Fargo Bank, N.A. Future state graphical visualization generator
WO2020026036A1 (en) * 2018-07-31 2020-02-06 Marvell World Trade Ltd. Metadata generation at the storage edge
CN112055847B (zh) 2018-09-18 2024-03-12 谷歌有限责任公司 处理图像的方法和系统
US10872232B2 (en) * 2018-11-19 2020-12-22 Adobe Inc. Image filtering for subject and crowd identification
US11061982B2 (en) * 2018-12-06 2021-07-13 International Business Machines Corporation Social media tag suggestion based on product recognition
US10832096B2 (en) * 2019-01-07 2020-11-10 International Business Machines Corporation Representative-based metric learning for classification and few-shot object detection
WO2020168252A1 (en) * 2019-02-15 2020-08-20 Keee, Llc Shared privacy protected databases for person of interest
CN110490910A (zh) * 2019-08-13 2019-11-22 顺丰科技有限公司 目标检测方法、装置、电子设备及存储介质
US11704356B2 (en) 2019-09-06 2023-07-18 Dropbox, Inc. Restoring integrity of a social media thread from a social network export
JP7379059B2 (ja) * 2019-10-02 2023-11-14 キヤノン株式会社 中間サーバ装置、情報処理装置、通信方法
CN111209423B (zh) * 2020-01-07 2023-04-07 腾讯科技(深圳)有限公司 一种基于电子相册的图像管理方法、装置以及存储介质
US20230205812A1 (en) * 2021-12-03 2023-06-29 Awes.Me, Inc. Ai-powered raw file management
CN114611400B (zh) * 2022-03-18 2023-08-29 河北金锁安防工程股份有限公司 一种预警信息筛选方法及系统
CN114840700B (zh) * 2022-05-30 2023-01-13 来也科技(北京)有限公司 结合rpa和ai实现ia的图像检索方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253491A1 (en) * 2005-05-09 2006-11-09 Gokturk Salih B System and method for enabling search and retrieval from image files based on recognized information
WO2009138135A1 (en) * 2008-05-12 2009-11-19 Sony Ericsson Mobile Communications Ab Automatic tagging of photos in mobile devices

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3658761B2 (ja) * 2000-12-12 2005-06-08 日本電気株式会社 画像検索システムとその画像検索方法、及び画像検索プログラムを記録した記憶媒体
WO2002057959A2 (en) * 2001-01-16 2002-07-25 Adobe Systems Incorporated Digital media management apparatus and methods
TWI265715B (en) * 2005-07-21 2006-11-01 Inventec Appliances Corp Method for collecting business card data in mobile communication apparatus
JP2008191936A (ja) * 2007-02-05 2008-08-21 Fujifilm Corp コンテンツ登録・検索システムの構築支援方法、およびコンテンツ登録・検索システムの構築支援装置
JP5237724B2 (ja) * 2008-08-19 2013-07-17 オリンパスイメージング株式会社 画像検索システム
US8457366B2 (en) * 2008-12-12 2013-06-04 At&T Intellectual Property I, L.P. System and method for matching faces
WO2010071617A1 (en) * 2008-12-15 2010-06-24 Thomson Licensing Method and apparatus for performing image processing
US8886206B2 (en) * 2009-05-01 2014-11-11 Digimarc Corporation Methods and systems for content processing
EP2402867B1 (en) * 2010-07-02 2018-08-22 Accenture Global Services Limited A computer-implemented method, a computer program product and a computer system for image processing
US20120324002A1 (en) * 2011-02-03 2012-12-20 Afolio Inc. Media Sharing
US9268995B2 (en) * 2011-04-11 2016-02-23 Intel Corporation Smile detection techniques
JP5401695B2 (ja) * 2011-05-23 2014-01-29 株式会社モルフォ 画像識別装置、画像識別方法、画像識別プログラム及び記録媒体
CN103207870B (zh) * 2012-01-17 2020-06-02 华为技术有限公司 一种照片分类管理方法、服务器、装置及系统
US9008433B2 (en) * 2012-02-08 2015-04-14 International Business Machines Corporation Object tag metadata and image search
US8824750B2 (en) * 2012-03-19 2014-09-02 Next Level Security Systems, Inc. Distributive facial matching and notification system
JP6184125B2 (ja) * 2012-04-12 2017-08-23 キヤノン株式会社 医療支援システム
US8996305B2 (en) * 2012-06-07 2015-03-31 Yahoo! Inc. System and method for discovering photograph hotspots
EP2862100A4 (en) * 2012-06-15 2016-05-11 En-Hui Yang METHOD AND SYSTEMS FOR THE AUTOMATIC AND EFFICIENT CLASSIFICATION, TRANSFER AND MANAGEMENT OF MULTIMEDIA CONTENT
US20140115099A1 (en) * 2012-07-17 2014-04-24 Nowshade Kabir Method and System for Integrating Information from Mobile Devices to a Semantic Knowledge Repository
US8799829B2 (en) * 2012-09-28 2014-08-05 Interactive Memories, Inc. Methods and systems for background uploading of media files for improved user experience in production of media-based products

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253491A1 (en) * 2005-05-09 2006-11-09 Gokturk Salih B System and method for enabling search and retrieval from image files based on recognized information
WO2009138135A1 (en) * 2008-05-12 2009-11-19 Sony Ericsson Mobile Communications Ab Automatic tagging of photos in mobile devices

Also Published As

Publication number Publication date
SG11201610568RA (en) 2017-01-27
JP6431934B2 (ja) 2018-11-28
EP3161655A4 (en) 2018-03-07
CA2952974C (en) 2021-09-14
US20180107660A1 (en) 2018-04-19
EP3161655A1 (en) 2017-05-03
WO2015200120A1 (en) 2015-12-30
AU2015280393B2 (en) 2018-03-01
KR20170023168A (ko) 2017-03-02
CN107003977B (zh) 2021-04-06
CA2952974A1 (en) 2015-12-30
AU2015280393A1 (en) 2017-01-12
JP2017530434A (ja) 2017-10-12
CN107003977A (zh) 2017-08-01

Similar Documents

Publication Publication Date Title
KR102004058B1 (ko) 모바일 컴퓨팅 디바이스 상에 저장된 사진들을 편성하기 위한 시스템, 방법 및 장치
US10176196B2 (en) System, method and apparatus for scene recognition
US20150317511A1 (en) System, method and apparatus for performing facial recognition
Memon et al. GEO matching regions: multiple regions of interests using content based image retrieval based on relative locations
US9430719B2 (en) System and method for providing objectified image renderings using recognition information from images
US8649572B2 (en) System and method for enabling the use of captured images through recognition
US7809192B2 (en) System and method for recognizing objects from images and identifying relevancy amongst images and information
US9298982B2 (en) System and method for computing the visual profile of a place
US20060253491A1 (en) System and method for enabling search and retrieval from image files based on recognized information
US10140315B1 (en) Identifying visual portions of visual media files responsive to visual portions of media files submitted as search queries
Nie et al. Perceptual attributes optimization for multivideo summarization
Dharani et al. Content based image retrieval system using feature classification with modified KNN algorithm
Sathya et al. A survey on content based image retrieval using convolutional neural networks
Wang et al. A feature extraction and similarity metric-learning framework for urban model retrieval
Pertusa et al. Mirbot: A multimodal interactive image retrieval system
Srilatha Scalable Image Search Re-ranking through Content Based Image Retrieval (CBIR) Method.
Doukim et al. State of the art of content-based image classification

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