KR102010221B1 - 스마트폰 기반 방법들 및 시스템들 - Google Patents

스마트폰 기반 방법들 및 시스템들 Download PDF

Info

Publication number
KR102010221B1
KR102010221B1 KR1020137014291A KR20137014291A KR102010221B1 KR 102010221 B1 KR102010221 B1 KR 102010221B1 KR 1020137014291 A KR1020137014291 A KR 1020137014291A KR 20137014291 A KR20137014291 A KR 20137014291A KR 102010221 B1 KR102010221 B1 KR 102010221B1
Authority
KR
South Korea
Prior art keywords
delete delete
recognition
data
image
user
Prior art date
Application number
KR1020137014291A
Other languages
English (en)
Other versions
KR20130118897A (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
Priority claimed from US13/174,258 external-priority patent/US8831279B2/en
Priority claimed from US13/207,841 external-priority patent/US9218530B2/en
Application filed by 디지맥 코포레이션 filed Critical 디지맥 코포레이션
Publication of KR20130118897A publication Critical patent/KR20130118897A/ko
Application granted granted Critical
Publication of KR102010221B1 publication Critical patent/KR102010221B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/225Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on a marking or identifier characterising the area
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/327Short range or proximity payments by means of M-devices
    • G06Q20/3276Short range or proximity payments by means of M-devices using a pictured code, e.g. barcode or QR-code, being read by the M-device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/005Robust watermarking, e.g. average attack or collusion attack resistant
    • G06T1/0064Geometric transfor invariant watermarking, e.g. affine transform invariant
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/285Memory allocation or algorithm optimisation to reduce hardware requirements
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L25/81Detection of presence or absence of voice signals for discriminating voice from music
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L25/84Detection of presence or absence of voice signals for discriminating voice from noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • H04N1/32154Transform domain methods
    • H04N1/32187Transform domain methods with selective or adaptive application of the additional information, e.g. in selected frequency coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • H04N1/32309Methods relating to embedding, encoding, decoding, detection or retrieval operations in colour image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/52Details of telephonic subscriber devices including functional features of a camera

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

스마트폰들 및 태블릿 컴퓨터들과 같은, 휴대용 디바이스들을 포함하는 방법들 및 장치들이 개시된다. 하나의 장치는 예술적 의도와 전달 사이의 연속성을 보장하도록, 콘텐트의 창작자가 그 창작자의 콘텐트를 렌더링하기 위한 소프트웨어를 선택할 수 있게 한다. 다른 장치는 근처의 대상들을 식별하는데 스마트폰 카메라를 이용하고, 그에 기초하여 동작들을 취한다. 다른 것들은 객체들의 근거리 칩(RFID) 식별 또는 오디오 스트림들(예를 들면, 음악, 목소리)의 식별에 의존한다. 상세히 설명된 기술들 중 일부는 이러한 디바이스들과 연관된 사용자 인터페이스들의 개선들에 관한 것이다. 다른 것들은 쇼핑, 텍스트 입력, 사인 언어 번역, 및 비전 기반 발견에 관한 이러한 디바이스들의 사용을 포함한다. 또 다른 개선들은 예를 들면, 증거 기반 상태 머신들 및 블랙보드 시스템들과 관련한 현실적인 아키텍처이다. 또 다른 기술들은 휴대용 디바이스들에서 업링크된 데이터를 이용하는 것에 관한 것으로, 이들 중 일부는 GPU 능력들을 활용한다. 또 다른 기술들은 계산적 사진술에 관한 것이다.

Description

스마트폰 기반 방법들 및 시스템들{SMARTPHONE-BASED METHODS AND SYSTEMS}
관련 출원 날짜
미국에서, 본 출원은 다음의 가특허 출원들에 대한 우선권을 청구한다:
2010년 11월 4일 출원된 61/410,217;
2011년 3월 4일 출원된 61/449,529;
2011년 3월 25일 출원된 61/467,862;
2011년 4월 4일 출원된 61/471,651;
2011년 4월 26일 출원된 61/479,323;
2011년 5월 6일 출원된 61/483,555;
2011년 5월 13일 출원된 61/485,888;
2011년 6월 27일 출원된 61/501,602;
또한 본 출원은 다음 출원들의 각각의 부분 계속(continuation-in-part) 출원이다:
2011년 6월 30일 출원된 13/174,258;
2011년 8월 11일 출원된 13/207,841;
2011년 10월 21일 출원된 13/278,949.
이들 출원들의 명세서들은 그들의 전체들로서 본 문서에 참조로 포함된다.
본 기술은 주로 일반적으로 스마트폰들 및 태블릿 컴퓨터들과 같은, 센서가 구비된 소비자 전자 장치들에 관한 것이다.
본 명세서는 다양하고 상이한 목적들을 수행하기 위하여, 확장된 시간 동안 모여진, 다양한 기술들을 상세히 설명한다. 또 그들은 다양한 방법들로 함께 관련되고, 종종 결합하여 사용될 수 있어서, 본 단일 문서에서 함께 표현된다.
이러한 다양하고 연계된 주제는 직접적으로 표현되지 않는다. 따라서, 본 서술이 때때로 여러 가지 주제들과 기술들 사이에서 비선형적 방식으로 진행될 때는 독자의 관대함이 요청된다.
상세히 설명된 기술은 이전의 미국 특허 출원들에서 상세히 설명된 작업을 기반으로 한다. 이들은 다음 출원들을 포함한다:
2011년 5월 31일 출원된 13/149,334;
2011년 4월 15일 출원된 13/088,259;
2011년 4월 4일 출원된 13/079,327;
2011년 1월 21일 출원된 13/011,618(20110212717로 공개됨);
2010년 6월 9일 출원된 12/797,503(20110161076으로 공개됨);
2010년 5월 5일 출원된 12/774,512;
2010년 3월 3일 출원된 12/716,908(20100228632로 공개됨);
2009년 6월 24일 출원된 12/490,980(20100205628로 공개됨);
2008년 11월 14일 출원된 12/271,772(20100119208로 공개됨);
2007년 1월 8일 출원된 11/620,999(20070185840으로 공개됨);
특허 7,003,731;
특허 6,947,571.
그들의 도입으로부터 몇 년간, 휴대용 컴퓨팅 디바이스들(예를 들면, 스마트폰, 음악 플레이어들, 및 태블릿 컴퓨터들)은 새로운 것들에서 필수품들에 가까운 것으로 전이하였다. 그들의 폭넓은 채택은 이러한 플랫폼들에 대해 사용가능한 소프트웨어 프로그램들("앱들(apps)")의 수가 폭발적으로 증가하게 하였다. 애플 아이튠즈 스토어(Apple iTunes store)에서만 현재 300,000개가 넘는 앱들이 사용가능하다.
많은 앱들은 미디어 콘텐트(media content)에 관한 것이다. 일부는 오디오 또는 비디오 콘텐트, 예를 들면, 텔레비전 쇼들의 주문 재생(on-demand playback)을 제공하도록 설계된다. 다른 것들은 추가 콘텐트(장면 뒤의 클립들(behind-the-scenes clips), 캐스팅 전기들 및 인터뷰들, 콘테스트들, 게임들, 레시피들, 사용 안내 비디오들)에 액세스할 수 있게 하는 것에 의해, (트위터(Twitter), 페이스북(Facebook) 및 포스퀘어(Foursquare), 블로그들에 의한 것을 포함하여, 다른 팬들과 통신하는) 소셜 네트워크 기반 특성들을 허용하는 것 등에 의한 것과 같이, 미디어 콘텐트를 보완하는 역할을 한다. 일부 예들에서 미디어 관련 앱은 오디오 또는 비디오 콘텐트를 동시에 동작시킬 수 있는데, 예를 들면 콘텐트와, 콘텐트 동안 시간이나 또는 이벤트가 적절한 점들에서의 링크들을 제공한다.
앱들은 이제 특별한 방송 또는 기록된 미디어 콘텐트로 특별화되고 있다. 예를 들어, ABC 텔레비전 쇼인 마이 제너레이션(My Generation)은 투표들, 퀴즈들, 및 다른 정보를 동기화된 방식으로 제공하는 프로그램에 오직 전용인 동반자 아이패드(iPad) 앱으로 소개되었다. CNN, ESPN, CBS 등과 같은 종래의 미디어 회사들이 또한 점점 앱 회사들이 되고 있다.
이러한 혼잡한 시장에서 앱들이 관심을 끌기란 어렵다. 아이튠즈, 및 다른 앱 스토어들을 검색하는 것은 사용자가 그들의 디바이스들을 위한 새로운 앱들을 찾는 가장 보편적인 기술이다. 앱 발견을 위해 다음으로 가장 인기있는 기술은 친구들로부터의 추천들을 통하는 것이다. 그러나, 두 접근들 모두 앱 시장이 매우 작을 때 확립되었으며, 제대로 성장하지 않았다.
예를 들어, 마이 제너레이션 아이패드 앱의 경우에, 쇼의 제작자들은 타겟이 되는 시청자에게 연락을 취하여 그들이 앱 스토어로 가도록 격려하여야 하고, 그들은 앱의 제목을 타이핑하여, 이를 다운로드받고, 이를 설치하고, 이후 텔레비전 프로그램이 방송할 때 이를 실행하여야 한다.
본 기술의 어떠한 실시예들에 따라, 상이한 해법이 제공된다. 하나의 이러한 실시예에서, 마이크로폰이 구비된 사용자 디바이스는 주위의 콘텐트를 샘플링하고, 캡처된 오디오로부터 콘텐트 식별 데이터를 생성한다. 이러한 콘텐트 식별 데이터는 이후 콘텐트의 소유주에 의해 추천된 앱을 검색하도록 사용되며, 이후 앱은 사용자에게 요청되는 적은 행동 또는 요청되는 행동이 없이 설치되고 런칭된다.
이러한 방식에 의해, 콘텐트는 앱을 효율적으로 선택한다. 사용자는 소프트웨어를 선택하지 않으며; 사용자의 활동성(activity)이 소프트웨어를 선택한다. 시간이 지남에 따라, 각 사용자 디바이스는 사용자의 콘텐트 선호도들에 대해 앱적응되어(app-adapted) 콘텐트 세상에서 사용자의 특별한 관심들에 최적화된다.
어느 정도까지, 본 기술의 이러한 양태는 티보(TiVo)의 추천 특성들과 유사하지만, 이는 앱들을 위한 것이다. 사용자의 콘텐트 소비 경향들(및 선택적으로 사용자의 소셜 네트워크 친구들의 경향들)은 디바이스가 사용자의 관심들에 적합한 앱들을 추천하도록 한다.
바람직하게, 예술가들에게 그들의 창조적인 작업들에 의해 호출(invoke)될 앱(들)을 명시하는 특권이 주어진다. 많은 나라들이 그들의 작업들이 완전하게 다루어지는 것에 대한 예술가들의 지속적인 관심을 인식하는 법들(소위 "저작 인격권(moral rights)")을 가지고 있다. 본 기술의 실시예들은 이러한 관심을 위한 것으로, 예술가들에게 어떻게 그들의 작품이 표현되는가에 대한 지속적인 역할을 제공하고, 그들이 그들의 작품이 경험되는 바람직한 메커니즘들을 규정할 수 있도록 한다. 예술가의 의도와 작품의 전달 사이에서 지속성이 제공된다.
이러한 방식으로 처리될 수 있는 것은 독립형 앱들 뿐만이 아니다. 미디어 플레이어들(예를 들면, 윈도우즈 미디어 플레이어(Windows Media Player))에 의해 사용될 특별한 렌더링 코덱들의 선택과 같은, 많은 세분된 소프트웨어 선택들이 유사하게 만들어질 수 있다. 예를 들어, 북미 아이스하키 리그(the National Hockey League)는 그의 콘텐트가 최대 프레임 속도로 설계된 코덱으로 렌더링되는 것을 선호할 수 있다. 그에 반해서, 푸드 네트워크(the Food Network)는 그의 콘텐트가 가장 천연색상에 충실하도록 최적화된 코덱으로 렌더링되는 것을 선호할 수 있다.
역사적으로, "채널"이 왕이었고, 콘텐트는 지원하는 역할(즉, 소비자들을 채널, 및 그의 광고로 이끄는 역할)을 하였다. 그러나 소비자의 관점에서, 이러한 역할들은 역전되어야 하며: 콘텐트가 가장 중요시되어야 한다. 본 기술의 실시예들은 이러한 전제에 기초한다. 사용자가 콘텐트를 선택하고, 그 결과로서 전달 메커니즘이 따라간다.
본 기술의 앞선 및 다른 특성들과 장점들이 다음의 상세한 설명으로부터 더욱 쉽게 명백해질 것이며, 이들은 첨부 도면들을 참조하여 진행한다.
본 발명은 스마트폰 기반 방법들 및 시스템들을 제공한다.
도 1은 본 기술의 어떠한 실시예들에서 사용될 수 있는 시스템의 블록도.
도 2는 도 1의 실시예에 사용될 수 있는 데이터 구조의 표현을 도시하는 도면.
도 3 내지 도 7은 예를 들면, 텍스트 입력에 대한 예시적인 응시 추적(gaze-tracking) 실시예들의 특성들을 상세히 설명한 도면들.
도 8 및 도 9는 예시적인 사용자 인터페이스의 특성들을 상세히 설명한 도면들.
도 10은 본 기술의 원리들을 포함하는 시스템의 블록도.
도 11은 공간 주파수 도메인의 마커 신호들을 도시한 도면.
도 12는 본 기술의 일 양태에 따라, 도 11의 마커 신호들을 포함하는 프린트된 객체의 혼합 도메인 뷰를 도시한 도면.
도 13은 히든 데이터를 나타내기 위해 사용될 수 있는 코너 마커를 도시한 도면.
도 14는 도 11의 마커 신호들의 대안을 도시한 도면.
도 15는 스마트폰 카메라로부터 출력된 데이터의 그래프 표현을 도시한 도면.
도 16은 객체 인식을 위한 미들웨어 아키텍처를 도시한 도면.
도 17은 도 16과 유사하나, 디지맥 디스커버(Digimarc Discover) 구현에 특정한 것을 도시한 도면.
도 18은 시스템 태스크들 상에서 이미지 워터마크들을 판독하는 효과를 도시하는 바 차트를 도시한 도면.
도 19는 애플 아이폰4(Apple iPhone4) 디바이스 상에서 구동하는 워터마크 인식 대행자의 성능을 더욱 상세히 설명하는 도면.
도 20은 제 1 및 제 2 이미지 프레임들의 특징점들(salient points)들의 위치들을 도시한 도면.
도 21은 특징점들의 두 개의 프레임들의 지리적 배열과 연관된 히스토그램들을 도시한 도면.
도 22는 각각 8 비트의 깊이의 3가지 색상 비트 평면을 포함하는, 스마트폰의 이미지 메모리를 도시한 도면.
도 23은 유사한 스마트폰 메모리를 도시하나, 이는 RDF 트리플들을 저장하는데 사용되는 것을 도시한 도면.
도 24는 도 23의 메모리에 저장될 수 있는 수백 또는 수천개의 RDF 트리플들 중 일부를 도시한 도면.
도 25는 도 23의 메모리를 도시하나, 이는 사람들 사이의 어떠한 관계들을 상세히 설명하는 예시적인 RDF 정보로 채워져 있는 것을 도시한 도면.
도 26은 묘사된 RDF 트리플들 상에서 의미론상의 추론(semantic reasoning)를 수행하기 위해, 도 25의 메모리의 술부 평면에 적용될 수 있는 템플릿들 중 일부를 도시한 도면.
도 27은 메모리의 3x3 픽셀 블록 내의 9개의 RDF 트리플들을 도시하는 도면.
도 28은 스마트폰의 메모리의 저장소를 도시한 도면.
도 29a 및 도 29b는 도 28의 메모리로부터의 데이터를 사용하는 그래픽 사용자 인터페이스의 요소들을 도시한 도면.
도 30은 사용자에게 검색 질의 보고를 생성하는데 사용된 데이터를 생성하기 위해, 트리플들, 및 연관된 표들을 저장하는 메모리의 사용을 도시한 도면.
도 31은 정수(예를 들면, 8 비트) 기억 장치의 많은 평면들 중 4개를 묘사하는, 스마트폰의 메모리의 다른 저장소를 도시한 도면.
도 32는 스테가노그래픽 디지털 워터마크의 존재를 시그널링하는 독특한 그래픽 효과를 갖는, 카탈로그 페이지로부터 캡처된 이미지를 디스플레이하는 스마트폰을 도시한 도면.
도 33 및 도 34는 디스플레이의 상이한 아이템들과 연관된, 디스플레이의 에지를 따라 존재하는 태그들을 스마트폰이 어떻게 스폰할 수 있는지를 도시한 도면들.
도 35는 워터마크 식별된 카탈로그 페이지에 관한 데이터베이스로부터 검색된 정보(즉, 객체 모양에 대한 객체 손잡이들)를 도시한 도면.
도 36은 이미지의 상이한 영역들의 상이한 워터마크들의 검출이 어떻게 사용자에게 시그널링될 수 있는지를 도시한 도면.
도 38은 높은 대역폭과 낮은 대역폭 채널들 모두를 포함하는, LED 기반 통신 시스템을 도시한 도면.
본 기술은, 어떤 점에서는, 양수인의 상기 상세히 설명된 특허 출원들에서 상세히 설명된 기술들을 더 자세히 설명한다. 독자는 본 기술의 실행들에서 사용될 수 있는(또한 본 기술이 포함될 수 있는) 이러한 이전의 작업들과 친숙할 것으로 간주된다.
도 1을 참조하면, 예시적인 시스템(12)은 프로세서(16), 메모리(18), 하나 이상의 입력 주변기기들(20), 및 하나 이상의 출력 주변기기들(22)을 갖는 디바이스(14)를 포함한다. 시스템(12)은 또한 네트워크 연결(24)과, 하나 이상의 원격 컴퓨터들(26)을 포함할 수 있다.
임의의 다른 소비자 전자 장치가 사용될 수 있으나, 예시적인 디바이스(14)는 스마트폰 또는 태블릿 컴퓨터이다. 상기 프로세서는 아톰(Atom) 또는 A4 디바이스와 같은 마이크로프로세서를 포함할 수 있다. 프로세서의 동작은 운영 시스템 소프트웨어, 애플리케이션 소프트웨어(예를 들면, "앱들(apps)"), 데이터, 등과 같은, 메모리에 저장된 정보에 의해 부분적으로 제어된다. 메모리는 플래시 메모리, 하드 드라이브, 등을 포함할 수 있다.
입력 주변기기들(20)은 카메라 및/또는 마이크로폰을 포함할 수 있다. 주변기기들(또는 디바이스(14) 자체)은 또한 카메라/마이크로폰에 의해 샘플링된 아날로그 신호들이 시스템에 의한 처리를 위해 적절한 디지털 데이터로 변환되게 하는 인터페이스 시스템을 포함할 수 있다. 다른 입력 주변기기들은 터치 스크린, 키보드, 등을 포함할 수 있다. 출력 주변기기들(22)은 디스플레이 스크린, 스피커, 등을 포함할 수 있다.
네트워크 연결(24)은 유선(예를 들면, 이더넷(Ethernet), 등), 무선(와이파이(WiFi), 4G, 블루투스(Bluetooth), 등), 또는 둘 다일 수 있다.
예시적인 동작에서, 디바이스(14)는 마이크로폰(20)과 인터페이스를 통해, 네트워크 연결(24)을 통해, 또는 다른 방식으로, 한 세트의 디지털 콘텐트 데이터를 수신한다. 콘텐트 데이터는 임의의 타입일 수 있으며; 오디오가 전형적이다.
시스템(12)은 대응하는 식별 데이터를 생성하기 위해 디지털 콘텐트 데이터를 처리한다. 이는 예를 들면, 디지털 워터마크 디코딩 프로세스, 또는 핑거프린팅 알고리즘을 - 바람직하게는 소위 "대역 외(out-of-band)" 데이터(예를 들면, 파일 이름들, 헤더 데이터, 등) 보다는, 음향 또는 시각 정보 자체를 표현하는 데이터로 적용하는 것에 의해 처리될 수 있다. 결과적인 식별 데이터는 수신된 콘텐트 데이터를 동일한 타입의 다른 데이터(예를 들면, 다른 오디오 또는 다른 비디오)로부터 식별하는데 사용한다.
이러한 식별 데이터를 참조하는 것에 의해, 시스템은 호출(invoke)되어야 하는 대응하는 소프트웨어를 결정한다. 이를 수행하기 위한 한 방법은 표, 데이터베이스, 또는 다른 데이터 구조를 식별 데이터로 인덱싱하는 것에 의하여, 적절한 소프트웨어를 식별하는 정보를 얻는 것이다. 예시적인 표가 도 2에 개념적으로 도시된다.
일부 예들에서 데이터 구조는 단일의 소프트웨어 프로그램의 식별을 리턴할 수 있다. 그러한 경우에, 가능하다면 - 이러한 소프트웨어가 런칭된다(launched). (가용성(availability)은 소프트웨어가 디바이스 상에 있어야 한다는 것을 요구하지 않는다. 클라우드-기반 앱(cloud-based app)들도 사용할 수 있다.) 사용가능하지 않다면, 소프트웨어는 (예를 들면, 아이튠스 스토어(iTunes store)와 같은, 온라인 저장소로부터) 다운로드되고, 설치되고, 런칭될 수 있다. (또는, 디바이스가 앱의 서비스형 소프트웨어(software-as-service) 클라우드 버전에 가입할 수 있다). 이러한 행동(들)에 사용자가 참여하는 것은 특별한 실행에 의존할 수 있는데: 때때로 사용자는 허가를 요청받으며; 다른 실행들에서는 이러한 행동들이 사용자를 방해하지 않고 진행한다.
때때로 데이터 구조는 몇몇 상이한 소프트웨어 프로그램들을 식별할 수 있다. 상이한 프로그램들은 상이한 플랫폼들에 특정될 수 있으며, 그러한 경우에, 디바이스(12)는 단순히 그 플랫폼(예를 들면, 안드로이드(Android) G2, 아이폰4(iPhone4), 등)에 대응하는 프로그램을 선택할 수 있다. 또는, 데이터 구조가 주어진 플랫폼 상에서 사용될 수 있는 몇몇 대안의 프로그램들을 식별할 수 있다. 이러한 환경에서, 디바이스는 어떠한 것이 -만일 있다면- 이미 설치되고 사용가능한지를 결정하도록 체크할 수 있다. 이러한 프로그램이 발견되면, 이것이 런칭될 수 있다. 두개의 이러한 프로그램들이 발견되면, 디바이스는 (예를 들면, 가장 최근에 사용된(most-recently-used); 최소 메모리 풋프린트(smallest memory footprint); 등) 알고리즘을 이용하여 그들 사이에서 선택할 수 있거나, 또는 디바이스가 사용자에게 선택하도록 할 수 있다. 대안의 프로그램들 중 디바이스에 사용가능한 것이 없다면, 디바이스는 - 다시 알고리즘을 이용하거나, 또는 사용자로부터의 입력에 기초하여 하나를 선택하고 다운로드할 수 있다. 다운로드되고 설치되면, 애플리케이션이 런칭된다.
(때때로 데이터 구조는 - 모두 콘텐트와 관련되지만 상이한 기능들을 수행하는 상이한 프로그램들을 식별할 수 있다. 예를 들어, 노래 가사의 발견을 위한 앱이 있을 수 있다. 음악가의 전기에 관한 다른 앱이 있을 수 있다. 콘텐트의 구매를 위한 다른 앱이 있을 수 있다. 다시, 소프트웨어의 각각의 상이한 클래스는 몇몇 대안들을 포함할 수 있다.)
디바이스는 수신된 콘텐트와 작업하는데 (예를 들면, MPEG4 또는 MP3 파일을 렌더링하기 위해) 기술적으로 알맞은 설치된 애플리케이션을 이미 가지고 있을 수 있다는 것에 주의한다. 동작들의 어떠한 타입들을 위하여, 기술적으로 적절한 수십 또는 그 이상의 이러한 프로그램들이 있을 수 있다. 그러나, 콘텐트는 가능한 소프트웨어 프로그램들의 이러한 모집단의 서브세트만이 사용되어야 한다는 것을 나타낼 수 있다.
디바이스(14)의 소프트웨어는 콘텐트-식별된 소프트웨어 선택을 엄격하게 강요할 수 있다. 대안적으로, 시스템은 이러한 소프트웨어 식별을 사용자가 무시할 수 있는 선호로서 처리할 수 있다. 일부 구현들에서 콘텐트-식별된 소프트웨어를 사용하는 사용자에게 혜택이 제공될 수 있다. 또는 반대로, 콘텐트에 의해 나타내진 것과 다른 소프트웨어를 사용하기 위하여, 요금, 또는 다른 제약이 사용자에게 부과될 수 있다.
때때로 시스템은 디바이스 상에 어떠한 콘텐트를 렌더링하는 것을 거절할 수 있지만(예를 들어, 적절한 앱 또는 하드웨어 용량의 부족으로 인하여), 콘텐트를 필요한 용량을 가진 다른 사용자 디바이스로 이동시키도록 사용자에게 요청할 수 있으며, 이러한 이동을 실행할 수 있다. (안셀 애덤스(Ansel Adams)는 작은 포맷, 낮은 해상도의 스마트폰 디스플레이 상의 스크린 세이버로 사용되도록 그의 큰 포맷의 사진의 어두운 장면을 사용하였다. 이러한 디스플레이가 시도될 때, 소프트웨어는 사용자가 시청을 위하여 사용자의 가정의 큰 포맷의 HD 디스플레이 이미지를 대신 이동시키도록 요청할 수 있다.)
콘텐트를 렌더링하는 것을 완전히 거절하는 대신, 시스템은 제한된 방식으로 그를 렌더링할 수 있다. 예를 들어, 비디오가 (예를 들면, 장면 전환들로부터) 일련의 정지 키 프레임들로 렌더링될 수 있다. 다시, 시스템은 더욱 적절하게 즐길 수 있는 콘텐트를 전송할 수 있으며, 또는 - 하드웨어 고려들이 허용한다면(예를 들어, 스크린 디스플레이 해상도가 적절하다면) - 필요한 소프트웨어가 다운로드되어 사용될 수 있다.
도 2의 표에 의해 도시된 바와 같이(데이터 구조는 메모리(18)에 있을 수 있거나, 원격 컴퓨터 시스템(26)에 있을 수 있다), 소프트웨어 표시는 콘텐트 식별 데이터에 부가하여 - 하나 이상의 상황적 팩터들에 기초될 수 있다. (단지 두개의 환경 팩터들이 도시되며; 물론 더 많이 또는 더 적게 사용될 수 있다).
"상황(context)"의 하나의 형식적인 정의는 "엔티티(entity)(사용자와 애플리케이션들 자체를 포함하여, 사용자와 애플리케이션 사이의 상호작용과 관련하여 고려되는 사람, 장소 또는 객체)의 상태를 특징화하는데 사용될 수 있는 임의의 정보"이다.
상황 정보는 계산 상황(네트워크 연결성, 메모리 가용성, 프로세서 타입, CPU 경쟁, 등), 사용자 상황(사용자 프로파일, 위치, 행동들, 선호들, 가까운 친구들, 소셜 네트워크(들) 및 상태, 등), 물리적 상황(예를 들면, 조명, 잡음 정도, 교통, 등), 시간적 상황(하루 중의 시간, 일, 월, 계절, 등), 상기의 이력 등을 포함하여, 많은 종류들일 수 있다.
예시된 표에서, 행들(32 및 34)은 동일한 콘텐트(즉, 동일한 콘텐트 ID)에 대응하지만, 그들은 사용자의 상황이 실내인지 실외인지에 따라 상이한 소프트웨어가 사용되어야 한다는 것을 나타낸다. (소프트웨어는 5개의 심볼 16진법 식별자에 의해 나타내지며; 콘텐트는 6개의 16진법 심볼들에 의해 식별된다. 다른 형태들, 및 더 길거나 더 짧은 길이의 식별자들이 물론 사용될 수 있다.)
행(36)은 둘 모두 호출되는 소프트웨어의 두개의 아이템들을 포함하는 소프트웨어 선택을 도시한다. (하나는 다른 서술자- "FF245"라는 소프트웨어에 의해 로드될 유튜브 비디오의 식별자를 포함한다.) 이러한 소프트웨어는 낮시간 상황의 사용자와, 인구통계학적으로 20-25세의 사용자를 위해 나타내진다.
행(38)은 환경적 데이터로서 사용자 위치(우편 번호)와 성별을 도시한다. 이러한 콘텐트/상황을 위한 소프트웨어가 대안으로서 규정된다(즉, 행(36)의 "AND"와 대비되는 것으로서, 4개의 식별자들은 모두 "OR"되었다).
행들(40 및 42)은 동일한 콘텐트 ID가 디바이스 프로세서(아톰 또는 A4)에 따라 상이한 코덱들에 대응할 수 있다는 것을 도시한다.
(비교시에, 코덱들이 현재 선택되는 절차를 고려하라. 전형적으로 사용자는 경쟁 코덱들 사이의 기술적인 차이점들에 친숙하지 않으며, 예술가는 결정권을 갖지 않는다. 따라서 코덱 선택은 선택에 가장 많이 관심있는 집단에 의해서 형성되는 것이 아니다. 대신, 디폴트 코덱들이 어떠한 미디어 렌더링 소프트웨어(예를 들면, 윈도우즈 미디어 플레이어(Windows Media Player))와 함께 묶어 들어온다. 디폴트들이 어떠한 콘텐트를 다룰 수 없다면, 렌더링 소프트웨어는 일반적으로 다른 코덱을 다운로드하지만 여전히 가장 연관된 집단들로부터의 입력은 없다.)
콘텐트에 의해 표(30)에서 나타내진 소프트웨어는 독립형 앱, 또는 코덱, 드라이버, 등과 같은 소프트웨어 구성성분일 수 있다는 것이 이해될 것이다. 소프트웨어는 콘텐트를 렌더링할 수 있으며, 또는 콘텐트와 관련된 다른 정보 또는 기능성을 제공하는 콘텐트 동반자(companion)가 될 수 있다. 일부 구현들에서 "소프트웨어"는 URL, 또는 다른 소프트웨어 프로그램이나 온라인 서비스에 제공되는 다른 데이터/파라미터(예를 들면, 유튜브 비디오 식별자)를 포함할 수 있다.
바람직하게, 표에서 식별된 모든 이러한 소프트웨어는 그가 연관되는 콘텐트의 소유주들(예를 들면, 예술가, 창작자 또는 저작권자)에 의해 선택된다. 이는 소유주에게 대부분의 다른 디지털 콘텐트 시스템들에서 간과하는 예술적 제어 조치를 제공한다. (이러한 방식의 소유주의 제어에는 AOL 또는 아이튠스와 같은 콘텐트 분배자의 제어보다 더 큰 존중이 주어져야 한다. 유사하게, 소유주의 선택은 디바이스에 대한 워드 프로세싱이나 스프레드시트 소프트웨어를 제공하는 회사의 선택보다 더 큰 비중의 장점이 있는 것 같다.)
종종 소프트웨어의 소유주의 선택은 미학적 또는 기술적 장점에 기초될 것이다. 그러나, 때때로 상업적 고려들이 작용할 수 있다. (예술가 로버트 젠(Robert Genn)의 언급과 같이, "'굶주린 예술가'는 20세에는 허용될 수 있고, 40세에는 의심스러우며, 60세에는 문제가 된다.")
따라서, 예를 들어, 사용자의 디바이스가 디셈버리스츠(The Decemnerists)라는 그룹에 의한 주위의 오디오를 검출하면, 데이터 구조(30)의 예술가-지정된 데이터는 판매를 유도하기 위해 디바이스가 검출된 음악의 구매를 위해 아마존 앱(Amazon app)을 로딩해야 한다고(또는 대응하는 아마존 웹 페이지를 로딩해야 한다고) 나타낼 수 있다. 동일한 디바이스가 레드 핫 칠리 페퍼스(the Red Hot Chili Peppers)에 의한 주위의 오디오를 검출하면, 동일한 목적을 위하여, 그 그룹은 디바이스가 밴드 자신의 웹 페이지(또는 다른 앱)을 로드하도록 규정하였을 수 있다. 따라서 소유주는 콘텐트의 객체 지향 상거래를 위한 수행 서비스를 규정할 수 있다.
일부 방식들에서, 굶주린 예술가 문제는 경매 방식에 의해 가장 잘 시정될 수 있다. 즉, 디바이스(14)(또는 원격 컴퓨터 시스템(26))은 어떠한 인구통계학적 프로파일/상황 정보가 사용가능한 사용자의 아이팟(iPod)이 영화 아바타(Avatar)의 사운드트랙을 검출했다는 것을 (구글 애드워드(Google AdWords)와 유사한) 온라인 서비스에 알려줄 수 있다. 사용자에게 구매 기회를 제공하는 특권을 위한 미니 경매가 이후 뒤따를 수 있다. 낙찰자(예를 들면, 이베이(EBay))는 이후 낙찰 제시액을 경매 서비스, 예술가 등과 공유되는 계좌로 지불한다. 사용자의 디바이스는 사용자가 영화의 복제본, 그의 사운드트랙, 또는 관련 상품을 구매할 수 있는 이베이 앱을 런칭하는 것에 의해 응답한다. 이러한 콘텐트 검출 이벤트들, 및 연관된 상황 정보를 클라우드 기반 서비스들로 보내는 것은 응답들이 풍부하게 경쟁하는 시장을 가능하게 할 수 있다.
(경매 기술은 또한 양수인의 앞서 인용된 특허 출원들과, 구글의 공개된 특허 출원들 US2010017298과 US2009198607에서 상세히 설명된다.)
콘텐트의 인기도는 연관된 소프트웨어가 유사하게 인기를 얻게 할 수 있다. 그러한 소프트웨어의 넓은 배치가 소비자가 다른 소유주의 콘텐트로 노출되는 것을 용이하게 할 수 있기 때문에, 이는 다른 콘텐트 소유주들이 이러한 소프트웨어를 그들 자신의 콘텐트의 이용을 위해 고려하도록 유도할 수 있다.
예를 들면, 유니버셜 뮤직 그룹(Universal Music Group)은 FFmpeg MP3 플레이어가 선호된 렌더링 소프트웨어로 식별되도록 하기 위해 모든 그의 노래들이 식별자를 갖도록 디지털로 워터마킹할 수 있다. UMG 예술가들의 헌신적인 팬들은 곧 추천된 소프트웨어를 설치하여 다수의 소비자 디바이스들 상에 이러한 소프트웨어의 배치되도록 한다. 다른 음악 소유주들이 표(30)에서 어떤 소프트웨어를 지정할지를 고려할 때, FFmpeg MP3 소프트웨어의 폭넓은 사용은 그들이 선택을 하는데 비중을 두는 팩터들 중 하나가 될 수 있다.
(표(30)에서 나타내진 소프트웨어는 노래의 발표 주기의 과정을 통하는 것과 같은, 시간에 따라 변화될 수 있다. 새로운 밴드가 노래를 발표하면, 표에서 규정된 소프트웨어는 새로운 밴드를 대중에 소개하도록 의도된 앱을 포함할 수 있다(또는 유튜브 클립이 이러한 목적을 위해 나타내질 수 있다). 음악이 유명해지고 밴드는 더욱 잘 알려진 후에, 상이한 소프트웨어 선택이 나타내질 수 있다.
현재, 음악 발견 및 다른 콘텐트-관련 애플리케이션들은 공통적으로 애플리케이션 소프트웨어에 의해 수행된다. 운영 시스템(OS) 소프트웨어는 다양한 유용한 서비스들을 제공하며 - 이들 중 일부(예를 들면, I/O)는 콘텐트 관련 애플리케이션들에서 공통적으로 사용된다. 그러나, 상업적인 OS 소프트웨어는 콘텐트 프로세싱 또는 식별에 특수한 임의의 서비스들은 미리 제공하지 않았다.
본 기술의 다른 양태에 따라, 콘텐트 프로세싱 또는 식별에 특수한 하나 이상의 서비스들을 수행하도록 운영 시스템 소프트웨어가 제공된다.
하나의 특별한 구현에서, OS 애플리케이션 프로그래밍 인터페이스(API)는 입력(또는 콘텐트 데이터가 저장되는 위치로의 포인터)으로서 콘텐트 데이터를 취하며, 그에 대응하는 핑거프린트 데이터를 복귀시킨다. 다른 OS 서비스(동일한 API 또는 다른 것을 사용하여 제공된)는 동일한 입력을 취하며, 콘텐트 데이터로부터 디코딩된 워터마크 정보를 복귀시킨다. (API로의 입력 파라미터는 복수의 핑거프린트 또는 워터마크 프로세스들 중 어떤 것이 적용될 것인지를 지정할 수 있다. 대안적으로, 서비스는 몇몇 상이한 워터마크 및/또는 핑거프린트 추출 프로세스들을 입력 데이터로 적용할 수 있고, 결과적인 정보를 콜링(calling) 프로그램으로 복귀시킨다. 워터마크 추출의 경우에, 결과적인 정보가 에러 보정 데이터 등으로의 참조에 의해 명백한 유효성을 위해 체크될 수 있다.)
동일한 API, 또는 다른 것이 콘텐트와 연관되는 XML-기반 콘텐트 메타데이터(예를 들면, 작업의 제목, 예술가의 이름, 저작권자, 등을 나타내는 텍스트)를 얻도록 추출된 핑거프린트/워터마크 데이터를 또한 처리할 수 있다. 이를 위해 그레이스노트(Gracenote)에 의해 유지되는 것과 같은, 원격 메타데이터 레지스트리와 상담할 수 있다.
이러한 콘텐트-처리 API는 핑거프린트/워커마크 추출 프로세스의 결과들(문자적으로, 또는 대응하는 메타데이터)이 공개되는 메시지 큐(예를 들면, "리스닝/히어링 큐)를 확립할 수 있다. 하나 이상의 애플리케이션 프로그램들은 어떠한 식별자들에 대해 리스닝하는 큐를 모니터링(후크)할 수 있다. 하나의 앱이 비틀즈(Beatles)에 의한 음악을 알려줄 수 있다. 다른 것은 디즈니 영화의 사운드트랙들을 청취할 수 있다. 이러한 콘텐트가 검출될 때, 모니터링 앱-또는 다른 것-이 이벤트에 로깅하고, 미디어 콘텐트를 보완하도록 행동하고, 구매 기회를 제공하는 등의 활동으로 런칭할 수 있다.
대안적으로, 이러한 기능성은 운영 시스템과 별개로 실행될 수 있다. 하나의 방식은 공개/가입 모델을 통해 실행되고, 이러한 모델을 통해 일부 앱들은 역량들을 공개하지만(예를 들면, 특별한 타입의 오디오를 듣는 것), 다른 것들은 이러한 기능들에 가입한다. 이러한 방식들에 의해, 느슨하게 결합된 애플리케이션들이 유사한 에코시스템을 가능하게 하도록 협력할 수 있다.
본 기술의 한 애플리케이션은 사용자가 노출되는 미디어를 배경 프로세스로서 모니터링하는 것이다. 즉, 샤잠(Shazam)과 같은 노래 식별 서비스들과 달리, 사용자는 특별한 노래의 아이덴티티를 익히기 위해 발견 동작을 개시하도록 임의의 행동을 취할 필요가 없다. (물론, 일부 지점에서 사용자는 디바이스를 켜야 하고, 이러한 배경 기능성을 인증해야 한다.) 대신, 디바이스는 사용자의 낮동안에는 샤잠과 같은 서비스들의 10-15초들보다 더욱 긴 연장된 주기동안 리스닝한다. 콘텐트와 만남에 따라, 콘텐츠가 처리되고 인식된다. 인식 정보는 디바이스에 로그되고, 이는 다음번에 사용자의 주의를 디바이스로 돌리는 것을 가능하게 하는 이러한 콘텐트로의 노출을 반영하도록 어떠한 소프트웨어를 준비시키는데 사용된다.
예를 들어, 디바이스는 15분, 1시간, 또는 하루동안 주위의 오디오를 처리할 수 있다. 사용자가 다음으로 디바이스와 상호작용할 때, 디바이스는 사용자가 노출되었던 콘텐트의 리스트를 제공할 수 있다. 사용자는 관심있는 콘텐트의 리스팅들을 터치하여 발견 동작에 참여하도록 초대될 수 있다. 이러한 콘텐트와 연관된 소프트웨어가 이후 런칭된다.
일부 구현들에서 디바이스는 적어도 부분적으로, 콘텐트 식별 데이터에 기반한 정보를 소프트웨어 애플리케이션들에 제공할 수 있다. 이러한 제공은, 예를 들면, 유튜브 앱이 선택을 위해 준비중인 사용자에 의해 들려진 음악에 대한 뮤직 비디오에 대응하는 섬네일(thumbnail)을 보여주도록 할 수 있다. 유사하게, 90초의 샘플 오디오 클립이 "최근 재생(Recent Encounters)" 폴더에서 사용가능한 아이팟 음악 플레이어 앱에 다운로드된다. 밴드로부터의 이메일이 사용자의 이메일 인박스(InBox)에 부가될 수 있으며, 상식 게임 앱이 밴드와 관련한 일련의 질문들을 로드할 수 있다. 이러한 데이터는 지역적으로 존재하며(즉, 사용자는 그의 검색을 예를 들면 웹 사이트로부터 직접 할 필요가 없으며), 정보는 대응하는 앱이 다음에 사용될 때 사용자에게 두드러져, 이러한 앱들을 사용자의 콘텐트 경험들마다 맞춤화한다.
소셜 미디어 애플리케이션들은 이러한 정보가 표현되고 공유되는 플랫폼들로서 동작할 수 있다. 예를 들어, 사용자가 페이스북 앱을 활성화시킬 때, 아바타가 "당신은 오늘 다음과 같은 것들을 경험하였음을 알려드립니다..."하며 인사하고, 이후 사용자가 노출된 콘텐트, 예를 들면, 디셈버리스츠의 "빌리 라이어(Billy Liar)", 댄디 워홀(Dandy Warhols)의 "보이즈 베터(Boys Better)", 및 나이키(Nike)에 대한 르브론 제임스(LeBron James)의 새로운 광고를 나열한다. 앱은, 각각을 마주친 상황, 예를 들면, (예를 들면, 디바이스의 GPS 및 가속도계 센서들에 의해 결정된) 2010년 11월 4일 포틀랜드(Portland)의 시내를 걷고 있는 동안 마주쳤다는 것을 사용자에게 리마인드할 수 있다. 페이스북 앱은 사용자가 이러한 콘텐트 중 임의의 것을 친구들과 공유하도록 초대할 수 있다. 이는 또한 사용자가 밴드들 중 임의의 연주자의 연주들을 좋아하는지, 또는 이것이 콘텐트의 전체적인 디지털 복제들인지, 임의로 연관된 보완적 콘텐트에 관심이 있는지, 또는 연관된 앱(들)을 런칭하고 싶은지, 등에 대해 질의할 수 있다.
앱은 유사하게 (적절한 승인들로) 사용자의 친구들의 미디어 조우들, 및 연관된 활동들을 보고할 수 있다.
앞에서부터, 앞선 실시예들 중 어떤 것은 어떠한 미디어 콘텐트와 연관된 앱들을 위치시키는 사용자의 딜레마를 완화시킨다는 것이 인식될 것이다. 대신, 미디어 콘텐트는 그 자신의 선호된 앱들을 위치시키도록 동작한다.
이러한 실시예들은 미적 의도와 전달 사이의 연속성을 보장하며; 그들은 작품이 창작하기 위해 의도되는 경험을 최적화한다. 더 이상 미적 경험은 예술가가 제어하지 못하는 전달 플랫폼에 의해 타협되어서는 안 되며, 플랫폼은 잠재적으로 사용자가 관심있는 작품으로부터 주의를 돌리기 위해 그 자신에 대한 흥미를 찾을 수 있다.
이러한 기술은 또한 앱 시장의 경쟁을 조성하는데, 앱들이 그들의 창작물들을 가장 잘 표현할수록 예술가들에게 더욱 두드러진 목소리를 제공한다. 바람직하게, 다윈 효과(Darwinian effect)가 나타날 수 있고, 이를 통해 앱의 인기는 브랜딩과 마케팅 예산들의 적은 표현을 야기하고, 콘텐트의 인기도를 더 큰 반영이 전달된다.
다른 방식들
객체 상호작용들을 참조하는 데이터 스트림들의 필터링 / 하이라이팅
사용자들에게 점점 대량의 데이터가 제공된다. 예들은 수백개의 채널들의 텔레비전 프로그래밍, 이메일, 및 RSS/트위터/소셜 네트워크/블로그 자료들을 포함한다. 사용자들이 이러한 정보의 흐름들을 조절하는 것을 돕기 위하여, 사용자 프로파일 데이터에 따라 들어오는 정보를 필터링(filter) 또는 하이라이팅(highlight)하는 기술들이 제안되었다.
유사한 예는 명백한 사용자 관심들에 기초한, 완전한 전자 프로그램 가이드의 서브세트를 제공하는 티보(Tivo)와 같은 DVR 소프트웨어이다. 티보 소프트웨어는 어떤 텔레비전 프로그램들이 사용자에 의해 시청되었는지 알려주고, 사용자 피드백을 "찬성(thumbs-up)" 또는 "반대(thumbs-down)" 랭킹들의 형태로 요청하고, 이후 이러한 지난 행동 및 랭킹에 기초한 잠재적 관심의 미래 프로그램들을 제안한다.
더욱 최근의 예는 그의 지메일(Gmail) 서비스를 위한 구글(Google)의 "우선순위 메일 수신함(Priority Inbox)"이다. 들어오는 이메일이 분석되고, 사용자에 대한 그의 잠재적인 중요성에 따라 랭크된다. 이러한 판단을 형성할 때, 구글은 사용자가 어떤 이메일을 이전에 읽었는지, 사용자가 이전에 어떤 이메일에 응답하였는지, 그리고 그러한 메일들과 연관된 보낸이들/키워드들을 고려한다. 이러한 평가에서 높은 점수를 갖는 들어오는 이메일은 메일 리스트의 상부에 표시된다.
My6sense.com이라는 회사는 RSS와 트위터 자료들을 분류하는데 유사한 서비스를 제공한다. 다시, 소프트웨어는 사용자의 데이터 자료들과의 이력적 상호작용을 모니터링하고, 사용자와 가장 관련있어 보이는 들어오는 아이템들을 가장 우선하여 올려보낸다. (트위터 자료들의 처리에서, My6sense는 사용자가 클릭한 링크들, 사용자가 즐겨찾기들로 마크한 트윗들, 사용자가 리트윗한 트윗들, 그리고 이러한 트윗들을 특징으로 하는 작가들/키워드들을 고려한다.)
이러한 원리들은 객체 상호작용들을 포함하도록 확장될 수 있다. 예를 들어, 노드스트롬(Nordstrom) 백화점을 방문한 사람이 한 켤레의 지미 추(Jimmy Choo) 모터사이클 부츠의 이미지를 캡처하기 위해 그녀의 스마트폰을 사용한다면, 이것은 패션의, 또는 모터사이클링의, 또는 신발의, 또는 부츠의, 또는 지미추 상품, 등에 일부 관심을 나타내는 것으로 추론될 수 있다. 그 사람이 나중에 그녀의 스마트폰을 리버 로드(River Road) 모터사이클 안장 주머니들을 찍는데 사용한다면, 이는 그 사람의 관심이 모터사이클을 포함하는 것으로 더욱 정밀하게 특징화될 수 있다는 것을 제안한다. 각각의 새로운 이미지 객체가 구분됨에 따라, 사람의 관심들에 대한 더 많은 정보가 모아진다. 일부 빠른 결론들이 개선될 수 있으며(예를 들면, 모터사이클링), 다른 가설들이 무시될 수 있다.
이미지의 객체들을 인식하는 것에 부가하여, 분석(크라우드 소싱(crowd-sourcing)에 의한 휴먼 리뷰를 포함할 수 있다)이 또한 활동들을 구분할 수 있다. 위치가 또한 알려질 수 있다(이미지로부터 추론되거나, 또는 GPS 데이터 등에 의해 나타내진다).
예를 들어, 이미지의 프레임에 적용된 이미지 분석은 그것이 배경으로 텐트와 숲의 환경을 갖는, 모터사이클을 타는 사람을 포함한다고 결정할 수 있다. 또는 이미지들의 시간적 시리즈에서, 하나의 이미지가 모터사이클을 타는 사람을 포함한다고 발견될 수 있으며, 몇분 후에 찍힌 다른 이미지는 이전 프레임의 모터사이클 라이더와 동일한 의복의 사람을 포함한다고 발견될 수 있는데, 지금의 것은 숲의 환경의 텐트 옆을 묘사하고, 몇분 후에 찍힌 다른 이미지는 숲을 배경으로 달리고 있는 모터사이클을 묘사한다고 발견된다. GPS 데이터는 모든 이미지들을 옐로우스톤 국립 공원(Yellowstone National Park)에서 찾아낼 수 있다.
이러한 시간에 따라 누적된 이력적 정보는 사용자에게 관심있는 대상들, 활동들, 사람들, 그리고 장소들을 나타내는 순환하는 테마들과 패턴들을 드러낼 수 있다. 각각의 이러한 결론에는 속성이 사용자의 관심을 정밀하게 특징짓는 시스템의 신뢰에 기초하여 신뢰 메트릭(confidence metric)이 주어질 수 있다. (방금 주어진 예들에서, "모터사이클링"은 "지미 추 상품"보다 더 높은 점수를 받을 것이다.) 이러한 데이터는 이후 사용자의 디바이스들에 제공되는 상기에서 언급한 데이터의 자료들(및 다른 것들)을 필터링하거나 하이라이팅하는데 사용될 수 있다.
디바이스 사용의 이력이 편집됨에 따라, 사용자의 세상과의 상호작용을 개선하는데 사용될 수 있는 관심들의 종합적인 이력 및 미디어 소비 패턴들이 드러난다. 예를 들어, 사용자가 세포라(Sephora)에서 패선 액세서리들을 찍으면, 사용자의 정크 이메일 필터를 제어하는 파라미터들은 그렇지 않았다면 차단되었을 그 회사로부터의 이메일들의 전달을 허용하도록 변경될 수 있다. 사용자의 웹 브라우저들(예를 들면, 스마트폰 상의 사파리(Safari); 가정용 PC 상의 파이어폭스(Firefox))은 세포라의 웹 페이지를 "제안된 즐겨찾기들(Suggested Favorites)"의 리스트에 부가할 수 있는데, 이는 티보가 그의 프로그램 제안들에 대하여 하는 것과 유사하다.
사용자는 사용자의 객체 도출된(object-derived) 프로파일에 의해 필수적으로 소유되는 트위터 계정을 확립하는 것을 선택할 수 있다. 이러한 트위터 계정은 사용자가 최근에 감지했던 객체들에 관한 트윗들을 팔로우한다. 사용자가 캐논 SLR 카메라를 찍었다면, 이러한 관심이 프로파일에 연관된 트위터 계정에 반영될 수 있으며, 이는 이러한 대상에 대한 트윗들을 팔로우할 수 있다. 이러한 계정은 이후 사용자 자신의 트위터 계정으로부터, 이러한 포스트들을 사용자가 팔로우할 수 있는 자료로 리트윗할 수 있거나, 또는 주기적으로 체크할 수 있다.
이러한 객체 도출된 프로파일 정보는 스마트폰, 텔레비전, PC 및 다른 콘텐트 전달 디바이스들을 통해 사용자에게 전달된 콘텐트의 선택에 영향을 끼치는 것보다 많이 사용될 수 있다. 이는 또한 이러한 콘텐트의 구성에도 영향을 끼칠 수 있다. 예를 들어, 사용자가 상호작용하는 객체들은 사용자의 소비를 위한 미디어 매시업(mashup)들에 포함될 수 있다. 사용자가 자주 찾는 가상 현실 게임 세상의 중심 캐릭터가 지미 추 모터사이클 부츠를 신을 수 있다. 상대편에서 캡처된 귀중품이 캐논 SLR 카메라를 포함할 수 있다.
사용자가 객체와 상호작용할 때마다, 이러한 상호작용은 트위터, 페이스북, 등을 통해 (사용자 승인과 파라미터들의 공유를 목적으로) 공개될 수 있다. 이러한 통신들은 또한 포스퀘어 감지에서 "체크 인(check-in)들"로 생각될 수 있으나, 이러한 경우에는 이는 위치를 위한 것이라기보다는 객체 또는 미디어 타입(음악, TV, 등)을 위한 것이다.
이러한 공개 통신에 기초하여, 소셜 프레임워크들이 나타날 수 있다. 1980년대부터 수제 벨기에 레이싱 자전거들에 관심있는 사람들은 (그들의 이러한 자전거들의 이미지 캡처에 의해 증거가 남은) 예를 들면, 트위터 또는 페이스북(또는 그들의 승계자들) 상의 친목 소셜 그룹으로 모일 수 있다. 따라서, 객체 기반 커뮤니티들은 관심있는 사용자들에 의해 조직되고 탐험될 수 있다.
소셜 네트워크 이론가들은 이것이 소셜 네트워크 분석의 형태이지만, 물리적 객체들을 표현하는 노드들을 갖는다는 것을 인식할 것이다.
소셜 네트워크 분석은 네트워크가 (때때로 에지들, 링크들, 또는 연결들로도 불리는) 노드들과 타이들을 포함한다는 네트워크 이론을 이용하여 관계들을 바라본다. 노드들은 네트워크들 내의 개별적인 동작자이며, 타이들은 동작자들 사이의 관계들이다. 결과적인 그래프 기반 구조들이 복잡해질 수 있으며; 노드들 사이에 많은 종류들의 타이들이 있을 수 있다. 방금 주어진 경우에서, 관계들의 타이들은 "좋다(likes),""갖고 있다(owns)" 등을 포함할 수 있다.
특별한 3D 그래프가 사람들의 객체들을 하나의 평면에 위치시킬 수 있으며, 물리적 객체들은 병렬 평면에 위치시킬 수 있다. 두 개의 평면들 사이의 링크들은 사람들을 그들이 소유하거나 좋아하는 객체들과 연관시킨다. (디폴트 관계는 "좋다"일 수 있다. "갖고 있다"는 상황으로부터 추론될 수 있거나, 또는 다른 데이터로부터 추정될 수 있다. 예를 들어, 사용자에 의해 사진이 찍히고, 사용자의 가정에 위치된 카마로(Camaro) 자동차는 "갖고 있다" 관계를 나타낼 수 있다. 유사하게, 차가 사용자에게 등록된다는 것을 나타내는, 공개 데이터베이스의 카마로 번호판의 검색 또한 "갖고 있다" 관계를 제안한다.)
이러한 그래프는 또한 일반적으로 (소셜 네트워크 그래프들에서 관습적인 것과 같은) 사람들의 객체들 사이의 링크들을 포함할 것이며, 또한 물리적인 객체들 사이의 링크들을 포함할 수 있다. (하나의 이러한 링크는 물리적 근접도의 관계이다. 주차장에서 서로 옆에 주차되어 있는 두 대의 차들이 이러한 관계에 의해 링크될 수 있다.)
이러한 네트워크에서 물리적 객체로의 링크들의 수는 그 네트워크의 객체의 상대적 중요성을 나타낸다. 두 개의 상이한 물리적 객체들 사이의 연관의 정도는 그들을 링크하는 네트워크 경로(들)의 길이로 나타내질 수 있으며, 더 짧은 경로일 수록 더 가까운 연관의 정도를 나타낸다.
일부 객체들은 사용자들에게 일시적으로 관심이 있을 수 있으며, 다른 것들은 오랜 기간동안 관심이 있을 수 있다. 사용자가 특별한 타입의 객체를 단지 한번만 찍었다면, 이는 거의 전자의 클래스에 속한다. 사용자가 이러한 객체 타입의 이미지들을 시간에 따라 반복적으로 캡처하면, 이는 후자의 클래스에 속할 가능성이 높다. 프로파일 데이터에 기초한 결정들은 객체가 나타낸 관심들의 나이를 고려할 수 있으며, 따라서 일 년 전에 한번 만났던 객체는 더욱 최근에 만났던 객체에 비해 동일한 가중으로 주어지지 않는다. 예를 들어, 시스템은 캐논 SLR 기반 트윗들을 하루나, 1주일 또는 1달동안만 팔로우하고, 이후 사용자에 의해 찍힌 다른 객체들이 캐논 장비 또는 SLR 카메라들에 대한 지속적인 관심을 나타내지 않는다면 더이상 팔로우되지 않을 수 있다. 그 타입의 객체들과의 반복된 조우에 의해 각 객체 관심이 할당되어 대량의 프로파일 스코어가 증가되거나, 또는 유지될 수 있으나, 그렇지 않은 경우에는 시간에 따라 감소한다. 이러한 스코어는 이후 콘텐트의 처리시 그러한 객체 관련 흥미를 가중하는데 사용된다.
(상세히 설명된 방식이 캡처된 이미지 데이터의 분석에 의해 물리적 객체들을 식별하였으나, 이러한 객체들과 연관된 RFID/NFC 칩들의 검출에 의해서와 같이, 사용자가 상호작용하는 객체들이 다른 방식으로 식별될 수 있다는 것이 인식될 것이다.)
상기에서 상세히 설명된 것들과 유사한 원리들 및 실시예들이 음악 및 연설 인식을 포함하는 사용자의 오디오 환경의 분석에 적용될 수 있다. 이러한 정보는 유사하게 사용자(예를 들면, 사용자 디바이스)가 제공되는, 및/또는 사용자(사용자 디바이스)에 의해 보내질 수 있는 데이터의 스트림들을 선택하고 조합하는데 적용될 수 있다. 다른 더 큰 유틸리티가 사용자 디바이스 센서들에 의해 캡처된 시각적 및 청각적 자극 모두를 고려하는 것에 의해 제공될 수 있다.
텍스트 입력
스마트폰 상의 전면을 향하는 카메라는 응시 추적 모드에서 텍스트 입력의 속도를 높이는데 사용될 수 있다.
스마트폰 카메라(101)를 이용하여 하나 또는 두 눈들의 응시를 모니터링하는 동안, 기본적인 지리적 기준 프레임이 디스플레이 스크린 상의 3 또는 4개의 알려진 위치들을 사용자가 연속적으로 바라보는 것에 의해 먼저 확립될 수 있다. 도 3에서, 사용자는 점들 A, B, C, 및 D를 연속적으로 바라본다. 증가된 정밀성이 사이클을 반복하는 것에 의해 성취될 수 있다. (독자는 응시 추적 시스템들의 원리들에 친숙하다고 가정되며, 따라서 동일한 것이 여기서는 장황하게 논의되지 않는다. 예시적인 시스템들은, 예를 들면, 특허 공개들 20110013007, 20100315482, 20100295774, 및 20050175218에서 상세히 설명되며, 이들은 본 문서에 참조로 포함된다.)
한번 시스템이 사용자의 눈 응시 및 디바이스 스크린에 관한 기하학적 프레임워크를 결정하면, 사용자는 디스플레이된 키보드(102) 상의 그것에 응시하는 것에 의해 초기 글자를 나타낼 수 있다. (스크린을 전체적으로 사용하는 다른 키보드 디스플레이들이 물론 사용될 수 있다.) 사용자는 제스처, 예를 들면, 눈 깜빡임 또는 스마트폰 몸체(또는 그것이 놓여있는 책상 위)를 탭(tap)하는 것과 같은 신호에 의해 글자 상의 응시의 선택을 알려줄 수 있다. 텍스트가 선택되면, 그것이 메시지 영역(103)으로 부가된다.
한번 초기 글자(예를 들면, "N")가 표현되면, 스크린의 확대된 글자 메뉴부(104)에 가능성 있는 다음 글자들을 표현하는 것에 의해 데이터 입력의 속도가 빨라질 수 있다(그리고 응시 추적이 더욱 정밀해질 수 있다). 글자가 입력될 때마다, (대표적인 언어자료의 글자 쌍들의 빈도 분석에 의해 결정된) 가능성 있는 다음 글자들의 메뉴가 표현된다. 예가 도 4에 도시되며, (다른 배열들이 물론 사용될 수 있지만) 메뉴는 타일들의 6각형 배열의 형태를 갖는다.
본 예에서, 사용자는 이미 텍스트 "Now is the time for a_"를 입력했으며, 시스템은 밑줄(106)이 나타내는 곳으로 갈 글자를 사용자가 선택하기를 기다린다. 선택된 마지막 글자는 "a"였다. 이 글자가 중앙 타일에 회색이 된 형식으로 디스플레이되고, "an", "at", "al", 및 "ar"을 포함하는 다양한 옵션들에 의해 둘러싸인다. 이들은 "a"로 시작하는 4개의 가장 일반적인 글자 쌍들이다. 표시된 6각형 배열에 (다음 심볼이 빈 칸임을 나타내는) "--" 선택 타일(108)과, 키보드 선택 타일(110)이 또한 디스플레이된다.
다음 글자를 "l"을 입력하기 위하여, 사용자는 "al" 디스플레이 타일(112)을 단순히 쳐다볼 수 있고, 위에서 설명한 바와 같이 탭 또는 다른 제스처에 의해 수용을 나타낸다. 시스템은 이후 도 5에 도시된 바와 같이 스크린을 업데이트한다. 여기서 메시지가 글자에 의해 확장되었으며("Now is the time for al_"), 메뉴(104)는 글자 "l"로 시작하는 가장 일반적인 글자 쌍들을 보여주도록 업데이트되었다. 디바이스는 다음 글자 입력을 요청한다. 다른 "l"을 입력하기 위해 사용자는 "ll" 타일(114)을 응시하고, 제스처한다.
초기 연구들은 텍스트 입력의 50% 이상이 가능성 있는 다음 글자들(플러스 빈 칸)의 확대된 글자 메뉴에 의해 완성될 수 있다고 제시한다. 상이한 글자가 필요하다면, 사용자는 단순히 키보드 타일(110)을 응시하고 제스처한다. 도 3에 도시된 것과 같은, 또는 다른 키보드가 나타나고, 사용자는 그로부터 선택한다.
도 2 및 도 3에 도시된 바와 같이, 4개의 글자 쌍들, 빈 칸, 및 키보드 아이콘을 표현하는 대신, 대안의 실시예는 도 6에 도시된 바와 같이 5개의 글자 쌍들 및 빈 칸을 표시한다. 이러한 배열에서, 키보드는 항상 스크린 상에 디스플레이되어, 사용자가 도 4의 키보드 타일(110)을 선택하는 중간 단계 없이 그로부터 글자들을 선택할 수 있다.
일반적인 키보드 디스플레이(102) 대신, 도 7에 도시된 변종 키보드 디스플레이(102a)가 사용될 수 있다. 이러한 배치는 5개의 가장 자주쓰는 글자들이 이미 6각형 메뉴에 표현되기 때문에, 5개의 문자들은 디스플레이된 키보드 상에서 필요하지 않다는 사실을 반영한다. 도시된 예에서, 5개의 키들은 전체적으로 생략되지 않지만, 매우 작은 키들로 주어진다. 21개의 나머지 글자들은 매우 큰 키들로 주어진다. 이러한 배열은 키보드로부터 사용자의 글자 선택을 빠르게 하며, 남아있는 키들의 응시 추적을 더욱 정밀하게 한다. (5개의 글자 키들이 키보드로부터 완전히 생략되는 다른 변형이 또한 사용될 수 있다.)
도 7의 변형 키보드 배치(102a)는 일반적인 스페이스 바를 생략한다는 것이 또한 주의될 것이다. 빈 칸 심볼에 대해 확대된 메뉴 타일(116)이 있기 때문에, 키보드(102a)에는 스페이스 바가 필요하지 않다. 예시된 배열에서, 이러한 영역이 공통적인 구두법 심볼들로 대체되었다.
당업자는 다양한 대안들 및 확장들이 실행될 수 있다는 것을 인식할 것이다. 예를 들어, 마지막 글자는 6각형의 중앙에 디스플레이될 필요가 없다. 이러한 공간은 빈 채로 남겨질 수 있으며, 또는 사용자의 현재 응시에 의해 명백하게 나타내진 다음 글자를 대신 나타내도록 사용될 수 있어서, 사용자가 확인을 위한 제스처 전에 선택을 체크할 수 있다. (명백하게 나타내진 글자로 업데이트될 때, 중앙 타일의 응시는 이전의 응시 기반 선택을 변화시키지 않는다.) 수많은 패드(pad)가 도 4의 키보드 타일(110)과 같은 다양한 패드 아이콘의 선택에 의해 스크린으로 불려올 수 있다. 또는 다양한 키보드가 메시지 조합 동작(도 6의 키보드(102)와 같은)을 통하여 스크린 상에 디스플레이될 수 있다. 하나 이상의 6각형 타일들이 다시 텍스트 언어자료의 분석에 기초하여 사용자가 입력하는 완전한 단어의 추측을 제공할 수 있다.
가장 일반적인 글자 쌍들, 및 완전한 단어 추측들을 결정하는데 사용된 언어자료는 사용자에 따라 맞춤될 수 있는데, 예를 들어, 모든 텍스트 및/또는 이메일 메시지들의 이력적 아카이브(archive)가 사용자에 의해 작성되거나, 또는 사용자의 디바이스로부터 보내진다. 나타내진 디스플레이 특성들은 자연적으로, 사용되는 스마트폰 기능성(예를 들면, 텍스트 메시징 애플리케이션)과 연관된 다른 그래픽 표시 및 제어들에 의해 증가될 수 있다.
또 다른 실시예들에서, 사용자는 프린트된 페이지 상에서와 같이 스마트폰 디스플레이와는 다르게 표시된 심볼들 및 단어들로부터 선택할 수 있다. 큰 규모의 완전한 키보드 및 완전한 숫자 패드가 이러한 페이지에 제공될 수 있으며, 독립적으로 사용되거나, 또는 메뉴(104)와 같은 디스플레이된 글자 메뉴와 함께 사용된다. (다시, 스마트폰 카메라가 응시 추적을 수행하는데 사용될 수 있으며, 기하학적 보정이 기준점들의 사용자 응시에 의해 수행될 수 있다.)
사인 언어
스마트폰이 사용자의 눈을 볼 수 있고 움직임들을 해석할 수 있는 것과 같이, 유사하게 사용자의 손의 제스처들을 볼 수 있고, 그들을 또한 해석할 수 있다. 결과는 사인 언어 해석기(sign language interpreter)이다.
사인 언어들(미국 및 영국의 사인 언어들이 가장 지배적이다)은 다양한 요소들을 포함하는데, 이들 모두는 카메라에 의해 캡처될 수 있으며, 적절한 이미지 분석 소프트웨어에 의해 식별될 수 있다. 사인은 일반적으로 핸드폼(handform)과 기향 양태들을 포함하며, 또한 위치(또는 표현의 장소), 및 움직임에 의해 특징될 수 있다. 수화 문자들(핑거스펠링(fingerspelling))의 제스처들이 유사하며, 주로 고유 명사들 및 다른 특수화된 단어에 채용된다.
전형적인 사인 언어 분석 모듈은 대부분의 피부톤들과 연관된 색역(gamut) 내에서 색차들을 갖는 픽셀들의 인접한 세트들을 식별하는 것에 의해, 스마트폰으로 캡처된 이미지를 관심있는 영역들로 분할한다. 이렇게 분할된 이미지는 이후 기준 핸드폼들의 데이터베이스 라이브러리 내에서 최고의 매칭을 갖는 손의 구성(들)과 매치하도록 찾는 분류 엔진에 적용된다. 유사하게, 이미지 프레임들의 시퀀스들이 핸드폼들 내의 움직임이 상이한 점들과 시간에 따른 지향들의 변화들을 나타내는 모션 벡터들을 구분하도록 처리된다. 이러한 구분된 움직임들이 최고의 매칭을 식별하기 위하여 유사하게 기준 움직임들 및 변화들의 데이터베이스로 적용된다.
매칭하는 사인들이 데이터베이스에서 발견될 때, 구분된 사인들과 연관된 텍스트의 의미들이 데이터베이스 기록들로부터 검색되며, 스마트폰 디스플레이 스크린과 같은 출력 디바이스에 단어들, 음소들 또는 글자들로 출력될 수 있다.
바람직하게, 데이터베이스로부터의 최고의 매칭 데이터는 가공되지 않은 형식으로 출력되지 않는다. 바람직하게, 데이터베이스는 각 사인에 대해 한 세트의 후보 매칭들을 식별하며, 각각은 신뢰 매트릭을 갖는다. 시스템 소프트웨어는 이후 가능한 매칭들의 상이한 신뢰성들에 가중치를 주고, 단어 스펠링들에 대한 상세한 기준 데이터베이스(예를 들면, 사전)를 참조하며, 자주 사인된 단어 쌍들 및 세쌍들을 식별하여 어떤 단어들, 음소들 또는 글자들의 조합이 다음의 상황에 가장 가능한지를 고려한다. (당업자는 유사한 기술들이 비상식적 구절들을 출력하는 가능성을 감소시키기 위하여 음성 인식 시스템들에서 사용된다는 것을 인식할 것이다.)
인식 소프트웨어는 또한 훈련에 의해 이득을 가질 수 있다. 사용자가 잘못된 해석이 시스템에 의해 사인에 주어졌음을 알아차린다면, 사용자는 이전의 사인이 재해석을 위해 반복될 것임을 나타내는 사인을 생성할 수 있다. 이후 사용자는 사인을 반복한다. 이후 시스템은 (시스템이 추론한 것이 잘못되었던) 이전의 해석을 피하여 대안의 해석을 제공한다. 프로세스는 시스템이 (엄지손가락을 올리는 제스처와 같은, 사용자의 사인으로 확인될 수 있는) 올바른 해석으로 응답할 때까지 반복될 수 있다. 시스템은 이후 기준 사인들의 데이터베이스에 올바른 의미와 함께 방금 표현된 사인들을 추가할 수 있다.
유사하게, 시스템이 사인을 해석하고, 사용자가 해석을 시도하지 않으면, 이후 캡처된 사인 이미지에 대한 데이터가 그 해석과 함께 기준 데이터베이스에 부가될 수 있다. 이러한 방식에 의해 시스템은 어떠한 사인들의 다양한 표현들을 인식하는 것을 학습한다. 동일한 기술이 시스템이 시간에 따라 사용자가 명시한 사투리 및 다른 독특한 표현들을 인식하도록 훈련되는 것을 허용한다.
머신 인식(machine-recognition)에 도움을 주기 위하여, 이해에 도움을 줄 일부 보정 또는 기준 정보를 이미지 분석 소프트웨어에 제공하기 위하여 표준 사인 언어가 증가될 수 있다. 예를 들어, 스마트폰에 사인할 때, 사용자는 손가락들과 엄지손가락들을 밖으로 향한 손바닥으로부터 펼쳤다가(숫자 '5'에 대한 일반적인 사인) 다시 손가락들을 오무려 주먹으로 만드는 것과 같은 제스처로 시작할 수 있다. 이는 스마트폰이 사용자의 피부톤 색차를 식별하고, 사용자의 손과 손가락들의 크기를 결정하는 것을 허용한다. 동일한, 또는 다른 제스처가 문장의 마지막에서의 주기와 같은 개념들을 구별하는데 사용될 수 있다. (이러한 구두점은 잠시 멈추는 것에 의해 미국 신호 언어에서 일반적으로 표현된다. 제스처가 없는 것보다 명시적인 손 제스처가 비전 기반(vision-based) 사인 언어 해석을 하는 머신을 위해 더욱 신뢰성있는 분석 요소이다.)
언급한 바와 같이, 해석된 사인 언어는 스마트폰 디스플레이 상에 텍스트로 출력될 수 있다. 그러나, 다른 방식들이 또한 실행될 수 있다. 예를 들어, 텍스트는 단순히 (예를 들면, ASCII 또는 워드 문서로) 저장될 수 있고, 또는 가청 음성을 산출하기 위해 텍스트-음성 변환기를 통해 출력될 수 있다. 유사하게, 텍스트는 이를 저장, 디스플레이 또는 구술될 수 있는 다른 언어로 변환하기 위해 번역 루틴 또는 서비스(예를 들면, 구글 번역)로 입력될 수 있다.
스마트폰은 사용자의 신체 일부(예를 들면, 손들)의 접근을 검출하기 위해 그의 근접 센서를 이용할 수 있으며, 이후 카메라 이미지의 프레임들을 캡처하고 피부톤 색차와 긴 모서리들(또는 손들과 및/또는 손가락들의 특징인 다른 특성들)을 위해 그들을 체크할 수 있다. 이러한 분석이 사용자가 전화를 향해 손들을 움직이고 있다고 결론내면, 전화는 그의 사인 언어 번역기를 활성화시킬 수 있다. 이와 관련하여, 애플의 페이스타임(FaceTime) 통신 소프트웨어는 사용자가 손들을 전화의 카메라에 의해 찍히도록 위치시킬 때 사인 언어 번역기를 활성화시키도록 적응될 수 있다. 이후, 사용자의 손의 제스처들에 대응하는 텍스트가 텍스트 디스플레이, 텍스트-음성 전환, 등과 같은, 전화가 링크되는 다른 부분(들)과 통신될 수 있다.
스트리밍 모드 검출기
기술의 다른 양태에 따라, 스마트폰이 복수의 객체들로부터 식별을 빠르게 캡처하고, 나중 리뷰를 위해 동일하게 사용가능하게 만들도록 구비된다.
도 8은 예를 도시한다. 애플리케이션은 카메라로부터 스트리밍 비디오로 업데이트되는 커다란 뷰 윈도우(즉, 일반적 뷰파인더 모드)를 포함한다. 사용자가 카메라를 찍으면, 시스템은 임의의 식별가능한 객체들을 구분하도록 이미지를 분석한다. 도 8에서, 카메라의 시야 내에 바코드들을 보여주는 몇몇 객체들이 있다.
예시적인 시스템에서 프로세서는 중앙에서 시작하는 이미지 프레임을 분석하여 식별가능한 특성들을 찾는다. (다른 방식들에서는, 위에서 아래로, 또는 다른 이미지 검색 절차가 따라올 수 있다.) 전화가 식별가능한 특성(예를 들면, 바코드(118))을 찾으면, 디스플레이된 이미지의 부분 중 관심을 끌어야 하는 부분을 사용자에게 나타내기 위하여, 특성 주위를 괄호(120)로 덮어씌우거나, 특성을 하이라이팅한다. "쉭"하는 소리가 이후 디바이스 스피커로부터 나오며, 움직이는 표시가 스크린의 괄호 부분으로부터 하단부의 History(122) 버튼으로 움직인다. (애니메이션은 History 버튼에서 점으로 사라지는 사각형의 그래픽일 수 있다.) History 버튼의 옆에 디스플레이되는 적색의 원형 카운터(124)는 이렇게 검출되어 디바이스의 History에 위치되는 아이템들의 수를 나타낸다(본 경우에는, 7).
바코드(118)를 이렇게 처리한 후에, 시스템은 다른 인식가능한 특성들에 대해 시야의 분석을 계속한다. 중심으로부터의 작업이 끝난 후에 다음으로 바코드(126)를 인식하며, 유사한 동작들의 시퀀스가 뒤따른다. 카운터(124)는 "8"로 증가된다. 다음으로, 부분적으로 카메라의 시야 외부에 위치하더라도 바코드(128)를 감지한다. (어떠한 바코드들의 불필요한 인코딩은 이러한 디코딩을 가능하게 한다.) 연관된 사용자 피드백(소리 및 움직임 효과들)으로 3개의 바코드들로부터 디바이스 이력으로 데이터를 인식하고 캡처하기 위해 걸린 시간은 3초 미만이다(일반적으로 1 또는 2초이다).
History 버튼(122)을 탭하는 것에 의해, 도 9에 도시된 바와 같이, 이전에 캡처된 특성들의 스크롤가능한 디스플레이가 표시된다. 이러한 리스트에서, 각 입력은 특성으로부터 구분된 정보와 함께, 인식된 특성의 타입을 나타내는 그래픽 표시, 및 특성이 검출된 시간을 포함한다. (시간은 절대적인 방식, 또는 현재 시간에 상대적으로 표시될 수 있으며; 후자가 도 9에 도시된다.)
도 9에 도시된 바와 같이, 시스템에 의해 검출된 특성은 카메라 데이터에서 발견될 필요가 없다. 그들은 오디오(예를 들면, 사람이 말하는 것의 식별)로부터, 또는 다른 센서들로부터 구분된 특성들을 포함할 수 있다. 도 9는 전화가 또한, 근거리 칩(예를 들면, RFID 칩)으로부터 감지한 데이터를 도시하며, 이는 "NFC" 표시에 의해 나타내진다.
나중에, 사용자는 이러한 History 리스트를 재생할 수 있으며, 관심있는 표시를 탭할 수 있다. 이후 전화는 그러한 특성에 대응하는 응답을 런칭하는 것에 의해(또는 사용자가 선택할 수 있는 몇몇 사용가능한 특성들의 메뉴를 표시하는 것에 의해) 응답한다.
때때로 사용자는 예를 들면, 환경이 검출가능한 특성들로 가득하여 사용자가 다양한 캡처들을 원하지 않을 때, 상세히 설명된 스트리밍 모드 동작을 끄고 싶어 할 수 있다. 애플리케이션 UI 상의 버튼 제어(130)는 이러한 기능성을 켰다 껐다 할 수 있다. 나타내진 상태에서, 많은 특성들의 검출이 가능하다. 사용자가 이러한 제어를 탭하면, 그의 표시는 "Multiple is Off"로 바뀐다. 전화가 이러한 모드에서 특성을 검출할 때, 시스템은 (앞에서와 같이) 이를 History에 부가하고, 대응하는 응답을 즉시 런칭한다. 예를 들어, 이는 웹 브라우저 기능성을 호출하고, 검출된 특성에 대응하는 웹 페이지를 로딩할 수 있다.
증거 기반 상태 머신들 , 및 블랙보드 기반 시스템들
본 발명의 다른 양태는 스마트폰 기반 상태 머신들을 포함하며, 이는 센서 입력에 응답하여 그들의 동작을 변화시킨다.
출원 12/797,503은 시스템 구성성분들 사이에서 데이터를 보내기 위해 어떻게 블랙보드 데이터 구조가 사용되는지를 상세히 설명한다. 다음 논의는 예시적인 실시예에 대한 다른 정보를 제공한다.
본 예시적인 시스템에, 물리적 센서들과 논리적 센서들이 있다. 물리적 센서는 센서를 모니터링하며, 그로부터의 데이터를 블랙보드로 보낸다. 스마트폰의 카메라와 마이크로폰은 물리적 센서들의 특별한 타입들이며, 일반적으로 "미디어 센서들"이라고 불릴 수 있다. 일부 센서들은 몇몇 타입들의 데이터를 출력할 수 있다. 예를 들어, 이미지 센서는 픽셀 데이터의 프레임과, 또한 AGC(automatic gain control) 신호를 출력할 수 있다.
논리적 센서는 일반적으로는 블랙보드로부터 데이터를 얻으며 이를 다른 데이터를 계산하는데 사용한다. 이러한 다른 데이터는 또한 일반적으로 블랙보드에 다시 저장된다. (출원 12/793,503에서 논의된 인식 대행자들이 논리적 센서들의 예들이다. 다른 것으로 추론 엔진이 있다.) 일부 경우들에서 동일한 물리적 데이터가 처리동안 논리 센서 개선의 많은 단계들을 통해 지나갈 수 있다.
미디어 콘텐트를 생성하거나 소비하는 모듈들은 예를 들면, 다른 모듈들과의 포맷 협상을 허용하기 위하여 일부 특별한 기능성을 요구할 수 있다. 이는 그의 요구된 포맷(예를 들면, 연관된 파라미터들을 함께 갖는 오디오 또는 비디오)를 인식 대행자에게 질의하고, 이후 블랙보드로부터 대응하는 센서 데이터를 얻는 것을 포함할 수 있다.
이하는 캡처된 이미지로부터 디지털 워터마크를 판독하기 위한, 예시적인 6 단계의 물리적 센서/논리적 센서 데이터 흐름을 상세히 설명하는 표이다(ReadImage Watermark 시나리오). Stored Data 열은 블랙보드 내에 저장된 데이터의 이름을 나타낸다. (MS는 미디어 센서; PS는 물리적 센서; LS는 논리적 센서; 그리고 RA는 인식 대행자를 나타낸다.)
Figure 112013049341469-pct00001
첫번째 두 줄들은 비디오 데이터의 프레임과, (예를 들면, 프레임에 걸친 평균 휘도 값일 수 있는) 연관된 AGC 데이터가 카메라로부터 블랙보드로 기입된다는 것을 간단히 나타낸다. 세번째 줄은 스마트폰 가속도계 시스템에 의해 감지된 것과 같은 연관된 핸드셋의 움직임 데이터가 또한 블랙보드에 기입된다는 것을 나타낸다.
네번째 줄에서, 표는 블랙보드에 이전에 저장되었던 Data_Frame 데이터가 이미지 분류기(다양한 논리적 센서)로 인가되어, 결과적으로 블랙보드에 저장되는 분류 데이터가 된다는 것을 나타낸다. (분류 데이터는 다양한 종류들일 수 있다. 분류 데이터의 한 타입은 색상 포화도(color saturation)이다. 프레임이 매우 낮은 색상 포화도를 가지면, 이는 이것이 컬러 화면이 아니며, 백색의 배경 상에 프린트된 텍스트 또는 바코드에 더욱 유사하다는 것을 나타낸다. 예시된 데이터 흐름은 Data_Classification 데이터가 화면이 프린트된 텍스트 또는 바코드일 가능성이 크다는 것을 나타낸다면, 다른 실행들에서는 워터마크가 흑색과 백색, 또는 회색톤의 이미지로부터 판독될 수 있다고 하더라도, 여기서는 워터마크 검출기를 활성화시키지 않을 것이다. 다른 분류기는 말로 한 음성을 음악과 구별하며, 따라서, 예를 들면, 노래 인식 프로세스가 말로 된 소리가 입력될 때는 실행되지 않는다.)
다섯번째 줄은 블랙보드로 다시 기재되는 프레임 품질 매트릭을 생성하기 위하여 AGC 및 가속도계 데이터와 함께 방금 도출된 분류 데이터가 블랙보드로부터 회수되어 워터마크 추론 모듈(다른 논리적 센서)로 보내지는 것을 나타낸다. 프레임이 워터마크가 존재한다면 디코딩될 수 있는 품질일 확률을 추정하기 위하여 워터마크 추론 모듈은 입력 데이터를 이용한다. 예를 들어, AGC 신호가 프레임이 매우 어둡거나 매우 밝다는 것을 나타내면, 이후 워터마크가 얻어질 수 있는 가능성은 거의 없다. 가속도계 데이터가 이미지의 프레임이 캡처되었을 때 스마트폰이 가속되었다는 것을 나타낼 때도 마찬가지이다. (가속도계 데이터는 일반적으로 중력에 대해 보정된다.) 분류기가 데이터의 낮은 포화도 상태에 있다는 것을 나타낼 때에도 유사하다.
여섯번째 줄은 방금 결정된 프레임 품질 매트릭이 캡처된 이미지의 프레임과 함께 워터마크 판독기(인식 대행자)로 제공되는 것을 보여준다. 프레임 품질이 임계치를 초과하면, 워터마크 판독기는 이미지로부터 워터마크를 디코딩하도록 시도할 것이다. 이러한 시도의 결과는 ReadResult 데이터에 저장되고(예를 들면, "1"은 워터마크가 성공적으로 디코딩되었다는 것을 나타내고; "0"은 워터마크가 발견되지 않았다는 것을 나타낸다), 디코딩된 워터마크 페이로드-만약 있다면-가 WM_ID로서 저장된다.
(다른 실시예에서, 프레임 품질 매트릭이 임계치를 초과할 경우 디코더를 조건적으로 호출하는 대신, 시스템 상황에 기초하여 워터마크 디코더의 동작을 동적으로 제어하는 우선값으로 이러한 매트릭이 사용될 수 있다. 시스템이 다른 동작들로 바쁘거나, 또는 -배터리 충전과 같은- 다른 상황이 디코딩 동작의 비용을 높게 만든 경우, 낮은 품질 매트릭을 갖는 프레임이 워터마크로 처리되지 않을 것이며, 따라서 더 높은 우선 처리들로부터 시스템 자원들을 전환하지 않게 된다.)
예시적인 시스템에서, 설치된 모듈들이 구성 파일에 열거된다. 이러한 모듈들은 예시화를 위해 사용가능하며 실행 시간에 사용한다. 구성 파일은 또한 하나 이상의 시나리오들(예를 들면, 위에서 상세히 설명된 바와 같은 ReadImageWatermark 및 FingerprintAudio)을 상세히 설명하는데, 이들의 각각은 그러한 시나리오에 대해 사용되어야 하는 모듈들의 집합을 명시한다. 실행 시간에서 애플리케이션은 호출할 특별한 시나리오(들)을 명시하는 미들웨어를 초기화시킨다. 미들웨어 구성, 및 시나리오들은 일반적으로 XML 구성 파일로부터 로드된다.
예시적인 시스템은 (예를 들면, 비주얼 스튜디오(Visual Studio) 2010을 사용하여) C/C++에서 코딩되며, 도 10에 도시된 아키텍처를 따른다. 이벤트 제어기 및 미들웨어 상태 머신과 함께 블랙보드를 포함하는 미들웨어가 동적 링크 라이브러리(DLL)에서 실행된다.
당업자들에게 친숙한 바와 같이, 도 10의 시스템은 상이한 시스템 구성성분들이 통신하는 표준화된 인터페이스들을 채용한다. 특히, (위의) 시스템 애플리케이션들과 미들웨어 사이의 통신이 API들을 통해 영향을 받으며, 이는 기능 호출들을 개시하고 서비스하기 위한 규약들/프로토콜들을 정의한다. 유사하게, (일반적으로 미들웨어에 의해 실행 시간에서 동적으로 로딩되는 DLL들로서 실행되는) 센서 모듈들은 서비스 제공자 인터페이스(SPI)를 통해 미들웨어와 통신한다.
예시된 블랙보드는 다양한 방법들, 예를 들면, 키값 쌍들, XML, 온톨로지들(ontologies), 등으로 데이터를 저장할 수 있다. 예시적인 블랙보드는 데이터를 키값 쌍들로 저장하고, 이들은 푸시 앤 풀(push and pull) API들을 이용하여 액세스된다. 동시실행 제어는 비관적 잠금(pessimistic locking)에 의해 조절되며 이는 다른 프로세스에 의해 사용중일 때 프로세스들이 데이터를 액세스하는 것을 방지한다. 블랙보드 데이터 타입들은 이산 데이터 요소들(예를 들면, 정수들 및 문자열들)에 더하여 데이터 블랍(blob)들을 포함한다.
데이터 값들 자체들에 부가적으로, 각 데이터 입력은 연관된 데이터(메타데이터)의 몇몇 아이템들을 갖는다. 그들은 다음을 포함한다:
이름
소스(입력을 생성한 모듈의 이름)
데이터 타입
데이터 크기
참조 수
타임스탬프(마지막 업데이트 시간)
수명(얼마나 오래 이러한 Value가 유용한지)
품질(이러한 값이 얼마나 확실한지)
블랙보드에 저장되는 값들은 다음의 대표적인 데이터 타입들이다:
비디오 프레임들
비디오 통계치들(프레임 속도, AGC, 촛점 거리, 등)
가속도계 데이터
WM 판독 결과
WM ID
비디오 분류 결과
데이터는 API 및 SPI 모두에 의해 지원되는 기능들을 통해 블랙보드에 기록되고 그로부터 판독된다. 이러한 기능들은 당업자들에게 친숙하며 다음을 포함한다(API/SPI 호출의 일부로서 지나가는 값들을 나타내는 삽입어구들을 갖는다):
BB_CreateEntry(name, source, type, size), returns Handle
BB_OpenEntry(name), returns Handle
BB_GetEntryNames(source, buffer)
BB_GetEntryInfo(name, source, info)
BB_GetEntryInfo(Handle, info)
BB_GetValue(Handle, value)
BB_SetValue(Handle, value)
BB_CloseEntry(Handle)
위에서 상세히 설명된 데이터 타입들에 부가하여, 모듈들은 이름이 있는 입력들의 공통 세트를 사용하여 블랙보드로 상태 정보를 공개한다. 각 이름은 PREFIX + "_" + MODULE NAME의 패턴을 이용하여 생성된다. 접두사는 다음을 포함한다:
Status(다양한 상태 코드)
Error(마지막 에러에 대한 에러 문자열)
Result(가장 최근의 동작의 다양한 결과 코드)
API와 SPI 기능들은 또한 관련 DLL들이 초기화되고(또는 초기화되지 않고), 상이한 시나리오들이 구성되고 시작/정지/일시 정지되는 Initialize, Uninitialize, LoadScenario, Start, Stop 및 Pause를 포함한다.
도 10의 이벤트 제어기 모듈은 상이한 SPI들의 다양한 우선권들, 처리 복잡성 및 처리 빈도를 다룬다. 예를 들어, 이미지 워터마크 디코더 RA는 집중적인 프로세서이지만, 이산 프레임들 상에서 동작하므로 다른 SPI들이 수행할 시간이 필요할 때 프레임들이 무시될 수 있다. (예를 들어, 이미지들의 스트림, 즉, 비디오 스트림 상에서 WatermarkImageRead 시나리오 수행시, 다양한 프레임들이 누락될 수 있고, 따라서 사용가능한 자원들로의 수행의 크기를 조절하여 시스템이 교착 상태에 빠지는 것을 방지한다.) 이와 대조적으로, 오디오 워터마크 디코더 RA는 덜 프로세서 집중적일 수 있으나, 방해되지 않은 스트림의 오디오 데이터를 처리할 필요가 있다. 즉, 오디오 데이터의 스트림이 사용가능할 때, 오디오 워터마크 RA는 다른 SPI들에 대한 절차를 진행하여야 한다. 다중 미디어 스트림들(예를 들면, 오디오 및 스트리밍 이미지들)이 제공될 때, 다른 RA들이 처리에 포함되며, 이미지의 고품질 프레임이 사용가능할 경우 이미지 처리를 허용하기 위하여 이벤트 제어기는 주기적으로 오디오 처리를 중단시킬 수 있다.
바람직하게, 각 모듈은 모듈의 우선권 요구들 및 제한들, 수행 빈도, 등에 대한 정보를 상세히 설명하는 데이터 구조를 포함한다. 이러한 구조의 데이터의 샘플은 다음과 같다:
이름
타입(PS, MS, LS, RA)
우선순위(예를 들면 2 내지 10 단계를 갖는 낮은 우선순위 내지 높은 우선순위)
소비된 블랙보드 데이터 값들
생성된 블랙보드 데이터 값들
모듈들 및 애플리케이션들은 또한 대응하는 트리거 값(또는 트리거 값 범위)과 함께 블랙보드 트리거 기능을 생성할 수 있는데, 이는 블랙보드의 특정 데이터가 트리거 값 기준을 만족할 때 미들웨어(예를 들면, 블랙보드 또는 이벤트 제어기)가 이러한 모듈/애플리케이션에 통지/메시지를 발생시키도록 한다. 이러한 트리거는 ReadImageWatermark 동작이 "1"의 ReadResult 값을 복귀시킬 때 성공적인 워터마크 판독을 의미한다. 다른 트리거는 음악 인식 모듈이 그레이 아나토미(Grey's Anatomy)라는 텔레비전 쇼의 테마 음악을 식별할 경우이다. 이러한 기능에 의해서, 모듈/애플리케이션은 블랙보드 상에서 특정 데이터의 존재에 대해 경보될 때까지 휴지기를 유지할 수 있다.
앞선 방식에 의하여, 센서들의 각각이 데이터와 상태 정보를 블랙보드로 공개할 수 있으며, 이러한 정보가 차례로 그들 각각의 결과들을 블랙보드로 공개하는 다른 모듈들 및 상이한 애플리케이션들에 의해 검색되고 사용될 수 있다는 것이 인식될 것이다. 이러한 반복적인 처리를 통해, 단일의 물리적 센서로부터의 가공되지 않은 데이터가 높은 복잡성의 동작들을 수행하도록 성공적으로 처리되고 다른 정보가 부가되며, 논리적으로 정리될 수 있다. ReadImageWatermark는 이러한 시스템이 가능한 다중 위상 처리의 간단한 예이다.
미들웨어 등에 대한 보다 상세한 설명
도 16은 미디어 및 물리적 객체 인식을 위한 미들웨어의 다른 아키텍처 도면이다. 이러한 유연한 아키텍처가 더 많은 상황적 정보를 애플리케이션으로 전달하는데 또한 사용될 수 있다. 이러한 설계는 블랙보드, 센서 뱅크, 인식 대행자(RA) 뱅크, 추론 엔진, 및 이벤트 제어기를 포함한다.
언급된 바와 같이, 블랙보드는 아키텍처의 중심이다. 이는 시스템 구성성분들이 통신하는 공유된 저장소이다. 임의의 다른 시스템 구성성분들 사이에서 일반적으로 직접적인 통신은 허용되지 않는다. 예시적인 블랙보드는 각각이 주어진 데이터 타입에 전용인, 개별적인 섹션들로 가상적으로 구조화된다. 예를 들어, 오디오 데이터에 대한 하나의 섹션과 이미지를 위한 다른 섹션이 있다.
센서 뱅크는 블랙보드에 입력들을 제공하며 카메라, 마이크로폰, 가속도계, 자이로스코프, 주변 광 센서, GPS 등을 포함할 수 있다. RA 뱅크는 이미지 및 오디오 워터마크 판독기들, 핑거프린트 판독기, 바코드 판독기, 등을 포함할 수 있다. 각 센서와 RA는 그의 할당된 태스크와 그의 결과들의 품질을 이루는 비용을 추정하기 위한 사적인 지식 기반을 포함한다. 이는 센서들 또는 RA들이 시스템의 다른 구성성분들 상에 효과를 미치지 않고 부가되거나 제거되는 것이 가능하게 하는 확장성을 지원한다.
이벤트 제어기는 시스템의 전체적인 동작을 조정한다. 추론 엔진은 센서와 RA 뱅크들의 자원들의 사용을 최적화하기 위해 블랙보드의 콘텐트를 모니터링하고 환경적 데이터를 추론한다. 추론 엔진은 추론된 데이터를 블랙보드에 기록한다.
최소 수의 센서들이 일반적으로 블랙보드로 입력을 제공하기 위해 활동한다. 임의의 구성성분으로부터 입력시, 블랙보드는 모든 구성성분들에게 변화를 시그널링할 수 있다. 각 센서와 RA는 그 후 그것이 검출된 객체의 아이덴티티를 해결하는 것을 도울 수 있는지를 평가한다. 센서는 관련된 더욱 정밀한 데이터를 제공하는 것에 의해 아이덴티티를 분석하는 것을 도울 수 있다. 센서 또는 RA는 그의 해법의 비용과 품질을 추정하기 위하여 그의 지식 기반을 이용하며 그 데이터를 블랙보드에 기록한다. 이벤트 제어기는 최적의 결과들을 가장 경제적으로 생성하기 위해 추정된 센서(들) 또는 RA(들)을 활성화시킨다. 센서들과 추론 엔진은 가장 적절한 모듈(들)이 항상 동작하도록 하기 위해 계속 블랙보드를 업데이트한다. 시스템은 이러한 프로세스를 객체의 아이덴티티가 분석될 때까지 계속한다. 이러한 시나리오에서, 이벤트 제어기는 시스템의 전력과 자원들의 사용을 최적화한다. 예를 들어, 조명 정도가 약하거나 디바이스가 격렬한 움직임에 있다면, 카메라가 사용되지 않으며 이미지 워터마크 판독기와 바코드 리더기도 식별을 위해 사용되지 않는다.
도 17은 디지맥 디스커버(Digimarc Discover) 애플리케이션의 미들웨어 아키텍처를 도시한다. 이는 C/C++ 및 어셈블리 언어에서 실행되고 아이폰과 안드로이드 플랫폼들에 대해 최적화된다. 디지맥 디스커버 애플리케이션은 디지털 워터마크들, 바코드들, 및 오디오 핑거프린트들에 대한 RA들을 통합시킨다.
도 17에 도시된 아키텍처와 도 16에 도시된 것 사이의 가장 큰 차이점은 형식적 추론 엔진의 부재와, 블랙보드에 대한 더욱 제한된 역할이다. 일부 메커니즘들이 미디어 샘플을 처리할지 여부를 결정하기 위해 실행되지만, 전체적인 추론 엔진이 요구되지는 않는다. 또한, 블랙보드는 일부 센서 데이터(가속도계, 자이로스코프, 등)를 따라 미디어 데이터(오디오 및 비디오)를 움직이기 위한 수단으로서 필수적으로 이용된다. 블랙보드는 그들의 샘플링 속도들에 상관없이 RA들에 의한 소비를 위해 동기화되고 대기열에 놓인 모든 캡처된 데이터를 유지한다. RA가 처리를 위해 준비될 때, 이는 블랙보드의 대응하는 데이터 대기열로부터 미디어 샘플을 요청한다. 블랙보드는 이후 RA에 미디어 데이터와 연관된 센서 데이터를 제공한다.
RA가 미디어 샘플을 처리하기 시작하면, 이는 샘플에 부착된 임의의 센서 데이터를 사용할 수 있다. RA는 먼저 샘플을 처리할 것인지 아닌지를 결정한다. 정확한 식별에의 도달이 상대적으로 확실할 때에만 그의 식별 태스크에 착수한다. 그렇지 않으면, RA는 동작을 포기하고 다음 미디어 샘플을 기다린다. RA는 그의 식별 파라미터들을 조정하기 위해 논리적 센서를 사용할 수 있다. 성공적이라면, RA는 그의 결과를 미들웨어를 통해 애플리케이션으로 리턴한다.
매력적인 사용자 경험을 제공하기 위하여, 양성 객체/미디어 식별에서의 가장 좋은 기회를 위하여 RA들은 대량의 데이터를 빠르게 처리하여야 한다. 식별이 이러한 대량의 데이터를 요청하므로, 운영 시스템과의 적절한 통합이 바람직하다. 이러한 통합은 사용된 특별한 오디오 및 비디오 캡처링 프로세스에 기초하여 일반적으로 조절된다. 이러한 통합이 없이, 블랙보드는 검출을 수행하기 위하여 RA들에 대한 충분한 데이터를 가질 수 없으며, 정확한 식별을 얻는 기회들은 감소된다. 한번에 많은 RA들을 이용하는 것이 문제를 악화시킬 수 있다.
디지맥 디스커버 애플리케이션의 초기 구현은 데모 플랫폼으로서 합리적으로 동작하였으나, 빠르지는 않았고 쉽게 확장할 수도 없었다. 부가적인 식별 기술들을 통합하는 것이 성능과 구현 난제들을 제공하였다. 그러한 환경을 해결하기 위하여, 두 가지 타입들의 최적화들이 실행된다:
하나는 스마트폰 미디어 캡처 서브시스템과의 개선된 통합을 통한 OS 자원들의 더욱 효율적인 사용이다. 다른 하나는 RA들의 아이폰에 적합한 최적화들이다. 이들이 이하로 상세히 설명된다.
디지맥 디스커버 애플리케이션의 아이폰 버전은 애플의 그랜드 센트럴 디스패치 스래딩(Grnad Central Dispatch threading) 시설에 의존하며, 이는 낮은 쓰레드 대기 시간으로 애플리케이션의 대형의 다중 쓰레드를 허용한다. 오디오와 비디오 스트림들이 개별적인 쓰레드들에 기록되며, 각 RA는 그 자신의 쓰레드에서 동작한다. 오버헤드는 쓰레드들의 수로 식별가능하게 증가하지 않는다. 아이폰들의 단일 코어 프로세서 상에서의 이득들은 가능한 단점들을 더 크게 한다. RA 처리는 일반적으로 오디오 및 비디오 캡처 쓰레드들에 의해 구동되지만, 이는 RA들의 타입에 의존하여 사용시 변화할 수 있다.
앞서 언급된 바와 같이, 스트리밍 이미지(비디오) 식별 기술들(예를 들면, 워터마크들 및 바코드들)과 오디오(예를 들면, 워터마크들 및 핑거프린트들) 사이에는 기본적인 차이점이 있는데, 즉, 비디오 기술들은 개별적인 이미지들을 처리하며 오디오 기술들은 스트림들을 처리한다는 것이다. 비디오는 각각이 하나의 완전한 이미지인 프레임들의 시퀀스로서 애플리케이션으로 전달된다. 그러나 오디오는 가공되지 않은 바이트 스트림의 데이터의 블록들로서 전달된다. 비디오 프레임은 단독으로 사용가능하지만, 단일 오디오 블록은 종종 오디오 식별을 위해 쓸모가 없다. 대부분의 오디오 식별 기술들은 식별을 위해 적어도 오디오 데이터의 (많은 블록들과 동일한) 수 초가 필요하다.
데이터 타입들과 샘플 속도들 사이의 이러한 차이는 미들웨어 아키텍처의 차이들을 호출한다. 높은 프로세서 사용동안, 개별적인 비디오 프레임들이 비디오 RA의 견고함 상에서 무시할 만한 효과로 누락될 수 있다. 그러나, 오디오 RA는 콘텐트를 식별하기 위하여 몇몇 블록들을 필요로 한다. RA들이 그들이 사용가능하게 되도록 미디어 샘플들을 처리하였던 디지맥 디스커버 애플리케이션의 초기 구현은 오디오를 위해 항상 동작하지는 않는다. 일부 경우들에서, 오디오 처리는 대형 처리동안 뒤로 쳐질 수 있어서 지연된 결과들을 초래하고, 원하는 사용자 인터페이스보다 느려진다. 이를 해결하기 위하여, 디지맥 디스커버 애플리케이션은 다른 것들이 최고 속도로 수행하는 것을 유지하는 동안, 프레임들을 스킵할 여유가 있는 RA들의 속도를 낮추는 것(throttling back)에 의해 미들웨어가 처리의 균형을 잡는 우선순위 시스템을 채용한다.
이미지/비디오 프레임들을 처리하는 것은 가장 CPU 집약적인 태스크들 중 하나이다. 두개의 개별적인 RA들(워터마크 디코더 및 바코드 판독기)이 각 캡처된 이미지를 처리하기 위해 동시에 사용될 수 있다. 이미지를 검사하는 것으로부터 하나의 RA를 배재하는 것은 성능을 상당히 개선시킬 수 있다. 위에서 나타낸 바와 같이, 디지맥 디스커버 애플리케이션은 바코드 판독기가 이미지를 처리해야하는지의 여부를 결정하기 위하여 분류기를 사용한다. 바코드들이 거의 항상 흑백으로 프린트되기 때문에, 분류기는 이미지들의 포화 레벨들을 검사하고 이들이 상당한 양들의 색상을 갖는 것들은 배제한다. 유사하게, 핑거프린트 기반 그레이스노트(Gracenote) 음악 인식 RA는 음성 분류기를 참조하는 것에 의해 제어되며, 이는 마이크로폰 오디오가 음성으로 분류될 때 그레이스노트 RA를 호출하는 것을 회피한다.
위에서 나타내진 바와 같이, ImageWatermarkRead 시나리오는 스마트폰 가속도계로부터의 데이터를 이용하는데, 이는 이미지가 과도한 움직임의 블러(blur)를 포함할 가능성이 높은 경우, 시도된 워터마크 판독을 중단한다. 유사하게, 촛점 거리의 센서들, 자동 화이트 밸런스, 자동 이득 제어, 및 ISO 뿐만 아니라, 다른 위치/움직임 센서들을 포함하는 다른 스마트폰 논리 센서들이 낮은 품질의 프레임들을 식별하는데 사용될 수 있으며, 따라서 스마트폰 자원들이 빈약한 품질의 입력을 처리하는데 쓸데없이 소비되지 않게 된다.
우리의 작업은 논리적 센서들이 시스템 자원들의 사용의 최적화와 사용자 경험의 개선을 돕는다는 것을 보여주었다. 비슷한 방식으로, 사용자 환경과 디바이스 환경에 대한 부가적인 정보를 제공하는 논리적 센서들이 더욱 더 복잡한 동작들을 가능하게 한다. 언제, 어디서, 어떻게 그리고 누구에 의해 디바이스가 사용되는지에 대한 정보가 미들웨어를 포함하는 모든 결정들에 포함되는 것이 바람직하다. 일부 구현들은 환경의 형식적 표현과, 인공 지능 기반 추론 엔진을 채용한다. 이러한 방식들에서, 센서들과 RA들은 지식 소스들로 여겨질 수 있다.
(임의의 논리적 센서가 어떤 의미로는 추론 모듈로 간주될 수 있다. 광 센서가 낮은 광을 검출하면, 스마트폰의 상황이 어두운 곳에 있다고 추론할 수 있다. 이러한 추론은 조도를 증가시키기 위하여 손전등을 켜는 신호를 발생시키도록 사용될 수 있다. 더 복잡한 방식은 스마트폰에 몇몇 모듈들을 채용한다. 예를 들어, 광 센서는 낮은 광을 검출할 수 있으며, 마이크로폰은 바스락거리는 소음을 검출할 수 있다. 시스템은 스마트폰이 사용자의 주머니에 있다고 추론할 수 있으며, 그러한 경우 카메라의 손전등을 켜는 것은 무의미하다. 더욱 복잡한 방식들은 사용자 이력 데이터 및/또는 외부 자원들과 함께, 하나 이상의 시스템 모듈들을 채용할 수 있다. 예를 들어, 시스템은 오디오 핑거프린팅 모듈, 외부 데이터베이스, 및 사용자 이력에 의해, 스마트폰 사용자가 그레이 아나토미라는 텔레비전 쇼의 시즌 4의 에피소드 6의 15분을 시청하였다는 것과, 외과의사인 캘리 토레스(Callie Torres)를 연기하는 여배우인 사라 라미레즈(Sara Ramirez)가 사용자가 좋아하는 여배우들 중 하나라는 것을 결정할 수 있고, 스마트폰은 에피소드의 이 부분동안 라미레즈의 위키피디아(Wikipedia)로의 링크를 사용자에게 디스플레이된 메뉴 선택들의 리스트의 높은 곳에 진입시키도록 제공하게 할 수 있다.)
인식의 효율은 RA들과 미들웨어의 속도에 의해 크게 영향을 받는다는 것이 인식될 것이다. 이를 고려하여 다양하게 개선될 수 있다.
각 RA는 주어진 총 플랫폼 사용 프로파일의 수신된 동작 곡선(Receiver Operating Curve)으로 모델링될 수 있다. 이상적으로 RA의 각 예에 대한 이동 장치 프로파일이 시스템 설계에 정보를 주기 위해 채용된다.
디지맥 이미지 워터마크 RA가 아이폰의 A4 프로세서의 NEON 레지스터들을 이용하기 위하여 어셈블리 언어의 FFT, 로그 폴라(log-polar), 및 비선형 필터링 단계들을 실행하는 것에 의해 아이폰 플랫폼에 대해 최적화된다.
이미지 워터마크 RA는 128x128 픽셀 블록들을 8 비트의 깊이로 처리하고, 이는 단일 블록 또는 4 블록 검출기로 수행할 수 있다. 단일 블록 실시예에서, NEON 구현의 실행 시간은 이하의 표에서 도시되는 것과 같이, 마크되고 마크되지 않은 프레임들 모두에 대해 20%만큼 감소된다. 마크되지 않은 프레임들에 대한 증가된 거절 속도는 더 높은 산출량을 내며, 다음으로 RA에 의한 인식 시도들의 속도를 증가시킨다.
Figure 112013049341469-pct00002
레지스터들의 SIMD 용량이 4 이미지 블록들을 동시에 처리하도록 사용될 때 NEON 구현은 특별한 이득들을 생성한다. 이러한 4 블록 방식은 RA의 동작적 엔벌로프(envelope)를 증가시키도록 다양한 프리필터(pre-filter)들의 사용을 가능하게 하며(이하에서 논의됨), 따라서 사용자 경험을 개선시킨다.
이동 플랫폼들은 때때로 주어진 시스템 서비스에 대해 많은 API들을 제공한다. API의 선택은 플랫폼 상에서의 자원 사용과 결과적인 태스크 혼합에 영향을 미칠 수 있다. 일부 예들에서, 선택은 센서의 산출량에 영향을 미칠 수 있다.
iOS 4.0에서, 몇몇 API들은 카메라로의 액세스를 제공한다. 최적의 접근을 식별하기 위하여, 아이폰4는 디지맥 디스커버 애플리케이션이 프린트-투-웹(Print-to-Web) 사용 모델에서 사용되는 동안 태스크 혼합을 캡처하도록 설치된다.
도 18은 이미지 프레임들을 검색하기 위하여 프리뷰(Preview) API를 사용하기 이전과 이후의 태스크 혼합을 도시한다(각각의 빌드들(1.0.8과 1.11)). 프리뷰 API를 사용하는 것은 프레임을 렌더링하는데 사용된 시간을 상당히 감소시키며 이미지 워터마크 인식을 위한 시간을 자유롭게 한다("Decoding WM"으로 도시됨). 프리뷰 API를 사용하는 것은 또한 다른 시스템과 애플리케이션 쓰레드들이 프로세서를 더욱 많이 사용하는 것을 허용하였다.
OS가 다른 쓰레드들을 서비스하기 위해 더 많은 시간을 가질 여유가 있는 것이 전체적으로 시스템에 확실히 이득이지만, 초당 11 에서 14 프레임들로의 처리량의 증가는 사용자들에게는 보다 직접적인 값이다. 처리량의 증가는 또한 객체를 인식하기 위한 RA에 의한 시도들의 속도를 증가시킨다.
사용자 경험의 개선들을 계량화하기 위하여, 명시적 사용자 시나리오에 대한 인식 속도들이 1차 환경 팩터들의 함수로 캡처될 수 있다. 또한, 처리량이 인식 속도들을 시간의 함수로서 정규화하기 위하여 측정될 수 있다.
다음 표는 아이폰 비디오 큐(iPhone Viede Queue)로부터 프레임들을 검색하기 위하여 iOS 4.0 프리뷰와 UIGetScreenImage API들 모두로 최적화된 RA들을 이용한 결과들을 도시한다. 프리뷰 API 실행은 모든 RA들에 대해 아이폰 3GS 상에서 실질적 개선들을 가져왔다.
Figure 112013049341469-pct00003
프린트-투-웹 사용 시나리오에 대하여, 가장 큰 환경적 팩터들은 프린트, 조명, 그리고 포즈까지의 거리이다. 이러한 팩터들을 연구하기 위하여, 인식 속도들에 대한 그들의 영향들을 반복적으로 측정하는 로보틱 셀(robotic cell)이 만들어졌다.
이미지 워터마크 RA의 두 가지 버전들이 거리에 대하여 시험되었다. "SS" 버전은 개선된 샘플링 알고리즘을 유지하지만, "Base" 버전은 그렇지 않다. 샘플링 알고리즘은 iOS 4.2에 의해 제공된 메타데이터 사전의 CurrentFocusPosition에 의해 제공된 논리적 센서 데이터를 사용한다.
도 19는 어떤 프레임들이 성공적으로 디코딩된 워터마크(또는 페이로드)를 나타내고 어떤 것이 그렇지 않는가를 보여주는, 두가지 버전들에 대한 결과들을 디스플레이한다. 개선된 샘플링 알고리즘은 워터마크가 검출될 수 있고 페이로드가 복구될 수 있는 거리들의 범위를 실질적으로 증가시켰다.
그와 함께, 도 19로부터의 결과들 및 위의 표는 시스템 자원들의 효율적인 사용을 최적화된 RA들과 조합하는 것이 이미지 워터마크 RA의 동작적 엔빌로프를 증가시킨다는 것을 보여준다.
요약하면, 실세계의 사용 시나리오들에 기초하여, 콘텐트 식별자를 제공하고, 이동 발견 애플리케이션들을 생성하는 연관된 복잡성을 감소시키기 위하여, 상세하게 설명된 디지맥 디스커버 플랫폼이 설계된다. 플랫폼은 확장가능하게 설계되며 시스템에 영향을 끼치지 않고 임의의 타입의 인식 대행자의 추가와 제거를 허용한다. 운영 시스템 자원들의 효율적인 사용과, 인식 대행자들의 최적화는, 소비자를 만족시키는 시스템 성능을 허용한다. 모든 오디오 및 비디오 캡처물들을 다루는 미들웨어 아키텍처를 채용하는 것은 대기 시간을 감소시키며, 시스템 자원들의 공유를 용이하게 하고, 전력 소비를 감소시키며, 내부 회선쟁탈을 감소시킨다. 일부 구현들에서 다른 것들이 더 많은 비형식적 타입들의 추론들을 사용하는 동안, 이러한 미들웨어는 사용자 및 디바이스 환경에 기초하여 센서들과 인식 대행자들의 사용을 적응시키는 형식적 추론 엔진을 포함한다.
모바일 디스커버리의 원자적 구조로서 링크된 데이터
출원 12/797,503에서 상세히 설명된 바와 같이, 링크된 데이터 원리들이 스마트폰 데이터와 함께 사용될 수 있다.
스마트폰 센서들은 환경에 대한 데이터를 생성하는 것으로 간주될 수 있다.
환경 데이터가 저장될 수 있는 한가지 방법은 키값 쌍들에 의한 것으로, 라벨(일반적으로 사전으로부터 얻어지는)과 자료(datum)를 포함한다. (예를 들어, LAT=45.03; AudioEnvironment=SpokenWord; BatteryLeft=.107) 이러한 간단한 키값 표현의 단점은 컴퓨터가 라벨들을 이해하지 못한다는 것이다. 이는 가변 LAT가 이동 소수점 수를 전달하며; 가변 AudioEnvironment가 문자열이라는 것, 등을 간단히 알 수 있다.
본 기술의 다른 양태에 따라, 이러한 정보는 RDF(Resource Description Framework) 지식 표현 언어의 데이터 트리플(data triple)들의 집합에 의하는 것과 같은, 의미론적 표현 방식으로 표현될 수 있다. (트리플들은 일반적으로 주어, 서술어(또는 속성), 및 목적어를 포함한다.) RDF 스키마(RDFS)는 객체들과 클래스들의 계층의 유지를 허용한다. 시맨틱 트리플들은 일반적으로 두개의 데이터 요소들을 포함하는 관계들을 표현하며, 또는 단일 데이터 요소에 관한 특성들을 표현한다.
트리플들에서, 파라미터들은 여전히 할당된 값일 수 있으나, 트리플들은 다른 정보와 의미론적으로 관련되어 그들을 의미로 가득채운다. 다양한 온토로지 모델들(RDFS, OWL, 등)이 이러한 트리플들의 시맨틱들 및 그안의 서로에 대한 그들의 관계를 형식적으로 설명하도록 사용될 수 있다. LAT(위도) 파라미터가 부동 소수점 데이텀으로 할당될 수 있으나, 다른 트리플들을 참조하는 것에 의해, 컴퓨터는 이러한 LAT 자료가 지구상의 위치를 나타낸다고 이해할 수 있다. 이러한 이해는 강력한 추정을 허용한다. (예를 들어, 어떠한 한 순간에 위도 45도에 객체를 위치시키고 2초 후에 위도 15도에 객체를 위치시키는 데이터세트가 예상된다고 이해될 수 있다.) 시맨틱 웹 기술들은 스마트폰들이 환경적인 정보와 이러한 형식으로 제공된 다른 데이터에 기초하여 추리할 수 있게 한다.
감지된 환경 트리플들은 그래프 형식으로 저장될 수 있고, 센서는 그 자신과 그의 출력 데이터에 대한 진술(assertion)들의 집합을 생성한다. 하나의 이러한 그래프(트리)가 도 15에 도시된다.
상이한 이름-공간들이 데이터 충돌들을 감소시키기 위하여 상이한 센서들에 의해 사용될 수 있다. 개별적인 이름들이 각 트리플 진술에 반영될 수 있는데, 예를 들면:
{ImageSensor3DF12_ImageTime=2011040118060103_Pixel(0,0); HasRedValue: 45}
{ImageSensor3DF12_ImageTime=2011040118060103_Pixel(0,0); HasGreenValue: 32}
등이다.
대안적으로, 트리 구조는 루트 또는 다른 기본적인 노드에 유일한 이름-공간 식별자를 포함할 수 있고(도 15에서와 같이), 이후 다른 노드들은 이후 추론에 의해 그렇게 라벨될 수 있다. 트리들은 데이터를 조직하는 구성체로서 긴 이력을 가지며, 트리 관련 기술들(예를 들면, 분류, 가지치기, 메모리 최적화, 등)의 풍부한 수집이 적용될 수 있다.
블랙보드 데이터 구조가 RDF 트리플들을 위한 데이터베이스의 역할을 할 수 있다. 극단적인 경우에, 캡처된 이미지의 모든 픽셀 위치가 하나 이상의 트리플들로 표현된다. 특별한 구현에서, 센서 시스템들은 그들의 데이터를 트리플들의 스트림들로 출력하도록 구성된다.
트리플들의 서술어들은, 그들자체로, 다른 트리플들의 주어들이 될 수 있다. 예를 들어, "HasRedValue"는 위의 예의 서술어지만, 또한 {HasRedValue; IsAttributeOf; Image}와 같은 트리플의 주어가 될 수 있다. 데이터가 블랙보드로 스트림됨에 따라, 합병 동작들이 데이터 타입들의 이러한 이해에 의해 수행 가능하게 될 수 있다.
출원 12/797,503에서 상세히 설명된 바와 같은 인식 대행자들은 이러한 데이터 트리플들을 그들의 동작을 트리거하거나 또는 중지시키기 위하여 사용할 수 있다. 예를 들어, 들어오는 픽셀 트리플들이 어두운 경우, 이후 광학적 인식 대행자들(예를 들면, 바코드 판독기, 워터마크 디코더, OCR 엔진)은 실행되지 않는다. 미세한 방식으로 데이터를 표현하는 것(예를 들면, 특별한 픽셀 값들을 진술하는 트리플들의 레벨로 내려가는 것)은 인식 대행자들의 유사하게 미세한 제어를 허용한다.
더 높은 레벨의 정밀도에서, 트리플은 포인터를 이미지 프레임 내의 중심이 16x16 픽셀 블록과 같은, 픽셀들의 집합을 포함하는 메모리로 제공할 수 있다. 더 높아질수록, 트리플은 포인터를 이미지의 프레임을 저장하는 메모리 위치로 제공할 수 있다. 이러한 메모리 위치에서의 이미지에 대한 진술들은 예를 들면, 그의 크기(예를 들면, 640 x 480 픽셀들), 그의 색상 표현(예를 들면, YUV), 그의 캡처 시간, 그가 캡처되는 센서, 그가 캡처되는 위치, 등을 상세히 설명하는 일련의 트리플들을 통하여 만들어질 수 있다.
시스템 프로세서는 이후 저장된 진술들을 사용하여 이미지 상에서 행동을 취할 수 있다. 예를 들어, 그는 특별한 위치로부터 캡처된, 또는 특별한 시간에 캡처된 이미지의 프레임을 위치시키도록 사용자로부터의- 또는 다른 시스템 프로세서로부터의- 질의에 응답할 수 있다. 시스템은 이후 그렇게 식별된 이미지의 프레임 상에서 동작(예를 들면, 객체 인식)을 수행할 수 있다. 다른 예에서, 시스템은 저장된 RDF 데이터로부터의 색상 표현의 그의 형태의 지식을 부분적으로 이용하여 프레임의 평균 휘도를 어떻게 계산하는지 구분할 수 있다. (YUV 이미지에서, Y는 휘도를 나타내며, 따라서 프레임의 모든 픽셀들에 걸친 Y를 평균화하는 것이 평균 휘도를 산출한다. 반대로, RGB 이미지에서, 각 픽셀의 휘도는 R, G, 및 B 값들의 가중된 합이며; 이렇게 가중된 합들은 이후 평균 휘도를 얻기 위해 프레임들에 걸쳐 평균될 수 있다.)
소프트웨어(예를 들면, 위에서 상세히 설명된 미들웨어 방식들을 갖는, 출원 12/797,503의 ICP 상태 머신)는 상이한 인식 대행자들에 유용한 입력 데이터의 타입들을 고려할 수 있고, 환경에 따라 상이한 시간들에서 상이한 타입들의 데이터를 출력하도록 센서 시스템들을 구성할 수 있다.
예를 들어, 환경은 바코드 판독 대행자와 워터마크 디코딩 대행자가 모두 활성화되어야 함을 나타낼 수 있다. (이러한 환경은, 예를 들면, 소매 상점의 지리적 위치와; 임계치를 넘는 주변 조도, 및 사용자의 손에 쥐어진 스마트폰을 포함할 수 있다.) 바코드 판독기는 휘도 데이터를 선호할 수 있지만, 덜 바람직하게는 RGB 데이터를 사용하여 그로부터 휘도를 도출할 수 있다. 워터마크 디코더는 전체 색상 이미지를 요청할 것이지만, 그것이 RGB, YUV, 또는 일부 다른 포맷으로 제공되어도 상관하지 않는다. 시스템 소프트웨어는 상이한 인식 대행자들의 상이한 요청들 및 선호들을 가중하여, 이에 따라 센서 시스템을 구성할 수 있다. (일부 실시예들에서, 미들웨어는, 예를 들면, 가능한 데이터 타입들의 선호도 점수가 매겨진 리스트들을 요청하고, 상이한 조합들을 점수매기고, 결과적인 상이한 점수들에 기초하여 선택하는, 상이한 대행자들 사이의 협상 프록시의 역할을 한다.)
방금 언급된 케이스에서, 이러한 데이터는 워커마크 디코더에 대해 매우 적절하고, Y 채널(휘도) 데이터가 바코드 판독기에 의해 직접 사용될 수 있으므로, 소프트웨어는 센서 시스템이 YUV 데이터를 출력하도록 지시한다.
물리적 센서들에 부가하여, 스마트폰들은 논리적 센서들을 갖는 것으로 간주될 수 있다. 논리적 센서들은 환경 데이터를 소비하고, 또한 환경 데이터를 생성할 수 있으며, 전형적으로는 스마트폰 상에서, 또는 클라우드에서 소프트웨어 프로세스들을 포함할 수 있다. 예들은 빠른 단계 인식을 수행하는 코드(예를 들면, 여기에 관련됨을 나타내는 픽셀들의 블랍이 있다; 여기에 원형이 있다)로부터, 사용자의 현재 활동을 보고하는 최대한의 추론 유도된 센서들(예를 들면, 토니가 걷고 있다, 등)까지, 넓은 색역을 수행한다.
이러한 환경 데이터는 다시, 논리적 센서가 주어에 대한 하나 이상의 진술들을 생성하는 간단한 그래프로 저장될 수 있다(예를 들면, 주어=Smartphone_Owner_Tony; 서술어=Engaged_in_Activity; 목적어=Walking). SPARQL이 상세하게 설명된 질의들이 유지되는 것이 가능하게 하는, 데이터베이스의 트리플들을 액세스하도록 사용될 수 있다.
논리적 센서들은 자연적으로, 스마트폰 센서 데이터와 다른 데이터와 그의 파생물들을 입력들로서 사용할 수 있다. 예를 들어, 환경의 센서들은 입력의 소스들일 수 있다. 사용자 캘린더 데이터 또는 이메일 데이터가 또한 사용될 수 있다. (사용자가 모임에 참석하게 될 시간에 감지된 소리 또는 시청된 객체는 다른 모임 참석자(들)의 존재로 발생하는 것이라고 나타내질 수 있다.) 소셜 미디어 네트워크들로부터 얻어진 정보(예를 들면, 페이스북이나 링크드인(LinkedIn) 웹 API를 통해)는 논리적 센서로의 입력과 같이 유사하게 제공될 수 있으며, RDF 출력 트리플에 반영될 수 있다.
출원 12/797,503에서 상세히 설명된 인식 대행자들은 특별한 애플리케이션들의 지지로 특정한 콘텐트/객체 타입들을 인식하기 위하여 상태 머신들과, 연관된 알고리즘들을 구현할 수 있다. 애플리케이션들은 목적-지향적인(goal-driven) 사용 모델들을 표현한다. 그들은 하나 이상의 인식 대행자들의 영향력에 의해, 특정 태스크들을 수행하기 위해 직관적(intuitive) 계산 플랫폼과 인터페이스한다. 예를 들어, 워터마크를 디코드하고, 노래를 인식하고; 바코드를 판독한다. (출원 12/797,503에서 상세히 설명된 직관적 계산 플랫폼은 어떻게 그들의 태스크들을 더욱 잘 완수하는지에 대하여 지역 및 클라우드에서 소프트웨어 대행자들에게 알려줄 수 있는 환경을 생성하도록 센서들을 사용한다.)
본 기술의 특별한 구현은 RDF API, 판독/기록 RDF/XML, N3, 및 N개의 트리플들, OWL API, 및 SPARQL 질의 엔진을 제공하는 (원래는 휴렛 패커드(Hewlett-Packard)에 의해 개발된) 시맨틱 웹 애플리케이션들을 위한 오픈 소스 자바 프레임워크인 제나(Jena)를 채용한다. 이동 핸드셋들을 위한 제나의 하나의 적응형은 밀란(Milan)의 폴리테크닉(Polytechnic)의 마이크로 제나(μ-Jena)이다. (대안의 구현들은 안드로제나(Androjena) 또는 모바일(Mobile) RDF를 사용할 수 있다.)
출원 12/797,503에서 상세히 설명된 직관적 계산 플랫폼은 애플리케이션으로부터 인식 대행자들로의 트래픽을 관리하고, 논리적 및 물리적 센서들 모두의 리소스 경합을 중재한다. 블랙보드 데이터 구조가 이러한 프로세스간 통신을 가능하게 하고 시스템 상태들(예를 들면, 배터리 상태)에 대한 정보를 유지하도록 사용될 수 있다.
블랙보드를 통한 프로세스간 통신의 예는 캡처된 이미지에서 부적당한 휘도를 감지하고, 스마트폰의 손전등이 켜지길 원하는 워터마크 디코더이다. 이는 트리플을 이러한 행동을 요청하는 (OS 시스템을 호출하는 대신) 블랙보드로 전송할 수 있다. 하나의 이러한 트리플은 다음과 같을 수 있다:
{Torch; Queued_Request;On}
다른 것은 다음과 같을 수 있다
{WM_Decoder; Requests; Torch_On}
손전등 제어 프로세스(또는 다른 프로세스)는 이러한 트리플들에 대한 블랙보드를 모니터링할 수 있으며, 동일 발생시 손전등을 켠다. 또는, 배터리 전력이 낮을 경우, 이러한 프로세스가 둘 이상의 인식 대행자들이 밝아질 손전등을 기다릴 때까지 (또는 급한 다른 표시가 발견될 때까지) 대기할 수 있고, 그 후에야 손전등을 켠다.
워터마크 디코더는 손전등에 전원이 공급된다는 것을 나타내는 트리플에 대해 블랙보드를 검색하는 SPARQL 질의에 의해 손전등이 켜졌다는 것을 검출할 수 있다. 이러한 질의는 토치가 밝아질 때 응답을 리턴하고, 워터마크 디코딩 대행자의 블로킹을 풀며, 그의 실행을 완성하는 것을 허용한다.
위치는 환경 정보의 다른 중요한 소스이며(위에서 나타낸 바와 같이), RDF 트리플들에 대해 유사하게 표현될 수 있다. 위키피디아, 지오네임스(GeoNames)로부터의 정보의 링크된 데이터 표현인 디비피디아(DBpedia)는 이러한 데이터에 대한 많은 소스들 가운데에 있다. 전화 센서 데이터(GPS)는 대응하는 텍스트적 지리 라벨들을 얻기 위하여, 지오네임스 또는 디비피디아 서비스들로 적용될 수 있다.
환경 데이터는 사용자의 자신의 스마트폰으로부터 유도될 필요가 없다. 예를 들면, 동일한 현장 및 시간 주기에 있는 그들의 이동 장치들을 이용하여 다른 것들에 의해 수집된/기부된 낮은 단계의 센서 정보(트리플들)가 또한 사용될 수 있다(적절한 사생활 보호들을 위하여). 정부 단체들, 등에 의해 유지된 도로 카메라들과 같은 인근의 정지 센서들로부터의 데이터도 마찬가지이다. (동일한 현장은, 그 자체로 상황/애플리케이션 의존적이며, 예를 들면, 100m, 1km 또는 10km와 같은 임계 거리 내; 마을 또는 도시와 같은 동일한 지리적 엔티티 내; 등을 포함할 수 있다. 유사하게, 시간 근접성이 지난 10초, 10분, 1시간, 등의 내에서 수집된 데이터와 같이 임계치로 경계 지어질 수 있다). 이러한 정보는 지역적 블랙보드로 바로 통합될 수 있어서 디바이스 대행자들이 정보 상에서 동작할 수 있다. 이미지에 부가하여, 이러한 데이터는 위치, 등을 식별하는데 도움을 줄 수 있는 영역, 등에서 사용가능한 오디오, 무선 신호들의 샘플들을 포함할 수 있다. 이러한 데이터 공유에 대한 "오픈 월드(open world)" 방식은 스마트폰 플랫폼이 상황을 이해하는데 큰 도움을 줄 수 있다.
앞의 내용이 링크된 데이터 방식의 환경과 센서 데이터의 표현에 초점을 맞추었다면, 다른 스마트폰 데이터가 유사하게 이득을 얻을 수 있다.
예를 들어, 출원 13/079,327에서, 출원인들은 어떻게 프린트된 텍스트에서 머신 판독가능한 데이터가 감지되고 연관된 정보인, "툴 팁(tool tip)" 팝업 텍스트들과 관련 정보의 확대된 저장들로의 링크를 위해 사용될 수 있는지에 대해 상세히 설명하였다. 예를 들어, 카메라폰으로의 광고로 분류된 신문의 페이지를 스캐닝할 때, 스마트폰 디스플레이는 전화가 그들을 지나갈 때 광고들의 짧은 개요들(예를 들면, "1967 머스탱(Mustang)")을 제공할 수 있다. 읽히는 특별한 신문이 환경 정보이면, 발행 정보의 식별은 페이지로부터 디코딩된 제 1 워터마크 페이로드로부터 추론된다. 이러한 환경에서, 전체 신문에 대한 적절한 팝업 텍스트들이 원격 데이터 저장소로부터 꺼내져서 나중의 사용을 위해 전화기 상에 캐시된다(cached). 이러한 팝 업 텍스트들이 트리플들의 형태(예를 들면, {Watermark 14DA3; HasPopUpText; 1967 Mustang})로 전송되거나 및/또는 저장될 수 있다.
스마트폰 애플리케이션들의 링크된 데이터의 다른 구현이 Zander et al, "Context-Driven RDF Data Replication on Mobile Devices," Proc. Of the 6th Int'l Conf. on Semantic Systems, 2010에서 상세히 설명된다. Zander의 논문이 원격 소스들로부터 이동 장치들로의 구조화된 시맨틱 웹 데이터의 상황 정보 응답에 관한 것이지만, 지역적 소프트웨어 대행자들에 의한 사용을 위하여, 상세하게 설명된 시스템들은 스마트폰들의 링크된 데이터 사용의 다른 양태들을 예시한다. Zander의 논문으로부터의 특성들 및 상세한 설명들이 출원인들의 발명 작업에 응용될 수 있으며, 그 반대도 그러하다.
RDF 관련 기술에 관한 출원 12/797,503으로부터 발췌된 내용들은 다음과 같다:
링크된 데이터
본 기술의 다른 양태에 따라, 데이터 및 자원들의 웹 2.0 개념들(예를 들면, 링크된 데이터(Linked Data)와 함께)이 유형 객체들 및 관련된 키벡터 데이터와, 연관된 정보에 사용된다.
링크된 데이터는 웹 상의 역참조가능한(de-referenceable) URI들을 통해 데이터를 노출시키고, 공유하며 연결하기 위해 Sir Tim Berners Lee에 의해 장려된 방식들을 말한다. (예를 들면, T. B. Lee, Linked Data, www.w3.org/ DesignIssues/LinkedData.html을 참조하라.)
간단히, URI들이 유형 객체들 및 연관된 데이터 객체들을 식별하는데 사용된다. HTTP URI들이 사용되어 이러한 객체들이 사람들과 사용자 대행자들에 의해 참조되고 검색될 수 있다("역참조(de-referenced)될 수 있다"). 유형 객체가 역참조될 때, 유형 객체에 대한 유용한 정보(예를 들면, 구조화된 메타데이터)가 제공된다. 이러한 유용한 정보는 바람직하게, 다른 관련된 정보와 유형 객체들의 발견을 개선하기 위해 다른, 관련 URI들로의 링크들을 포함한다.
RDF(Resource Description Framework)는 일반적으로 자원들에 대한 정보를 표현하기 위해 사용된다. RDF는 주어, 서술어 및 목적어로 구성된 다수의 트리플들로서 자원(예를 들면, 유형 객체)을 설명한다. 이러한 트리플들이 때때로 진술(assertion)들로 불린다.
트리플의 주어는 설명된 자원의 URI 식별이다. 서술어는 주어와 목적어 사이에 어떤 종류의 관계가 존재하는지를 나타낸다. 서술어는 일반적으로 또한, 특별한 도메인에 관한 표준화된 단어로부터 얻어진 URI이다. 목적어는 문자 값(예를 들면, 이름 또는 형용사)일 수 있거나, 또는 주어와 다소 관련되는 다른 자원의 URI일 수 있다.
상이한 지식 표현 언어들이 유형 객체들, 및 연관된 데이터에 대한 온톨로지들을 표현하도록 사용될 수 있다. OWL(Web Ontology language)는 하나이며, RDF 스키마와의 호환성을 제공하는 시맨틱 모델을 이용한다. SPARQL은 RDF 표현들과 사용하기 위한 질의 언어이며, 질의가 결합들, 분리들, 및 선택적 패턴들과 함께 트리플 패턴들로 구성되는 것을 허용한다.
본 기술의 이러한 양태에 따라, 이동 장치들에 의해 캡처되고 생성된 데이터의 아이템들이 각각 유일하고 영구적인 식별자로 할당된다. 이러한 데이터는 기초 키벡터들, 분할된 모양들, 인식된 객체들, 이러한 아이템들로부터 얻어진 정보, 등을 포함한다. 이러한 데이터의 각각은 클라우드 기반 등록 시스템에 속하며, 이들은 또한 관련 라우팅 기능들을 지원한다. (데이터 객체들은 그들 자체가 또한 긴 시간동안의 저장을 위해 클라우드로 푸시될 수 있다.) 데이터에 대한 관련된 진술들이 이동 장치로부터 저장소로 제공된다. 따라서, 지역적 디바이스로 알려진 각 데이터 객체는 클라우드의 데이터를 통해 설명된다.
사용자는 카메라를 집어들어 이미지를 캡처할 수 있다. 이러한 행동을 통해 모아지고, 처리되고 및/또는 식별된 모든 객체들(및 관련된 데이터)가 식별자들에 할당받고, 클라우드에서 영속한다. 하루 또는 일 년 후에, 다른 사용자가 이러한 객체들에 대한 진술들(예를 들면, 나무가 떡갈나무라는 것, 등)을 생성할 수 있다. 특별한 장소, 특별한 시간에서의 빠른 카메라 돌림(glance)이라도 클라우드에 무한정 기념될 수 있다. 이러한 기본적인 클라우드 기반 형태의 이러한 콘텐트는 협업을 위한 조직 구성체일 수 있다.
데이터의 이름을 짓는 것은 클라우드 기반 시스템에 의해 할당된다. (클라우드 기반 시스템은 할당된 이름들을 근원이 되는 이동 장치로 다시 보고할 수 있다.) 이동 장치에 알려진 데이터를 식별하는 정보(예를 들면, 위에서 언급된, 군집(clump) ID, 또는 UID)는 클라우드 기반 등록소에 제공될 수 있으며, 데이터에 대한 다른 진술으로 클라우드에 기념될 수 있다.
클라우드 기반 등록소에 의해 유지된 데이터의 부분도는 다음을 포함할 수 있다:
Figure 112013049341469-pct00004
따라서, 이러한 양태에서, 이동 장치는 이동 장치가 처리하는 데이터의 각 아이템 및/또는 그의 카메라의 시야에서 발견된 각각의 물리적 객체 또는 특성에게, 클라우드 기반 등록소가 복수의 소프트웨어 객체들(예를 들면, RDF 트리플들)을 설명하는 것을 허용하는 데이터를 제공한다. 다양한 진술들이 각각에 대하여 생성될 수 있다(나는 캐니(Canny) 데이터이다; 나는 어떠한 장소와 시간에서 캡처된 이미지에 기초한다; 나는 위도 X, 경도 Y로부터 북쪽으로 보여지는 매우 잘 조직된, 청색의 객체이다, 등)
중요하게, 이러한 특성들은 다른 디바이스들에 의해 보내진 데이터와 링크될 수 있으며, 이들은 사용가능한 이미지 데이터와 환경만으로는 사용자의 디바이스에 의해 인식할 수 없는 새로운 정보의 취득과 발견을 허용한다.
예를 들어, 존(Jhon)의 전화는 건물과 같은 모양을 인식할 수 있지만, 그의 거리 주소를 구분하거나 또는 그의 임차인들은 알 수 없다. 그러나, 제인(Jane)은 그 건물에서 일할 수 있다. 그녀의 특별한 환경과 이력으로 인해, 빌딩 관련 이미지 데이터와 함께 그녀의 전화가 미리 저장소에 제공한 정보는 그의 주소와 일부 임차인들에 대한 정보를 포함하여, 건물에 대한 정보를 더 풍부하게 할 수 있다. 지리위치 정보와 모양 정보의 유사성들에 의해, 제인의 전화가 정보를 제공한 건물은 존의 전화가 정보를 제공한 건물과 동일할 수 있다는 것이 식별될 수 있다. (새로운 진술이 클라우드 저장소에 부가될 수 있으며, 제인의 빌딩 진술들이 존의 것과 정확하게 관련되며, 그 반대도 동일하다.) 존의 전화가 등록소에게 그렇게 하도록 요청하였다면(그리고 관련 사생활 보호가 승인한다면), 등록소는 존의 전화에 제인의 전화에 의해 제공된 건물에 대한 진술들을 보낼 수 있다. 이러한 작업에서 기초가 되는 메커니즘은 중재된 크라우드 소싱으로 여겨질 수 있으며, 진술들이 참가자들이 또한 가입하는 정책과 사업 규칙 프레임워크 내에서 생성된다.
그들과 연관된 진술들의 풍부한 세트를 갖는 위치들(예를 들면, 장소, 및 선택적으로 또한 시간에 의해 결정된)이 새로운 발견 경험들에 제공된다. 이동 장치는 링크된 데이터 내에서 또는 다른 데이터 저장소에서 검색 또는 발견 경험을 시작하기 위한 입력점으로서 GPS 위치와 현재 시간과 같은 단순한 진술을 제공할 수 있다.
클라우드에서의 진술들의 액세스 또는 네비게이션은 이동 장치 상의 센서들에 의해 영향을 받을 수 있다는 것이 또한 주의되어야 한다. 예를 들어, 존은 그가 GPS 또는 다른 센서들에 의해 결정된 건물에 가까운 일정한 범주(예를 들면, 10m, 30m, 100m, 300m, 등) 내에 있을 때에만 건물에 관한 제인의 진술들에 링크하는 것이 승인될 수 있다. 이는 또한 존이 정지해 있길 원하거나, GPS, 가속도계들/자이로스코프들 또는 다른 센서들에 의해 결정된 걷기 속도로 움직이길 원하는 경우(예를 들면, 분당 100 피트, 또는 300 피트 이하)로 제한될 수 있다. 이동 장치의 센서들로부터의 데이터에 기초된 이러한 제약들은 원치않거나 관련성이 적은 진술들(예를 들면, 광고와 같은 스팸)을 감소시킬 수 있으며, 먼 곳이나 차를 타고 가면서(또는 날아가면서) 데이터를 가져가는 것에 대해 어느 정도의 보안을 제공할 수 있다. (GPS 또는 다른 센서 데이터의 위장과 싸우기 위해 다양한 방식들이 채용될 수 있다.)
유사하게, 클라우드에 저장된 진술들은 두 개의 포함된 집단들이 지리위치상의 근접성, 시간, 소셜 네트워크 연결, 등과 같은 일부 특성을 공유할 때에만 액세스될 수 있다(또는 대상들에 대한 새로운 진술들이 만들어질 수 있다). (후자는 존이 제인과 예를 들면, 친구들로서 사회적으로 연결된다는 것을 보여주는, 페이스북이나 링크드인과 같은 소셜 네트워크 데이터 스토어를 참조하는 것에 의해 입증될 수 있다.) 지리위치와 시간의 이러한 이용은 사회적 관습들과 유사한데, 즉, 사람들의 큰 그룹들이 모일 때, 발생하는 자발적인 상호작용은 그룹의 구성원들이 공통의 관심, 특성, 등을 갖고 있는 확률이 높다는 점에서 보람있는 것일 수 있다. 액세스하고 보낼 수 있는 능력, 진술들, 및 다른 것들의 존재에 기초한 새로운 발견 경험들의 실시가능은 이러한 모델을 따른다.
위치는 이미지 데이터의 세트들이 관련되는 빈번한 단서이다. 다른 것들이 또한 사용될 수 있다.
코끼리 연구원을 고려해보자. 알려진 코끼리들(예를 들면, 보호 중인)은 (흉터들, 주름들 및 상아들을 포함하는) 얼굴 특성들에 의해 일반적으로 이름이 붙여지고 식별된다. 연구원의 스마트폰은 코끼리에 대한 얼굴 특성 벡터들을, 얼굴 특성 벡터들을 코끼리의 이름과 연관시키기 위해 존재하는 대학교의 데이터베이스에 제출할 수 있다. 그러나 이러한 얼굴 벡터 정보가 클라우드 기반 저장소로 제출될 때, 정보의 더 큰 풍성함, 예를 들면, 이전에 보았던 날짜들과 장소들, 코끼리를 보았던 다른 연구원들의 이름들, 등이 드러날 수 있다. 다시, 데이터 세트들 사이의 대응이 한번 구분되면, 이러한 사실은 다른 진술들의 등록소로의 부가에 의해 기념될 수 있다.
이동 장치의 카메라들, 마이크로폰들 및 다른 센서들에 의해 감지된 자극에 대한 진술들의 이러한 클라우드 기반 저장소들은, 특히 다른 링크된 데이터 시스템들의 정보와 관련될 때, 세계적으로 유용한 정보의 엄청난 스토어들을 빠르게 포함할 것임이 인식될 것이다(일부가 linkeddata.org에 상세히 설명된다). 저장된 진술들에 의해 표현된 이해가 그의 디바이스가 이러한 정보에 기여하는 개별적 사용자들의 프로파일들과 이력들을 일부 반영하므로, 지식 기반이 특히 풍부해진다. (비교해보면 웹의 구글의 인덱스는 초라해 보일 수 있다.)
(유형 객체들의 식별과 함께, 잠재적으로 유용한 단어가 AKT(Advanced Knowledge Technologies) 온톨로지이다. 이는 그의 최상 레벨로서 클래스 "물체(Thing)"를 가지며, 그 아래에 다음의 두개의 서브클래스들을 갖는다: "유형 물체(Tangible-Thing)"와 "무형 물체(Intangible-Thing)". "유형 물체(Tangible-Thing)"는 소프트웨어로부터 원자보다 작은 입자들까지, 실제와 가상 모두의 모든 것을 포함한다(예를 들면, 미키 마우스의 자동차). "유형 물체(Tangible-Thing)"는 "위치(Location)", "지리적 영역(Geographical-Region)", "사람(Person)", "운송 디바이스(Transportation-Device)", 및 "정보 생성 객체(Information-Bearing-Object)"를 포함하는 서브클래스들을 갖는다. 이러한 단어는 본 기술과 만날 것으로 예상되는 객체들에 대한 식별을 제공하기 위해 확대될 수 있다.)
혼합된 도메인 디스플레이들
본 기술의 다른 양태에 따라, 스마트폰은 카메라에 의해 캡처된 자연의 이미지뿐만 아니라, 카메라에 캡처된 이미지에 기초한 변환 도메인 정보(예를 들면, 공간 주파수, 또는 푸리에, 도메인) 모두를 포함하는 디스플레이를 제공한다.
2010년 5월 5일 출원된 출원 12/774,512는 스테가노그래픽 워터마크 검출기가 워터마크가 존재하는지를 결정하는 것을 돕기 위해 이미지로 인코딩될 수 있는 예시적인 기준 신호들을 상세히 설명한다. 상세히 설명된 기준 신호들은 충분히 높은 주파수들에서, 색차를 가지고 공간 주파수 도메인으로 인코딩되어 그들이 일상적으로 보는 사람에게는 인지되지 않게 한다.
본 기술의 실시예들은 이러한 변환 도메인 기반 정보를 보는 사람에게 드러낸다.
도 11은 수평축에 의해 표현된 실수 성분들과 수직 축에 의해 표현된 허수 성분들을 갖는(소위 "u,v" 평면), 프린트된 주요 이미지에 부가되는 기준 신호(210)의 예시적인 공간 주파수 도메인 뷰를 도시한다. 예시된 기준 신호는 사람들이 감지하기에는 너무 높지만, 스마트폰 카메라의 이미지 센서에 의해 생성된 데이터에서는 검출가능한 주파수들의 공간 도메인 임펄스들의 5각형 무리들(212)(즉, 원점에서 떨어진)을 포함한다. (호스트 이미지의 대응하는 공간 주파수 도메인 뷰는 도시되지 않았으나, 전형적으로 u,v 평면에 걸쳐 산란되지만, 수평 및 수직 축들을 따라 대부분 집중된 신호를 포함할 수 있다.)
도 11의 도면에서, 마커들(215)이 원(215) 위에 집중된다. 사람의 시력의 제한이 작은 원(217)에 의해 도시된다. 원(217)의 외부에 공간 주파수 성분들로 구성된 특성들(예를 들면, 마커들(212))은 보는 사람들에게 구분되기에는 주파수가 너무 높다. (마커들(212)의 공간 주파수가 낮아진다면, 그들은 미세한 헤링본 무늬와 유사한 픽셀 패턴에 대응할 것이다. 그러나, 더 높은 주파수들에서, 눈은 직물 패턴을 구별할 수 없다. 오히려, 직물 패턴은 명확한 평탄함으로 디졸브(dissove)된다.)
4개의 5각형 마커 무리들(212)이 도시되었으나, 물론 더 적거나 더 많은 수가 또한 사용될 수 있다. 유사하게, 마커들은 형태가 5각형일 필요는 없다.
스마트폰 카메라가 기준 패턴(210)을 검출할 때, 그는 따라서 카메라와 프린트된 객체 사이의 상대적인 거리와, 객체에 대한 카메라의 임의의 회전 및 기울기를 구분할 수 있다. 예를 들어, 카메라가 객체에 가까이 움직이면, 확대된 이미지 성분들이 더 낮은 성분 공간 주파수들을 갖는 것으로 감지된다. 따라서, 5각형 마커들이 원점에 더 가까이 움직인다. (주요 이미지에서 기준 신호가 원래 인코딩된 방향에 상대적으로) 카메라가 회전하면, 5각형 마커들이 유사하게 회전되어 나타난다. 카메라가 기울어지고 따라서 프린트된 이미지의 일부가 프린트된 이미지의 다른 부분들보다 센서에 더 가까워지면, 5각형의 패턴이 비뚤어진다. (더이상 그들의 중심들(214)이 u,v 원점을 중심으로 하는 원(215) 상에 위치되지 않으며; 대신 타원 상에 위치된다.)
도 12는 예시적인 스마트폰 디스플레이(220)를 도시한다. 이러한 예시에서, 스마트폰은 시리얼 상자의 일부를 찍고 있으며, 그의 아트워크(222)가 스크린의 대부분을 점유한다. 스크린 위에 중첩되는 것은 상부의 두개의 5각형 기준 마커들을 포함하는, 검출된 기준 신호의 절반평면의 묘사이다. 도시된 디스플레이는 또한 원형의 점선들로 그려진 두개의 고정된 타겟 영역들(224)을 포함한다. 전화를 시리얼 상자를 향하여 또는 그로부터 멀어지게 움직이고, 필요에 따라 기울이고/회전시키는 것에 의해, 사용자는 5각형 마커들(212)이 두개의 타겟 영역들(224)로 움직이게 할 수 있다. 이러한 위치에서, 시리얼 상자로부터 워터마크 신호의 판독이 최적화된다. 스마트폰은 즉시 워터마크를 판독할 것이고(마커들이 타겟 영역들에 배열되기 전일 가능성이 크다), 전화는 검출된 데이터에 응답하여 대응하는 행동을 취할 것이다.
바람직하게, 변환 도메인 오버레이는 검출된 기준 신호의 강도에 따라 변화하는 가시성(강도)으로 표현된다. 기준 신호가 검출되지 않는다면(예를 들어, 패턴 검출기에 의한 검출 매트릭 출력에 의해), 오버레이가 표현되지 않는다. 신호들이 강해질수록, 오버레이 마커 신호들은 배경 이미지(222)와 비교하여 더 큰 대조로 표현된다. 일부 실시예들에서, 마커들은 검출된 기준 신호의 강도에 의존하여, 색차 또는 광도가 변하는 배색으로 표현된다.
하나의 특정 구현에서, 캡처된 이미지의 공간 주파수 표현이 임계에 다다르고, 따라서 임계값보다 낮은 임의의 공간 주파수 성분은 디스플레이되지 않는다. 이는 캡처된 시리얼 상자 아트워크(222)의 푸리에 도메인 표현에 의해 디스플레이가 열화되는 것을 방지한다. 대신, 오버레이된 신호만이 마커 신호들에 대응한다.
유사하게, 공간 주파수 데이터는 스펙트럼에서 고역 필터링될 수 있으며, 따라서 임계 공간 주파수(예를 들면, 도 11의 원형(217)에 의해 나타내진 공간 주파수)보다 높은 이미지 성분들만이 도시된다.
원형의 타겟 영역들(224)은 필수적인 것이 아니다. 다른 시각적 가이드들이 표현될 수 있으며, 또는 그들이 전체적으로 생략될 수 있다. 후자의 경우에, 사용자는 마커들(224)이 평평해지도록(즉, 수평이 되도록) 전화를 위치시킬 것을 명령받을 수 있다. 변환된 데이터가 스펙트럼에서 필터링되면(앞의 단락에서 설명된 바와 같이), 이후 사용자는 마커들이 나타날 때까지 대상을 향하여 또는 그로부터 멀리 전화기를 위치시킬 것을 명령받을 수 있다. (실제적인 실행에서, 특히 색상으로 렌더링되었을 때, 마커들(212)의 5개의 점들은 하나의 머리, 두개의 손들과 두개의 발들을 갖는 작은 요정(pixie)의 모습들과 같이 보인다. 사용자는 따라서 "픽시 사람을 찾으세요"로 명령받을 수 있다. 그들의 출현은 각 마커의 5개의 성분 요소들에 상이한 색상들을 부여하고, 시간에 따라 색상들을 변화시킴으로써 특히 두드러지게 만들 수 있으며, 시선을 끌거나 빛나게 하는 효과를 낼 수 있다.
도 12에 도시된 특별한 실시예에서, 공간 주파수 정보가 사각형 상자(226)에 도시된다. 공간 주파수 정보에 대한 프레임으로의 기능에 더하여, 이 상자는 또한 변환 도메인 분석이 수행되는 아트워크(222) 내의 픽셀들의 사각형 서브 영역을 규정하도록 기능한다. 즉, 이미지의 전체 프레임을 푸리에 도메인으로 변환하는 대신, 단지 상자(226) 내의 이러한 픽셀들만이 이렇게 변환된다. 이는 전화 프로세서 상의 부담을 감소시킨다. (상자(226)는 프로세서가 그의 주의를 집중하는 픽셀들의 서브 영역인 중심(fovea) 영역으로 간주되어 사용자가 전화기를 최적으로 위치시키는 것을 도울 수 있다.) 영역(226)의 픽셀들의 휘도는 영역을 사용자에게 더욱 하이라이트하기 위하여 약간 증가되거나 또는 감소될 수 있다.
워터마크- 큐잉 패턴들
디지털 워터마크들은 일반적으로 감지되지 않는다. 그들은 임의의 시각적 변화를 나타내지 않는 미세한 아트워크와 다른 그래픽들로 인코딩될 수 있기 때문에 바람직하다. 그러나, 이러한 장점은 연관된 단점을 갖는데; 인코딩된 데이터의 잠재적 사용자들이 워터마크된 데이터가 존재하는지의 여부를 확신할 수 없다는 것이다.
과거에, 이런 단점은 때때로 아트워크가 워터마크로 인코딩된 것임을 나타내기 위하여, 인코딩된 시각적 아트워크의 모서리에 프린트된 작은 시각적 로고의 사용에 의해 해결되었다.
본 기술의 다른 양태에 따라, 디지털로 워터마크된 정보의 존재가 시각적 워터마크 패턴이 미묘하게 보일 수 있게 만드는 것에 의해 시각적으로 지시될 수 있다.
앞의 섹션에서 언급된 바와 같이, 워터마크를 포함하는 공간 주파수 요소들이 주파수가 충분히 낮은 경우, 그들은 직물과 유사한 패턴을 생성한다(예를 들면, 규칙적인 5각형 마커들의 경우에 헤링본 무늬). 일부 응용들에서, 이러한 위빙된 배경 패턴은 부당하지 않다. 배경 패턴들은 많은 환경들에서 친숙하다(예를 들면, 프린트된 은행 수표들). 따라서 화려한 사진들을 포함하지 않는 문서들의 경우에 특히, 문서의 이용을 손상시키지 않으면서 패턴이 삽입될 수 있다.
사용자들은 시간이 지남에 따라 연관된 데이터의 존재를 분명히 나타내는 어떠한 반복 패턴들을 인식하도록 학습하거나 훈련될 수 있다. (예를 들면, 온라인 문서에서 파란색의 밑줄이 있는 텍스트의 존재가 어떻게 대부분의 사용자들에게 하이퍼링크를 의미하는 것으로 친숙하게 되었는지를 고려해보자.) 스마트폰 기반 시스템들은 이러한 독특한 패턴들의 이미지를 캡처하고, 워터마크된 정보를 디코딩하며, 대응하는 행동(들)을 취하도록 사용될 수 있다.
하나의 특별한 실시예에서, 이러한 워터마크는 사람의 시력의 범위 내(즉, 도 11의 내부 원(217))에 있는 공간 주파수 성분들의 제 1 세트와, 사람의 시력의 범위 밖(즉, 도 11의 외부 원(217))에 있는 공간 주파수 성분들의 제 2 세트를 포함한다. 전자는, 종이에 펄프 섬유들의 분포에 기초한 랜덤 패턴을 포함하는 이러한 수제 종이의 표면과 유사한 픽셀 도메인의 대응하는 패턴을 정의하기 위해 u,v 평면에 의사 랜덤하게 분포되는 성분들을 포함할 수 있다. 이러한 공간 주파수 성분들의 제 1 세트는 사용자들이 인코딩된 정보의 존재를 지시하는 것으로서 결국 인식하게 할 수 있는 특별한 패턴을 생성하는 모든 타입들의 문서들에 걸쳐 반복적으로 사용될 수 있다. (패턴의 색상은 공간 주파수 성분들을 상이한 색상 채널들로 보내는 것에 의해, 응용에 가장 잘 어울리는 것으로 변화될 수 있다.) 이러한 일관된 패턴은 (1) 워터마크의 존재를 빠르게 식별하고, 선택적으로 (2) 그의 원래 인코딩된 상태에 비하여 캡처된 이미지의 변환, 크기 조정 및/또는 회전을 결정하기 위해 스마트폰 워터마크 검출기에 의해 사용될 수 있다.
이러한 특별한 실시예에서, 공간 주파수 성분들의 제 2 세트는 워터마크 페이로드 정보의 일부 또는 전부를 전달한다. 이러한 정보는 문서마다 다르다. 그러나, 이러한 이미지 성분들이 일상적인 시청 환경들에서는 사람들에게 보이지 않으므로, 이러한 가변성은 사용자가 문서가 인코딩된 정보를 포함하는 것으로 인식하는 특별한 조직 패턴과 간섭하지 않는다.
채색과 같이, 밑줄친 텍스트는 사람들의 마음에 하이퍼링크된 정보를 연관하게 되었으며, 마찬가지로 독특한 가시적 패턴들도 디지털로 워터마크된 정보의 존재와 연관되게 되었다.
지시하는 패턴은 숨겨진 정보의 존재를 나타내기 위해 사용된 독특한 스크립트 또는 서체의 형태를 취할 수도 있다. 예를 들어, 폰트는 우측 상에 휘어지거나 꼬이거나 매듭과 같은 독특한 확장 특성을 포함하는 세리프체(serif)들을 포함할 수 있다. 또는, 인코딩된 워터마크 데이터를 포함하는 프린팅은 독특한 경계를 포함할 수 있다. 하나는 3개의 가는 선들에 의해 규정된 테를 두른 직사각형이다. 다른 것은 도 13에 도시된 것과 같이, 둘 또는 네 개의 유사한 모서리 마커들의 세트이다.
(일부 방식들에서, 이러한 경계-또는 모서리- 마킹은 원래의 물리적 매체에는 표현되지 않으나, 매체에서 인코딩된 신호(예를 들면, 도 11 또는 14의 신호)가 스마트폰 검출에 의해 트리거되는 스크린 상의 그래픽 오버레이로서 렌더링된다. 특별한 방식에서, 이러한 오버레이된 마킹의 선들은 스마트폰이 덜 최적화된 시청 포즈에 있을 때는 어느 정도 흐릿한 방식으로 렌더링되며, 사용자가 스마트폰을 더욱 최적의 시청 포즈로 움직임에 따라 점점 촛점이 맞춰지게 렌더링된다. 전화가 최적으로 위치되면(예를 들면, 워터마크된 대상의 평면 뷰로, 6 인치의 거리에서), 선들은 또렷하고 명확한 형태로 표현된다. 따라서, 전화의 소프트웨어는 거리 상의 초점에 의존하여 시청 포즈의 최적화에 대한 정보를 어떠한 사람들에게든지 다소 친숙한 시각적 패러다임으로 번환한다.
정보 표현의 층들
일부 구현들에서, 정보가 사용자에게 표현되는 3개의 개념적인 "층들"이 있을 수 있다. 이들은 시각적, 플래그, 및 링크 층들이라고 부를 수 있다.
시각적 층은 디지털 워터마크 정보가 표시되는, 사람이 인지할 수 있는 단서이다. 방금 언급된 바와 같이, 이들은 상이한 형태들을 가질 수 있다. 하나는 로고, 서체, 경계, 또는 인코딩된 정보의 존재를 나타내는 다른 프린트된 표시이다. 다른 것은 워터마킹 프로세스의 부분으로서 프린트된 콘텐트에 도입되는 가시적 아티팩트(예를 들면, 직조형 패터닝)가 있다.
플래그 층은 사용자에게 일부 초기 디지털 이미지 처리의 결과로서 표현되는 표시(전형적으로는 저장소)이다. 일 예가 위에서 설명된 "요정 인간"이다. 다른 것으로 출원 12/797,503에서 논의된 "프로토-바블들(proto-baubles)"이 있다. 다른 것들이 출원 12/774,512에서 논의된다. 플래그 층은 사실상 워터마크의 존재가 있는 전자적 인식의 제 1 글리머(glimmer)로 동작한다. (플래그 층은 사용자가 최적화된 워터마크 판독을 위해 스마트폰 카메라를 위치시키도록 안내하는데 도움을 주도록 선택적으로 동작할 수 있다.)
링크 층은 워터마크가 디코딩된 후에 사용자에게 제공된 정보를 포함한다. 이는 일반적으로 어떤 행동이 그러한 워터마크와 연관되는지를 학습하기 위하여 디코딩된 워터마크 페이로드(예를 들면, 큰 수)를 통해 리졸버(resolver) 데이터베이스를 인덱스하고, 이후 그러한 행동을 초기화하는 것을 포함한다.
인코딩된 데이터 번역
본 기술의 다른 양태에 따라, 워터마크 인코딩된 미디어 신호들을 수신하는 디바이스들이 워터마크 데이터를 디코딩하도록 행동할 수 있고, 이른 다른 데이터 채널에 의해 앞으로 중계한다.
텔레비전, 셋탑 박스, 또는 비디오 오락 프로그램을 수신하는 다른 디바이스를 고려하자. 프로그래밍의 오디오 및/또는 비디오가 예를 들면, 프로그램을 식별하는 디지털 워터마크 정보로 인코딩될 수 있다. 소비자는 텔레비전 상의 비디오 프로그래밍을 시청하면서 스마트폰 또는 태블릿 컴퓨터를 이용할 수 있으며, 스마트폰/컴퓨터가 시청되는 프로그램의 아이덴티티를 알 수 있게 해주는 것이 장점이 될 수 있다(예를 들면, 특허 공개들 20100119208 및 20100205628에 상세히 설명된 이유들로). 종래 기술에서, 이는 프로그램 오디오에 인코딩된 워터마크들에 대하여, 스마트폰 또는 컴퓨터의 마이크로폰을 이용하여 주위의 오디오를 캡처하고, 이후 캡처된 오디오로부터 워터마크 데이터를 디코딩하는 것에 의해 이루어졌다. 그러나, 이는 때때로 마이크로폰에 의해 또한 캡처될 수 있고 신뢰성있는 워터마크 디코딩을 간섭할 수 있는 다른 소리들에 의해 어려워진다.
본 기술의 이러한 양태에 따라, 제 1 디바이스(예를 들면, 텔레비전 또는 셋탑 박스)가 콘텐트 스트림으로부터 워터마크 데이터를 디코딩한다. 이후 그는 이러한 데이터를 상이한 채널에 의해 제 2 디바이스(예를 들면, 스마트폰)으로 중계한다.
일 예시적인 실시예에서, 텔레비전의 디코더는 오디오 구성성분으로부터 프로그램을 수신하고 오디오 워터마크를 디코딩한다. 이후 디코딩된 워터마크 데이터를 블루투스 무선 기술을 통해 근처의 스마트폰들로 재송신한다. 따라서 이러한 스마트폰들은 (그들의 내장(built-in) 블루투스 수신기들을 이용하여) 주변 실내 소음 간섭에 자유로운 워터마크 데이터를 수신한다.
디코딩된 워터마크 정보가 중계될 수 있는 다른 무선 데이터 채널은 NFC 라디오 프로토콜(현재 13.56 MHz에서 동작하는)이다. NFC 시스템들이 전형적으로 자기 결합에 의해 인근의 수동적인 NFC 칩/방출기에 전력을 공급하고 이후 칩에 의해 방출된 결과적인 약한 RF 응답을 수신하도록 동작하는 수신기(예를 들면, 스마트폰)를 포함하지만, 동일한 스마트폰 NFC 회로는 텔레비전, 셋탑 박스, 또는 다른 디바이스에 구비될 수 있는 전력이 공급된 13 MHz 송신기에 의해 송신되는 신호들을 수신할 수 있다. 106 kbits/초의 가장 낮은 표준 NFC 데이터 속도는 워터마크 관련 서비스들에 더 적절하다(그리고, 원한다면, 중계된 데이터의 매우 반복적인 에러 교정 코딩을 허용하기에 충분하게 광대역이다.)
디바이스들 사이의 디코딩된 워터마크 데이터를 중계하기 위한 또 다른 데이터 채널은 예를 들면, 802.11b, 802.11g, 또는 802.11n 표준들을 따르는 와이파이(WiFi)이다.
또 다른 데이터 채널은 텔레비전들과 원격 제어들이 공통적으로 통신하는 유형과 같은, IR 통신들이다. 그러나, 이러한 애플리케이션에서, 텔레비전(또는 셋탑 박스, 등)은 일반적으로 수신기라기보다는 IR 방사의 방출기이다. IR 통신 시스템들은 일반적으로 940nm의 파장을 이용한다. 데이터는 대중적인 RC-5 프로토콜의 경우에, 예를 들면, 36KHz의 캐리어 신호를 변조함으로써 통신된다. 이러한 프로토콜에서, 원격 제어 상의 각 버튼은, 버튼이 눌러질 때 캐리어 신호가 변조되는 14 비트 코드 전송에 대응한다. 워터마크 데이터가 예를 들면, 14 비트 코드들의 그룹들을 이용하는 것에 의한, 유사한 방식으로 전달될 수 있다(따라서 현존하는 디코딩 하드웨어가 이러한 이용을 위해 적응되는 것을 허용한다).
하나의 특별한 시스템에서, 텔레비전(또는 셋탑 박스)은 다른 디바이스들에게 봉쥬르 서비스(Bonjour service)를 이용하여 디코딩된 워터마크 데이터의 가용성을 광고한다. 특허 공개 20100205628에서 상세히 설명된 바와 같이, 봉쥬르는 서비스 발견 프로토콜인 제로콘프(Zeroconf)의 구현이다. 봉쥬르는 디바이스들을 지역적 네트워크에 위치시키고, 멀티캐스트 DNS(Domain Name System) 서비스 기록들을 이용하여 각각이 공급하는 서비스들을 식별한다. 이러한 소프트웨어는 애플의 MAC OS X 운영 시스템에 설치되며, 아이폰을 위한 애플의 "리모트(Remote)" 애플리케이션에 또한 포함될 수 있는데, 여기서 와이파이를 통한 아이튠즈 라이브러리들로의 연결들을 확립하는데 사용된다. 봉쥬르는 또한 디지털 비디오 기록기들 및 공유된 미디어 라이브러리들을 위치시키기 위해 티보(TiVo)에 의해 사용된다. 봉쥬르를 이용하여, 제 1 디바이스는 워터마크 데이터의 가용성을 네트워크 상의 다른 디바이스들에게 조언하고, 다른 디바이스들이 이러한 데이터를 얻는 것을 허용하는 파라미터들을 제공한다.
앞의 원리들은 또한 (워터마크들보다는) 미디어 핑거프린트들에 채용될 수 있다. 제 1 디바이스(예를 들면, 텔레비전 또는 셋탑 박스)는 수신된 미디어 콘텐트로부터 핑거프린트 데이터를 유도하고, 이후 핑거프린트 데이터를 다른 데이터 채널을 통해 제 2 디바이스로 통신한다. (대안적으로, 제 1 디바이스가 데이터베이스 시스템으로 핑거프린트 데이터를 전송할 수 있다. 데이터베이스 시스템은 저장된 참조 데이터 중에서 가장 가까운 매칭을 찾고, 이에 따라서 핑거프린트 식별된 콘텐트와 연관된 메타데이터에 액세스하도록 시도한다. 이러한 메타데이터가 이후 원래의 제 1 디바이스로 다시 전송될 수 있다. 이러한 제 1 디바이스는 차례로 이러한 메타데이터를 데이터 채널을 통해 제 2 디바이스로 중계한다.)
스마트폰의 도움을 받는 개인적 쇼핑 서비스
본 기술의 또 다른 양태에 따라, 스마트폰이 개인적 쇼핑 서비스와 관련하여 사용된다.
어떠한 쇼핑 구역들에서 찾아진 애플 상점들과 같은 서비스 지향 소매 시설을 고려하자. 이러한 상점을 둘러보는 소비자는 제품(예를 들면, 맥북 프로(MacBook Pro) 컴퓨터)에 대한 호기심을 표현하기 위해 스마트폰을 사용할 수 있다. 이는 (디바이스 상의 RFID 또는 NFC 칩으로부터, 또는 연관된 신호들 상의 바코드나 워터마크로부터) 맥북 프로의 이미지를 캡처하는 것, 또는 다르게는 식별 정보를 감지하는 것을 포함할 수 있다. 스마트폰은 신호를 소비자의 관심을 나타내는 소프트웨어로 보낸다. 예를 들어, 전화는 이미지, 또는 감지된 식별 정보를 무선으로(예를 들면, 와이파이(WiFi) 또는 블루투스(Bluetooth)에 의해) 쇼핑객 서비스 애플리케이션 서비스를 수행하는 백 오피스(back office) 상점의 컴퓨터로 보낼 수 있다.
송신된 제품 정보로, 전화는 또한 백 오피스 컴퓨터에 소비자의 식별자를 보낸다. 이러한 소비자 식별자는 이름, 전화 번호, 애플 소비자 번호(예를 들면, 아이튠즈 로그인 식별자), 또는 페이스북(또는 다른 소셜 네트워크) 로그인 식별자, 등일 수 있다. 쇼핑객 서비스 애플리케이션 소프트웨어는 이후, 만일 존재한다면 그 쇼핑객과 연관된 프로파일 정보를 검색한다. 이러한 프로파일 정보는 구매 이력, 등록된 애플 소프트웨어의 리스트, 및 다른 소핑객과 애플이 만난 정보를 포함하는, 애플에 대한 개인의 이력을 포함할 수 있다.
쇼핑객 서비스 애플리케이션 소프트웨어는 소비자를 개인적 서비스용 대기열로 들여보낸다. 대기열에 몇몇 소비자들이 이미 있는 경우, 소프트웨어는 쇼핑객이 서비스 전에 경험하게 될 대기 시간을 예측하고, 이러한 정보를 소비자에게 보낸다(예를 들면, 사용자의 전화로 텍스트 메시지를 보내는 것에 의해).
만일 상점이 개인적 쇼핑 보조자를 소비자에게 할당할 수 있기 전에 지연이 있을 경우, 상점은 소비자에게(예를 들면, 소비자의 스마트폰 또는 다른 컴퓨터 디바이스에게) 시간을 소비하는데 도움을 줄 수 있는 관심있는 콘텐트를 제공한다. 예를 들어, 상점은 아이튠즈 미디어 스토어로부터 사용가능한 노래들, 비디오 및 다른 미디어에 대한 무제한적 청취/시청 권리들을 쇼핑객에게 허용할 수 있다. 제한된 수의 콘텐트 아이템들의 무료 다운로드들이 허용될 수 있다. 이러한 특권들은 쇼핑객이 상점 내에 또는 근처에 머무르는 동안 지속될 수 있다.
개인적 쇼핑 보조자가 소비자를 도울 수 있게 되면, 소프트웨어는 보조자의 이름과 보조자의 사진을 포함하는 알림을 쇼핑객에게 보낸다. 보조자가 더 나은 서비스를 제공하는 것을 도울 수 있는 배경 정보를 주기 위하여, 미리, 단축된 텍스트 형태로 강조 사항들을 주는 쇼핑객의 프로파일 정보의 증류된 버전이 쇼핑 보조자에게(예를 들면, 보조자의 스마트폰에) 제공되었다. 보조자는 이후 소비자에게 접근하여 이름을 부르며 그 또는 그녀와 인사하고 맥북 프로에 대한 어떠한 질문들에도 대답할 준비를 한다.
개인적 서비스를 위한 대기열은 반드시 먼저 오면 먼저 서비스받는 순서일 필요는 없다. 대신, 애플 구매들의 이력을 가진 쇼핑객들에게 우선권이 주어질 수 있으며, 그들의 과거 애플 구매들의 가치에 따라 대기열의 다른 사람들의 앞으로 치고 나가게 된다. 쇼핑객 서비스 소프트웨어는 현재의 애플 소비자가 상점으로 들어올 때마다 새로운 소비자들이 항상 순위가 밀리지는 않도록 하기 위한 일부 보호들을 적용한다. 예를 들어, 대기열은 제한된 수의 우선권 소비자들(예를 들면, 2)이 새로운 소비자의 앞의 대기열에의 배치로 허용되도록 관리될 수 있다. 두명의 우선권 소비자들이 새로운 소비자의 앞으로 치고 올라간 후, 다음의 우선권 소비자는 새로운 소비자의 뒤(그러나 두 번 밀리지는 않은 다른 새로운 소비자들의 앞)의 대기열에 삽입된다.
대기열 관리는 애플과의 과거 거래 이력에 부가한(또는 그 이외의) 팩터들에 의존할 수 있다. 공공의 상업적 데이터베이스들을 모으는 것은 대부분의 쇼핑객들에 대한 유용한 인구통계학적 프로파일 정보의 편집본을 허용한다. 쇼핑객 서비스 컴퓨터가 방금 상점으로 들어온 소비자가 최신 모델인 렉서스 자동차의 DMV 등록자인 것으로 결정하는 경우, 그 소비자에게는 DMV 기록들이 옛 Yugo를 드라이브한다고 나타내는 대기열의 이전 소비자보다 앞쪽에 위치할 수 있는 우선권이 주어진다. (또는 상점은 반대의 정책을 채택할 수 있다.)
부분적으로, 애플과의 거래 정보와, 공공의 상업적 데이터베이스들로부터 얻어진 데이터에 기초한 소비자 서비스 관리에 부가하여, 이러한 결정들은 유사하게 소비자에 의해 자발적으로 제공된 정보에 기초할 수 있다. 예를 들어, "디지털 지갑" 기술은 그들의 스마트폰 또는 다른 디바이스로부터 개인들이 소매 시설들을 포함하는 다른 이들과 쉽게 어떠한 인구 통계와 그들에 대한 다른 프로파일 정보를 공유하는 것을 허용한다. 소비자 서비스 대기열의 소비자의 위치는 이러한 자기 표출적 정보에 기초할 수 있다. 소비자들은 그들이 그들 자신들에 대하여 더 많은 정보를 사용가능하게 만들수록 그들에게 더 많은 소비자 서비스가 제공된다는 것을 발견할 수 있다.
앞의 기능성은 소비자의 스마트폰으로 다운로드된 애플리케이션 프로그램을 통해, 또는 소비자가 지향되는 웹 서비스로서 실행될 수 있다. 또는, 기능성의 많은 것들이 다른 표준 스마트폰 소프트웨어(예를 들면, 웹 브라우저 또는 아이튠즈 소프트웨어)을 호출하는 링크들을 상점에 선택적으로 제공하는, 텍스트(사진) 메시징 방식들에 의해 실행될 수 있다.
편리한 호환성 결정들
본 기술의 다른 양태에 따라, 스마트폰은 특정 전자 장치들에 유용한 액세서리들을 빠르게 식별하는데 사용된다.
예시된 시나리오는 그녀의 HTC 썬더볼트(Thunderbolt) 스마트폰을 위한 보호 케이스를 찾아 프라이스(Fry's)와 같은, 전자제품 소매상으로 들어가는 쇼핑객이다. 상점은 스마트폰 케이스들로 가득찬 벽을 가지고 있다. 종래 기술에서, 소핑객은 그 케이스가 스마트폰(들)의 정보와 일치하는지 보기 위해 각각의 상이한 패키지를 세심히 살필 것이다. 이는 많은 케이스들을 벽에서 꺼내 작은 프린트를 읽은 후에 다시 패키지들을 돌려놓도록 요청할 수 있다. 불만이 바로 뒤따른다.
본 기술의 이러한 양태에 따라, 소매상이 사용자의 스마트폰(또는 다른 디바이스)로 다운로드될 수 있는 소프트웨어 툴을 사용할 수 있게 한다. 또는 툴이 웹 서비스로 제공될 수 있다. 사용자는 액세서리들(케이스들, 충전기들, 등)을 포함할 수 있는 드랍다운 메뉴에 의하는 것과 같이, 그들이 찾는 것을 나타내도록 초대된다. 사용자가 "액세서리들"을 선택할 때, 다른 대화가 액세서리들이 찾아지는 제품에 대하여 묻는다. 사용자는 "HTC 썬더볼트"를 입력한다(또는 드랍다운 메뉴에서 선택한다). (당업자는 이러한 정보가 많은 다른 방법들로 얻어질 수 있으며, 이러한 데이터 수집 상태의 특별한 구현이 특별한 상점 환경에 적용될 수 있다는 것을 인식할 것이다.)
HTC 썬더볼트 전화를 위한 액세서리들을 식별하는 것과 같이, 상점 소프트웨어가 소비자의 목적을 식별하는 데이터를 일단 수집하였으면, 이는 이후 이러한 디바이스와 호환가능한 그의 재고에 있는 모든 제품들을 식별하기 위해 데이터베이스를 검색한다. 이는 관련된 키워드들을 갖는 것들을 식별하게 위해, 상점 제품들에 대한 데이터시트들을 텍스트 검색하는 것에 의해 수행될 수 있다. 또는, 액세서리들의 밴더들이 UPC 코드들의 리스트, 또는 액세서리가 호환가능한 각 제품에 대한 다른 이러한 식별자들에 의하는 것과 같은, 표준화된 형식으로 상점에 사용가능한 이러한 호환성 정보를 생성할 수 있다.
하나의 특별한 구현에서, 상점은 호환가능한 제품들의 식별자들의 리스트를 쇼핑객의 디바이스로 다운로드한다. 소프트웨어는 이후 쇼핑객에게 보호 스마트폰 케이스들의 디스플레이를 물리적으로 스캔하라고 (쇼핑객이 이미 그곳에 있지 않다면, 그것이 8B 통로의 중간에서 발견된다고) 조언하고, 쇼핑객에게 HTC 썬더볼트와 호환가능한 이러한 액세서리들에 대해서는 전화가 녹색 빛을 디스플레이할 것이라고(또는 다른 확인 신호를 출력할 것이라고) 알려준다.
또한 환경에 의존하는 다양한 종류들의 스캐닝 메커니즘이 있을 수 있다. 제품 패키지들은 각각 RFID 또는 NFC 칩들을 구비할 수 있고, 이는 전화가 가까이 갈 때 스마트폰이 제품을 전자적으로 식별하도록 동작한다. (NFC 판독기들은 곧 대부분의 스마트폰들의 표준 특성들이 될 것이다.) 또는, 이미지 인식 기술들이 사용될 수 있다. (벽에는 각각이 상이한 패키지를 갖는, 많은, 제한된 수의 보호 케이스들이 있다. 상점 컴퓨터는 SIFT 또는 SURF 데이터, 또는 스마트폰이 특별한 패키지를 그들의 제한된 세상에서 시각적으로 식별할 수 있는 다른 특별한 정보와 같은, 시각적 핑거프린트 데이터를 스트리밍 카메라 데이터의 분석에 의해 다운로드할 수 있다.)
또 다른 방식에서, 스마트폰은 그의 카메라에 의해 캡처된 이미지를 워터마크 검출기로 적용하여, 제품 패키지의 아트워크에 인코딩된 복수 비트 데이터를 추출한다. 또는 바코드 판독이 이용될 수 있다.
전화가 근처의 제품들로부터 식별자들을 모으는 동안, 호환가능한 디바이스들에 대한 식별자들의 이전에 다운로드된 리스트가 매칭들을 위해 체크된다. 스캐닝된 제품의 식별자들이 호환가능한 제품들의 다운로드된 리스트 중에서 발견된다면, 적절한 표시가 사용자에게 출력된다.
이러한 방식에 의해, 스마트폰은 가이거 카운터(Geiger counter)와 유사한 방식으로 활동한다. 소비자가 디스플레이된 보호 케이스들을 따라 전화를 움직이면, 이는 관심있는 특별한 아이템들(즉, HTC 썬더볼트 전화를 보호하도록 적응된 이러한 케이스들)에 소비자의 관심을 끌기 위한 신호를 발생시킨다. 사용자는 이후 어떤 케이스들이 구매를 위한 후보자들로 적절한지에 대한 기본적인 질문에 고민하기보다는, 그녀의 질문을 다른 고려사항들(예를 들면, 가격 또는 모양)에 집중시킬 수 있다.
여전히 호환성에 상호적인 안내를 제공하면서, 앞의 방식은 다양하게 변화될 수 있다는 것이 인식될 것이다. 예를 들어, 상점은 호환가능한 식별자들의 리스트를 스마트폰으로 다운로드할 필요가 없다. 대신, 스마트폰은 감지된 식별자들을 상점의 컴퓨터로 보낼 수 있고, 이는 이후 호환가능한 제품들의 리스트에 대해 이러한 식별자들을 매칭할 것이다. 유사하게, 호환가능한 제품들의 리스트가 미리 생성될 필요가 없다. 대신, 상점 컴퓨터가 소비자의 스마트폰으로부터 스캐닝된 식별자들을 수신하고, 이후 스캐닝된 제품이 호환가능한지 즉시 결정할 수 있다(예를 들면, 이후 HTC 썬더볼트 전화가 호환가능한 제품들 중 하나라는 지시를 위해 그 제품과 연관된 데이터를 회수하여 체크하는 것에 의해).
유사하게, 감지된 패키지로부터 제품 식별자들의 검출은 전화에 의해 수행될 필요가 없다. 예를 들어, 카메라 이미지는 전화에서 상점 컴퓨터로 스트리밍될 수 있으며, 여기서 연관된 식별자를 얻기 위해 (예를 들면, 패턴-, 워터마크-, 바코드-인식 기술들에 의해) 처리될 수 있다.
식별자는 제품 패키지로부터 구분되거나 유도될 필요가 없다. 선반 태그들 또는 다른 마킹들이 또한 제품 식별을 위한 기본들로 동작할 수 있다.
특별한 구현에 의존하여, 호환성을 결정하기 위해 식별자들을 매핑하거나 변환하는 단계가 있을 수 있다. 예를 들어, 선반 태그는 상점의 소유인 SKU 번호를 가지고 있을 수 있다. 그러나, 호환성이 표시되는 참조 데이터(예를 들면, 제품의 데이터시트)는 UPC 코드에 의해 제품들을 식별할 수 있다. 따라서, 시스템은 호환성을 결정하는데 감지된 SKU 번호로부터 UPC 코드를 참조할 필요가 있을 수 있다.
자연적으로, 이러한 원리들은 비디오 플레이어용 자동차 충전기를 찾거나, 휴대 전화용 옵스큐어 배터리를 찾거나, 또는 카메라용 메모리 카드를 찾는 것과 같은, 다른 관련된 제품 쌍들에 적용될 수 있다.
계산적 사진술 및 잠재 기준 정보
계산적 사진술(computational photography)은 개선된 형태의 이미지들을 산출하기 위하여 캡처된 이미지 데이터를 알고리즘적으로 변경하는 이미지 처리 기술들을 말한다. 하나의 예는 이미지 디블러링(deblurring)이다.
이미지 블러는 필수적으로 작은 크기의 카메라의 조리개로 인한, 스마트폰 카메라들의 특수한 문제이며, 이는 센서로 전달되는 광량을 제한하고, 따라서 상응하게 연장된 노출 시간들을 필요로 한다. 연장된 노출 시간들은 사용자가 카메라를 더 긴 시간동안 일정하게 붙잡고 있을 것을 요청하는데, 이는 움직임 블러의 위험을 증가시킨다. (이러한 전화들의 광 가중이 또한 움직임 블러의 위험을 증가시키는데, 그들은 SLR들과 같은 더 무거운 카메라들이 제공하는 관성적 안정성이 부족하다.)
블러는 움직임과는 다른 현상에 의해 설명될 수 있다. 예를 들어, 렌즈 광학은 전형적으로 특별한 촛점 평면과 필드의 깊이 내의 대상들에 집중한다. 집중된 필드 외의 객체들은 블러된다(소위 "디포커스 블러(defocus blur)").
블러 함수들은 수학적으로 특성화될 수 있으며, 그리고 한번 특성화되면, 역함수의 적용에 의해 해소될 수 있다. 그러나, 블러 함수들은 일반적으로 직접 측정될 수 없으며; 그보다는, 그들은 일반적으로 추정되고 반복적으로 정의되어야 한다. 블러 이미지는 홀로 일반적으로 하나의 부분적인 제약을 제공하기 때문에, 블러링된 이미지로부터 블러 함수를 복구시키는 것(블라인드 디컨벌루전(blind-deconvolution) 문제로 알려진)은 확실치않은 노력이다.
대안적인 원 이미지들 사이의 차이를 명확하게 하고, 연관된 블러 함수(일반적으로, 블러 "커넬(kernel)")를 더욱 잘 추정하는 것을 돕기 위하여, 블러되지 않은(unblurred) 원래의 이미지에 대한 상당한 것, 소위 "종래 제약(prior constraint)"(또는 간단히, "이미지 프라이어(image prior)")을 아는 것이 유익하다.
예를 들어, 공개된 특허 출원 20090324126에서, 마이크로소프트 연구원들은 이미지가 일반적으로 유사한 배색의 영역들에 의해 특징지어진다는 것을 관찰한다. 다소 블러되더라도, 이러한 영역들은 그들의 동일한 일반적 배색을 유지하려는 경향이 있다. 지역적 이미지 색상이 블러에 대해 불변인 경향이 있으므로, 이것은 블러 함수의 더 나은 추정을 산출하는 것을 돕는데 사용될 수 있는 이미지 프라이어로 기능할 수 있다.
다른 이미지 프라이어가, 왜곡을 유발한 거울 변형들을 원래 겪은 허블 망원경으로부터 이미지를 선명하게 하는데 도움을 주기 위해 사용되었다. 캡처된 이미지의 대부분의 광원들은 원형 디스크들(또는 점원들)이었음이 이해되었다. 이러한 지식으로, 후보적인 교정 블러 커넬들이, 처리된 이미지가 그들의 원래의 원형 디스크 형태로 별들을 묘사했을 때까지 반복적으로 수정될 수 있다. (예를 들면, Coggins, et al, Iterative/Recursive Deconvolution with Application to HST Data," ASP Conference Series, Vol. 61, 1994; 및 Adorf, "Hubble Space Telescope Image Restoration in its Fourth Year," Inverse Problems, Vol. 11, 639, 1995를 참조.)
(디블러잉(deblurring) 기술들의 다른 그룹은 캡처된 이미지의 특성들에 대한 종래의 정보에 관심을 두지 않고, 그보다는 이미지 캡처에 대한 기술적 특성들에 관심을 둔다. 예를 들어, 앞서 참조된 마이크로소프트의 연구 팀은 이미지 노출동안 카메라의 움직임에 대한 데이터를 수집하기 위한 관성 센서들(예를 들면, 가속도계들 및 자이로스코프들)을 갖는 카메라들을 구비하였다. 이러한 움직임 데이터는 이후 교정 블러 커넬을 추정하는데 사용되었다. Joshi et al, "Image Deblurring Using Inertial Measurement Sensors," SIGGRAPH'10, Vol 29, No 4, July 2010을 참조한다. (대응하는 특허 출원이 또한 SIGGRAPH 전에 출원되었다고 믿어진다.) 추가 하드웨어 센서들을 갖는 SLR의 환경에서 상세히 설명되었으나, 출원자는 마이크로소프트의 방법이 (점점 3D 가속도계와 자이로스코프들이 구비되는(애플의 아이폰4를 참조한다)) 스마트폰들에 사용하기에 적절하다고 믿는다.)
본 기술의 다른 양태에 따라, 이미지 개선을 허용하는 이미지 프라이어들을 제공하기 위해서 알려진 기준 정보가 카메라들(예를 들면, 스마트폰들)에 의해 찍힐 수 있는 장면들로 도입된다.
도 12에 묘사된 시리얼 상자를 고려한다. 그의 아트워크는 사람인 관찰자들에게 보여질 수 있는, 공간적 주파수가 너무 높은 마커 특성들로 잠재적으로 인코딩되었다. 이러한 마커들의 형태와 주파수는 미리 알려졌다. (일반적인 워터마킹 기술들에 따라, 그들은 전형적으로 표준화된다. 예는 디지맥(Digimarc) 이미지 워터마킹 기술이며, 아도비 포토샵(Adobe Photoshop)이 제공된다.) 따라서 이러한 마커들이 이미지 프라이어들로 사용될 수 있으며, 시리얼 상자의 처리될 이미지가 임의의 움직임- 또는 디포커스-블러를 해소하는 것을 허용한다.
종래의 정보는 공간 주파수 도메인(임펄스 함수들의 5각형 구성들로 나타나는), 또는 픽셀 도메인(보는 사람들에 의해서 구분되기엔 주파수가 너무 높으나 카메라 캡처된 이미지로부터는 검출될 수 있는, 특별한 직조 패턴으로 나타나는)에 사용될 수 있다.
알려진 블라인드 디컨벌루젼 기술들을 이용하여, 이러한 프라이어들은 블러 커넬의 반복적인 개선을 허용하는데, 이는 이후 캡처된 이미지의 임의의 블러를 해소하는데 적용될 수 있다.
예시적인 구현은 리차드슨-루시(Richardson-Lucy) 기술을 사용하며, 이는 다음의 두 가지 공개물들에까지 거슬러 올라간다: Richardson, "Bayesian-Based Iterative Method of Image Restoration", J. Opt. Soc. Am. 62, 55-59, 1972; 및 Lucy, "An Iterative Technique for the Rectification of Observed Distributions," The Astronomical Journal, Vol. 79, No. 6, June, 1974. 이러한 방법론은 다음 수십년간 개선되었다. 예들이 마이크로소프트와 MIT에 의한 특허 출원들, 예를 들면, 2010123807, 2008240607, 2008025627, 2010074552, 및 2009244300에서 보여진다.
픽셀 도메인의 대부분의 블러링은 주파수 도메인의 블러링보다는 푸리에 도메인의 고주파수들의 강도의 감소에 따라 명백히 나타날 수 있다. 이러한 이유로, 푸리에 도메인에서 선명하게 규정된 패턴을 찾을 수 있는 능력은 픽셀 도메인 블러들을 견디는 경향이 있고, 푸리에 도메인 신호의 제공된 진폭은 충분하다. 특별한 응용에서의 특별한 진폭이 발견적으로 결정될 수 있다. 매우 작은 블러들(예를 들면, 스마트폰 카메라 애플리케이션의 작은 손 흔들림으로 인한 움직인 블러들)의 교정이 예측되는 경우, 상대적으로 낮은 진폭의 푸리에 마커 신호들이 사용될 수 있다. 더욱 상당한 블러링이 예상된다면, 이후 더욱 강력한 마커 신호들이 사용되어야 한다. (진폭의 축소가 예를 들면, 도 11의 선(217)에 가까운, 주파수가 상대적으로 더 낮은 마커(들)을 넣는 것에 의해 완화될 수 있다.)
방금 언급된 바와 같이, 마커 신호들은 블러 보정에 대하여 그들의 사용을 최적화하기 위해 주파수에서 맞춤이 된다. 그들은 또한, 형태에서 맞춤이 될 수 있다. 예를 들어, 도 11에서와 같이 5개의 임펄스 함수들로 구성된 마커들 대신, 블러 보상 마커 신호는 1이나 2와 같은 더 적은 수의 요소들을 포함할 수 있다. 유사하게, 임펄스 함수 성분들 대신, 이러한 마커들은 움직임 블러 존재의 견고함을 개선시키는 것을 돕기 위하여, 수평적으로, 수직적으로, 및/또는 중간의 각도들로 배열된 늘어난 세그먼트들로 구성될 수 있다. 예가 도 14에 도시된 패턴(302)이다.
특허 6,590,996에서 상세히 설명된 바와 같이, 워터마크 신호는 다양한 세트들의 신호 요소들을 포함할 수 있다. 한 세트는 한 세트의 정합 신호들을 포함할 수 있다. 이들은 상대적으로 강하게 인코딩되어, 결정될 워터마크된 이미지의 왕복운동, 크기 조정 및 회전을 가능하게 한다. 이러한 파라미터들이 한번 알려지면, 따라서 알려진 워터마크 검출기는 이후 제 2 세트의 요소들을 회복시킬 수 있는데, 이들은 더욱 많고 (그리고 전형적으로 보다 약하게 인코딩되고), 워터마크 페이로드 데이터의 대부분(또는 전부)을 전달한다.
도 11 및 도 14의 마커 신호들이 캡처된 이미지에 대한 밀접히 결합된 파라미터들을 결정하기 위해 특허 6,590,996의 정합 신호들과 유사한 방식으로 사용될 수 있다. 그리고 그들은 또한 블러 교정을 위해 이미지 프라이어들을 제공하는 이중 목적을 수행할 수 있다.
특별한 실시예에서, 패턴들(210/302)에 의해 제공된 잠재 마커들을 이미지 프라이어들로 이용하여, 블라인드 디컨벌루젼이 블러링된 이미지에 적용된다. 이미지를 더욱 명확한 형태로 재저장하는 것을 추구하는 블러 효과를 감소시키기 위해 반복적인 교정이 이미지에 적용된다. (블러 교정된 푸리에 도메인 마커 신호들의 강도를 평가하는 것이 사용될 수 있는 하나의 매트릭이다.) 블러 보정된 이미지 상에서 워터마크 판독 동작이 이후 수행되어 복수 비트의 페이로드 정보의 복구가 허용된다. 따라서, 선순환의 결과 마커 신호들이 이미지의 디블러링에 유용하고, 결과적으로 디블러링된 이미지는 더 좋은 디코딩된 워터마크 결과들을 산출한다.
일부 실시예들에서, 워터마크 페이로드는 원래의 이미지에 대한 통계들을 전달하는 다양한 비트들을 포함할 수 있다. 종래 기술에서 블러를 제거하는데 도움을 주기 위해 이미지 프라이어들로서 갖가지의 이미지 통계들이 사용되었다. 그러나, 종래 기술에서의 문제점은 블러링된 이미지가 사용가능할 때에만 신뢰성있는 이미지 통계들을 얻는 것이다. 디지털 워터마크는 이미지로부터 디블러링 시스템으로 이러한 정보가 신뢰성있게 전달될 수 있는 채널을 제공할 수 있다.
일부 실시예들에서, 마커 신호들(210/302)은 그들 자체로 정보를 전달할 수 있다. 예를 들어, 성분 마커 요소들의 위상들은 제한된 수의 비트들을 전달하기 위해 선택적으로 역전될 수 있다. 이러한 방식으로 전달될 수 있는 하나의 이미지 통계는 원래 아트워크의 평균 휘도이다. 이러한 통계는 상이한 반복된 블러 해법들의 정밀성을 평가하는데 유용한 제약을 제공한다.
(상이한 워터마크 페이로드들이 아트워크의 상이한 영역들, 일반적으로는 직사각형 타일들에서 인코딩될 수 있다. 이는 몇몇 지역적 통계들이 전달되는 것을 허용한다. 예를 들어, 도 12에 묘사된 시리얼 상자 아트워크는 6 x 4 워터마크 타일들의 배열을 포함할 수 있으며, 이는 24개의 상이한 공간 영역들이 전달되는 것을 허용한다.)
대부분의 이미지들은 시리얼 상자들을 포함하지 않는다. 그러나 워터마크된 데이터는 많은 일반적인 환경들로 삽입되어, 위에서 설명된 바와 같이, 이미지 프라이어들을 제공하도록 동작한다. 예를 들어, 양탄자나 가구를 덮는 천이 워터마크 패턴들을 포함할 수 있다. 이러한 워터마크 패턴이 발견되는 임의의 환경에서, 이러한 환경에서 캡처된 이미지의 품질이 앞의 블러 교정 기술들에 의해 개선될 수 있다. (다른 계산적 사진술 방법들이 이러한 워터마크 신호들에 유사하게 의존할 수 있다.)
대부분의 실시예들은 그들의 주파수로 인해 사람의 시각적 감지의 범주 외(예를 들면, 도 11 및 도 14의 외부 원(217))에 있는 워터마크 신호들을 사용하지만, 다른 실시예들에서 그의 색차로 인해 주의를 벗어난 워터마크 신호가 부가될 수 있다. 예를 들어, 사람의 눈은 황색에 상대적으로 덜 민감하다. 따라서, 알려진 마커 패턴들은 황색으로 프린트될 때에는 낮은 주파수들에서 삽입될 수 있다. 유사하게, 일반적으로 사람의 감지 영역의 외부에 있지만, 이미지 센서들에 의해 검출될 수 있는 다른 잉크들이 또한 사용될 수 있다.
미리 보자면, 플리커(Flickr)와 페이스북과 같은 온라인 사진 보관소들은 워터마크들에 대해 업로드된 이미지를 주기적으로 체크할 수 있다. 워터마크들이 발견될 때마다 서비스가 이미지를 개선시키기 위하여 계산적 사진술 방법들에 이러한 신호들을 채용할 수 있다.
(포스트 호크 이미지 교정 절차의 환경에서 설명되었으나, 이미지 캡처 프로세스 전에 또는 동안에, 동일한 기술들이 유사하게 채용될 수 있다. 예를 들어, 잠재적인 마커 신호들이 초점이 확립되어야 하는 곳을 결정할 때 카메라의 자동 촛점 시스템을 도울 수 있다.)
블러에 대한 보다 상세한 설명
인용된 Joshi 등의 논문은 어떻게 관성 데이터가 블러 커넬의 추정을 세밀하게 하는데 사용될 수 있는지를 교시한다. 그러나 관성 데이터의 더 단순한 애플리케이션이 더욱 폭넓고 유용하게 사용될 수 있다.
하나의 특별한 방식에서, 스마트폰 카메라는 이미지 프레임들의 시퀀스를 캡처한다(예를 들어, 스트리밍 캡처-모드, 또는 비디오- 모드). 각 프레임동안, 전화의 3D 자이로스코프 및/또는 가속도계에 의해서와 같이 전화의 움직임이 감지된다. 이미지 프레임들의 스트림 중 선택된(즉, 낮은 전화 움직임에 기초하여 선택된) 것들이 이후 배열되고 조합되어 개선된 이미지로 출력된다.
이러한 개선된 이미지가 예를 들면 디지털 워터마크 검출기로 적용될 수 있다. 이미지 개선은 (중요하지 않은 신호들을 회복하는데 긴 시간 작업을 필요로 하지 않으므로) 검출기가 디코딩된 정보를 보다 빠르게 출력하는 것을 허용하며, 더욱 견고한 워터마크 회복(예를 들면, 조악한 조도, 이미지 변질, 및 다른 과제들에도 불구한 디코딩)을 허용한다.
조합될 이미지 프레임들의 선택이 상이한 방식들로 진행할 수 있다. 예를 들어, 움직임 임계치가 설정될 수 있고(예를 들면, 자이로스코프로 감지된 초당 회전의 정도로), 그러한 임계치보다 낮은 움직임을 갖는 프레임들이 조합될 수 있다. (또는, 다른 관점에서, 그러한 임계치보다 높은 움직임을 갖는 프레임들이 무시된다). 조합될 프레임들의 수는 미리 설정될 수 있거나(예를 들면, 임계 기준을 만족하는 처음 6개의 프레임들을 이용한다), 또는 기술이 그러한 테스트를 통과하는 시퀀스의 모든 프레임들을 사용할 수 있다. 다른 선택은 타겟 프레임 계수(예를 들면, 10)에 대하여 임계치를 설정하고, 이후-캡처된 프레임들의 시퀀스로부터 움직임 데이터의 가장 낮은 값들(어떤 값이든지)을 갖는 프레임들의 타겟 수를 선택하는 것이다.
프레임들의 조합이 단순히 평균화하는 것에 의할 수 있다. 또는 가중된 평균이 사용될 수 있다. 각 프레임으로 할당된 가중은 연관된 움직임 데이터에 의존할 수 있다. 바람직하게, 가중은 프레임들의 각각의 움직임 데이터 사이의 관계들에 특히 더 기초하며, 따라서 프레임이 "더욱 잠잠할 수록(stiller)", 이들이 평균에 더욱 기여하게 된다. 바람직하게, 하나 이상의 프레임들이 움직임을 가지지 않는다면, 그들에게 최대 가중값이 주어지며, 0의 값이 아닌 움직임 값들을 갖는 프레임들에게는 0의 가중값이 주어진다. 이러한 프레임 의존 가중 팩터 "k"를 확립하기 위한 하나의 알고리즘은:
kA = [Motion(FrameMIN)/Motion(FrameA)]X
이며, 여기서 kA는 프레임 "A"에 대한 가중 팩터이고; Motion(FrameA)는 프레임"A"의 초당 각도인 움직임이며; Motion(FrameMIN)은 선택된 세트의 프레임들의 모두 가운데서 최소한의 움직임이고, X는 지수적 비율화 팩터이다.
블러를 감소시키는 것에 부가하여, 이러한 기술들은 또한 스마트폰 캡처된 이미지의 잡음제거(de-noising)에 효율적이다.
하이브리드 워터마크/특징점/바코드/ NFC 방식들
앞서 인용된 출원 13/079,327은 프린트된 문서(예를 들면, 신문)로부터 캡처된 이미지가, 기하학적으로 정합된 방식으로 오버레이된 보조 정보와 함께 스마트폰 스크린 상에 렌더링되는 방식을 상세히 설명한다. 공개된 출원 20080300011은 관련 기술을 상세히 설명한다.
이러한 방금 언급된 출원들의 바람직한 실시예들은 페이지에 인코딩된 워터마크 신호의 정합 신호 성분들을 참조하는 것에 의해 페이지에 대한 스마트폰의 포즈를 구분한다. 이러한 워터마크의 페이로드가 페이지에 관련된 보조 정보를 포함하는 데이터베이스를 액세스하는데 사용된다. 이러한 보조 정보는 이후 페이지로부터 캡처된 이미지의 상부에, 구분된 포즈에 의존한 스크린 상의 위치에 오버레이된다.
앞서 언급된 출원 13/011,618은 사용자가 스마트폰 스크린 상에 표시된 이미지 페이지의 일부를 탭하는, 다소 상이한 방식을 교시한다. 캡처된 이미지로부터 디코딩된 워터마크 페이로드가 데이터베이스로 보내지고, 이는 보여지는 페이지에 대응하는 페이지 레이아웃 정보를 되돌려 보낸다. (페이지 레이아웃 데이터는 페이지를 편집할 때 사용된 공개 소프트웨어로부터 먼저 나왔고, 데이터베이스에 저장된다.) 검색된 페이지 레이아웃 데이터와 함께, 워터마크의 정합 신호 성분들로부터 구분된 크기 조정 및 회전 정보를 참조하는 것에 의해, 전화는 사용자의 탭에 의해 나타내진 물리적 페이지 상의 좌표들을 결정한다(예를 들면, 프린트된 페이지의 좌측 상부 모서리로부터 4인치 내려오고 6인치 우측으로). 이러한 결정된 페이지 좌표들을 참조하는 것에 의해, 페이지의 그러한 특별한 부분에 관한 보조 정보가 식별되고, 스마트폰 스크린 상에 표시된다.
본 기술의 다른 양태에 따라, 프린트된 페이지 - 또는 다른 객체- 상의 상이한 위치들에 대응하는 정보를 표시하기 위한 상이한 방식들이 사용된다.
하나의 특별한 실시예에서, 페이지에 대한 스마트폰의 위치가 워터마크 신호의 등록 성분들을 참조하여 결정되지 않는다. 대신, 디코딩된 워터마크 페이로드가 원격 서버(데이터베이스)로 보내지고, 이는 페이지에 대한 정보를 되돌려 보낸다. 그러나 출원 13/011,618과 달리, 되돌아온 정보는 공개 소프트웨어로부터 나온 페이지 레이아웃 데이터가 아니다. 대신, 데이터베이스는 페이지 상에 표현되는 특징점들(특성들)에 대해 앞서 저장된 기준 데이터를 되돌려 보낸다.
(특징점들이 원래 페이지 상의 그들의 좌표들에 대해 예를 들면, 페이지의 상부 모서리로부터 아래로 및 가로지르는 인치들에 의해 간단히 식별될 수 있다. 부가적으로 또는 대안적으로, 다른 정보, 전형적으로 특성 벡터들이 제공될 수 있다. 개별적으로 관련되지 않은 점들을 식별하는 대신, 데이터베이스로부터 되돌아온 정보가 특징점들의 조성을 특징화할 수 있다.)
스마트폰은 다양한 방식들로 보여질 페이지 상의 기준 특징점들에 대해 이러한 지식을 이용할 수 있다. 예를 들어, 데이터베이스에 의해 식별된 특징점들을 전화의 시야 내에서 발견된 특징점들과 매칭하는 것에 의해 어떤 페이지의 특별한 부분이 보여지는지 식별할 수 있다.
사용자에게 제공된 보조 데이터는 또한 특징점들의 함수일 수 있다. 예를 들어, 스마트폰은 원격 서버로 전화의 시야 내에서 매칭되는, 식별된 특징점들의 리스트를 전송할 수 있다. 이러한 서브세트가 보여지는 페이지의 영역을 정확하게 국한시키도록 동작하므로, 특별하게 그 영역에 대응하는(예를 들면, 사용자에게 관심있는 특별한 기사에 대응하는) 보조 정보가 전화로 리턴될 수 있다. 대안적으로, 예를 들면, 페이지의 전체, 또는 신문의 모든 페이지들에 대응하는 더 큰 세트의 보조 데이터가 워터마크 페이로드에 응답하여 데이터베이스로부터 리턴될 수 있다. 스마트폰은 이후 이러한 더 큰 세트의 데이터로부터 선택하여, 특별한 페이지 발췌에 대응하는 서브세트만을 (특징점들에 의해 결정된 대로) 이미지화되도록 제공할 수 있다. 사용자가 객체의 상이한 부분들을 찍기 위해 전화를 움직이면, 상이한 서브세트들이 빠르게 표시될 수 있다.
데이터베이스에 의해 되돌려진 기준 특징점들이 사용될 수 있는 다른 방법은 페이지에 대한 전화의 포즈 결정시이다. 카메라 렌즈를 통한 그러한 시청의 투사와 함께, 객체에 대한 카메라의 3D 포즈는 특징점들이 캡처된 이미지에 나타나는 것을 유일하게 결정한다. 캡처된 이미지와, 객체의 평면도의 특징점들의 위치에 대한 기준 데이터가 주어지면, 3D 포즈가 결정될 수 있다. (포즈의 정밀한 결정은 카메라/렌즈에 의해 영향을 받는 투사에 대한 일부 정보, 예를 들면 초점 길이 및 이미지 포맷을 요구한다.)
객체 포즈가 일단 결정되면, 오버레이된 정보는 강조한 이미지로, 예를 들면, 스마트폰이 보고있는 페이지와 매칭하는 회전, 크기 조정, 번역, 및/또는 아핀- 또는 관점-왜곡으로, 기하학적으로 정합될 수 있다.
(특징점들에 기초한, 기하학적으로 등록된 방법으로 이미지 상에 정보를 오버레이하는 것이 증강 현실로부터 알려져 있다. 예를 들면, 특허 문서들 7,616,807, 7,359,526, 20030012410 및 20100232727과, 논문들: Reitmayr, "Going Out:Robust Model-based Tracking for Outdoor Augmented Reality," Proc. 5th IEEE/ACM Int. Symp. on Mixed and Augmented Reality, 2006, pp.109-118; 및 Genc, "Marker-less Tracking for AR: A Learning-Based Approach, Proc. 1st IEEE/ACM Int. Symp. on Mixed and Augmented Reality, 2002, pp.295-304를 참조.)
하나의 특별한 방식에서, 데이터베이스는 또한 스마트폰에 제공된 특징점 정보에 관한, 크기 조정 및 회전 데이터를 리턴한다. 예를 들어, 데이터베이스는 어떤 방향이 이미지화된 객체의 상부를 향하는지(즉, 수직인지)를 나타내는데 유용한 숫자 값을 리턴할 수 있다. 이러한 값은 예를 들면, 수직선과 처음 및 마지막으로 나열된 특징점들 사이의 선 사이의 각도를 표현할 수 있다. 유사하게, 데이터베이스는 객체(예를 들면, 신문)이 처음으로 프린트되었던 스케일에서, 처음 및 마지막으로 나열된 특징점들 사이의 거리를 인치들로 나타내는 숫자 값을 리턴할 수 있다. (이러한 간단한 예시들은 단지 예시적인 것이며, 개념들을 설명하기 위해 기능한다.)
이와 관련하여, 데이터베이스로부터 리턴되는 특징점들은 또한 상자들, 칠판들, 메뉴들, 등과 같은 그래픽 표시의 크기와 위치를 정하는데 도움을 주도록 동작할 수 있다. 예를 들어, 스마트폰은 디스플레이 모서리들과 평행한 모서리들을 갖고, 5, 32, 44 및 65의 숫자로 나타낸 특징점들을 포함하기에 충분히 큰 크기의 구속 상자(bounding box)를 전화 디스플레이 상에서 렌더링하도록 명령받을 수 있다. 특징점들은 치수가 재어지거나 표시될 수 있는 다른 정보를 참조하는 것에 의해 객체 내 이정표들로 유사하게 동작할 수 있다.
기준 특징점 정보의 또 다른 사용은 촛점 길이와 같은 카메라 렌즈 시스템의 본질적 파라미터들을 결정하는데 있다. 전형적으로, 이러한 스펙들은 제조자로부터 사용가능하거나, 또는 카메라에 의해 출력된 메타데이터에서 사용가능하다(예를 들면, EXIF 데이터에서). 그러나, 알려지지 않았다면, 렌즈 파라미터들은 사진측량 분야의 당업자들에게 친숙한 바와 같이, 알려진 특징점들을 포함하는 이미지들의 분석으로부터 경험적으로 결정될 수 있다. (이러한 방법들의 실행시, Hartley, "Multiple View Geometry in Computer Vision," Cambridge University Press, 2004에 의한 서적, 및 Pollefeys, "Self-Calibration and Metric 3D Reconstruction from Uncalibrated Image Sequences," Catholic University of Leuven, 1999의 논문과 같은 참조 문헌들을 참고할 수 있다.)
위에서 설명된 방식들에서, 워터마크 신호의 등록 성분들이 사용되지 않으며; 단지 워터마크의 페이로드가 채용된다. 이러한 방식들에서, 바코드들, OCR, 근거리 통신 칩들(Near Field Communication chips;RFID들), 등과 같은 다른 데이터 전달 메커니즘들이 대안적으로 사용될 수 있다.
매립된 또는 부착된 NFC 칩을 포함하는 프린트된 포스터를 고려한다. NFC 판독기가 구비된 스마트폰은 포스터를 식별하도록 동작하는 포스터의 NFC 칩으로부터 복수의 심볼 식별자를 감지한다. 이러한 포스터 식별 정보는 전화에 의해 데이터베이스로 전송되고, 포스터와 연관된 특징점들을 리턴한다. 사용자는 이후 위치 의존 방식으로 포스터와 상호작용할 수 있다.
예를 들어, 전체적으로 포스터에 존재하는 응답 데이터를 제공하는 대신(즉, 전형적인 NFC 사용 모델), 사용자는 스마트폰 카메라로 포스터의 상이한 영역들을 이미징할 수 있다. 전화는 캡처된 이미지의 특징점들을 식별하며, 그들을 NFC 포스터 식별 데이터의 제출에 응답하여 데이터베이스로부터 리턴된 특징점들과 매칭한다. 이러한 방식에 의해, 스마트폰은 포스터의 어떤 발췌 부분이 이미지화되는지를 (그리고, 원한다면, 포스터에 대한 전화의 포즈도) 구분한다. 이러한 발췌에 특히 대응하는 보조 정보가 이후 사용자에게 제공된다(원한다면, 기하학적으로 정합된 스크린 오버레이로서). 따라서, 이러한 사용자는 포스터의 제 1 부분을 볼 때 응답을 제공받을 수 있으며, 포스터의 제 2 부분을 본다면 상이한 응답을 제공받을 수 있다.
더욱 일반적으로, 이러한 특징점 방법들은 예를 들면, GPS보다 해상도에서 더욱 상세한, 매우 정밀한 위치 결정 방법들로 동작할 수 있다. 포스터를 포함하는 장소를 고려한다. 포스터 상의 고정점의 위치(예를 들면, 그의 중심)가 미리 결정되고, 이러한 정보가 포스터에 포함된 NFC 칩의 페이로드에 의해 식별된 데이터 기록에 저장된다(또는 칩의 데이터 페이로드의 일부로서 인코딩된다). 기준점의 위치는 경도/위도/고도(지리위치 데이터)와 같은 다양한 형식들로, 또는 포스터의 특징점들에 대한 그의 위치(예를 들면, 포스터의 중앙, 또는 상부 좌측 모서리)에 의해 간단히 표현될 수 있다. 위치 데이터는 또한 가능하다면(각도로), 포즈 정보, 예를 들면, 포스터가 향하는 나침반 방향, 및 그의 수평적 및 수직적 기울기를 포함할 수 있다. 이러한 NFC 칩을 감지하는 사용자는 데이터베이스로부터 포스터의 위치 좌표들 뿐만 아니라 포스터 아트워크에 대한 특징점 정보를 얻는다. 스마트폰은 이후 전화의 현재 시야로부터 캡처된 이미지를 분석하고, 포스터에 대한 전화의 포즈를 구분한다(예를 들면, 포스터의 중앙에서 3인치 우측, 4인치 하부, 그리고 24인치 떨어져 있으며, 10도의 기울기로 올려다보고 있으며 우측으로 20도의 각도가 있고, 전화기는 포스터에 대해 시계방향으로 4도 기울어져 있음). 포스터의 알려진 위치와 함께 이러한 특징점 결정된 포즈 정보를 이용하는 것에 의해, 전화의 절대적인 6D 포즈가 결정된다.
자연스럽게, 이러한 방법들은 포스터들과 다른 객체들에 이용될 수 있다. 그리고 이렇게 결정된 스마트폰 위치는 위치 결정에 의존하는 대부분의 방법들과 함께 사용될 수 있다.
때때로 흥미점들 또는 지역적 특성들로 알려진 두드러진 점들은 콘텐트 기반 이미지 검색(content-based image retrieval;CBIR) 및 다른 이미지 기반 기술들과 유사하다. 일반적으로 말해서, 이러한 점들은 이러한 위치들을 독특하고 검출에 민감하게 만드는 하나 이상의 선택된 이미지 특성들에 대한 상당한 지역적 편차가 있는 이미지의 위치들이다. 이러한 특성들이 휘도, 색상, 질감, 등과 같은 간단한 파라미터들 또는 그보다 복잡한 매트릭들(예를 들면, 가우시안(gaussians)의 차이)에 기초될 수 있다. 각 두드러진 점이 이미지 내의 그의 위치, 점의 방향 및/또는 그 위치와 연관된 정보를 나타내는 특성 벡터를 나타내는 데이터에 의해 표현될 수 있다. (SURF 구현들에서 일반적으로 사용된 특성 벡터는 흥미점 주위에 배열된 16개의 상이한 사각 픽셀 블록들의 각각에 대한 휘도의 기울기 정보의 4개의 값들을 상세히 설명하는 64개의 데이터를 포함한다.)
두드러진 점들은 개별적인 픽셀들(또는 이미지 내의 서브픽셀 위치들)에 대응할 수 있지만, 두드러진 점 검출기들은 일반적으로 모서리들과 같은 2D 구조들에 초점을 맞추거나, 또는 픽셀들의 사각형 영역들 내의 기울기들을 고려한다. 두드러진 점들은 지역적 이미지 서술자들의 하나의 특별한 타입이다. 특정 구현에 있어서, SIFT 또는 SURF 알고리즘들에 의해 사용된 두드러진 점들이 사용될 수 있다. 즉, 워터마크, NFC, 또는 스마트폰으로부터의 다른 객체 식별자의 수신에 응답하여, 원격 서버/데이터베이스는 그러한 객체에 대응하는 SIFT 또는 SURF 데이터의 세트를 리턴할 수 있다.
(SIFT는 데이비드 루에(David Lowe)에 의해 개척되고, "Distinctive Image Features from Scale-Invariant Keypoints," International Journal of Computer Vision, 60, 2(2004), pp.91-110; 및 "Object Recognition from Local Scale-Invariant Features," International Conference on Computer Vision, Corfu, Greece(September 1999), pp.1150-1157을 포함하는 다양한 그의 논문들 뿐만 아니라 특허 6,711,293에서 설명된 컴퓨터 비전 기술인 Scale-Invariant Feature Transform의 약어이다. SURF는 예를 들면, Bay et al, "SURF: Speeded Up Robust Features," Eur Conf. on Computer Vision(1), pp.404-417, 2006; 뿐만 아니라 Chen et al, "Efficient Extraction of Robust Image Features on Mobile Devices," Proc. of the 6th IEEE and ACM Int. Symp. On Mixed and Augmented Reality, 2007; 및 Takacs et al, "Outdoors Augmented Reality on Mobile Phone Using Loxel-Based Visual Feature Organization," ACM Int. Conf. on Multimedia Information Retrieval, October 2008과 관련되며, 이들에서 상세하게 설명된다.)
위에서 설명된 동작들에 대한 예비 행동으로서, (일반적으로 객체가 프린트되는 파일의 분석으로부터 객체의 소유주 또는 발행자에 의해) 객체에 대한 기준 두드러진 점 데이터가 결정되고, 이러한 데이터는 그러한 객체에 대한 식별자(예를 들면, NFC 식별자, 또는 워터마크 또는 바코드 페이로드, 등.)와 함께 데이터베이스에 저장된다.
일부 방식들에서, 두드러진 점 데이터는 미리 결정되지 않거나 저장되지 않을 수 있다. 대신, 이는 예를 들면, 크라우드소싱된 방식에서의 사용을 통해 전개될 수 있다. 예를 들어, 사용자는 포스터로부터 이미지를 캡처하고, 워터마크 페이로드를 디코드하고, 특징점 정보를 캡처한다. 워터마크 페이로드를 갖는 데이터베이스에 질의시, 스마트폰은 그러한 객체에 대해 미리 저장된 두드러진 점 기준 정보가 없음을 발견할 수 있다. 스마트폰은 이후 전화에 의해 구별된 정보를 제공하기 위해 데이터베이스에 의해 요청될 수 있고, 스마트폰은 그의 두드러진 점 정보를 저장을 위해 데이터베이스로 전송하는 것에 의해 응답할 수 있다.
스마트폰은 폰 객체 포즈에 관한 정보를 부가적으로 보낼 수 있다. 예를 들어, 전화의 워터마크 검출기는 워터마크 신호에 포함된 정합 신호 성분들을 참조하여 결정되는 그의 객체 관점의 크기 조정, 회전 및 변환을 특징으로 하는 밀접히 결합된 변환 파라미터들을 제공할 수 있다. 또는 전화 프로세서에 의해 실행된 이미지 처리 알고리즘이 시야 내에서 묘사된 알고 있는 아이템의 명확한 왜곡으로의 참조에 의해 포즈 정보의 적어도 일부 양태(들)을 구분할 수 있다(예를 들면, 사각형의 2D 바코드의 모서리들). 또다른 방식들에서, 전화는 캡처된 이미지 데이터를 전송할 수 있고, 이러한 포즈 추정 방법들은 전화에서보다는 데이터베이스와 연관된 프로세서에 의해 수행될 수 있다. 또는 포즈 데이터가 다른 방식으로(예를 들면, 음향 에코 기술들, 가속도계/자이로스코프/자기계 센서 데이터, 라디오 기반 위치, 등에 의해서) 결정될 수 있다.
이러한 포즈 정보를 참조하는 것에 의해, 데이터베이스와 연관된 프로세서는 전화로 제출된 두드러진 점 정보를 처리하고, 포즈-관련 왜곡들을 감소시키거나 제거하기 위해 이를 표준화하고, 이를 나중에 사용하기 위한 기준 데이터와 같이 저장할 수 있다. (또는 이러한 표준화가 저장을 위해 두드러진 점 정보를 데이터베이스에 제공하기 전에 스마트폰에 의해 수행될 수 있다.) 이러한 표준화된 두드러진 점 정보는 그 후에 제 2 스마트폰이 그러한 객체에 대한 기준 두드러진 점 정보를 얻고자 데이터베이스를 질의할 때 기준 정보로 사용할 수 있다.
유사하게, 전화 캡처된 이미지로부터 감지된 객체의 모서리들에 대한 데이터가 데이터베이스에 저장될 수 있다. 바람직하게, 이러한 정보는 두드러진 점 정보와 기하학적으로 관련되어, 두드러진 점들이 예를 들면, 객체의 상이한 모서리들로부터의 거리들을 나타내는데 사용된다.
다른 실시예들에서, 페이지 상에 표현되는 두드러진 점들(특성들)에 대한 미리 저장된 기준 데이터를 되돌리는 데이터베이스 대신, 페이지 이미지 자체의 복사본이 연관된 두드러진 점 데이터와 함께 또는 연관된 특징점 데이터 없이, 되돌려질 수 있다.
두드러진 점 기반 시스템들에 대한 더 많은 정보가 다음 섹션들에서 표현된다. 이러한 섹션들에서 설명된 실시예들의 상세한 설명들은 위에서 설명된 방식들에 포함될 수 있고, 반대도 그러하다.
두드러진 점들과 워터마크 검출
워터마크 검출은 보통 워터마크의 정합 신호 성분들(예를 들면, 공간 주파수 도메인의 임펄스들의 알려진 구성)에 대한 참조에 의한 워터마크된 객체의 제 1 추정 왕복이동, 회전 및 크기 조정에 의해 진행한다. 다음으로 캡처된 이미지가 이러한 추정된 밀접한 결합 왜곡들을 제거하도록 처리된다. 마지막으로, 워터마크 디코딩 알고리즘이 처리된 이미지에 적용된다.
본 기술의 다른 양태에 따라, 카메라에 대해 이미지화된 객체의 포즈가 위에서 설명된 바와 같은 기준 특징점들의 이용을 통해 추정된다. 포즈가 한번 추정되면, 교정용 조절들(예를 들면, 아핀 카운터 왜곡들)이 포즈 아티팩트들을 감소시키도록 캡처된 이미지에 만들어지고, 평면같은 뷰로 표준화되는 이미지의 프레임을 산출한다. 워터마크 디코딩 알고리즘이 이후 교정된 이미지에 적용된다.
평면 객체 상에서, 두드러진 점들의 매우 작은 세트가 이러한 목적을 위해 충분할 수 있다(예를 들면, 3개의 점들). 프린트된 물질들에서 일반적으로 발견되는 그래픽 표시(예를 들면, 재활용 심볼, 또는 회사 로고들, 또는 사각형의 바코드들까지)는 이러한 목적에 잘 맞는다. 대안적으로, 전형적인 잡지 페이지의, 또는 전형적인 크기들의 직사각형의 외부선이 또한 충분할 수 있다.
이미지 잡음 제거를 위한 두드러진 점들
워터마크 신호들은 일반적으로 진폭이 작고, 저광 노출들로부터 일어날 수 있는 이미지 잡음에 의해 열화될 수 있다. 다른 이미지 동작들이 유사하게 이미지 잡음을 겪는다(예를 들면, 핑거프린트 기반 이미지 인식). 이미지 잡음은 노출 간격을 연장하는 것에 의해 감소될 수 있으나, 너무 길면 움직임 블러의 위험을 증가시킨다.
본 기술의 다른 양태에 따라, 비디오 캡처 모드의 스마트폰에 의해서와 같이, 장면의 다중 이미지 프레임들이 캡처된다. 각 프레임은 독립적으로 약간의 신호-대-잡음 비율을 가질 수 있다. 이러한 신호-대-잡음 비율은 그들의 공통 특징점들을 참조하여 다중 프레임들을 기하학적으로 정렬하고, 이후 정렬된 프레임들을 평균하는 것에 의해 개선된다. 이렇게 얻어진 합성 프레임은 성분 프레임들보다 잡음이 낮아지고, 이러한 장점은 움직임 블러의 위험이 없이 성취된다. 이러한 합성 프레임은 이후 워터마크 디코딩을 위해 워터마크 검출기로 제공될 수 있거나, 또는 다르게 사용된다.
이러한 방법은 (예를 들면, SURF 기술을 사용하여) 프레임들의 각각에서의 두드러진 점들을 식별하는 것에 의해 동작한다. 대응하는 점들이 이후 프레임들 사이에서 매칭된다. 프레임들 사이의 점들의 움직임은 하나의 프레임이 다음 프레임을 산출하기 위해 변화한 변환을 수량화하기 위해 사용된다. 이러한 각각의 변환들은 이후 프레임들의 각각을 (예를 들면, 5개의 프레임들의 시퀀스 중 가운데 프레임일 수 있는) 공통 기준으로 배열하도록 역변환된다. 배열된 프레임들이 이후 평균된다.
비디오 캡처 모드는 방법의 빠른 수행을 용이하게 하는 어떠한 가정들을 허용한다. 예를 들어, 두드러진 점들의 프레임 대 프레임 전환 움직임이 작으면, 이전 프레임으로부터 특징점을 식별하기 위한 대상 프레임 조사시, 모든 프레임이 검색될 필요가 없다. 대신, 검색이 이전 프레임의 점의 위치에 모여있는 작은 범위의 이웃(예를 들면, 32 x 32 픽셀들)으로 제한될 수 있다.
유사하게, 두드러진 점들의 프레임 대 프레임 회전 변환이 작을 것 같으면, 점들에 대한 특성 벡터들은 관습적인 방향 정보를 생략할 수 있다.
마찬가지로, 프레임들의 시퀀스에서 캡처된 이미지의 스케일 벡터가 상대적으로 균일할 것 같은 경우에도 이와 같으며, 매칭점들을 찾을 때 고려되어야 하는 검색 공간을 다시 제한한다.
특별한 매칭 알고리즘이 제 1 및 제 2 프레임들에서 관습적으로 식별된 두드러진 점들로 시작한다. 예시적인 프레임은 20-400개의 두드러진 점들을 가질 수 있다. 제 1 프레임의 각 점에 대하여, 이들 특성 벡터와, 제 2 프레임의 각 두드러진 점의 특성 벡터 사이의 유클리드 거리가 계산된다. 제 1 프레임의 각 점에 대하여, 가장 가까운 유클리드 거리를 갖는 제 2 프레임의 점이 후보 매치로서 식별된다.
때때로, 제 2 프레임의 점이 제 1 프레임의 둘 또는 그 이상의 점들에 대한 후보 매치로 식별될 수 있다. 이러한 후보 매치들은 폐기된다. 계산된 유클리드 거리가 임계치를 넘는 후보 매치들도 또한 폐기된다. (절대값 임계가 사용될 수 있으며, 또는 거리 값들의 가장 큰 10%에 기초하여 알고리즘은 후보 매치들을 폐기할 수 있다.) 한 세트의 후보 매치들이 남는다.
도 20은 제 1 및 제 2 프레임들 모두에서, 남아있는 두드러진 점들의 위치를 도시한다. 보여질 수 있는 바와 같이, 프레임의 중심 근처의 점들이 더 근접하여 일치한다. 멀리 갈수록, 일부 이동이 있는데, 일부는 두 이미지 프레임들 사이의 약간 상이한 스케일로 인한 것이고(예를 들면, 사용자가 대상으로 카메라를 더 가까이 움직였다), 일부는 왕복이동으로 인한 것이다(예를 들면, 사용자가 카메라를 약간 흔들었다).
제 1 근사로, 제 1 및 제 2 프레임들 사이의 변환이 스케일 팩터에 의해, 및 왕복이동(X- 및 Y-의)에 의해 특징될 수 있다. 스케일이 먼저 추정된다. 이는 다양한 양들에 의해 남아있는 두드러진 점들의 제 2 프레임을 스케일하고, 스케일된 점의 위치들 사이의 거리들의 히스토그램과, 제 1 프레임에서의 그들의 가장 가까운 대응물들을 검사하는 것에 의해 행해진다. 도 21은 1.01, 1.03, 1.05, 및 1.07의 스케일 팩터들에 대한 결과들을 도시한다. 보여지는 바와 같이, 1.05의 스케일이 최상의 피크를 산출한다.
남아있는 두드러진 점들 중 제 2 프레임이 결정된 스케일 값(1.05)에 따라 다시 스케일된다. 스케일된 점 위치들 사이의 거리들(X- 및 Y-의)과, 제 1 프레임의 그들의 가장 가까운 대응물들이 이후 계산되고, X- 및 Y- 오프셋의 중간 값들이 이후 계산된다. 이는 제 1 이미지에 관한 제 2 이미지의 정렬을 특징으로 하는 변환의 제 1 근사를 완성한다.
원한다면, 이러한 근사는 더욱 개선될 수 있다. 하나의 적절한 기술은, 결정된 스케일과 X-, Y- 오프셋들을 적용한 후에 임계 거리 내에서 아직 정렬하지 않은 이러한 후보 점쌍들을 폐기하는 것에 의하는 것이다. 결정된 스케일과 오프셋들에 기초한 밀접한 결합 변환이 이후 반복적인 방식으로 아직 남아있는 후보점들 사이에서 최적의 최소제곱법을 산출하는 변환을 식별하기 위하여 섭동된다.
한 실험에서, 스마트폰의 비디오 캡처 모드를 사용하여 디지털로 워터마크된 사진의 500개의 프레임들이 저광에서 캡처되었다. 개별적으로, 500개의 프레임들 중 25%가 인코딩된 디지털 워터마크를 판독하도록 처리될 수 있다. 시간의 49%에서 5개의 프레임들의 각 시퀀스의 하나 이상의 프레임들로 성공적인 워터마크 판독이 이루어졌다. 5개의 프레임들의 연속적인 그룹들이 임의의 정렬 없이 평균되었다면, 결과는 18%로 떨어진다. 그러나, 5개의 프레임들의 각 시퀀스가 위에서 설명된 바와 같이 정렬되고 평균되었다면(다른것들이 매칭되는 기준으로서 제 3 프레임을 사용하여), 성공적인 워터마크 판독이 시간의 60%에서 성취되었다.
워터마크 판독 동작들의 성공을 개선시킨 설명된 절차와 같이, 두드러진 점 배열 및 평균화에 기초한 다중 이미지 프레임들의 이러한 처리는 다른 목적들(소비자 만족을 포함하는)을 위해서도 유사하게 낮은 잡음의, 선명한, 이미지들을 산출할 수 있다.
앞의 방식과 함께, 또는 독립적으로 사용될 수 있는 다른 방법은 비디오 시퀀스의 각 프레임이 캡처된 순간에 대응하는 스마트폰의 움직임 센서 데이터를 기록하는 것이다. 센서 데이터(예를 들면, 3D 가속도계 또는 자이로스코프)가 임계 값을 넘는 움직임을 나타낸다면, 이미지의 대응하는 프레임이 폐기되어 평균 동작에 사용되지 않을 수 있다. 임계치는 예를 들면, 가장 높은 움직임 값들을 갖는 열개의 시퀀스의 각각에서 두개의 프레임들을 폐기시키는 것에 의해 적응될 수 있다.
(예비 연구들은 소형 기기의 움직임의 크기가 0에서 상대적으로 큰 값들까지 소형 전화에서 시시각각 폭넓게 변화한다는 것을 나타낸다. 나중 프레임들을 폐기하는 것에 의해, 매우 개선된 결과들이 성취될 수 있다.)
채널화된 오디오 워터마크들
오디오 워터마크들이 오디오 및 오디오-비디오 콘텐트와 연관된 네트워크 서비스들을 제공하기 위해 점점 더 사용되고 있다. 하나의 예가 ABC 텔레비전에 의해 공급되고 애플 앱 스토어에서 다운로드할 수 있는 그레이 아나토미 싱크(Sync) 애플리케이션이다. 이러한 아이패드 앱은 그레이 아나토미 프로그램의 시청자들이 프로그램을 시청하면서 다른 팬들과 (예를 들면, 채팅 기능성에 의해) 상호작용할 수 있게 하고, 실시간으로 에피소드와 관련된 콘텐트(예를 들면, 배우의 전기들, 퀴즈들, 등)을 얻을 수 있게 한다. 유사하게, 음악 콘텐트의 오디오 워터마크들은 청취자들이 다른 팬들과 상호작용하고, 관련된 정보를 얻는 것을 허용할 수 있다.
오디오 워터마크 정보는 일반적으로 매우 낮은 레벨의 오디오 데이터로부터 분리할 수 없는 잡음같은 신호로 콘텐트 자체에 짜여져 들어간다. 워터마크의 제거는 일반적으로 매우 힘들거나 또는 불가능하다.
본 기술의 다른 양태에 따라, 오디오 워터마크 정보가 개별적인 오디오 채널로 전달되어, 이러한 정보가 사용자의 욕구들에 의존하여, 또는 다른 상황들에 의존하여 렌더링되거나 그렇지 않을 수 있다.
하나의 적절한 포맷은 8개의 개별적인 오디오 채널들의 각각에서 24 비트의 오디오를 전달할 수 있는 돌비 트루HD(Dolby TrueHD)이다. 다른 것으로, 지금 다중 오디오 채널들을 지원하는 마이크로소프트의 WAV 파일 포맷이 있다. 또 다른 것으로는 유럽 방송 연합에 의해 명시된 것과 같은, RF64 포맷이 있다.
예시적인 구현은 부가적인 채널 상에서 전달된 연관된 워터마크 데이터를 갖는, 오디오 애호가의 5.1 또는 7.1 서라운드 음향 시스템을 이용하는 가정용 오디오 시스템이다. 오디오 수신기 상의(및/또는 원격 제어 디바이스 상의) 제어에 의해, 사용자는 워터마크 채널이 렌더링되어야 하는지, 또는 아닌지 명령할 수 있다. 렌더링이 선택되면, 수신기는 워터마크 데이터를 하나 이상의 스피커 채널들(예를 들면, 전면 좌측 및 우측 스피커들)로 혼합한다. 워터마크의 진폭은 일반적으로 혼합시 변화되지 않지만, 일부 구현들은 사용자에게 혼합된 워터마크의 진폭을 변화시킬 수 있는 일부 능력을 부가적으로 줄 수 있다.
다른 구현은, 오디오가 기록된 원래의 다중 트랙 형태로 오디오가 소비자들에게 전달되어, 사용자들이 자신의 믹싱을 생성하는 것을 허용하는 날을 기대한다. (예를 들어, 색소폰을 좋아하는 소비자는 밴드의 16-트랙 녹음 중 색소폰 트랙을 강조하고, 드럼 트랙을 약화시킬 수 있다, 등) 다시, 이러한 구현에서, 사용자가 워터마크에 의해 사용가능한 네트워크 서비스들 또는 다른 특성들을 사용하려고 계획하는지 여부에 의존하여, 마지막 오디오 믹싱시 워터마크 신호를 포함하게 하거나, 또는 그대로 놔두는 기회가 사용자에게 주어진다.
대부분의 구현들에서, 단일의 워터마크 트랙이 제공된다. 그러나, 다중 트랙들이 사용될 수 있다. 이러한 하나의 실시예는 기본 워터마크 트랙, 및 복수의 다른 트랙들을 갖는다. 다른 트랙들의 각각은 데이터 채널이며, 이는 대응하는 오디오(악기) 트랙과 연관되어야 하는 워터마크의 진폭 성분을 명시한다. 방금 주어진 예에서, 드럼 트랙이 진폭에서 약화된다면, 이후 마스킹을 위해 드럼 트랙에 의존하는 워터마크 신호의 어떠한 특성들을 유사하게 약화시키는 것이 바람직할 수 있다. 진폭 데이터 채널들은 대응하는 오디오(악기) 트랙의 사용자 설정된 진폭에 따라 크기가 조정되며, 모든 이러한 채널들로부터 조정된 진폭 데이터는 이후 워터마크 신호에 대한 순수 스케일 팩터를 산출하기 위해 합쳐진다. 이후 워터마크 신호는 이러한 스케일 팩터에 따라 (예를 들면, 곱하는 것에 의해) 진폭에서 동적으로 조절될 수 있고, 따라서 워터마크의 진폭은 전체 오디오를 포함하는 다양한 오디오 트랙들의 진폭들에 최적으로 대응한다.
오디오의 트랙들은 소비자 전자 장치가 위에서와 같이 그들을 판독하고 처리하는 컴퓨터 판독가능한 매체에 저장될 수 있다. 또는 트랙들이 케이블 또는 온라인 전달 서비스에 의해서와 같이 디바이스로 스트리밍될 수 있고, 판독 및 처리되기 전에 메모리에 간단하게 버퍼링될 수 있다.
캡처된 장면의 다중 객체들의 명확화
종종 스마트폰은 공유된 환경에서 몇몇 상이한 객체들을 묘사하는 이미지 프레임을 캡처할 수 있다. 예로는 단일의 사진 이미지 내에 다양한 제품들을 표시하는 백화점 광고가 있다. 다른 예로는 분류된 광고의 페이지가 있다. 복수의 상이한 객체들을 포함하는 이러한 문서들은 "합성물들"로 불릴 수 있다. 종종 합성물의 일부를 형성하는 각 객체는 상이한 전자적 응답(예를 들면, 대응하는 온라인 웹 페이지, 또는 다른 트리거된 행동)과 연관되는 것이 바람직하다
본 기술의 다른 양태에 따라, 앞서 말한 것은 합성 주어와 연관된 식별자를 결정하고, 이를 데이터 저장소에 전송하고, 원래의 합성물의 일부 또는 모두를 렌더링이 생성될 수 있는 데이터를 포함하는 인증된 페이지에 응하여 수신함으로써 달성될 수 있다. 이러한 수신된 페이지는 상이한 클릭가능한(탭 가능한) 영역들을 규정할 수 있다. 사용자는 렌더링된 페이지상에 보여지는 흥미있는 특정 객체를 탭하고, 스마트폰은 (이미지를 하이퍼링크로서 렌더링하는 친숙한 HTML 하이퍼텍스트 마크업을 통해서와 같은) 본 기술분야에서 알려진 기술들을 사용하여 상기 영역과 연관된 응답을 실행함으로써 응답한다.
이러한 방식에서, 스마트폰 스크린 상에 표시된 이미지는 스마트폰 카메라에 의해 캡처된 이미지가 아닐 수 있다. 대신, 이는 일반적으로 원격 저장소에서 스마트폰으로 전달된 페이지(파일)이다. 그러나, 이는 사용자가 상호작용하는 동일한 합성물의 버전을 보여준다(비록 일반적으로 스마트폰으로 캡처된 이미지의 임의의 관점 왜곡으로부터 자유한 "평면" 뷰에서 일지라도).
스마트폰으로 전달된 파일은 종래와 같이 스마트폰 스크린 상에 한번에 디스플레이될 수 있는 것보다는 크게 자연스러운 크기/해상도로 합성물을 표현할 수 있다. (즉, 원래 캡처된 이미지가 인치당 50 픽셀에서 묘사된 대상을 디졸브할 수 있지만, 전달된 파일은 인치당 72 픽셀의 해상도를 제공할 수 있다. 따라서, 원래 캡처된 이미지의 10 픽셀들에 걸친 프린트된 페이지 상의 특성은 전달된 파일에서는 14 픽셀들에 걸칠 수 있다.) 사용자는 디스플레이 크기를 변화시키고, 원하는 발췌 내용을 화면에 가져오도록 페이지를 가로지르기 위하여 핀칭, 스와이핑, 등을 포함하는 알려진 터치스크린 제스처들을 사용할 수 있다. (커다란 스케일/해상도로 인하여, 일부 종류의 다운 샘플링이 없을 때, 전달된 파일의 픽셀들의 전부를 한번에 스크린 상에 제공하는 것이 가능하지 않을 수 있다.) 사용자가 관심있는 대상인 묘사된 객체가 편리한 크기로 디스플레이 상에 한번 표현되면, 사용자는 연관된 행동을 런칭하기 위해 이를 탭한다.
합성물과 연관된 식별자를 결정하기 위한 기준이 만들어졌다. 이는 다양한 방식들로 수행될 수 있다. 일부 실시예들에서, 합성물에서 묘사된 각 객체가 그 자신의 머신 판독가능한 코드로 인코딩된다(예를 들면, 디지털 워터마크, 바코드, 등.) 임의의 이들이 디코딩되고, 그의 페이로드가 원격 서버로 보내지면, 이에 응답하여 시스템은 동일한 합성 페이지 데이터로 응답한다(즉, 다중 입력 페이로드들 전부가 동일한 출력 페이지로 리졸브한다). 대안적으로, 전체적인 합성물이 단일의 식별자로 인코딩될 수 있다(예를 들면, 전체 합성물에 걸친 디지털 워터마크, 또는 몇몇 객체들을 묘사하는 프린트된 페이지 상의 단일의 바코드). 다시, 시스템은 스마트폰 디스플레이 상에서의 렌더링을 위해 페이지 데이터를 리턴함으로써 이러한 단일의 식별자의 전송에 응답할 수 있다.
유사하게, 합성물에 묘사된 개별적인 객체들, 또는 합성물의 다른 발췌들(이러한 합성물 전체 그대로를 포함하여)이 SURF와 같은 이미지 지문 기술들에 의해 인식될 수 있다. 다시, 이러한 식별은 렌더링을 위해 대응하는 전자 페이지와 연관될 수 있는 그러한 대상에 대한 식별자로 매핑할 수 있다.
또 다른 실시예들에서, 스마트폰은 예를 들면, 대응하는 검출기를 사용하여 합성물에 의해 전달된 NFC 또는 RFID 칩으로부터 식별자를 검출하는 것에 의해 스마트폰의 카메라의 사용없이 합성물로부터 식별자를 구분할 수 있다.
사용자와의 상호작용을 위해 스마트폰 상에 표시된 전자 페이지는 시각적으로 경험을 시작하는 물리적 페이지에 상이한 정도로 대응할 수 있다. 일부 실시예들에서, 전자 페이지는 물리적 페이지와 구분할 수 없을 수도 있다(예를 들면, 기울어지기보다 평평한 관점으로부터와 같이, 상이한 관점에서 제공될 수 있는 것을 제외하고). 다른 실시예들에서, 전자 페이지는 동일하지는 않으나 시각적으로 유사할 수 있다. 예를 들어, 더 낮은 해상도의 것일 수 있고, 또는 더 작은 색상 팔레트, 또는 다른 스타일의 그래픽 효과 등이 페이지에 표시될 수 있다.
이러한 방식들을 통해, 시스템은 대응하는 자원들로 링크하거나 또는 대응하는 행동들을 트리거하는 스마트폰 스크린 상의 클릭/탭이 가능한 영역들에 사용자에 의해 보여지는 합성물의 버전을 복제한다.
앞의 방식이 사용자에게 특별하게 관심이 있는 것을 구분하기 어렵게 하는, 이미지의 단일 프레임 내의 다중 머신 판독가능한 표시를 검출하는 스마트폰의 워터마크 또는 바코드 검출기의 잠재적인 문제를 피하고 있다는 것이 인식될 것이다. 대신, 그것이 다중 객체들을 묘사할 수 있더라도 단일 프레임은 그에 응답하여 단일 전자 페이지에 매핑한다. 사용자는 이후 탭에 의해(또는 대안적인 사용자 인터페이스 선택에 의해) 어떤 객체에 관심이 있는지를 명확하게 나타낼 수 있다.
(위에서 상세히 설명된) 스트리밍 모드 검출기들의 일부 실행들에서 관련된 문제가 발생할 수 있다. 사용자가 관심있는 특별한 객체의 이미지를 캡처하기 위해 스마트폰 카메라를 움직이면, 스마트폰은 (사용자가 관심이 없을 수도 있는) 합성물의 일부를 형성하는 많은 다른 객체들의 이미지들을 캡처할 수 있고, 또한 스마트폰은 각각으로부터 머신 판독가능한 식별자들을 디코딩할 수 있다.
본 기술의 다른 양태에 따라, 전화의 움직임 센서들(예를 들면, 가속도계들, 자이로스코프들 및/또는 자기계들)이 움직임이 임계 정도를 넘는다는 것을 표시할 때 스마트폰은 특정 모듈들(예를 들면, 워터마크 및 바코드 디코더들, NFC 판독기들, 등)의 동작을 디스에이블할 수 있다. 예를 들어, 전화가 초당 2, 4 또는 6 인치를 넘는 움직임을 감지하면, 이는 이러한 모듈들의 동작을 억제할 수 있다. (일부 움직임은 단지 자연적인 손 흔들림 때문에 발생한다.) 전화는 움직임이 임계 값 이하로, 또는 상이한 임계치(예를 들면, 초당 1인치) 이하로 떨어질 때, 모듈 동작을 다시 시작할 수 있다. 이러한 방식에 의해, 의도되지 않은 식별자들의 디코딩이 억제된다.
예를 들면, 신문들에 대한 프린트-투-웹 페이오프들( payoffs )
나타내진 바와 같이, 신문들이나 잡지들과 같은 프린트 매체는 히든 페이로드 데이터를 끼워넣기 위해 디지털로 워터마크될 수 있다. 이러한 페이로드 데이터가 스마트폰 상의 적절한 워터마크 검출 프로그램에 의해 감지되면(예를 들면, 디지맥 디스커버(Digimarc Discover) 앱), 이는 스마트폰이 연관된 온라인 콘텐트를 디스플레이하기 위해서와 같이, 연관된 "페이오프"를 표현하도록 할 수 있다.
신문이 대량의 그의 매일의 사진들, 또는 대량의 그의 매일의 기사들을 디지털로 워터마크할 경우, 발행자가 각 사진/기사에 대해 적절한 페이오프를 명시하는 것은 논리적인 도전이 될 수 있다. 생성 스케줄들이 망가지면, 일부 발행자들은 그들의 워터마크된 이미지들 모두를 간단히 발행의 온라인 존재의 홈페이지(예를 들면, www.nytimes.com 웹 페이지)로 다시 링크하도록 배열한다. 대안적으로, 발행자는 프린트 기사에 대한 페이오프는 간단히 동일한 기사의 온라인 버전이라고 지정할 수 있다.
그러나, 이러한 방편은 거의 부가된 값을 제공하지 않는다.
본 기술의 다른 양태에 따라, 신문 기사(또는 이미지)가 매우 적은 수고로 또는 수고없이 더욱 가치있는 페이오프에 연관된다.
하나의 특별한 실시예에서, 신문이 구독자들에게 전달되기 전에(그러나 워터마크 ID는 기사들로 할당된 후에), 오퍼레이터(operator)가 기사와 연관되는 몇몇(예를 들면, 2-5) 키워드들(예를 들면, 오바마, 푸에르토리코; 또는 스탠리 컵(Stanley Cup), 브루인스(Bruins))을 타이핑할 수 있다. 이러한 키워드들은 기사가 디지털로 워터마크되는 워터마크 페이로드 ID와 연관하여 중앙 컴퓨터 시스템의 데이터베이스에 저장된다. 이후 시청자가 워터마크를 디코딩하고 페이오프에 링크하기 위해 이지맥 디스커버 앱을 이용할 때, 페이오프는 그러한 기사에 대해 입력된 키워드들에 기초한 구글(또는 빙(Bing)과 같은 다른 제공자) 검색이다.
실제로, 발행자가 임의의 다른 페이오프를 명시하지 않는 경우에, 구글 키워드 검색은 디폴트로, 또는 방어벽, 페이오프로서 사용될 수 있다. 따라서, 일반적인 작업흐름에서, 키워드들은 기사와 연관하여 저장되고, 저장된 키워드들에 기초한 구글 검색은 기사에 대한 페이오프로서 처음으로 명시된다. 그러나, 그 후에 신문 발행자, 또는 기사의 작성자가 상이한 페이오프를 명시하기 위해 저장된 데이터를 변화시킬 수 있다. (때때로 저자에 의해 명시된 온라인 페이오프가 기사 텍스트를 갖는 발행자에게 제출되고, 이 경우 이러한 저자에 의해 명시된 페이오프는 시작부터 온라인 페이오프로서 사용될 수 있다.)
또 다른 실시예에서, 키워드들이 수동으로 입력되지 않고, 그보다 예를 들면, 태그 클라우드 기술들에 의해 기사의 텍스트로부터 추출된다. 하나의 특별한 태그 클라우드는 기사내의 명사들을 빈도를 통해 랭크시키고, 가능하게는 "잡음 단어들"을 폐기한다. 동시발생 방법들이 두개의 단어들 또는 그 이상의 구들을 식별하기 위해 사용될 수 있다. 가장 빈번하게 발생하는 용어들이 기사의 키워드들로 저장된다. 이러한 기술은 당업자들에게는 익숙하다.
또 다른 실시예에서, 시스템은 기사 저자에 기초한 잦은 키워드들을 예측할 수 있다. 오레곤주의 위한 유명한 스포츠작가는 트레일블레이저스(Trailblazers) 농구 팀에 대해 일상적으로 쓴다. 뉴욕 타임즈의 폴 크루그먼(Paul Krugman)은 경제에 대하여 일상적으로 쓴다. 이러한 키워드들에 기초한 구글 검색은 그들의 기사의 콘텐츠에 대하여 임의의 특별한 정보가 없을 때에도 적절한 디폴트 페이오프가 될 수 있다.
또 다른 방법은 패턴 매칭 또는 얼굴 인식에 의한 것과 같이, 이미지로부터 시맨틱 정보를 추출한다. 예를 들어, 신문 사진들에서 유명한 사람, 유명한 랜드마크들의 묘사들을 식별하기 위해 알려진 방법들이 사용될 수 있다. 이러한 기술들의 사용을 통해 구분된 이름들이 이러한 사진들에 대한 키워드들로서 저장될 수 있다.
이미지의 콘텐츠를 구분하는 것은 자동화된 시스템이 이미지에 관한 위치 정보의 일부 지식을 가질 경우 도움이 된다. 예를 들어, 오리건 주(Oregonian)의 신문은 지역과 주의 임원의 얼굴들을 포함하는 이미지를 자주 공개한다. 그들의 얼굴들은 세계에 있는 얼굴들로부터 얻어진 기준 얼굴 데이터와 매칭하는 것이 어렵다. 그러나, 이러한 이미지가 오리건 주에서 공개된다는 지식은 인식 시스템에 묘사된 사람/랜드마크들을 식별하는데 사용될 수 있는 다른 단서를 주고, 오리건 주와 연관된 얼굴 데이터와의 매칭들을 위해 먼저 체크한다.
앞의 실시예들에서, 자동적으로 생성된 키워드들이 부적절하거나 불충분해 보일 경우, 상기 자동적으로 생성된 키워드들은 이러한 출력을 감독하고 이것을 수정할 수 있는 오퍼레이터에 의해 리뷰될 수 있다.
보통, 워터마크 기반 프린트-투-웹 스마트폰 앱이 워터마크 페이로드를 감지하고 온라인 페이오프로의 링크를 시작할 때, 워터마크를 검출한 앱은 스크린에서 사라지고, 이는 전화의 웹 브라우저에 의해 대체된다. 이는 디지맥 디스커버 앱의 초기 릴리즈들을 갖는 경우였다. 그러나, 본 기술의 바람직한 구현에 따라, HTML 5 또는 어도비 플래시가 그러한 앱 상황을 떠나지 않고 워터마크 판독 앱에 의해 디스플레이된 카메라 뷰의 맨 위에 시각적 오버레이로서 연관된 온라인 페이오프(예를 들면, 인용된 구글 검색)를 렌더링하는데 사용된다.
특별한 구현에서, 중앙 컴퓨터 시스템의 데이터베이스는 워터마크 페이로드 ID들을 연관된 페이오프들의 상세한 내용들과 연관시킨다. 이러한 데이터베이스는 신문 발행자에 의해, 또는 다른 사람들에 의해 유지될 수 있다. 각 워터마크 페이로드 ID에 대해 그러한 기사(또는 사진)에 대한 키워드들을 포함하는 연관된 데이터베이스 기록이 있다. 데이터베이스 기록은 또한 HTML 5 템플릿을 명시한다. 데이터베이스가 디코딩된 워터마크 ID를 제공하는 스마트폰 앱에 의해 정보를 얻을 때, 데이터베이스는 HTML 5 템플릿을 가져오고, 연관된 키워드들을 삽입하며, 이를 다시 스마트폰으로 리턴한다. 스마트폰 앱은 그후 리턴된 HTML 템플릿에 따라 스크린 디스플레이를 렌더링한다. (대안적으로, 데이터베이스는 키워드들로 구글에 질의할 수 있고, HTML 페이지의 완전한 형태를 스마트폰으로 리턴하고, 이는 포함된 구글 검색 결과들을 이미 갖는다.)
사용자에게 제공되는 구글 결과들을 제한하는 것이 바람직할 수 있다. 예를 들어, 뉴욕 타임즈(New York Times) 기사로부터의 온라인 페이오프가 독자를 경쟁 신문들의 기사들을 인도한다면, 이것은 곤란할 것이다. 따라서, 다른 실시예에서, 스마트폰 앱에 의해 표시되는 구글 검색은 뉴욕 타임즈 웹 사이트, 및 비경쟁 도메인들(예를 들면, 위키피디아, US 정부 웹 사이트들, 등)과 같이 도메인에 제한이 있을 수 있다.
독자가 신문 기사(예를 들면, 오바마의 푸에르토리코 방문에 대한)로부터 키워드 기반 구글 검색 결과들의 대응 페이지로 링크하면, 앱은 사용자가 그후 어떠한 검색 결과를 추구하는지 모니터링할 수 있다. 전체적으로, 이러한 사용자의 선택들은 시스템이 사용자들의 명백한 관심들을 더욱 잘 따라가도록 그러한 기사에 대한 온라인 페이오프를 변경하게 할 수 있다.
예를 들어, 키워드들 "오바마"와 "푸에르토리코"를 갖는 구글 검색은 그의 방문의 뉴스 보고들(뉴욕 타임즈, 더 네이션(The Nation), 알 자지라(Al Jazeera), 등에 의해 공개된)에 의해 향해진 결과들의 리스트를 나타낸다. 그러나, 검색 결과들의 낮은 곳에는 집회에서의 오바마의 춤을 보여주는 유튜브 링크가 있다. HTML 5 코드는 앱으로 및/또는 그로부터의 교통량을 관찰할 수 있으며, 사용자가 추구하는 링크(들)을 데이터베이스에 나타낼 수 있다. 댄싱 링크에 클릭하는 사용자의 수에 기초하여, 시스템은 페이오프를 수정할 수 있으며 따라서 이러한 결과는 검색 결과들의 리스트의 더 높은 곳에 나타난다.
데이터베이스는 유사하게 푸에르토리코에서 오바마가 마신 "세르비자(cerveza)"와, 먹은 "플라타노스(platanos)"에 관한 링크들에 관심을 보이는 시청자를 기억할 수 있다.
이러한 용어들 모두는 데이터베이스 키워드들로서 부가될 수 있으며, 검색을 위한 기본으로 사용된다. 그러나, 결과들이 이후 이전에 최상에 랭크된 뉴스들의 카운트들을 배제할 수 있다. 이러한 예에서, 데이터베이스에 대해 복수의 구글 질의들을 수행하는 것이 더 나은데, 하나는 원래의 키워드들을 갖고; 하나는 이러한 키워드들과 "춤"을 갖고; 하나는 이러한 키워드들과 "세르비자"를 가지며; 하나는 이러한 키워드들과 "플라타노스"를 갖는다. 원격 시스템이 이후 상이한 대상들의 표시된 사용자 인기도에 기초하여 결과들을 조합하고, 이러한 변경된 결과들을 그 이후에 기사로부터 링크하는 스마트폰들로 되돌려보낼 수 있다. 이러한 나중 사용자들은 이후 유튜브 비디오에 의해 향해진 검색 결과들을 볼 수 있다. 링크들이 스마트폰 앱 상에 표시되는 순서는 신문의 독자들 중에서 그들의 명백한 인기도에 대응하여 맞춤될 수 있다.
이러한 방식에 의해, 신문은 그의 독자층에 유명해질 특별한 기사에 대한 온라인 페이오프를 규정하는 부담으로부터 벗어나게 된다. 대신, 연속적인 클라우드 소스 피드백을 갖는 초기 구글 검색은 시스템이 독자의 보여진 관심들을 만족시키는 온라인 페이오프를 자동적으로 구분하는 것을 허용한다.
때때로, 하나의 기사에 대한 사용자 응답들은 신문이 제 2의 관련된 기사와 연관시키는 링크들에 영향을 끼칠 수 있다. 오바마의 푸에르토리코 방문의 정치에 대한 기사를 4쪽에 포함하고, 춤추는 것을 포함하여 오바마의 방문에 대한 다른 관심있는 휴먼 스토리를 5쪽에 포함하는 오르곤 주 판(edition)을 고려하자. 트래픽량 분석은 매우 많은 독자들이 4쪽의 이야기에 관심을 표현하기보다 5쪽의 이야기에 관심을 표현한다는 것을 나타낼 수 있다(그들의 디지맥 디스커버 앱으로 이를 제공하는 것에 의해). 이러한 이야기에 대한 온라인 페이로드를 확실하게 변화시키기에 4쪽의 이야기로부터 충분한 트래픽이 없을 수 있다(예를 들면, 위에서 상세히 설명된 방식으로). 그러나, 중앙 시스템은 키워드 유사성에 의해 신문의 어떤 다른 기사(들)이 관련되는지 찾기 위해 4쪽의 기사의 시맨틱 비교를 수행할 수 있다. 이러한 처리에 의해, 5쪽의 기사는 4쪽의 기사와 관련된다는 것이 발견된다. 이러한 이벤트에서, 시스템은 4쪽 기사의 독자들에게 페이로드 옵션으로서 5쪽 기사의 독자들에게 가장 인기있음을 증명하는 링크(들)을 표시할 수 있다.
이동가능한 객체들에 링크된 태그들
위에서 상세히 설명된 특성들의 특정 부분을 확장하여, (예를 들면, 워터마킹 또는 핑거프린팅에 의해) 객체들이 이미지에서 인식될 수 있으며, 스마트폰은 이러한 디스플레이된 객체들과 연관된 태그들(아이콘들 또는 바블들로도 알려진)을 제공할 수 있다는 것이 인식될 수 있다. 연관은 "접착성이 있을(sticky)" 수 있다. 즉, 스마트폰 스크린 상에 디스플레이된 시야가 변화되면, 디스플레이된 태그가 그들이 상대적으로 연관되는 객체들의 명백한 움직임에 따라 움직인다.
이러한 행동이 직관적 응답을 제공하지만, 사용자가 예를 들면, 연관된 행동을 트리거하기 위하여 하나를 탭하고자 할 경우 움직이는 태그들은 문제될 수 있다는 것을 입증할 수 있다. 스크린 상의 잠재적으로 움직이는 타겟을 동시에 탭하는 동안, 이는 일반적으로 카메라를 적어도 한쪽 손으로 붙잡고 있을 것을 요구한다.
본 기술의 다른 양태에 따라, 디스플레이된 이미지의 인식된 객체와 연관된 태그가 태그를 그가 대응하는 객체와 링크하는 시각적 표시와 함께 스크린 상의 고정된 위치에 표현된다.
판매용 옷을 입은 여인을 묘사한 프린트된 카탈로그를 스마트폰 카메라로 찍는 사용자를 고려하자. 카탈로그 프린트가 스테가노그래픽 디지털 워터마크를 전달한다고 스마트폰이 결론짓는 경우(예를 들어, 임계 강도를 넘는 워터마크 보정 또는 지향 신호가 캡처된 이미지 내에서 발견되기 때문에), 스마트폰은 워터마크가 발견될 것으로 보이는 캡처된 이미지의 영역 상에 독특한 그래픽 효과를 표현하도록 프로그램될 수 있다. 이러한 효과는 예를 들면, 시머링(shimmering), 색차 또는 휘도 진동, 오버레이된 그래픽 특성들, 등을 포함할 수 있다. 도 32는 하나의 이러한 방식을 보여준다. (눈으로 보는 것보다 많은 것이 있음을 사용자에게 나타내는 오버레이된 별들은 몇몇 Hz의 주파수로 밝기와 위치가 변화한다.) 도 32에서, 워터마크 신호가 디스플레이된 이미지 전반에 걸쳐 검출되었다.
이러한 독특한 그래픽 효과에 응답하여, 사용자는 스마트폰이 캡처된 이미지 상에서 워터마크 판독 동작을 완료하도록 명령하는 행동을 취할 수 있다. 이러한 행동은 스크린을 터치하는 제스처, 전화를 흔들기, 물리적인 버튼의 터치, 말로된 명령, 등일 수 있다. 대안적으로, 전화는 가능한 워터마크 신호가 검출될 때마다 자동적으로 워터마크 판독에 착수하는 모드에서 동작할 수 있다.
도 32의 방식에서, 스마트폰은 워터마크 판독 동작을 완료한다. 이후 디코딩된 워터마크 페이로드를 원격 데이터베이스국/웹 서비스로 전송한다. 원격 데이터베이스국은 수신된 워터마크 페이로드를 연관된 정보를 포함하는 데이터베이스 기록을 액세스하는데 사용하고, 이는 이후 스마트폰으로 다시 전송된다.
묘사된 방식에서, 스마트폰으로 리터된 이러한 정보는 도 33에 도시된 것과 같이 전화가 디스플레이를 표시하도록 한다. 즉, 스마트폰은 그들이 사용자의 엄지로 편리하게 탭될 수 있는 스크린의 하부 모서리에 3개의 태그들을 생성한다. 하나의 태그는 캡처된 이미지에 묘사된 여인에게 입혀진 블라우스에 대응하고; 두번째는 여인의 셔츠에 대응하며; 세번째는 여인의 핸드백에 대응한다.
도 33에서, 각 태그를 대응하는 객체와 개념적으로 링크하는 두가지 타입들의 시각적 표시들이 있다. 하나는 태그로부터 객체로 확장하는 링크 선이다. 다른 하나는 객체 맞춤형 태그이다.
링크 선을 생각할 때, 카메라가 움직인다면, 객체가 스크린 디스플레이 내로 움직이게 할 수 있고, 태그는 바람직하게, 연관된 링크 선의 하단부로 스크린의 하부 모서리에 고정된 채로 있다. 그러나, 링크 선의 상단부가 객체를 추적하여 객체와 태그 사이의 영구적인 시각적 연관을 유지하도록 움직인다. 이는 도 33과 도 34를 비교하는 것에 의해 보여질 수 있다. 사용자가 이러한 두개의 사진들 사이에서 스마트폰을 움직였고, 카달로그 페이지의 상이한 뷰가 산출된다. 블라우스와 반바지를 입고 있는 여인이 디스플레이된 시야에서 똑바로 움직였으며, 핸드백이 시야의 밖으로 움직였다. 그러나, 블라우스와 반바지 태그들은 스크린의 하부에 정지되어 남아있다. 링크 선들의 상부들은 움직이는 블라우스와 반바지 객체들을 추적하도록 움직인다. (카메라의 시야의 밖으로 움직인 핸드백에 대한 태그는 도 34에서 사라진다.)
따라서 묘사된 링크 선 구조는 이중 형식의 도해법을 채용한다. 하나는 객체(즉, 링크 선)를 따르고, 다른 하나는 고정된다(즉, 태그).
나타난 바와 같이, 각 태그를 각각의 객체로 링크하는 제 2 시각적 표시는 그가 대응하는 객체의 성질을 나타내는 독특한 그래픽 태그 아트워크이다. 묘사된 방식에서, 독특한 태그들은, 그들이 홀로 연관의 필수적인 시각적 표시를 제공하는 이미지의 상이한 객체(블라우스, 반바지 및 핸드백)를 심볼화하기 때문에, 링크 선들이 필요하지 않다는 것이 인식될 것이다. 그러나, 다른 실시예들에서, 태그들은 링크 선들이 적절한 시각적 연관을 제공하는 경우에, 서로에 대해 포괄적이고 동일할 수 있다.
(태그들을 이미지 객체들로 연관시키는 시각적 표시의 많은 다른 형태들이 도시된 두가지 타입들에 대체될 수 있다. 하나의 다른 형태는 이미지 객체를 색상으로 하이라이트하거나, 또는 외곽선을 그려주고, 이후 동일한 색상의 태그를 스마트폰 디스플레이의 모서리에 제공하는 것이다. 상이한 객체들을 상이한 태그들에 연관시키는데 상이한 색상들이 사용될 수 있다.)
특별한 실시예에서는, 장면들 뒤에서 웹 서비스로 보내진 워터마크 페이로드(또는 핑거프린트 데이터)가, 보여지는 특별한 카탈로그, 및 페이지에 대한 정보를 포함하는 데이터베이스 기록으로 액세스할 수 있다. 데이터베이스로부터 리턴된 정보는 이미지의 특별한 특성들을 특성화하는 기준 이미지 데이터를 포함할 수 있다. 이러한 정보는 상이한 객체 모양들(블라우스, 반바지, 핸드백 등)을 정의하는 하나 이상의 썸네일 이미지들 또는 맵들을 포함할 수 있다. 부가적으로, 또는 대안적으로, 이러한 정보는 묘사된 객체(들)이 인식되고 추적될 수 있는 특성들을 식별하는 데이터와 같은 이미지 핑거프린트 데이터를 포함할 수 있다. 부가적으로, 또는 대안적으로, 이러한 정보는 링크 선들의 상단부들이 종단할 수 있는 객체 모양들에 또는 그 모서리들에 위치하는 객체인 "손잡이들"을 규정하는 데이터를 포함할 수 있다. 도 35는 ("X"들에 의해 표시된) 3개의 손잡이 위치들을 정의하는 (반바지에 대한) 하나의 이러한 모양을 도시한다.
이러한 특별한 예에서, 데이터베이스로부터 리턴된 정보는 일반적으로 카탈로그의 발행인에 의해 만들어진다는 것이 인식될 것이다. 발행인은 도 32의 이미지가 링크된 태그들을 통해 사용자가 선택할 수 있는 상호작용성이 제공될 수 있는 3개의 객체들을 포함한다는 것을 명시한다. 3개의 객체들에 대한 정보가 데이터베이스에 저장되고 전화에 제공되어(예를 들면, 도 35와 같은 모양 데이터, 또는 SURF와 같은 핑거프린트 데이터), 이러한 객체들이 뷰가 움직임에 따라 패턴 매칭되거나 추적하는 것을 허용하고, 부착된 조절 점들이 식별된다. 발행인 명시된 데이터는 또한 3개의 상이한 객체들과 연관하여 스크린의 하부에 표현될 특별한 아이콘 모양들을 규정한다.
도 33에서와 같이, 태그들이 캡처된 이미지 상에 먼저 오버레이될 때, 소프트웨어는 태그들이 위치할 최적의 장소를 식별하기 위해 이미지의 하부 모서리를 분석할 수 있다. 이러한 결정은 이미지의 그러한 영역 내의 모서리들을 식별하는 것에 의한 것과 같은 상이한 후보 위치들의 평가에 기초할 수 있다. 바람직하게, 태그들은 강한 모서리들 상에 위치되지 않아야 하며, 이러한 배치는 캡처된 이미지의 지각적으로 관련한 특성들을 모호하게 할 수 있다. 방해가 거의 일어나지 않는, -강한 모서리들과 다른 지각적으로 중요한 특성들이 없는- 이미지의 상대적으로 "조용한(quiet)", 또는 균일한 부분들 위에 태그들을 위치시키는 것이 더 좋다. 그러나, 태그가 처음에 위치되면, 이러한 태그와 사용자 상화작용을 쉽게 하도록-비록 기본적인 캡처된 이미지가 시프트될지라도- 그 위치에 두는 것이 바람직하다. 이미지가 움직인다면, 링크 선들의 상부들이 고무 밴드들과 같이 필요에 따라 늘어나거나 옮겨져서 움직이는 특성들을 따라가는 것이 바람직하다. (일부 경우들에서, 부가적인 태그들의 백분률을 필요하게 만드는, 부가적인 객체들이 시야 내로 들어올 때와 같이, 태그들을 움직이는 것이 필요할 수 있다. 이러한 예에서, 새로운 태그들을 여전히 수용하면서, 소프트웨어는 원래의 태그들을 가능한 한 그들의 원래 위치들에 가깝게 유지하는 것을 추구한다. 이는 원래의 태그들을 크기가 더 작아지게 만드는 것을 포함한다.)
만일 사용된다면, 링크 선(들)은 태그로부터 대응하는 객체 상의 가장 가까운 손잡이까지 간단한 곡선 경로를 식별하는 알고리즘을 사용하여 라우팅된다. 상이한 객체 손잡이들로의 상이한 경로들이 평가될 수 있고, 경로의 선택은 일정한 기준들(예를 들면, 강한 모서리들의 횡단들을 최소화하는 것; 피할 수 없다면 90도 가까이에서는 강한 모서리들을 가로지르는 것; 25도에 가까운 곡선 각도와 같이 시각적으로 즐거운 범위를 갖는 곡선을 만드는 경로를 식별하는 것; 외부 객체로부터 객체의 모서리 상의 손잡이에 도달하는 경로를 식별하는 것, 등)에 기초할 수 있다. 링크 선의 색상은 오버레이되는 캡처된 이미지에 기초하여 적절한 대비를 제공하도록 적응될 수 있다. 카메라의 시야가 이동하면, 링크 선 경로와 색상이 재평가될 수 있고, 이러한 선은 일부 환경들에서 주어진 객체 상의 상이한 손잡이에서 종단할 수 있다. (이는 예를 들면, 반바지를 대응하는 아이콘에 연결하는 링크 선을 갖는 경우이다. 도 33에서, 여인의 반바지의 우측 상에 손잡이가 채용되며; 도 34에서 좌측 상에 손잡이가 사용된다.)
카메라 시야가 몇몇 독특하게 워터마크된 객체들을 포함하면, 워터마크 검출의 표시가 오브젝트들의 각각에 대해 표시될 수 있다. 스마트폰이 여인의 옷을 포함하는 이미지의 영역의 인코딩된 워터마크를 하나 검출하고, 그녀의 핸드백을 포함하는 이미지의 영역의 인코딩된 다른 하나를 검출할 때, 이러한 방식이 도 36에 개념적으로 도시된다. 여기서, 스마트폰은 (오버레이된 별 패턴과 같이 도시된) 하나의 특별한 그래픽 효과를 표현하기 위해 여인의 셔츠와 반바지를 묘사하는 이미지의 영역을 변경하고, (오버레이된 원들로 도시된) 상이한 그래픽 효과를 표현하기 위해 여인의 핸드백을 묘사하는 이미지의 영역을 변경한다.
디지털 워터마크의 흔적이 검출될 때 스마트폰에 의해 표현된 그래픽 효과는 위에서 언급된 것들과는 매우 다른 임의의 표현을 가질 수 있다. 하나의 특별한 방식에서, 소프트웨어 API는 이러한 검출에 의해 활성화될 수 있고, 워터마크된 영역의 명확한 중심의 픽셀 좌표들을 (아마도, 반지름, 또는 수직 및 수평 확장, 또는 벡터 영역 설명과 같은 다른 정보와 함께) 출력한다. API, 또는 다른 소프트웨어는 이러한 특별한 워터마크를 위해(예를 들면, 이러한 페이로드를 위해, 또는 이러한 영역에서 발견된 워터마크를 위해) 어떠한 그래픽 효과가 표현되는지를 규정하는 소프트웨어 스크립트를 가져올 수 있다. 스크립트는 유리, 거품들, 흔들림들, 불꽃 애니메이션, 등을 확대하는 것과 같은 효과들, 등을 워터마크 출현들이 위치될 것이라고 API가 보고하는 영역에 지역적으로 제공할 수 있다.
하나의 특별한 실시예에서, 이러한 지역적 워터마크가 검출되면, 스마트폰은 스크린 상에서, 또는 워터마크된 영역의 모서리에서 링크 선이 시작하는 것을 디스플레이하도록 시작하고, 라인이 스크린의 모서리를 향하여 구불거리며 움직이게 한다. 확장하는 선이 모서리에 닿을 때까지, 스마트폰은 디코딩된 워터마크를 원격 데이터베이스로 보내고, 움직이는 선이 도달하는 핸드백 아이콘을 제공하는 것과 같이, 그가 적절한 디스플레이 응답을 마무리짓는 것을 허용하는 그에 응답하는 정보를 수신한다. (수신된 정보에 의해 규정된 점을 조절하기 위해 또한 선의 상단부를 스냅(snap)할 수 있다.)
핑거프린트 기반 이미지 객체 식별의 경우에는, 표현된 이미지와 연관된 상호작용성을 사용자에게 알리기 위한 시머링 또는 다른 그래픽 효과가 일반적으로 없다. 그리고, 이를 트리거하는 이미지 특성이 없기 때문에, 정상적으로 위에서 설명된 것과 같은 행동이 자동적으로 시작되지는 않을 것이다. (그러나, 일부 구현들은 바코드들 또는 RFID/NFC 감지된 데이터와 같은, 다른 트리거들을 사용할 수 있다.) 대신, 사용자는 사용자 명령에 의해 이러한 행동을 개시할 것이다. 이에 대응하여, 전화는 이미지(또는 그에 기초한 핑거프린트 데이터)를 원격 시스템/웹 서비스로 전송한다. 원격 시스템은 핑거프린트를 계산하고(만일 전화에 의해 미리 제공되지 않았다면), 데이터베이스의 기준 핑거프린트와의 매칭을 식별하는 것을 추구한다. 매칭이 발견되면, 데이터베이스의 연관된 정보가 이미지에 의해 묘사된 객체/장면(예를 들면, 특별한 카탈로그 및 페이지)을 식별하도록 사용된다. 이러한 식별이 수행되었다면, 위에서 상세히 설명된 행동은 진행할 수 있다.
위에서 설명된 바와 같이, 카메라의 시아갸 움직여서 핸드백이 더이상 보여지지 않을 때, 대응하는 핸드백 태그는 스크린의 하부에서 사라진다. 다른 실시예들에서, 사용자는 스마트폰이 현재 디스플레이된 이미지 뷰를 정지시키고, 및/또는 현재 스크린 상에 디스플레이된 태그들을 유지하기 위한 명령으로서 설명하는 행동을 취할 수 있다. 이러한 기능성은 사용자가 대응하는 태그들을 얻기 위하여 카메라를 카탈로그 페이지에 가리키고, 따라서 전화를 이미지/태그들과 상호작용하기에 더욱 편안한 위치로 옮기는 것을 허용한다.
캡처된 이미지의 상황에서 설명되었지만, 이러한 실시예들은 본 명세서의 어디에서든지 저장 디바이스로부터 수신되거나, 또는 네트워크를 지나서와 같이 다른 방식으로 얻어진 이미지로 실행될 수 있다는 것이 인식될 것이다.
유사하게, 객체 식별이 워터마킹(또는 이미지 핑거프린팅)에 의해 상세하게 설명된 방식으로 수행되었으나, 다른 실시예들은 바코드들, 글립스(glyphs), RFID/NFC 칩들, 등과 같은 다른 형태들의 식별에 기초될 수 있다.
스마트폰 하드웨어와 RDF 트리플들
복잡한 스크린 디스플레이들, 예를 들면, 게임, 비디오, 및 다른 이미지 집약적 애플리케이션들의 렌더링 속도를 높이기 위해 스마트폰에 점점 그래픽 처리 유닛들(GPUs)이 구비되고 있다.
GPU 칩들은 다중 처리 코어들과, 그래픽들을 위해 일반적으로 최적화되는 명령 세트를 특징으로 하는 프로세서 칩들이다. 일반적인 사용에서, 각 코어는 예를 들면, 그림자, 안개, 밀접히 결합된(affine) 변환, 등과 같은 시각적 효과를 적용하는 처리를 수행하기 위하여, 이미지 내의 픽셀 값들의 작은 이웃에 전용된다. GPU들은 일반적으로 또한 이러한 처리 코어들과, RGB 프레임 버퍼들과 같은 연관된 메모리 사이의 이미지 데이터의 교환을 가속시키도록 최적화된다. (GPU들에 의해 처리된 이미지 데이터는 일반적으로 적색/녹색/청색, 또는 YUV와 같은, 3개의 성분 평면들에 표현된다.) 정수 데이터 기억장치의 복수의 평면들을 제공하는 것에 부가하여, 프레임 버퍼들은 또한 프레임 버퍼들이 (예를 들면, 적절한 인터페이스 하드웨어에 의해) 디스플레이를 위한 디바이스 스크린으로 버퍼링된 데이터의 빠른 스와핑을 가능하게 하도록 구성된다는 점에서, 프로그램 저장 메모리와 다르다. 프레임 버퍼의 픽셀 사이즈는 일반적으로 디스플레이 스크린의 픽셀 사이즈와 1:1 대응한다(예를 들면, 960 x 640 픽셀 디스플레이 스크린을 갖는 스마트폰은 일반적으로 하나 이상의 960 x 640 프레임 버퍼들을 가질 것이다.)
GPU들이 그래픽 처리의 속도를 높이는데 그들의 기원을 갖지만, 그들은 또한 다른 사용들에 적용되었다. 범용 GPU들(GPGPU)의 더 넓은 분야에서, 이러한 디바이스들이 음성 인식으로부터 단백질 폴딩 계산들에 이르는 범위의 애플리케이션들에서 이제 사용된다. 많은 메인프레임 슈퍼컴퓨터들이 대량 병행성에 대해 GPU들에 의존한다. 점점, NVIDIA와 같은 GPU 벤더들은 일반적인 "C" 언어 컴퓨터 프로그램으로부터 지정된 기능들이 그들의 GPU가 구비된 비디오 카드들 상에서 수행되는 것을 허용하는 소프트웨어 툴들을 제공한다.
본 기술의 다른 양태에 따라, 어떠한 실시예들은 그래픽 목적들로 제공된 스마트폰 하드웨어(예를 들면, GPU들 및 RGB 프레임 버퍼들)를 검색 및 의미론상의 추론을 위한 것과 같은, RDF 트리플들로 대신 사용하기 위해 용도 변경한다.
(의미론상의 추론은 때때로 한 세트의 밝혀진 사실들에 기초한 논리적 결론들을 구분하도록(예를 들면, 추론하도록) 정의된다.)
도 22를 참조하면, 이는 이미지 데이터의 프레임을 저장하기 위해 사용된 메모리의 개념도이며, 128 x 128 픽셀들의 크기를 가질 수 있다. 각 픽셀은 3개의 성분 색상 값들을 가지며; 하나는 적색, 하나는 녹색, 하나는 청색이다. 예시된 픽셀은 RGB 색상 값들인 {43, 35, 216}로 도시된다. 이러한 데이터는 감청색에 가까운 색상을 갖는 픽셀에 대응한다.
이러한 개념적 배열은 RDF 트리플들의 기억 장치에 잘 매핑한다. 픽셀 표현들의 3 개의 성분들을 저장하는 대신, 이러한 메모리는 RDF 트리플들의 3 개의 성분들을 저장하도록 동작하는데, 이들은 일반적으로 주어(Subject), 서술어(Predicate), 그리고 목적어(Object)로 불린다.
이미지 메모리 위치들에 저장된 데이터는 일반적으로 8 비트의 값들을 포함한다(즉, 각각이 적색, 녹색, 청색을 위한 것이다). 각 값은 0-255의 범위의 정수일 수 있다. RDF 사용을 위해 용도 변경할 때, RDF 성분들은 0-255의 범위의 정수 코드들로서 유사하게 표현된다. 표와 같은 보조 데이터 구조가 상이한 8 비트 RDF 코드들을 연관된 문자열들, 정수들, 또는 실수값들로 매핑할 수 있다.
사람들 사이의 서술되지 않은 관계들을 구분하기 위해 의미론상의 추론이 한 세트의 입력 RDF 데이터로 적용되는 예가 다음에 이어진다. 추론이 나중에 적용될 이러한 입력 트리플의 예는 다음과 같다:
BOB HasChild TED
이러한 트리플은 Bob이라는 이름을 가진 사람이 Ted라는 이름을 가진 아이를 가진다는 정보를 표현한다. "BOB"은 주어; "HasChild"는 서술어, 그리고 "TED"는 목적어이다.
이러한 데이터를 이미지 메모리에 저장하기 위해, 하나 이상의 표들이 상이한 데이터를 대응하는 정수 코드들로 매핑하도록 사용될 수 있다. 예를 들어, 제 1 표는 사람들의 이름들을 정수 코드들로 매핑할 수 있는데, 예를 들면:
Figure 112013049341469-pct00005
표 I
이러한 표는 RDF 트리플들 중 단일 성분(예를 들면, 주어 데이터)에 전용일 수 있거나, 또는 둘 또는 그 이상에 사용될 수 있다. 데이터는 모두 동일한 타입(예를 들면, 사람들의 이름들)이거나, 또는 상이한 타입들의 데이터가 포함될 수 있다. 모든 8 비트 코드들이 대응하는 데이터들로 매핑될 필요가 있는 것은 아니다.
본 예에서, 8 비트 코드들을 사람들을 포함하는 상이한 서술어들에 연관시키도록 다른 표가 사용되며, 예를 들면:
Figure 112013049341469-pct00006
표 II
따라서 "BOB HasChild TED"라는 표현은 8 비트 코드들 {6,3,4}의 트리플로서 표현될 수 있다. 제 1 및 제 3 코드들(6 및 4)의 의미들은 표 1에 의해 나타내지며, 제 2 코드(3)의 의미는 표 II에 의해 나타내진다는 것이 인식될 것이다.
도 23은 도 22와 동일한 메모리 방식을 도시하지만, 이제 RDF 사용을 위해 용도변경된다. 8 비트의 정수 코드들{6,3,4}이 3개의 평면들의 대응하는 메모리 위치들에 저장되며, 이는 여기서 주어, 서술어, 목적어로 표현한다.
하나의 트리플이 도 23에서 특별히 상세하게 설명되는데, 이는 "BOB HasChild TED"을 나타낸다. 그러나, 이미지 메모리들이 일반적으로 매우 큰데, 예를 들면, 1024 x 768이다. 작은 128x128 픽셀 메모리가 16,384의 상이한 데이터 요소들을 가지므로, 16,384 트리플들을 저장할 수 있다. 도 24는 메모리에 저장될 수 있는 잠재적으로 수천개의 이러한 트리플들 중 몇 개를 도시한다.
(표 II에서, 서술어의 모두가 그들의 주어와 그들의 목적어 모두를 위한 개인 이름들을 사용하는 것은 아니다. 예를 들어, 서술어 중 하나는 "HasGender"이다. 이러한 서술어의 주어는 개인의 이름이지만, 이러한 서술어의 목적어는 "Male" 또는 "Female"이다. 이러한 후자의 두개의 데이터는 표 II의 코덱들(254, 255)로 할당될 수 있다.)
도 22로 돌아가면, 감청색 픽셀이 렌더링된 이미지의 그의 원하는 표현의 위치에 대응하는 위치의 메모리에 저장된다. 언급된 바와 같이, 스마트폰들의 프레임 버퍼들은 일반적으로 디스플레이의 픽셀 소자들과 1:1 매칭을 갖는다. 따라서, 감청색 데이터 {43, 35, 216}가 메모리에 저장되는 위치는 메모리로부터 렌더링될 사진과, 청색 픽셀이 나타나는 곳에 영향을 미친다.
RDF 트리플들을 저장할 때, 메모리에서 트리플들이 저장되어야 하는 곳을 지시하는 메모리와 디스플레이 사이의 매핑은 고유한 것이 아니다. 예를 들어, 도 23에서, {6,3,4} 트리플은 128 x 128 픽셀 메모리의 16,384의 위치들 중 어느 곳에라도 저장될 수 있다.
원하는 그래픽 효과를 이루기 위해 이미지 메모리의 픽셀 데이터를 처리하는 대신, 도 23의 메모리의 RDF 트리플 데이터가 의미론상의 추론 규칙을 적용하기 위해 처리된다. 예시된 예에서, 추론은 사람들 사이의 부가적인 관계 정보를 추론한다.
몇몇 RDF 트리플들이 모여있는, 스마트폰 메모리의 작은 발췌를 도시하는 도 25를 참조한다. (8 비트 코드들과 대응하는 텍스트 모두가 설명의 편의를 위해 묘사된다.)
보여질 수 있는 바와 같이, RDF 데이터는 Alice가 동생 Helen을 가진다는 것을 밝힌다. 또한, 데이터는 Bob이 두명의 자매들(Mary와 Sue), 아이(Ted), 그리고 두명의 형제들(Chuck와 John)을 가진다고 밝힌다.
본 예에서, GPU는 개인들 사이의 새로운 타입의 관계인 삼촌과의 관계를 구분하기 위하여 규칙 기반 추론을 적용하도록 프로그램된다. 평범한 영어로 서술된, 이러한 추론 규칙은 다음과 같을 수 있다: 한 사람이 아이와 형제를 모두 가진다면, 이후 형제는 아이의 삼촌이 된다. 불 의사 코드 방식(Boolean pseudo-code fashion)으로 분류하면, 규칙은 다음과 같이 표현될 수 있다:
Figure 112013049341469-pct00007
.
GPU가 이러한 추론 규칙을 도 25에 묘사된 데이터에 적용하는 경우, 이는 두개의 새로운 의미론상의 진술들을 생성하는 것에 의해 결론을 지을 것이다:
1. TED HasUncle CHUCK
2. TED HasUncle JOHN
이러한 두개의 새로운 진술들이 도 25의 RDF 데이터 저장소에 부가될 수 있다.
위에서 언급된 바와 같이, 특별한 트리플들이 저장되어야 하는 곳을 나타내는 메모리와 디스플레이 사이의 매핑은 고유한 것이 아니다. 그러나, 본 예에서, 애플리케이션은 유사한 주어들을 함께 그룹짓기를 선호한다. 특히, 메모리는 3x3 블록들(302, 304, 등)로 개념적으로 분할되며, 각각은 상이한 RDF 주어에 바쳐진다. 이것이 도 25의 진한 선들에 의해 도시된다. 각각의 RDF 주어에 대한 9개까지의 상이한 트리플 진술들이 이러한 3x3 블록에 저장될 수 있다.
이러한 공간적 지역성으로 데이터를 구조화하는 것은 GPU의 다중 코어들이라는 장점을 제공하며, 각각의 코어에 입력과 출력을 제공하는 버스 배열들은 픽셀들의 이웃들과 함께 작업하도록 공통적으로 최적화된다. 데이터 상의 공간적 지역성을 실시하는 것에 의해, 특별한 주어에 관한 모든 진술들이 동일한 GPU 코어에 의해 처리될 수 있다. 이는 예를 들면, 데이터가 일반적으로 코어들 사이에서 공유될 필요가 없기 때문에, 처리 속도를 높인다.
추론을 실행하는 소프트웨어가 상이한 방식들로 구현될 수 있다. 각 코어가 9개의 트리플들의 도메인 상에서 동작한다고 가정하면, 하나의 구현은 다음과 같이 동작한다:
코드=5인지 알기 위하여 9개의 서술어들의 각각을 체크; 그렇다면, 카운터 "i"증가
i=0이면, 종료
코드=3인지 알기 위하여 남아있는 서술어들의 각각을 체크; 그렇다면, 카운터 "j" 증가
j=0이면, 종료
X와 Y의 모든 조합들을 이용하여 i*j의 새로운 진술들 생성, "X HasUncle Y"여기서 X는 그의 서술어들이 코드=3인 목적어들, Y는 그의 서술어들이 코드=5인 목적어들.
묘사된 예에서, 상기 절차를 실행하기 위해 GPU의 동작 표가 명령들과 함께 로딩된다. GPU 동작이 이후 호출되면, 디바이스는 i=1 및 j=2를 찾아내고, 위에서 식별된 바와 같이 두 개의 새로운 진술들을 생성한다.
다른 공간적 제약을 메모리의 트리플들의 기억 장치 상에 부과하는 것에 의해 앞의 절차는 일부 짧아질 수 있다. 즉, 공통 블록에 함께 동일한 주어로 트리플들을 그룹핑하는 것에 부가하여, 트리플들은 또한 그들의 서술어 코드들에 기초하여 블록 내에서 순서화된다. 이러한 분류는 종종 9개의 서술어들이 소모적인 검색 없이 특별한 코드에 대해 체크되는 것을 허용한다.
예를 들어, 도 25에서, 서술어들이 각 블록의 상부 죄측 셀로부터 시작하는 내림차순으로 리스트된다. 위에서 상세히 설명된 절차에서, 코드 "5"에 대한 서술어들을 체크할 때, "5"보다 작은 코드가 마주치면 체크를 중단할 수 있다. 도 25의 블록(304)에서 체크된 5번째 서술어(즉, 3x3 블록의 중심 셀)는 코드 "3"을 갖는다. 이때 "5"에 대한 체크가 중단할 수 있고, 더 이상 존재하지 않을 것이다.
유사하게, 코드 "3"에 대한 체크시, "3"이 순서에서 더 빨리 발생할 수 없으므로, 체크하는 것이 "5"에 대한 체크가 중단될 때 시작할 수 있다. 유사하게, "3"에 대한 체크는 "3"보다 작은 첫번째 서술어가 발견될 때 중단한다.(빈 셀들은 "0"의 값을 저장하는데, 이는 예시의 명확성을 위해 도시되지 않는다.)
이러한 방식으로 서술어에 의해 블록의 트리플들을 분류하는 것에 의해, "5"와 "3" 코드들의 수를 카운트하기 위해 9개의 서술어들을 두번 체크할 필요가 없다. 대신 모든 "5"들을 총계하기 위해 5가 체크되고(즉, 첫번째 "3"이 만나질 때 중단), 모든 "3"들을 총계하기 위해 2 이상이 체크된다(즉, 중심 셀에서 시작하고, 다음 셀인-"0" 서술어가 만나질 때 중단한다).
상이한 구현이 템플릿 매칭에 기초한다. 도 26 및 도 27을 참조한다. 도 26은 포함된 템플릿들의 서브세트를 도시한다. 이러한 템플릿들에서, 빈 상자는 "상관없음"을 나타낸다. (도 26의 템플릿들을 논의할 때 참조를 용이하게 하기 위하여, 도 27은 블록의 트리플들의 각각에 간단히 글자 이름들을 제공한다.)
GPU 코어는 매칭 코드 패턴들을 식별하기 위하여, 템플릿들의 각각에 대하여, 트리플 메모리(예를 들면, 304)의 블록의 3x3 서술어 평면을 체크한다. 각 매칭에 대하여, 새로운 "HasUncle" 진술이 생성된다.
예를 들어, 도 26의 상부 좌측 템플릿을 적용할 때, 코어는 트리플 "a"가 서술어 = 3을 갖고 트리플 "c"가 서술어=5를 갖는지 체크한다. 그렇다면, 새로운 "HasUncle" 트리플이 생성되고, 입력 트리플 "a"의 목적어는 그의 주어가 되고, 입력 트리플 "c"의 목적어는 그의 목적어가 된다.
유사하게, GPU 코어는 트리플 "b"가 서술어 = 3을 갖고 트리플 "c"가 서술어=5를 갖는지 체크하기 위해 도 26의 제 2 템플릿을 적용한다. 그렇다면, 새로운 "HasUncle" 트리플이 생성되고, 입력 트리플 "b"의 목적어는 그의 주어가 되고, 입력 트리플 "c"의 목적어는 그의 목적어가 되는 등이다.
서로 매칭하기 위한 64개의 템플릿들이 있지만, 이러한 비교들은 GPU 코어들에 의해 빠르게 수행된다. 그리고 트리플 데이터의 백 개 이상의 상이한 블록들이 상이한 GPU 코어들에 의해 병렬로 처리될 수 있으므로, 그럼에도 불구하고 높은 처리량이 성취된다.
도 25의 블록(304)에 적용하여, 도 26의 두개의 굵은 템플릿들을 묘사된 데이터의 패턴들과 매칭하여, 두 개의 위에서 식별된 새로운 진술들을 산출하는 것이 인식될 것이다.
도 25의 트리플들을 분류하는 것이 먼저 정의된 절차를 도울 수 있는 것과 같이, 이는 유사하게 템플릿 기반 절차를 도울 수 있다. 특히, 필요한 템플릿들의 수가 서술어에 의한 트리플들을 분류하는 것에 의해 절반이 될 수 있다.
더욱 특별하게, (도 25에서 도시된 바와 같이) 서술어에 의해 내림차순으로 분류되면, 도 26의 상부 좌측 템플릿에서 묘사된 배열이 발생할 수 없다는 것이 인식될 수 있다. 즉, 블록의 상부 좌측 코너에는 "3"이 올 수 없을 것이며, "5"가 그의 우측에 온다. 유사한 방식으로, 동일한 이유에 대하여 제 2 템플릿이 필요하지 않다. 실제로, 가능한 템플릿들의 절반(즉, "3"이 "5"의 전에 위치되는 것)이 필요하지 않다.
본 기술의 일부 구현들은 추론을 돕거나 속도를 높이기 위하여 숫자 이론을 사용한다.
위에서 주어진 예들에서, 다수의 이론 절차가 블록의 입력 데이터로부터 임의의 "HasUncle" 진술이 구분되는지의 여부를 결정하기 위한 체크로서 먼저 적용될 수 있다. 이러한 예비 체크가 긍정적일 때에만 템플릿 매칭 절차이며, 그렇지 않으면 다른 이러한 절차가 호출된다.
이러한 경우에 사용될 수 있는 전형적인 숫자 이론은 소인수들을 포함한다. "HasChild"와 "HasBrither" 서술어들은 모두 소수의 정수 코드들(즉, 3 및 5)에 할당된다는 것이 인식될 것이다. 3x3 블록의 0이 아닌 모든 서술어 코드들은 함께 곱해지면(또는 "0"을 대신하여 "1"이, 모든 9개의 서술어 코드들에 함께 곱해진다), 결과곱은 항상 블록이 적어도 하나의 "3"과 적어도 하나의 "5"를 포함하는 경우 항상 15의 배수가 될 것이다.
CPU 코어는 이러한 계산을 수행하여 블록 내의 서술어 코드들을 함께 곱한다. 결과는 이후 15에 의해 나눠진다(GPU 코어 또는 다른 것에 의해). 나머지가 있다면(즉, 결과물이 15에 의해 균등하게 나누어질 수 없다면), 블록은 3 및 5를 모두 가지지 않는다. 따라서 임의의 "HasUncle" 진술들을 생성할 수 없으며, 템플릿 매칭 절차(또는 다른 이러한 절차)가 고려할 가치가 없는 문제로서 스킵될 수 있다.
동일한 곱셈 결과가 또한 입력 데이터의 블록 내의 하나 이상의 "HasAunt" 관계들의 표현을 위해 스크리닝하는데 사용될 수 있다. "HasAunt"에 대한 규칙은 "HasUncle"에 대한 것과 유사하지만, 대신 "HasSister"를 사용한다. 평범한 영어로, 사람이 아이와 자매를 모두 갖는다면, 이후 자매는 아이의 이모가 된다.
표 II에서, "HasSister" 서술어가 7의 (소수) 코드로 할당된다. 입력 트리플들의 블록에 임의의 "HasAunt" 관계가 있다면, 그의 서술어들의 결과는 항상 21(즉, 3*7)에 의해 균등하게 나누어질 수 있을 것이다.
정수들 0-255 중에는 54개의 상이한 소수들이 있다. 이러한 소수 코드들은 의미론상의 추론 규칙들로 함께 AND될 수 있는 서술어들에 할당되고(표 II에서와 같이, 이러한 할당은 다른 값들을 건너 뛴다), 이후 서술어의 블록 내의 그들의 임의의 그룹의 존재(또는 공존)가 모든 9개의 서술어 코드들의 생성이 소수들의 그룹의 곱에 의해 공평하게 분할될 수 있는지를 체크하는 것에 의해 결정될 수 있다. (예를 들어, 2, 3 및 11의 동시발생에 대한 체크를 위해 66의 가분성에 대해 체크한다.)
GPU는 각 3x3 블록의 트리플 데이터에 대해 하나의 코어를 가지지 않을 수 있다. 예를 들어, GPU가 단지 200개의 코어들을 가질 수 있는 동안, 메모리는 트리플 데이터의 1000개의 3x3 블록들을 가질 수 있다. 이것이 다루어질 수 있는 많은 방법들이 있다. 하나는 GPU에 대해 처음 200개의 블록들에 소수 스크리닝(prime-screening) 절차를 적용하여 프레임 버퍼와 "HasUncle" 관계들을 갖는 것으로 발견된 블록들을 복제하는 것이다. 처리는 프레임 버퍼에 부가되는 "HasUncle" 관계들을 갖는 것으로 결정된 블록들의 복제들을 갖는 두번째, 세번째, 네번째, 그리고 다섯번째 200개의 블록들에 대해 반복한다. 마지막으로, 새로운 진술들을 생성하기 위해, 앞서 설명된 패턴 매칭(또는 다른 절차)가 (모든 것들이 잠재적인 "HasUncle" 관계들을 갖는 것으로 알려진) 프레임 버퍼의 블록들 상에서 수행된다.
소수들의 생성은 적용될 수 있는 한 타입의 숫자 이론이다. 많은 다른 것들이 있다. 다른 클래스는 부가적인 숫자 이론을 포함한다. 간단한 예를 위하여, 서술어 코드들의 다음 표를 고려하자:
Figure 112013049341469-pct00008
표 III
이러한 표는 희박한 것이며, 서술어들이 조합될 때 대부분 8 비트 코드들이 원하는 숫자 이론 결과들을 산출하기 위하여 할당으로부터 예약된다. 사실, 이 표의 코드들은 오직 1, 10 및 100이다.
서술어 값들의 이러한 할당은 하나 이상의 "HasUncle" 관계들이 주어진 트리플들의 블록으로부터 추론될 수 있는지에 대한 다른 체크를 가능하게 한다. 이러한 특별한 구현에서, 블록의 9개의 서술어 코드들이 합해진다. (다시, "0"은 임의의 빈 셀들을 위하여 사용된다.) 정수들의 이러한 특별한 희박 할당이 설계되어, 만일 적어도 하나의 "HasChild" 서술어가 있을 때, 그리고 적어도 하나의 "HasBrother" 서술어가 있을 때, 합의 마지막 두개의 십진 숫자들의 각각은 0이 아니게 될 것이다. GPU 코어는 이러한 체크를 수행하고, 이것이 만족되면, GPU는 위에서 설명된 절차들 중 하나와 같이, 새로운 "HasUncle" 진술(들)을 추출하기 위해 블록을 또한 처리할 수 있다.
(이러한 덧셈 절차의 변형이 또한 하나 이상의 "HasAunt" 관계에 대하여 체크할 수 있다. 이러한 체크에서, 100의 값이 먼저 합으로부터 뺄셈된다. 코어는 이후 (1) 결과가 긍정인지; 그리고 (2) 결과의 마지막 숫자가 0이 아닌지를 체크한다. 이러한 조건들이 만족되면, 이후 하나 이상의 "HasAunt" 관계들이 데이터로부터 밝혀질 수 있다.)
앞의 숫자 이론 예들은 단순하고 약간 인위적이지만, 근본적인 원리들을 나타낸다. 실제적인 구현들이 일반적으로 상이하게 될 것이다. (포함된 특별한 동작들이 사용되는 GPU 코어(들)의 기본 명령어 세트로부터 일반적으로 선택된다.)
종래의 예가 0이 아닌 10진 숫자들에 대해 체크하지만, 많은 애플리케이션들은 대신 숫자 이론 원리들을 2진 또는 16진법 표현들에 적용할 것이다.
구현들은 종종 예시된 예들과 다른 방법들에서 상이할 것이다. 예를 들어, 추론 규칙들이 두 개 이상의 서술어들을 포함할 수 있다. 각 블록의 트리플들의 수가 9와 달라질 수 있다. 실제로, 메모리의 균일한 블록 구성이 필요하지 않으며; 일부 구현들은 가변 크기들의 블록들을 가질 수 있거나, 전적으로 블록 구조에 따라 분배된다. 종종 GPU 코어들은 메모리의 오버랩핑 영역들(예를 들면, 오버랩핑 블록들)을 액세스할 수 있다. 트리플 메모리의 각각의 평면은 8과 다른 비트 깊이를 가질 수 있다(예를 들면, 16). 메모리의 공간적 지역성이 채용되면, 데이터는 주어의 식별보다는 서술어 또는 목적어의 식별에 의해 그룹화될 수 있다. 유사하게, 애플리케이션에 의존하여, 각 블록 내에서든, 또는 전체적인 트리플 메모리를 가로질러서든, 주어, 서술어, 또는 목적어에 의해 분류하는 것이 바람직할 수 있다. 자연적으로, 상이한 서술어들(또는 주어들 또는 목적어들)에 할당하기 위해 특별한 8 비트 코드들의 선택은 종종 특별한 환경에 의존할 것이다.
위에서 상세히 설명된 추론 동작들에 의해 출력되는 "HasUncle" 진술들이 트리플 데이터베이스(예를 들면, 도 25)에 부가될 수 있는 것과 같이, 역 동작들로부터도 출력할 수 있다. 예를 들어, "HasChild"의 역은 "HasParent"이다. 따라서 트리플 "BOB HasChild TED"는 새로운, 역의, 트리플 "TED HasParent BOB"을 산출하도록 처리될 수 있다. 유사하게, 추론 동작들의 결과들은 종종 관계들의 다른 풍성한 표현들을 또한 제공하기 위해 역이 될 수 있다. 예를 들어, 위에서 생성된 출력인 "TED HasUncle CHUCK"는 "CHUCK HasNephew TED"를 산출하기 위해 역이 될 수 있다.
역의 관계들은 그들 자체로 도 25 메모리 또는 다른 곳의 트리플들로, 예를 들면 "HasUncle HasInverse Has Nephew"로 표현될 수 있다.
트리플 스토어가 판매용 차량들에 대한 정보를 포함하는, 다른 예를 고려하자. 이러한 정보는 스마트폰 카메라를 이용하여 분류된 광고 책자의 차량 섹션의 이미지를 캡처하는 사용자에 응답하여 스마트폰의 메모리로 자동적으로 다운로드될 수 있다(예를 들면, 출원 13/079,327을 보라.)
이러한 예에서, 8 비트 주어 코드들이 상이한 차량들을 식별하는 텍스트 문자열들에 대응할 수 있는데, 예를 들면:
Figure 112013049341469-pct00009
표 IV
이러한 표 IV는 메인 주어 표로 간주될 수 있다.
이들 주어들의 각각과 연관된 것들은 전형적으로 다중 서술어들 및 목적어들이 될 수 있다. 8 비트 서술어 코드들, 및 그들의 연관된 의미들은 다음과 같다:
Figure 112013049341469-pct00010
표 V
표 V는 메인 서술어 표로 간주될 수 있다. (이 표의 서술어들은 예시의 목적들로 선택된다. 많은 구현들이 확립된 OWL 온톨로지들의 것과 같은 표준화된 단어들을 채용할 것이다.)
8 비트 목적어 코드들, 및 그의 연관된 의미들은 다음과 같다:
Figure 112013049341469-pct00011
표 VI
표 VI는 주요 목적어 표로 간주될 수 있다.
앞에서와 같이, 스마트폰 메모리의 트리플들이 이러한 세가지 단어 표들로부터 선택된 8 비트 코드들을 이용하여 진술들을 표현할 수 있는데, 예를 들면,
1985 Winnebago Chieftan HasGrossVehicleWeight 6-7 tons는 {3,3,62}로 표현되고;
1985 Winnebago Chieftan HasExteriorColor White는 {3,1,17}로 표현된다.
주요 목적어 표의 일부 입력들은 주요 서술어 표의 입력들 중 오직 하나와 사용될 수 있다는 것에 주의한다. 예를 들어, 목적어 코드 62(예를 들면, 6-7 tons)는 단지 HasGrossVehicleWeight 서술어와만 사용될 수 있다. 목적어 표의 다른 입력들은 서술어 표의 몇몇 입력들과 사용될 수 있다. 예를 들어, 목적어 코드들 2-5 는 HasPassengerCapacity 서술어 및 HasDoors 서술어와 사용될 수 있다. (유사하게, 목적어 코드들 17-19는 HasExteriorColor 서술어 및 HasUpholsteryColor 서술어와 사용될 수 있다.)
종종, 가능한 목적어 값들의 숫자가 8 비트 메모리 평면에 포함될 수 있는 256을 넘는다. 예를 들어, 250 개의 차량들의 각각은 상이한 가격과 그에 연관된 상이한 전화번호, 즉, 500개의 상이한 값들을 가질 수 있다.
그의 목적어들이 주요 목적어 표의 8 비트 코드들과 연관될 수 있는 256개의 상이한 값들에 존재하지 않는 서술어들에 대하여, 이러한 트리플들에는 "0"의 목적어 코드가 명기될 수 있다. 이는 스마트폰 소프트웨어가 대응하는 목적어 정보를 위하여 주요 목적어 표 대신 보조 데이터 구조(예를 들면, 표)를 참고하도록 명령한다. 이러한 상이한 구조가 서술어 이름(또는 그의 숫자 동등물)에 의해 식별될 수 있다.
예를 들어, 트리플 {3,4,0}은 Winnebago의 가격에 대한 것이다. 그러나, 목적어 코드 "0"은 가격이 주요 목적어 표(즉, 위의 표 VI)의 8 비트 코드에 의해 인덱스된 값에 의해 나타나지 않는다는 것을 나타낸다. 대신, "0"은 스마트폰이 보조 메모리 표 #4를 참고하도록(서술어 값 4를 참조하도록) 지시한다. 보조 메모리 표 #4는 그들의 대응하는 주어 코드들에 연관된 (이해의 용이성을 위해 괄호들에 주어진) 모든 차량들의 가격들을 가질 수 있고, 예를 들면:
Figure 112013049341469-pct00012
표 VII
일부 실시예들에서, 이러한 보조 표들이 검색을 용이하게 하기 위하여, 주어 코드들보다는 연관된 목적어 값들(여기서는, 가격)에 의해 분류될 수 있다.
스마트폰 GPU는 특정 탐구 파라미터들을 통해 구해지는 차량들(즉, 주요 목적어 표에 표현된 것들)을 식별하기 위하여 주요 주어-서술어-목적어 메모리에 저장된 데이터를 거의 즉시 필터링할 수 있다. 예를 들어, 사용자가 (1) 트럭들이되, (2)4-6 승객들이 앉을 수 있는 것에 관심이 있다면, 이러한 파라미터들이 종래의 스마트폰 그래픽 사용자 인터페이스(GUI)를 이용하여 입력될 수 있고, 결과들이 빠르게 결정될 수 있다.
하나의 예시적인 GUI가 서술어와 목적어 주요 표들로부터 얻어진 문자들로 가득찬 드롭다운 메뉴들, 스크롤가능한 선택 휠들을 표현한다. 보조 GUI 표는 정보의 디스플레이를 용이하게 하기 위해, 예를 들면, 평범한 영어의 대응체들을 서술어들로 제공하기 위해, 그리고 검색들이 입력될 수 있는 특별한 코드들을 나타내기 위해 사용될 수 있다.
도 28, 도 29a 및 도 29b는 예를 도시한다. 하나 이상의 표들(400), 또는 다른 데이터 구조(들)은 GUI 메뉴들의 생성시 사용된 정보를 저장한다. GUI 메뉴들의 시퀀스(402, 404, 등)가 스마트폰 스크린 상에 표시되고, 사용자가 원하는 검색 파라미터들을 입력하도록 할 수 있다.
예시된 GUI(402)는 표(410)의 열(410)로부터 상이한 메뉴 범례들이 선택적으로 디스플레이되는 제 1 스크롤가능한 윈도우부(420)를 갖는다. 묘사된 바와 같이, 사용자는 "무엇을 찾고 있습니까?"라는 옵션을 스크롤했다.
제 2 스크롤가능한 윈도우부(422)에는 표(400)를 참조하는 것에 의해 결정된 바와 같은, 윈도우부(420)에 도시된 선택에 대응하는 제 2 레벨 메뉴 선택들이 들어있다. 예를 들어, 사용자가 "무엇을 찾고 있습니까?"로 윈도우부(420)를 스크롤하였으므로, 스마트폰은 "자동차", "트럭", "모터사이클", 및 "기타"와 같은 선택들을 제 2 윈도우부(422)에 표시하는 것에 의해 응답한다. 이러한 특별한 텍스트 문자열들이 표(400)의 열(412)로부터 나오며, 그들은 "무엇을 찾고 있습니까?"라는 최상 레벨 메뉴에 대응한다. 묘사된 바와 같이, 사용자는 "트럭"을 나타내기 위해 윈도우(422)를 스크롤하였다.
GUI(402)는 또한 사용자가 다른 검색 파라미터들을 입력하기 위해 탭할 수 있는 버튼(424)을 포함한다. 대안적으로, 사용자는 사용자 입력된 파라미터(들)에 기초한 검색의 결과들을 표현하는 "결과 보기" 버튼(426)을 탭할 수 있다.
사용자가 버튼(424)을 탭한다고 가정하면, GUI는 사용자에 의해 방금 입력된 값들("무엇을 찾고 있습니까?" 및 "트럭"), 또는 이러한 값들과 연관된 8 비트 코드 값들을 저장하고, 이후 사용자가 윈도우(420), 그리고 그 후 다시 윈도우(422)와 상호작용하는 것을 허용한다. 이 때 사용자는 윈도우(420)로부터 "승객 정원은?"을 선택한다.
표(400)의 열(412)을 참조하는 것에 의해, 스마트폰은 제 2 윈도우(422)가 "1", "2", "3", "4", "5" 및 "6"과 같은 대응하는 선택들로 채워짐을 안다(이러한 라벨들이 "승객 정원은?" 메뉴 선택과 연관되기 때문에). 표(400)의 플래그(도시되지 않음)는, "승객 정원은?" 메뉴 옵션이 선택될 때 사용자가 상부 범위 제한을 명시할 수 있는 제 2 윈도우(422a)를 렌더링하여야 함을 소프트웨어에게 시그널링할 수 있다. (원래의 윈도우(422)는 이후 하부 범위 제한으로 작용한다.) 도 29b에서, 사용자는 윈도우(422)를 "4"로, 윈도우(422a)를 "6"으로 스크롤하였다. 따라서, 사용자는 4 내지 6 명의 승객들이 앉을 수 있는 트럭들에 관심이 있다.
사용자는 이후 "결과 보기" 버튼(426)을 탭하는 것에 의해 검색 결과들을 요청할 수 있다.
사용자가 버튼(426)을 탭하면, 트리플 스토어의 검색이 시작될 수 있다. (대안적으로, 이것이 먼저 시작될 수 있는데, 즉, 사용자가 버튼(424)을 탭하여 제 1 검색 파라미터("트럭")의 입력을 완료하였을 때이다. 즉, 검색이 일련의 연속적인 스크리닝 동작들로 수행될 수 있어, 사용자가 "결과 보기" 버튼을 탭할 때, 중간 검색 결과들의 이전에 결정된 세트 내에서 마지막 파라미터만이 검색될 필요가 있다.)
표(400)는 사용자의 검색 기준을 만족시키는 차량들을 식별하기 위하여 어떻게 스마트폰 프로세서가 저장된 데이터를 검색하는지를 나타낸다.
예를 들어, 사용자가 검색 조건으로서 "트럭"을 선택하였으므로, 표(400)의 행(432)은 이것이 12의 서술어 코드(Has VehicleType)와 115의 목적어 코드(Truck)에 대응한다는 것을 나타낸다. GPU는 이러한 기준을 만족시키는 트리플들에 대해 메모리를 검색한다.
이것이 실행될 수 있는 한가지 방법은 GPU 코어들이 뛰어난 동작인 임계치 기법에 의한 것이다. 즉, 메모리는 11보다 크고 13보다 작은 서술어들을 갖는 트리플들을 식별하도록 필터링될 수 있다. 이러한 초기 동작(모든 트리플들이 HasVehicleType 서술어를 포함하는)으로부터의 중간 결과들이 새로운 프레임 버퍼에 복제될 수 있다. (또는 이러한 임계치를 만족하지 않는 트리플들은 이미지 처리 용어들로 "블랙(black)"인, {0,0,0}으로 설정될 수 있다.)
위에서 주어진 예에서, 다른 처리에 대한 이러한 단계에 의해 다중 트리플들이 식별될 수 있으며, 일반적으로는 차량들의 각각에 대해 하나의 트리플인데, 예를 들면, {1, 12, 112}-Honda CRX; {2, 12, 115}-Ford Ranger; {3, 12, 116}-Winnebago; (Toyota Tacoma);{4, 12, 17}-Toyota Sienna; 등이다.
제 2 검색이 이후 이러한 중간 결과들을 통해 행해지고(예를 들면, 프레임 버퍼에), 이 때 목적어 코드 115를 갖는 (즉, "트럭" 목적어들에 대한) 트리플들을 식별한다. 115의 목적어 코드를 갖지 않는 트리플들은 삭제될 수 있다(또는 "블랙"으로 설정될 수 있다).
(본 예에서) 이러한 두 단계들 후에 남는 것은 두개의 트리플들인데: {2, 12, 115} 및 {5, 12, 115}이다. 주어=2의 트리플은 Ford Ranger에 대응하고; 주어=5의 트리플은 Toyota Tacoma에 대응한다. 이러한 두개의 주어 코드들의 식별에 의해, 검색의 "트럭" 부분이 완료되었다.
(앞의 검색의 구가 실행될 수 있는 다른 방법은 서술어 메모리 평면에서 12의 코드를 찾는 하나와, 목적어 메모리 평면에서 115의 코드를 찾는 하나의, 한 쌍의 세트의 템플릿들로 템플릿 매칭을 하는 것이다. 다시, 두 개의 트리플들이 그에 의해 식별된다.)
스마트폰은 다음으로 제 2 검색 기준들인 4-6의 승객 적재량을 적용한다. 소프트웨어는 표(400)의 행(434a와 434b)에서 이러한 범위가 2의 서술어 코드(HasPassengerCapacity)와 5, 6, 또는 7의 목적어 코드로 대응한다는 것을 찾는다. 검색의 제 1 구로부터, 또한 주어 코드가 2 또는 5 이어야 함을 알게 된다. 이러한 주어/서술어/목적어 조건들을 만족시키는 데이터가 이후 주요 트리플 메모리의 데이터를 검사하는 것에 의해, 또는 프레임 버퍼의 데이터의 서브세트(즉, 주어=2 또는 주어=5를 갖는 모든 트리플들) 상에서 동작하는 것에 의해 식별된다(예를 들면, 임계치 동작에 의해). 모든 이러한 기준들을 만족시키는 단일 트리플:{5,2,7}이 찾아진다. 이는 Toyota Tacoma 트럭의 6인 승객 적재량을 표현하는 트리플이다.
이러한 검색의 제 2 구의 결과들로부터, 스마트폰은 사용자의 질의: 5와 매칭하는 차량에 대한 주어 코드를 안다. (본 예에서는 하나의 매칭이 있으나, 다른 예들에서는 몇몇 매칭들이 있을 수 있다.) 스마트폰은 다음으로 사용자에게 제공하기 위한 검색 결과 정보를 준비한다. 동작의 이러한 검색 보고 구는 도 30을 참조하여 예시된다.
어떤 주어 코드(들)이 사용자의 질의들을 만족하는 차량에 대응하는지를 알기 위하여, 스마트폰은 여기서 5의 주어 코드를 갖는 모든 트리플들을 메모리에서 식별한다. 다중 트리플들이 발견되며, 이들 중 일부가 도 30에 도시된다(예를 들면, {5, 1, 17},{5, 2, 7},{5, 3, 58}, 등).
주요 주어, 서술어 및 목적어 표들(위의 표들 IV, V 및 VI)은 각각의 주어, 서술어 및 목적어 코드들에 연관된 문자열들 또는 다른 값들에 대해 참고된다. 예를 들어, 제 1 트리플인 {5, 1, 17}은 "2007 Toyota Tacoma HasExteriorColor White"를 나타낸다. 제 2 트리플인 {5, 2, 7}은 "2007 Toyota Tacoma HasPassengerCapacity 6"를 나타낸다. 스마트폰 소프트웨어는 상이한 데이터를 평범한 영어 제목들로 라벨링할 수 있는 템플릿 형식을 채우고(예를 들어, "HasExteriorColor" 대신 "Color"), 리스트(예를 들면, 위의 서술어 표 V로부터 모든 사용가능한 파라미터들을 포함하는)를 스마트폰 스크린 상의 사용자에게 표현한다. (전화는 어떠한 파라미터들에 기초하여 상이한 템플릿들을 사용할 수 있는데, 예를 들면, 트럭을 위해 사용된 템플릿은 자동차를 위해 사용된 것과는 상이할 수 있다. 템플릿들은 필요에 따라 클라우드 저장장치로부터 얻어질 수 있으며, 또는 그들은 스마트폰 메모리에 있을 수도 있다.)
언급된 바와 같이, 가격과 전화 번호와 같은 파라미터들 중 일부는 주요 목적어 표에 저장되지 않을 수 있다. 이들은 "0"의 목적어 코드를 갖는 트리플들에 의해 식별된다. 이러한 트리플들로부터 데이터를 표시하기 위해, 소프트웨어는 서술어들에 대응하는 보조 표들을 참고한다(예를 들면, 보조 표 #4는 HasPrice 값들을 제공한다). 이러한 보조 표 정보를 참조하는 것에 의해, 소프트웨어는 Toyota Tacoma의 가격이 $24,500이라는 것과, 판매자의 전화 번호는 503-555-1234라는 것을 나타내는 정보로 양식을 채운다.
일부 파라미터들은 스마트폰에 트리플들과 함께 다운로드된 데이터에 명시되지 않을 수 있으나, 대신 예를 들면, 클라우드내의 원격 트리플 저장소들로부터, 획득된다(또는 구글형 텍스트 검색들로부터). 예로서 EPA 마일리지는 온라인 상에서 쉽게 사용가능하고 다른 차량 정보를 증가시키기 위해 얻어질 수 있는 정부 통계이다.
이러한 사용자 질의의 결과들을 나타내는 전형적인 스크린은 참조된 템플릿 형식을 이용하여 구성된 텍스트와 함께, 하나 이상의 사진들(예를 들면, HasLinkForMoreInfo 서술어에 의해 나타내진 URL로부터 얻어진)을 포함할 수 있다. 이러한 텍스트는 예를 들면, 다음과 같이 쓰여질 수 있다:
"2007 TOYOTA TACOMA, $24,500, 53,000 마일을 달린 백색(탠 인테리어). 2.7 리터 가스 엔진, 21 mpg의 EPA 연료 경제성. 이 트럭은 6개의 자리를 특징으로 하며, 3500 파운드의 견인 용량을 가짐. 전화 503-555-1234."
터치 스크린 디스플레이를 가로질러 넘기는 움직임(swiping motion)에 의해 부가적인 차량들을 시야로 가져오면서, 스크린 디스플레이 당 하나의 차량이 상세히 설명될 수 있다. 이러한 정보를 표현하는 더욱 상세한 설명들은 예를 들면, 출원 13/079,327에서 찾아진다.
다른 실시예들에서, 3개보다 많은 8 비트 데이터 평면들을 사용하는 트리플 스토어들이 사용될 수 있다. (일부 이미지들은 4개의 평면 표현들, 예를 들면, Cyan/Magenta/Yellow/Black, 또는 RGBA(여기서 A는 알파, 또는 투명도를 나타낸다)에 저장된다.) 일반적으로 "트리플"의 개선된 형태로 여겨지는 것과 같이, 데이터의 이러한 세트는 또한 "쿼드러플(quadruple)", 또는 더욱 일반적으로 "N-투플(N-tuple)"(N=4)로 불릴 수 있다. 네번째 8비트 데이터 평면은 다양한 특성들을 가능하게 한다.
언급된 바와 같이, 가격들은 코딩될 필요가 있는 256개의 상이한 값들이 있을 수 있고 다른 정보를 표현할 수 있는 8비트 코드들을 남기지 않으므로, 주요 목적어 표에 의한 코딩을 위해 적절하지 않다. 그러나, 256개의 상이한 가격들을 표현하는 8비트 코드들이 드물게 존재하는 네번째 8비트 데이터 평면에 저장될 수 있다.
도 31은 가격에 대한 코드들의 저장 전용인 4번째 8비트 평면과 함께, 앞서 논의된 3개의 8비트 평면들을 포함하는 예시적인 메모리의 일부를 도시한다. 이러한 메모리는 각각이 상이한 주어들 전용인 4x4 블록들로 가상적으로 조직된다. 묘사된 발췌는 주어 5(the Toyota Tacoma truck)와 연관된 코드들을 상세히 설명한다.
보여질 수 있는 바와 같이, 서술어 코드 4(즉, HasPrice)를 갖는 트리플은 그의 목적어 코드에 대해 255를 갖는다. 이러한 구현에서, 255의 코드는 소프트웨어가 연관된 코드에 대한 다른 8 비트 평면(서술어 코드에 의해 나타내지는 특별한 평면)을 참조하도록 명령한다. 본 예에서, 연관된 코드는 218이다.
앞의 예들에서와 같이, 표는 상이한 8비트 코드들을 상이한 값들과 연관시킬 수 있다. 일부 구현들에서, 가격 코드들을 분류된 순서로, 예를 들면 더 작은 코드들을 더 작은 값들에 대응하는 것으로 할당하는 것은 유익하다. 이러한 8 비트 가격 코드 메모리 평면에 대하여, 샘플 표는 다음과 같다:
Figure 112013049341469-pct00013
표 VII
도 31과 이 표를 참조하는 것에 의해, 주어 5와 연관된 가격은 $24,500인 것이 결정될 수 있다.
이러한 방식의 장점은, 이미지 기억 장치로부터 8비트 정수들의 처리시 GPU의 속도를 활용하는, 위에서 상세히 설명된 기술들이 사용될 수 있기 때문에, 검색을 용이하게 한다는 것이다. 도 29b의 사용자 인터페이스는 "가격은?"하고 물어볼 수 있다. 한 쌍의 윈도우들(422, 422a)은 이후 최저 가격과 최고 가격을 설정한, 메모리에서 상세하게 설명된 차량의 실질적 가격들 중에서 스크롤할 수 있는 제어들을 표현한다. 임계치 기법, 또는 다른 이러한 GPU 동작이 이후 지정된 가격 기준들을 만족하는 주어를 빠르게 식별하도록, 가격 메모리 평면의 대응하는 코드들에 적용된다.
많은 이러한 다른 8비트 코드 평면들이 제공될 수 있다. (하드웨어가 이렇게 배열된다면, 이들은 네번째 이미지 메모리 평면으로 교환될 수 있고, 그렇지 않으면 그들은 다른곳에 저장되고 액세스될 수 있다.) 도 31은 (서술어 6에 대응하는) 엔진 크기 전용인 다른 이러한 코드 평면을 도시한다. 다시, 이러한 8 비트 평면의 대응하는 코드들의 저장은 검색 질의들이 빠르게 실행되는 것을 허용한다. (GPU 셰이더(shader)들은 일반적으로 그들이 구동하는 디스플레이 스크린들과 동기화된다. 아이폰4 전화기의 일반적인 GPU가 그의 640x960 픽셀 디스플레이 스크린을 초당 약 25 프레임들로 리프레시한다.)
일부 구현들에서, 서술어들의 대부분-또는 전부-은 도 31의 가격과 엔진 크기에 대해 묘사된 것과 같이, 코드들의 저장을 위한 8비트 메모리의 그들 자신의 평면을 가질 수 있다.
검색은 시맨틱 명령을 표현하기 위해 목적어 코드들을 할당하는 것에 의해 용이해진다는 것이 인식될 수 있다. 이는 연관된 8비트 코드들의 대응하는 오름차순과 함께, 상이한 숫자 값들이 오름차순 방법으로 배열되는, 승객 적재량에 관한 앞의 예로부터 명확하다. 이는 상부 및 하부 코드들을 명시하고, 임계치 동작을 수행하는 것에 의한 범위 기반 검색을 가능하게 한다.
유사한 순서화가 순수하게 숫자가 아닌 파라미터들에 영향을 받을 수 있다. 예를 들어, 색상들이 의미론상의 방법으로, 예를 들면, 대응하는 파장 최대값들, 및/또는 강도 또는 휘도에 기초하여 순서화될 수 있다. 따라서, 모든 청색들(네이비 블루, 로얄 블루, 스카이 블루, 아쿠아마린, 등)이 유사한 코드들을 가질 수 있고, 모든 적색들이 유사한 코드들을 가질 수 있고, 청색과 적색 코드들은 0-255 코드 공간에서 서로 머리 떨어지게 된다. 범위 기반 색상 검색은 이후 쉽게 수행될 수 있다. (예를 들어, 사용자는 도 29b의 윈도우(422)의 "네이비 블루"를 선택할 수 있고, 윈도우(422a)의 "아쿠아마린"을 선택할 수 있으며, 이러한 두 범위 제한들의 색상 코드들 사이의 임의의 색상 코드를 갖는 차량들이 식별된다.)
(색상들 및 다른 특성들을 다루는 다른 방법은 RDF 온톨로지를 이용하는 것에 의한 것으로, 이는 아이템들을 의미론상으로 그룹화하고 연관시킨다. 예를 들어, 많은 상이한 자동차 제조자는 색상의 이름을 다음과 같은 온톨로지에 의해 검색가능한 파라미터들로 분류할 수 있다:
AQUA METALLIC HasColor BLUE
DEEP NAVY HasColor BLUE
DEEP CARDINAL HasColor RED
CRYSTAL RED HasColor RED
CHARCOAL HasColor GREY
GRANITE HasColor CREY
스마트폰은 이러한 트리플들을 역전시키고, 결과적인 주어들(예를 들면, BLUE, RED, 등)을 도 29b의 윈도우들(422 및 422a)에서와 같은 GUI에 표현할 수 있다. 이러한 경우에, 윈도우들(422 및 422a)에서 선택된 두개의 값들이 파라미터들의 범위를 정의하지 않으나, 그보다는 검색에서 함께 OR되는 두개의 상이한 값들을 정의하고, 그 중 한 값을 만족하는 트리플들이 선택된다.)
앞의 예들은 다소 기초적이지만, 포함된 원리들을 설명하도록 사용된다. 더욱 상세한 의미론상의 추론이 자연적으로 실행될 수 있다. 예를 들어, 전화가 자동차의 분류된 광고의 이미지를 캡처하면, 전화는 사용자에게 한 해동안 사용자가 돌아다닌 마일들의 숫자와 같은 일부 사실들을 알기 위해 질의할 수 있다. (이러한 정보는 네트워크 컴퓨터에 저장된 사용자 프로파일이나, 또는 사용자의 현재 자동차의 데이터베이스에서와 같이, 다른 곳에서 사용가능할 수 있다.) 50,000 마일이 전형적인 1년 마일리지임을 나타내는 것에 의해 사용자가 이러한 질의에 응답하면, 전화는 마일당 차량 운영 비용이 사용자에게 중요할 것 같다는 것을 구분하기 위해 의미론상의 추론을 채용할 수 있다. 이러한 추론된 정보로, 전화는 검색 결과들의 처음에 가장 높은 연료 경제성을 갖는 차량들을 표현하는 것에 의해 사용자가 원하는 차량 검색들의 결과들을 렌더링하도록 결정할 수 있다(사용자로부터 다른 명령은 없다).
만일 EPA 마일리지가 검색 결과들의 차량들에 대해 사용가능하지 않다면, 전화는 다른 데이터를 사용하여 추론할 수 있다. 예를 들어, 거의 1300cc 엔진을 갖는 엔진이 4.7 리터 엔진을 갖는 엔진보다 더 연료적으로 경제적이라는 것을 결정하기 위해 의미론상의 추론이 사용될 수 있다. 유사하게, 이러한 추론, 또는 네트워크 지식 기반은 디젤 엔진들이 가스 엔진들보다 더 연료적으로 경제적인 경향이 있다는 것을 나타낼 수 있다. 다시, 이러한 지식은 사용자가 한 해에 50,000 마일을 달린다는 사실에 간단히 기초하여 검색 결과들의 표시를 알려줄 수 있다.
앞의 기술들은 특히 스마트폰 구현들의 환경에서 설명되었지만, 원리들은 더욱 폭넓게 적용가능하다. 또한, GPU 코어들의 사용이 바람직하지만, 상세하게 설명된 특성들은 다른 타입들의 프로세서들에서 처리되는 메모리들에서 유사하게 적용가능하다.
동기화된 배경
증강 현실 기술들은 이미지 특성들을 인식하거나, 라벨들과 같은 정보를 오버레이하기 위한 것으로 알려져있다. 겹쳐진 오버레이는 이미지 특성(들)과 함께 기하학적으로 정합될 수 있으며, 따라서 이미지 특성들이 시야 내에서 움직임에 따라 오버레이는 대응하는 움직임으로 움직인다.
본 기술의 다른 양태는 오버레이보다, 배경의 형태에 증강을 제공하는 것에 의해 이러한 기술들을 형성한다.
전경과 대상을 묘사하는 이미지와, 둘러싸는 배경을 고려하자. 전형적인 이미지는 비틀즈(Beatle's)의 애비 로드(Abbey Road) 레코드 앨범이며, 이는 4명의 비틀즈가 애비 로드의 건널목을 건너고 있는 것을 묘사한다.
포토샵, GIPM, 또는 다른 툴을 이용하여, 4명의 비틀즈가 이미지로부터 발췌될 수 있다. 그것에 의해 두 개의 이미지들이 형성될 수 있는데, 첫 번째 이미지는 4명의 비틀즈들 만을 가지고 있고(빈 공간, 또는 백색과 같은 단일 색상에 의해 둘러싸인), 두 번째 이미지는 단지 배경만 가지고 있다(비틀즈가 있었던 자리는 빈 공간(또는 백색)을 가질 수 있거나 그렇지 않을 수 있다).
첫 번째 이미지가 기판 상에 프린트될 수 있고, 예를 들면, 비디오 캡처 모드에서 스마트폰이 기판의 이미지를 캡처하는데 사용된다. 스마트폰의 소프트웨어는 제 1 이미지와 관련된 카메라의 포즈를 결정한다. 이러한 정보로, 소프트웨어는 기하학적으로 제 2 (배경) 이미지를 둘러싸며, 따라서 이는 동일한 포즈로 보여지는 것처럼 스케일과, 관점을 갖는다. 이후 전화는 이미지의 원래 배경을 제공하기 위해 워핑된, 전화로 캡처된 4명의 비틀즈의 이미지와 배경의 두 개의 이미지를 합성하한다. 두 개의 이미지들은 기판과 관련된 전화의 포즈로부터 보여지는 것과 같이, 원래의 앨범 표지와 같이 나타나는 통합된 이미지를 표현하도록 서로 보완한다.
원래 대신 다른 배경 이미지들이 사용될 수 있다. 따라서, 애비 로드의 이미지 대신 배경 이미지는 뉴욕의 타임스퀘어의 브로드웨이를 묘사할 수 있다. 프린트된 기판으로부터(또는 전자 디스플레이 스크린으로부터) 이미지화된-발췌된 비틀즈들은 새로운 배경 이미지 상에 겹쳐질 수 있고, 이는 다시 워핑되고 스케일되어서 기판에 대한 카메라와 동일한 포즈로 나타날 수 있다. 따라서, 증강이 종래의 증강 현실 오버레이보다 언더레이와 더욱 유사하다.
기판 카메라 포즈를 매칭하기 위한 배경 이미지의 기하학적 워핑 및 정합은 디지털 워터마크들, 특징 이미지 점들, 등을 사용하는 것과 같은, 다양한 방법들로 수행될 수 있다. 제 1 이미지가 QR 코드나 다른 바코드를 가지고 있는 경우, 이러한 특성은 자체로 포즈 정보를 식별하는데 사용될 수 있다. 이러한 기술들은 또한 본 명세서의 다른 부분에서 더욱 상세하게 설명된다.
제 1 이미지와 관련된 전화의 포즈가 일단 선별되면, 제 2(배경) 이미지가 3D 효과를 주기 위하여 포즈의 변화들에 기초하여 변경될 수 있다. 예를 들어, 부가적인 배경 장면이 사용자가 카메라를 찍을 때 프레임으로 이동할 수 있다. 사용자가 더욱 아래 방향으로 카메라를 기울인다면, 거리 이미지의 더 많은 부분이 시야로 들어올 것이다(그리고 일부 하늘 이미지는 프레임의 상부의 밖으로 밀려날 것이다). 카메라 포즈가 변화함에 따라, 제 2 이미지에 묘사된 더 가까운 특성들의 변화된 관점에 의해 제 2 이미지의 일정한 특성들이 보이지 않게 되거나 또는 드러나게 될 수 있다. 일부 이러한 실시예들은 전화의 관점에 기초한 적절한 2D 뷰들을 계산하여 배경 이미지를 생성하기 위해 3D 모델을 채용한다.
예시적인 실시예가 대상 묘사가 빈 공간에 의해, 또는 균일한 색상에 의해 둘러싸인 제 1 이미지를 사용하였지만, 다른 실시예들에서는 이것이 필요하지 않다. 일단 대상의 아이덴티티가 학습되면(예를 들면, 핑거프린팅, 머신 판독가능 인코딩, 등에 의해), 이러한 대상의 윤곽들은 데이터베이스로의 참조에 의해 결정될 수 있다. 카메라는 이후 제 1 이미지 주위의 제 2 이미지를 스티치할 수 있어, 이미지의 주요 대상(예를 들면, 4명이 비틀즈)의 데이터베이스 정의된 윤곽들 외측에 있는 제 1 이미지의 부분들을 보이지 않게 한다.
바람직하게, 사용자가 디스플레이 스크린 상에 탭하면, 전화 소프트웨어는 탭의 위치에 적절한 응답을 제공한다. 사용자가 존 레논 상에 탭하면, 존 레논에 관련된 콘텐트가 제공된다. 이러한 탭들은 디스플레이의 탭된 부분이 전화 카메라에 의해 실질적으로 캡처된 이미지를 묘사하는지, 또는 증강과 같은 전화에 의해 표시된 다른 이미지를 묘사하는지와 상관없이 그들의 행동을 호출한다. (전화 소프트웨어는 사용자의 탭의 X- 및 Y- 위치들을 출력하며, 이는 이후 디스플레이된 이미지에 특별하게 위치를 매핑한다. 이미지의 표현된 디스플레이의 이러한 위치에 대응하는 콘텐트는 이후 데이터베이스를 탭 좌표들과 인덱스하는 것, 워터마크를 그 영역에 디코딩하는 것, 등과 같은 알려진 방법들에 의해 결정될 수 있다.)
이동 장치들로 디스플레이들을 링킹
본 기술의 이러한 양태에 따라, 워터마크가 LCD 모니터와 같은, 디스플레이 디바이스 상에 제공될 이미지/콘텐트/광고/비디오/사용자 인터페이스(예를 들면, 웹 페이지)에 임베딩된다. 임베딩은 디스플레이 디바이스에 의해, 연관된 컴퓨터에 의해, 또는 이미지의 원격 소스에 의해 수행될 수 있다. 워터마크는 스마트폰 또는 다른 이동 장치에 제공된 검출기로 판독가능하다. 워터마크로부터의 페이로드는 논리적으로 표 또는 다른 데이터 구조를 통해 제공된 디스플레이에 대응하는 정보의 소스에 링크한다. (웹 페이지에 대하여, 정보는 페이지에 대한 URL 어드레스일 수 있다.) 다른 기술들에 대한 장점들은 부동산의 절약들(스크린 상에 디스플레이된 이미지에 대하여, 워터마크는 임의의 부가적인 공간을 취하지 않는다), (프린트된 바코드들보다 더 싼) 임베딩 비용들, 모든 디지털 작업흐름, 변환 특성(필요시), 디스플레이된 콘텐트와 이동 장치 사이의 통신 채널을 포함한다. 애플리케이션들은 많으며 몇몇 예들이 이하에 상세하게 설명된다.
하나의 애플리케이션은 매핑에 관한 것이다. 사용자가 MapQuest, Yahoo Maps 또는 Google Maps와 같은 매핑 툴을 이용하는 것에 의해 데스크탑/랩탑 상에서 방향들을 찾고 있다고 가정하자. 원하는 맵/방향들이 (워터마크되는) 스크린 디스플레이 상에 제공되면, 사용자는 이동 전화를 스크린 상에서 디스플레이된 맵/방향들에서 지시하면 된다. 인코딩된 워터마크 판독시, 전화는 디스플레이된 방향들에 대한 URL을 얻으며, 동일한 페이지를 로드한다(WiFi 인터넷 연결을 이용하거나 또는 GPRS와 같은 통신 링크를 통해). 그때 사용자는 이동 전화 상에서 직접적으로 맵/방향들로 가도록 준비한다.
이동 전화가 GPS 용량을 가지고 있다면, 이후 워터마크 판독시 스마트폰은 수동으로 모든 위치/주소 정보를 입력할 필요없이 직접적으로 맵/방향들을 GPS 기능과 링크할 수 있다.
이동 전화가 GPS 용량을 가지고 있지 않지만, 사용자는 그들의 차에 GPS 장비가 있는 디바이스를 가지고 있다면, 워터마크된 데스크탑 스크린 디스플레이로부터 전화에 의해 디코딩된 페이로드 정보가 무선(예를 들면, 블루투스) 연결을 이용하여 GPS 디바이스로 전송될 수 있다.
다른 애플리케이션은 E-커머스를 용이하게 하는 것에 관한 것이다. 사람이 그들의 데스크탑/랩탑 상에서 신발에 대한 광고를 보고 있으며, 이 광고가 워터마크되어 있다고 가정하자. 이동 전화로 광고를 가리키면 이동 전화 상에 디스플레이된 "체크아웃" 페이지로 사람이 직접 갈 수 있다.
다른 애플리케이션은 이미지를 동기화하는 것에 관한 것이다. 사용자는 데스크탑 화면 상에 도시된 특별한 이미지를 좋아할 수 있고, 그를 그들의 스마트폰에 있게 하고 싶을 수 있다. 이는 전화를 이용하여, 스크린 디스플레이의 이미지를 단순히 캡처하는 것에 의해 성취될 수 있다. 전화는 워터마크를 디코드하며, 그에 의해 그의 원래 위치로부터 이미지의 복사본을 얻기 위해 추출된 페이로드를 이용한다.
관련하여, 캘린더 동기화는 데스크탑 디스플레이 상의 캘린더 프로그램(예를 들면, 마이크로소프트 아웃룩)으로부터 이미지를 캡처하는 것에 의해 성취될 수 있다. 전화는 워터마크 페이로드를 디코딩하고, 이러한 정보를 참조하는 것에 의해, 지역적 캘린더를 디스플레이된 아웃룩 캘린더와 동기화하기 위한 데이터를 얻는다.
다른 애플리케이션은 시각적 북마크이다. 사용자가 데스크탑/랩탑 상에서 웹 페이지를 보고 있고, 이동 전화 상에서 다른 브라우징을 위해 그 페이지를 북마크하고 싶어한다고 가정하자(예, 퇴근 가정에서). 웹 페이지가 워터마크를 가지고 있다면, 사용자는 전화로 페이지를 가리키는 것을 할 수 있고, 페이지에 대한 북마크(또는 그의 대응하는 모바일 버전)는 자동적으로 이동 전화 상에 나타날 것이다.
또 다른 애플리케이션은 활성화 링크들에 관한 것이다. (흥미있는 일들이 발생하도록 하기 위하여, 링크 상을 클릭하는 것과 같은, 동작을 사람이 취해야 한다는 것을 의미하는) 정적인 웹 페이지들 상의 링크들과 반대로, 워터마크는 "능동적 링크들"을 용이하게 할 수 있다. 즉, 웹 페이지(또는 다른 관련 디스플레이)의 이동 장치를 가리키기만 하는 것과 워터마크를 판독하는 것만으로도 이동 장치의, 또는 디스플레이와 연결된 컴퓨터 상의 활동을 (무선 링크를 통하여) 자동적으로 트리거한다.
앞의 개념들이 이동 장치를 디스플레이 스크린 상의 비디오 스트리밍을 가리키는 것에 의해 동적으로 변화하는 워터마크들을 판독하는 것을 가능하게 하기 위하여, 비디오로 확장될 수 있다.
앞선 방식들의 일정한 실행에 유용한 부가적인 정보는 다음 논문 Modro, et al, Digital Watermarking Opportunities Enabled by Mobile Media Proliferation, Proc. SPIE, Vol 7254, January, 2009에서 발견된다.
디바이스들 사이의 태스크들 이동
양수인의 공개된 특허 출원 20100205628은 게임/콘텐트 흐름에서 사용자의 위치 손실 없이, 하나의 컴퓨터 시스템(예를 들면, 데스크탑 컴퓨터)에서 다른 컴퓨터 시스템(예를 들면, 스마트폰)으로 게임, 또는 오락 콘텐트를 전송할 수 있는 바람직함을 나타낸다. 이러한 방식들에 의해, 사용자는 스위칭 디바이스들에도 불구하고 활동성을 끊김없이 매끄럽게 지속할 수 있다.
본 기술의 다른 양태에 따라, 컴퓨터 스크린 상에 표현된 디스플레이 데이터는 앱 상태 가변 페이로드로 일정하게 디지털로 워터마크된다. 즉, 컴퓨터의 디스플레이 드라이버 또는 다른 모듈은 일정하게 스테레오그래픽적으로 디스플레이된 데이터를 다중 비트 식별자로 인코딩한다. 이러한 식별자는 종종 변화된다(예를 들어, 변화의 임계량이 프로그램 또는 컴퓨터 상태에서 일어난 때와 같이, 매 프레임, 또는 매 1-10초마다, 또는 불규칙적인 간격들로) 변화된다. 식별자가 변화될 때마다, 컴퓨터는 컴퓨터 시스템의, 또는 스크린 상에서 디스플레이되는 프로그램의 "풀 상태"가 복구되게 하는 데이터를 기록한다. 이러한 정보가 기록되는 데이터 저장소는 몇몇 입력들을 포함할 수 있는데, 하나는 기본 데이터 상태를 제공하고, 다른 것들은 연속적인 업데이트들을 제공한다(비디오 프레임이 때때로 간단히 종래 프레임과 그의 차이점을 상세히 설명하는 데이터로 인코딩되는 방법과 유사하다). (참조 표만큼 간단할 수 있는) 데이터베이스는 저장된 데이터의 어떤 부분이 각 워터마크 페이로드에 대응하는 디바이스 상태를 재생성하는데 필요한지를 식별한다.
도 37은 또한 이러한 방식을 상세히 설명한다. 수직축을 먼저 참조하면, 이따금적 간격들에서 제 1 컴퓨터(예를 들면, 데스크탑 컴퓨터)는 메모리에 상태 데이터를 저장한다. 이러한 상태 데이터는 상이한 디바이스 상에 컴퓨터의 상태(또는 디스플레이될 프로그램의 상태)를 재생성하기에 바람직하게 적당하다. 이러한 상태 데이터가 저장되는 시간마다, 새로운 워터마크 ID가 할당되고(223, 224, 등), 스크린 디스플레이는 따라서 이러한 식별자로 인코딩된다. 대응하는 업데이트가 워터마크 정의 표로 만들어진다.
저장된 상태 데이터는 일반적으로 가변 길이이다(도 37의 사각형들의 길이들에 의해 표시된다). 가끔 데이터의 큰 블록이 기재될 것이다(도 37의 "Base Data"). 저장된 데이터의 연속적인 블록들이 기본 데이터로 차분적으로 업데이트될 수 있다. 다른 간격의, 다른 새로운, 큰, 기본 데이터 블록이 기재될 수 있다(예를 들면, "Base Data(38)").
본 예에서, 저장된 상태 데이터는 선형 메모리로 기입되며, 연속적인 어드레스들을 갖는다(도 37의 수평축에 대응한다). "Base Data(37)"이 메모리 어드레스(1004)에서 시작하여 저장되고, 1012를 통해 지속된다. 제 1 업데이트인 "37A"가 어드레스(1013)에서 시작하여 저장되고, 1016을 통해 지속한다. 유사하게, 제 2 업데이트인 "37B"가 어드레스(1017)에서 시작하여 저장되고, 1023을 통해 지속된다. 이는 제 3 업데이트인 "37C"로 지속한다. 이후 기본 데이터의 새로운 블록("Base Data(38)")이 기록된다.
소비자가 워터마크(223)가 인코딩된 디스플레이 스크린의 화면을 찍기 위해 스마트폰을 사용하면, 소비자의 스마트폰은 워터마크를 디코드하고, 이를 대응하는 상태 데이터가 저장되는 어드레스 정보를 제공하는 데이터 구조(지역적 또는 원격)로 입력한다. 도시된 예에서, 데이터 구조는 메모리 범위 1004-1012를 리턴한다. (도 38은 이러한 워터마크 정의 표를 도시한다.) 스마트폰은 데이터의 이러한 범위를 검색하고, 이를 이용하여, 상이한 디바이스 상에서라도 워터마크(223)가 먼저 인코딩되었을 때 존재되었던 실행 프로그램을 재생성한다.
소비자가 워터마크(224)가 인코딩된 디스플레이 스크린의 화면을 찍을 때, 도 38의 표는 대응하는 기본 데이터("Base Data(37)")를 포함하고 또한 상이한 업데이트인 "37A"를 포함하도록 확장되는 메모리 범위를 리턴한다. 따라서, 이는 메모리 어드레스 범위(1004-1006)를 리턴한다. 다시, 소비자의 스마트폰은 워터마크(224)가 먼저 인코딩된 데스크탑 컴퓨터 상에 존재된 실행 상태를 스마트폰 상에 재생성하기 위하여 이러한 정보를 이용할 수 있다.
도 37의 하부는 상이한 워터마크 페이로드들의 각각을 갖는 도 38의 워터마크 정의 표와 연관된 상이한 메모리 범위들을 그래픽적으로 도시한다.
실행 시 더욱 완전하지만, 기능적으로 유사한 배열이 Chang et al, Deep Shot: A Framework for Migrating Tasks Across Devices Using Mobile Phone Cameras, Proceedings of the 2011 ACM Conference on Human Factors in Computing Systems(CHI 2011), pp.2163-2172에 상세히 설명된다. 출원자들의 설명된 기술은 장 시스템(Chang system)에 유익하게 포함될 수 있으며, 장 시스템의 교시들은 유사하게 방금 설명된 방식에 채용될 수 있다.
LED 조명
LED 사무실 조명은 데스크탑 컴퓨터들에 부착된 광학적 모뎀들과 통신하는 광학적 DSL 네트워크와 유사한 데이터 신호들을 위한 광학적 캐리어로서 사용된다. (예를 들면, 특허 출원 공개 US20090129782, 및 LVX System, Inc.로부터의 상업적 제공들을 보라.)
NXP 반도체(NXP Semiconductor)에 의한 조명의 그린칩(Greenchip) 라인은 집중된 IP6 연결성을 갖는 LED 조명들(때때로 solid state lights로 불려진 "SSL들")을 포함한다. 즉, 모든 조명은 그 자신의 인터넷 어드레스를 갖는다. "젠넷(JenNet)"이라는 IP 네트워크 소프트웨어는 LED 디바이스들에 대한 무선 연결성을 제공한다. 젠넷은 IEEE 802.15.4-기반 네트워킹을 채용하는 6LoWPAN 메시 언더 트리(mesh-under tree) 네트워크이다. 이러한 것과 같은 방식을 통하여, LED의 동작 파라미터들이 유선 네트워크를 가로질러 전송된 IP6 데이터에 기초하여 변화될 수 있다.
본 기술의 다른 양태에 따라, LED 조명은 스마트폰들, 및 다른 카메라가 구비된 디바이스들과 통신할 수 있다. 조명의 휘도 또는 색차는 사람이 수용가능한 정도로 부가적인 데이터를 전달할 수 있도록 변화된다. 이러한 적절한 변동들은 스마트폰 카메라에 의해 캡처된 이미지에 반영된다. 스마트폰 프로세서에 의해 실행된 워터마크 디코딩 처리는 이후 카메라 데이터로부터 인코딩된 정보를 추출한다.
광학적 모뎀들과 달리, 스마트폰 카메라들은 적어도 초당 100 프레임들보다 적은(더욱 전형적으로, 10-30 fps) 캡처 이미지 프레임들을 제공한다. 그러나 더욱 작게, 이러한 데이터 속도는 더 이상 유용한 정보를 전달할 수 없다. 조도가 일반적인 스마트폰들에 의해 감지된 적색, 녹색, 및 청색의 상이한 색상 채널들의 둘 이상으로 변조되면, 다소 더 높은 데이터 속도들이 성취될 수 있다.
일부 애플리케이션들에서, 색상 변조에도 불구하고 일정한 휘도를 유지하는 것이 바람직할 수 있다. 이는 데이터를 전달하기 위한 색상 채널들 중 두 개를 변조하는 것에 의해 성취도며, 다른 색상들로 인한 휘도 변화를 보정하기 위해 필요할 때 제 3 채널을 변조하고, 일정한 순 휘도를 산출한다. 광의 상이한 파장들에 대한 눈의 상이한 감수성 때문에, 휘도는 녹색의 양에 가장 의존적이며, 이는 청색의 양에 가장 덜 의존적이다(Y=.59G + .30R + .11B). 예시적인 실시예는 데이터를 전달하기 위해 적색과 청색을 변화시킬 수 있으며, 휘도 보정을 위해 녹색을 변화시킬 수 있다.
다른 애플리케이션들에서, 휘도 변조에도 불구하고 일정한 색상(hue)을 유지하는 것이 바람직할 수 있다. 다시, 이는 구동 신호들의 적절한 제어에 의해 성취될 수 있다.
알려진 디지털 워터마킹 시스템들(예를 들면, 6,590,996)에서와 같이, 워터마크 데이터 페이로드는 데이터 에러들에 대해 견고성을 제공하기 위하여 BCH("트렐리스(trellis)") 또는 컨벌루전 코딩(convolutional)과 같은 에러 보정 코드를 이용하여 표현될 수 있다. 결과적으로 시간 가변성 휘도 또는 색차 변화가 가까운 카메라 센서들에 대해 방송하기 위해 현존하는 LED 제어 신호들에 적용될 수 있다(LED가 고속 데이터로 변조되는지의 여부에 관계없이).
정상적으로, 카메라들은 이미지의 단일 프레임으로부터 복수의 비트들의 디지털 워터마크 데이터를 디코딩하며, 예를 들면, 이미지의 상이한 공간적 부분들(예를 들면, 픽셀들) 사이의 휘도 또는 색차의 가벼운 차이들을 검출한다. 이와 반대로, 본 애플리케이션은 프레임들의 시퀀스로부터의 복수 비트들의 디지털 워터마크 데이터를 디코딩하여, 시간에 따른 휘도 또는 색차의 사소한 차이점들도 검출한다. 단일 프레임 내에서, 캡처된 이미지의 모든 부분들은 LED 조명 신호에 의해 유사하게 영향을 받을 수 있다. 따라서, 워터마크는 단일 픽셀로부터, 또는 복수의 픽셀들로부터, 또는 픽셀들의 모두로부터 출력된 신호들로부터 디코딩될 수 있다. 후자의 경우에, 예를 들면, 디코딩 애플리케이션은 카메라 픽셀들의 모두에 대하여 휘도 및/또는 색차를 합하거나 평균할 수 있으며, 워터마크 인코딩에 의해 유도된 편차들에 대한 이러한 총합된 신호를 분석한다.
이러한 기술의 하나의 특별한 애플리케이션은 소매 상점 내의 위치를 시그널링하기 위한 것이다. 신발 섹션의 LED 전구 픽스처들은 하나의 특별한 식별자로 인코딩될 수 있고; 남성의류 섹션의 이러한 것들은 상이한 식별자로 인코딩될 수 있다. 주의의 조도를 간단하게 샘플링하는 것에 의해, 전화는 상점 내의 그의 위치를 결정할 수 있다.
다른 애플리케이션은 주변 미디어 환경에서 데이터를 감지하고, 감지된 환경에 기초하여 정보를 추출하기 위해 마이크로폰 또는 카메라가 구비된 LED 조명 픽스처이다. (이는 오디오 워터마크를 검출하는 것, 또는 오디오 핑거프린트 데이터를 생성하는 것과 그에 기초하여 노래를 인식하는 것, 또는 캡처된 이미지로부터 사람의 얼굴을 인식하는 것, 등을 포함할 수 있다.) 이러한 추출된 정보에 관한 데이터는 이후 조명 픽스처로부터 방출된 광에서 인코딩된다.
또 다른, LED 자동차 헤드라이트들은 다가오는 차량들에 그의 속도 및 컴파스 방위와 같은 자동차의 동작의 파라미터들을 전달하기 위해 변조될 수 있다. (이러한 신호는 사용자의 스마트폰보다는, 자동차에 내장된 광 센서 시스템을 이용하여 디코딩되는 것이 바람직하다. 이러한 센서 시스템은 스마트폰 카메라들로 가능한 것보다 높은 대역폭에서 데이터를 캡처하도록 구성될 수 있다. 예를 들어, 헤드램프들은 1000 또는 10,000 비트들/초의 데이터 속도에서 인코딩될 수 있으며, 센서 시스템은 이러한 속도들로 디코딩하도록 구성될 수 있다.)
관련하여, 사업용 또는 가정용 어드레스(예를 들면, 프론트 포치(front porch) 조명)의 외부 조도가 거리 숫자를 인코딩하도록 변조될 수 있다.
한번 이러한 정보가 얻어졌다면, 사용자(또는 사용자의 디바이스)는 이것 위에서 행동을 취할 수 있다. 예를 들어, 소매점의 예에서, 전화가 상점 내의 다른 위치로 사용자 방향들을 나타낼 수 있으며, 또는 근처의 구매를 위한 쿠폰들을 제공할 수 있다. 자동차의 예에서, 전화는 가까이 오는 차량이 속도 제한(또는 사용자 자신의 속도)보다 10% 이상의 속도로 운행중일 때 경고를 시그널링할 수 있다. 외부 조도의 경우에서, 거리 번호가 사용자의 전화 상에 표현될 수 있으며, 또는 그 위치의 사업장/가정집의 이름이 공공 데이터베이스들로부터 검색될 수 있다.
범용 LED 조명과 다른 광 소스들이 단지 설명된 방식으로 제어될 수 있다는 것이 인식될 것이다. 예를 들어, 텔레비전 및 랩탑 조명이 이러한 방식으로 변조될 수 있다. 색차 변조가 색상 기준 텔레비전 장면들(예를 들면, 피부색을 묘사하는데)에 대해 적절하지 않을 수 있으나, 다른 정보 디스플레이들이 색차의 편차들을 경감해 줄 것이다(예를 들면, 데스크탑 컬러, 웹 페이지 백그라운드들, 등).
도 38은 휘도 LED 변조를 채용하는 예시적인 실시예를 도시한다. 광 픽스처가 장착된 디바이스(320)는 하나 이상의 LED들(322), DC 전원 공급(324), 및 변조 장치(326)를 포함한다. 예시된 방식은 또한 이것이 필수적인 것은 아니지만 젠넷 IP6 원격 제어 시스템(논리적 블록(327)과 연관된 변조기(329)를 포함하는)을 포함한다.
전원 공급(324)은 종래의 것이며, 픽스처 AC 전력(예를 들면, 120 볼트)를 LED(들)(322)에 적절한 DC 전압으로 변환한다. (특별하게 도시되지 않았으나, 동일한 전력 공급이 변조 장치(326)와 젠넷 시스템(327)에 필요한 전압(들)을 제공할 수 있다.) 변조 장치(326)는 예를 들면, 라디오 또는 오디오 신호에 의해 디바이스로 전달된, 그리고 안테나(328) 또는 마이크로폰(330)에 의해 감지된 입력 데이터 신호(333)를 수신하는 데이터 수신기(332)를 포함한다. 데이터 수신기는 2진 출력 데이터를 제공하기 위한 적절한 디코딩(예를 들면, 오디오 신호의 경우에 워터마크 추출 프로세스)을 제공한다. 이러한 데이터는 컨벌루셔널 인코더(334)로 입력되며, 인코더(334)는 변조기(336)에 출력 신호를 제공하고, 변조기(336)는 따라서 LED(들)(322)에 인가된 DC 신호를 변화시킨다. (변조기들(329, 336)이 부가기들로 도시되지만, 멀티플라이어들 또는 다른 장치들이 대안적으로 사용될 수 있다.)
실질적인 응용에서, 시스템(320)은 일반적으로 적색/녹색/청색/백색 LED 소스들을 채용하며, 이들은 1KHz - 30KHz의 주파수에서 삼자극(tri-stimulus) 펄스 폭 변조(PWM) 제어 신호들로 구동된다. 이러한 장치에서, 구동 펄스들의 지속 시간들은 데이터 신호(333)의 스테가노그래픽적 인코딩에 영향을 미치기 위하여 더 길어지고 및/또는 짧아진다. (일반적으로, 펄스 길이들에 대한 변화들은 25%보다 작으며, 10%, 5%, 또는 2%보다 작을 수도 있다. 양성의 또는 음성의 변화들이 예를 들면 컨벌루셔널 인코더들로부터의 "1"과 "0"의 출력들에 대응하여 만들어진다면 그들의 시간 평균이 일반적으로 0이 될 것이므로 더 큰 변화들이 수용가능할 수 있다.) 특별한 변조 퍼센티지는 동작되는 애플리케이션에 의존하며, 이는 단순한 경험에 의해 결정될 수 있다. (예를 들어, 주어진 컨벌루셔널 인코더에 대하여, 원치않는 시각적 효과들이 밤과 같이 대부분의 원하는 조도 조건들 하에서 나타나기 시작할 때까지 PWM 구동 신호들로 퍼센티지 변화들을 증가시키고, 이후 이러한 효과들이 감지되지 않을 때까지 퍼센트 변화를 감소시킨다.)
다양한 실시예에서, 도 32의 데이터 수신기(332)는 GPS 수신기 또는 다른 위치 감지 모듈로 대체된다. (GPS보다 더욱 정밀한 기술은 특허들 7876266과 7,983,185, 그리고 특허 공개들 2009313370, 2009233621, 및 2009213828에서 교시된다.) 이러한 장치에서, 광원은 지리적 데이터로 인코딩된 조도를 방출한다.
다른 장치에서, 시스템(320)은 데이터 수신기(332)를 채용하지 않지만, 대신 고정된 복수의 비트의 데이터 페이로드로 하드코딩된다(예를 들면, ROM 또는 딥-스위치 장치에 의해 설정될 수 있다). 이러한 페이로드는 시스템에 대한 유일한 식별자로 동작할 수 있다. 수신 스마트폰이 이러한 시스템으로부터 조도를 감지하고, 복수의 비트의 식별자를 디코딩할 때, 이러한 전화는 식별자를 원격 데이터베이스로 전송할 수 있고(예를 들여, 인터넷을 통하여), 이는 전화기의 사용을 위한 연관된 정보를 리턴한다(예를 들면, 집 번호, 상점 이름, 등).
또 다른 장치에서, 스테가노그래픽으로 전달될 (즉, 스마트폰에 의해 감지될 수 있는 비트 속도로) 데이터가 전원 라인들을 통해 전달된다. 이는 PDSL 또는 BPL과 같은 알려진 전력선 통신(PLC) 기술들을 이용하여 수행될 수 있다. 대안으로, 디바이스들의 그린칩 라인에 의해 채용된 기술이 사용될 수 있다.
스마트폰이 LED 기반 광학적 통신 신호들의 수신기로서 동작할 수 있는 것과 같이, 그는 이러한 신호들의 송신기로서 유사하게 동작할 수 있다. 대부분의 스마트폰들(및 많은 것이 덜 가능한 "피처"폰들)은 카메라 캡처된 장면들을 조명하기 위하여 LED "손전등"을 포함한다. 이러한 LED는 전화로부터 광학적으로 데이터를 전달하기 위해 위에서 상세히 설명된 장치들을 이용하여 변조될 수 있다. 블루투스 및 다른 단거리 통신 기술들과 달리, 이러한 LED 통신은 사이트의 확실한 라인이 일반적으로 요청되기 때문에 사생활의 일부 측정을 제공한다.
하나의 특별한 실시예에서, 수신 시스템(예를 들면, 다른 스마트폰)은 응답 데이터로 LED 신호들에 응답한다. 이러한 데이터 응답은 수신된 광학적 신호의 강도를 나타내는 정보를 포함할 수 있다(예를 들면, 신호 대 잡음 매트릭에 대응하는 숫자). 발신하는 전화가 이후 적절하게 제공할 수 있지만, 과도하지 않게, 제 2 디바이스에서 수신된 신호 세기를 제공하기 위해 그의 LED 구동 전력을 감소시킬 수 있다. 전원을 절약하는 것에 부가하여, 이러한 방식으로 이러한 LED 구동 전류의 감소는 의도되지 않은 광학적 수신기들의 도청 성능을 상당히 감소시킨다. (발신하는 스마트폰으로 다시 보내진 이러한 응답 데이터는 무선으로, 광학적으로, 또는 다른 방법에 의해 전달될 수 있다.)
리뷰
리뷰를 위하여, 여기서 상세히 설명된 몇몇 새로운 장치들이 다음과 같이 요약될 수 있다:
방법은, 디바이스에서, 콘텐트(예를 들면, 오디오 콘텐트)를 표현하는 데이터를 수신하는 것을 포함한다. 알고리즘이 수신된 데이터로 적용되어 그로부터 식별 데이터를 도출한다. 도출된 식별 데이터를 참조하는 것에 의해, 특별한 소프트웨어 프로그램이 콘텐트를 사용하기 위해 선택된다. 이러한 선택은 이러한 행동을 수행하도록 구성되는 디바이스의 프로세서에 의해 수행된다. 선택된 소프트웨어 프로그램이 이후 런칭된다. 이러한 장치에 의해, 데이터에 사용된 특별한 소프트웨어 프로그램의 선택은 데이터 자체로부터 도출된 식별 데이터에 기초한다.
다른 방법은 또한, 디바이스에서, 콘텐트(예를 들면, 오디오 콘텐트)를 표현하는 데이터에 수신하는 것을 포함하며, 그로부터 식별 데이터를 유도하기 위하여 수신된 데이터로 알고리즘을 적용한다. 유도된 식별 데이터를 참조하는 것에 의해, 콘텐트에 사용하기 위한 선호된 소프트웨어 프로그램이 선택된다. 이러한 선택은 이러한 행동을 수행하도록 구성되는 디바이스의 프로세서에 의해 수행된다. 선호된 소프트웨어 프로그램이 이후 사용자에게 나타내진다. 이러한 배열에 의해, 데이터에 사용된 선호된 소프트웨어 프로그램이 데이터 자체로부터 유도된 식별 데이터에 기초하여 선택된다.
또 다른 방법은, 디바이스에서, 콘텐트(예를 들면, 오디오 콘텐트)를 표현하는 데이터를 수신하는 것을 포함한다. 이러한 콘텐트는 디바이스의 제 1 소프트웨어에 의해 렌더링될 수 있는 타입일 수 있다. 이러한 제 1 소프트웨어로 콘텐트를 렌더링하는 시도에 응답하여, 디바이스는 제 2 소프트웨어가 대신 사용되어야 한다는 것을 나타낸다. 이러한 경우에, 그 창작자의 콘텐트에 대하여, 콘텐트의 창작자는 제 2 소프트웨어를 선호하는 것으로 지정한다.
또 다른 방법은 디바이스의 마이크로폰으로, 주위의 환경으로부터 오디오를 수신하는 단계를 포함한다. 그로부터 식별 데이터를 유도하기 위해 수신된 오디오를 표현하는 오디오 데이터에 알고리즘이 적용된다. 유도된 식별 데이터를 참조하는 것에 의해, 대응하는 이행 서비스가 오디오를 포함하여 상업적으로 사용되도록 선택된다. 이러한 배열에 의해, 제 1 수신된 오디오는 제 1 오디오를 포함하여 상업적으로 사용될 제 1 이행 서비스를 선택하게 하고, 제 2의, 상이한, 수신된 오디오는 제 2 오디오를 포함하여 상업적으로 사용될 제 2의, 상이한 이행 서비스를 선택하게 한다.
다른 방법은 사용자 디바이스에 의해 미리 샘플링되었던 콘텐트인 사용자의 주위 환경의 콘텐트(예를 들면, 오디오)를 식별하는 단계를 포함한다. 식별 콘텐트에 대한 정보는 선택적으로 사용자 환경 정보와 함께 이후 공개된다. 이러한 공개된 정보에 응답하여, 하나 이상의 제 3 자 입찰(third party bids)이 수신된다. 결정이 낙찰로 형성되며, 제 3 자가 그와 연관된다. 결정된 제 3 자로 식별된 소프트웨어가 이후 사용자 디바이스 상의 사용자에게 구매 기회를 제공할 수 있게 한다.
또 다른 방법은 주어진 타입의 수신된 콘텐트(예를 들면, 오디오, 비디오의 이미지)에 대응하는 디지털 데이터의 세트를 수신하는 단계를 포함한다. 수신된 콘텐트에 대응하는 식별 데이터가 생성되며, 수신된 콘텐트가 주어진 타입의 다른 콘텐트로부터 구별될 수 있다. 식별 데이터를 참조하는 것에 의해, 수신된 콘텐트와 연관되고 주어진 타입의 모든 다른 콘텐트와 연관되지 않은 N 개의 애플리케이션 프로그램(들)이 결정되고, 여기서 N 은 하나 이상이다. 이후 하나 이상의 결정된 애플리케이션 프로그램(들)로 행동이 취해진다.
기술의 다른 양태는 그에 저장된 운영 시스템(OS) 소프트웨어를 갖는 컴퓨터 판독가능한 저장 매체이다. OS 소프트웨어는 정의된 인터페이스들을 통해 애플리케이션 프로그램들의 요청시 OS 서비스들을 제공하도록 프로세서를 구성하기 위해 동작한다. 이러한 OS 서비스들은 시각적 또는 청각적 정보를 표현하는 신호 데이터로부터 콘텐트 식별 데이터를 도출하는 것과, 정의된 인터페이스를 통해 콘텐트 식별 데이터에 가입하는 하나 이상의 애플리케이션 프로그램들에 의해 사용하기 위해 콘텐트 식별 데이터를 공개하는 것을 포함한다.
기술의 다른 양태는 처리 디바이스와 메모리를 포함하는 장치이다. 메모리는 처리 디바이스가 정의된 인터페이스들을 통하여 애플리케이션 프로그램들을 요청시 OS 서비스들을 제공하도록 구성하는 운영 시스템(OS) 명령들을 포함한다. 장치는 또한 디바이스의 환경으로부터 주위의 시각적 및/또는 청각적 자극들을 감지하고 이에 대응하는 콘텐트 데이터를 생성하기 위한 감지 시스템을 포함한다. OS 서비스들 중 하나는 생성된 콘텐트 데이터로부터 콘텐트 식별 데이터를 도출하며, 이것을 규정된 인터페이스를 통해 가입하는 애플리케이션 프로그램들의 요청시 공개한다.
기술의 다른 양태는 처리 디바이스와 메모리를 포함하는 장치이다. 메모리는 규정된 인터페이스들을 통하여 애플리케이션 프로그램들의 요청시 OS 서비스들을 제공하는 처리 디바이스를 구성하는 운영 시스템(OS) 명령들을 포함한다. 이러한 규정된 인터페이스들 중 하나는 디바이스에 의해 처리된 시각적 또는 음향적 자극들에 대응하는 콘텐트 식별 데이터를 공개하는 콘텐트 식별 메시지 대기열을 제공하며, 이러한 대기열로 하나 이상의 애플리케이션 프로그램들이 가입할 수 있다.
기술의 다른 양태는 연장된 주기(예를 들면, 15분, 1시간, 또는 6시간보다 긴)동안 사용자의 주위의 환경으로부터 음향적 또는 시각적 자극들을 감지하여, 이를 통해 사용자가 주기 동안 노출되었던 콘텐트를 알려주는 단계를 포함하는 방법이다. 이러한 감지된 자극들을 참조하는 것에 의해, 구성된 하드웨어 프로세서가 사용자가 이러한 주기동안 노출되었던 콘텐트의 몇몇 상이한 아이템들에 대응하는 콘텐트 식별 데이터를 생성하는데 사용된다. 이후, 사용자 인터페이스와의 후속적인 사용자 상호작용의 과정에서, 상기 방법은 사용자의 환경으로부터 언급된 제목과 복수의 콘텐트의 상이한 아이템들에 의해, 사용자에 대해 식별하고 사용자가 식별된 콘텐트의 아이템들 중 적어도 하나에 대한 복수의 상이한 행동들 중 선택할 수 있게 한다.
다른 방법은 사용자의 주위 환경으로부터 음향적 또는 시각적 자극들을 감지하는 것을 포함하며, 이에 의해 사용자가 노출되었던 콘텐트가 알려지는 단계를 포함한다. 감지된 자극들을 참조하는 것에 의해, 구성된 하드웨어 프로세스가 콘텐트의 적어도 하나의 이러한 아이템에 대응하는 콘텐트 식별 데이터를 생성하기 위해 사용된다. 둘 이상의 상이한 소프트웨어 애플리케이션들이 이후 이러한 생성된 콘텐트 식별 데이터에 적어도 부분적으로 기초한 정보로 준비된다. 이러한 장치에 의해, 사용자가 다음으로 상이한 소프트웨어 애플리케이션들의 각각을 이용할 때, 사용자는 그것이 콘텐트의 아이템에 사용자의 노출을 이미 반영한 것임을 발견할 것이다.
다른 방법은 소비자 전자 장치를 사용하여 오디오, 이미지 및/또는 비디오 콘텐트를 표현하는 콘텐트 데이터를 수신하는 단계를 포함하며, 먼저 설치되거나 또는 다른 방법으로 디바이스에 사용할 수 있도록 만들어진 제 1 소프트웨어 렌더링 프로그램 때문에, 콘텐트 데이터는 전자 장치가 콘텐트 관련 경험을 생성하도록 렌더링할 수 있는 타입의 파일 포맷으로 수신된다. 수신된 콘텐트 데이터를 참조하는 것에 의해, 수신된 콘텐트 데이터와 함께 콘텐트 관련 사용자 경험을 생성하기 위한 콘텐트 데이터의 소유주에 의해 규정된 하나 이상의 소프트웨어 렌더링 프로그램(들)이 결정된다. 방법은 이후 이렇게 결정된 소프트웨어 렌더링 프로그램들 중 어느 것도 디바이스와의 사용을 위해 현재 설치되거나 사용가능하지 않다는 것을 결정하며, 이어서 가능한 제 1 소프트웨어 렌더링 프로그램에도 불구하고 수신된 콘텐트 데이터를 디바이스 상에서 렌더링하는 것을 거절한다. 이러한 장치에 의해, 소비자 전자 장치는 콘텐트 관련 사용자 경험이 사용자에게 전달될 소프트웨어 렌더링 프로그램(들)에 대하여 소유주의 규정을 존중한다.
또 다른 방법은 사용자의 디바이스를 이용하여 작품을 렌더링하는 것에 관한 것이며, 작품은 그의 소유주에 의해 제작된다. 작품이 몇몇 상이한 소프트웨어 프로그램에 의해 렌더링될 수 있는 데이터 포맷으로 제공된다. 방법은 또한 작품 데이터를 렌더링하는 데 사용될 수 있는 이러한 프로그램들의 서브세트를 결정하기 위하여, 프로그래밍된 프로세서를 이용하여, 소유주에 의해 명시된 메타데이터를 참고하는 단계, 및 이러한 서브세트의 하나의 프로그램과 함께 작품 데이터를 렌더링하는 단계를 포함한다. 이러한 장치에 의해, 소유주에게는 어떻게 기술이 렌더링되는지에 대한 제어 조치를 제공된다.
기술의 다른 양태는 처리 장치, 상기 처리 장치를 구성하기 위한 몇몇 소프트웨어 프로그램들을 저장하는 컴퓨터 판독가능한 저장 매체, 및 장치의 환경의 주위의 시각적 또는 청각적 콘텐트를 표현하는 데이터를 생성하기 위한 감지 시스템을 포함하는 장치이다. 소프트웨어 프로그램들의 적어도 하나가 장치 환경으로부터 어떠한 주위의 콘텐트를 감지하는 장치의 결과로서 컴퓨터 판독가능한 저장 매체에 저장된다.
기술의 다른 양태는 프로세서와 메모리를 포함하는 휴대용 디바이스(예를 들면, 스마트폰)이며, 메모리는 운영 시스템 소프트웨어와 복수의 소프트웨어 프로그램들을 포함한다. 이러한 프로그램들 중 제 1 프로그램은 대응하는 식별 데이터를 생성하기 위해 음향 또는 시각적 콘텐트를 나타내는 데이터를 분석하기 위하여 동작하고, 이러한 분석의 결과들을 출력으로 공표한다. 이러한 프로그램들 중 제 2 프로그램은 제 2 프로그램이 조율되는 어떠한 콘텐트에 대하여 제 1 프로그램의 출력을 모니터링하도록 동작하며, 어떠한 콘텐트가 알려질 때 동작을 취한다.
또 다른 방법은 시청 포즈로부터 대상의 이미지를 캡처링하는 단계와, 캡처된 이미지를 휴대용 디바이스의 스크린 상에 제공하는 단계를 포함한다. 시청 포즈의 최적화가 캡처된 이미지를 참조하는 것에 의해 평가된다. 방법은 이후 캡처된 이미지의 제공 상에서, 평가의 결과를 나타내는 표시들을 오버레이한다. 이러한 오버레이된 표시는 평가된 최적화의 변화들에 따라 변화한다.
다른 방법은 휴대용 디바이스를 사용하여 이미지의 복수의 프레임들을 캡처하는 단계를 포함하며, 상기 휴대용 디바이스는 이미지 센서와 제 2 센서를 갖는다. 제 2 센서로부터의 데이터에 기초하여 캡처된 프레임들 중 적어도 두 개의 서브세트가 선택된다. 이러한 선택된 프레임들이 이후 조합된다. 조합은 두드러진 점들을 사용할 수 있으며, 조합된 출력이 휴대용 디바이스에서의 디지털 워터마크 디코더로 제공될 수 있다.
기술의 다른 양태는 프로세서, 메모리, 및 적어도 하나의 카메라와 마이크로폰을 포함하는 복수의 센서들을 포함하는 휴대용 디바이스(예를 들면, 스마트폰)이다. 디바이스의 구성성분들은 오디오 핑거프린트 인식 대행자, 바코드 인식 대행자 및 이미지 워터마크 인식 대행자와 같은 복수의 인식 대행자들을 규정하기 위해 협력한다. 대행자들은 메모리의 블랙보드 데이터 구조로부터 데이터를 판독하고 이에 데이터를 기재하도록 구성된다. 이러한 블랙보드 데이터 구조는 또한 센서들로부터 데이터를 수신하고 대행자들이 처리한 저장된 이미지 데이터 및 오디오 데이터의 대기열들을 컴파일하도록 구성된다. 이러한 요소들은 메모리에서 명령들에 의해 규정된 이벤트 제어기의 제어 하에서 협력한다.
또 다른 방법은 사람과 복수의 객체들 사이의 네트워크 관계들을 결정하는 단계, 및 이러한 네트워크 관계들로부터, 사람에 대한 객체들의 상대적인 중요성을 구분하는 단계를 포함한다. 동작이 이후 구분된 상대적 중요성에 기초하여 취해진다.
또 다른 방법은 휴대용 디바이스에서, 사람의 손의 제스처들의 이미지를 캡처하는 단계를 포함한다. 이미지가 상기 제스처들로부터 사인 언어를 식별하도록 처리되며, 행동이 그에 기초하여 취해진다.
다른 방법은 제 1 및 제 2 공간적 주파수 부분들을 갖는 정보 전달 패턴을 규정하는 단계, 및 이러한 패턴을 기판 상에 프린트하는 단계를 포함한다. 제 1 부분은 보는 사람들에 인코딩된 정보의 존재에 힌트를 주는 시각적인 배경 직조 패턴을 규정하고, 제 2 부분은 사람의 시력의 범위를 넘는 공간적 주파수들을 포함하고, 인코딩된 정보의 적어도 일부를 전달한다.
또 다른 방법은 제 1 디바이스에서, 디지털 워터마킹에 의해 인코딩된 페이로드 데이터를 갖는 오디오 또는 이미지 콘텐트 데이터를 수신하는 단계를 포함한다. 이러한 페이로드 데이터는 디코딩되며, 이후 적어도 일부가 디지털 워터마킹과는 다른 기술에 의해 제 2 디바이스로 전송된다.
또 다른 방법은 가정의 오락 시스템에서, 오디오 또는 이미지 콘텐트를 수신하는 단계, 및 그로부터 미디어 핑거프린트 정보를 결정하는 단계를 포함한다. 미디어 핑거프린트 정보는 이후 콘텐트가 가정용 오락 시스템에 의해 렌더링되는 사용자의 휴대용 디바이스(예를 들면, 스마트폰)로 무선으로 전송된다.
다른 방법은 소매 상점에서, 상점의 쇼핑객에 의해 관심있는 제품을 나타내는 신호를 수신하는 단계, 및 수신된 신호에 기초하여 동작을 취하는 단계를 포함한다. 이러한 동작은: 쇼핑객을 서비스를 위한 대기열에 입력하고, 서비스를 위한 대기 시간을 쇼핑객에게 알려주고, 서비스를 제공할 소매 상점 직원에 대한 정보를 쇼핑객에게 제공하고, 쇼핑객에게 서비스에 대한 대기에 대한 미끼를 제공하는 것 중 적어도 하나를 포함한다. (이러한 미끼는 과금이 다르게 평가되는 오락 콘텐트일 수 있다.)
다른 방법은 쇼핑객의 스마트폰에 의해 소매 상점에 디스플레이된 제 1 제품으로부터 감지된 데이터를 참조하는 것에 의해, 제 2 제품이 제 1 제품과 호환되는지를 결정하고, 이후 이러한 결정에 기초하여 동작을 취하는 단계를 포함한다.
또 다른 방법은 디지털로 워터마크된 객체로부터 이미지를 캡처하는 단계를 포함하며, 디지털 워터마크는 알려진 기준 특성들을 포함한다. 이후, 이러한 알려진 기준 특성들이 캡처된 이미지가 이미지 블러를 감소시키도록 처리될 수 있게 하는 블러 커넬을 추정하는데 사용된다.
또 다른 방법은 사용자의 휴대용 디바이스(예를 들면, 스마트폰)에 의해 감지된 정보를 참조하는 것에 의해, 사용자의 관심을 결정하고, 이후 결정된 관심에 기초하여 행동을 취하는 단계를 포함한다.
또 다른 방법은 사용자가 선택할 수 있는 휴대용 디바이스의 스크린 상에 텍스트 문자들의 배열을 디스플레이하는 단계; 텍스트를 선택하기 위해 스크린의 일부를 향한 사용자의 응시를 감지하는 단계; 및 이후 사용자가 다음으로 선택할 수 있는 스크린 상의 문자들의 배열을 변경하는 단계를 포함한다.
다른 방법은 스마트폰 카메라를 사용하여 이미지 데이터의 비디오 시퀀스를 캡처하는 단계; 캡처된 데이터의 제 1 머신 판독가능한 심볼을 식별하는 단계; 제 1 식별된 심볼과 관련된 정보를 저장하는 단계; 캡처된 데이터의 제 2 머신 식별가능한 심볼을 식별하는 단계; 및 제 2 식별된 심볼에 관련된 정보를 저장하는 단계를 포함한다. 이러한 배열에 의해 디바이스는 캡처된 비디오 시퀀스에서 발견된 머신 판독가능한 심볼들에 관련된 정보를 수집하도록 스트리밍 모드에서 동작한다.
기술의 다른 양태는 프로세서, 메모리, 하나 이상의 센서 서브 시스템들, 및 터치스크린을 포함하는 시스템이다. 상기 시스템은 디바이스가 센서 서브시스템으로부터의 정보를 메모리에 RDF 트리플들로서 저장하도록 구성되고, 프로세서는 저장된 RDF 트리플들에 기초하여 동작을 취하도록 구성되는 것을 특징으로 한다.
기술의 또 다른 양태는 센서 데이터를 수신하는 단계, 감지된 정보를 저장을 위하여 RDF 트리플들로 표현하는 단계, 및 이후 저장된 RDF 트리플들을 처리하는 단계를 포함하는 방법이다.
기술의 다른 양태는 카메라, 프로세서, 및 메모리를 포함하는 디바이스이다. 메모리는 카메라에 의해 캡처된 이미지의 세트를 저장하며, 또한 이미지의 세트에 대한 진술들을 생성하는 복수의 RDF 트리플들을 저장한다. 디바이스 프로세서는 하나 이상의 저장된 RDF 트리플들을 참조하는 것에 의해, 저장된 이미지의 세트 상에서 동작을 수행하도록 구성된다.
다른 방법은 제 1 컴퓨터 프로세스가 하나 이상의 다른 컴퓨터 프로세서들로부터 서비스를 요청하는 것을 가능하게 하고, 데이터 구조로 요청을 포스트하는 것을 포함하며, 여기서 요청은 RDF 트리플로서 표현된다.
또 다른 방법은 소비자 전자 장치에서 오디오 정보를 수신하는 단계를 포함하며, 오디오 정보는 콘텐트 분배자에 의해 제공되었고, 적어도 제 1 및 제 2 오디오 트랙들을 포함한다. 이러한 장치에서, 제 1 및 제 2 트랙들 사이의 비율을 설정하는 제어 신호가 수신된다. 오디오는 이후 이러한 비율에 따라 소비자에 렌더링된다. 제 2 오디오 트랙은 보조 정보를 전달하는 잡음형 디지털 워터마크 신호를 포함한다.
기술의 다른 양태는 콘텐트 데이터를 포함하는 컴퓨터 판독가능한 매체이며, 제 1 디바이스에 의해 렌더링될 때 제 2 디바이스의 기능을 제어한다. 이러한 콘텐트 데이터는 적어도 오디오 정보의 제 1 및 제 2 트랙들을 포함한다. 제 1 트랙은 소비자 기쁨을 위한 오디오를 포함하며, 제 2 트랙은 제 2 디바이스를 위한 제어 데이터를 전달하는 잡음형 디지털 워터마크 신호를 포함한다.
기술의 다른 양태는 오디오의 적어도 제 1 및 제 2 트랙들에 대응하는 데이터를 포함하는, 콘텐트 정보를 저장하는 메모리를 포함하는 장치이다. 오디오 부가 출력 디바이스(예를 들면, 스피커)에 콘텐트 정보를 렌더링하기 위해 제공된다. 이러한 오디오 부는 제 2 트랙이 제 1 트랙에 대하여 렌더링되어야 하는 레벨을 설정하도록 사용자에 의해 동작가능한 제어를 포함한다. 오디오의 제 2 트랙에 대응하는 저장된 데이터는 제 2 장치의 기능을 제어하기 위한 잡음형 디지털 워터마크 신호를 표현한다.
기술의 다른 양태는 카메라가 구비된 휴대용 디바이스에 의해 캡처된 이미지에 대응하는 데이터의 제 1 세트를 수신하는 단계를 포함하는 방법이며, 이미지는 대상을 묘사한다. 스테가노그래픽적으로 인코딩된 디지털 워터마크 페이로드 데이터는 데이터의 제 1 세트로부터 디코딩된다. 이러한 페이로드 데이터를 참조하는 것에 의해, 데이터의 제 2 세트가 얻어진다. 데이터의 이러한 제 2 세트는 대상에 대응하는 두드러진 점 데이터를 포함한다.
기술의 다른 양태는 컴퓨팅 디바이스에 의해 수행될 경우, 컴퓨팅 디바이스가: 대상을 묘사하는 이미지에 대응하는 데이터의 제 1 세트를 수신하는 것과; 데이터의 제 1 세트로부터 스테가노그래픽적으로 인코딩된 디지털 워터마크 페이로드 데이터를 디코딩하는 것과; 페이로드 데이터를 참조하는 것에 의해 데이터의 제 2 세트를 얻는 것을 포함하는 동작들을 수행하도록 하는 소프트웨어 명령들을 포함하는 컴퓨터 판독가능한 매체이다. 데이터의 제 2 세트는 대상에 대응하는 두드러진 점 데이터를 포함한다.
기술의 다른 양태는 휴대용 디바이스에서, 객체와 연관된 패시브 칩 디바이스로부터 감지된 식별 데이터를 수신하는 단계를 포함하는 방법이다. 이러한 식별 데이터를 참조하는 것에 의해, 제 2 세트의 데이터가 얻어진다. 이러한 데이터의 제 2 세트는 객체에 대응하는 두드러진 점 데이터를 포함한다.
기술의 다른 양태는 포켓 크기의 하우징에 배치된, 메모리 및 처리부를 포함하는 휴대용 디바이스이다. 메모리는 복수의 코드 기반 시맨틱 트리플들을 표현하는 코드 데이터를 저장하는 제 1 부분을 포함하며, 트리플들의 각각은 제 1, 제 2 및 제 3 코드들을 포함하고, 코드들 중 하나는 주어 코드이며, 하나는 서술어 코드이고, 다른 하나는 목적어 코드이다. 메모리는 상이한 텍스트 문자들을 상이한 코드들과 연관시키는 문자 데이터를 저장하는 제 2 부분을 추가로 포함한다. 처리부는 또한 메모리의 제 1 부분에 코드 데이터를 처리하는 GPU를 또한 포함하여, 메모리의 제 2 부분의 텍스트 문자들에 의해 표현된 정보 상에서 동작들을 수행한다.
기술의 다른 양태는 포켓 크기의 하우징에 배치된, 메모리 및 처리부를 포함하는 휴대용 디바이스이다. 메모리는 복수의 코드 기반 시맨틱 트리플들을 표현하는 코드 데이터를 저장하는 프레임 버퍼부를 포함하며, 각 트리플은 주어 코드, 서술어 코드, 및 목적어 코드를 포함한다. 메모리는 또한 상이한 텍스트 문자들을 상이한 코드들과 연관시키는 문자 데이터를 저장하는 제 2 부분을 포함한다. 처리부는 메모리의 제 2 부분의 텍스트 문자들을 이용하여 표현된 개념들을 포함하는 의미론상의 추론을 수행하기 위하여 메모리의 제 1 부분의 코드 데이터를 처리하는 GPU를 포함한다.
기술의 다른 양태는 포켓 크기의 하우징에 배치된, 메모리 및 처리부를 포함하는 휴대용 디바이스이다. 처리부는 메모리에 저장된 명령들에 의해 구성되며, GPU를 포함한다. 메모리는 복수의 코드 기반 시맨틱 트리플들을 표현하는 코드 데이터를 저장하며, 각각의 트리플은 주어 코드, 서술어 코드, 및 목적어 코드를 포함한다. 명령들은 일련의 템플릿들을 저장된 코드 데이터에 적용하고, 트리플들에 기초한 동작들을 수행하도록 처리부를 구성한다.
기술의 다른 양태는 카메라가 구비된 휴대용 디바이스에 의해 캡처된 이미지에 대응하는 데이터의 세트를 수신하는 단계를 포함하는 방법이며, 이미지가 대상을 묘사한다. 식별 데이터가 수신된 데이터의 세트에 기초하여 결정된다. 식별 데이터를 참조하는 것에 의해, 데이터의 제 2 세트가 얻어지며, 이러한 제 2 세트의 데이터는 복수의 N 개의 투플들을 포함하고, 각각은 주어, 서술어 및 목적어 요소들을 포함한다. 이러한 N 개의 투플들이 처리되며, 동작이 이러한 처리에 기초하여 취해진다.
기술의 다른 양태는 포켓 크기의 하우징에 배치된 터치 스크린, 메모리 및 처리부를 포함하는 휴대용 디바이스이다. 메모리는 복수의 코드 기반 시맨틱 트리플들을 표현하는 데이터를 포함하며, 각각의 트리플은 주어 코드, 서술어 코드, 및 목적어 코드를 포함한다. 메모리는 또한 상이한 코드들에 대한 각각의 문맥적 의미들을 나타내는 텍스트 문자들을 포함하는 부분을 포함한다. 메모리는 또한 사용자가 코드기반 시맨틱 트리플들의 질의를 규정할 수 있는 것을 통해 터치 스크린 상에 어떠한 텍스트 문자들이 존재하는 사용자 인터페이스를 표현하도록 처리부를 구성하는 소프트웨어 명령들을 또한 포함한다.
기술의 다른 양태는 포켓 크기의 하우징에 배치된, 터치 스크린, 메모리 및 처리부를 포함하는 휴대용 디바이스이다. 메모리는 복수의 데이터 N 개의 투플들을 포함하는 기억 장치의 복수의 평면들로 논리적으로 조직되며, N 개의 투플들의 소자들은 텍스트 문자들에 대응한다. 처리부는 터치스크린 사용자 인터페이스를 통해 입력된 사용자 질의에 대한 응답의 일부로서 데이터 N 개의 투플들 상에서 동작하도록 구성된 GPU를 포함한다.
다른 방법은 사용자 질의에 대응하는 데이터를 수신하는 단계를 포함한다. 제 1 평면 임계 테스트가 N 개의 투플 데이터 저장소의 한 평면에 저장된 값들에 적용되며, 데이터 저장소는 복수의 데이터 N 개의 투플들을 저장하는, 데이터의 N개의 평면들을 포함하도록 논리적으로 조직되고, N은 적어도 3이다. 이러한 평면 임계 테스트는 사용자 질의의 제 1 양태를 만족시키는 저장된 데이터의 N개의 투플들의 제 1 서브세트를 식별한다.
또 다른 방법은 카메라가 구비된 휴대용 디바이스에 의해 캡처된 이미지에 대응하는 데이터의 제 1 세트를 수신하는 단계를 포함하며, 이미지는 제 1 해상도의 대상을 묘사한다. 식별 데이터가 데이터의 제 1 세트에 기초하여 결정된다. 이러한 식별 데이터를 참조하는 것에 의해, 데이터의 제 2 세트가 얻어지고, 데이터의 제 2 세트는 대상을 또한 묘사하는 이미지에 대응한다. 데이터의 제 2 세트는 데이터의 제 1 세트와 상이한 관점에서 대상을 묘사하며, 제 1 해상도보다 높은 제 2 해상도로 대상을 묘사할 수 있다.
또 다른 방법은 객체로부터 감지된 NFC 식별 데이터를 수신하는 단계와, 및 식별 데이터를 참조하는 것에 의해 객체를 묘사하는 이미지 데이터의 세트를 얻는 단계를 포함한다.
다른 방법은 제 1 및 제 2 디바이스들 사이의 애플리케이션 상태를 전달하는 것에 관한 것이며, 각 디바이스는 프로세서와 디스플레이 스크린을 포함한다. 방법은 제 1 디바이스의 카메라를 이용하여 제 2 디바이스의 디스플레이 스크린 상에 표현된 이미지를 감지하는 단계를 포함한다. 디지털 워터마크 데이터가 감지된 이미지로부터 디코딩된다. 디코딩된 디지털 워터마크 데이터에 기초하여, 저장된 데이터가 제 2 프로세서의 애플리케이션 상태를 건의하도록 식별된다. 이렇게 저장된 데이터는 이후 애플리케이션 상태로 제 2 프로세서를 초기화시키도록 사용될 수 있다.
또 다른 방법은 프로세서와 디스플레이 스크린을 갖는 디바이스를 포함한다. 방법은 때때로 애플리케이션 상태 데이터를 저장하는 단계, 및 그에 식별자를 인코딩하기 위하여 이미지를 디지털로 워터마크하는 단계를 포함하고, 식별자는 저장된 애플리케이션 상태 데이터로의 액세스를 용이하게 한다. 이러한 디지털로 워터마크된 이미지는 이후 디스플레이 스크린 상에 표현될 수 있다.
또 다른 방법은 휴대용 디바이스의 카메라를 이용하여 광을 감지하는 단계를 포함한다(예를 들면, 주위의 광). 식별자는 감지된 광으로부터 디코딩되고, 이후 디코딩된 식별자에 기초하여 정보가 얻어진다.
다른 방법은 움직이는 차량의 방향 및/또는 속도를 인코딩하는 신호를 생성하는 단계, 및 이러한 신호에 따라 차량의 하나 이상의 외부 조명들(예를 들면, 헤드램프들)을 제어하는 단계를 포함한다.
다른 방법은 조명 픽스처에 의해 조사된 환경으로부터 데이터를 감지하고 그에 대응하는 정보를 결정하도록 감지된 데이터를 처리하는 단계를 포함한다. 조명 픽스처로부터 방출된 광은 이후 결정된 정보에 따라 인코딩된다.
또 다른 방법은, 디바이스의 마이크로폰으로, 연장된 간격(예를 들면, 적어도 15분, 한시간, 또는 6시간들)으로 사용자의 주위의 환경으로부터 오디오를 수신하는 단계를 포함한다. 알고리즘이 이후 그로부터 식별 데이터를 도출하기 위하여 수신된 오디오를 나타내는 데이터에 적용된다. 유도된 식별 데이터를 참조하는 것에 의해, 사용자가 간격동안 노출된 오디오 콘텐트의 적어도 제 1 및 제 2 상이한 아이템들이 결정된다. 오디오 콘텐트의 두 개의 아이템들을 참조하는 것에 의해, 소프트웨어가 사용자에 의해 이후 사용을 위해 준비된다. 이러한 준비는 하나 이상의 원격 저장소들로부터 디바이스에서의 보조 콘텐트의 제 1 및 제 2 아이템들을 수신하는 것을 포함한다. 보조 콘텐트의 제 1 아이템은 오디오 콘텐트의 제 1 결정된 아이템과 연관되며, 보조 콘텐트의 제 2 아이템은 오디오 콘텐트의 제 2 결정된 아이템과 연관된다. 사용자에게는 이후 오디오 콘텐트의 결정된 제 1 및 제 2 아이템들을 식별하는 리스트가 제공될 수 있다. 오디오 콘텐트의 이들 결정된 아이템들 중 하나를 관심있는 것으로 사용자가 선택한 것에 응답하여, 보조 콘텐트의 대응하는 아이템을 이용하여, 준비된 소프트웨어에 따라 동작이 취해질 수 있다. 이러한 장치에 의해, 사용자가 노출되는 오디오 콘텐트의 아이템들이 모니터링되며, 연관된 보조 콘텐트가 오디오 콘텐트의 특별한 아이템을 관심있는 것으로 사용자가 선택하기 전에 디바이스에 의해 수신된다.
또 다른 방법은 휴대용 디바이스의 마이크로폰으로, 연장된 간격 동안 사용자의 주위 환경으로부터 오디오를 수신하는 단계를 포함한다. 이러한 간격동안 사용자의 위치가 감지된다. 알고리즘이 그로부터 식별 데이터를 도출하기 위하여 수신된 오디오를 표현하는 데이터에 적용된다. 도출된 식별 데이터를 참조하는 것에 의해, 사용자가 간격동안 노출된 오디오 콘텐트의 적어도 제 1 및 제 2의 상이한 아이템들이 결정된다. 휴대용 디바이스의 사용자 인터페이스를 통해, 오디오 콘텐트의 결정된 제 1 및 제 2 의 상이한 아이템들이 사용자에게 식별되며, 사용자 인터페이스를 통해 입력된 사용자 신호가 제 1 아이템을 선택하도록 수신된다. 이에 응답하여, 오디오 콘텐트의 제 1 아이템의 식별이 사용자의 감지된 위치를 식별하도록 데이터와 함께 온라인 소셜 네트워크로 포스트된다.
기술의 다른 양태는 메모리의 명령들에 의해 구성된 프로세서를 포함하는 시스템이다. 이러한 명령들은 운영 시스템 소프트웨어를 포함한다. 운영 시스템 소프트웨어는 입력 오디오 데이터, 또는 저장된 오디오 데이터로의 포인터를 수신하는 오디오 식별자 서비스를 제공하며, 그에 대응하는 메타데이터를 운영 시스템 소프트웨어의 오디오 식별 메시지 대기열로 리턴한다.
다른 방법은 이동 전화 장치의 카메라부를 이용하여 캡처되고 상기 장치의 스크린 상에 디스플레이된 제 1 대상을 묘사한 이미지의 프레임을 포함한다. 방법은 캡처된 이미지 데이터를 분석하는 것에 의해 제 1 대상과 관련된 식별자를 생성하는 단계를 포함한다. 제 1 태그는 이미지의 제 1 프레임을 갖는 스크린 상에 디스플레이된다. 이러한 제 1 태그는 스크린 상의 제 1 위치에 위치되고, 제 1 대상과 연관된 동작을 시작하도록 사용자에게 선택가능하다. 제 1 프레임에 묘사된 제 1 대상을 디스플레이된 제 1 태그와 연관시키는 스크린 상에 시각적 표시들이 표현된다. 방법은 또한 제 1 대상을 묘사하는 이미지의 제 2 프레임으로 스크린 상의 이러한 제 1 태그를 디스플레이하는 단계를 포함한다. 제 1 대상은 이미지의 제 1 및 제 2 프레임들 내의 상이한 위치들에서 묘사되며, 또한 제 1 태그는 이미지의 제 1 및 제 2 프레임들과 함께 스크린 상의 동일한 제 1 위치에 디스플레이된다.
다른 방법은 사용자의 휴대용 전화의 카메라부에 의해 캡처된 이미지에서 묘사된 물리적 객체들을 식별하는 단계를 포함하며, 그에 의해 사용자와 관련된 물리적 객체 선호 정보를 구별한다. 그에 기초한 물리적 객체 선호 프로파일 데이터가 이후 메모리에 저장된다. 저장된 물리적 객체 선호 프로파일 데이터 상의 적어도 부분에 기초하여, 이후 전자 미디어가 따라서 처리될 수 있다.
또 다른 방법은 휴대용 디바이스의 카메라부로, 이미지의 시퀀스를 캡처하는 단계를 포함한다. 시퀀스의 한 발췌가 보정 정보를 구별하기 위해 분석되며, 보정 정보는 이러한 발췌에 묘사된 사람의 손의 색상을 특징화하기 위한 피부톤 데이터를 포함한다. 시퀀스의 다른 발췌들이 캡처된 이미지를 저장된 기준 핸드폼 데이터와 매칭하는 것에 의해, 이미지에 도시된 미국 사인 언어 핸드폼들을 식별하도록 분석된다. 단어들, 음소들 및/또는 글자들이 이후 상기 분석에 기초하여 출력 디바이스로 출력될 수 있다.
다른 코멘트들
우리의 발명적 작업들의 원리들이 도시적인 예들을 참조하여 설명되고 예시되었지만, 기술은 이에 제한되지 않는다는 것이 인식될 것이다.
예를 들어, 스마트폰들로의 참조가 형성되었으나, 이러한 기술은 휴대용과 고정식 모두의 디바이스들의 모든 방식으로의 사용을 찾는다는 것이 인식될 것이다. 휴대용 음악 플레이어들, 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 태블릿 컴퓨터들, 셋탑 박스들, 텔레비전들, 넷북들, 울트라포터블들, 입는 컴퓨터들, 서버들, 등이 모두 여기서 상세히 설명된 원리들을 사용할 수 있다.
특히 완성된 스마트폰들은 애플의 아이폰4와, 구글의 안드로이드 사양을 따르는 스마트폰들을 포함한다(예를 들면, HTC Corp.에 의해 제조된 버라이존 드로이드 에리스(Verizon Droid Eris) 전화, 및 모토로라 드로이드 2(Motorola Droid 2) 전화). "스마트폰"(또는 "휴대 전화(cell phone)")이라는 용어는 정확하게 셀룰러, 또는 전화기라고 부르지 않더라도, 모든 이러한 디바이스들을 포함하는 것으로 해석되어야 한다.
(그의 터치 인터페이스를 포함하는 아이폰의 상세한 설명들은 애플의 공개된 특허 출원 20080174570에 제공된다.)
본 명세서에서 참조된 스마트폰들 및 다른 컴퓨터들의 설계는 당업자에 친숙하다. 일반적으로, 각각은 하나 이상의 프로세서들, 하나 이상의 메모리들(예를 들면, RAM), 기억 장치(예를 들면, 디스크 또는 플래시 메모리), 사용자 인터페이스(예를 들면, 그래픽 사용자 인터페이스를 제공하기 위한 소프트웨어 명령들과 함께, 키패드, TFT LCD 또는 OLED 디스플레이 스크린, 터치 또는 다른 제스처 센서들, 카메라 또는 다른 광학적 센서, 컴파스 센서, 3D 자기계, 3축 가속도계, 3축 자이로스코프, 하나 이상의 마이크로폰, 등을 포함할 수 있는), 이러한 요소들 사이의 상호연결들(예를 들면, 버스들), 및 다른 디바이스들과 통신하기 위한 인터페이스(GSM, CDMA, W-CDMA, CDMA2000, TDMA, EV-DO, HSDPA, WiFi, WiMax 또는 Bluetooth와 같은 무선, 및/또는 이더넷 로컬 영역 네트워크, T-1 인터넷 연결, 등을 통하는 바와 같은 유선일 수 있는)를 포함한다.
이 명세서의 앞부분에는 양수인의 이전 특허 출원들에 대한 그의 관계를 공지하였지만, 이는 반복되었다. 이러한 명세서들은 협조적으로 읽혀져야 하며 전체적으로 해석되어야 한다. 출원인들은 각 명세서에서 상세하게 설명된 특성들 및 구현이 다른 것들에서의 이러한 교시들과 함께 조합되고 사용되도록 의도한다. 따라서, 본 출원에서 개시된 방법들, 요소들 및 개념들은 이러한 관련된 출원들에서 상세히 설명된 방법들, 요소들 및 개념들과 조합된다고 이해되어야 한다. 일부는 본 명세서에서 특히 상세히 설명되었지만, 대량의 변경들과 조합들로 인해 많은 것들은 그렇지 않다. 그러나, 모든 이러한 조합들의 구현은 제공된 교시들로부터 당업자에게 간단하다.
본 명세서에서 개시된 상이한 실시예들 내의 요소들 및 교시들은 또한 교환되거나 조합되는 것이 의도된다.
본 명세서에서 상세히 설명된 프로세스들 및 시스템 구성성분들은, 마이크로프로세서들(예를 들면, Atom 및 A4), 그래픽 처리 유닛들(nVidia Tegra APX 2600과 같은, GPU들), 및 디지털 신호 프로세서들(예를 들면, Texas Instruments TMS320 시리즈 디바이스들, 등)을 포함하는, 다양한 프로그래머블 프로세서들에 대한 범용 프로세서 명령들을 포함하는, 컴퓨팅 디바이스들을 위한 명령들로 실행될 수 있다. 이러한 명령들은 소프트웨어, 펌웨어, 등으로 실행될 수 있다. 이러한 명령들은 또한 디지털, 아날로그, 및 혼합된 아날로그/디지털 회로를 포함하는,- 프로그래머블 로직 디바이스들, 필드 프로그래머블 게이트 어레이들(예를 들면, Xilinx Virtex 시리즈 디바이스들), 필드 프로그래머블 오브젝트 어레이들, 및 특정 응용 회로들을 포함하는, 다양한 형태들의 프로세서 회로에서 실행될 수 있다. 명령들의 실행은 프로세서들 사이에서 분산될 수 있거나 및/또는 디바이스 내의 프로세서들을 가로지르거나 또는 디바이스들의 네트워크를 가로질러 병렬로 만들어질 수 있다. 콘텐트 신호 데이터의 처리가 또한 상이한 프로세서 및 메모리 디바이스들 중에서 분산될 수 있다. 자원들을 계산하는 "클라우드(cloud)"가 또한 사용될 수 있다. 구현의 특별한 형식을 요구하기보다는, 기능성을 언급하기 위해 "프로세서들", "모듈들" 또는 "구성성분들"에 대한 참조들이 이해되어야 한다.
상세히 설명된 기능성을 실행하기 위한 소프트웨어 명령들은 예를 들면, C, C++, Visual Basic, Java, Python, Tcl, Perl, Scheme, Ruby, 등에 기록된, 여기서 제공된 설명들로부터의 과도한 실험없이 당업자들에게 인정받을 수 있다. 본 기술의 어떠한 실행들에 따른 휴대 전화들 및 다른 디바이스들은 상이한 기능들 및 동작들을 수행하기 위한 소프트웨어 모듈들을 포함할 수 있다.
알려진 브라우저 소프트웨어, 통신 소프트웨어, 및 미디어 처리 소프트웨어가 여기서 상세히 설명된 많은 사용들을 위해 적응될 수 있다.
콘텐트 소유자들이 콘텐트에 어떠한 특성들 및 경험들을 기록하는 서비스(예를 들면, 명시된 소프트웨어의 호출을 통한)는 일반적으로 OS 또는 애플리케이션 소프트웨어에서 사용자 디바이스 상의 소프트웨어를 사용한다. 대안적으로, 이러한 서비스는 원격 자원들을 사용하여, 부분적으로, 수행될 수 있다.
소프트웨어 및 하드웨어 구성 데이터/명령들은 일반적으로 네트워크를 가로질러 액세스될 수 있는, 자기 또는 광학 디스크들, 메모리 카드들, ROM 등과 같은 유형의 미디어에 의해 전달된 하나 이상의 데이터 구조들의 명령들로서 저장된다. 일부 실시예들은 임베디드 시스템들로서 실행될 수 있는데, 이는 운영 시스템 소프트웨어와 애플리케이션 소프트웨어가 사용자에게 구분 불가능한 특수 목적 컴퓨터 시스템이다(예를 들면, 일반적으로 기본적인 휴대 전화들의 경우와 같이). 본 명세서에서 상세히 설명된 기능성은 운영 시스템 소프트웨어, 애플리케이션 소프트웨어에서 및/또는 임베디드 시스템 소프트웨어로서 실행될 수 있다.
상이한 기능성은 상이한 디바이스들 상에서 실행될 수 있다. 예를 들어, 스마트폰이 원격 서비스 제공자의 서버와 통신하는 시스템에서, 하나의 디바이스 또는 다른 것들에 의해 배타적으로 상이한 태스크들이 수행될 수 있거나, 또는 디바이스들 사이에 실행이 분배될 수 있다. 콘텐트로부터 핑거프린트와 워터마크 데이터의 추출은 이러한 방식으로 분배될 수 있는 프로세스의 일 예이다. 따라서, 특별한 디바이스(예를 들면, 스마트폰)에 의해 수행되는 동작의 기술은 제한되는 것이 아니며, 예시적인 것이며; 다른 디바이스(예를 들면, 원격 서버)에 의한 또는 디바이스들 사이에서 공유된 동작의 성능이 또한 분명히 고려된다는 것이 이해되어야 한다.
(유사한 방식으로, 특별한 디바이스 상에 저장되는 데이터의 설명은 또한 예시적이며; 데이터는 어디서든 저장될 수 있다:지역적 디바이스, 원격 디바이스, 클라우드에, 분배됨, 등)
실질적인 실행에서, 본 기술에 의해 사용된 데이터 구조가 분배될 수 있다. 예를 들어, 상이한 기록 라벨들이 그들의 각각의 카탈로그들의 음악에 대한 그들 자신의 데이터 구조들을 유지할 수 있다. 시스템은 하나를 필요한 정보에 위치시키기 위해 일련의 중간 데이터 구조들(종종 계층적인)을 찾아갈 필요가 있을 수 있다. (하나의 적절한 배열은 디지맥의 특허 6,947,571에 상세히 설명된다.) 공통적으로 액세스된 정보가 액세스의 속도를 높이기 위해 -DNS 데이터와 매우 유사한- 네트워크의 서버들에 캐시될 수 있다.
GPU들을 참조하였지만, 이러한 용어는 동시에 동작가능한 복수의 하드웨어 코어들을 포함하는 임의의 디바이스를 포함하는 것으로 의미된다. 예를 들면, 인텔은 디바이스의 이러한 클래스를 나타내기 위해 "Many Integrated Core" 또는 인텔 MIC라는 용어를 사용한다. 대부분의 현대의 GPU들은 그래픽 처리를 위해 최적화되는 명령어 세트들을 갖는다. 애플의 아이폰4는 (다른 디바이스들과 시스템-온-칩(system-on-a-chip)) 구성에 포함된) PowerVR SGX 535 GPU를 사용한다. 대부분의 이러한 디바이스들은 디스플레이로 출력하도록 의도된 프레임 버퍼의 이미지들의 생성을 가속화하기 위하여 그들의 명령 세트들에 3- 또는 4- 평면 이미지로 작업하기에 맞춰진 명령들을 포함한다. 예를 들어, 많은 명령들은 입력으로서 데이터 트리플들을 사용하고, 출력으로서 데이터 트리플들을 제공한다. 다른 명령들은 저장된 이미지 프레임들의 데이터 값들의 공간적 이웃들 상에서 동작하는 것을 용이하게 한다.
유사하게, NFC 칩들을 참조하는 동안, 이는 NFC 판독기에 의해 질문을 받을 때 복수 비트 식별자를 전달하는 신호를 발생시키는, 다른 이름으로 알려진 것들(예를 들면, RFID 칩들)을 포함한, 모든 방식의 칩들을 포함한다고 인식될 것이다.
본 명세서는 활동들의 특별한 순서와 요소들의 특별한 조합들에 대하여 상세히 설명하였으나, 다른 고려된 방법들이 활동들을 재순서화할 수 있고(가능하게는 일부를 생략하고 다른 것들을 부가), 다른 고려된 조합들이 일부 요소들을 생략하고 다른 것들을 부가할 수 있다는 것 등이 인식될 것이다.
완전한 시스템들로 설명되었지만, 상세하게 설명된 배열들의 서브조합들이 또한 개별적으로 고려된다.
오디오 캡처 및 처리를 수행하는 시스템들의 환경에서 처음으로 설명되었지만, 대응하는 배열들은 이미지와 비디오를 캡처하고 처리하는, 또는 미디어의 다중 형식들을 캡처하고 처리하는 시스템에 동일하게 적용할 수 있다.
공개/가입 기능성은 디바이스에서가 아닌 네트워크를 가로질러 수행될 수 있다. 애드 혹(ad hoc) 네트워크가 극장에서와 같이 공공 장소의 사용자들 사이에서 형성될 수 있다. 하나의 사용자의 스마트폰에 의해 생성된 콘텐트 인식 정보는 애드 혹 네트워크로 공개될 수 있고, 네트워크의 다른 것들은 그에 기반하여 가입하거나 동작을 취할 수 있다.
애플의 봉쥬르 소프트웨어는 이러한 장치의 예시적인 구현에서 사용될 수 있다. 봉쥬르는 서비스 발견 프로토콜인 애플의 Zeroconf의 구현이다. 봉쥬르는 디바이스들을 지역 네트워크 상에 위치시키며, 멀티캐스트 도메인 네임 시스템(Domain Name System) 서비스 기록들을 이용하여 각각 공급하는 서비스들을 식별한다. (이러한 소프트웨어는 애플의 Mac OS X 운영 시스템으로 구축되며, 또한 아이폰을 위한 애플리케이션인 애플의 "리모트(Remote)" 애플리케이션에도 포함되는데, 여기서 이는 WiFi를 통해 아이튠즈 라이브러리들과의 연결들을 확립하는데 사용된다. 봉쥬르 서비스들은 운영 시스템에서보다는 대체로 표준 TCP/IP 호출들을 이용하는 애플리케이션 레벨에서 실행된다. 애플은 다윈(Darwin) 오픈 소스 프로젝트로서 사용가능한 서비스 발견의 중심 구성성분인 봉쥬르 멀티캐스트 DNS 응답자의 소스 코드를 생성한다. 프로젝트는 Mac OS X, 리눅스(Linux), *BSD, 솔라리스(Solaris) 및 윈도우즈(Windows)를 포함하는, 넓은 범위의 플랫폼들에 응답자 데몬(daemon)을 구축하기 위해 소스 코드를 제공한다. 부가적으로, 애플은 자바 라이브러리들뿐만 아니라 윈도우즈에 대해서도 봉쥬르라고 불리는 사용자가 설치가능한 서비스들의 세트를 제공한다. 봉쥬르는 또한 디바이스들과 시스템들 사이의 통신들을 포함하는, 본 기술의 다른 실시예들에서 사용될 수 있다.
(대안적으로, 또는 부가적으로 디바이스들 사이에 데이터를 교환하기 위해 다른 소프트웨어가 사용될 수 있다. 예들은 UPnP(Universal Plug and Play)와 그의 후속자 DPWS(Devices Profile for Web Services)를 포함한다. 이들은 디바이스들이 연결하고, 그들 스스로를 식별하고, 사용가능한 역량들을 다른 디바이스들로 광고하고, 콘텐트를 공유하는 등이 가능해도, 제로 구성 네트워킹 서비스들을 실행하는 다른 프로토콜들이다. 다른 구현들이 CORBA(IBM WebSphere와 유사한)와 같은 객체 요청 브로커들을 사용할 수 있다.)
워터마크들을 인코딩/디코딩을 위한 기술은 예를 들면, 디지맥의 특허 문서들 6,614,914, 6,590,996, 6,122,403 및 20100150434와, 계류중인 출원 12/774,512; 그리고 닐슨(Nielsen)의 특허 6,968,564 및 7,006,555에서 상세히 설명된다.
오디오 핑거프린팅의 예들이 특허 공개들 20070250716, 20070174059 및 20080300011(디지맥), 20080276265, 20070274537 및 20050232411(닐슨), 20070124756(구글), 7,516,074(오디튜드(Auditude)), 및 6,990,453와 7,359,889(둘 다 샤잠(Shazam))에서 상세히 설명된다. 이미지/비디오 핑거프린팅의 예들은 특허 공개들 7,020,304(디지맥), 7,486,827(세이코-앱슨), 20070253594(보바일(Vobile)), 20080317278(톰슨), 및 20020044659(NEC)에서 상세히 설명된다.
완전한 명세서를 제공하기 위해, 간결성의 법정 필요사항을 준수하였으나, 출원자들은 여기서 참조된 특허 출원들 및 다른 문서들을 참조로 포함한다. (이러한 자료들은 상기에서는 그들의 교시들의 일정 사항에 대하여 인용되었다고 하더라도, 그들의 전체들이 포함된다.) 이러한 참조들은 여기서 상세히 설명된 배열들에 포함될 수 있고, 여기서 상세히 설명된 기술들과 교시들이 포함될 수 있는 기술들 및 교시들을 설명한다. 독자는 이러한 종래 기술에 친숙하다고 여겨진다.
12:시스템 14:디바이스
16:프로세서 18:메모리
20:입력 22:출력
24:네트워크 연결 26:원격 컴퓨터 시스템

Claims (201)

  1. 미디어 및 물리적 객체들을 인식 및/또는 식별하는 방법으로서, 상기 방법은 오디오 및 시각 콘텐트를 감지하는 마이크로폰 및 카메라 센서들을 갖춘 모바일 장치를 이용하며, 상기 방법은:
    상기 모바일 장치의 프로세서가 런칭되어야 하는 제 1 인식 대행자(recognition agents)를 결정하고, 상기 제 1 인식 대행자를 런칭하고, 상기 제 1 인식 대행자가 리스트에서 선택된 제 1 인식 프로세스를 수행하고, 상기 리스트는 이미지 워터마크 인식, 패턴 매칭, 객체 인식, 얼굴 인식, 바코드 인식, 사인(sign) 언어 인식, 광학적 문자 인식, 오디오 워터마크 인식, 음성 인식, 및 음악 인식을 포함하는, 제 1 시간에서의 동작; 및
    상기 프로세서에서 런칭되어야 하는 제 2 인식 대행자를 결정하고, 상기 제 2 인식 대행자를 런칭하고, 상기 제 2 인식 대행자가 상기 리스트에서 선택된 제 2 인식 프로세스를 수행하는, 제 2 시간에서의 동작을 포함하고,
    상기 제 1 시간에서의 상기 결정은, 상기 모바일 장치가 위치한 주위 환경을 비추는 고체 상태 램프 픽스처로부터 디코딩된 식별자 데이터에 따르는, 방법.
  2. 제 1 항에 있어서,
    상기 프로세서는 상기 제 1 시간에서, 인식 대행자들 중의 제 1 쌍이 런칭되어야 하는 것을 결정하고, 인식 대행자들 중의 상기 제 1 쌍은 상기 리스트로부터 선택되는, 방법.
  3. 제 2 항에 있어서,
    인식 대행자들 중의 상기 제 1 쌍은 바코드 인식 및 이미지 워터마크 인식을 수행하는, 방법.
  4. 제 1 항에 있어서,
    상기 모바일 장치의 상기 카메라 센서들에 의해 상기 고체 상태 램프 픽스처로부터의 광을 감지하는 단계로서, 상기 카메라 센서들은 초당 N 프레임의 비율로 이미지를 캡처하는, 상기 광을 감지하는 단계; 및
    초당 N 비트보다 높은 비율을 가지는 데이터를 복구하기 위하여 상기 캡처된 이미지를 처리하는 단계를 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 제 1 시간의 결정은, GPS 수신기를 포함하는 고체 상태 램프 픽스처로부터 디코딩된 데이터에 따르는, 방법.
  6. 제 4 항에 있어서,
    상기 고체 상태 램프 픽스처로부터 디코딩된 식별자 데이터는, 안테나를 사용하는 상기 램프 픽스처에 의해 무선으로 수신된 데이터에 따르는, 방법.
  7. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 이미지 워터마크 인식을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  8. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 패턴 매칭을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  9. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 객체 인식을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  10. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 얼굴 인식을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  11. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 바코드 인식을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  12. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 사인 언어 인식을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  13. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 광학적 문자 인식을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  14. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 오디오 워터마크 인식을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  15. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 음성 인식을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  16. 제 1 항에 있어서,
    상기 제 1 시간에서, 상기 고체 상태 램프 픽스처로부터 디코딩된 상기 식별자 데이터에 따라, 음악 인식을 수행하는 제 1 인식 대행자가 런칭되어야 하는 것을 결정하고, 상기 제 1 인식 대행자를 런칭하는, 방법.
  17. 마이크로폰 및 카메라 센서들을 갖춘 모바일 장치를 설정하도록 동작하는 소프트웨어 명령들을 포함하는 비일시적 컴퓨터 판독 가능 기록 매체로서, 상기 소프트웨어 명령들은 상기 마이크로폰 및 카메라 센서들을 갖춘 모바일 장치로 하여금:
    런칭(launch)되어야 하는 제 1 인식 대행자를 결정하고, 상기 제 1 인식 대행자를 런칭하고, 상기 제 1 인식 대행자가 리스트에서 선택된 제 1 인식 프로세스를 수행하고, 상기 리스트는 이미지 워터마크 인식, 패턴 매칭, 객체 인식, 얼굴 인식, 바코드 인식, 사인(sign) 언어 인식, 광학적 문자 인식, 오디오 워터마크 인식, 음성 인식, 및 음악 인식을 포함하는, 제 1 시간에서의 동작 및
    런칭되어야 하는 제 2 인식 대행자를 결정하고, 상기 제 2 인식 대행자를 런칭하고, 상기 제 2 인식 대행자가 상기 리스트에서 선택된 제 2 인식 프로세스를 수행하는, 제 2 시간에서의 동작을 수행하게 하고,
    상기 제 1 시간에서의 상기 결정은, 상기 모바일 장치가 위치한 주위 환경을 비추는 고체 상태 램프 픽스처로부터 상기 모바일 장치에 의해 디코딩된 데이터에 따르는, 비일시적 컴퓨터 판독 가능 기록 매체.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
  102. 삭제
  103. 삭제
  104. 삭제
  105. 삭제
  106. 삭제
  107. 삭제
  108. 삭제
  109. 삭제
  110. 삭제
  111. 삭제
  112. 삭제
  113. 삭제
  114. 삭제
  115. 삭제
  116. 삭제
  117. 삭제
  118. 삭제
  119. 삭제
  120. 삭제
  121. 삭제
  122. 삭제
  123. 삭제
  124. 삭제
  125. 삭제
  126. 삭제
  127. 삭제
  128. 삭제
  129. 삭제
  130. 삭제
  131. 삭제
  132. 삭제
  133. 삭제
  134. 삭제
  135. 삭제
  136. 삭제
  137. 삭제
  138. 삭제
  139. 삭제
  140. 삭제
  141. 삭제
  142. 삭제
  143. 삭제
  144. 삭제
  145. 삭제
  146. 삭제
  147. 삭제
  148. 삭제
  149. 삭제
  150. 삭제
  151. 삭제
  152. 삭제
  153. 삭제
  154. 삭제
  155. 삭제
  156. 삭제
  157. 삭제
  158. 삭제
  159. 삭제
  160. 삭제
  161. 삭제
  162. 삭제
  163. 삭제
  164. 삭제
  165. 삭제
  166. 삭제
  167. 삭제
  168. 삭제
  169. 삭제
  170. 삭제
  171. 삭제
  172. 삭제
  173. 삭제
  174. 삭제
  175. 삭제
  176. 삭제
  177. 삭제
  178. 삭제
  179. 삭제
  180. 삭제
  181. 삭제
  182. 삭제
  183. 삭제
  184. 삭제
  185. 삭제
  186. 삭제
  187. 삭제
  188. 삭제
  189. 삭제
  190. 삭제
  191. 삭제
  192. 삭제
  193. 삭제
  194. 삭제
  195. 삭제
  196. 삭제
  197. 삭제
  198. 삭제
  199. 삭제
  200. 삭제
  201. 삭제
KR1020137014291A 2010-11-04 2011-11-04 스마트폰 기반 방법들 및 시스템들 KR102010221B1 (ko)

Applications Claiming Priority (23)

Application Number Priority Date Filing Date Title
US41021710P 2010-11-04 2010-11-04
US61/410,217 2010-11-04
US201161449529P 2011-03-04 2011-03-04
US61/449,529 2011-03-04
US201161467862P 2011-03-25 2011-03-25
US61/467,862 2011-03-25
US201161471651P 2011-04-04 2011-04-04
US61/471,651 2011-04-04
US201161479323P 2011-04-26 2011-04-26
US61/479,323 2011-04-26
US201161483555P 2011-05-06 2011-05-06
US61/483,555 2011-05-06
US201161485888P 2011-05-13 2011-05-13
US61/485,888 2011-05-13
US201161501602P 2011-06-27 2011-06-27
US61/501,602 2011-06-27
US13/174,258 2011-06-30
US13/174,258 US8831279B2 (en) 2011-03-04 2011-06-30 Smartphone-based methods and systems
US13/207,841 US9218530B2 (en) 2010-11-04 2011-08-11 Smartphone-based methods and systems
US13/207,841 2011-08-11
US13/278,949 US9183580B2 (en) 2010-11-04 2011-10-21 Methods and systems for resource management on portable devices
US13/278,949 2011-10-21
PCT/US2011/059412 WO2012061760A2 (en) 2010-11-04 2011-11-04 Smartphone-based methods and systems

Publications (2)

Publication Number Publication Date
KR20130118897A KR20130118897A (ko) 2013-10-30
KR102010221B1 true KR102010221B1 (ko) 2019-08-13

Family

ID=46025145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137014291A KR102010221B1 (ko) 2010-11-04 2011-11-04 스마트폰 기반 방법들 및 시스템들

Country Status (7)

Country Link
US (1) US9183580B2 (ko)
EP (1) EP2635997A4 (ko)
JP (2) JP6054870B2 (ko)
KR (1) KR102010221B1 (ko)
CN (2) CN107103316B (ko)
CA (1) CA2815944C (ko)
WO (1) WO2012061760A2 (ko)

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120322428A1 (en) 2004-09-30 2012-12-20 Motedata Inc. Network of tags
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US8819172B2 (en) 2010-11-04 2014-08-26 Digimarc Corporation Smartphone-based methods and systems
US9218530B2 (en) 2010-11-04 2015-12-22 Digimarc Corporation Smartphone-based methods and systems
US8903847B2 (en) 2010-03-05 2014-12-02 International Business Machines Corporation Digital media voice tags in social networks
US8762852B2 (en) 2010-11-04 2014-06-24 Digimarc Corporation Smartphone-based methods and systems
US20120224711A1 (en) * 2011-03-04 2012-09-06 Qualcomm Incorporated Method and apparatus for grouping client devices based on context similarity
US20120246238A1 (en) * 2011-03-21 2012-09-27 International Business Machines Corporation Asynchronous messaging tags
US20120244842A1 (en) 2011-03-21 2012-09-27 International Business Machines Corporation Data Session Synchronization With Phone Numbers
US8688090B2 (en) 2011-03-21 2014-04-01 International Business Machines Corporation Data session preferences
SG185147A1 (en) * 2011-04-08 2012-11-29 Creative Tech Ltd A method, system and electronic device for at least one of efficient graphic processing and salient based learning
US9117074B2 (en) 2011-05-18 2015-08-25 Microsoft Technology Licensing, Llc Detecting a compromised online user account
US9087324B2 (en) * 2011-07-12 2015-07-21 Microsoft Technology Licensing, Llc Message categorization
US8885882B1 (en) 2011-07-14 2014-11-11 The Research Foundation For The State University Of New York Real time eye tracking for human computer interaction
US9065826B2 (en) 2011-08-08 2015-06-23 Microsoft Technology Licensing, Llc Identifying application reputation based on resource accesses
US10474858B2 (en) 2011-08-30 2019-11-12 Digimarc Corporation Methods of identifying barcoded items by evaluating multiple identification hypotheses, based on data from sensors including inventory sensors and ceiling-mounted cameras
US9367770B2 (en) 2011-08-30 2016-06-14 Digimarc Corporation Methods and arrangements for identifying objects
KR20140064969A (ko) 2011-09-23 2014-05-28 디지맥 코포레이션 콘텍스트―기반 스마트폰 센서 로직
US9235799B2 (en) 2011-11-26 2016-01-12 Microsoft Technology Licensing, Llc Discriminative pretraining of deep neural networks
GB2497951A (en) * 2011-12-22 2013-07-03 Nokia Corp Method and System For Managing Images And Geographic Location Data
US20130254265A1 (en) * 2012-03-20 2013-09-26 Alexandra Chemla System and mechanisms for transferring user selected content to a recipient
US10223107B2 (en) 2012-05-29 2019-03-05 Nokia Technologies Oy Supporting the provision of services
WO2013184383A2 (en) * 2012-06-04 2013-12-12 Apple Inc. App recommendation using crowd-sourced localized app usage data
US9510141B2 (en) 2012-06-04 2016-11-29 Apple Inc. App recommendation using crowd-sourced localized app usage data
WO2013188807A2 (en) * 2012-06-14 2013-12-19 Digimarc Corporation Methods and systems for signal processing
WO2014015015A2 (en) * 2012-07-17 2014-01-23 Zahnow Myron Frederick System, apparatus and method for activity guidance and monitoring
US20140025537A1 (en) * 2012-07-23 2014-01-23 Cellco Partnership D/B/A Verizon Wireless Verifying accessory compatibility with a mobile device
US9305559B2 (en) 2012-10-15 2016-04-05 Digimarc Corporation Audio watermark encoding with reversing polarity and pairwise embedding
US9401153B2 (en) 2012-10-15 2016-07-26 Digimarc Corporation Multi-mode audio recognition and auxiliary data encoding and decoding
US9224184B2 (en) 2012-10-21 2015-12-29 Digimarc Corporation Methods and arrangements for identifying objects
US8874924B2 (en) * 2012-11-07 2014-10-28 The Nielsen Company (Us), Llc Methods and apparatus to identify media
US9477925B2 (en) 2012-11-20 2016-10-25 Microsoft Technology Licensing, Llc Deep neural networks training for speech and pattern recognition
US9591339B1 (en) 2012-11-27 2017-03-07 Apple Inc. Agnostic media delivery system
US9774917B1 (en) 2012-12-10 2017-09-26 Apple Inc. Channel bar user interface
US10200761B1 (en) 2012-12-13 2019-02-05 Apple Inc. TV side bar user interface
US9532111B1 (en) 2012-12-18 2016-12-27 Apple Inc. Devices and method for providing remote control hints on a display
US10521188B1 (en) 2012-12-31 2019-12-31 Apple Inc. Multi-user TV user interface
US20140196117A1 (en) * 2013-01-07 2014-07-10 Curtis John Schwebke Recovery or upgrade of a cloud client device
US9146990B2 (en) * 2013-01-07 2015-09-29 Gracenote, Inc. Search and identification of video content
US9317872B2 (en) 2013-02-06 2016-04-19 Muzak Llc Encoding and decoding an audio watermark using key sequences comprising of more than two frequency components
US9275278B2 (en) * 2013-02-15 2016-03-01 Fuji Xerox Co., Ltd. Systems and methods for implementing and using off-center embedded media markers
US8990638B1 (en) 2013-03-15 2015-03-24 Digimarc Corporation Self-stabilizing network nodes in mobile discovery system
US20140337905A1 (en) * 2013-05-09 2014-11-13 Telefonaktiebolaget L M Ericsson (Publ) System and method for delivering extended media content
US9251549B2 (en) * 2013-07-23 2016-02-02 Verance Corporation Watermark extractor enhancements based on payload ranking
KR102165818B1 (ko) 2013-09-10 2020-10-14 삼성전자주식회사 입력 영상을 이용한 사용자 인터페이스 제어 방법, 장치 및 기록매체
CA2923735A1 (en) * 2013-09-16 2015-03-19 The Electric Fan Company Distributed, unfolding, embedded transaction and inventory apparatuses, methods and systems
US10277330B2 (en) * 2013-09-19 2019-04-30 Radius Universal Llc Fiber optic communications and power network
US9600474B2 (en) * 2013-11-08 2017-03-21 Google Inc. User interface for realtime language translation
BR102013031062A2 (pt) * 2013-12-03 2015-10-20 Antonio Ferreira De Souza sistema de consulta eletrônica e aferição de autenticidade, validade e restrição de carteira nacional de habilitação (cnh), certificado de registro de veículo (crv) e certificado de registro e licenciamento de veículo (crlv), utilizando tecnologia de leitura de dados por aproximação
JP2015127897A (ja) * 2013-12-27 2015-07-09 ソニー株式会社 表示制御装置、表示制御システム、表示制御方法、およびプログラム
JP6222830B2 (ja) * 2013-12-27 2017-11-01 マクセルホールディングス株式会社 画像投射装置
US9311639B2 (en) 2014-02-11 2016-04-12 Digimarc Corporation Methods, apparatus and arrangements for device to device communication
WO2015123658A1 (en) 2014-02-14 2015-08-20 Sonic Blocks, Inc. Modular quick-connect a/v system and methods thereof
US9613638B2 (en) * 2014-02-28 2017-04-04 Educational Testing Service Computer-implemented systems and methods for determining an intelligibility score for speech
WO2015139026A2 (en) 2014-03-14 2015-09-17 Go Tenna Inc. System and method for digital communication between computing devices
SE538975C2 (sv) * 2014-05-16 2017-03-07 Corfitsen Sten System och förfarande för att utföra betalningar från ett fordon
US10108748B2 (en) 2014-05-30 2018-10-23 Apple Inc. Most relevant application recommendation based on crowd-sourced application usage data
US9913100B2 (en) 2014-05-30 2018-03-06 Apple Inc. Techniques for generating maps of venues including buildings and floors
CN104023208B (zh) 2014-06-05 2019-07-05 北京小鱼在家科技有限公司 一种自动监测与自主反应的装置及方法
JP6482578B2 (ja) 2014-06-24 2019-03-13 アップル インコーポレイテッドApple Inc. ユーザインタフェースにおけるナビゲートのためのカラムインタフェース
US9402161B2 (en) 2014-07-23 2016-07-26 Apple Inc. Providing personalized content based on historical interaction with a mobile device
US10200439B2 (en) * 2014-07-29 2019-02-05 Sap Se In-memory cloud triple store
US10045427B2 (en) * 2014-09-29 2018-08-07 Philips Lighting Holding B.V. System and method of autonomous restore point creation and restoration for luminaire controllers
CN105787485B (zh) * 2014-12-25 2019-11-26 联想(北京)有限公司 识别点击操作的装置和方法
CN106162928A (zh) * 2015-04-03 2016-11-23 松翰科技股份有限公司 信息传输系统及方法
US9529500B1 (en) 2015-06-05 2016-12-27 Apple Inc. Application recommendation based on detected triggering events
US9652196B2 (en) * 2015-06-29 2017-05-16 Microsoft Technology Licensing, Llc Smart audio routing management
KR102429427B1 (ko) * 2015-07-20 2022-08-04 삼성전자주식회사 촬영 장치 및 그 동작 방법
US20170034551A1 (en) * 2015-07-29 2017-02-02 GM Global Technology Operations LLC Dynamic screen replication and real-time display rendering based on media-application characteristics
CN105187295B (zh) * 2015-08-06 2019-05-17 广州华多网络科技有限公司 一种在客户端实现气泡展示的方法及客户端、服务器和系统
US10331944B2 (en) * 2015-09-26 2019-06-25 Intel Corporation Technologies for dynamic performance of image analysis
JP6696149B2 (ja) * 2015-10-29 2020-05-20 富士通株式会社 画像生成方法、画像生成プログラム、情報処理装置および表示制御方法
CA3023877A1 (en) 2016-05-20 2017-11-23 Roman Czeslaw Kordasiewicz Systems and methods for graphical exploration of forensic data
US10740409B2 (en) * 2016-05-20 2020-08-11 Magnet Forensics Inc. Systems and methods for graphical exploration of forensic data
US20170351651A1 (en) * 2016-06-01 2017-12-07 Intel Corporation Smart bookmark device and bookmark synchronization system
DK201670581A1 (en) 2016-06-12 2018-01-08 Apple Inc Device-level authorization for viewing content
US10595169B2 (en) 2016-06-12 2020-03-17 Apple Inc. Message extension app store
DK201670582A1 (en) 2016-06-12 2018-01-02 Apple Inc Identifying applications on which content is available
KR102493607B1 (ko) * 2016-06-15 2023-02-01 삼성전자주식회사 지문 인식 기능을 지원하는 전자 장치 및 이의 운용 방법
CN106874817A (zh) * 2016-07-27 2017-06-20 阿里巴巴集团控股有限公司 二维码识别方法、设备和移动终端
CN106921728A (zh) 2016-08-31 2017-07-04 阿里巴巴集团控股有限公司 一种定位用户的方法、信息推送方法及相关设备
JP7065082B2 (ja) * 2016-09-29 2022-05-11 コンヴィーダ ワイヤレス, エルエルシー 分散されたセマンティック記述子に対するセマンティッククエリ
US11966560B2 (en) 2016-10-26 2024-04-23 Apple Inc. User interfaces for browsing content from multiple content applications on an electronic device
US10943100B2 (en) 2017-01-19 2021-03-09 Mindmaze Holding Sa Systems, methods, devices and apparatuses for detecting facial expression
US10515474B2 (en) 2017-01-19 2019-12-24 Mindmaze Holding Sa System, method and apparatus for detecting facial expression in a virtual reality system
WO2018142228A2 (en) 2017-01-19 2018-08-09 Mindmaze Holding Sa Systems, methods, apparatuses and devices for detecting facial expression and for tracking movement and location including for at least one of a virtual and augmented reality system
CN110892408A (zh) 2017-02-07 2020-03-17 迈恩德玛泽控股股份有限公司 用于立体视觉和跟踪的系统、方法和装置
CN109255564B (zh) * 2017-07-13 2022-09-06 菜鸟智能物流控股有限公司 一种取件点地址推荐方法及装置
CN108021954B (zh) 2017-11-01 2020-06-05 阿里巴巴集团控股有限公司 业务过程的启动方法和装置
CN107958667A (zh) * 2017-11-20 2018-04-24 北京云知声信息技术有限公司 能够快速启动应用的移动终端保护套和移动终端控制方法
CN108196952B (zh) * 2017-12-05 2020-06-05 阿里巴巴集团控股有限公司 一种资源分配方法、装置及设备
US11328533B1 (en) 2018-01-09 2022-05-10 Mindmaze Holding Sa System, method and apparatus for detecting facial expression for motion capture
JP6855401B2 (ja) * 2018-02-08 2021-04-07 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
US10944669B1 (en) 2018-02-09 2021-03-09 GoTenna, Inc. System and method for efficient network-wide broadcast in a multi-hop wireless network using packet echos
CN108764392B (zh) 2018-04-25 2020-07-17 阿里巴巴集团控股有限公司 业务处理方法、装置以及设备
EP4130941A1 (en) * 2018-05-04 2023-02-08 Google LLC Hot-word free adaptation of automated assistant function(s)
US10134022B1 (en) * 2018-06-07 2018-11-20 Capital One Services, Llc Transaction terminals for automated billing
CN110209923B (zh) * 2018-06-12 2023-07-25 中国人民大学 话题影响力用户的推送方法和装置
US11145313B2 (en) * 2018-07-06 2021-10-12 Michael Bond System and method for assisting communication through predictive speech
CA3107919A1 (en) 2018-07-27 2020-01-30 GoTenna, Inc. Vinetm: zero-control routing using data packet inspection for wireless mesh networks
EP3621039A1 (en) * 2018-09-06 2020-03-11 Tata Consultancy Services Limited Real time overlay placement in videos for augmented reality applications
CN109451139B (zh) * 2018-09-13 2020-11-20 腾讯科技(深圳)有限公司 消息传输方法、终端、装置、电子设备及可读介质
CN109615423B (zh) 2018-11-29 2020-06-16 阿里巴巴集团控股有限公司 业务的处理方法及装置
KR102160189B1 (ko) * 2018-11-30 2020-09-25 인천대학교 산학협력단 애니메이션 내 객체의 채색을 지원하기 위한 사용자 인터페이스를 제공하는 전자 장치 및 그의 동작 방법
US10805690B2 (en) 2018-12-04 2020-10-13 The Nielsen Company (Us), Llc Methods and apparatus to identify media presentations by analyzing network traffic
US11126861B1 (en) 2018-12-14 2021-09-21 Digimarc Corporation Ambient inventorying arrangements
CN109448836A (zh) * 2018-12-27 2019-03-08 重庆科技学院 一种用于检测医疗健康的机器人及自助体检的方法
US11340758B1 (en) * 2018-12-27 2022-05-24 Meta Platforms, Inc. Systems and methods for distributing content
WO2020185707A1 (en) 2019-03-08 2020-09-17 goTenna Inc. Method for utilization-based traffic throttling in a wireless mesh network
WO2020198237A1 (en) 2019-03-24 2020-10-01 Apple Inc. User interfaces including selectable representations of content items
CN113906419A (zh) 2019-03-24 2022-01-07 苹果公司 用于媒体浏览应用程序的用户界面
EP3928526A1 (en) 2019-03-24 2021-12-29 Apple Inc. User interfaces for viewing and accessing content on an electronic device
US11683565B2 (en) 2019-03-24 2023-06-20 Apple Inc. User interfaces for interacting with channels that provide content that plays in a media browsing application
CN109822595A (zh) * 2019-03-25 2019-05-31 杭州纳茵特科技有限公司 一种教育机器人
US11786694B2 (en) 2019-05-24 2023-10-17 NeuroLight, Inc. Device, method, and app for facilitating sleep
US11082380B2 (en) * 2019-05-24 2021-08-03 Universal City Studios Llc Systems and methods for providing in-application messaging
WO2020243645A1 (en) 2019-05-31 2020-12-03 Apple Inc. User interfaces for a podcast browsing and playback application
US11863837B2 (en) 2019-05-31 2024-01-02 Apple Inc. Notification of augmented reality content on an electronic device
EP3991427A1 (en) 2019-06-28 2022-05-04 Dolby Laboratories Licensing Corporation Video content type metadata for high dynamic range
US20210034907A1 (en) * 2019-07-29 2021-02-04 Walmart Apollo, Llc System and method for textual analysis of images
US11698676B2 (en) 2019-08-23 2023-07-11 Samsung Electronics Co., Ltd. Method and electronic device for eye-tracking
RU2724445C1 (ru) * 2019-08-23 2020-06-23 Самсунг Электроникс Ко., Лтд. Устройство и способ отслеживания положения глаза
KR102252084B1 (ko) * 2019-09-19 2021-05-17 주식회사 스켈터랩스 블랙보드 기반의 사용자 모델링을 위한 방법, 장치 및 컴퓨터 판독가능 저장 매체
CN110991450A (zh) * 2019-12-03 2020-04-10 厦门亿合恒拓信息科技有限公司 电网设备信息的采集方法及计算机可读存储介质
CN111177587B (zh) * 2019-12-12 2023-05-23 广州地理研究所 一种购物街道推荐方法及装置
CN111127094B (zh) * 2019-12-19 2023-08-25 秒针信息技术有限公司 一种账户匹配方法、装置、电子设备和存储介质
CN111081270B (zh) * 2019-12-19 2021-06-01 大连即时智能科技有限公司 一种实时音频驱动的虚拟人物口型同步控制方法
EP3839880A1 (en) 2019-12-20 2021-06-23 Koninklijke Philips N.V. A system for performing ambient light image correction
US10839181B1 (en) 2020-01-07 2020-11-17 Zebra Technologies Corporation Method to synchronize a barcode decode with a video camera to improve accuracy of retail POS loss prevention
US11843838B2 (en) 2020-03-24 2023-12-12 Apple Inc. User interfaces for accessing episodes of a content series
US11501470B2 (en) 2020-05-27 2022-11-15 Microsoft Technology Licensing, Llc Geometric encoding of data
CN111667571B (zh) * 2020-06-08 2021-09-17 南华大学 核设施源项三维分布快速重建方法、装置、设备及介质
US11899895B2 (en) 2020-06-21 2024-02-13 Apple Inc. User interfaces for setting up an electronic device
US11321797B2 (en) 2020-08-25 2022-05-03 Kyndryl, Inc. Wearable watermarks
CN111930846B (zh) * 2020-09-15 2021-02-23 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置及设备
CN112183401A (zh) * 2020-09-30 2021-01-05 敦泰电子(深圳)有限公司 图像采集方法、芯片及图像采集装置
CN112511848B (zh) * 2020-11-09 2023-06-20 网宿科技股份有限公司 直播方法、服务端及计算机可读存储介质
CN114553618A (zh) * 2020-11-27 2022-05-27 赛万特科技有限责任公司 控制设备的方法、装置、智能家居设备、系统和存储介质
US11720229B2 (en) 2020-12-07 2023-08-08 Apple Inc. User interfaces for browsing and presenting content
US11934640B2 (en) 2021-01-29 2024-03-19 Apple Inc. User interfaces for record labels
US11738952B2 (en) * 2021-02-03 2023-08-29 Ats Corporation System and method for rotary drive curved track in a conveyor system
CN113379794B (zh) * 2021-05-19 2023-07-25 重庆邮电大学 基于注意力-关键点预测模型的单目标跟踪系统及方法
US20220383025A1 (en) * 2021-05-26 2022-12-01 International Business Machines Corporation Augmented reality translation of sign language classifier constructions
CN113360820B (zh) * 2021-05-29 2024-03-08 北京网聘信息技术有限公司 一种页面展示方法、系统、设备和存储介质
CN113657116B (zh) * 2021-08-05 2023-08-08 天津大学 基于视觉语义关系的社交媒体流行度预测方法及装置
CN113946701B (zh) * 2021-09-14 2024-03-19 广州市城市规划设计有限公司 一种基于图像处理的城乡规划数据的动态更新方法及装置
US11941860B2 (en) * 2021-09-24 2024-03-26 Zebra Tehcnologies Corporation Computational load mitigation for image-based item recognition
US11977858B2 (en) 2022-02-07 2024-05-07 T-Mobile Usa, Inc. Centralized intake and capacity assessment platform for project processes, such as with product development in telecommunications
CN117771664B (zh) * 2024-01-03 2024-06-07 广州创一网络传媒有限公司 一种自适应投影面的互动游戏投影方法
CN118113805B (zh) * 2024-04-29 2024-06-25 山东省国土测绘院 一种基于深度学习的地理信息勘测校准方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010022185A1 (en) 2008-08-19 2010-02-25 Digimarc Corporation Methods and systems for content processing

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311214B1 (en) 1995-07-27 2001-10-30 Digimarc Corporation Linking of computers based on optical sensing of digital data
JP4242529B2 (ja) * 1999-10-27 2009-03-25 オリンパス株式会社 関連情報呈示装置及び関連情報呈示方法
KR100330134B1 (ko) * 1999-12-29 2002-03-27 류명선 속도제한 경보 및 교통정보안내 시스템 및 방법
US6728312B1 (en) * 2000-04-13 2004-04-27 Forgent Networks, Inc. Adaptive video decoding and rendering with respect to processor congestion
US20020042266A1 (en) * 2000-10-10 2002-04-11 Craig Heyward System and methods for conserving wireless resources
US6748360B2 (en) * 2000-11-03 2004-06-08 International Business Machines Corporation System for selling a product utilizing audio content identification
US6722569B2 (en) 2001-07-13 2004-04-20 Welch Allyn Data Collection, Inc. Optical reader having a color imager
WO2003017562A1 (en) * 2001-08-15 2003-02-27 Precache Inc. Packet routing via payload inspection and subscription processing in a publish-subscribe network
WO2003044655A2 (en) 2001-11-19 2003-05-30 Koninklijke Philips Electronics N.V. Method and system for allocating a budget surplus to a task
US20030105827A1 (en) * 2001-11-30 2003-06-05 Tan Eng Siong Method and system for contextual prioritization of unified messages
WO2005010817A1 (ja) * 2003-07-24 2005-02-03 Olympus Corporation 画像処理装置
US8615487B2 (en) * 2004-01-23 2013-12-24 Garrison Gomez System and method to store and retrieve identifier associated information content
US20060107219A1 (en) 2004-05-26 2006-05-18 Motorola, Inc. Method to enhance user interface and target applications based on context awareness
JP5279270B2 (ja) 2004-08-06 2013-09-04 ディジマーク コーポレイション 携帯コンピューティング装置における高速信号検出および分散コンピューティング
JP2006091980A (ja) 2004-09-21 2006-04-06 Seiko Epson Corp 画像処理装置、画像処理方法および画像処理プログラム
US20100036717A1 (en) 2004-12-29 2010-02-11 Bernard Trest Dynamic Information System
JP2008527538A (ja) * 2005-01-06 2008-07-24 テーベラ・インコーポレーテッド メッセージング・システム内のキャッシング・エンジン
US7873974B2 (en) * 2005-09-19 2011-01-18 Sony Corporation Identification of television programming using a portable wireless device
US7319908B2 (en) 2005-10-28 2008-01-15 Microsoft Corporation Multi-modal device power/mode management
US8849821B2 (en) * 2005-11-04 2014-09-30 Nokia Corporation Scalable visual search system simplifying access to network and device functionality
WO2007130688A2 (en) * 2006-05-10 2007-11-15 Evolution Robotics, Inc. Mobile computing device with imaging capability
US7787697B2 (en) 2006-06-09 2010-08-31 Sony Ericsson Mobile Communications Ab Identification of an object in media and of related media objects
US7680959B2 (en) * 2006-07-11 2010-03-16 Napo Enterprises, Llc P2P network for providing real time media recommendations
US8565815B2 (en) * 2006-11-16 2013-10-22 Digimarc Corporation Methods and systems responsive to features sensed from imagery or other data
US7991157B2 (en) * 2006-11-16 2011-08-02 Digimarc Corporation Methods and systems responsive to features sensed from imagery or other data
CN101246486B (zh) * 2007-02-13 2012-02-01 国际商业机器公司 用于改进的表达式处理的方法和装置
US8788529B2 (en) * 2007-02-26 2014-07-22 Microsoft Corp. Information sharing between images
US20080243806A1 (en) * 2007-03-26 2008-10-02 Roger Dalal Accessing information on portable cellular electronic devices
US7912444B2 (en) * 2007-04-23 2011-03-22 Sony Ericsson Mobile Communications Ab Media portion selection system and method
JP5380789B2 (ja) * 2007-06-06 2014-01-08 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8279946B2 (en) * 2007-11-23 2012-10-02 Research In Motion Limited System and method for providing a variable frame rate and adaptive frame skipping on a mobile device
US9224150B2 (en) * 2007-12-18 2015-12-29 Napo Enterprises, Llc Identifying highly valued recommendations of users in a media recommendation network
KR20090091549A (ko) * 2008-02-25 2009-08-28 주식회사 케이티 피사체의 위치정보가 포함된 사진 생성 장치 및 그 방법
US8417259B2 (en) * 2008-03-31 2013-04-09 At&T Mobility Ii Llc Localized detection of mobile devices
US8036417B2 (en) 2008-06-11 2011-10-11 Eastman Kodak Company Finding orientation and date of hardcopy medium
US20090315886A1 (en) * 2008-06-19 2009-12-24 Honeywell International Inc. Method to prevent resource exhaustion while performing video rendering
US8520979B2 (en) 2008-08-19 2013-08-27 Digimarc Corporation Methods and systems for content processing
US8805110B2 (en) 2008-08-19 2014-08-12 Digimarc Corporation Methods and systems for content processing
EP2324475A1 (en) * 2008-08-26 2011-05-25 Dolby Laboratories Licensing Corporation Robust media fingerprints
US9788043B2 (en) * 2008-11-07 2017-10-10 Digimarc Corporation Content interaction methods and systems employing portable devices
US20100135417A1 (en) * 2008-12-02 2010-06-03 Asaf Hargil Processing of video data in resource contrained devices
JP2010134649A (ja) * 2008-12-03 2010-06-17 Canon Inc 情報処理装置、その処理方法及びプログラム
JP5315111B2 (ja) * 2009-03-31 2013-10-16 株式会社エヌ・ティ・ティ・ドコモ 端末装置、情報提示システム及び端末画面表示方法
CN101533506B (zh) * 2009-04-24 2012-01-04 西安电子科技大学 一种鲁棒性的图像双水印方法
US8886206B2 (en) 2009-05-01 2014-11-11 Digimarc Corporation Methods and systems for content processing
US9197736B2 (en) 2009-12-31 2015-11-24 Digimarc Corporation Intuitive computing methods and systems
US8121618B2 (en) 2009-10-28 2012-02-21 Digimarc Corporation Intuitive computing methods and systems
US8694533B2 (en) * 2010-05-19 2014-04-08 Google Inc. Presenting mobile content based on programming context
US8781152B2 (en) * 2010-08-05 2014-07-15 Brian Momeyer Identifying visual media content captured by camera-enabled mobile device
US8359020B2 (en) 2010-08-06 2013-01-22 Google Inc. Automatically monitoring for voice input based on context

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010022185A1 (en) 2008-08-19 2010-02-25 Digimarc Corporation Methods and systems for content processing

Also Published As

Publication number Publication date
JP6054870B2 (ja) 2016-12-27
US20120134548A1 (en) 2012-05-31
CA2815944A1 (en) 2012-05-10
CN103329147A (zh) 2013-09-25
US9183580B2 (en) 2015-11-10
CN107103316B (zh) 2020-11-03
EP2635997A2 (en) 2013-09-11
JP2014505896A (ja) 2014-03-06
CA2815944C (en) 2019-09-17
WO2012061760A2 (en) 2012-05-10
WO2012061760A3 (en) 2012-06-28
JP2017108401A (ja) 2017-06-15
EP2635997A4 (en) 2015-01-07
CN107103316A (zh) 2017-08-29
JP6572468B2 (ja) 2019-09-11
KR20130118897A (ko) 2013-10-30

Similar Documents

Publication Publication Date Title
US10658007B2 (en) Smartphone-based methods and systems
KR102010221B1 (ko) 스마트폰 기반 방법들 및 시스템들
US10971171B2 (en) Smartphone-based methods and systems
US9354778B2 (en) Smartphone-based methods and systems
US9648197B2 (en) Salient point-based arrangements
US20150286873A1 (en) Smartphone-based methods and systems
US20120154633A1 (en) Linked Data Methods and Systems
US20120284012A1 (en) Smartphone-Based Methods and Systems

Legal Events

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