KR101826815B1 - 이미지-특징-기반 인식을 위한 시스템들 및 방법들 - Google Patents

이미지-특징-기반 인식을 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR101826815B1
KR101826815B1 KR1020167024935A KR20167024935A KR101826815B1 KR 101826815 B1 KR101826815 B1 KR 101826815B1 KR 1020167024935 A KR1020167024935 A KR 1020167024935A KR 20167024935 A KR20167024935 A KR 20167024935A KR 101826815 B1 KR101826815 B1 KR 101826815B1
Authority
KR
South Korea
Prior art keywords
query
image
feature descriptors
image feature
reference image
Prior art date
Application number
KR1020167024935A
Other languages
English (en)
Other versions
KR20160144354A (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 KR20160144354A publication Critical patent/KR20160144354A/ko
Application granted granted Critical
Publication of KR101826815B1 publication Critical patent/KR101826815B1/ko

Links

Images

Classifications

    • G06F17/30256
    • 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/5838Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using colour
    • 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
    • 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
    • G06F17/3028
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • G06K9/00013
    • G06K9/00671
    • G06K9/6215
    • G06K9/6232
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes

Abstract

사용자가 비디오, 프린트, 또는 그 또는 그녀 주위의 세계로부터 단일 이미지 스냅샷을 캡처하고, 스냅샷에 디스플레이되는 관심 매체 자체 또는 아이템들과 관련되는 부가 정보를 획득할 수 있게 하는 방법들 및 시스템들이 본원에 설명된다. 스냅샷의 핑거프린트는 질의로 사용되고 서버에 송신된다. 본원에 설명되는 바와 같이, 이미지 특징 기반 인식은 핑거프린트에 기초하여 이미지들의 더 큰 데이터베이스로부터 더 작은 세트의 후보 매치들을 식별하기 위해 특징 인덱스를 사용한다. 거리 메트릭 및 라디컬 해시 테이블 설계를 사용하는 새로운 방법들 및 시스템들은 확률 효과들을 이용하고 별개의 이미지 특징들이 중복 이미지 특징들에 비해 바람직한 것을 허용하여, 더 독특한 데이터 포인트들만이 인덱스 내에 상주할 수 있게 하여, 식별 프로세스에서 빠르게 사용될 수 있는 린 인덱스를 산출한다.

Description

이미지-특징-기반 인식을 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR IMAGE-FEATURE-BASED RECOGNITION}
관련 출원들
본 출원은 2014년 2월 10일에 출원된 미국 임시 특허 출원 번호 61/937,859에 대한 우선권을 주장하며, 그것의 내용들은 이로써 전체적으로 참조로 포함된다.
분야
본 개시는 시각 객체 인식에 관한 것으로, 특히 디지털 이미지들 내의 콘텐츠 및 객체들의 인식을 위한 방법들 및 시스템들, 및 인식된 콘텐츠 객체들과 관련되는 부가 콘텐츠 및/또는 정보의 신속한 전달을 위한 방법들 및 시스템들에 관한 것이다. 본원에 개시되는 방법들 및 시스템들은 또한 검색 서비스들 및 콘텐츠 기반 이미지 검색 및 인식 프로세스들에 적용가능할 수 있다.
현재의 세계에서, 거의 모든 사람은 언제나 그들과 함께 카메라 사용가능 이동 디바이스를 갖는다. 이동 디바이스 사용자들은 그들의 이동 디바이스를 사용하여 그들 주위의 세계에 관한 부가 정보를 획득하기 위해 이동 디바이스를 사용할 수 있도록 익숙해졌다. 이동 디바이스 사용자들은 현재 부가 정보를 획득하고, 가격들을 조사하고, 구입 전에 제품들을 보고, 아이템들 또는 콘텐츠를 심지어 구매하기 위해 인터넷을 사용할 것이다. 사용자들은 현재 가능한 한 최소 수의 단계들에 의해, 가능한 한 빠르고 효율적으로 그러한 액세스를 원한다.
더 많은 정보에 대한 요구는 예를 들어 우리 주위의 세계에서 객체 또는 장면을 보는 것에 의해, 프린트로 보여지는 어떤 것, 예컨대 빌보드, 포스터, 또는 영화에 의해, 또는 스크린 상에서 보여지는 어떤 것, 예컨대 영화, TV 쇼, 웹사이트, 또는 다른 디지털 콘텐츠에 의해 촉발될 수 있다.
사용자의 이동 디바이스에 아이템들 또는 콘텐츠에 관한 부가 정보의 전달을 용이하게 하는 기존 기술들이 있다. 예를 들어, 1차원 바코드 또는 2차원 QR 코드와 같은 마커는 제품에 물리적으로 부착될 수 있거나, 인쇄 페이지, 포스터, 또는 빌보드 상의 제품의 이미지 다음으로 인쇄될 수 있다. 일부 경우들에서, 인공적으로 발생된 패턴들은 이미지들에 추가될 수 있다. 코드 또는 인공적으로 발생된 패턴을 특수 목적 스캐닝 디바이스에 의해 또는 사용자의 이동 디바이스 상의 카메라 기능 및 앱을 사용하여 스캐닝함으로써, 더 많은 정보가 사용자에게 전달될 수 있다. 부가 정보는 마커로 직접 코딩될 수 있거나, 마커로 코딩되는 정보는 데이터베이스로부터 부가 정보를 검색하기 위해 사용될 수 있다.
모든 객체가 그러한 마커를 갖는 것은 아니거나, 그러한 마커를 가질 수 있는 것은 아니므로, 인공 마커들의 삽입 없이 이미지들의 인식은 기술적으로 더 복잡하다. 이러한 경우들에 대해, 기술들은 객체 인식 알고리즘들 및 패턴 매칭의 조합을 사용하여 이미지들을 인식하기 위해 개발되었다. 비올라-존스 방법은 예를 들어 폴 비올라 및 마이클 존스에 의한 "The Rapid Object Detection Using a Boosted Cascade of Simple Features"에 설명된 바와 같이, 이미지에서 특정 형상의 존재의 확률을 평가하기 위해 미리 정의된 스캔 동작들의 캐스케이드를 수행하고, 객체를 식별하기 위해 분류 알고리즘, 예컨대 AdaBoost를 수행한다. "적분 이미지"를 랜덤 픽셀 액세스 데이터 구조로 사용하면, 비올라-존스 방법은 더 큰 일반 세트로부터 소수의 임계 시각 특징들을 선택하여 분류기들의 서브세트를 산출하고, 그 다음에 점진적으로 더 복잡한 분류기들을 "캐스케이드"(AdaBoost)에서 조합하여 배경 영역들이 폐기되는 것을 허용하고 유망한 객체 유사 영역들에 대한 더 많은 계산들이 수행되는 것을 허용한다. 분류 방법들은 전형적으로 2개의 단계, 즉, 트레이닝 단계와 테스트 단계를 가지며, 그 동안에 트레이닝 데이터는 객체들을 식별하기 위해 사용될 수 있다. 분류 방법들은 계산 집약적이고 트레이닝 이미지들의 주의 깊은 사전 선택에 의존한다. 이러한 타입들의 객체 인식 방법들은 전형적으로 얼굴들, 교통 표지들, 브랜드 로고들 등과 같은 동일한 형상 및 특성들을 갖는 객체들의 검출에 사용된다.
다른 접근법들은 이미지 기반 검출 및 인식을 위한 이미지들에 존재하는 개별의 속성들 또는 특징들을 이용한다. 이러한 시스템들에서, 특성들은 한 세트의 트레이닝 이미지들로부터 추출되고, 그 다음에 시스템은 한 세트의 스냅샷들 중에서, 또는 스냅샷과 트레이닝 세트의 이미지들 사이에서 대응하는 특성들이 있는지를 검출한다. 이미지 기반 검출 및 인식의 애플리케이션들은 파노라마 및 이미지 스티칭, 스파스 3D 재구성, 증강 현실(예를 들어, Microsoft® Photosynth™, VisualSFM™, Qualcomm® Vuforia™)로부터, Google® Goggles™ 및 Kooaba™/Vuforia™ 클라우드 인식에 의해 제공되는 이미지 검색 및 인식 서비스들로 걸친다. 이러한 이미지 기반 인식 기술들은 객체들을 인식하기 위해서만 사용되고 이미지 내에 놓이는 여분의 정보를 추출하지 않는다. 게다가, 기존 기술들은 전형적으로 캡처링 디바이스(예를 들어, 스마트폰)로부터 네트워크를 통해 처리 서버로 데이터 밀집 매체 파일들(예컨대 이미지 자체 또는 비디오 및/또는 오디오 데이터)의 송신을 필요로 하며, 그것은 객체의 인식을 더 지연시킨다. 기존 방법들은 또한 객체와 연관되는 모든 부가 정보가 서버로부터 다시 이동 디바이스로 송신되는 것에 의해, 시간이 걸리고 서버에 네트워크 연결이 없는 상황들에서 사용가능하지 않은 것을 필요로 한다.
비디오로부터 특정 특징들을 추출하고 콘텐츠를 식별할 시의 사용을 위해 콘텐츠 식별 서버에 송신하는 "핑거프린트"를 발생시키는 일부 방법들 및 시스템들이 존재한다. Yu의 미국 특허 번호 8,793,274는 예를 들어 캡처된 콘텐츠로부터 비디오 DNA(Video DNA)(VDNA) 핑거프린트들을 추출한다. 그러나, '274 특허는 첨부 오디오로부터를 포함하는, 비디오(이미지들의 시퀀스를 캡처하고 있음)로부터 핑거프린트들을 추출하는 것에 구체적으로 관련된다.
또한 매체 콘텐츠의 자동 인식을 위한 일부 방법들 및 시스템들을 제공하는 일부 시도들이 있었지만, 모두는 지금까지 만족스럽지 못했다. 정지 매체를 위해 작동하는 임의의 기존 방법들 및 시스템들은 비디오와의 사용에 용이하게 잘 적응하지 못한다. VDNA 핑거프린트들을 발생시키는 시스템들은 계산 집약적이고 네트워크를 통해 빠르게 송신하는 것이 어려운 큰 매체 파일들을 사용한다. 더욱이, VDNA 핑거프린트들을 사용하는 임의의 시스템은 네트워크를 통한 다수의 액세스들이 동시에 대역폭 문제를 더 악화시킬 수 있기 때문에, 사용 시에 스파이크들에 관련되어야 한다. 비디오 매체 및 객체들을 인식하려고 시도하는 시스템들은 관심 아이템들을 포함하는 양호하게 사용가능한 이미지를 캡처하는 문제를 해결해야 한다. 그러한 시스템들은 또한 사용자의 관심을 끌 수 있었던 장면이 디스플레이된 때의 순간과 사용자가 캡처를 개시할 때의 순간 사이에 불가피하게 발생하는 시간 지연을 처리해야 한다.
따라서, 객체 또는 콘텐츠를 검출하거나 인식하기 위해 최소량의 매체 데이터(예컨대 오디오 데이터와 함께 일련의 이미지들을 사용하는 것을 필요로 하는 VDNA 스타일 핑거프린트 발생 대신에, 단일 이미지)만을 필요로 하고, 네트워크를 통한 매체 데이터의 송신을 필요로 하지 않는 시스템들 및 방법들에 대한 요구가 있다. 더욱이, 또한 전형적으로 비디오 프레임들을 트레이닝 세트로 사용하는 이미지 인식들과 연관되는 제한들을 극복하기 위해, 비디오 프레임들로부터 다량의 트레이닝 데이터를 처리하기 위해 확장가능한 시스템에 대한 요구가 있다. 그러한 제한들은 막대한 양의 단일 이미지들 또는 비디오 프레임들을 전형적인 이미지 인식 도메인들과 비교하는 것, 및 비디오 프레임들로부터 발생되는 트레이닝 데이터 세트 내의 엄청난 중복을 포함할 수 있다. 더욱이, 특히 이미지 인식이 비디오를 통해 수행될 때, 인식 프로세스의 정확도를 가속화하고 개선하는 요구가 또한 있다. 마지막으로, 또한 중복 질의들을 필터링하여 질의들에서 스파이크들을 처리해서, 이전 네트워크 및 계산 자원들을 확보하는 요구가 있다.
본 개시에 포함되고 이의 일부를 구성하는 첨부 도면은 수개의 실시예들을 예시하고, 명세서와 함께, 개시된 원리들을 설명하는 역할을 한다. 도면들에서,
도 1a는 본 개시의 실시예들에 따른 디스플레이된 디지털 콘텐츠 내의 관심 아이템과 관련되는 부가 정보를 사용자들에게 제공하는 예시적 시스템을 예시하는 도면이다.
도 1b는 디스플레이된 디지털 콘텐츠에서 객체들 또는 사물들에 관한 더 많은 정보를 획득하는 본원에 설명되는 예시적 방법들 및 시스템들의 사용을 예시한다.
도 1c는 디지털 매체 내의 객체들 또는 사물들에 관한 더 많은 정보를 사용자들에게 제공하는 본원에 설명되는 예시적 방법들 및 시스템들의 사용을 예시한다.
도 2a는 이미지 핑거프린트들로 어셈블링되는 특징 서술자 벡터들의 집합을 이미지 내의 두드러진 포인트들(salient points)로부터 발생시키는 종래 기술의 프로세스를 예시한다.
도 2b는 질의 이미지 및 참조 이미지의 대응하는 특징 위치들과 매칭하는 피팅 변환을 발견하는 종래 기술의 방법들을 예시하는 도면들이다.
도 3은 본 개시의 실시예들에 따른 이미지 스냅샷 내의 관심 객체 상에서 부가 정보를 획득하는 예시적 시스템을 예시하는 블록도이다.
도 4a는 본 개시의 실시예들에 따른 라이브 카메라 비디오 피드를 입력으로서 처리하기 위해 이미지 특징 인덱스 데이터베이스를 질의하는 예시적 방법을 예시하는 흐름도이다.
도 4b는 본 개시의 실시예들에 따른 매칭 이미지를 발견하기 위해 이미지 특징 인덱스 데이터베이스를 질의하는 결과를 처리하는 예시적 방법을 예시하는 흐름도이다.
도 4c는 본 개시의 실시예들에 따른 매칭 이미지를 발견하기 위해 이미지 특징 인덱스 데이터베이스를 질의하기 전에 캐싱된 이미지 세트를 질의하는 예시적 방법을 예시하는 흐름도이다.
도 5a 내지 도 5h는 이미지 특징 인덱스 데이터베이스를 질의하고, 조직화하고, 액세스하는 종래 기술의 방법들을 예시하는 도면들이다.
도 6a 내지 도 6e는 본 개시의 실시예들에 따른 이미지 특징 인덱스 데이터베이스를 질의하고, 조직화하고 액세스하는 다른 예시적 방법들을 예시하는 도면들이다.
도 7은 본 개시의 실시예들에 따른 이미지 핑거프린트들을 처리하는 예시적 시스템을 예시하는 블록도이다.
도 8은 본 개시의 실시예들에 따른 이미지 핑거프린트들을 처리하는 다른 예시적 시스템을 예시하는 블록도이다.
도 9는 본 개시의 실시예들이 구현될 수 있는 예시적 시스템을 예시하는 블록도이다.
이제 실시예들이 상세히 참조될 것이며, 그것의 예들은 첨부 도면들에 예시된다. 가능할 때는 언제든지, 동일한 참조 번호들은 동일 또는 유사한 부분들을 언급하기 위해 도면들 도처에 사용될 것이다.
사용자들이 디지털 콘텐츠 또는 그들 주위의 세계에서 보는 사람, 장소들, 및 사물들에 관한 부가 정보를 사용자들에게 제공함으로써, 정보 풍부 시야 경험을 사용자들에게 제공하는 방법들 및 시스템들이 본원에 설명된다. 본원에 설명되는 방법들 및 시스템들은 종래 기술의 시스템들에 비해 수개의 장점들을 제공한다. 우선, 본원에서의 방법들 및 시스템들은 비디오, 프린트, 또는 사용자 주위의 세계로부터 캡처되든지, 단일 이미지 프레임 상에서 동작한다. 본원에서의 방법들 및 시스템들은 이동 디바이스가 이미지 캡처 기능성을 갖고, 서버가 이미지 인식 서비스를 제공하면, 웹 기반 서버에 연결되는 사용자의 이동 디바이스 상에서 동작되는 애플리케이션에 의해 실시될 수 있다. 실제로, 본원에 개시되는 본 발명들의 장점들 중 하나는 이러한 방법들 및 시스템들이 스마트폰들 및 태블릿들에서 발견되는 바와 같이 핸드헬드 소비자 카메라들에 의해 만들어진 사진들을 사용하여 구현될 수 있다는 것이다.
본원에 설명되는 방법들 및 시스템들에서, 스냅샷의 "핑거프린트"는 부가 정보를 식별하기 위해 추출되고 사용된다. 방법들 및 시스템들은 이미지 특징들을 식별하고 설명하며 단일 이미지의 고유 핑거프린트를 발생시키기 위해 본원에 설명된다. 게다가, 원래 이미지는 핑거프린트는 원하는 경우, 부가 정보를 사용하여 사용자에게 다시 디스플레이하기 위해 사용될 수 있으므로, 원래 이미지는 사용자의 이동 디바이스 상에 저장될 필요가 없다.
본원에 설명되는 시스템들 및 방법들을 사용하면, 핑거프린트를 질의로 사용하여 수행할 시에 초기 스냅샷과 관련되는 매체 또는 콘텐츠를 식별함으로써 부가 정보를 검색한다. 이미지 특징 기반 인식은 본원에 설명되는 바와 같이, 더 큰 데이터베이스의 이미지들로부터 더 작은 세트의 후보 매치들을 식별하기 위해 특징 인덱스를 사용한다. 특징 인덱스의 사용은 큰 이미지 세트들에 비해 더 빠른 검색들을 가능하게 한다. 특징 인덱싱을 사용하는 기존 해결법들은 전형적으로 비디오 재료로부터 추출되는 단일 프레임들의 집합들에서 보여지는 바와 같이, 다수의 유사성들을 갖는 거대한 세트의(수억 개의) 이미지 특징들을 가진 시나리오들에서 실패한다. 그 대신에, 본원에 설명되는 방법들 및 시스템들은 확률 효과들을 이용하는 거리 메트릭 및 라디컬 해시 테이블 설계를 사용하여 종래 기술이 갖는 문제들을 극복한다. 본원에 설명되는 방법들 및 시스템들은 중복 이미지 특징들에 비해 독특한 이미지 특징들을 자동으로 분류하여, 더 많은 독특한 데이터 포인트들만이 인덱스 내에 상주할 수 있게 하여, 식별 프로세스에 빠르게 사용될 수 있는 린 인덱스(lean index)를 산출한다. 대조적으로, 종래의 근사 최단 이웃(Approximate Nearest-Neighbor)(ANN) 방법들은 매칭 성능을 크게 악화시키는 필터링되지 않은 모든 데이터 포인트들을 저장한다.
본원에 설명되는 방법들 및 시스템들은 이미지 해상도 및 특이성을 유지하는 동안에 다량의 이미지 데이터를 처리하는 수단을 제공한다. 본원에 설명되는 방법들 및 시스템들은 또한 높은 사용 기간들로 인해 요청 트래픽에서 스파이크들을 처리할 것이다.
게다가, 본원에 설명되는 일부 실시예들에서, 부가 정보는 이동 디바이스 상에서 풀 스케일 이미지 인식을 수행하는 것 없이 식별될 수 있다. 본원에 설명되는 방법들 및 시스템들은 요청들 중 다수를 차단하고 처리하기 위해 웹 통신 계층과 검색 시스템 사이에서 동작하는 독립형 복제가능 계층의 사용을 서버 상에 도입한다. 이동 디바이스에서 유사 또는 동등한 요청들을 선택적으로 캐싱하고 식별함으로써, 보다 소수의 요청들이 서버에 전송될 필요가 있다.
본원에 설명되는 다수의 발명들은 단독으로 또는 서로 다양한 조합들로 구현될 수 있다. 다양한 발명들 각각은 아래에 더 상세히 설명될 것이다.
도 1a는 본원에 설명되는 발명들의 일부 또는 전부를 사용하여, 콘텐츠 제공자들(101)을 시각 매체(103)를 통해 사용자들(102)에게 연결하는 시스템(100)을 하이 레벨로 도시하는 도면이다. 콘텐츠 제공자들(101)은 예를 들어 제품 또는 콘텐츠를 갖는 제작자들, 소매업자들, 광고주들, 매체 콘텐츠 소유자들, 및 다른 엔티티들일 수 있다. 시각 매체(103)는 예를 들어 텔레비전 방송, 영화, 프린트, 또는 빌보드일 수 있다. 시각 매체는 분배 네트워크(104)를 통해, 비디오 매체 방송 플랫폼(105) 또는 인쇄 매체(106)에 전달될 수 있다.
도 1a에 도시된 시스템에서, 사용자(102)는 이동 디바이스, 예컨대 태블릿(121) 또는 스마트폰(122)을 갖는다. 이동 디바이스는 또한 일부 실시예들에서, 프로세서, 메모리, 및 무선 통신 능력을 갖는 카메라일 수 있다. 일부 실시예들에서, 이동 디바이스는 이동 디바이스의 배향을 검출하는 가속도계, 자이로스코프, 또는 다른 디바이스를 포함한다. 본원에 설명되는 실시예들에서, 이동 디바이스는 인터넷 접속 가능하다. 이동 디바이스의 실시예들은 도 3, 도 8, 및 도 9에 대해 아래에 더 상세히 설명될 것이다.
일부 실시예들에서, 사용자(102)는 플랫폼들(105 및 106) 상에 직접 디스플레이되거나 브로드캐스팅되는 바와 같이 콘텐츠(123)를 소비할 수 있다. 콘텐츠(123)는 또한 사용자의 이동 디바이스에서 직접 디스플레이될 수 있다.
제1 단계에서, 사용자는 그 또는 그녀가 더 많은 정보를 습득하고 싶어하는 관심거리를 식별한다. 관심 사물은 예를 들어 콘텐츠(123 또는 124)에 디스플레이되는 아이템, 예컨대 제품, 소도구, 의류, 또는 다른 객체들일 수 있다. 관심 사물은 또한 장면 자체의 위치, 또는 장면에 묘사되는 주제일 수 있다. 일부 실시예들에서, 관심 사물은 특정 콘텐츠 자체, 예를 들어 디스플레이되고 있는 영화, 비디오, 또는 프로그램이다.
사용자의 이동 디바이스 상의 카메라 기능성 및 최종 사용자 애플리케이션을 사용하여, 사용자는 관심 사물을 묘사하는 스크린의 스냅샷을 촬영한다. 스냅샷은 사물 자체의 클로즈업일 수 있거나, 관심 사물의 주위 영역을 포함할 수 있다. 스냅샷은 또한 콘텐츠를 디스플레이하고 있는 디스플레이 디바이스 이상의 것을 포함할 수 있고 콘텐츠는 스크린 상에 디스플레이된다. 일부 실시예들에서, 예컨대 콘텐츠(121 또는 122)가 사용자의 이동 디바이스 상에 디스플레이되고 있을 때, 사용자는 스크린 캡처를 취함으로써 관심 사물을 묘사하는 스크린의 스냅샷을 촬영할 수 있다.
도 1b는 디스플레이된 디지털 콘텐츠에서 객체들 또는 사물들에 관한 더 많은 정보를 획득하는 본원에 설명되는 예시적 방법들 및 시스템들의 사용을 예시한다. 도 1b에 도시된 바와 같이, 사용자는 큰 뷰 영역(관심 사물을 포함함)이 스크린 상에 도시되도록 이동 디바이스들(121 또는 122)을 유지할 수 있다. 일부 실시예들에서, 전체 뷰 영역이 캡처된다. 일부 실시예들에서, 시스템은 뷰 영역의 특정 부분(예컨대 콘텐츠를 도시하는 디스플레이 스크린)만이 소재이고, 디스플레이 스크린만이 캡처되는 것을 자동으로 결정할 수 있다. 일부 실시예들에서, 사용자는 예를 들어 부분(151)에 의해 표시되는 바와 같이, 사용자의 손가락 또는 스타일러스에 의해 관심 영역을 터치하거나 둘러쌈으로써 디스플레이에 도시되는 이미지의 서브세트를 인터페이스(150)를 통해 표시할 수 있다. 그 다음, 최종 사용자 앱은 이동 디바이스의 디스플레이에서 이미지의 부분(151)만을 캡처할 수 있다. 일부가 캡처되면, 이미지의 부분(151)은 이때 이미지 데이터베이스에 의해 처리되는 질의를 발생시키기 위해 사용된다. 그 다음, 이미지 데이터베이스는 이미지(152)를 복귀시킬 수 있으며, 이미지는 이동 디바이스들에서의 디스플레이를 위해, 부분(151)의 적어도 일부와 매칭하는 것으로 결정된다.
부가 정보(153)는 캡처된 이미지에 기초하여 선택되고, 사용자에게 디스플레이될 수 있다. 디스플레이되는 부가 정보(153)는 스냅샷 내의 매체 콘텐츠와 관련되거나 연관되는 정보일 것이다. 부가 정보(153)는 전체 스냅샷 또는 임의의 식별된 부분(151)에 기초하여 선택될 수 있다.
일부 실시예들에서, 이미지(152)는 부가 정보(153) 위, 아래, 또는 옆에, 부가 정보(153)와 함께 디스플레이될 수 있다. 일부 실시예들에서, 이미지(152)는 부가 정보(154)와 상관되는 태그들(154)(또한 주석들로 칭해짐)을 포함할 수 있다. 적어도 일부 실시예들에서, 태그들(154)은 부가 정보(153)가 식별되었던, 이미지(152)에 묘사되는 바와 같은 아이템들의 일부 또는 전부 옆에 나타난다. 일부 실시예들에서, 태그들(154)은 태그에 의해 마킹되는 아이템과 연관되는 부가 정보(153)의 일부들로 내비게이션하도록 사용자에 의해 사용될 수 있다. 태그를 클릭함으로써, 예를 들어 사용자는 부가 정보에 대한 링크 또는 검색 결과들일 수 있는 스크린 상의 연관된 정보를 취할 수 있다. 일부 실시예들에서, 태그 자체는 부가 정보에 대한 하이퍼링크를 표현한다.
도 1c에 도시된 실시예에서, 중심에 디스플레이되는 이미지(163)는 이미 주석이 달려있다. 좌측의 도면은 계층에, 부가 정보(164)를 저장하는 디렉토리(162)를 도시한다. 부가 정보(164)는 객체(예를 들어, 도 1c에 예시된 바와 같은 소파)를 가리키는 특정 태그(166)와 연관될 수 있고, 객체와 관련되는 정보를 포함할 수 있다. 정보는 객체에 적절한 이미지들, 텍스트 설명, 가격 책정, 추가 정보에 대한 링크들 등을 포함할 수 있고, 정보는 디렉토리(162) 아래의 계층 구조에 저장된다. 도 1c에 예시된 바와 같이, 사용자가 태그(166)를 활성화시킨 후에, 부가 정보(164)의 적어도 일부가 디스플레이된다. 예를 들어, 소파의 이미지(167), 소파의 텍스트 설명(168), 및 다른 정보가 디스플레이될 수 있다.
이제 도 1a로 돌아가면, 사용자가 스냅샷을 촬영한 후에, 최종 사용자 앱은 스냅샷의 핑거프린트 또는 스냅샷의 표시된 부분을 발생시킨다. 이미지의 핑거프린트를 발생시키는 많은 공지된 방법들이 존재한다. 일반적으로, 제1 단계로서, 이러한 방법들은 두드러진 포인트 검출 알고리즘, 예컨대 가속 세그먼트 테스트로부터의 특징들(Features from Accelerated Segment Test)(FAST), 해리스, 최대 안정 극단 영역들(Maximally stable extremal regions)(MSER) 등, 또는 등가물을 사용하여 이미지에서 두드러진 포인트들을 검출한다. 그 다음, 두드러진 포인트들은 도 2a에 도시된 바와 같이, 특징 서술자 벡터들을 발생시키기 위해 사용될 수 있다. 도 2a에 도시된 바와 같이, 이미지(218)의 두드러진 포인트들(219a 및 219b)은 벡터들(220a 및 220b)에 의해 각각 표현될 수 있다. 스케일 불면 특징 변환(Scale-invariant feature transform)(SIFT), 스피드 업 로버스트 특징들(Speeded Up Robust Features)(SURF), 이진 로버스트 불변 스케일가능 키포인트(Binary Robust Invariant Scalable Keypoint)(BRISK), 고속 레티나 키포인트(Fast Retina Keypoint)(FREAK)는 특징 서술자 벡터들을 발생시키는 공지된 방법들의 예들이다. 특징 서술자 벡터들은 픽셀 패치를 특징화하는 부동 소수점 수들 또는 비트들의 고정 크기 벡터(예를 들어, 64 차원 또는 128 차원 부동 소수점 벡터, 또는 512 차원 비트 벡터)일 수 있다. 벡터는 서술자 샘플링 그리드(224) 내에서, 픽셀 그리드(222)에 따른 이미지 내에 배열되는 픽셀 패치들을 샘플링함으로써 발생될 수 있고, 벡터 값들은 2개의 픽셀 패치를 표현하는 2개의 벡터 사이의 거리가 2개의 픽셀 패치 사이의 유사성의 정도(예를 들어, 휘도/밝기)와 상관되도록 선택될 수 있다.
도 2b에 도시된 바와 같이, 이미지 콘텐츠는 참조 이미지 내의 대응하는 콘텐츠와 비교하여 상이하게 배향될 수 있고, 매치들은 여전히 발견될 수 있다. 예를 들어, 질의 이미지(240)의 질의 특징들(242)은 참조 이미지(250)의 질의 특징들(252)과 매칭하는 것으로 발견될 수 있다. 그 다음, 이미지 콘텐츠(240)의 상대 포즈(또는 배향)는 질의 이미지(240) 내의 질의 특징들(242) 각각의 위치들과, 참조 이미지(250) 내의 대응하는 참조 특징들(252)의 위치들 사이의 한 세트의 관계들로부터 유도될 수 있다. 세트의 관계들은 변환 매트릭스로 표현될 수 있다. 일부 실시예들에서, 변환 매트릭스는 참조 이미지의 특징들의 변환된 위치들이 질의 이미지(240)의 특징들의 적어도 일부에 대한 위치들에 일치할 때까지, 참조 이미지(250)의 특징들의 위치들을 반복적으로 변환하기 위해 산출될 수 있다. 변환 매트릭스 산출의 각각의 반복에 대해, 변환 매트릭스의 유효성은 참조 이미지(특징 위치들이 변환 매트릭스로 변환되었음)와 질의 이미지(특징 위치들이 변환되지 않음) 사이의 일치 세트의 대응하는 특징들에 대한 피트가 있는지를 판단함으로써 체크될 수 있다. 일부 실시예들에서, 변환 매트릭스는 최소 자승 근사를 사용하여 산출될 수 있다. 도 4a 및 도 4b에 설명되는 본 발명의 방법들에 대해 나중에 논의되는 바와 같이, 포즈의 결정은 이동 디바이스 또는 서버에서 수행될 수 있다.
그 다음, 특징 서술자들의 조합은 질의 이미지에 포함되는 하나 이상의 시각 특징들을 표현하기 위해 사용될 수 있으며, 이 시각 특징들은 특징 서술자들에 대응하는 픽셀 패치들의 조합으로 그래프로 제공된다. 특징 서술자들의 조합은 또한 특징들 서술자들을 포함하는 참조 이미지를, 어느 정도의 확실성으로 식별하기 위해 사용될 수 있다. 참조 이미지의 식별은 참조 이미지와 연관되는 특징 서술자들과 질의 이미지로부터 추출되고(질의 이미지와 연관되고) 핑거프린트에 포함되는 특징 서술자들 사이의 관계에 기초할 수 있다. 특징 서술자들 사이의 관계는 식별의 성공 가능성을 결정할 수 있다.
핑거프린트는 스냅샷으로부터 추출되는 특정 특징들의 디지털 표현이다. 핑거프린트는 질의의 목적을 위해 조정되는 한 세트의 특징 서술자들을 포함할 수 있다(또는 한 세트의 특징 서술자들에 기초하여 발생될 수 있다). 이미지 핑거프린트의 발생에 포함되는 특징 서술자들은 사용자에 의해 선택될 수 있다. 그 다음, 최종 사용자 애플리케이션은 이미지 부분(151) 내에서 두드러진 포인트들을 검출하고, 특징 서술자들을 적절히 발생시킬 수 있다. 사용자가 선택을 하지 않을 때, 최종 사용자 애플리케이션은 스냅샷의 전체로부터 두드러진 포인트들을 검출하고, 검출된 두드러진 포인트들과 연관되는 핑거프린트들을 적절히 발생시킬 수 있다. 일부 실시예들에서, 사용자는 인터페이스(150) 상의 태핑 액션(tapping action)을 통해 이미지에서 특징 객체를 더 선택할 수 있고, 최종 사용자 애플리케이션은 선택된 객체와 연관되는 핑거프린트들의 송신을 우선순위화할 수 있다.
다시 도 1a를 참조하면, 스냅샷 이미지의 핑거프린트가 획득되거나 발생된 후에, 핑거프린트는 부가 정보를 획득하기 위해 사용된다. 적어도 하나의 실시예에서, 핑거프린트는 통신 링크(130)를 통해 서버(140)에 송신된다. 핑거프린트는 무선 링크를 통해, 또는 다른 통신 링크를 통해 서버에 무선으로 송신될 수 있다.
서버(140)는 예를 들어, 하나 이상의 복제가능 질의 캐시들(141), 이미지 매칭 모듈(142), 및 이미지 특징 인덱스 데이터베이스(143)를 포함할 수 있다. 점선 원 내의 이러한 구성요소들은 또한 기니(Geenee) 검색 시스템으로 언급될 수 있다.
복제가능 질의 캐시들(141)은 기니 검색 시스템에 대한 엔트리 포인트의 기능을 할 수 있다. 복제가능 질의 캐시들(141)은 이동 디바이스들로부터 직접 질의 핑거프린트들을 수신할 수 있다. 착신 질의 핑거프린트를 이미지 매칭 모듈(142)에 전송하기 전에, 착신 질의 핑거프린트는 이전에 수신된 핑거프린트들과 비교된다. 매치가 발견되면, 이전에 수신된 핑거프린트들(예를 들어, 한 세트의 후보 이미지들, 또는 매칭 이미지, 또는 매칭되지 않은 이미지들 등)에 대한 이전 응답이 복귀될 수 있다. 착신 질의 핑거프린트가 이전에 수신된 핑거프린트들과 매칭되지 않으면, 착신 질의 핑거프린트는 이미지 매칭 모듈(142)에 전송될 수 있다.
일부 실시예들에서, 이미지 매칭 모듈(142)은 착신 질의 핑거프린트를 직접 수신한다. 이미지 매칭 모듈(142)은 질의 핑거프린트를 이미지 특징 인덱스 데이터베이스(143)에 전송하고, 추가 처리한다. 추가 처리로부터, 한 세트의 후보 이미지들(또는 그러한 이미지들에 대한 핑거프린트 참조들)이 식별되고 이미지 매칭 모듈(142)에 복귀된다. 주석 데이터베이스(144)는 후보 이미지들이 식별되는 한 세트의 참조 이미지들, 및 세트의 참조 이미지들과 참조 이미지들에 포함되는 특징들을 표현하는 특징 서술자들 사이의 매핑을 저장한다. 주석이 달리는 참조 이미지들에 대해, 주석 데이터베이스(144)는 또한 주석 및 주석과 연관되는 부가 정보 사이의 매핑을 저장한다.
이미지 특징 인덱스 데이터베이스(143)로부터 후보 이미지 핑거프린트들을 수신한 후에, 이미지 매칭 모듈(142)은 이때 후보 이미지들의 핑거프린트들을 질의 핑거프린트(또는 그것의 일부)와 비교하고, 매치가 있는지를 판단한다. 매치가 있으면, 이미지 매칭 모듈은 이때 매칭 이미지를 그것에 첨부되는 주석들과 함께 주석 데이터베이스(144)로부터 검색하고, 이것을 결과로 복귀시킨다.
아래에 더 상세히 설명되는 바와 같이, 이미지 특징 인덱스 데이터베이스(143)는 주석 데이터베이스에 이전에 제공된 참조 이미지들로부터 추출되는 특징 서술자들을 위해 검색가능 인덱스를 제공한다. 본 개시에 따른 이미지-특징-인덱스-기반 검색의 다양한 실시예들은 예를 들어 도 6a 내지 도 6e에 대해 아래에 설명된다.
서버(140)는 또한 콘텐츠 제공자 인터페이스(145)를 포함할 수 있다. 콘텐츠 제공자 인터페이스(145)는 웹 서비스로 구현될 수 있다. 콘텐츠 제공자들은 기니 검색에 포함되도록 의도되는 매체 재료(및 그 위에 첨부되는 부가 주석들)를 제공하기 위해 콘텐츠 제공자 인터페이스를 사용할 수 있다. 그 다음, 매체 재료의 적어도 일부, 및 부가 주석들은 주석 데이터베이스(144)에 저장될 수 있다.
서버(140)는 하나의 서버 또는 서버들의 집합일 수 있다는 점이 이해되어야 한다. 일부 실시예들에서, 서버(140)는 클라우드(160)를 형성하기 위해 함께 결합되는 복수의 서버들을 포함할 수 있다. 게다가, 이미지 특징 인덱스(143) 및 주석 데이터베이스(144)가 서버(140) 상에 상주하는 것으로 도시되지만, 그들은 또한 서버(140)에 액세스가능한 다른 저장 영역들에 상주할 수 있다. 일부 실시예들에서, 콘텐츠 제공자 인터페이스(145)는 클라우드 기반 애플리케이션이다.
예시적 예로서, 도 1b를 다시 참조하면, 사용자는 TV에 방송되는 TV 쇼의 특정 장면을 선택하고, 그것의 스냅샷을 촬영하여, 질의에 특정 장면을 포함시키고 나서, 서버(140)에 송신된다. 서버(140) 내에서, 질의는 스크린샷과 연관되는 특징 서술자들이 또한 이미지 특징 인덱스 데이터베이스(143)에 저장되면, 특정 장면의 참조 이미지를 포함하는 한 세트의 후보 이미지들을 산출할 수 있다. 이미지 매칭 모듈(140)은 후보 이미지들 중에서 매칭 이미지를 검출하고, 매칭 이미지, 또는 매칭되지 않은 이미지의 표시를, 사용자의 질의에 대한 응답으로 복귀시킬 수 있다. 매칭 후보 이미지와 연관되는 부가 정보는 또한 주석 데이터베이스(144)로부터 검색될 수 있다. 일부 실시예들에서, 사용자는 객체와 연관되는 특징 서술자들에 질의의 범위를 제한하도록 태핑을 통해 스냅샷에서 객체를 더 선택할 수 있다. 사용자는 또한 다른 부가 정보를 취득하기 위해, 질의에 응답하여 서버(140)에 의해 복귀되는 매칭 이미지에서 객체를 선택할 수 있다.
이동 디바이스 상에서의 이미지 특징 기반 인식
도 3은 본 개시의 실시예들에 따른 이미지 스냅샷에서 관심 객체에 관한 부가 정보를 획득하는 예시적 시스템을 예시하는 블록도이다. 시스템(300)은 예를 들어 적어도 하나의 프로세서, 메모리, 통신 하드웨어 및 소프트웨어, 및 카메라를 포함하는 이동 디바이스일 수 있다. 일부 실시예들에서, 시스템(300)은 도 9에 도시된 바와 같은 클라이언트 디바이스(910)이다. 시스템(300)은 관심 객체 상에서 부가 정보를 획득하려고 시도하는 사용자에 의해 동작될 수 있으므로, 시스템(300)은 또한 사용자의 이동 디바이스로 언급될 수 있다. 도 3은 다양한 모듈들을 예시하며, 다양한 모듈들은 본원에 설명되는 방법들 및 시스템들에 따라, 시스템(300) 상에 존재할 수 있는 하드웨어 또는 소프트웨어로 구현될 수 있다. 도 3에 도시된 바와 같이, 시스템(300)은 이미지 취득 모듈(310), 특징 서술자 발생 모듈(320), 핑거프린트 발생 모듈(330), 및 부가 데이터 취득 모듈(340)을 포함한다.
이미지 취득 모듈(310)은 제1 이미지 또는 "스냅샷"을 표현하는 데이터를 취득한다. 스냅샷은 예를 들어 카메라, 또는 스마트폰 또는 태블릿의 카메라 기능성에 의해 캡처될 수 있다. 일부 실시예들에서, 카메라에 보여지는 전체 장면의 스냅샷이 촬영되고 저장된다. 일부 실시예들에서, 사용자는 디스플레이 상에 보여지는 장면의 하나 이상의 부분들을 표시할 수 있고, 표시된 부분들만이 저장된다. 이미지 취득 모듈(310)은 또한 다른 소스들(예를 들어, 로컬 또는 원격 데이터 스토리지 디바이스)로부터 이미지 데이터를 취득할 수 있다. 제1 이미지 데이터는 추가 처리를 위해 특징 서술자 발생 모듈(320)에 송신된다.
특징 서술자 발생 모듈(320)은 제1 이미지 데이터에 의해 표현되는 픽셀 값들에 기초하여 하나 이상의 특징들을 추출할 수 있고, 추출된 특징들의 수치 표현을 발생시킬 수 있다. 일부 실시예들에서, 특징 서술자 발생 모듈(320)은 제1 이미지의 선택된 하나 이상의 부분들 내에서 두드러진 포인트들을 검출하고 위치 지정(locate)하며, 특징 서술자들을 발생시켜 두드러진 포인트들을 표현한다. 두드러진 포인트들을 검출하고 위치 지정하며, 그것으로부터 특징 서술자 벡터들을 발생시키는 방법들 및 시스템들이 상기에 설명되었다.
핑거프린트 발생 모듈(330)은 특징 서술자 발생 모듈(220)에 의해 발생되는 특징 서술자 벡터들에 기초하여 이미지 핑거프린트를 발생시킨다. 핑거프린트는 사용자에 의해 선택되는 캡처된 이미지(또는 특정 묘사 객체)의 일부에서 검출되는 두드러진 포인트들, 또는 캡처된 이미지의 전체에서 검출되는 두드러진 포인트들에 기초하여 한 세트의 특징 서술자들을 포함할 수 있다(또는 한 세트의 특징 서술자들에 기초하여 발생될 수 있다).
핑거프린트가 발생된 후에, 핑거프린트는 부가 데이터 취득 모듈(340)에 의해 부가 정보를 취득하도록 사용된다. 일부 실시예들에서, 핑거프린트는 부가 정보를 식별하는데 사용되는 네트워크를 통해 다른 시스템(예를 들어, 도 7에 설명되는 시스템(700) 또는 도 9의 서버(940))에 송신된다. 핑거프린트에 기초하여 부가 정보를 검색하고 식별하는 프로세스는 예를 들어 도 4a에 대해 아래에 더 상세히 설명될 것이다.
일부 실시예들에서, 질의의 처리는 질의 이미지의 특징 서술자들이 후보 이미지의 특징 서술자들과 매칭하는 것을 어느 정도의 확실성으로 결정하는 것을 포함한다. 그 다음, 이러한 결정에 기초하여, 질의의 프로세서는 질의 이미지에 묘사되는 매체 콘텐츠(예를 들어 TV 쇼의 장면을 묘사하는 이미지, 발행된 광고의 이미지 등)를 식별할 수 있다. 질의의 처리에 관한 상세들은 예를 들어 도 6a 내지 도 6e에서 나중에 설명될 것이다.
핑거프린트를 갖는 질의가 처리된 후에, 부가 데이터 취득 모듈(340)은 질의의 결과에 기초하여 부가 데이터를 취득할 수 있다. 예를 들어, 질의에 기초하여, 질의 내의 핑거프린트에 의해 표현되는 객체를 포함하는 제2 이미지가 어느 정도의 확실성으로(with a certain degree of certainty) 위치 지정되고, 부가 데이터 취득 모듈(340)은 디스플레이를 위해 제2 이미지를 취득할 수 있다. 제2 이미지는 제1 이미지에 묘사되지 않는 객체(예를 들어, 상이한 관점, 상이한 배경, 제1 이미지에 현재 묘사되는 부가 아이템들 등)와 연관되는 부가 정보를 포함할 수 있다. 더욱이, 객체와 관련되는 부가 데이터는 또한 부가 데이터 취득 모듈(340)에 의해 취득될 수 있다. 도 1b 내지 도 1c에 사전에 설명된 예시적 예를 다시 참조하면, 소파의 특징 서술자들을 포함하는 질의가 처리된 후에, 특정 브랜드 및 모델의 소파는 질의로부터 식별되고, 브랜드 및 모델 정보는 부가 데이터 취득 모듈(340)에 의해 취득되고 사용자에게 디스플레이될 수 있다. 더욱이, 식별의 결과로서, 다른 정보, 예컨대 가격, 소파를 판매하고 있는 판매사들 등은 또한 부가 데이터 취득 모듈(340)에 의해 취득되고 사용자에게 디스플레이될 수 있다.
이미지-특징-기반 검색
주어진 질의 이미지에 대해, 이미지-특징-기반 검색은 트레이닝 세트의 미리 추출된 이미지 특징들을 질의 이미지로부터 추출되는 것들과 비교함으로써 이미지들의 큰 집합(트레이닝 세트) 내에서 매치들을 발견한다. 이러한 고가의 이미지당 비교들을 최소로 유지하기 위해, 부가 검색 데이터 구조는 개략적 후보 세트(coarse candidate set)를 효율적으로 미리 선택하는데 사용된다. 이미지 특징 인덱스로 칭해지는 이러한 검색 데이터 구조는 유사성 검색(예를 들어, 근사 최단 이웃(ANN) 룩업)이 수행되는 것을 허용하며, 주어진 질의 이미지 특징 데이터 포인트는 이미지들의 트레이닝 세트의 그것의 최단 대응하는 데이터 포인트들에 매핑될 수 있다. 이러한 데이터 포인트들과 연관되는 이미지들은 한 세트의 후보 이미지들로 검색될 것이다. 나중에 설명되는 바와 같이, 이미지 특징 인덱스는 특징 데이터 포인트들을 인덱싱 / 어드레싱할 수 있는 매핑 테이블을 제공한다. 그러한 매핑 테이블은 해시 테이블일 수 있고, 어드레스와 특징 데이터 포인트들 사이의 관계는 해시 함수에 따라 정의될 수 있다.
본 개시의 실시예들에 따라, 사용자가 스냅샷을 촬영하는 것 없이, 비디오로부터 이미지 특징 기반 인식을 수행하는 예시적 방법을 예시하는 흐름도인 도 4a가 이제 참조된다. 단계(402)에서, 안정된 카메라 이미지(즉, 객체들은 정지한 것으로 나타남)는 사용자의 이동 디바이스에 의해 캡처된다. 일부 실시예들에서, 이동 디바이스는 예를 들어 이동 전화의 가속도계 센서 또는 움직임을 검출하는 다른 디바이스를 사용하여 거의 없는 움직임을 검출할 때 이미지가 안정된 것을 결정할 수 있다. 거의 없는 움직임을 검출할 때, 이동 디바이스는 하나 이상의 이미지들을 캡처할 수 있다. 일부 실시예들에서, 다수의 이미지들이 캡처되는 경우에, 이동 디바이스는 다수의 이미지들 중 어느 것이 가장 안정된 이미지인지를 판단하고, 가장 안정된 이미지를 질의 이미지로 사용할 수 있다.
일부 실시예들, 특히 사용자가 비디오의 스냅샷을 촬영하고 있는 것들에서, 스크린 상에 디스플레이되는 것과 사용자가 스냅샷의 촬영을 개시한 후에 스냅샷이 촬영될 때 사이의 지연이 있을 수 있다. 종종, 시간이 경과되기 때문에, 캡처된 스냅샷은 관심 아이템들 또는 장면을 더 이상 포함하지 않는다. 본원에 설명되는 일부 실시예들에서, 스냅샷이 촬영되기 전에 약간의 시간량(예를 들어 1초)으로 촬영되는 이미지는 질의 이미지로 사용된다.
단계(404)에서, 질의 이미지는 참조 이미지 세트 내에서 매칭 이미지를 발견하기 위해 사용된다. 특징 서술자들은 질의 이미지에서 검출되는 두드러진 포인트들로부터 추출되고, 핑거프린트는 추출된 특징 서술자들로부터 발생된다. 그 다음, 핑거프린트는 서버에 송신되며, 이미지 특징 기반 인식은 매칭 이미지가 발견될 수 있는 한 세트의 후보 이미지들을 발견하기 위해 수행된다.
추가 분석이 그러한 특정 카메라 이미지에 대해 수행될 수 없는 것을 의미하는 단계(406)에서 매칭 이미지가 발견될 수 없으면, 단계(402)는 상이한 안정된 이미지를 취득하기 위해 재실행된다.
매칭 이미지가 단계(406)에서 발견되면, 단계(408)는 이때 이동 디바이스에서 실행될 수 있다. 단계(408)에서, 질의 이미지의 포즈가 추정될 수 있다. 포즈 및 피트의 추정은 또한 도 4b에 설명되는 바와 같이, 질의 이미지 및 참조 이미지가 매칭하는지에 관한 판단의 일부일 수 있다. 2개의 이미지들이 일치하는 것을 결정한 후에, 포즈 정보는 단계(410)에서 이동 디바이스에 송신될 수 있다. 일부 실시예들에서, 포즈 정보는 이동 디바이스에 디스플레이될 수 있다.
단계(412)에서, 시스템은 추적이 분실되는지를 판단한다. 추적은 예를 들어 포즈의 실질적인 변화가 검출되는지에 기초하여 결정될 수 있다. 일부 실시예들에서, 단계들(402 내지 412)은 (사용자에 의해 또는 다른 수단을 통해 표시되는 바와 같이) 관심 사물들을 식별하고 추적하기 위해 시스템을 우선 트레이닝하는데 있다. 추적은 예를 들어 이동 디바이스를 동작시키는 사람이 슈팅 방향을 실질적으로 시프트시키거나, 비디오에 나타나기 전에 식별되지 않았던 새로운 객체를 시프트시킬 때 분실될 수 있다.
시스템이 관심 사물을 추적할 수 있으면, 단계(414)는 라이브 카메라 이미지들의 처리를 시작하기 위해 실행될 수 있으며, 단계(416)에서 두드러진 포인트들이 검출되고 위치 지정될 수 있고, 단계(418)에서 특징 서술자들이 발생된다. 그 다음, 특징 서술자들은 단계(408)에서 포즈를 다시 추정하기 위해 사용될 수 있다.
도 4a에 도시된 바와 같은 그러한 배열의 경우, 이전에 이미 식별되었던 콘텐츠는 다시 질의될 필요가 없을 수 있다. 따라서, 이미지 특징 데이터베이스(질의를 발생시키는 디바이스에 원격으로 또는 로컬로 위치됨)에 대한 액세스들의 수가 감소될 수 있다. 이것은 이동 디바이스가 라이브 비디오로부터 질의를 발생시키기 위해 사용되는 경우, 동일한 특징들을 갖는 동일한 객체의 이미지들이 반복적으로 캡처되는 것으로 예상될 때 특히 유용하다. 성능은 동일한 특징들에 대해 반복적으로 이미지 특징 데이터베이스를 질의를 하지 않아도 됨으로써 개선될 수 있다. 이러한 경우에, 이동 디바이스는 추적이 (예를 들어, 단계들(406 내지 412)을 통해) 분실되는지를 판단하고, 추적이 분실될 때(예를 들어, 캠코더를 동작시키는 사람이 슈팅 방향을 실질적으로 시프트시키거나, 비디오에 나타나기 전에 식별되지 않았던 새로운 객체를 시프트시킬 때)에만 데이터베이스에 액세스하기 위해 게이트키퍼의 역할을 할 수 있다.
본원에 설명되는 바와 같이, 후보 이미지가 질의 이미지와 매칭하는지를 판단하는 예시적 방법을 예시하는 도 4b가 이제 참조된다. 단계(432)에서, 이미지 핑거프린트를 포함하는 질의가 수신된다. 단계(436)에서, 질의 이미지의 두드러진 포인트들에 대한 하나 이상의 특징 서술자 벡터들은 핑거프린트로부터 획득된다. 단계(438)에서, 이미지 특징 인덱스 데이터베이스가 질의되고, 한 세트의 후보 이미지의 핑거프린트들이 질의 내의 특징 서술자들에 기초하여 획득된다. 일부 실시예들에서, 후보 이미지들은 데이터베이스(예를 들어 도 1a의 주석 데이터베이스(144))에 저장된다. 참조 이미지들은 대응하는 핑거프린트들 및 주석들과 함께 저장될 수 있다. 일부 실시예들에서, 참조 이미지들 및 주석들은 콘텐츠 제공자들에 의해 제공된다.
단계들(440 내지 448)은 예를 들어 도 2b에 도시된 바와 같이 직접 매칭 비교 기술을 사용함으로써 모든 후보들을 질의 이미지와 비교하는 루프를 예시하고, 도 4a의 단계(404)의 일부일 수 있다. 단계(440)에서, 참조 이미지는 세트의 후보 이미지들로부터 획득되고, 그 다음에 세트로부터 제거될 수 있다. 단계(442)에서, 질의 이미지와 참조 이미지 사이의 특징 거리들이 산출된다. 이러한 특징 거리들은 질의 이미지와 참조 이미지 사이의 대응하는 특징들을 식별하기 위해 사용될 수 있다. 특징 거리들은 예를 들어 특징 공간에서 유클리드 거리를 사용하여 표현될 수 있다. 그러한 일 예에서, 질의 이미지 내의 M 특징들 및 참조 이미지 내의 N 특징들에 대해, 결과는 유클리드 거리들의 MxN 매트릭스일 수 있다. 전형적으로 최단 특징들의 특정 퍼센티지(예를 들어, 20%)만이 "대응"으로 수락된다. 단계(444)에서, 식별된 대응하는 특징들에 기초하여, 질의 이미지에 대한 참조 이미지의 포즈(예를 들어, 배향)는 도 2b에 설명된 것과 유사한 방식으로 추정될 수 있다. 그 다음, 질의 이미지 및 참조 이미지는 단계(446)에서 비교되어, 질의 이미지 콘텐츠 및 참조 이미지 콘텐츠의 포즈들의 임의의 차이를 고려하여, 질의 이미지가 참조 이미지와 매칭하는지를 판단한다. 일부 실시예들에서, 단계(446)는 도 2b에 설명된 것과 유사한 방식으로 실행되며, 호모그래픽 변환은 참조 이미지에 적용되고, 그 다음에 일치 세트의 특징들을 포함하는 질의 이미지의 적어도 일부가 변환된 참조 이미지에 일치하는지에 대한 판단이 이루어지고, 그것으로부터 2개의 이미지가 매칭되는지가 판단된다. 2개의 이미지가 매칭되지 않는 것으로 결정되면, 단계(448)는 후보 이미지들의 세트에 남아있는 임의의 이미지들이 있는지를 판단하기 위해 실행될 것이다. 나머지 후보 이미지들이 있으면, 단계들(440, 442, 444, 446, 및 448)은 이미지들이 후보 세트에 더 이상 남지 않을 때까지, 다음 참조 이미지에 대해 반복될 것이다. 후보 세트 내의 참조 이미지들 중 아무것도 질의 이미지와 매칭되지 않으면, 단계(450)에서 매치가 없는 것으로 결정될 것이고, 적절한 표시는 이동 디바이스로 복귀될 것이다.
도 4c는 본 개시의 실시예들에 따른 매칭 이미지를 발견하기 위해 이미지 특징 인덱스 데이터베이스를 질의하기 전에 캐싱된 이미지 세트를 질의하는 예시적 방법을 예시하는 흐름도이다. 일부 실시예들에서, 질의와 매칭하는 것으로 발견되었던 참조 이미지들은 캐싱된 이미지 세트 데이터베이스에 놓여질 수 있다. 일부 실시예들에서, 도 4c의 방법은 도 1a의 복제가능 질의 캐시들(141)에 의해 구현될 수 있다. 2단 검색(two-tier search)은 캐싱된 이미지 세트 데이터베이스를 우선 검색함으로써 수행될 수 있다. 캐싱된 이미지 세트 데이터베이스가 전형적으로 완전한 참조 이미지 데이터베이스보다 훨씬 더 작으므로, 검색은 더 적은 시간 및 보다 소수의 계산 자원들을 필요로 한다. 일부 실시예들에서, 캐싱된 이미지 세트 데이터베이스는 또한 참조 이미지 데이터베이스(예를 들어 이미지 특징 인덱스를 이용함)와 동일한 방식이지만, 보다 소규모로 조직화될 수 있다. 일부 실시예들에서, 캐싱된 이미지 세트 데이터베이스는 또한 이전에 수신된 질의 핑거프린트와 그것의 대응하는 매칭 참조 이미지 사이의 매핑을 저장할 수 있다. 캐싱된 질의는 또한 다수의 사용자들과 연관될 수 있다. 다수의 동일한 질의들(예를 들어, 동일한 핑거프린트를 포함하는 질의들)이 상이한 사용자들로부터 수신될 때, (캐싱된 이미지 세트 데이터베이스, 또는 참조 이미지 데이터베이스에서 검색을 수행함으로써) 질의 중 하나만이 처리되고, 동일한 질의를 제출하는 다른 사용자들은 검색 결과에 의해 전송받을 수 있다.
도 4c에 도시된 바와 같이, 질의 핑거프린트는 단계(432)에서 검색되고, 특징 서술자들은 단계(436)에서 핑거프린트로부터 선택된다. 단계들(432 및 436)은 도 4b와 동일하고 그들의 설명은 반복되지 않는다. 그 다음, 선택된 특징 서술자들은 단계(463)에서 캐싱된 이미지 세트 데이터베이스를 검색하기 위해 사용될 수 있다. 검색은 캐싱된 이미지 세트 내에서 현재 질의 특징 서술자들에 대한 검색을 수행하는 것에 기초하여, 또는 현재 질의 핑거프린트들을 이전에 수신된 질의 핑거프린트와 비교함으로써 수행될 수 있다.
일부 실시예들에서, 캐싱된 질의 이미지가 단계(464)에서 발견되면, 사용자(또는 사용자와 연관되는 이동 디바이스)가 단계(465)에서, 등록되고 캐시 히트와 연관될 수 있다. 이전에 설명된 바와 같이, 사용자를 캐시 히트들의 이력과 연관시키는 것은 캐시 액세스 정책을 개선하는데 유용할 수 있다. 그 다음, 단계(466)가 실행될 수 있으며, 검색된 참조 이미지는 질의 이미지와 비교되어 그들이 도 4b의 단계들(440 내지 448)과 유사하게, 매칭하고 있는지를 판단한다. 검색 결과는 단계(467)에서 보고될 수 있으며, 그 후에 부가 정보는 검색 결과에 기초하여 사용자에게 제공될 수 있다.
다른 한편, 캐싱된 질의 이미지가 단계(464)에서 발견되지 않으면, 질의 핑거프린트는 이때 단계(468)에서 참조 이미지 데이터베이스를 질의하기 위해 제출될 것이다. 단계(469)에서, 매치가 발견되면, 질의 핑거프린트는 캐싱된 이미지 세트 데이터베이스에 추가되고 단계(468)에 발견되는 매칭 참조 이미지와 연관될 수 있다. 일부 실시예들에서, 검색 결과는 또한 단계(470)에서, 다른 사용자들에게 브로드캐스팅될 수 있다. 브로드캐스팅은 다른 사용자들이 동일한 질의를 시스템에 제출하는 것을 방해하는데 유용할 수 있다.
이미지 특징 인덱스
본원에 설명되는 새로운 이미지 특징 기반 인식 방법들 및 시스템들의 중요한 특징은 이미지 특징 인덱스이다. 설명되는 방법들 및 시스템들은 손실 확률 데이터 관리를 위한 비디오 프레임 정확도로 보상가능 손실을 취급하여, 덜 독특한 이미지 콘텐츠의 자동 프루닝(pruning)과 함께 과감히 내린 계산 비용들 및 저장 요건들을 가능하게 한다. 그러한 방법들 및 시스템들은 비디오들로부터 발생되는 참조 이미지 데이터를 관리하는데 특히 적절하다.
본원에 설명되는 새로운 방법들 및 시스템들을 이해하기 위해, 이하는 종래 기술의 시스템들의 설명이다. 도 5a 내지 도 5h는 해시 테이블들을 사용하는 공지된 방법들과 연관되는 문제들을 예시한다. 도 5a에서, 해시 테이블(510)은 후보 이미지들이 선택될 수 있는 한 세트의 트레이닝 이미지들과 연관되는 특징 서술자들을 조직화하기 위해 사용된다. 해시 테이블(510)은 버킷 어레이(512)를 포함하며, 각각의 버킷 어드레스는 해시 함수들을 통해, 특징 공간의 하나 이상의 세그먼트들과 연관된다. 그 다음, 각각의 버킷은 버킷 연관된 공간 세그먼트 내에 기하학적으로 상주하는 특징들(예를 들어 특징들(514))에 대한 참조들을 저장할 수 있다. 각각의 해시 버킷은 비제한 수의 슬롯들을 가질 수 있고, 비제한 수의 특징 참조들을 포함할 수 있다. 해시 버킷들은 특징 공간 내의 특징 벡터 성분의 위치로부터 결정되는 특징 서술자들, 특징 공간 세그먼트와 연관되는 해시 어드레스, 및 그러한 어드레스와 연관되는 해시 버킷 사이의 관계에 기초하여 특징 서술자들(및 그것의 벡터 성분들)과 연관된다. 일부 경우들에서, 하나 이상의 해시 함수들은 특징 서술자 벡터에 적용되고, 해시 함수들의 출력은 특징 서술자가 어느 어드레스들(및 어느 해시 버킷들)과 연관되어야 하는지를 판단하기 위해 사용될 수 있다.
일부 경우들에서, 해시 함수들은 특징 공간(515)을 분할하기 위해 사용되며, 특징 공간은 한 세트의 특징 서술자들에 의해 표현될 수 있는 특징들의 집합에 주어지는 명칭이다. 특징 서술자들이 벡터들로 표현될 때, 특징 서술자 벡터는 차원 각각에서 성분을 가질 것이다. 그 다음, 해시 함수들은 벡터 공간(특징 공간을 표현함)을 하나 이상의 영역들(예를 들어, 특징 공간 영역(518))로 분할할 수 있으며, 각각의 영역은 데이터세트 특징들(514)을 표현하는 특징 벡터 성분들의 집합을 가질 수 있고, 각각의 영역은 해시 버킷 어드레스와 연관될 수 있다. 그 다음, 각각의 특징 벡터는 해시 함수들에 의해 해시 버킷들로 매칭되고, 특정 기준들을 충족시키는 벡터들(예를 들어, 유사한 특징들을 표현함)은 동일한 영역으로 매핑될(및 따라서 동일한 해시 버킷에 매핑될) 수 있다.
그와 같이, 로컬리티 센서티브 해싱(Locality sensitive hashing)(LSH)은 유사성 검색을 수행하기 위해 사용될 수 있으며, 해시 테이블(510)은 높은 확률로, 유사한 데이터 포인트들(예를 들어, 유사한 특징 서술자들을 구성하는 벡터들)을 동일한 해시 버킷들과 연관시킬 수 있는 해시 함수들의 군과 연관된다. 로컬리티 센서티비티(Locality Sensitivity)는 데이터 포인트들 사이의 연관성의 확률이 데이터 포인트들 사이의 유사성을 증가시키기 위해 꾸준히 증가한다는 사실을 언급한다. 도 5a에 도시된 바와 같이, 주어진 질의 특징(519)에 대해, 특징(519)에 대응하는 특징 서술자는 각각의 벡터 차원을 따라 한 세트의 벡터 성분들(520)("x"에 의해 표시됨)을 포함할 수 있다. 각각의 벡터 성분(520)에 대해, 근사 k-최단 이웃 검색(ANN)은 동일한 해시 버킷 멤버십을 질의 벡터 성분과 공유하고, 또한 질의 벡터 성분의 유사성 거리 제한(521) 내에 있는 데이터 포인트들을 선택함으로써 수행될 수 있다. 그 다음, 그러한 데이터 포인트들은 예를 들어 그러한 데이터 포인트들을 벡터 성분들로 포함하는 특징 서술자 벡터와, 질의 특징들을 표현하는 특징 서술자 사이의 거리에 따라 랭킹될 수 있다. 매칭 결정은 랭킹(예를 들어, 최단 거리)에 기초하여 이루어질 수 있다.
도 5b는 이전에 설명된 바와 같이 이미지 특징 인덱스 데이터베이스에 질의 프로세스를 수행하는 종래 기술의 방법(530)을 예시한다. 단계(531)에서, 개별 특징들을 반복 실행(looping through)하기 위해, 질의 핑거프린트에 포함되는 특징 서술자들이 추출되어 데이터 구조(예를 들어, 리스트)에 저장된다. 단계들(534 내지 537)은 질의에 응답하여 이미지 특징 인덱스 데이터베이스로부터 특징 서술자 검색의 제1 라운드를 수행하기 위해 실행된다. 이전에 설명된 바와 같이, 해시 함수들의 군은 특징 샘플 공간을 분할하기 위해 사용된다. 따라서, 군 내의 각각의 해시 함수는 (단계(534)에서 미사용 해시 함수가 남아 있는지를 체크한 후에) 단계(535)에서 검색되고, 그 다음에 검색 함수는 단계(535)에서 특정 질의 특징 서술자에 기초하여 버킷에 대한 어드레스를 발생시키기 위해 사용된다. 그 다음, 어드레싱된 버킷에 저장되는 참조 특징 서술자 데이터 포인트들은 단계(536)에서 수집된다. 단계들(534 내지 537)은 단계(534)에서 결정되는 바와 같이, 군 내의 모든 해시 함수들이 사용되었을 때까지 반복된다.
참조 특징 서술자 데이터 포인트들이 수집된 후에, 그들은 단계들(538 내지 542)을 통해 필터링될 것이며, 거리는 단계(540)에서 각각의 수집된 참조 특징 서술자 데이터 포인트와 질의 특징 서술자 데이터 포인트 사이에서 계산되고 단계(541)에서 특정 거리(R)와 비교되고, 거리(R) 내의 그러한 참조 특징 서술자들만이 단계(542)에서 수락될 것이다. 단계들(538 내지 542)은 단계들(534 내지 537)로부터 수집되는 모든 참조 데이터 포인트들이 분석될 때까지 반복된다.
모든 질의 특징들이 분석된 후에, 수락된 특징들을 포함하는 참조 이미지들은 단계(543)에서 후보 이미지들로 수집될 것이다. 그 다음, 후보 이미지들은 예를 들어 단계(544)에서, 모든 수락된 참조 특징 서술자들의 합산된 거리(질의 특징 서술자들로부터의)에 따라 분류되고, 분류된 리스트는 단계(545)에서 보고된다. 그 다음, 분류된 리스트에 기초하여, 어느 후보 이미지가 추가 처리를 위해 사용되는지가 판단될 수 있다.
도 5c는 이전에 설명된 바와 같이 참조 이미지를 이미지 특징 인덱스 데이터베이스로 삽입하는 종래 기술의 방법(550)을 예시한다. 단계(551)에서, 참조 특징들은 참조 이미지로부터 추출된다. 일부 실시예들에서, 참조 특징들(특징 서술자들에 의해 표현됨)은 참조 이미지와 연관되는 핑거프린트로부터 직접 식별된다. 그 다음, 추출된 특징들은 단계(553)에서, 하나씩 선택될 것이다. 그 다음, 선택된 특징 서술자는 해시 함수들의 군에 입력될 것이며, 군의 각각의 해시 함수는 단계(555)에서, 선택되어, 단계(556)에서, 선택된 특징 서술자로부터 버킷 어드레스를 산출할 것이다. 그 다음, 참조 특징 서술자는 단계(557)에서, 특징 서술자 데이터 포인트를 버킷의 엔트리 리스트에 첨부함으로써, 버킷에 추가될 것이다. 모든 해시 함수들이 단계(554)에서, 선택된 특징 서술자에 대한 어드레스를 산출하기 위해 사용된 후에, 다음 추출된 특징 서술자는 추출된 특징 서술자들의 모두가 단계(552)에서 결정되는 바와 같이, 처리될 때까지, 단계(553)에서의 처리를 위해 선택될 것이다. 특징 벡터들은 또한 단계(558)에서 참조 이미지와 연관되는 해시 키들로 저장될 것이다.
도 5a 내지 도 5b에 설명되는 방법이 갖는 하나의 잠재적인 단점은 선택된 버킷이 질의 데이터 포인트들과 유사한 특징 데이터 포인트들의 양호한 커버리지를 제공하지 않을 수 있다는 것이다. 예를 들어, 도 5d에 도시된 바와 같이, 질의 특징 벡터 성분(570)은 특징 공간 영역(572)에 매핑된다. 유사성 거리 제한(571) 내에서, 질의 특징 벡터 성분(570)과 동일한 특징 공간 영역 내에 있는 영역 부분(573)만이 검색될 것이다. 또한 영역 부분(573) 내에 있는 데이터 포인트(574)는 질의 특징 벡터 성분(570)에 대해 분명한 최단 이웃인 것으로 발견된다. 그러나, 데이터 포인트(575)는 질의 특징 벡터 성분(570)으로부터의 최단 거리를 갖는 것이지만, 그것이 상이한 특징 공간 영역에 속하기 때문에 선택되지 않는다. 데이터 포인트(575)는 검색이 인접 버킷들(및 인접 특징 공간 영역)로 연장되면 발견될 것이지만, 그러한 배열은 인접 버킷들의 수가 차원수를 증가시키기 위해 기하급수적으로 증가하므로 매우 계산 집약적일 수 있다. 따라서, 검색을 인접 버킷들로 연장시키는 것 외에, 유사한 데이터 포인트들이 동일한 버킷과 연관될 가능성을 더 개선하며, 따라서 검색의 정확도를 개선하는 것이 바람직하다.
유사한 데이터 포인트들이 동일한 버킷과 연관될 가능성을 더 개선하는 하나의 공지된 기술은 도 5e에 도시된 바와 같이, 상이한 해시 함수들과 연관되는 다수의 해시 테이블들(530)을 사용하는 것이다. 그러한 방법에서, 다수의 해시 함수들(예를 들어, 해시 함수 군들(582 및 584))은 상이하지만 오버랩되는 방식들(different yet overlapping manners)(실선 그리드 및 점선 그리드에 의해 표시되는 바와 같음)로 동일한 특징 공간들을 분할할 수 있어, 질의에 포함되는 특징 서술자들은 상이한 테이블들에서 동시에 한 세트의 오버래핑 특징 공간 영역들(a set of overlapping feature space areas)을 동시에 커버하는 다수의 버킷들의 액세싱을 초래할 수 있고, 검색은 세트의 영역들에 한정될 수 있다. 오버래핑 버킷들은 분할된 특징 공간의 더 좋은 커버리지를 허용하지만, 질의 특징들에 가장 가깝지 않은 참조 특징들은 질의 특징들에 의해 어드레싱되는 버킷에 포함될 수 있고, 부가 필터링은 참조 특징들이 후보 이미지 세트에 포함되는지를 판단하기 위해 (예를 들어, 버킷 내의 참조 특징들과 질의 특징 사이의 거리를 계산함으로써) 수행될 필요가 있을 수 있는 것이 가능하다.
도 5f에 도시된 바와 같이, LSH를 개선하는 다른 공지된 기술은 질의 데이터 포인트 근방에 랜덤 데이터 포인트들을 발생시키기 위해 엔트로피 기반 LSH를 시용하고 있다. 이러한 랜덤 데이터 포인트들은 또한 해시 함수들이 특징 공간 영역들(590, 592, 및 594)을 동일한 해시 버킷으로 매핑하게 할 수 있다. ANN 검색에 대한 유사성 거리 제한(596)은 또한 랜덤 데이터 포인트들을 포함하기 위해 (도 5a의 유사성 거리 제한(521)에 비해) 확장될 수 있다. 더욱이, 도 5g에 도시된 바와 같이, 멀티 프로브 LSH는 진술된 이웃 버킷들의 질의 유도된 프로빙 시퀀스를 이용함으로써 부가 질의 포인트들을 유도할 수 있다.
전술된 LSH 기술들은 파라미터 공간 분할에 고유한 버킷 커버리지 효과를 개선할 수 있지만, 특징 서술자들이 해시 테이블(510) 하에 추출되고 조직화되는 후보 이미지들이 비디오로부터 발생될 때 막대한 계산 비용 및 저장 요건이 있을 수 있다. 비디오로부터 발생되는 거대한 양의 데이터 때문에, 그것은 ANN 검색을 수행하는 동안에 임의의 주어진 버킷에 저장되는 각각의 데이터 포인트를 검사하기 위해 매우 시간 소비적이고 계산 집약적일 수 있으며, ANN 검색은 해시 버킷 내의 각각의 데이터 포인트와 질의 데이터 포인트 사이의 실제 거리의 산출을 수반한다. 더욱이, 도 5h에 도시된 바와 같이, 비디오는 전형적으로 대량의 반복된 이미지 콘텐츠를 포함하고, 그 결과, 대다수의 추출된 이미지 특징들은 임의의 독특한 정보에 기여하지 않을 수 있거나, 소수의 독특한 이미지 특징들이 다수의 덜 독특한 특징들에서 분실되게 할 수 있어, 특징 존재에 의존하는 임의의 이미지 매치 확률 랭킹을 약화시킨다. 게다가, 과점유된 해시 버킷들은 또한 불균형 디수의 데이터 포인트들을 후보 특징 서술자 세트들에 기여시키고 특정 순환 이미지 특징들에 대한 성능 이득들을 방해할 수 있는 반면에, 일관된 특징 모션들 및 변환들은 매치들을 신뢰성있게 식별하기 위해 특징 대응들의 호모그래픽 정렬 테스팅의 능력을 축소할 수 있다.
강화된 LSH
LSH의 수정된 기술을 설명하는 방법들 및 시스템들은 이하에 제공될 것이다. 수정된 기술은 다수의 잘 선택된 비합동 해시 함수들의 중첩의 통계적 커버리지 성질들을 개략적 대체 거리 메트릭(coarse replacement distance metric)으로 이용하기 위해 사용될 수 있다. 이러한 방법들 및 시스템들은 보다 소수의 계산들 및 더 적은 저장을 필요로 한다.
설명된 방법은 LSH 기반 ANN의 전술된 종래 기술의 구현들에서와 같이 해시 테이블 저장된 데이터 포인트들의 벡터 성분들을 사용하여 거리 계산들을 수행하는 요구를 제거한다. 다수의 중첩된 비합동 해시 함수들에 숨겨지는 위치 정보는 오버래핑 해시 버킷들을 연속 파라미터 공간의 불규칙 슈퍼샘플링으로 해석함으로써, 직접 태핑될 수 있다. 로컬리티 센서티브 해싱의 성질을 고려하면, 샘플들(pi)과 질의 샘플(q) 사이의 해시 버킷 충돌의 확률은 그들이 더 가까워질수록 증가한다. 주어진 세트의 L 상이한 로컬리티 센서티브 해시 함수들에 대해 반대로 해석되면, 이것은 질의 포인트(q) 주위의 유사성 거리 제한 내의 오버래핑 해시 버킷들의 D 차원 특징 공간 영역 커버리지가 더 작은 반경(R1 < R2)에 대해 증가하는 것을 암시한다:
Figure 112016087808136-pct00001
다시 말하면, 질의 포인트(q)에 대해 h(q)에 의해 어드레싱되는 동시 오버래핑 해시 버킷들의 수는 질의 포인트에 대한 거리와 개략적으로 관련된다(relates coarsely). 이러한 관찰은 양자화된 거리 랭킹 메트릭으로서 직접 사용될 수 있다:
Figure 112016087808136-pct00002
샘플 포인트(pi)가 q에 더 가까워질수록, 그것이 q에 의해 선택되는 오버래핑 해시 버킷들의 일부에 의해 커버되는 확률이 더 높아지고 결과적으로 그것이 버킷들에 첨부되는 모든 포인트들을 수집할 때 복제로서 더 빈번하게 나타낸다. 어떤 면에서, 모든 공간 데이터 포인트 위치들은 해시 테이블들 자체의 버킷 멤버십 패턴 내에서 손실 인코딩되거나 슈퍼샘플링되는 것으로 인지될 수 있다. 이러한 인코딩은 데이터 포인트 위치들에 대한 대체의 역할을 한다.
이러한 인코딩의 품질 및 해상도는 해시 함수들에 의해 정의된다. 첫번째로, 질의 포인트 주위의 오버래핑 버킷들의 밀도는 정상 분포에 집중된다(즉, 비합동 해시 함수들이 더 많이 사용될수록, 해상도가 더 우수하게 얻어진다):
Figure 112016087808136-pct00003
두번째로, 절대 거리 랭크는 더 가까운 샘플들과 나머지(잡음을 포함함) 사이에서 증가한다. 질의 포인트(q)에 대해 가장 큰 버킷 크기에 대응하는 거리 내에 있는 데이터 포인트들(p)만이 버킷 커버리지와 거리 사이의 전술된 관계를 받는다:
Figure 112016087808136-pct00004
데이터 포인트들(p, r)에 대해:
Figure 112016087808136-pct00005
이다.
그러한 큰 버킷 크기 거리 외부에 있는 그러한 샘플들은 동일한 버킷 커버된 영역을 공유하는 것이 아니라, 해시 어드레스 충돌들/버킷 에일리어싱으로 인해 버킷들을 공유할 수 있다. 주어진 이상적인 해시 함수들에 대해, 이러한 충돌들은 파라미터 공간을 통해 균일하게 통계적으로 분포되고, 거리-랭크-관계를 받지 않는 모든 샘플들은 동일한 고정 기회(Pcollision)를 가져서 긍정 오류들(false positives)로서 후보 세트에서 나타낸다. 신호 대 잡음 갭은 해시 함수들의 수를 증가시킴으로써, 또는 테이블 크기를 증가시켜, 확률(Pcollision)을 효과적으로 감소시킴으로써 조정될 수 있다.
해시 함수들의 수를 증가시키는 효과는 도 6a에 예시된다. 좌측 상에서, 질의 특징 데이터 포인트(693)는 버킷 공간(694)에 어드레싱된다. 다수의 해시 함수들은 버킷 공간(694)을 분할하기 위해 사용되며, 해시 함수 어드레싱된 공간(예를 들어 공간(695)) 각각은 데이터 포인트(693)와 오버래핑될 수 있다. 694(예를 들어 공간(696))와 오버래핑되지 않은 공간(695)의 부분 내의 데이터 포인트들은 (어드레싱된 공간(695)이 질의 데이터 포인트와 오버래핑되는 해시 함수와의 연관성으로 인해) 후보 데이터 포인트들로 여전히 수집될 수 있다. 질의 포인트 주위의 오버래핑 버킷들의 밀도는 분포(690)에 의해 표현될 수 있다. 우측에 도시된 바와 같이, 해시 함수들의 수가 증가함에 따라, 분포(690)는 가우스 분포가 되기 위해 집중된다. 무한 파라미터 공간을 유한 세트의 버킷들로 매핑하고 있는 해시 함수의 성질로 인해, 질의 데이터 포인트(693)에 의해 어드레싱되는 모든 세그먼트들(694, 695, 696) 외부에 있는 데이터 포인트들은 동일한 해시 버킷으로 여전히 들어갈 수 있다. 이상적인 해시 함수들을 가정하면, 이러한 소위 버킷 충돌들은 그들이 로컬리티 센서티비티 특성을 받지 않으므로 균일한 잡음으로 나타난다.
도 6b 내지 도 6c는 전술된 거리 랭크 메트릭의 확률 성질을 더 이용하는 검색 데이터 구조를 조직화하는 예시적 방법들(602, 604, 및 606)을 도시한다. 일부 실시예들에서, 도 6b에 도시된 바와 같이, 다수의 동시 해시 함수 어드레스 공간들은 하나의 통합된 해시 테이블(607)에 중첩될 수 있으며, 해시 군들로부터의 해시 인덱스들은 한 세트의 해시 버킷들에 매핑되어, 다수의 해시 함수들이 동일한 해시 버킷을 어드레싱하는 것을 허용하며, 각각의 해시 버킷은 요소들의 리스트를 저장한다. 더욱이, 도 6c의 해시 테이블들(608 및 609)은 수정된 개방 어드레싱 해시 테이블 레이아웃을 사용하는 새로운 저장 접근법을 예시하며, 버킷은 제로 또는 하나의 요소들을 항상 갖는다. 해시 충돌들(즉, 동일한 버킷을 가리키는 다수의 해시 함수들)을 해결하기 위해, 개방 어드레싱 방법이 이용될 수 있다. 도 6c의 방법(604)에 의해 도시된 바와 같이, 특징 데이터 포인트가 3에 어드레싱되는 버킷에 기록될 때, 그것은 이미 데이터를 저장하고 있다. 해시 테이블은 선형 프로빙 시퀀스에 따라 빈 버킷에 대해 프로빙될 수 있다. 이러한 예시적 예에서, 해시 테이블은 선형 방식으로 가로지를 것이다(예를 들어, 연속적으로 어드레싱되는 버킷들을 가로지름). 해시 테이블 어드레스가 질의 특징 데이터 포인트를 위해 산출될 때, 빈 버킷이 도달될 때까지 산출된 해시 테이블 어드레스로부터 시작하는 모든 요소들은 후보 데이터 포인트들에 포함될 것이다. 프로브 시퀀스를 따라 수집되는 후보 특징 데이터 포인트들은 거리 비교를 사용하여 필터링될 수 있으며, 질의 특징 데이터 포인트들에 대해 미리 정의된 유사성 거리 내에 있는 그러한 특징 데이터 포인트들만이 유지된다.
일부 실시예들에서, 도 6c의 방법(606)에 도시된 바와 같이, 선형 프로빙 대신에, 확률적 로컬 프로빙은 데이터 포인트들에 의해 원래 어드레싱되는 버킷 주위의 미리 정의된 범위 내에서 버킷들의 삽입된 데이터 포인트들을 랜덤하게 스캐터링함으로써 해시 충돌을 해결하는데 사용될 수 있고, 또한 프로빙 시퀀스가 추적되지 않는다. 더욱이, 거리 비교를 사용하는 필터링이 수행되지 않고, 해시 어드레스 산출을 위해 사용되는 특징의 벡터 성분들은 저장될 필요가 없다.
전술된 확률 거리 메트릭은 거리 표시기로 특징 데이터 포인트들의 발생을 사용하므로, 버킷 내에서 수집되지만 상이한 해시 어드레스들에서 비롯되는 후보 데이터 포인트들은 질의의 결과로서 나중에 검색될 때, 특징 공간을 통해 통계적으로 분포되는 잡음으로 나타날 수 있다. 아래에 설명되는 바와 같이, 이러한 데이터 포인트들은 버킷 엔트리들의 블록 내의 이러한 데이터 포인트들의 다수의 발생들에 기초하여 정확하게 수집된 데이터 포인트들과 구별될 수 있다. 예를 들어, 해시 테이블 고유 잡음 레벨 이하로 참조되었던 이미지들은 폐기될 수 있다(예를 들어, 도 6d의 단계(616) 참조). 잡음은 예를 들어 해시 테이블들의 크기를 증가시키고, 해시 함수들의 수를 증가시키는 등 함으로써 완화될(정확하게 조종될) 수 있다.
더욱이, 도 6c에 도시된 바와 같이, 방법(606) 하에, 엔트리는 더 최근의 데이터에 의해 오버라이팅될 수 있다. 예를 들어, 89에서 어드레싱되는 버킷은 데이터 포인트들(620)을 저장하기 위해 사용되지만, 확률적 로컬 프로빙의 결과로서, 그것은 데이터 포인트들(630)에 의해 오버라이팅된다. 전형적으로 과점유된 버킷들과 연관되는 데이터 포인트들은 부피가 크고 게다가 덜 독특한 특징들에서 나오므로, 이러한 데이터의 오버라이팅은 이러한 특징들이 지워지는 것을 허용하고, 매칭 특징들을 결정하는 그들의 영향들은 감소될 수 있다. 이러한 오버라이팅 정책은 또한 (즉, 해시 테이블 내의 모든 엔트리들이 데이터로 저장될 때) 오버플로 상황을 처리하기 위해 조정될 수 있다.
예를 들어 도 6b 내지 도 6c의 해시 테이블들(607 내지 609)에 따라 배열되는 해시 테이블의 경우, 해시 테이블 내의 인접 영역들은 대략 버킷 리스트의 등가이다. 따라서, 특징 데이터 포인트로부터 산출되는 각각의 해시 어드레스에 대해, 해시 어드레스 주위의 해시 테이블의 고정 크기 블록 판독은 예를 들어 메모리 매핑된 파일 액세싱에 통상 이용되는 페이징 기능성을 사용하여 수행될 수 있다. 이러한 방식으로 판독되는 각각의 블록은 버킷 리스트를 표현할 수 있으며, 버킷 리스트는 결과적으로 해시 함수에 의해 분할되는 오버래핑된 버킷 오버샘플링 특징 공간 영역을 표현한다. 상기 설명된 바와 같이, 질의 데이터 포인트에 의해 어드레싱되는 동시 오버래핑 해시 버킷들(즉, 해시 함수들을 질의 데이터 포인트에 적용함으로써 산출되는 어드레스와 연관되는 해시 버킷들)의 수는 질의 데이터 포인트의 거리와 개략적으로 관련되어, 버킷 내의 특정 데이터 포인트가 질의 데이터 포인트에 더 가까워질수록, 그러한 특정 데이터 포인트의 확률은 질의 데이터 포인트에 의해 어드레싱되는 오버래핑 해시 버킷들의 적어도 일부에 의해 더 높게 커버된다. 그 결과, 그러한 특정 데이터 포인트는 오버래핑 해시 버킷들(즉, 오버래핑된 특징 공간 영역에 매핑되는 해시 버킷들) 내에서 복제로서 더 자주 나타낼 수 있고, 오버래핑 해시 버킷들(블록 판독에 의해 표현됨) 내에서 그러한 특정 데이터 포인트의 발생의 수는 질의 데이터 포인트로부터 그것의 거리를 추정하기 위해 사용될 수 있다. 그 다음, 블록 내에서 가장 자주 발생하는 그러한 데이터 포인트들은 질의에 응답하여 매칭 특징들인 것으로 결정되고, 후보 데이터 포인트들에 포함될 수 있다. 후보 데이터 포인트들로부터, 후보 데이터 포인트들과 연관되는 이미지들은 후보 이미지들로 취득될 수 있다.
도 6d는 이미지 특징 인덱스 데이터베이스에 질의 프로세스를 수행하는 예시적 방법을 예시하며, 데이터베이스는 예를 들어 도 6c의 해시 테이블(609)을 사용하여 조직화된다. 단계들(532 내지 536)은 도 5b에서의 것들과 동일하고 그들의 설명들은 여기서 반복되지 않는다. 버킷 어드레스가 단계(536)에서 결정된 후에, 그러한 버킷 주위의 해시 테이블의 블록 판독은 도 6c를 참조하여 상기 설명된 바와 같이, 단계(612)에서 수행된다. 그 다음, 수집되는 각각의 복제 참조 특징 데이터 포인트는 예를 들어 단계(613)에서 각각의 참조 특징 데이터 포인트와 연관되는 참조 카운터를 추적함으로써 카운팅된다. 모든 질의 데이터 포인트들이 분석된 후에, 수집된 참조 특징 데이터 포인트들과 연관되는 후보 이미지들은 단계(614)에서 매칭 후보들로 선택된다. 각각의 후보 이미지는 단계(613)에서 결정되는 바와 같이 각각의 복제 참조 특징 데이터 포인트들과 연관되는 참조 카운터들의 조합과 연관될 수 있다. 그 다음, 참조 카운터들의 조합은 단계(615)에서 후보 이미지들을 랭킹시키고 분류하기 위해 사용될 수 있다. 단계(616)에서, 특정 임계값 위에 있는 일부 참조 카운터들을 갖는 후보 이미지들은 폐기될 수 있다. 그러한 임계값은 미리 결정된 잡음 레벨에 기초하여 결정될 수 있다.
도 6e는 이전에 설명된 바와 같이 참조 이미지를 이미지 특징 인덱스 데이터베이스로 삽입하는 방법을 예시한다. 단계들(551 내지 556)은 도 5c의 유사하게 번호화된 단계들과 동일하고, 그들의 설명은 여기서 반복되지 않는다. 단계(621)에서, 제1 버킷 어드레스는 참조 특징량에 대해 결정된 후에, 랜덤 함수는 제2 버킷 어드레스를 산출하기 위해 사용된다. 랜덤 함수는 도 6b의 방법(602)과 유사하게, 데이터 포인트들에 의해 원래 어드레싱되는 버킷 주위의 미리 정의된 범위 내에서 버킷들의 삽입된 데이터 포인트들을 랜덤하게 스캐터링하기 위해 사용될 수 있다. 그 다음, 참조 데이터 포인트는 단계(622)에서, 제2 어드레스에 의해 어드레싱되는 버킷에 저장될 것이다. 그러한 버킷에 저장되는 다른 더 오래된 데이터가 있으면, 그러한 데이터는 단계(623)에서, 참조 데이터 포인트를 위해 폐기될 것이다.
도 7은 본 개시의 실시예들에 따른 본원에 설명되는 실시예들이 구현될 수 있는 예시적 시스템(700)을 예시하는 블록도이다. 일부 실시예들에서, 시스템(700)은 도 1a의 서버(140)의 일부일 수 있다. 일부 실시예들에서, 시스템(700)은 예를 들어 도 3의 시스템(300)에 의해 송신되는 질의를 처리하기 위해 사용될 수 있다. 적어도 하나의 예시적 실시예에서, 시스템(700)은 이미지 매칭 모듈(752), 참조 이미지 데이터베이스(720), 해시 테이블(730), 해시 테이블 관리 모듈(740), 후보 특징 서술자 검색 모듈(746), 후보 이미지 검색 모듈(750), 및 해시 함수들(770)을 포함한다.
적어도 일부 예시적 실시예들에서, 이미지 매칭 모듈(752)은 도 1a에 대해 상기 설명된 바와 같은 이미지 매칭 모듈(142)이다.
참조 이미지 데이터베이스(720)는 한 세트의 후보 이미지들을 저장할 수 있다. 각각의 후보 이미지는 시각 매체의 이미지(예를 들어, TV 쇼 동안의 장면의 스크린샷)일 수 있고, 한 세트의 미리 결정된 시각 특징들을 포함할 수 있다. 이러한 시각 특징들은 시스템(700)에 의해 처리되는 질의에 포함될 가능성이 높은 것으로 미리 결정될 수 있다. 이러한 특징들은 전술된 특징 서술자들에 의해 표현될 수 있다. 그 다음, 각각의 참조 이미지는 이미지에 포함되는 세트의 미리 결정된 시각 특징들의 적어도 일부에 대응하는 하나 이상의 특징 서술자들과 연관될 수 있다. 한 세트의 특징 서술자들을 포함하는 질의가 수신될 때, 하나 이상의 후보 이미지들은 검색된 후보 이미지들에 포함되는 특징 서술자들이 어느 정도의 확실성으로, 질의의 핑거프린트에 포함되는 특징 서술자들의 적어도 일부와 매칭한다는 결정에 기초한 질의에 응답하여 참조 이미지 데이터베이스(720)로부터 검색될 수 있다. 그 다음, 일부 실시예들에서, 그러한 검색된 후보 이미지들은 최상의 매칭 후보 이미지를 발견하기 위해 질의 이미지(즉, 질의가 발생되는 이미지)와 비교될 수 있다.
참조 이미지들의 데이터베이스가 여기에 제시되지만, 데이터베이스에서 시각 특징들을 그룹화하는(예를 들어, 후보 이미지 대신에, 시각 특징들 또는 특징 서술자들의 조합을 특정 객체와 연관시키는) 다른 방식들이 있으며, 이 방식들은 본원에 개시되는 기술들에 전적으로 적용가능하고 본 개시의 범위 내에 있다는 점이 이해되어야 한다.
해시 테이블(730)은 한 세트의 해시 함수들(770)과 연관된다. 일부 실시예들에서, 해시 테이블 관리 모듈(740)은 충돌 해결 모듈(742) 및 오버플로 처리 모듈(744)을 더 포함한다.
일부 실시예들에서, 해시 테이블 관리 모듈(740), 후보 특징 서술자 검색 모듈(746), 및 후보 이미지 검색 모듈(750)은 도 6d 내지 도 6e에 개시된 바와 같이 질의의 처리를 구현하도록 구성될 수 있다. 해시 테이블 관리 모듈(740)은 질의에 응답하여 해시 테이블(730)에 액세스를 제공한다. 해시 테이블 관리 모듈(340)은 도 6b 내지 도 6c의 통합된 해시 테이블들(602,604 및 606)과 유사하게, 해시 테이블(730)에 포함되는 모든 해시 테이블들의 해시 인덱스들(즉 어드레스들)을 한 세트의 해시 버킷들로 매핑하는 매핑 테이블을 제공한다. 어드레스들은 해시 함수들(770)을 사용하여 특징 서술자 데이터 포인트들에 기초하여 산출된다.
해시 테이블 관리 모듈(740)의 일부는 충돌 해결 모듈(742)은 새로운 데이터 포인트(예를 들어, 한 세트의 특징 서술자들)를 해시 테이블(730)과 연관시킬 때 해시 충돌(즉, 2개의 상이한 데이터 포인트들이 동일한 버킷에 어드레싱될 때)을 처리한다. 일부 실시예들에서, 충돌 해결 모듈(742)은 도 6c 및 도 6e를 참조하여 이전에 설명된 바와 같이 개방 어드레싱 및 프로빙 방법들을 구현한다.
해시 테이블 관리 모듈(740)의 일부인 오버플로 처리 모듈(744)은 빈 슬롯이 해시 테이블에서 발견될 수 없는 경우에 해시 테이블(730)과 새로운 데이터 포인트(예를 들어, 한 세트의 특징 서술자들)의 연관성을 처리한다. 일부 실시예들에서, 오버플로 처리 모듈(744)은 도 6c 및 도 6e를 참조하여 이전에 설명되는 바와 같이 오버라이팅 정책을 구현한다.
후보 특징 서술자 검색 모듈(746)은 한 세트의 후보 특징 서술자 데이터 포인트들을 취득하기 위해 해시 테이블(730)에 액세스한다. 질의에 포함되는 각각의 특징 서술자에 대해, 후보 특징 서술자 검색 모듈(746)은 해시 함수들을 적용하여 어드레스들을 산출하고, 어드레스들을 사용하여 버킷들을 위치 지정하고, 그 다음 버킷들과 연관되는 모든 데이터 포인트들을 검색한다. 프로빙 시퀀스가 추적되지 않는 경우에, 프로빙 시퀀스를 따라 다른 버킷들과 연관되는 모든 데이터 포인트들이 또한 검색될 것이다. 확률적 로컬 프로빙이 사용되는 경우에, 어드레싱되는 버킷 주위의 미리 정의된 범위 내의 모든 데이터 포인트들이 또한 검색될 것이다. 그 다음, 후보 특징 서술자 데이터 포인트들이 검색된 후에, 데이터 포인트들은 후보 이미지 검색 모듈(750)에 송신되며, 이 검색 모듈은 특징 서술자 데이터 포인트들의 어느 세트가 세트의 후보 데이터 포인트들 내에서 가장 빈번하게 반복하는지를 판단할 수 있다. 이러한 특징 서술자들은 질의에 포함되는 특징 서술자들과 가장 유사한 것으로 결정될 것이고, 그 다음에 질의에 응답하여 한 세트의 후보 이미지들 또는 다른 부가 정보를 식별하기 위해 사용될 수 있다. 일부 실시예들에서, 후보 특징 서술자 검색 모듈(746) 및 후보 이미지 검색 모듈(750)은 도 6d 및 도 6e의 방법들의 적어도 일부를 구현한다.
그 다음, 후보 이미지를 수신한 후에, 이미지 매칭 모듈(752)은 후보 이미지들의 핑거프린트들을 질의 핑거프린트(또는 그것의 일부)와 비교하고, 매치가 있는지를 판단한다. 매치가 있으면, 그 다음에 시스템(700)은 매칭 이미지를 그것에 첨부되는 주석들과 함께 주석 데이터베이스(780)로부터 검색하고, 부가 정보 및 주석들을 이동 디바이스에 복귀시킨다.
일부 실시예들에서, 도 8에 도시된 바와 같이, 예시적 클라이언트 디바이스(800)는 질의 처리를 위한 2단 시스템(two-tier system)을 형성하기 위해, 도 3의 시스템(300)에 더하여, 질의 캐시(840) 및 질의 캐시 관리 모듈(850)을 포함할 수 있다. 질의 캐시(840)는 이전에 수신된 질의들과 그러한 질의들에 응답하여 서버(140)로부터 검색되는 특징 서술자들(및/또는 후보 이미지(들)) 사이의 매핑을 저장하며, 도 4c에 설명된 것과 유사한 방법을 이용할 수 있다. 새로운 질의가 수신될 때, 질의 캐시 관리 모듈(850)은 새로운 질의의 콘텐츠를 질의 캐시(800)에 저장되는 질의들의 콘텐츠와 비교할 수 있다. 매치가 질의 캐시(840)에서 발견되면, 연관된 특징 서술자들(및/또는 후보 이미지(들))은 질의를 서버(130)에 송신하는 것 없이 응답으로 제공될 수 있다. 매치가 질의 캐시(840) 및/또는 후보 이미지들 데이터베이스(820)에서 발견될 수 없으면, 질의는 이때 시스템(700)에 송신될 것이다.
일부 실시예들에서, 그러한 2단 시스템은 또한 상이한 클라이언트 디바이스들에서 비롯되는 질의들을 처리하지만 유사한 콘텐츠를 포함하기 위해, 2개의 상이한 서버들 사이에서, 또는 시스템(700)의 일부로 구현될 수 있다. 제1 클라이언트 디바이스는 서버(130)가 매칭 이미지를 검색하게 하는 제1 질의를 제출한 후에, 다른 클라이언트 디바이스는 유사한 콘텐츠를 포함하는 제2 질의를 제출할 수 있다. 그러한 경우에, 제2 질의는 질의 캐시(840)를 통한 검색에 의해 처리될 수 있고, 제1 질의에 대한 결과가 재사용될 수 있다. 그러한 배열은 유사한 콘텐츠를 갖는 질의들에서 스파이크들을 처리하는데 유용할 수 있다. 예를 들어, 이전에 설명된 바와 같이, 비디오가 수백만 시청자들에게 브로드캐스팅되고 있을 때, 그들 중 다수는 그들의 디스플레이 디바이스들 상에 동시에 나타나는 관심 아이템의 스냅샷을 촬영함으로써 질의를 제출할 수 있고, 이러한 질의들은 매우 유사한 콘텐츠를 포함할 수 있다. 그 다음, 훨씬 더 많은 참조 이미지 데이터베이스(720)에 액세스함으로써 제1 질의가 처리되고 결과가 질의 캐시(840)에 추가된 후에, 동일한 관심 아이템을 포함하는 다른 질의들은 그 대신에 질의 캐시(840)에 액세스함으로써 처리될 수 있으며, 그것은 효율을 대단히 개선할 수 있다.
도 9는 본 개시의 실시예들에 따른 본원에 설명되는 실시예들이 구현될 수 있는 예시적 시스템(900)의 블록도이다. 도 9에 도시된 바와 같이, 시스템(900)은 클라이언트 디바이스(910), 네트워크(930), 및 서버(940)를 포함한다. 클라이언트 디바이스(910)는 하나 이상의 프로세서들(912), 메모리 디바이스(914), 스토리지 디바이스(916), 디스플레이(917), 네트워크 인터페이스(918), 카메라(119)(또는 다른 이미지 발생 디바이스), 및 가속도계(922)(또는 다른 배향 결정 디바이스)를 포함하며, 그것의 모두는 버스(920)를 통해 서로 통신할 수 있다. 일부 실시예들에서, 디스플레이(917)는 터치스크린인 것이 바람직하다. I/O 디바이스들은 신호를 취득하고/하거나 출력할 수 있는 마이크로폰 및 임의의 다른 디바이스들을 포함할 수 있다. 네트워크(930)를 통해, 클라이언트 디바이스(910)는 서버(940)와 데이터를 교환할 수 있다. 서버(940)는 또한 하나 이상의 프로세서들(942), 메모리 디바이스(944), 스토리지 디바이스(946), 및 네트워크 인터페이스(948)를 포함하며, 그것의 모두는 버스(950)를 통해 서로 통신할 수 있다.
메모리들(914 및 944) 둘 다는 각각 프로세서들(912 및 942)에 실행되는 정보 및 명령어들을 저장하는 랜덤 액세스 메모리(random access memory)(RAM) 또는 다른 휘발성 스토리지 디바이스들일 수 있다. 메모리들(914 및 944)은 또한 프로세서들(912 및 942)에 의해 실행되는 명령어들의 실행 동안에 일시적 변수들 또는 다른 중간 정보를 저장하는데 사용될 수 있다. 그러한 명령어들은 프로세서들(912 및 914)에 액세스한 가능한 비일시적 저장 매체(예를 들어, 스토리지 디바이스들(916 및 946))에 저장된 후에, 명령어들에 지정되는 동작들을 수행하도록 맞춤화되는 특수 목적 머신들로 컴퓨터 시스템들(910 및 940)을 렌더링한다. 명령어들은 상이한 소프트웨어 모듈들로 조직화될 수 있으며, 이 소프트웨어 모듈들은 예로서, 구성요소들, 예컨대 소프트웨어 구성요소들, 객체 지향 소프트웨어 구성요소들, 클래스 구성요소들 및 작업 구성요소들, 프로세스들, 함수들, 필드들, 절차들, 서브루틴들, 세그먼트들 of 프로그램 코드, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스들, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다.
일반적으로, 단어 "모듈"은 본원에 사용되는 바와 같이, 하드웨어 또는 펌웨어로 구체화되는 로직을 언급하거나, 엔트리 및 엑시트 포인트들을 가질 수 있고, 예를 들어, 자바(Java), 루아(Lua), C 또는 C++과 같은 프로그래밍 언어로 기록되는 소프트웨어 명령어들의 집합을 언급한다. 소프트웨어 모듈은 동적 링크 라이브러리에 설치되거나, 예를 들어, 베이직, 펄(Perl), 또는 파이썬(Python)과 같은 해석된 프로그래밍 언어로 기록되는 실행가능 프로그램으로 컴파일되고 링크될 수 있다. 소프트웨어 모듈들은 다른 모듈들 또는 그들 자체로부터 호출가능할 수 있고/있거나, 검출된 이벤트들 또는 인터럽트들에 응답하여 호출될 수 있다는 점이 이해될 것이다. 컴퓨팅 디바이스들 상의 실행을 위해 구성되는 소프트웨어 모듈들은 컴퓨터 판독가능 매체, 예컨대 콤팩트 디스크, 디지털 비디오 디스크, 플래시 드라이브, 자기 디스크, 또는 임의의 다른 유형의 매체 상에, 디지털 다운로드로 제공될 수 있다(그리고 실행 전에 설치, 압축 해제, 또는 복호화를 필요로 하는 압축되거나 설치가능한 포맷으로 원래 저장될 수 있음). 그러한 소프트웨어 코드는 컴퓨팅 디바이스에 의한 실행을 위해, 실행중의 컴퓨팅 디바이스의 메모리 디바이스 상에 부분적으로 또는 전적으로 저장될 수 있다. 소프트웨어 명령어들은 펌웨어, 예컨대 EPROM에 내장될 수 있다. 하드웨어 모듈들은 연결된 논리 유닛들, 예컨대 게이트들 및 플립플롭들로 구성될 수 있고/있거나, 프로그램가능 유닛들, 예컨대 프로그램가능 게이트 어레이들 또는 프로세서들로 구성될 수 있다는 점이 더 이해될 것이다. 본원에 설명되는 모듈들 또는 컴퓨팅 디바이스 기능성은 소프트웨어 모듈들로 구현되는 것이 바람직하지만, 하드웨어 또는 펌웨어로 표현될 수 있다. 일반적으로, 본원에 설명되는 모듈들은 그들의 물리 조직 또는 저장에도 불구하고 다른 모듈들과 조합되거나 서브모듈들로 분할될 수 있는 논리 모듈들을 언급한다.
클라이언트 디바이스(910) 및 서버(940)는 맞춤형 하드와이어 로직, 하나 이상의 ASIC들 또는 FPGA들, 펌웨어 및/또는 프로그램 로직을 사용하여 본원에 설명되는 기술들을 구현할 수 있으며 프로그램 로직은 컴퓨터 시스템과 조합하여 클라이언트 디바이스(910) 및 서버(940)가 특수 목적 머신이 되게 하거나 이들을 프로그래밍한다. 일부 실시예들에 따르면, 본원에 설명되는 동작들, 기능성들, 및 기술들 및 다른 특징들은 프로세서들(912 및 942)이 메모리들(914 및 944) 각각에 포함되는 하나 이상의 명령어들의 하나 이상의 시퀀스들을 실행하는 것에 응답하여 클라이언트 디바이스(940) 및 서버(940)에 의해 수행된다. 그러한 명령어들은 스토리지 디바이스들(916 및 946)과 같은, 다른 저장 매체로부터 메모리들(914 및 944)로 판독될 수 있다. 메모리들(914 및 944)에 포함되는 명령어들의 시퀀스들의 실행은 각각 프로세서들(912 및 942)이 본원에 설명되는 프로세스 단계들을 수행하게 한다. 대안 실시예들에서, 하드와이어 회로는 소프트웨어 명령어들을 대신하여 또는 소프트웨어 명령어들과 조합하여 사용될 수 있다.
본원에 사용되는 바와 같은 용어 "비일시적 매체"는 머신이 특정 방식으로 동작되게 하는 데이터 및/또는 명령어들을 저장하는 임의의 비일시적 매체를 언급한다. 그러한 비일시적 매체는 비휘발성 매체 및/또는 휘발성 매체를 포함할 수 있다. 비휘발성 매체는 예를 들어 광 또는 자기 디바이스들, 예컨대 스토리지 디바이스들(916 및 946)을 포함할 수 있다. 휘발성 매체는 동적 메모리, 예컨대 메모리들(914 및 944)을 포함할 수 있다. 비일시적 매체의 통상의 형태들은 예를 들어 플로피 디스크, 플렉시블 디스크, 하드 디스크, 고체 상태 드라이브, 자기 테이프, 또는 임의의 다른 자기 데이터 저장 매체, CD-ROM, 임의의 다른 광 데이터 저장 매체, 홀들의 패턴들을 갖는 임의의 물리 매체, RAM, PROM, 및 EPROM, 플래시 EPROM, NVRAM, 임의의 다른 메모리 칩 또는 카트리지, 및 동일한 것의 네트워킹된 버전들을 포함한다.
예를 들어, 도 1a의 디바이스들(121 및 122)은 클라이언트 디바이스(910)로 구현될 수 있으며, 도 3의 시스템(300) 및 도 4a 내지 도 4b의 방법들(400, 430, 및 460)은 스토리지(916) 및 메모리(914)에 저장되는 소프트웨어 명령어들로 구현될 수 있다. 일부 실시예들에서, 도 1a의 서버(140)는 서버(940)로 구현될 수 있으며, 도 7의 시스템(700) 및 도 6b 내지 도 6d의 방법들(600, 602, 610 및 620)은 스토리지(946) 및 메모리(944)에 저장되는 소프트웨어 명령어들로 구현될 수 있다.
네트워크 인터페이스들(918 및 948)은 양방향 데이터 통신 결합을 네트워크(930)에 제공할 수 있다. 예를 들어, 네트워크 인터페이스들(918 및 948)은 데이터 통신 연결을 대응하는 타입의 전화선에 제공하기 위해 종합 정보 통신망(integrated services digital network)(ISDN) 카드, 케이블 모뎀, 위성 모뎀, 또는 모뎀일 수 있다. 다른 예로서, 네트워크 인터페이스들(918 및 948)은 데이터 통신 연결을 호환가능 LAN에 제공하기 위해 근거리 네트워크(local area network)(LAN) 카드일 수 있다. 무선 링크들이 또한 구현될 수 있다. 임의의 그러한 구현에서, 네트워크 인터페이스들(918 및 948)은 다양한 타입들의 정보를 표현하는 디지털 데이터 스트림들을 운반하는 전기, 전자기 또는 광 신호들을 송신하고 수신하고, 데이터 스트림을 스토리지 디바이스들(916 및 946)에 제공할 수 있다. 그 다음, 프로세서들(912 및 942)은 (예를 들어, 데이터를 압축하거나 압축 해제하기 위해 소프트웨어 명령어들을 실행함으로써) 데이터를 상이한 형태로 변환하고, 그 다음에 변환된 데이터를 스토리지 디바이스들(예를 들어, 스토리지 디바이스들(916 및 946))로 저장하고, 및/또는 변환된 데이터를 네트워크 인터페이스들(918 및 948)을 경유하여 네트워크(930)를 통해 송신할 수 있다.
일부 실시예들에 따르면, 본원에 설명되는 동작들, 기술들, 및/또는 구성요소들은 전자 디바이스에 의해 구현될 수 있으며, 전자 디바이스는 하나 이상의 특수 목적 컴퓨팅 디바이스들을 포함할 수 있다. 특수 목적 컴퓨팅 디바이스들은 본원에 설명되는 동작들, 기술들, 및/또는 구성요소들을 수행하기 위해 하드와이어링될 수 있거나, 본원에 설명되는 동작들, 기술들 및/또는 구성요소들을 수행하기 위해 지속적으로 프로그래밍되는 하나 이상의 주문형 집적 회로들(application-specific integrated circuits)(ASICs) 또는 필드 프로그램가능 게이트 어레이들(field programmable gate arrays)(FPGAs)과 같은 디지털 전자 디바이스들을 포함할 수 있거나, 펌웨어, 메모리, 다른 스토리지, 또는 조합 내의 프로그램 명령어들에 따라 본 개시의 그러한 특징들을 수행하도록 프로그래밍되는 하나 이상의 하드웨어 프로세서들을 포함할 수 있다. 그러한 특수 목적 컴퓨팅 디바이스들은 또한 본 개시의 기술 및 다른 특징들을 달성하기 위해 맞춤형 프로그래밍을 갖는 맞춤형 하드와이어 로직, ASIC들, 또는 FPGA들을 조합할 수 있다. 특수 목적 컴퓨팅 디바이스들은 본 개시의 기술들 및 다른 특징들을 구현하기 위해 하드와이어 및/또는 프로그램 로직을 통합하는 데스크톱 컴퓨터 시스템들, 휴대용 컴퓨터 시스템들, 핸드헬드 디바이스들, 네트워킹 디바이스들, 또는 임의의 다른 디바이스일 수 있다.
하나 이상의 특수 목적 컴퓨팅 디바이스들은 일반적으로 운영 체제 소프트웨어, 예컨대 iOS, 안드로이드, 블랙베리, 크롬 OS, 윈도우즈 XP, 윈도우즈 비스타, 윈도우즈 7, 윈도우즈 8, 윈도우즈 서버, 윈도우즈 CE, 유닉스, 리눅스, SunOS, 솔라리스, VxWorks, 또는 다른 호환가능 운영 체제들에 의해 제어되고 조정될 수 있다. 다른 실시예들에서, 컴퓨팅 디바이스는 독점 운영 체제에 의해 제어될 수 있다. 운영 체제들은 다른 것들 중에서, 실행을 위한 컴퓨터 프로세스들을 제어하고 스케줄링하며, 메모리 관리를 수행하고, 파일 시스템, 네트워킹, I/O 서비스들을 제공하고, 사용자 인터페이스 기능성, 예컨대 그래픽 사용자 인터페이스(graphical user interface)("GUI")를 제공한다.
본원에 설명되는 전술된 시스템들은 다수의 사용들을 갖고 다양한 시나리오들에 사용될 수 있다. 예를 들어, 본원에 설명되는 방법들 및 시스템들은 광고를 이동 디바이스의 사용자에게 전달하는 시스템들에 사용될 수 있다. 예를 들어, 사용자는 장소를 방문하거나, 간행물을 읽거나, 영화를 시청하는 동안에 관심 아이템, 주제, 경치, 또는 위치를 식별할 수 있다. 본원에서의 본 발명의 시스템들 및 방법들을 사용하면, 사용자는 관심 아이템, 경치, 또는 무엇이든지의 스냅샷을 촬영하고, 이미지를 발생시킬 수 있다. 이미지는 주위 영역을 포함하여 및 임의의 시야 각도로 캡처될 수 있다. 그 다음, 시스템은 이미지로부터 특징들을 추출하고, 이미지들의 적어도 일부에 대응하는 특징 서술자들을 포함하는 질의를 발생시키고, 추출된 특징들에 기초하여 검색을 위한 질의를 원격 서버에 제출한다. 사용자에게 디스플레이될 수 있는 부가 정보는 사용자에게 자유롭게 제공될 수 있거나, 정보의 일부 또는 전부는 지불된 광고의 형태일 수 있다. 일부 시나리오들에서, 하나의 엔티티는 사용자들에게 송신되는 제품들 또는 서비스들에 관한 부가 정보를 송신하기 위해 검색 서비스를 제공하고 판매사들에게 과금할 수 있다. 일부 시나리오들에서, 이동 디바이스 사용자들은 전술된 방법들 및 시스템들을 사용하여 제품들 또는 서비스들에 관한 정보를 검색하는 능력에 대해 과금될 수 있다.
전술한 설명에서, 실시예들은 구현에서 구현으로 변화될 수 있는 다수의 특정 상세들을 참조하여 설명되었다. 설명된 실시예들의 특정 개조들 및 수정들이 이루어질 수 있다. 다른 실시예들은 본원에 개시되는 본 발명의 설명 및 실시의 고려로부터 본 기술분야의 통상의 기술자들에게 분명할 수 있다. 설명 및 예들은 단지 예시적인 것으로 간주되고, 본 발명의 진정한 범위 및 사상은 이하의 청구항들에 의해 표시되도록 의도된다. 또한 도면들에 도시되는 단계들의 시퀀스는 단지 예시적 목적들을 위한 것이도록 의도되고 단계들의 임의의 특정 시퀀스에 제한되도록 의도되지 않는다. 그와 같이, 본 기술분야의 통상의 기술자들은 동일한 방법을 구현하는 동안에 이러한 단계들이 상이한 순서로 수행될 수 있는 것을 이해할 것이다.

Claims (29)

  1. 이동 디바이스(mobile device)를 갖는 사용자에 의해 획득되는 질의 이미지와 관련되는 부가 정보를 식별하고 이동 디바이스에 송신하는 서버로서,
    하나 이상의 참조 이미지들과 연관되는 하나 이상의 참조 특징 서술자들(reference feature descriptors)을 저장하는 참조 이미지 데이터베이스 - 적어도 하나의 참조 이미지 특징 서술자는 복수의 기능들을 사용하여 상기 참조 이미지 데이터베이스의 어드레스 공간 내의 복수의 제1 어드레스들에 매핑되고, 상기 복수의 기능들은 하나 이상의 특징 서술자들을 동일한 어드레스 공간에 매핑하도록 구성됨 -; 및
    하나 이상의 모듈들을 실행하는 프로세서
    를 포함하며,
    상기 하나 이상의 모듈들은,
    상기 이동 디바이스로부터, 하나 이상의 질의 이미지 특징 서술자들을 포함하는 제1 질의를 수신하는 질의 수신 모듈;
    상기 하나 이상의 질의 이미지 특징 서술자들 각각에 대해, 상기 복수의 기능들을 사용하여 복수의 제2 어드레스들을 산출하고, 상기 복수의 제2 어드레스들 각각에 대해, 상기 참조 이미지 데이터베이스의 미리 정의된 영역 내에 저장되는 복제 참조 이미지 특징 서술자들(duplicate reference image feature descriptors)의 수를 결정하는 후보 특징 서술자 검색 모듈;
    상기 결정된 복제 참조 이미지 특징 서술자들의 수에 기초하여 한 세트의 참조 이미지 특징 서술자들을 선택하는 후보 이미지 검색 모듈;
    상기 선택된 세트의 참조 이미지 특징 서술자들을 상기 하나 이상의 질의 이미지 특징 서술자들과 비교하여 상기 하나 이상의 참조 이미지들 중 어느 하나가 상기 질의 이미지와 매칭되는지를 판단하는 이미지 매칭 모듈
    을 포함하며;
    매칭 참조 이미지가 결정되면, 상기 서버는,
    주석 데이터베이스(annotation database)로부터 상기 적어도 하나의 매칭 참조 이미지와 연관되는 부가 정보를 획득하는 단계, 및
    사용자에게 적어도 하나의 관심 아이템과 관련되는 부가 정보로서 디스플레이하기 위해 상기 부가 정보를 상기 이동 디바이스에 송신하는 단계
    를 수행하도록 더 구성되는 서버.
  2. 제1항에 있어서, 상기 프로세서는,
    상기 복수의 제2 어드레스들 각각에 대해, 상기 복수의 제2 어드레스들 각각과 상기 복수의 제1 어드레스들 각각 사이의 관계에 기초하여 상기 참조 이미지 특징 서술자들 중 하나 이상에 대한 하나 이상의 참조들을 제공하는 해시 테이블 관리 모듈을 실행하도록 더 구성되고;
    상기 복제 참조 이미지 특징 서술자들의 수는 상기 관계에 기초하여 결정되는 서버.
  3. 제2항에 있어서, 상기 해시 테이블 관리 모듈은,
    상기 복수의 제1 어드레스들을 산출하기 위해 랜덤 함수를 사용하는 충돌 해결 모듈을 더 포함하는 서버.
  4. 이동 디바이스를 갖는 사용자에 의해 획득되는 제1 질의 이미지와 관련되는 부가 정보를 식별하고 디스플레이하는 컴퓨터 구현 방법으로서,
    상기 이동 디바이스로부터, 상기 제1 질의 이미지에 포함되고 사용자가 관심을 갖는 적어도 하나의 관심 아이템에 대응하는 하나 이상의 질의 이미지 특징 서술자들을 포함하는 제1 질의를 수신하는 단계;
    상기 제1 질의를 수신하는 것에 응답하여,
    상기 질의 이미지 특징 서술자들 각각에 대해, 복수의 기능들을 사용하여 복수의 어드레스들을 산출하는 단계;
    상기 복수의 어드레스들 각각에 대해, 하나 이상의 참조 이미지 특징 서술자들을 저장하는 참조 이미지 데이터베이스의 특정 영역 내에 저장되는 복제 참조 이미지 특징 서술자들의 수를 결정하는 단계 - 상기 참조 이미지 특징 서술자들 각각은 적어도 하나의 참조 이미지와 연관되고, 적어도 하나의 참조 이미지 특징 서술자는 상기 복수의 기능들을 사용하여 상기 참조 이미지 데이터베이스의 어드레스 공간 내의 복수의 어드레스들에 매핑되고, 상기 복수의 기능들은 하나 이상의 특징 서술자들을 동일한 어드레스 공간에 맵핑하도록 구성됨 -; 및
    상기 복수의 어드레스들 각각과 연관되는 상기 참조 이미지 데이터베이스의 특정 영역 내의 복제 참조 이미지 특징 서술자들의 수에 기초하여 하나 이상의 후보 참조 이미지들을 결정하는 단계;
    상기 하나 이상의 후보 참조 이미지들에 대한 특징 서술자들을 상기 질의 이미지 특징 서술자들과 비교하여 매치가 있는지를 판단하는 단계
    를 포함하는 유사성 검색(similarity search)을 수행하는 단계; 및
    매치가 있으면, 상기 매치와 연관되는 부가 정보를 취득하는 단계; 및
    상기 사용자에게 디스플레이하기 위해 상기 매치와 연관되는 부가 정보를 상기 이동 디바이스에 송신하는 단계
    를 포함하는 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    어드레스와 연관되는 미리 정의된 영역 내의 상기 복제 참조 이미지 특징 서술자들의 수는 상기 어드레스에 매핑되는 상기 제1 질의 이미지 특징 서술자들과 상기 복제 참조 이미지 특징 서술자들 사이의 유사성의 정도를 반영하고;
    상기 하나 이상의 후보 참조 이미지들을 결정하는 단계는,
    상기 복제 참조 이미지 특징 서술자들의 수가 미리 결정된 임계값을 초과하는 것을 결정하는 단계; 및
    상기 복제 참조 이미지 특징 서술자들과 연관되는 상기 하나 이상의 후보 참조 이미지들을 취득하는 단계를 포함하는 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    상기 이동 디바이스로부터, 하나 이상의 제2 질의 이미지 특징 서술자들을 포함하는 제2 질의를 수신하는 단계;
    상기 하나 이상의 제1 질의 이미지 특징 서술자들을 상기 하나 이상의 제2 질의 이미지 특징 서술자들과 비교하는 단계; 및
    상기 비교의 결과에 기초하여:
    상기 유사성 검색을 수행하지 않는 것을 결정하는 단계; 및
    질의 캐시에 저장되는 상기 제1 질의와 상기 하나 이상의 후보 참조 이미지들 사이의 매핑에 기초하여, 상기 하나 이상의 후보 이미지들을 취득하는 단계를 더 포함하는 컴퓨터 구현 방법.
  7. 제4항에 있어서,
    상기 참조 이미지 특징 서술자들은 복수의 해시 버킷들을 포함하는 해시 테이블에 기초하여 데이터베이스 내에 저장되며, 각각의 해시 버킷은 어드레스와 연관되고;
    각각의 해시 버킷은 상기 어드레스 공간 내의 어드레스와 연관되고; 상기 복수의 기능들은 하나 이상의 특징 서술자들을 한 세트의 해시 버킷들 중 하나 이상의 해시 버킷들에 매핑하도록 구성되는 컴퓨터 구현 방법.
  8. 제1항에 있어서, 상기 복수의 제1 어드레스들 각각은 단일 참조 이미지 특징 서술자와 연관되는 서버.
  9. 제2항에 있어서, 상기 해시 테이블 관리 모듈은,
    상기 복수의 제1 어드레스들 중 하나가 산출될 때 상기 복수의 제1 어드레스들 중 하나가 제1 참조 이미지 특징 서술자와 연관되는지를 판단하고;
    상기 복수의 제1 어드레스들 중 하나가 상기 제1 참조 이미지 특징 서술자와 연관되는 것을 결정하는 것에 응답하여:
    상기 제1 참조 이미지 특징 서술자로부터 상기 복수의 제1 어드레스들 중 하나를 연관 해제(disassociating)하고;
    상기 복수의 제1 어드레스들 중 하나를 제2 참조 이미지 특징 서술자와 연관시키는
    오버플로 처리 모듈(overflowing handling module)을 더 포함하는 서버.
  10. 제1항에 있어서, 상기 프로세서는,
    하나 이상의 세트들의 참조 이미지 서술자들을 랭킹(ranking)시키고 - 각각의 세트는 상기 결정된 복제 참조 이미지 특징 서술자들의 수들의 조합과 연관됨 - ;
    상기 랭킹의 결과에 기초하여 상기 세트의 참조 이미지 특징 서술자들을 선택하는
    상기 후보 이미지 검색 모듈을 실행하도록 더 구성되는 서버.
  11. 제1항에 있어서, 상기 프로세서는,
    상기 선택된 세트의 참조 이미지 특징 서술자들로부터, 미리 정의된 임계값 아래인 복제 참조 이미지 특징 서술자들의 산출된 수와 연관되는 하나 이상의 참조 이미지들을 배제하는 상기 후보 이미지 검색 모듈을 실행하도록 더 구성되는 서버.
  12. 제1항에 있어서, 참조 이미지 서술자들은 복수의 해시 버킷들을 포함하는 해시 테이블에 기초하여 데이터베이스 내에 저장되고, 각각의 해시 버킷은 상기 어드레스 공간 내의 어드레스와 연관되고; 상기 복수의 기능들은 하나 이상의 특징 서술자들을 한 세트의 해시 버킷들 중 하나 이상의 해시 버킷들에 매핑하도록 구성되는 서버.
  13. 제4항에 있어서,
    상기 이동 디바이스로부터, 하나 이상의 제2 질의 이미지 특징 서술자들을 포함하는 제2 질의를 수신하는 단계;
    상기 하나 이상의 제1 질의 이미지 특징 서술자들을 상기 하나 이상의 제2 질의 이미지 특징 서술자들과 비교하는 단계; 및
    상기 비교의 결과에 기초하여,
    유사성 검색을 수행하지 않기로 결정하는 단계; 및
    질의 캐시에 저장되는 상기 제1 질의와 상기 하나 이상의 후보 참조 이미지들 사이의 매핑에 기초하여, 상기 하나 이상의 후보 이미지들을 취득하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  14. 관심 아이템과 관련되는 부가 정보를 식별하고 디스플레이하는 디바이스로서, 상기 디바이스는 하나 이상의 모듈들을 실행하는 프로세서를 포함하며, 상기 하나 이상의 모듈들은,
    상기 관심 아이템을 포함하는 제1 질의 이미지를 취득하는 이미지 취득 모듈;
    상기 제1 질의 이미지와 연관되는 복수의 제1 질의 이미지 특징 서술자들(query image feature descriptors)을 추출하는 특징 서술자 발생 모듈;
    상기 추출된 제1 질의 이미지 특징 서술자들에 기초하여 제1 질의 핑거프린트를 발생시키고; 상기 제1 질의 핑거프린트를 서버에 송신하는 핑거프린트 발생 모듈 - 상기 제1 질의 핑거프린트는 상기 서버가 복수의 참조 이미지 특징 서술자들(reference image feature descriptors)을 저장하는 데이터베이스에서 유사성 검색(similarity search)을 상기 제1 질의 핑거프린트에 기초하여 수행할 수 있게 하고 상기 제1 질의 이미지 특징 서술자들을 참조 이미지 특징 서술자들이 가장 자주 매핑되는 어드레스들, 또는 인접 어드레스들에 매핑함으로써 상기 데이터베이스로부터 검색되는 상기 참조 이미지 특징 서술자들 중 적어도 하나와 연관되는 하나 이상의 후보 이미지들을 취득할 수 있게 함 - ; 및
    상기 제1 질의 이미지가 상기 하나 이상의 후보 이미지들 중 적어도 하나와 매칭하는지를 판단하는 이미지 매칭 모듈
    을 포함하며;
    상기 이미지 매칭 모듈에서의 판단은 사용자에게 적어도 하나의 관심 아이템과 관련되는 부가 정보로서 디스플레이하기 위해 상기 하나 이상의 후보 이미지들 중 적어도 하나와 연관되는 부가 정보의 취득을 가능하게 하는 디바이스.
  15. 제14항에 있어서, 상기 프로세서는,
    상기 제1 질의 이미지 특징 서술자들 사이에서 제1 세트의 상대 위치들을 추정하고;
    상기 하나 이상의 후보 이미지들 중 적어도 하나에 대해,
    상기 제1 질의 이미지 특징 서술자들에 대응하는 한 세트의 대응하는 참조 이미지 특징 서술자들을 결정하고;
    상기 세트의 대응하는 참조 이미지 특징 서술자들 사이에서 제2 세트의 상대 위치들을 산출하고;
    상기 제1 세트의 상대 위치들과 상기 제2 세트의 상대 위치들 사이의 관계에 기초하여 상기 제1 질의 이미지와 상기 후보 이미지 사이의 적합도(degree of fit)를 결정하는 이미지 매칭 모듈을 실행하도록 더 구성되며;
    상기 제1 질의 이미지가 상기 하나 이상의 후보 이미지들 중 적어도 하나와 매칭하는지의 판단은 상기 결정된 적합도에 기초하는 디바이스.
  16. 제15항에 있어서, 상기 제1 질의 이미지 특징 서술자들에 대응하는 한 세트의 대응하는 참조 이미지 특징 서술자들을 결정하는 것은 하나 이상의 참조 이미지 특징 서술자들과 상기 제1 질의 이미지 특징 서술자들 사이에서 하나 이상의 특징 거리들을 산출하는 것을 포함하는 디바이스.
  17. 제15항에 있어서, 상기 디바이스는,
    상기 제1 세트의 상대 위치들에 기초하여 상기 제1 질의 이미지의 제1 포즈를 결정하는 단계;
    상기 제1 포즈를 이전에 취득된 질의 이미지와 연관되는 제2 포즈와 비교하는 단계;
    상기 비교의 결과에 기초하여, 추적이 분실(lost)되는지를 판단하는 단계; 및
    추적이 분실되는 것으로 결정될 때:
    상기 이미지 취득 모듈이 제2 질의 이미지를 취득하게 하는 단계;
    상기 특징 서술자 발생 모듈이 상기 제2 질의 이미지와 연관되는 복수의 제2 질의 이미지 특징 서술자들을 추출하게 하는 단계; 및
    상기 핑거프린트 발생 모듈이,
    상기 추출된 제2 질의 이미지 특징 서술자들에 기초하여 제2 질의 핑거프린트를 발생시키게 하고;
    상기 제2 질의 핑거프린트를 상기 서버에 송신하게 하는 단계를 수행하도록 더 구성되는 디바이스.
  18. 제14항에 있어서, 상기 프로세서는,
    복수의 이미지들을 취득하고;
    상기 취득된 복수의 이미지들 각각을 복수의 제1 타임스탬프들 각각과 연관시키고;
    스냅샷(snapshot)을 촬영하기 위해 개시를 검출하고;
    상기 개시를 제2 타임스탬프와 연관시키고;
    상기 복수의 제1 타임스탬프들 각각과 상기 제2 타임스탬프 사이의 관계에 기초하여 상기 제1 질의 이미지로서 상기 복수의 이미지들로부터 이미지를 선택하는 상기 이미지 취득 모듈을 실행하도록 더 구성되는 디바이스.
  19. 제18항에 있어서, 상기 프로세서는 상기 디바이스의 모션을 검출하는 이미지 취득 모듈을 실행하도록 더 구성되고; 상기 제1 질의 이미지로서 상기 복수의 이미지들로부터 상기 이미지의 선택은 또한 상기 검출된 모션에 기초하는 디바이스.
  20. 제14항에 있어서,
    하나 이상의 이전에 수신된 질의 핑거프린트들과 하나 이상의 이전에 취득된 후보 이미지들 사이의 매핑을 저장하는 질의 캐시; 및
    상기 제1 질의 핑거프린트가 상기 질의 캐시에 저장되는 상기 하나 이상의 이전에 수신된 질의 핑거프린트들 중 임의의 것과 매칭하는지를 판단하는 질의 캐시 관리 모듈을 더 포함하며;
    상기 질의 캐시 관리 모듈이 상기 제1 질의 핑거프린트가 상기 질의 캐시에 저장되는 상기 하나 이상의 이전에 수신된 질의 핑거프린트들 중 적어도 하나와 매칭하는 것을 결정하면, 상기 디바이스는,
    상기 제1 질의 핑거프린트를 상기 서버에 송신하지 않는 것을 결정하는 단계; 및
    상기 제1 질의 이미지가 상기 이전에 취득된 후보 이미지들 중 임의의 것과 매칭하는지를 상기 이미지 매칭 모듈이 판단하게 하는 단계를 수행하도록 더 구성되는 디바이스.
  21. 제20항에 있어서, 상기 질의 캐시 관리 모듈은 상기 제1 질의 핑거프린트가 상기 질의 캐시에 저장되는 상기 하나 이상의 이전에 수신된 질의 핑거프린트들 중 어느 것과도 매칭하지 않는 것을 결정하면, 상기 디바이스는,
    상기 제1 질의 이미지가 상기 하나 이상의 후보 이미지들 중 적어도 하나와 매칭하는 것을 상기 이미지 매칭 모듈이 결정한 후에, 상기 제1 질의 핑거프린트와 상기 하나 이상의 후보 이미지들 사이의 매핑을 상기 질의 캐시에 추가하는 단계를 수행하도록 더 구성되는 디바이스.
  22. 제14항에 있어서, 상기 디바이스는,
    상기 제1 질의 이미지의 일부의 선택을 수신하기 위해 인터페이스를 제공하는 단계; 및
    상기 특징 서술자 발생 모듈이 상기 제1 질의 이미지의 선택된 부분과 연관되는 상기 제1 질의 이미지 특징 서술자들을 추출하게 하는 단계를 수행하도록 더 구성되는 디바이스.
  23. 제14항에 있어서, 상기 디바이스는,
    상기 제1 질의 이미지의 일부의 선택을 수신하기 위해 인터페이스를 제공하는 단계; 및
    부가 데이터베이스 모듈이 상기 선택에 기초하여 상기 부가 정보를 취득하게 하는 단계를 수행하도록 더 구성되는 디바이스.
  24. 제14항에 있어서, 적어도 하나의 참조 이미지 특징 서술자는 복수의 기능들에 의해, 상기 데이터베이스의 어드레스 공간 내의 복수의 어드레스들에 매핑되고; 상기 복수의 기능들은 하나 이상의 특징 서술자들을 동일한 어드레스 공간에 매핑하도록 구성되는 디바이스.
  25. 제24항에 있어서, 상기 유사성 검색은 상기 데이터베이스의 미리 정의된 영역 내에서 복제 참조 이미지 특징 서술자들(duplicate reference image feature descriptors)의 수를 결정하는 것을 포함하고, 상기 데이터베이스의 미리 정의된 영역은 상기 복수의 기능들을 사용하여 상기 제1 질의 핑거프린트에 포함되는 상기 제1 질의 이미지 특징 서술자들로부터 산출되는 하나 이상의 어드레스들과 연관되는 디바이스.
  26. 이동 디바이스를 갖는 사용자에 의해 획득되는 이미지와 관련되는 부가 정보를 식별하고 디스플레이하는 컴퓨터 구현 방법으로서, 상기 방법은 상기 이동 디바이스에 의해 구현되고,
    부가 정보가 디스플레이되는 사용자가 관심을 갖는 적어도 하나의 관심 아이템을 포함하는 제1 질의 이미지를 취득하는 단계;
    상기 제1 질의 이미지로부터 복수의 제1 특징들을 추출하는 단계 - 상기 제1 특징들은 상기 적어도 하나의 관심 아이템에 대응함 -;
    제1 질의를 발생시키는 단계 - 상기 제1 질의는 상기 추출된 제1 특징들을 포함함 -;
    상기 제1 질의를 서버에 송신하는 단계 - 상기 제1 질의는 상기 서버가 질의 특징 서술자들을 참조 이미지 특징 서술자들이 가장 자주 매핑되는 어드레스들, 또는 인접 어드레스들에 매핑함으로써 하나 이상의 참조 이미지들을 취득할 수 있게 하고 상기 제1 질의에 기초하여 취득되는 상기 하나 이상의 참조 이미지들에 기초하여, 상기 서버가 상기 적어도 하나의 관심 아이템에 관한 부가 정보를 저장하는 것을 결정할 수 있게 함 -; 및
    상기 서버로부터, 상기 적어도 하나의 관심 아이템에 관한 부가 정보를 수신하는 단계; 및
    상기 사용자에게 상기 적어도 하나의 관심 아이템에 관한 상기 부가 정보를 디스플레이하는 단계
    를 포함하는 컴퓨터 구현 방법.
  27. 제26항에 있어서,
    상기 이동 디바이스 상의 인터페이스를 통해, 상기 제1 질의 이미지의 일부의 사용자의 선택을 수신하는 단계를 더 포함하며;
    상기 제1 질의 이미지로부터 복수의 제1 특징들을 추출하는 단계는 상기 선택된 부분에 대응하는 복수의 제1 특징들을 추출하는 단계를 포함하고;
    제1 질의를 발생시키는 단계는 상기 선택된 부분에 대응하는 추출된 제1 특징들을 표현하는 제1 질의를 발생시키는 단계를 포함하는 컴퓨터 구현 방법.
  28. 제26항에 있어서,
    상기 추출된 제1 특징들을 저장하는 단계;
    제2 질의 이미지를 취득하는 단계;
    상기 제2 질의 이미지로부터 복수의 제2 특징들을 추출하는 단계;
    상기 저장된 제1 특징들과 상기 추출된 제2 특징들 사이의 관계를 결정하는 단계; 및
    상기 관계에 기초하여, 상기 추출된 제2 특징들을 표현하는 정보를 포함하는 제2 질의를 상기 서버에 송신하지 않는 것을 결정하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  29. 제26항에 있어서, 상기 취득된 하나 이상의 참조 이미지들은 복수의 제2 특징들과 연관되고; 상기 제2 특징들 중 적어도 하나에 대한 복제들은 상기 제1 특징들로부터 산출되는 어드레스와 연관되는 미리 정의된 영역 내에 저장되는 컴퓨터 구현 방법.
KR1020167024935A 2014-02-10 2015-02-10 이미지-특징-기반 인식을 위한 시스템들 및 방법들 KR101826815B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461937859P 2014-02-10 2014-02-10
US61/937,859 2014-02-10
PCT/IB2015/000908 WO2015125025A2 (en) 2014-02-10 2015-02-10 Systems and methods for image-feature-based recognition

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020187003121A Division KR101887002B1 (ko) 2014-02-10 2015-02-10 이미지-특징-기반 인식을 위한 시스템들 및 방법들

Publications (2)

Publication Number Publication Date
KR20160144354A KR20160144354A (ko) 2016-12-16
KR101826815B1 true KR101826815B1 (ko) 2018-02-07

Family

ID=53488361

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167024935A KR101826815B1 (ko) 2014-02-10 2015-02-10 이미지-특징-기반 인식을 위한 시스템들 및 방법들
KR1020187003121A KR101887002B1 (ko) 2014-02-10 2015-02-10 이미지-특징-기반 인식을 위한 시스템들 및 방법들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187003121A KR101887002B1 (ko) 2014-02-10 2015-02-10 이미지-특징-기반 인식을 위한 시스템들 및 방법들

Country Status (14)

Country Link
US (6) US9122706B1 (ko)
EP (1) EP3066591B1 (ko)
JP (1) JP6208898B2 (ko)
KR (2) KR101826815B1 (ko)
CN (1) CN106462728B (ko)
AU (1) AU2015220463B2 (ko)
BR (1) BR112016018389A8 (ko)
CA (1) CA2939161C (ko)
DK (1) DK3066591T3 (ko)
ES (1) ES2752728T3 (ko)
MX (2) MX353871B (ko)
PL (1) PL3066591T4 (ko)
SG (1) SG11201606424XA (ko)
WO (1) WO2015125025A2 (ko)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101404596B1 (ko) * 2012-05-03 2014-06-11 (주)엔써즈 이미지에 기반하여 동영상 서비스를 제공하는 시스템 및 방법
US9727614B1 (en) 2014-03-17 2017-08-08 Amazon Technologies, Inc. Identifying query fingerprints
US9747628B1 (en) 2014-03-17 2017-08-29 Amazon Technologies, Inc. Generating category layouts based on query fingerprints
US9720974B1 (en) 2014-03-17 2017-08-01 Amazon Technologies, Inc. Modifying user experience using query fingerprints
US9760930B1 (en) * 2014-03-17 2017-09-12 Amazon Technologies, Inc. Generating modified search results based on query fingerprints
US10304111B1 (en) * 2014-03-17 2019-05-28 Amazon Technologies, Inc. Category ranking based on query fingerprints
US10026107B1 (en) 2014-03-17 2018-07-17 Amazon Technologies, Inc. Generation and classification of query fingerprints
US10572215B1 (en) * 2014-03-31 2020-02-25 Amazon Technologies, Inc. Extendable architecture for augmented reality system
US20150363660A1 (en) * 2014-06-12 2015-12-17 Asap54.Com Ltd System for automated segmentation of images through layout classification
WO2015200286A1 (en) * 2014-06-27 2015-12-30 Ohio University Systems using fingerprint images as diagnostic detection systems for type 2 diabetes
JP6432182B2 (ja) * 2014-07-02 2018-12-05 富士通株式会社 サービス提供装置、方法、及びプログラム
US9922271B2 (en) * 2015-03-20 2018-03-20 Netra, Inc. Object detection and classification
US9760792B2 (en) * 2015-03-20 2017-09-12 Netra, Inc. Object detection and classification
US10015541B2 (en) * 2015-03-25 2018-07-03 Cisco Technology, Inc. Storing and retrieval heuristics
EP3286713A1 (en) * 2015-05-06 2018-02-28 Essilor International (Compagnie Générale D'Optique) Frame recognition system and method
US10839006B2 (en) * 2015-05-18 2020-11-17 Oath Inc. Mobile visual search using deep variant coding
US10423657B2 (en) 2015-07-15 2019-09-24 Rewardstyle, Inc. Systems and methods for screenshot linking
JP2017041022A (ja) * 2015-08-18 2017-02-23 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
ITUB20153277A1 (it) * 2015-08-28 2017-02-28 St Microelectronics Srl Procedimento per ricerche visuali, sistema, apparecchiatura e prodotto informatico corrispondenti
US10929666B2 (en) * 2015-09-11 2021-02-23 Christophe BOSSUT System and method for providing augmented reality interactions over printed media
US10157333B1 (en) * 2015-09-15 2018-12-18 Snap Inc. Systems and methods for content tagging
RU2613848C2 (ru) * 2015-09-16 2017-03-21 Общество с ограниченной ответственностью "Аби Девелопмент" Выявление "нечетких" дубликатов изображений с помощью троек смежных оцененных признаков
US10169684B1 (en) 2015-10-01 2019-01-01 Intellivision Technologies Corp. Methods and systems for recognizing objects based on one or more stored training images
CN105893405A (zh) * 2015-11-12 2016-08-24 乐视云计算有限公司 重复视频检测方法和系统
GB2548316A (en) * 2015-12-01 2017-09-20 Zaptobuy Ltd Methods and systems for identifying an object in a video image
US10321167B1 (en) 2016-01-21 2019-06-11 GrayMeta, Inc. Method and system for determining media file identifiers and likelihood of media file relationships
US9773194B2 (en) * 2016-01-28 2017-09-26 Longsand Limited Select type of test image based on similarity score to database image
US9906831B2 (en) 2016-02-24 2018-02-27 Sorenson Media, Inc. Fingerprinting media content using hashing
US10318813B1 (en) 2016-03-11 2019-06-11 Gracenote, Inc. Digital video fingerprinting using motion segmentation
US10496694B2 (en) 2016-03-21 2019-12-03 Hong Kong Applied Science and Technology Research Institute Company Limited Rating and advising for selection of augmented reality markers
CN105894541B (zh) * 2016-04-18 2019-05-17 武汉烽火众智数字技术有限责任公司 一种基于多视频碰撞的运动目标检索方法及系统
US10740385B1 (en) * 2016-04-21 2020-08-11 Shutterstock, Inc. Identifying visual portions of visual media files responsive to search queries
US20170323149A1 (en) * 2016-05-05 2017-11-09 International Business Machines Corporation Rotation invariant object detection
WO2018002677A1 (en) * 2016-06-27 2018-01-04 Balázs Ferenc István Method for 3d reconstruction with a mobile device
US11334768B1 (en) 2016-07-05 2022-05-17 Snap Inc. Ephemeral content management
US10996060B2 (en) 2016-08-26 2021-05-04 William Marsh Rice University Camera-based positioning system using learning
US20180068023A1 (en) * 2016-09-07 2018-03-08 Facebook, Inc. Similarity Search Using Polysemous Codes
US10860898B2 (en) * 2016-10-16 2020-12-08 Ebay Inc. Image analysis and prediction based visual search
US11004131B2 (en) 2016-10-16 2021-05-11 Ebay Inc. Intelligent online personal assistant with multi-turn dialog based on visual search
US11748978B2 (en) 2016-10-16 2023-09-05 Ebay Inc. Intelligent online personal assistant with offline visual search database
US10970768B2 (en) 2016-11-11 2021-04-06 Ebay Inc. Method, medium, and system for image text localization and comparison
WO2018091083A1 (en) * 2016-11-16 2018-05-24 Huawei Technologies Co., Ltd. Method and apparatus for determining data on a device
US10719492B1 (en) 2016-12-07 2020-07-21 GrayMeta, Inc. Automatic reconciliation and consolidation of disparate repositories
US9977990B1 (en) * 2017-01-08 2018-05-22 International Business Machines Corporation Cognitive method for visual classification of very similar planar objects
EP3559804B1 (en) 2017-01-19 2024-03-06 Samsung Electronics Co., Ltd. Vision intelligence management for electronic devices
US10909371B2 (en) 2017-01-19 2021-02-02 Samsung Electronics Co., Ltd. System and method for contextual driven intelligence
CN106730845A (zh) * 2017-02-13 2017-05-31 淘金科技投资(北京)股份有限公司 游戏方法及系统
EP3410353A1 (en) * 2017-06-01 2018-12-05 eyecandylab Corp. Method for estimating a timestamp in a video stream and method of augmenting a video stream with information
US10430686B2 (en) * 2017-07-11 2019-10-01 Verizon Patent And Licensing Inc. Systems and methods for enhancing image recognition techniques using primary and secondary foci
US11074434B2 (en) * 2018-04-27 2021-07-27 Microsoft Technology Licensing, Llc Detection of near-duplicate images in profiles for detection of fake-profile accounts
US10860647B2 (en) * 2018-09-06 2020-12-08 Gracenote, Inc. Systems, methods, and apparatus to improve media identification
CN109376256B (zh) * 2018-09-29 2021-03-26 京东方科技集团股份有限公司 图像搜索方法及装置
US10848775B2 (en) * 2018-11-02 2020-11-24 Fungible, Inc. Memory layout for JPEG accelerator
US10931958B2 (en) 2018-11-02 2021-02-23 Fungible, Inc. JPEG accelerator using last-non-zero (LNZ) syntax element
US10827191B2 (en) 2018-11-02 2020-11-03 Fungible, Inc. Parallel coding of syntax elements for JPEG accelerator
US10827192B2 (en) 2018-11-02 2020-11-03 Fungible, Inc. Work allocation for JPEG accelerator
CN109710792B (zh) * 2018-12-24 2023-02-03 西安烽火软件科技有限公司 一种基于索引的快速人脸检索系统应用
CN109815351B (zh) * 2018-12-27 2020-11-24 深圳云天励飞技术有限公司 信息查询方法及相关产品
CN109902198A (zh) * 2019-03-11 2019-06-18 京东方科技集团股份有限公司 一种以图搜图的方法、装置及应用系统
JP2020181332A (ja) * 2019-04-24 2020-11-05 株式会社Toreru 高精度類似画像検索方法、プログラム及び高精度類似画像検索装置
US10726630B1 (en) * 2019-06-28 2020-07-28 Capital One Services, Llc Methods and systems for providing a tutorial for graphic manipulation of objects including real-time scanning in an augmented reality
RU2702965C1 (ru) * 2019-08-07 2019-10-14 Общество с ограниченной ответственностью "Новотранс Актив" Система и способ идентификации железнодорожных номерных деталей по изображению их поверхностей с клеймами и знаками маркировки
CN110879987B (zh) * 2019-11-21 2023-06-09 成都东方闻道科技发展有限公司 一种识别试题作答内容的方法
CN111008297B (zh) * 2019-12-11 2023-12-15 维沃移动通信有限公司 寻址方法及服务器
CN111738194B (zh) * 2020-06-29 2024-02-02 深圳力维智联技术有限公司 一种用于人脸图像相似性的评价方法和装置
US20220066929A1 (en) * 2020-09-03 2022-03-03 FLC Technology Group, Inc. Hash function with pre-scrambler
TW202215289A (zh) * 2020-10-14 2022-04-16 王建華 用於指紋圖像識別的方法、設備及計算機可讀介質
US20220189266A1 (en) * 2020-12-11 2022-06-16 Patriot One Technologies Inc. System and method for real-time multi-person threat tracking and re-identification
WO2022195323A1 (en) * 2021-03-15 2022-09-22 One Game Studio S.A.P.I De C.V. System and method to interpret a surround of a user to generate an augmented reality environment
CN113706361B (zh) * 2021-08-19 2022-04-26 兰州大学 一种基于机密计算的数字图像权属保护云系统
CN113743420B (zh) * 2021-08-26 2023-12-05 北京邮电大学 一种基于云边端协同的Web AR图像识别方法及系统
CN115908280B (zh) * 2022-11-03 2023-07-18 广东科力新材料有限公司 基于数据处理的pvc钙锌稳定剂的性能确定方法及系统
CN116386091B (zh) * 2022-11-18 2024-04-02 荣耀终端有限公司 指纹识别方法和装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680324B2 (en) 2000-11-06 2010-03-16 Evryx Technologies, Inc. Use of image-derived information as search criteria for internet and other search engines
US8224078B2 (en) 2000-11-06 2012-07-17 Nant Holdings Ip, Llc Image capture and identification system and process
US8218873B2 (en) 2000-11-06 2012-07-10 Nant Holdings Ip, Llc Object information derived from object images
US7872669B2 (en) * 2004-01-22 2011-01-18 Massachusetts Institute Of Technology Photo-based mobile deixis system and related techniques
US7751805B2 (en) 2004-02-20 2010-07-06 Google Inc. Mobile image-based information retrieval system
US7707218B2 (en) 2004-04-16 2010-04-27 Mobot, Inc. Mobile query system and method based on visual cues
US8369655B2 (en) * 2006-07-31 2013-02-05 Ricoh Co., Ltd. Mixed media reality recognition using multiple specialized indexes
US7809722B2 (en) 2005-05-09 2010-10-05 Like.Com System and method for enabling search and retrieval from image files based on recognized information
US20080177640A1 (en) 2005-05-09 2008-07-24 Salih Burak Gokturk System and method for using image analysis and search in e-commerce
US7657126B2 (en) 2005-05-09 2010-02-02 Like.Com System and method for search portions of objects in images and features thereof
US7575171B2 (en) 2005-09-01 2009-08-18 Zvi Haim Lev System and method for reliable content access using a cellular/wireless device with imaging capabilities
US8234277B2 (en) 2006-12-29 2012-07-31 Intel Corporation Image-based retrieval for high quality visual or acoustic rendering
US7949191B1 (en) 2007-04-04 2011-05-24 A9.Com, Inc. Method and system for searching for information on a network in response to an image query sent by a user from a mobile communications device
US8407744B2 (en) 2007-06-19 2013-03-26 Verizon Patent And Licensing Inc. Snapshot recognition for TV
US8315423B1 (en) 2007-12-28 2012-11-20 Google Inc. Providing information in an image-based information retrieval system
US8406531B2 (en) 2008-05-15 2013-03-26 Yahoo! Inc. Data access based on content of image recorded by a mobile device
US20120030553A1 (en) 2008-06-13 2012-02-02 Scrible, Inc. Methods and systems for annotating web pages and managing annotations and annotated web pages
US8195689B2 (en) * 2009-06-10 2012-06-05 Zeitera, Llc Media fingerprinting and identification system
US8385971B2 (en) 2008-08-19 2013-02-26 Digimarc Corporation Methods and systems for content processing
US8483519B2 (en) 2008-12-22 2013-07-09 Ipointer Inc. Mobile image search and indexing system and method
US9195898B2 (en) * 2009-04-14 2015-11-24 Qualcomm Incorporated Systems and methods for image recognition using mobile devices
US9135277B2 (en) 2009-08-07 2015-09-15 Google Inc. Architecture for responding to a visual query
US8352465B1 (en) 2009-09-03 2013-01-08 Google Inc. Grouping of image search results
CN101697232B (zh) * 2009-09-18 2012-03-07 浙江大学 面向近重复图像匹配的sift特征裁减方法
US8811742B2 (en) 2009-12-02 2014-08-19 Google Inc. Identifying matching canonical documents consistent with visual query structural information
CN101710334B (zh) * 2009-12-04 2012-01-25 大连理工大学 基于图像哈希的大规模图像库检索方法
US8548255B2 (en) 2010-04-15 2013-10-01 Nokia Corporation Method and apparatus for visual search stability
US20110258526A1 (en) 2010-04-20 2011-10-20 International Business Machines Corporation Web content annotation management web browser plug-in
US9015139B2 (en) 2010-05-14 2015-04-21 Rovi Guides, Inc. Systems and methods for performing a search based on a media content snapshot image
US20120224768A1 (en) 2011-03-04 2012-09-06 Olive Root, LLC System and method for visual search
US8553981B2 (en) 2011-05-17 2013-10-08 Microsoft Corporation Gesture-based visual search
WO2012177194A1 (en) 2011-06-21 2012-12-27 Telefonaktiebolaget L M Ericsson (Publ) Caching support for visual search and augmented reality in mobile networks
US8793274B2 (en) 2011-08-08 2014-07-29 Lei Yu System and method for auto content recognition
WO2013080365A1 (ja) * 2011-12-01 2013-06-06 株式会社日立製作所 秘匿検索方法および秘匿検索装置
US20130260360A1 (en) 2012-03-27 2013-10-03 Sony Corporation Method and system of providing interactive information
JP5945823B2 (ja) * 2012-06-06 2016-07-05 国立大学法人 熊本大学 画像処理方法および画像処理装置
US20140188648A1 (en) 2012-12-28 2014-07-03 Wal-Mart Stores, Inc. Searching Digital Receipts At A Mobile Device
US9633272B2 (en) 2013-02-15 2017-04-25 Yahoo! Inc. Real time object scanning using a mobile phone and cloud-based visual search engine
US20140240523A1 (en) 2013-02-22 2014-08-28 T-Mobile Usa, Inc. Information delivery based on image data
US9323785B2 (en) 2013-03-06 2016-04-26 Streamoid Technologies Private Limited Method and system for mobile visual search using metadata and segmentation

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Andoni 외 2명. Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions. 2006년.
Mani Malek Esmaeili 외 2명. A Fast Approximate Nearest Neighbor Search Algorithm in the Hamming Space. 2012년.
Wenjun Zeng. Large Visual Repository Search with Hash Collision Design Optimization. 2013년.
Yan Ke 외 2명. Efficient near-duplicate detection and sub-image retrieval. 2004년.

Also Published As

Publication number Publication date
MX2016010267A (es) 2017-04-27
PL3066591T3 (pl) 2020-04-30
US9122706B1 (en) 2015-09-01
JP6208898B2 (ja) 2017-10-04
CA2939161A1 (en) 2015-08-27
US20190034732A1 (en) 2019-01-31
JP2017513150A (ja) 2017-05-25
MX360261B (es) 2018-10-26
KR20160144354A (ko) 2016-12-16
CA2939161C (en) 2017-05-09
WO2015125025A3 (en) 2015-12-23
US20150227796A1 (en) 2015-08-13
MX353871B (es) 2018-02-01
KR101887002B1 (ko) 2018-09-10
PL3066591T4 (pl) 2020-04-30
US20200234047A1 (en) 2020-07-23
AU2015220463A1 (en) 2016-09-08
US20150227557A1 (en) 2015-08-13
SG11201606424XA (en) 2016-09-29
AU2015220463B2 (en) 2017-06-01
US10929671B2 (en) 2021-02-23
US20210397838A1 (en) 2021-12-23
DK3066591T3 (da) 2019-10-21
CN106462728A (zh) 2017-02-22
EP3066591A2 (en) 2016-09-14
WO2015125025A2 (en) 2015-08-27
US10521667B2 (en) 2019-12-31
US9230172B2 (en) 2016-01-05
US9946932B2 (en) 2018-04-17
EP3066591B1 (en) 2019-07-10
BR112016018389A2 (ko) 2017-08-08
BR112016018389A8 (pt) 2022-06-28
CN106462728B (zh) 2019-07-23
KR20180014257A (ko) 2018-02-07
ES2752728T3 (es) 2020-04-06
US20160110605A1 (en) 2016-04-21

Similar Documents

Publication Publication Date Title
US10929671B2 (en) Systems and methods for image-feature-based recognition
US11461392B2 (en) Providing relevant cover frame in response to a video search query
US8433140B2 (en) Image metadata propagation
EP2106599A2 (en) Feature matching method
CN110781195A (zh) 一种兴趣点信息更新的系统、方法和装置
Wu et al. Self-similarity-based partial near-duplicate video retrieval and alignment
Chen et al. Mobile visual search from dynamic image databases
Hou et al. A compressed sensing approach for query by example video retrieval
Peng et al. The knowing camera 2: recognizing and annotating places-of-interest in smartphone photos
Chamasemani et al. Region-based surveillance video retrieval with effective object representation
CN108780462A (zh) 用于对多媒体内容元素进行聚类的系统和方法
Srinivasan et al. Local Binary Pattern-Based Criminal Identification System
Mashhadani An object-based multimedia forensic analysis tool
Ulges et al. Scene-based image retrieval by transitive matching
Khairnar et al. Content Based Image retrieval System
Wang et al. iGAPSearch: Using phone cameras to search around the world

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
GRNT Written decision to grant