KR20220077120A - 지각 프레임 해싱을 통한 동영상 메타데이터 식별 및 검색 - Google Patents

지각 프레임 해싱을 통한 동영상 메타데이터 식별 및 검색 Download PDF

Info

Publication number
KR20220077120A
KR20220077120A KR1020227003009A KR20227003009A KR20220077120A KR 20220077120 A KR20220077120 A KR 20220077120A KR 1020227003009 A KR1020227003009 A KR 1020227003009A KR 20227003009 A KR20227003009 A KR 20227003009A KR 20220077120 A KR20220077120 A KR 20220077120A
Authority
KR
South Korea
Prior art keywords
hash vector
hash
database
vector
matching
Prior art date
Application number
KR1020227003009A
Other languages
English (en)
Inventor
재러드 맥스 브로워닉
켄 아이자와
Original Assignee
페인티드 도그, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 페인티드 도그, 인크. filed Critical 페인티드 도그, 인크.
Publication of KR20220077120A publication Critical patent/KR20220077120A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7837Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/71Indexing; 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/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/7867Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title and artist information, manually generated time, location and usage information, user ratings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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/40Scenes; Scene-specific elements in video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/48Matching video sequences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26603Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for automatically generating descriptors from content, e.g. when it is not made available by its provider, using content analysis techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/27Server based end-user applications
    • H04N21/278Content descriptor database or directory service for end-user access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/47815Electronic shopping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6547Transmission by server directed to the client comprising parameters, e.g. for client setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8352Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Library & Information Science (AREA)
  • Accounting & Taxation (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

쇼핑 가능 동영상을 통해, 시청자는 동영상에 나타나는 품목을 식별하고 구매할 수 있다. 동영상의 프레임 내의 품목에 대한 정보를 검색하기 위해, 재생 장치는 그 프레임의 지각 해시를 생성하고, 그 해시를 사용하여 상이한 버전의 동영상의 지각 해시를 저장한 제1 데이터베이스를 쿼리한다. 데이터베이스 쿼리는 프레임에 대한 식별자를 반환한 다음, 품목 정보를 저장한 제2 데이터베이스를 쿼리하는 데 사용된다. 이 쿼리의 결과는 재생 장치로 반환되고, 재생 장치는 사용자에게 결과를 보여줌으로써, 시청자가 품목에 대해 더 많이 학습하고 품목을 구매 가능하게 할 수 있다. 동영상의 상이한 버전의 지각 해시에 기초한 쿼리를 사용하면, 포맷의 차이에도 불구하고 매칭을 반환할 가능성이 증가한다. 그리고 별도의 해시 및 메타데이터 데이터베이스를 사용하면, 해시를 변경하지 않고도 메타데이터를 업데이트할 수 있다.

Description

지각 프레임 해싱을 통한 동영상 메타데이터 식별 및 검색
관련 출원(들)에 대한 상호 참조
본 출원은, 35 U.S.C. 119(e) 하에, 2019년 7월 3일에 출원된 미국 특허 출원 제62/870,127호에 대한 우선권을 주장하며, 그 전체 개시 내용이 본원에 참조로 포함된다.
쇼핑 가능한 동영상을 시청하는 사람은 동영상을 보면서 패션, 액세서리, 가정용품, 기기, 심지어 동영상에 나타나는 메뉴 및 레시피 품목도 쇼핑할 수 있다. 시청자가 동영상을 시청할 때, 구매하고자 하는 품목이 동영상에 나타나는 것을 볼 수 있다. 가격 및 가용성 등 해당 품목에 대한 정보를 얻으려면 리모컨의 버튼을 누르거나 리모컨의 마이크에 대고 이야기하면 된다. 텔레비전에 있거나 텔레비전에 결합된 프로세서는 이 요청을 수신하고 이를 서버에 송신하고, 서버는 데이터베이스로부터 품목에 관한 정보를 검색하고 이를 프로세서에 반송한다. 텔레비전은 품목에 관한 이러한 정보를 시청자에게 디스플레이하고, 시청자는 이어서 품목을 구매하거나 유사한 제품에 대한 정보를 요청할 수 있다.
쇼핑 가능한 동영상은 일반적으로 텔레비전에 디스플레이되기 전에 수동으로 또는 머신 러닝 기법을 사용하여 각 동영상 프레임의 제품을 인식하도록 태그가 부착된다. 태그가 지정된 제품에 대한 제품 메타데이터는 해당 동영상 프레임과 일치하고 데이터베이스에 저장된다. 시청자가 제품 메타데이터를 요청하는 경우에, 프로세서는 상응하는 동영상 프레임을 식별한 다음, 이러한 동영상 프레임에 대한 제품 메타데이터를 검색한다.
쇼핑 가능한 동영상의 한 가지 도전 과제는, 동영상 프레임의 제품에 대한 시청자의 정보 요청을 데이터베이스의 정보에 맞추는 것이다. 동일한 쇼핑 가능 동영상이, 많고 상이한 포맷 중 하나로 디스플레이될 수 있으며, 이는, 디스플레이되는 동영상 프레임을 대응하는 동영상 프레임에 일치시키는 능력을 복잡하게 만든다. 각각의 가능한 포맷을 태그하고 각각의 해당 프레임에 대한 정보를 저장하는 것은 비현실적인데, 부분적으로 이는 시간이 지남에 따라 가능한 포맷의 수가 증가하기 때문이다.
본 기술은 지각 해싱을 사용하여, 소스 동영상의 프레임을 식별함으로써 이러한 도전을 해결한다. 이러한 방법의 일 구현예에서, 프로세서는 소스 동영상의 상이한 버전의 각각의 프레임에 대한 해시 벡터를 생성한다. 이들 해시 벡터는 데이터베이스 내의 소스 동영상에 관한 정보와 연관된다. 스마트 텔레비전, 셋톱 박스가 구비된 텔레비전, 컴퓨터, 또는 모바일 장치와 같은 재생 장치가 소스 동영상의 제1 버전을 재생하는 경우에, 소스 동영상의 제1 버전의 제1 프레임에 대한 제1 해시 벡터를 생성한다. 이러한 제1 해시 벡터는, 예를 들어 데이터베이스를 쿼리하기 위해 애플리케이션 프로그래밍 인터페이스(API)를 사용하여, 데이터베이스 내의 해시 벡터 중 매칭 해시 벡터와 매칭된다. 제1 해시 벡터를 매칭 해시 벡터에 매칭시키는 것에 응답하여, 소스 동영상에 관한 정보는 데이터베이스로부터 검색된다.
제1 해시 벡터가 매칭 해시 벡터와 일치하는 것으로 결정하는 것은, 제1 해시 벡터가 매칭 해시 벡터의 임계 거리 내에 있는 것으로 결정하는 것을 포함할 수 있다. 매칭 해시 벡터는, 소스 동영상의 제1 버전과 상이한 소스 동영상의 제2 버전의 프레임에 대한 것일 수 있다.
해시 벡터 및 제1 해시 벡터는, 지각 해싱 프로세스, 이러한 지각 해싱(pHash), 차이 해싱(dHash), 평균 해싱(aHash), 및 웨이브릿 해싱(wHash)으로 생성될 수 있다. 제1 해시 벡터를 생성하는 것은 약 100 밀리초 이하가 걸릴 수 있다. 제1 해시 벡터는 4096 비트 이하의 크기를 가질 수 있다. 제1 해시 벡터를 생성하는 단계는, 규칙적인 간격 및/또는 시청자로부터의 명령에 응답하여 자동 발생할 수 있다.
원하는 경우, 해시 벡터는 샤딩된 데이터베이스에 저장하기 위해 샤딩될 수 있다. 달리 말하면, 해시 벡터는 하위 집합으로 분리되거나 분할될 수 있고, 각각의 하위 집합은 데이터베이스의 상이한 샤드에 저장된다. 해시 벡터는 무작위로 또는 얼마나 자주 또는 얼마나 최근에 해시 벡터가 액세스되는지, 해시 벡터 사이의 거리, 및/또는 해시 벡터의 특징에 기초하여 하위 집합으로 분리될 수 있다.
본 기술은 또한 소스 동영상과 연관된 메타데이터를 식별하고 획득하는 데 사용될 수 있다. 또한, 프로세서는 소스 동영상의 적어도 하나의 버전의 각각의 프레임에 대한 해시 벡터를 생성하고, 해시 벡터를 제1 데이터베이스에 저장한다. 제2 데이터베이스는 각각의 프레임에 대응하는 메타데이터를 저장한다. (이 메타데이터는 제1 데이터베이스에서 해시 벡터를 변경하지 않고 업데이트할 수 있다.) 재생 장치는 소스 도영상의 제1 버전을 재생한다. 재생 장치 또는 연관된 프로세서는 소스 동영상의 제1 버전의 제1 프레임에 대한 제1 해시 벡터를 생성한다. API 서버는 제1 데이터베이스 내의 해시 벡터 중 매칭 해시 벡터에 제1 해시 벡터를 매칭시킨다. 제1 해시 벡터를 매칭 해시 벡터에 매칭시키는 것에 응답하여, API는 제2 데이터베이스로부터 매칭 해시 벡터에 대응하는 메타데이터를 검색하고, 재생 장치는 메타데이터를 동영상 장치에 디스플레이한다.
메타데이터는 소스 동영상 내의 위치, 소스 동영상 내의 배우가 착용한 의복, 소스 동영상에 나타난 제품, 또는 소스 동영상의 음악 중 적어도 하나를 나타낼 수 있다. 해시 벡터는 각각의 타임스탬프에 의해 메타데이터와 연관될 수 있다.
제1 해시 벡터를 매칭 해시 벡터에 매칭시키는 단계는, 제1 해시 벡터를 API 서버에 송신하는 단계를 포함할 수 있다. API 서버는 제1 해시 벡터가 매칭 해시 벡터와 매칭하는 것으로 결정한 다음에, 제1 데이터베이스 내의 매칭 해시 벡터와 연관된 타임스탬프를 식별한다. 이 경우, 메타데이터를 검색하는 단계는, 타임스탬프에 기초하여 제2 데이터베이스를 쿼리하는 단계, 및 제2 데이터베이스로부터 타임스탬프와 연관된 메타데이터를 검색하는 단계를 추가로 포함한다. 제1 해시 벡터가 매칭 해시 벡터와 매칭하는 것으로 결정하는 것은, 제1 해시 벡터가 매칭 해시 벡터의 임계 거리 내에 있는 것을 포함할 수 있다.
동영상과 연관된 메타데이터를 식별, 획득 및 표시하는 방법은, 또한 디스플레이를 통해 동영상을 재생하는 단계, 동영상의 제1 프레임에 대한 제1 해시 벡터를 생성하는 단계, 제1 해시 벡터를 API 서버에 송신하는 단계, 및 API 서버를 통해 메타데이터 데이터베이스로부터 제1 프레임과 연관된 메타데이터를 획득하는 단계를 포함할 수 있다. 메타데이터는, 제1 해시 벡터를 해시 벡터 데이터베이스에 저장된 제2 해시 벡터에 매칭시키는 것에 응답하여, 제1 데이터베이스로부터 검색된다. 디스플레이는 제1 프레임과 연관된 메타데이터를 사용자에게 보여준다.
다른 관점에서, 데이터베이스는 동영상의 제1 프레임에 대해 생성된 제1 해시 벡터를 수신한다. 데이터베이스는 제1 해시 벡터를 저장하고, 재생 장치로부터 제2 해시 벡터에 기초하여 쿼리를 수신한다. 데이터베이스는 제2 해시 벡터에 대한 쿼리를 수행하고, 제2 해시 벡터를 제1 해시 벡터에 매칭시키는 것에 응답하여, 제1 해시 벡터와 연관된 타임스탬프를 API에 송신한다. 이 타임스탬프는 메타데이터를 동영상의 제1 프레임과 연관시킨다.
다른 예시에서, 프로세서는 소스 동영상의 제1 프레임에 대한 제1 해시 벡터를 생성한다. 제1 데이터베이스는 제1 해시 벡터를 제1 데이터베이스에 저장한다. 재생 장치는 소스 동영상의 버전을 재생한다. 동일한 프로세서 또는 다른 프로세서는, 소스 동영상 버전의 제2 프레임에 대한 제2 해시 벡터를 생성한다. 제2 해시 벡터는 제1 데이터베이스에서 제1 해시 벡터와 매칭된다. 제2 해시 벡터를 제1 해시 벡터에 매칭시키는 것에 응답하여, 제2 해시 벡터에 대응하는 타임스탬프가 검색되어 재생 장치로 송신될 수 있다.
전술한 개념 및 추가 개념의 모든 조합이 (이들 개념이 상호 불일치하지 않는다면) 아래에서 더욱 상세히 논의되고 본원에 개시된 본 발명의 주제의 일부이다. 특히, 본 개시의 끝에서 나타나는 청구된 주제의 모든 조합은, 본원에 개시된 본 발명의 주제의 일부이다. 참조로서 통합된 임의의 개시에서 나타날 수도 있는 용어로서, 본원에서 사용된 용어에는 본원에 개시된 특정 개념과 가장 일치하는 의미가 부여되어야 한다.
당업자는, 도면들이 주로 예시적인 목적을 위한 것이며 본원에 기술된 본 발명의 주제의 범위를 제한하려는 것이 아님을 이해할 것이다. 도면은 반드시 일정한 비율은 아니며; 일부 경우에, 본원에 개시된 본 발명의 주제의 다양한 측면들은 도면에서 과장되거나 확대되어 상이한 특징의 이해를 용이하게 할 수 있다. 도면에서, 유사한 참조 부호는 일반적으로 유사한 특징(예: 기능적 및/또는 구조적으로 유사한 요소)을 지칭한다.
도 1은 동영상 내의 요소에 대한 즉각적인 액세스를 가능하게 하는 시스템을 나타낸다.
도 2는 소스 동영상의 상이한 버전을 위한 해시 벡터를 생성하고 저장하기 위한 프로세스를 나타낸 흐름도이다.
도 3은 소스 동영상에 대한 메타데이터를 생성하고 저장하기 위한 프로세스를 나타낸 흐름도이다.
도 4는 지각 프레임 해싱을 사용하여 동영상 내의 객체에 대한 메타데이터를 검색하기 위한 프로세스를 나타낸 흐름도이다.
본원에 개시된 기술은 텔레비전 시청자에게 제품, 위치, 및 동영상에 나타낸 다른 것들에 대한 정보에 대한 즉각적인 액세스를 제공하는 것을 돕는다. 보다 구체적으로, 본원에 개시된 기술은, 디스플레이되고 있는 동영상에서 식별 요소(예, 제품, 위치 등) 간의 시간 및/또는 마찰을 감소시키고, 이들 요소에 대한 정보를 시청자에게 디스플레이한다. 그 다음, 시청자는 정보를 저장하고/저장하거나 동영상에서 원하는 제품을 구매할 수 있다.
본 기술은 지각 해싱을 사용하여 재생 장치 상의 시청자에게 보여지는 동영상 프레임을 식별한다. 동영상 프레임 내의 품목에 대한 정보를 얻기 위해, 재생 장치는 프레임 이미지의 지각 해시를 생성하고, 지각 해시 및 타임스탬프를 포함한 해시 데이터베이스 또는 다양한 포맷의 다양한 동영상으로부터의 프레임에 대한 다른 식별자를 쿼리하는 서버에 해시를 송신한다. 이러한 쿼리는 식별자를 반환하는데, 식별자는 프레임 내의 품목에 대한 정보 또는 메타데이터에 대한 별도의 데이터베이스, 또는 잠재고객 설문조사 또는 기타 데이터 수집 작업을 쿼리하는 데 사용될 수 있다. 대안적으로, 메타데이터는 해시와 동일한 데이터베이스에 저장되고 식별자와 함께 반환될 수 있다. 이러한 메타데이터는 소스 동영상으로부터의 위치, 의복, 제품, 음악, 또는 스포츠 점수에 관한 정보, 또는 동영상 자체에 관한 추가 정보(예, 런타임, 시놉시스, 캐스팅 등)를 포함할 수 있다. 서버는 이 정보 또는 메타데이터를 재생 장치에 반환할 수 있으며, 이는 후속하여 사용자에게 이를 디스플레이할 수 있다.
지각 해시를 사용하면, 동영상 프레임 및 동영상 프레임 내의 객체를 식별하기 위한 다른 기술에 비해, 많은 이점을 제공한다. 먼저, 지각 해시를 송신하는 것은, 동영상 프레임이나 다른 식별 정보를 송신하는 것보다 업스트림 대역폭을 적게 소비한다. 지각 해시를 생성하고 일치시키는 데에는 특별한 하드웨어가 필요하지 않다. 지각 해시는 동영상 품질 저하에 매우 강력하여, 보다 광범위한 동영상 시청 및 전송 조건에 대해 정확한 매칭 가능성을 높인다. 또한, 시청자의 개인정보 보호도 유지한다: 해시 데이터베이스 없이는 지각 해시를 가로챈 사람이 재생 장치에 디스플레이되는 콘텐츠를 표시할 수 없다. 또한, 시청자만이 소유한 콘텐츠(예, 홈 영화)의 경우, (전술한 바와 같은 해시 데이터베이스를 갖는 경우에도) 어떤 사람도 해시 값에 기초하여 재생 장치에 디스플레이되는 것을 식별할 수 있는 방법이 사실상 없다. 이는 동일한 해시 값을 초래하는, 생성할 수 있는 이미지 수가 거의 무한하기 때문에, 해시로부터 소스 이미지를 추측하거나 역설계하는 것이 실질적으로 불가능하다. (기술적으로, 다수의 프레임이 동일한 해시 벡터를 생성할 수 있지만, 512-비트 해시 벡터의 경우, 2512개의 가능한 해시 벡터가 있으며(1과 154개의 0이 뒤에 있음), 따라서 압축된 해시 공간은 동일한 해시 벡터를 사용하여 상이한 프레임을 암호화하지 않고 거의 무한한 수의 프레임을 암호화하기에 충분히 크다.)
또한, (동일한 데이터베이스 내의 해시와 연관된 품목 정보가 아닌) 해시 및 메타데이터 데이터베이스를 분기함으로써, 해시 데이터베이스에 영향을 미치지 않고 주어진 프레임과 연관된 메타데이터를 업데이트할 수 있다. 예를 들어, 주어진 콘텐츠 부분에 나타나는 제품에 대한 메타데이터는, 해시 데이터베이스에 대한 어떠한 변경도 필요 없이 스톡/가격 변경만큼 자주 업데이트될 수 있다.
도 1은, 스마트 TV, 별도의 셋톱 박스가 구비된 TV, 컴퓨터, 태블릿, 또는 콘텐츠 제공자(120)에 결합된 스마트폰과 같은 재생 장치(110) 상의 여러 포맷(125) 중 하나로 디스플레이될 수 있는 소스 동영상(121) 내의 요소에 대한 즉각적인 액세스를 가능하게 하는 시스템(100)을 나타낸다. 이러한 소스 동영상(121)은 콘텐츠 파트너(예, Hallmark Channel은 방송 전 에피소드에 대한 소스 동영상(121)를 제공할 수 있음), 유통 파트너(예, Comcast), 인터넷에서 다운로드됨(예, YouTube로부터), 또는 실시간 동영상 피드(예, NBA 게임의 피드의 실시간 캡처)에 의해 제공될 수 있다. 시스템(100)은, 또한 애플리케이션 프로그래밍 인터페이스(API) 서버(130)에 통신 가능하게 결합된 해시 데이터베이스(140) 및 메타데이터 데이터베이스(150)를 포함하며, 이는 또한 재생 장치(110)에 통신 가능하게 결합된다. 예를 들어, 재생 장치(110), 콘텐츠 제공자(120), API 서버(130), 해시 데이터베이스(140), 및 메타데이터 데이터베이스(150)는 동일하거나 상이한 지리적 위치에 있을 수 있고, 동일하거나 상이한 당사자에 의해 작동될 수 있고, 인터넷 또는 하나 이상의 다른 적절한 통신 네트워크를 통해 서로 통신할 수 있다.
(콘텐츠 소스에 따라, 시스템(100)은 도 1-4에 나타낸 것에 더하여 일부 단계를 수행할 수 있다. 예를 들어, 셋톱 박스의 경우, 콘텐츠는 콘텐츠 제공자(120)(예, 디즈니)로부터 케이블 회사(예 Comcast)로 전달될 수 있고, 이는 재생 장치에서 콘텐츠를 재생한다.)
도 2-4는 해시 데이터베이스(140) 및 메타데이터 데이터베이스(150)로부터 정보를 채우고 검색하기 위한 프로세스를 나타낸다. 도 2는 해시 데이터베이스(140)가 해시 벡터(145)로 채워지는 방법을 보여주며, 이를 해시 값 벡터, 해시 값, 또는 해시로도 부른다. 먼저, 소스 동영상(121)은 다수의 개별 프레임(123a-123c) (전체적으로, 프레임 123)로 분할된다(블록 202). 이러한 분할은 일정한 프레임 속도(예, 12 fps)로 만들어질 수 있거나, 동영상 콘텐츠가 프레임에서 프레임으로 얼마나 크게 변하는지를 나타내는 메트릭에 의해 안내될 수 있고, 동영상 콘텐츠가 임계량보다 많이 변경될 때마다 분할이 발생할 수 있으며, 이는 해시-매칭 임계값에 기초하거나 원하는 수준의 해시-매칭 정확도에 기초하여 실험적으로 선택될 수 있다. 이는 데이터베이스에 저장할 해시의 수를 감소시킨다. 각 소스 프레임(123)의 다수의 버전(125)이 생성될 수 있고(블록 204), 종횡비(예, 16 Х 9 대신에 21 Х 9 또는 4 Х 3), 컬러 값, 또는 다른 파라미터에 대한 변형이 이루어질 수 있고, 소스 동영상(121)이 트랜스코딩 시스템 등을 통과한 후에 재생 장치(110) 상에 디스플레이될 수 있는 다양한 방법을 복제할 수 있다.
모든 소스 프레임(123)의 각각의 버전(125)은 해시 생성 프로세서(142)에 의한 지각 해싱 프로세스를 통해 실행된다(블록 206). 이러한 해시 생성 프로세서(130)는 각각의 프레임 버전(125)을 해당 지각 해시 벡터(145)로 의미 있게 변환한다. 해시 생성 프로세서(142)는, 인식 해싱(pHash), 차이 해싱(dHash), 평균 해싱(aHash), 또는 웨이브릿 해싱(wHash)과 같은 하나 이상의 지각 해싱 프로세스를 사용하여 해시 벡터(145)를 생성할 수 있다. 해시 벡터(145)는 고정 크기 이진 벡터(N Х 1 벡터, 벡터 내의 각 요소는 1 또는 0을 포함) 또는 부동 소수점 벡터일 수 있다. 해시 벡터(145)는 128 비트, 256 비트, 512 비트, 1024 비트, 2048 비트, 4096 비트 또는 그 이상을 포함하지만 이에 한정되지 않는 다양한 크기 중 어느 하나일 수 있다. 동일한 소스 프레임(123)의 상이한 버전(125)에 대한 해시 벡터(145)는 이들의 시각적 유사성에 따라 서로 가깝거나 멀리 떨어져 있을 수 있다. 예를 들어, 약간의 색 차이를 갖는 버전(125)은 서로에게 충분히 가깝게 일치하는 해시 벡터(145)를 가질 수 있는 반면, 상이한 종횡비를 갖는 버전(125)(예, 4:3 대 16:9)는 서로에게 일치하지 않을 정도로 서로 먼 해시 벡터(145)를 가질 수 있다.
지각 해싱 프로세스 및 해시 벡터(145)의 크기를 선택하기 위한 고려 사항은 다음과 같다:
(1) 약 100 ms 이하의 해시 벡터를 계산하기 위한 예시적인 목표 시간을 가지고, 재생 장치(110) 내의 저렴한 하드웨어(예, 스마트 TV 또는 셋톱 박스(STB) 내의 프로세서) 상에서 해시가 계산될 수 있는 속도.
(2) 해시 벡터(145)의 크기. 해시 벡터(145)가 작을수록 재생 장치(110), API 서버(120), 및 해시 데이터베이스(140) 간의 대역폭 소비를 감소시키고, 해시 데이터베이스(140)에 대한 메모리 요건을 감소시키고, 검색 시간을 단축시킨다. 16 Х 16의 크기로의 dHash는 512 비트 출력을 갖는다. 해시 벡터(145)가 클수록 더 정확한 일치를 가능하게 하지만 더 많은 대역폭을 소모하고 더 긴 검색 시간을 갖는다.
(3) 충돌 확률(동일한 해시 벡터를 생성하는 두 개의 상이한 이미지가 생성될 확률). 해시 벡터 연산 속도 및 크기는, 두 개의 유사하지만 상이한 입력에 대한 구별되는 해시를 정확하게 생성하는 해싱 프로세스의 능력에 대해 가중치되어야 한다. 예를 들어, (16 Х 16이 아닌) 32 Х 32의 크기로 dHash를 실행하면 크기 2048 비트의 해시 벡터가 생성되며, 이는 메모리 저장 공간을 네 배로 늘리는 비용으로 프레임 간의 보다 정확한 구별(즉, 더 높은 정확도)을 가능하게 한다. 일부 사용 사례에서, 이것이 가치 있는 트레이드오프일 수 있지만, 다른 경우에는 그렇지 않다.
해시 벡터(145)는 해시 데이터베이스(140)에 저장되는데(블록 208), 이는 해시 벡터(145)의 빠르고(예, < 100 ms) 높은 처리량(예, 초당 수천 건의 검색)에 가장 가까운 인접 검색을 허용하도록 구성된다. 도 1은 이러한 해시 데이터베이스(140)를 단일 엔티티로서 나타내지만, 실제로 해시 데이터베이스(140)는, 다수의 샤드를 포함할 수 있으며, 이들 각각은 해시 벡터(145)의 하위 집합을 함유한다. 해시 벡터(145)는 샤드를 가로질러 무작위로 분포될 수 있거나, 특정 체계에 따라 의도적으로 분포될 수 있다. 예를 들어, 해시 데이터베이스(140)는 동일한 샤드 상에 유사한 (거리에 가까운) 벡터(145)를 저장할 수 있다. 또는, 해시 데이터베이스(140)는 가장 빈번하게 또는 가장 최근에 액세스된 벡터(145)를 동일한 샤드 상에 저장할 수 있다. 또는, 해시 데이터베이스(140)는 해시의 특징을 사용하여 어떤 샤드를 배치할지 (예를 들어, 국소 민감 해시, 또는 해시의 하위 집합에 대해 훈련된 신경망과 같은 학습된 프로세스를 사용하여) 결정할 수 있다.
샤딩은 벡터(145)의 각각의 하위 집합이 동시에 검색될 수 있게 하고, 많은 해시 벡터(145)가 검색되는 경우에도 검색 시간을 낮게 유지한다. 샤드는, 예를 들어 샤드가 액세스 빈도에 의해 조직되는 경우, 먼저 검색되고 가장 빈번하게 액세스된 벡터(145)를 저장한 다음, 두 번째로 검색된 가장 빈번하게 액세스된 제2의 벡터(145)를 저장하는 샤드와 함께 순차적으로 검색될 수도 있고, 매칭이 발견될 때까지 계속될 수 있다. 또한, 주어진 동영상로부터의 하나 이상의 해시에 대한 검색 볼륨이 증가하는 경우, 해당 동영상에 대한 나머지 해시에 대한 더 많은 검색을 예상하면서 그 동영상에 대한 모든 해시가 동시에 제1 샤드로 프로모션될 수 있다는 점에서, 주어진 동영상로부터의 모든 해시는, 이 체계 또는 다른 것에서 그룹으로 취급될 수 있다. (테스트는, 상업적으로 이용 가능한 하드웨어 및 소프트웨어를 사용하여, 각각의 데이터베이스 샤드가 적어도 수억 개의 해시 벡터(145)를 처리할 수 있고, 총 시스템(100)은 수십억 개의 해시 벡터(145)를 처리할 수 있음을 보여준다.) 이러한 시스템(100)이 라이브 이벤트(즉, 라이브 농구 경기)에 사용될 때, 새로운 해시(145)를 데이터베이스(140) 내로 삽입하는 것부터, 색인되고 검색에 사용할 수 있는 해시 벡터(145)까지의 시간은 작아야 한다(예, 5초 미만).
각각의 해시 벡터(145)는, 해시 데이터베이스(140)에서, 해당 소스 동영상(101)을 식별하는 정보 및 해당 프레임(123/125)에 대한 타임스탬프 및/또는 프레임 번호/식별자와 연관된다. 일부 경우에, 동일한 소스 프레임(123)의 상이한 버전(125)은 콘텐츠 또는 길이에 대한 편집으로 인해, 상이한 절대 타임스탬프를 가질 수 있다. 이들 경우에, 각각의 해시 벡터(145)는, 또한 연관된 프레임 버전(125)에 대한 타임스탬프와 소스 동영상(101)의 해당 프레임(123)에 대한 타임스탬프의 차이를 나타낸 타임스탬프 오프셋과 연관될 수 있다. 해시 데이터베이스(140)는, 메타데이터 데이터베이스(150)를 쿼리하기 위한 해시 벡터 쿼리에 응답하여, 타임스탬프, 타임스탬프 오프셋 및 소스 동영상 정보를 반환할 수 있다.
도 3은 소스 동영상(121)에 대한 메타데이터가 생성되는 방법을 나타낸다. 소스 동영상(121)은 메타데이터 생성 및 태그 지정을 위해 다른 프레임 세트(127a~127c)(집합적으로 프레임(127))으로 분할된다(블록 302). 메타데이터 생성을 위한 프레임 세트(127)는 해싱을 위한 프레임 세트(123)보다 작을 수 있는데, 이는 프레임 속도가 지각 해싱보다 메타데이터 생성을 위해 더 낮을 수 있기 때문이다. 메타데이터 생성을 위한 프레임(127) 간의 분할은, 소스 동영상(121)에 대한 관련 메타데이터(예, 스크린 상의 배우/캐릭터에 대한 정보, 촬영 위치, 스크린 상의 캐릭터가 착용한 옷 등)를 생성하기 위해 선택되는 반면, 인식 해싱을 위한 프레임(123) 간의 분할은 소스 동영상을 식별하기 위한 자동 콘텐츠 인식(ACR)을 수행하기 위해 선택된다. 예를 들어, 상당한 모션 블러를 갖는 프레임은, 모션 블러가 스크린 상에 나타나는 품목을 구별하기 어렵거나 불가능하게 하기에 충분히 심각하고 메타데이터 생성에서 제외될 수 있는 경우에 유용하지 않을 수 있지만, 시각적으로 고유한 이미지이기 때문에 여전히 ACR에 유용할 수 있다. 분할은 상이한 기준에 따라 상이하게 선택되기 때문에, 메타데이터 생성을 위해 선택된 프레임(127)은 해시 벡터(125)를 생성하는 데 사용된 프레임(123)과 직접적으로 일치하거나 정렬되지 않을 수 있다. 결과적으로, 동일한 소스 동영상(121)은 해시 생성 및 메타데이터 생성에 대해 상이한 타임 스탬프를 갖는 상이한 수의 프레임(123, 127) 및/또는 프레임(123, 127)을 산출할 수 있다.
메타데이터 생성 프로세서(152)는, 메타데이터 생성을 위해 선택된 프레임(127) 상에서 작동하고, 해당 프레임(127)에 대한 타임스탬프 또는 다른 식별자와 연관된 메타데이터를, 메타데이터 데이터베이스(150)에 저장한다(블록 304 및 306). 메타데이터 생성은, 예를 들어 "Machine-Based Object Recognition of Video Content"라는 명칭의 미국 특허 출원 공개 제2020/0134320 A1호에 개시된 기술을 사용하여 사용자에 의해 또는 선택적인 사용자 개입으로 자동으로 달성될 수 있으며, 이는 그 전체가 참조로서 본원에 포함된다. 자동화된 프레임 수집 및 메타데이터 생성은, 메타데이터를 단 몇 초(예, 5초 이하) 만에 검색에 사용할 수 있게 하여, 스포츠, 공연 및 뉴스와 같은 실시간 동영상을 태그하고 검색하는 데 적합한 프로세스를 만들 수 있다. 메타데이터 프로세서(152)에 의해 생성될 수 있는 메타데이터의 예시는, 스크린에 있는 배우/캐릭터, 이들 배우/캐릭터가 착용하고 있는 의류 품목, 또는 스크린에 도시된 촬영 위치에 관한 정보를 포함한다. 이러한 메타데이터 생성은 독립적으로 또는 도 2에 나타낸 프레임 해싱과 함께 행해질 수 있다.
원하는 경우, 소스 동영상(101)에 대한 메타데이터의 일부 또는 전부는, 메타데이터 데이터베이스가 채워진 후에 업데이트될 수 있다. 예를 들어, 소스 동영상(101)에서 태그된 제품이 판매 중이거나, 더 이상 사용할 수 없거나, 다른 벤더로부터 사용할 수 있는 경우에, 메타데이터 데이터베이스(140)의 해당 입력 항목을 업데이트하여 변경(들)을 반영할 수 있다. 데이터베이스(140)의 입력 항목은 다른 벤더로부터 이용 가능한 유사한 제품에 대한 참조를 포함하도록 업데이트될 수도 있다. 이들 업데이트는 해시 데이터베이스(140)의 임의의 입력 항목을 변경하지 않고 수행될 수 있다. 메타데이터 데이터베이스(150)의 입력 항목이 프레임(127)에 대한 타임스탬프 또는 다른 식별 정보를 포함하는 한, 이들은 해시 데이터베이스(140의) 해당 해시와 일치할 수 있다.
일부 경우에, 메타데이터 데이터베이스(150)는 소스 동영상(101)에 키로 입력되거나 소스 동영상에만 연관된 메타데이터를 저장하며, 소스 동영상의 다른 버전과는 연관성이 없다. 이 메타데이터는 위에서 설명한 타임스탬프 및 타임스탬프 오프셋을 사용하여 동영상의 상이한 버전에 대해 검색될 수 있다. 다른 경우에, 메타데이터 데이터베이스(150)는 소스 동영상(101)의 다른 버전(예, 텔레비전용으로 편집된 극장 배포판 및 더 짧은 버전)에 키로 입력되거나 이와 연관된 메타데이터를 저장한다. 이들 경우에, 메타데이터 데이터베이스 쿼리는, 소스 동영상(101)의 해당 버전과 연관된 메타데이터를 식별하고 반환할 수 있다.
도 4는, 재생 장치(110) 및 API 서버(130)가 해시 데이터베이스(140) 및 메타데이터 데이터베이스(150)를 쿼리하는 방법을 나타낸다. 재생 장치(110)(예, 스마트 TV, 셋톱 박스, 또는 다른 인터넷 연결 디스플레이)는 잠재적으로 수정된 버전의 소스 동영상(121)을 시청자에게 디스플레이한다. 이러한 수정 버전은 (예를 들어, 내용 또는 길이에 대해) 편집되거나 포맷으로 변경될(예를 들어, 레터박스로 재생되거나 자를) 수 있다. 여기에는 광고 및 기타 휴식 시간도 포함될 수 있다.
시청자가 소스 동영상의 수정된 버전을 볼 때, 동영상 재생 장치는 그의 스크린에 디스플레이되는 이미지를 캡처하고, 해시 데이터베이스(140)에 저장된 해시 벡터(145)를 생성하는 데(블록 404) 사용된 동일한 지각 해싱 프로세스(예, pHash, dHash, aHash, 또는 wHash)를 사용하여 그 이미지로부터 해시 벡터(115)를 생성한다. 재생 장치(110)는 지연 시간을 가능한 한 낮게 유지하기 위해, 예를 들어 100 밀리초 이내에 신속하게 해시 벡터(115)를 생성한다.
재생 장치(110)는, 리모콘의 버튼을 누름으로써 또는 리모콘 또는 다른 장치의 마이크로 대화함으로써 이루어진 시청자 요청 또는 명령에 응답하여, 이미지를 캡처하고 해시할 수 있다. 재생 장치(110)는, 또한 대안적으로 규칙적인 간격(예, N번째 프레임마다 또는 1-300초마다 하나의 프레임)으로 프레임을 자동 캡처하고 해시할 수 있고, 가장 최근에 유도된 해시 벡터(115)를 사용하여 시청자 요청에 응답하여 검색을 수행할 수 있다. (재생 장치(110)가 광고 또는 다른 프로그램 중단을 감지할 수 있는 경우에, 프로세싱 부하 및/또는 대역폭 소비를 감소시키기 위해 광고 중에 해시 벡터(115)를 생성하는 것을 중단할 수 있다.) 또는, 재생 장치(110)는, 그 대신에, 자동으로 생성된 해시(115)를 사용하여 백그라운드에서 검색을 자동 수행하고 후속 시청자 요청에 응답하여 해당 검색의 결과를 디스플레이할 수 있다. 재생 장치(110)는, 또한 자동 검색된 결과를 사용하여, 현재 표시된 동영상에 대해 메타데이터를 사용할 수 있다는 온스크린 알림을 통해, 시청자에게 프롬프트할 수 있다.
재생 장치(110)는, 이들 해시 벡터(115) 중 하나 이상 및 선택적으로 동영상 콘텐츠를 식별하는 정보 및 프레임 타임스탬프를, 이미지 내의 사람, 품목 및/또는 위치를 식별하기 위해, API 서버(130)에 전송한다(블록 406). 재생 장치(110)는 각각의 해시 벡터(115)를 API 서버(130)에 보내거나, 해시 벡터(115)의 하위 집합만을 API 서버(130)에 전송할 수 있다. 예를 들어, 재생 장치(110)가 주기적으로 해시 벡터(115)를 연산하는 경우에, 이는 각각의 해시 벡터(115)를 API 서버(130)에 전송할 수 있다. 이는 더 많은 대역폭을 소모하지만, API 서버(130)로부터 정보 요청을 보내고 시청자의 명령을 기다리지 않고 이러한 요청에 대한 응답을 수신함으로써, 잠재적으로 대기 시간을 감소시킨다. 그 결과, 재생 장치(110)는, 재생 장치에 의해 표시된 사람, 객체 또는 위치에 대한 시청자의 정보에 대한 요청에 대한 응답을, 데이터베이스 쿼리를 기다리지 않고 디스플레이할 수 있는데, 이는 이러한 쿼리가 이미 수행되었기 때문이다.
대안적으로 또는 추가적으로, 재생 장치(110)는, 이들 해시 벡터(115)가 주기적으로 생성되었는지 또는 시청자의 명령에 응답하는지 여부에 관계없이, 시청자로부터의 명령에 응답하여 해시 벡터(115)를 API 서버(130)에 전송할 수 있다. 이는, 데이터베이스 쿼리의 수를 감소시킴으로써, 대역폭을 적게 소비하고 API 서버(130), 해시 데이터베이스(140), 및 메타데이터 데이터베이스(150)에서의 프로세싱 부하를 감소시킨다. 그러나, 이는 시청자가 정보를 요청할 때까지 API 서버(130)를 쿼리하기 위해 대기함으로써, 잠재적으로 대기 시간을 증가시킨다.
일부 경우에, 재생 장치(110) 콘텐츠에 의해 나타낸 소스 동영상(121)의 정체는 이미 알려져 있을 수 있고(예를 들어, 스마트 TV 또는 셋톱 박스는 TV에 나타낸 프로그램의 정체를 알 수 있음), 시스템(100)은 소스 동영상(121)의 해당 프레임에 대한 정확한 타임스탬프를 식별하는 데 단지 사용될 수 있다. 이들 경우에, 재생 장치(110)는 해시 값(115)에 추가하여 콘텐츠에 대한 식별자를 전송할 수 있다. 예를 들어, 콘텐츠 식별자는 보조 ACR 시스템(예, Gracenote)에 의해 생성되거나 셋톱 박스를 사용하여 전자 프로그래밍 가이드(EPG) 정보로부터 얻을 수 있다. 그 다음, 콘텐츠 식별자를 사용하여 검색 공간을 제한하거나, 지정된 콘텐츠에 기초하여 해시 데이터베이스(140)으로부터 위양성 매칭을 필터링할 수 있다.
일단 API 서버(130)가 재생 장치(110)로부터 해시 벡터(115)를 수신하면, API 서버(130)는 저장된 매칭 해시 벡터(145)를 해시 데이터베이스(140)에 쿼리한다(블록 408). 해싱은 일방향이기 때문에, 해시가 생성된 정확한 소스 값(동영상 프레임)을 결정하는 것이 불가능할 수 있다. 그러나, 해시 값(115 및 145)이 지각 해싱(예, dHash)을 사용하여 생성되기 때문에, 유사한 소스 이미지를 해싱하는 것은, 유사한 해시 값을 산출하므로, 해시 값 사이의 위치 관계/거리에 의미가 있다. 이는 SHA 또는 MD5와 같은 표준 암호화 해시 알고리즘과 대조되는데, 이는 입력에서 약간의 섭동도 극적으로 상이한 해시 값을 생성하도록 설계된다.
검색이, 미리 정의된 엄격한 임계 거리 내에서 유사한 해시 벡터(145)를 산출하는 경우(블록 410), 해시 데이터베이스(140)는 매칭 프레임의 타임스탬프를 API 서버(130)로 반환한다. 거리 임계값은, 실험 데이터 및 주어진 사용 사례에 대한 허용 가능한 위양성 비율에 기초하여 결정될 수 있다(높은 임계값은 더 높은 진양성 비율을 제공하지만, 또한 더 높은 위양성 비율을 제공하는 경향이 있음). 예를 들어, 시스템(100)은 알려진 실측 진동 타임스탬프를 반환하기 위해 상이한 임계값을 사용하여 테스트되고 조절될 수 있다. 해시 벡터 사이의 거리는 다양한 거리 메트릭 중 하나, 예를 들어 L2(유클리드) 거리 또는 해밍 거리(벡터가 이진인 경우)를 사용하여 계산될 수 있다. 대안적으로, 코사인 유사성 또는 외적 관계와 같은 유사성의 다른 개념이 해시를 비교하는 데 사용될 수 있다. 또한, 임계값은 상이한 동영상에 대해 상이하게 설정되거나, 해시 데이터베이스의 상이한 샤드에 대해 상이하게 설정될 수도 있다.
엄격한 임계 거리 내에서 일치하는 것이 발견되지 않는 경우, 위양성 정확성을 유지하기 위해 사용된 합의 방법과 함께, 덜 엄격한(느슨한) 임계 값이 사용될 수 있다(블록 412). 예를 들어, 세 개의 가장 가까운 일치가 모두 동일한 소스 동영상(101)에서 발생하고 서로 몇 초 이내에 타임스탬프를 갖는 경우, 이는 엄격한 임계값 범위를 벗어나는 경우에도 가장 가까운 일치가 정확하다는 더 많은 확신을 제공한다. 세 개의 가장 가까운 일치가 다른 소스 동영상(101)에서 비롯된 것이거나 몇 초 이상 분리된 타임스탬프가 있는 경우, 매칭이 없다고 가정하는 것이 더 안전할 수 있다. 일치가 발견되지 않으면, API 서버(130)는 널값 결과를 재생 장치(110)에 반환한다(블록 420).
해시 데이터베이스(140)에 매칭 해시가 있는 경우, 해시 데이터베이스 쿼리는 매칭 해시에 대한 소스 동영상(101)에 관한 타임스탬프 및 관련 정보를 API 서버(130)로 반환한다(블록 414). API 서버(130)는 이 타임스탬프를 재생 장치(110)에 송신할 수 있고/있거나 이 타임스탬프 및 연관된 소스 동영상 정보를 사용하여 매칭 프레임에 대한 메타데이터용 메타데이터 데이터베이스(150)를 쿼리할 수 있다(블록 416). 메타데이터 데이터베이스(150)는 요청된 메타데이터를 API 서버(130)에 반환하고, 이는 이어서 요청된 메타데이터를 재생 장치(110)에 전송하여 시청자에게 디스플레이한다(블록 418). 재생 장치(110)는, 요청된 정보를 동영상 위에 나타나거나 동영상과 통합된 오버레이로 시청자에게 디스플레이한다. 디스플레이된 정보는, 시청자가 재생 장치(110) 또는 스마트폰 또는 태블릿과 같은 다른 장치를 통해 제품을 구매할 수 있게 하는 링크 또는 다른 정보를 포함할 수 있다. 메타데이터를 시청자에게 디스플레이하는 것에 대한 자세한 내용은, 예를 들어, "Dynamic Media-Product Searching Platform Apparatuses, Methods and Systems"라는 명칭의 미국 특허 제_____호(미국 출원 제14/527,854호로부터 발행됨)를 참조하며, 이는 그 전체가 참조로서 본원에 포함된다.
결론
본 발명의 다양한 구현예가 설명되고 예시되었지만, 당업자는, 본원에서 설명된 바와 같은 기능 및/또는 그 결과 및/또는 하나 이상의 장점을 수행하기 위한 다양한 다른 수단 및/또는 구조를 쉽게 상상할 것이며, 이러한 변형 및/또는 수정의 각각은 본원에 설명된 본 발명의 구현예의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 당업자는 본원에 기술된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것으로 의도되며 실제 파라미터, 치수, 재료 및/또는 구성은 본 발명의 교시가 사용되는 특정 적용분야 또는 적용분야들에 따라 달라질 것임을 쉽게 이해할 것이다. 당업자는 본원에서 기술된 특정한 본 발명의 구현예와 많은 등가물을 일상적인 실험을 사용하여 인식하거나 확인할 수 있을 것이다. 따라서, 전술한 구현예는 단지 예로서 제시되고, 첨부된 청구범위 및 이에 등가인 범위 내에서, 본 발명의 구현예들이 구체적으로 기술되고 청구된 것과 다르게 실시될 수 있다는 것을 이해해야 한다. 본 개시의 발명의 구현예는 본원에 기술된 각각의 개별적인 특징, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 또한, 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법이 서로 일치하지 않는 경우, 둘 이상의 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법의 임의의 조합이 본 개시의 발명의 범위 내에 포함된다.
또한, 다양한 본 발명의 개념이 하나 이상의 방법으로서 구현될 수 있으며, 그 중 하나가 실시예로서 제공되었다. 상기 방법의 일부로서 수행되는 작동은 임의의 적절한 방식으로 순서화될 수 있다. 따라서, 구현예는 도시된 것과 상이한 순서로 작동이 수행되도록 구성될 수 있으며, 예시적인 구현예에서 순차적인 작동으로 나타나더라도, 일부 작동을 동시에 수행하는 것을 포함할 수 있다.
본원에 정의되고 사용된 모든 정의는, 사전적 정의, 참조로서 통합된 문서 내의 정의 및/또는 정의된 용어의 일반적인 의미를 통제하는 것으로 이해해야 한다.
본원에서 사용된 부정관사("일" 및 "하나")는, 달리 명백히 나타내지 않는 한 "적어도 하나"라는 의미로 이해해야 한다.
본원에서 사용된 "및/또는"이라는 문구는, 본 명세서 및 청구범위에서, 접합된, 즉 어떤 경우에는 결합하여 존재하고 다른 경우에는 분리적으로 존재하는 요소들 중 "둘 중 하나 또는 둘 다"를 의미하는 것으로 이해해야 한다. "및/또는"으로 열거된 다중 요소는 동일한 방식으로, 즉, 접합된 요소 중 "하나 이상의"로 해석되어야 한다. "및/또는" 절에 의해 구체적으로 식별된 요소들, 구체적으로 식별된 요소와 관련이 있거나 관련이 없는 다른 요소 이외의 다른 요소가 선택적으로 존재할 수 있다. 따라서, 비한정적인 예로서, "포함하는"과 같은 개방형 언어와 함께 사용될 때, "A 및/또는 B"에 대한 언급은: 일 구현예에서 A만(선택적으로 B이외의 요소를 포함); 다른 구현예에서, B만(선택적으로 A이외의 요소를 포함); 또 다른 구현예에서는 A 및 B 둘 다(선택적으로 다른 요소를 포함); 등을 지칭할 수 있다.
본 명세서 및 청구범위에 있어서 본원에서 사용되는 바와 같이, "또는"은 위에 정의된 바와 같이 "및/또는"과 동일한 의미를 갖는 것으로 이해해야 한다. 예를 들어, 목록에서 물품을 분리할 때 "또는" 또는 "및/또는"은 포괄적인 것, 즉, 적어도 하나를 포함하되, 하나를 초과하는 숫자 또는 요소 목록, 및, 선택적으로, 추가적인 목록에 없는 물품 또한 포함하는 것으로 해석되어야 한다. 반대로, 예컨대 "단지 하나의" 또는 "정확하게 하나의", 또는 청구범위에서 사용될 때, "구성되는"과 같이, 명확하게 지시된 용어들 만이, 숫자 또는 요소 목록에서 정확히 하나의 요소를 포함하는 것을 지칭할 것이다. 일반적으로, 본원에서 사용되는 용어 "또는"은, 예컨대 "어느 하나의," "중 하나의," "단지 하나의," 또는 "정확히 하나의" 와 같이 배타적인 용어가 앞에 올 때, 배타적 대안(즉, "하나 또는 다른 하나이되 둘 다는 아님")을 나타내는 것으로 해석되어야 한다. 청구범위에서 사용되는 경우, "본질적으로 이루어지는"은 특허법 분야에서 사용되는 바와 같이 통상적인 의미를 가질 것이다.
본 명세서 및 청구범위에 있어서 본원에서 사용되는 바와 같이, 하나 이상의 요소의 목록에 관하여 "적어도 하나의"라는 어구는, 요소 목록 내의 임의의 하나 이상의 요소로부터 선택된 적어도 하나의 요소를 의미하되, 요소 목록에 구체적으로 나열된 각 요소 및 모든 요소 중 적어도 하나를 반드시 포함하고, 요소 목록 내의 요소의 임의의 조합을 배제할 필요는 없다. 이러한 정의는, 또한, 구체적으로 식별된 요소 이외에 상응 요소가 구체적으로 식별된 요소와 관련이 있는지 여부와 상관없이, 문구 "적어도 하나"가 지칭하는 요소의 목록 내에 선택적으로 존재할 수 있게 한다. 따라서, 비한정적인 예로서, "A 및 B 중 적어도 하나"(또는, 등등하게 "A 또는 B 중 적어도 하나," 또는, 동등하게 "A 및/또는 B 중 적어도 하나")는: 일 구현예에서, B가 없이, 적어도 하나의 A, 선택적으로는 둘 이상(및 선택적으로 B외의 요소를 포함함); 다른 구현예에서, A가 없이, 적어도 하나의 B, 선택적으로 둘 이상(및 선택적으로 A외의 요소를 포함함); 또 다른 구현예에서, 적어도 하나의 A, 선택적으로 둘 이상, 및 적어도 하나의 B, 선택적으로 둘 이상(및 선택적으로 다른 요소를 포함함); 등을 지칭할 수 있다.
상기 명세서에서와 청구범위에서 "포함하는", "포함한", "갖는", "가지는", "함유하는", "수반하는", "보유하는", "구성되는" 등과 같은 모든 전환구는, 개방형으로서, 즉, 포함하되 이에 한정되지 않음을 의미한다는 것을 이해해야 한다. "구성되는" 및 "본질적으로 구성되는"의 전환구 만이, 미국 특허청 특허 심사 절차 매뉴얼 2111.03에 기술된 바와 같이, 폐쇄형 또는 반 폐쇄형 전환구에 상응한다.

Claims (38)

  1. 소스 동영상의 프레임을 식별하는 방법으로서, 상기 방법은,
    상기 소스 동영상의 상이한 버전의 각각의 프레임에 대한 해시 벡터를 생성하는 단계;
    상기 해시 벡터를 데이터베이스 내의 상기 소스 동영상에 관한 정보와 연관시키는 단계;
    재생 장치에서 상기 소스 동영상의 제1 버전을 재생하는 단계;
    상기 소스 동영상의 제1 버전의 제1 프레임에 대한 제1 해시 벡터를 생성하는 단계;
    상기 제1 해시 벡터를 상기 데이터베이스 내의 해시 벡터 중의 매칭 해시 벡터에 일치시키는 단계; 및
    상기 제1 해시 벡터를 상기 매칭 해시 벡터에 일치시키는 것에 응답하여, 상기 데이터베이스로부터 상기 소스 동영상에 관한 정보를 검색하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 재생 장치는 텔레비전, 셋톱 박스, 컴퓨터, 또는 모바일 장치 중 적어도 하나를 포함하는, 방법.
  3. 제1항에 있어서, 상기 제1 해시 벡터가 상기 매칭 해시 벡터와 일치하는지 결정하는 단계는,
    상기 제1 해시 벡터가 상기 매칭 해시 벡터의 임계 거리 내에 있는 것으로 결정하는 단계를 추가로 포함하는, 방법.
  4. 제1항에 있어서, 상기 매칭 해시 벡터는, 상기 소스 동영상의 제1 버전과 상이한 상기 소스 동영상의 제2 버전의 프레임용인, 방법.
  5. 제1항에 있어서, 상기 해시 벡터 및 상기 제1 해시 벡터는 지각 해싱 프로세스로 생성되는, 방법.
  6. 제5항에 있어서, 상기 지각 해싱 프로세스는 지각 해싱(pHash), 차이 해싱(dHash), 평균 해싱(aHash), 및 웨이브릿 해싱(wHash)으로 이루어진 군의 구성원인, 방법.
  7. 제6항에 있어서, 상기 제1 해시 벡터를 생성하는 단계는 약 100 밀리초 이내에 발생하는, 방법.
  8. 제6항에 있어서, 상기 제1 해시 벡터는 4096 비트 이하의 크기를 갖는, 방법.
  9. 제1항에 있어서,
    상기 해시 벡터가 액세스되는 빈도 또는 상기 해시 벡터가 액세스되는 최근 시간 중 적어도 하나에 기초하여, 상기 해시 벡터를 하위 집합으로 분리하는 단계; 및
    각각의 하위 집합을 상기 데이터베이스의 상이한 샤드에 저장하는 단계를 추가로 포함하는, 방법.
  10. 제1항에 있어서,
    상기 해시 벡터 사이의 거리에 기초하여, 상기 해시 벡터를 하위 집합으로 분리하는 단계; 및
    각각의 하위 집합을 상기 데이터베이스의 상이한 샤드에 저장하는 단계를 추가로 포함하는, 방법.
  11. 제1항에 있어서,
    상기 해시 벡터 사이의 특징에 기초하여, 상기 해시 벡터를 하위 집합으로 분리하는 단계; 및
    각각의 하위 집합을 상기 데이터베이스의 상이한 샤드에 저장하는 단계를 추가로 포함하는, 방법.
  12. 제1항에 있어서,
    상기 해시 벡터를 하위 집합으로 무작위 분리하는 단계; 및
    각각의 하위 집합을 상기 데이터베이스의 상이한 샤드에 저장하는 단계를 추가로 포함하는, 방법.
  13. 제1항에 있어서, 상기 제1 해시 벡터를 생성하는 단계는 규칙적인 간격으로 자동 발생하는, 방법.
  14. 제1항에 있어서, 상기 제1 해시 벡터를 생성하는 단계는 시청자로부터의 명령에 응답하여 발생하는, 방법.
  15. 시스템으로서,
    소스 동영상의 상이한 버전의 각각의 프레임에 대한 해시 벡터를 저장하기 위한 데이터베이스(상기 해시 벡터는 상기 데이터베이스에서 상기 소스 동영상에 관한 정보와 연관됨); 및
    상기 데이터베이스에 통신 가능하게 결합되고, 재생 장치에서 재생되는 상기 소스 동영상의 제1 버전의 제1 프레임에 대한 제1 해시 벡터로 상기 데이터베이스를 쿼리하고, 상기 데이터베이스 내의 상기 해시 벡터 중 매칭 해시 벡터와 상기 제1 해시 벡터 간의 일치에 응답하여 상기 소스 동영상에 관한 정보를 반환하기 위한 애플리케이션 프로그래밍 인터페이스(API)를 포함하는, 시스템.
  16. 소스 동영상과 연관된 메타데이터를 식별하고 획득하는 방법으로서, 상기 방법은,
    상기 소스 동영상의 적어도 하나의 버전의 각각의 프레임에 대한 해시 벡터를 생성하는 단계;
    상기 해시 벡터를 제1 데이터베이스에 저장하는 단계;
    상기 각각의 프레임에 대응하는 메타데이터를 제2 데이터베이스에 저장하는 단계;
    재생 장치에서 상기 소스 동영상의 제1 버전을 재생하는 단계;
    상기 소스 동영상의 제1 버전의 제1 프레임에 대한 제1 해시 벡터를 생성하는 단계;
    상기 제1 해시 벡터를 상기 제1 데이터베이스 내의 해시 벡터 중의 매칭 해시 벡터에 일치시키는 단계;
    상기 제1 해시 벡터를 상기 매칭 해시 벡터에 일치시키는 것에 응답하여, 상기 제2 데이터베이스로부터 상기 매칭 해시 벡터에 대응하는 메타데이터를 검색하는 단계; 및
    상기 재생 장치를 통해 상기 메타데이터를 상기 시청자에게 디스플레이하는 단계를 포함하는, 방법.
  17. 제16항에 있어서, 상기 재생 장치는 텔레비전, 셋톱 박스, 컴퓨터, 또는 모바일 장치 중 적어도 하나를 포함하는, 방법.
  18. 제16항에 있어서, 상기 메타데이터는 상기 소스 동영상 내의 위치, 상기 소스 동영상 내의 배우가 착용한 의복, 상기 소스 동영상에 나타나는 제품, 또는 상기 소스 동영상의 음악 중 적어도 하나를 나타내는, 방법
  19. 제16항에 있어서, 상기 해시 벡터는 각각의 타임스탬프에 의해 상기 메타데이터와 연관되는, 방법.
  20. 제19항에 있어서, 상기 제1 해시 벡터를 상기 매칭 해시 벡터와 일치시키는 단계는,
    상기 제1 해시 벡터를 애플리케이션 프로그래밍 인터페이스(API) 서버에 송신하는 단계;
    상기 API 서버를 통해, 상기 제1 해시 벡터가 상기 제1 데이터베이스 내의 해시 벡터 중의 상기 매칭 해시 벡터에 일치하는지 결정하는 단계;
    상기 제1 해시 벡터를 상기 매칭 해시 벡터에 일치시키는 것에 응답하여, 상기 제1 데이터베이스에서 상기 매칭 해시 벡터와 연관된 타임스탬프를 식별하는 단계를 포함하며, 상기 메타데이터를 검색하는 단계는,
    상기 타임스탬프에 기초하여 상기 제2 데이터베이스를 쿼리하는 단계; 및
    상기 제2 데이터베이스로부터 상기 타임스탬프와 연관된 메타데이터를 검색하는 단계를 추가로 포함하는, 방법.
  21. 제16항에 있어서, 상기 제1 해시 벡터가 상기 매칭 해시 벡터와 일치하는지 결정하는 단계는,
    상기 제1 해시 벡터가 상기 매칭 해시 벡터의 임계 거리 내에 있는 것으로 결정하는 단계를 추가로 포함하는, 방법.
  22. 제16항에 있어서, 상기 매칭 해시 벡터는, 상기 소스 동영상의 제1 버전과 상이한 상기 소스 동영상의 제2 버전의 프레임용인, 방법.
  23. 제16항에 있어서, 상기 해시 벡터 및 상기 제1 해시 벡터는 지각 해싱 프로세스로 생성되는, 방법.
  24. 제23항에 있어서, 상기 지각 해싱 프로세스는 지각 해싱(pHash), 차이 해싱(dHash), 평균 해싱(aHash), 및 웨이브릿 해싱(wHash)으로 이루어진 군의 구성원인, 방법.
  25. 제24항에 있어서, 상기 제1 해시 벡터를 생성하는 단계는 약 100 밀리초 이내에 발생하는, 방법.
  26. 제24항에 있어서, 상기 제1 해시 벡터는 4096 비트 이하의 크기를 갖는, 방법.
  27. 제16항에 있어서, 상기 해시 벡터를 저장하는 단계는,
    상기 해시 벡터가 액세스되는 빈도 또는 상기 해시 벡터가 액세스되는 최근 시간 중 적어도 하나에 기초하여, 상기 해시 벡터를 하위 집합으로 분리하는 단계; 및
    각각의 하위 집합을 상기 제1 데이터베이스의 상이한 샤드에 저장하는 단계를 포함하는, 방법.
  28. 제16항에 있어서, 상기 해시 벡터를 저장하는 단계는,
    상기 해시 벡터 사이의 거리에 기초하여, 상기 해시 벡터를 하위 집합으로 분리하는 단계; 및
    각각의 하위 집합을 상기 제1 데이터베이스의 상이한 샤드에 저장하는 단계를 포함하는, 방법.
  29. 제16항에 있어서, 상기 해시 벡터를 저장하는 단계는,
    상기 해시 벡터의 특징에 기초하여, 상기 해시 벡터를 하위 집합으로 분리하는 단계; 및
    각각의 하위 집합을 상기 제1 데이터베이스의 상이한 샤드에 저장하는 단계를 포함하는, 방법.
  30. 제16항에 있어서, 상기 해시 벡터를 저장하는 단계는,
    상기 해시 벡터를 균등한 하위 집합으로 무작위 분리하는 단계; 및
    각각의 하위 집합을 상기 제1 데이터베이스의 상이한 샤드에 저장하는 단계를 포함하는, 방법.
  31. 제16항에 있어서,
    상기 제1 데이터베이스에서 상기 해시 벡터를 변경하지 않고 상기 메타데이터를 업데이트하는 단계를 추가로 포함하는, 방법.
  32. 제16항에 있어서, 상기 제1 해시 벡터를 생성하는 단계는 규칙적인 간격으로 자동 발생하는, 방법.
  33. 제16항에 있어서, 상기 제1 해시 벡터를 생성하는 단계는 시청자로부터의 명령에 응답하여 발생하는, 방법.
  34. 시스템으로서,
    소스 동영상의 상이한 버전의 각각의 프레임에 대한 해시 벡터를 저장하기 위한 제1 데이터베이스(상기 해시 벡터는 상기 제1 데이터베이스에서 상기 소스 동영상에 관한 정보와 연관됨);
    상기 소스 동영상에 관한 메타데이터를 저장하기 위한 제2 데이터베이스; 및
    상기 제1 데이터베이스와 상기 제2 데이터베이스에 통신 가능하게 결합되고, 재생 장치에서 재생되는 상기 소스 동영상의 제1 버전의 제1 프레임에 대한 제1 해시 벡터로 상기 제1 데이터베이스를 쿼리하고, 상기 데이터베이스 내의 상기 해시 벡터 중 매칭 해시 벡터와 상기 제1 해시 벡터 간의 일치에 응답하여 상기 제1 데이터 베이스로부터 반환된 상기 소스 동영상에 관한 정보에 기초하여 상기 소스 동영상에 관한 메타데이터의 적어도 일부에 대해 상기 제2 데이터 베이스를 쿼리하기 위한 애플리케이션 프로그래밍 인터페이스(API)를 포함하는, 시스템
  35. 동영상과 연관된 메타데이터를 식별, 획득 및 디스플레이하기 위한 방법으로서, 상기 방법은,
    디스플레이를 통해, 상기 동영상을 재생하는 단계;
    상기 동영상의 제1 프레임에 대한 제1 해시 벡터를 생성하는 단계;
    상기 제1 해시 벡터를 애플리케이션 프로그래밍 인터페이스(API) 서버에 송신하는 단계;
    상기 API 서버를 통해, 상기 제1 프레임과 연관된 메타데이터를 메타데이터 데이터베이스로부터 획득하되, 상기 메타데이터는, 상기 제1 해시 벡터를 해시 벡터 데이터베이스에 저장된 제2 해시 벡터에 일치시키는 것에 응답하여, 상기 제1 데이터베이스로부터 검색되는 단계; 및
    상기 디스플레이를 통해, 상기 제1 프레임과 연관된 메타데이터를 사용자에게 디스플레이하는 단계를 포함하는, 방법.
  36. 방법으로서,
    동영상의 제1 프레임에 대해 생성된 제1 해시 벡터를 데이터베이스에서 수신하는 단계;
    상기 제1 해시 벡터를 상기 데이터베이스에 저장하는 단계;
    상기 데이터베이스에서, 재생 장치로부터 제2 해시 벡터에 기초한 쿼리를 수신하는 단계;
    상기 제2 해시 벡터에 대한 상기 데이터베이스의 쿼리를 수행하는 단계; 및
    상기 제2 해시 벡터를 상기 제1 해시 벡터에 일치시키는 것에 응답하여, 상기 제1 해시 벡터와 연관된 타임스탬프를 애플리케이션 프로그래밍 인터페이스(API) 서버에 송신하되, 상기 타임스탬프는 메타데이터를 상기 동영상의 제1 프레임과 연관시키는 단계를 포함하는, 방법.
  37. 방법으로서,
    소스 동영상의 제1 프레임에 대한 제1 해시 벡터를 생성하는 단계;
    상기 제1 해시 벡터를 제1 데이터베이스에 저장하는 단계;
    재생 장치에서 상기 소스 동영상의 버전을 재생하는 단계;
    상기 소스 동영상 버전의 제2 프레임에 대한 제2 해시 벡터를 생성하는 단계; 및
    상기 제2 해시 벡터를 상기 제1 데이터베이스 내의 상기 제1 해시 벡터에 일치시키는 단계를 포함하는, 방법.
  38. 제37항에 있어서,
    상기 제2 해시 벡터를 상기 제1 해시 벡터에 일치시키는 것에 응답하여, 상기 제2 해시 벡터에 대응하는 타임스탬프를 검색하는 단계; 및
    상기 타임 스탬프를 상기 재생 장치에 송신하는 단계를 추가로 포함하는, 방법.
KR1020227003009A 2019-07-03 2020-07-02 지각 프레임 해싱을 통한 동영상 메타데이터 식별 및 검색 KR20220077120A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962870127P 2019-07-03 2019-07-03
US62/870,127 2019-07-03
PCT/US2020/040584 WO2021003323A1 (en) 2019-07-03 2020-07-02 Identifying and retrieving video metadata with perceptual frame hashing

Publications (1)

Publication Number Publication Date
KR20220077120A true KR20220077120A (ko) 2022-06-08

Family

ID=74101125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227003009A KR20220077120A (ko) 2019-07-03 2020-07-02 지각 프레임 해싱을 통한 동영상 메타데이터 식별 및 검색

Country Status (5)

Country Link
US (3) US11321389B2 (ko)
EP (1) EP3994615A4 (ko)
JP (1) JP2022542643A (ko)
KR (1) KR20220077120A (ko)
WO (1) WO2021003323A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220077120A (ko) 2019-07-03 2022-06-08 페인티드 도그, 인크. 지각 프레임 해싱을 통한 동영상 메타데이터 식별 및 검색
US11417099B1 (en) * 2021-11-08 2022-08-16 9219-1568 Quebec Inc. System and method for digital fingerprinting of media content
US11496288B1 (en) * 2022-04-08 2022-11-08 Verkada Inc. Enhanced encryption for face-related data

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494234B1 (en) 2007-03-07 2013-07-23 MotionDSP, Inc. Video hashing system and method
US8171030B2 (en) * 2007-06-18 2012-05-01 Zeitera, Llc Method and apparatus for multi-dimensional content search and video identification
WO2009018171A1 (en) * 2007-07-27 2009-02-05 Synergy Sports Technology, Llc Systems and methods for generating bookmark video fingerprints
US8195689B2 (en) * 2009-06-10 2012-06-05 Zeitera, Llc Media fingerprinting and identification system
US9026668B2 (en) * 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US9071868B2 (en) * 2009-05-29 2015-06-30 Cognitive Networks, Inc. Systems and methods for improving server and client performance in fingerprint ACR systems
US8730354B2 (en) * 2010-07-13 2014-05-20 Sony Computer Entertainment Inc Overlay video content on a mobile device
GB201210702D0 (en) * 2012-06-15 2012-08-01 Qatar Foundation A system and method to store video fingerprints on distributed nodes in cloud systems
US9773228B2 (en) * 2012-11-02 2017-09-26 Facebook, Inc. Systems and methods for sharing images in a social network
JP6321153B2 (ja) * 2013-10-21 2018-05-09 マイクロソフト テクノロジー ライセンシング,エルエルシー モバイルビデオ検索
EP3326135A4 (en) * 2015-07-24 2019-03-06 Videoamp, Inc. TARGETING TELEVISION ADVERTISING CRANES BASED ON ONLINE BEHAVIOR OF CONSUMERS
US9906831B2 (en) 2016-02-24 2018-02-27 Sorenson Media, Inc. Fingerprinting media content using hashing
US20190042853A1 (en) * 2017-08-04 2019-02-07 Facebook, Inc. System and Method of Determining Video Content
US20190129806A1 (en) * 2017-10-27 2019-05-02 Synology Inc. Methods and computer program products for a file backup and apparatuses using the same
US10846554B2 (en) * 2018-07-17 2020-11-24 Avigilon Corporation Hash-based appearance search
US10839220B2 (en) * 2018-10-15 2020-11-17 Kepler Vision Technologies B.V. Method for categorizing a scene comprising a sub-scene with machine learning
KR20220077120A (ko) 2019-07-03 2022-06-08 페인티드 도그, 인크. 지각 프레임 해싱을 통한 동영상 메타데이터 식별 및 검색

Also Published As

Publication number Publication date
EP3994615A1 (en) 2022-05-11
US20240013178A1 (en) 2024-01-11
WO2021003323A1 (en) 2021-01-07
US20210256058A1 (en) 2021-08-19
EP3994615A4 (en) 2023-07-19
JP2022542643A (ja) 2022-10-06
US20220229867A1 (en) 2022-07-21
US11321389B2 (en) 2022-05-03
US11727375B2 (en) 2023-08-15

Similar Documents

Publication Publication Date Title
US11971919B2 (en) Systems and methods for partitioning search indexes for improved efficiency in identifying media segments
US11727375B2 (en) Identifying and retrieving video metadata with perceptual frame hashing
US10509815B2 (en) Presenting mobile content based on programming context
CN106686404B (zh) 一种视频分析平台、匹配方法、精准投放广告方法及系统
US10231023B2 (en) Media fingerprinting for content determination and retrieval
US9262421B2 (en) Distributed and tiered architecture for content search and content monitoring
CN106464986B (zh) 用于基于搜索查询生成视频节目摘录的系统和方法
US9565456B2 (en) System and method for commercial detection in digital media environments
US8769584B2 (en) Methods for displaying contextually targeted content on a connected television
US11223433B1 (en) Identification of concurrently broadcast time-based media
US11019385B2 (en) Content selection for networked media devices
US20140366066A1 (en) Method and system for providing broadcast program recommendations in a digital television system
US10349093B2 (en) System and method for deriving timeline metadata for video content
US20160189751A1 (en) Method and system for multimedia summary generation
US20150189354A1 (en) Sorting content assets
US11800170B2 (en) Content-modification system with feature for prioritizing channels used in channel identification
US12003812B2 (en) Content-modification system with feature for controlling viewer exposure to spoilers in advertisements
US20220295142A1 (en) Content-Modification System With Feature For Controlling Viewer Exposure To Spoilers In Advertisements