KR20190107029A - 물리적 그래프에 기초하여 액션을 취하는 기법 - Google Patents

물리적 그래프에 기초하여 액션을 취하는 기법 Download PDF

Info

Publication number
KR20190107029A
KR20190107029A KR1020197021121A KR20197021121A KR20190107029A KR 20190107029 A KR20190107029 A KR 20190107029A KR 1020197021121 A KR1020197021121 A KR 1020197021121A KR 20197021121 A KR20197021121 A KR 20197021121A KR 20190107029 A KR20190107029 A KR 20190107029A
Authority
KR
South Korea
Prior art keywords
physical
computing system
action
agent
graph
Prior art date
Application number
KR1020197021121A
Other languages
English (en)
Inventor
비제이 미탈
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20190107029A publication Critical patent/KR20190107029A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • User Interface Of Digital Computer (AREA)
  • Navigation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Manipulator (AREA)
  • Life Sciences & Earth Sciences (AREA)

Abstract

물리적 그래프에 기초한 액션 기법 사용자로부터 명령(예컨대, 자연어 명령)을 해석하는 에이전트를 사용하여 액션이 취해진다. 에이전트는, 복수의 센서에 의해 관측되는 물리적 공간 내의 하나 이상의 물리적 개체의 상태를 나타내는 물리적 그래프에 대해 적어도 하나의 쿼리를 형성함으로써 명령에 응답한다. 그런 다음 에이전트는 물리적 그래프에 대해 쿼리 또는 쿼리들을 사용한다. 이에 대한 응답으로 에이전트는 취할 액션을 식별한다. 이들 액션은, 사용자에게 정보를 제공하고 다른 사람들에게 통신을 보내는 것과 같은 액션을 포함할 수 있다. 그러나, 이들 액션은 물리적 액션도 포함할 수 있다. 예를 들어, 에이전트는 (예컨대, 로봇 또는 드론을 통해) 물리적 액션을 수행하는 물리적 액션 엔진을 포함할 수 있다.

Description

물리적 그래프에 기초하여 액션을 취하는 기법
컴퓨팅 시스템 및 관련 네트워크는 우리 세계에 커다란 혁명을 일으켰다. 처음에, 컴퓨팅 시스템은 단순한 작업만 수행할 수 있었다. 그러나 처리 능력이 증가함에 따라 그리고 점점 더 많이 이용가능해짐에 따라 컴퓨팅 시스템에 의해 수행되는 작업의 복잡성이 크게 증가하였다. 마찬가지로, 대형 데이터 센터에서 지원하는 클라우드 컴퓨팅에서 볼 수 있듯이, 컴퓨팅 시스템의 하드웨어 복잡성 및 기능이 크게 향상되었다.
오랜 기간 동안 컴퓨팅 시스템은 기본적으로 명령 또는 소프트웨어로 지시된 것을 단순히 수행했다. 그러나 소프트웨어 및 하드웨어 사용이 급속히 발전하여 컴퓨팅 시스템은 이제 이전보다 더 높은 수준의 의사 결정이 가능하게 되었다. 현재, 어떤면에서는, 의사 결정 수준이 인간의 두뇌가 의사 결정하는 능력에 접근하거나, 비슷하거나, 또는 심지어 능가할 수 있다. 즉, 컴퓨팅 시스템은 이제 어느 수준의 인공 지능을 사용할 수 있다.
인공 지능의 한 예는 물리적 세계로부터의 외부 자극을 인지하는 것이다. 예를 들어, 음성 인식 기술이 크게 개선되어, 말하고 있는 단어들과 심지어 말하고 있는 사람의 신원을 높은 정확도로 검출할 수 있다. 마찬가지로, 컴퓨터 비전을 통해 컴퓨팅 시스템은 비디오의 특정 픽처 또는 프레임 내의 객체를 자동으로 식별하거나 일련의 비디오 프레임에서 인간 활동을 인식할 수 있다. 예를 들어, 얼굴 인식 기술은 컴퓨터 시스템이 얼굴을 인식할 수 있게 하고, 활동 인식 기술은 컴퓨터 시스템이 근접한 두 사람이 함께 작업하고 있는지 여부를 알 수 있게 한다.
각각의 이들 기술은 딥 러닝(딥 뉴럴 네트워크(Deep Neural Network) 기반 및 보강(reinforcement) 기반 러닝 메커니즘) 및 머신 러닝 알고리즘을 이용하여, 무엇이 소리를 만드는지와 이미지 내에 있는 사물이나 사람을 경험을 통해 학습함으로써, 시간이 지남에 따라 인식 정확도를 향상시킬 수 있다. 다수의 시각적으로 혼란한 보다 복잡한 촬영 장면에서 물체를 인식하는 데에 있어, 고급 컴퓨터 비전 기술은 이제 그 장면에서 관심 대상을 빠르고 정확하게 인식하는 데에 사람의 능력을 능가한다. 종래의 그래픽 처리 장치(GPU)의 매트릭스 변환 하드웨어와 같은 하드웨어가 또한 딥 뉴럴 네트워크의 맥락에서 빠른 물체 인식 속도에 기여할 수 있다.
본 명세서에서 청구된 청구 대상은 어떠한 단점을 해결한다거나 또는 전술한 바와 같은 환경에서만 동작하는 실시예에 한정되지 않는다. 오히려, 본 배경기술은 본 명세서에 기술된 일부 실시예가 실시될 수 있는 하나의 예시적인 기술분야를 설명하기 위한 것일 뿐이다.
본 명세서에 기술된 적어도 일부 실시예는 물리적 그래프에 기초하여 액션을 취하는 것에 관한 것이다. 이들 액션은 사용자의 하나 이상의 명령을 해석하는 에이전트를 사용하여 취해진다. 예를 들어, 명령은 사용자가 자연어로 할 수 있으며, 이 경우 명령은 자연어 엔진을 통해 해석된다. 에이전트는, 복수의 센서에 의해 관측되는 물리적 공간 내의 하나 이상의 물리적 개체의 상태를 나타내는 물리적 그래프에 대해 적어도 하나의 쿼리를 형성함으로써 명령에 응답한다. 그런 다음 에이전트는 물리적 그래프에 대해 쿼리 또는 쿼리들을 사용한다. 이에 대한 응답으로 에이전트는 취할 액션을 식별한다. 이들 액션은, 사용자에게 정보를 제공하고 다른 사람들에게 통신을 보내는 것과 같은 액션을 포함할 수 있다. 그러나, 이들 액션은 물리적 액션도 포함할 수 있다. 예를 들어, 에이전트는 (예컨대, 로봇 또는 드론을 통해) 물리적 액션을 수행하는 물리적 액션 엔진을 포함할 수 있다.
따라서, 본 명세서에 기술된 원리는 현실 세계의 일부분의 그래프를 평가함으로써 사용자가 한 질의 및 명령에 응답하는 리얼리티 에이전트(reality agent)를 제공한다. 일부 실시예에서, 리얼리티 에이전트는 사용자가 한 질의 및 명령에 응답하여 현실 세계에 영향을 미칠 수도 있다. 에이전트는 현실 세계 자체에서 사용자의 확장이 된다. 에이전트는 현실 세계 정보 및 사용자가 흔히 할 수 있는 활동을 관측할 수 있는 능력을 더 많이 갖고 있다. 에이전트는 이러한 현실 세계 정보를 기억하고 그러한 정보에 대해 추론할 수 있는 능력을 더 많이 갖고 있다. 마지막으로, 에이전트는 잠재적으로 현실 세계의 정보와 이에 대한 추론을 기반으로 현실 세계에서 물리적 액션을 취할 수 있는 능력을 더 많이 갖고 있다.
본 요약부는 아래의 상세한 설명에서 추가로 기술되는 개념들의 선택을 단순화된 형식으로 소개하도록 제공된다. 본 요약부는 청구 대상의 중요 특성 또는 기본 특성을 밝히기 위한 것이 아니며, 청구 대상의 범주를 결정하는데 도움이 되도록 사용하기 위한 것도 아니다.
본 발명의 상기 및 다른 이점들 및 특징들을 얻을 수 있는 방식을 설명하기 위해, 위에서 간략히 설명한 본 발명을 첨부된 도면들에 도시된 특정 실시예들을 참조하여 보다 구체적으로 설명할 것이다. 이들 도면은 단지 본 발명의 전형적인 실시예를 도시한 것이며 본 발명의 범위를 제한하는 것으로 간주되어서는 안 된다는 것을 이해하고, 본 발명은 첨부된 도면을 사용하여 더욱 구체적이고 자세하게 기술되고 설명될 것이다.
도 1은 본 명세서에 기술된 원리들이 사용될 수 있는 예시적인 컴퓨터 시스템을 도시한 것이다.
도 2는 본 명세서에 기술된 원리가 작동할 수 있는 환경으로서, 복수의 물리적 개체 및 복수의 센서를 포함하는 물리적 공간, 물리적 공간 내의 물리적 개체의 특징을 감지하는 인식 컴포넌트, 및 이들 특징에 대해 계산 및 쿼리가 수행될 수 있도록 그러한 물리적 개체의 감지된 특징을 저장하는 특징 저장소를 포함하는 환경을 도시한 것이다.
도 3은 소정 위치 내의 물리적 개체를 추적하는 방법의 흐름도를 나타내며 도 2의 환경에서 수행될 수 있다.
도 4는, 도 3의 방법을 수행하는 것을 돕기 위해 사용될 수 있고 추적된 물리적 개체들에 대한 나중에 쿼리를 수행하는데 사용될 수 있는 개체 추적 데이터 구조를 도시한 것이다.
도 5는 관심있는 신호 세그먼트를 효율적으로 렌더링하는 방법의 흐름도이다.
도 6은 물리적 공간에서 하나 이상의 센서에 의해 감지된 정보의 생성 또는 액세스를 제어하기 위한 방법의 흐름도이다.
도 7은 물리적 공간에서 감지된 특징들의 컴퓨터 탐색가능 그래프를 생성하는 것에 더하여, 컴퓨터 탐색가능 그래프를 프루닝(pruning)하여 현실 세계의 컴퓨터 탐색가능 그래프를 다루기 쉬운 크기로 유지하는 것을 보여주는 순환 흐름도이다.
도 8은 에이전트(본 명세서에서는 "리얼리티 에이전트"라고도 함)가 현실 세계 관측에 기초하여 액션을 취하는 방법의 흐름도이다.
도 9는 에이전트(도 8의 에이전트와 같은)가 사용자 명령에 응답하여 액션을 취하는 예시적인 동작 환경을 도시한 것이다.
도 10은 하나 이상의 액션을 수행하기 위한 하나 이상의 물리적 조건을 설정하는 방법의 흐름도를 도시한 것이다.
본 명세서에 기술된 적어도 일부 실시예는 물리적 그래프에 기초하여 액션을 취하는 것에 관한 것이다. 이들 액션은 사용자의 하나 이상의 명령을 해석하는 에이전트를 사용하여 취해진다. 예를 들어, 명령은 사용자가 자연어로 할 수 있으며, 이 경우 명령은 자연어 엔진을 통해 해석된다. 에이전트는, 복수의 센서에 의해 관측되는 물리적 공간 내의 하나 이상의 물리적 개체의 상태를 나타내는 물리적 그래프에 대해 적어도 하나의 쿼리를 형성함으로써 명령에 응답한다. 그런 다음 에이전트는 물리적 그래프에 대해 쿼리 또는 쿼리들을 사용한다. 이에 대한 응답으로 에이전트는 취할 액션을 식별한다. 이들 액션은, 사용자에게 정보를 제공하고 다른 사람들에게 통신을 보내는 것과 같은 액션을 포함할 수 있다. 그러나, 이들 액션은 물리적 액션도 포함할 수 있다. 예를 들어, 에이전트는 (예컨대, 로봇 또는 드론을 통해) 물리적 액션을 수행하는 물리적 액션 엔진을 포함할 수 있다.
따라서, 본 명세서에 기술된 원리는 현실 세계의 일부분의 그래프를 평가함으로써 사용자가 한 질의 및 명령에 응답하는 리얼리티 에이전트를 제공한다. 일부 실시예에서, 리얼리티 에이전트는 사용자가 한 질의 및 명령에 응답하여 현실 세계에 영향을 미칠 수도 있다. 에이전트는 현실 세계 자체에서 사용자의 확장이 된다. 에이전트는 현실 세계 정보 및 사용자가 흔히 할 수 있는 활동을 관측할 수 있는 능력을 더 많이 갖고 있다. 에이전트는 이러한 현실 세계 정보를 기억하고 그러한 정보에 대해 추론할 수 있는 능력을 더 많이 갖고 있다. 마지막으로, 에이전트는 잠재적으로 현실 세계의 정보와 이에 대한 추론을 기반으로 현실 세계에서 물리적 액션을 취할 수 있는 능력을 더 많이 갖고 있다.
본 명세서에 설명된 원리들은 컴퓨팅 시스템의 맥락에서 작동하기 때문에, 컴퓨팅 시스템을 도 1과 관련하여 설명할 것이다. 다음으로, 앰비언트 컴퓨팅을 수행하는데 기초가 되는 원리는 도 2 내지 도 4와 관련하여 설명할 것이다. 컴퓨터 탐색가능 그래프로부터 신호 세그먼트를 얻는 것은 도 5와 관련하여 설명할 것이다. 그 후, 앰비언트 컴퓨팅과 관련하여 보안을 적용하는 것은 도 6과 관련하여 설명할 것이다. 컴퓨터 탐색가능 그래프의 크기 관리는 도 7을 참조하여 설명할 것이다. 이어서, 도 8 및 도 9를 참조하여 리얼리티 에이전트를 설명할 것이다. 마지막으로, 물리적 조건을 지정하여 미래에 영향을 미치는 방법을 그림 10과 관련하여 설명한다.
컴퓨팅 시스템은 점점 더 다양한 형태를 취하고 있다. 컴퓨팅 시스템은, 예를 들어, 핸드 헬드 장치, 어플라이언스, 랩톱 컴퓨터, 데스크톱 컴퓨터, 메인 프레임, 분산 컴퓨팅 시스템, 데이터 센터 또는 심지어 웨어러블(예컨대, 안경, 시계, 밴드 등)과 같이 종래에는 컴퓨팅 시스템으로 고려되지 않은 장치일 수 있다. 상세한 설명 및 청구범위에서, "컴퓨팅 시스템"이라는 용어는 적어도 하나의 물리적이고 형태를 갖는(physical and tangible) 프로세서와, 프로세서에 의해 실행될 수 있는 컴퓨터 실행 가능한 명령어를 포함할 수 있는 물리적이고 형태를 갖는 메모리를 포함하는 임의의 장치 또는 시스템(또는 이들의 조합)으로 넓게 정의된다. 메모리는 임의의 형태를 취할 수 있으며 컴퓨팅 시스템의 특성 및 형태에 의존할 수 있다. 컴퓨팅 시스템은 네트워크 환경을 통해 분산될 수 있으며, 복수의 구성 컴퓨팅 시스템을 포함할 수 있다.
도 1에 도시된 바와 같이, 가장 기본적인 구성에서, 컴퓨팅 시스템(100)은 통상적으로 적어도 하나의 하드웨어 프로세싱 유닛(102)과 메모리(104)를 포함한다. 메모리(104)는 물리적 시스템 메모리일 수 있으며, 이는 휘발성, 비휘발성, 또는 이 둘의 조합일 수 있다. "메모리"란 용어는 또한 본 명세서에서 물리적 저장 매체와 같은 비휘발성 대용량 저장부를 지칭하는데 사용될 수 있다. 컴퓨팅 시스템이 분산되면, 프로세싱, 메모리 및/또는 저장 능력도 분산될 수 있다.
컴퓨팅 시스템(100)은 흔히 "실행가능 컴포넌트"라고 하는 복수의 구조를 갖추고 있다. 예를 들어, 컴퓨팅 시스템(100)의 메모리(104)는 실행가능 컴포넌트(106)를 포함하는 것으로 예시된다. "실행가능 컴포넌트"라는 용어는 컴퓨팅 분야의 당업자가 소프트웨어, 하드웨어 또는 이들의 조합일 수 있는 구조인 것으로 잘 이해하고 있는 구조의 명칭이다. 예를 들어, 소프트웨어로 구현되는 경우, 당업자는 실행 가능 컴포넌트의 구조가 컴퓨팅 시스템에서 실행될 수 있는 소프트웨어 객체, 루틴, 방법을 포함할 수도 있고, 그러한 실행 가능 컴포넌트가 컴퓨팅 시스템의 힙(heap)에 존재하는지 여부 또는 실행 가능 컴포넌트가 컴퓨터 판독 가능 저장 매체 상에 존재 하는지 여부를 이해할 수 있다.
그러한 경우, 당업자는, 실행 가능 컴포넌트의 구조가 컴퓨팅 시스템의 하나 이상의 프로세서에 의해(예컨대, 프로세서 스레드에 의해) 해석될 때 컴퓨팅 시스템이 기능을 수행하도록 실행 가능 컴포넌트의 구조가 컴퓨터 판독가능 매체 상에 존재한다는 것을 알 수 있을 것이다. 이러한 구조는 (실행 가능 컴포넌트가 바이너리인 경우와 마찬가지로) 프로세서에 의해 직접 컴퓨터 판독 가능할 수 있다. 또는, 이 구조는 프로세서에 의해 직접 해석될 수 있는 그러한 바이너리를 생성하기 위해, (한 단계에서든 복수의 단계에서든) 해석 가능하도록 그리고/또는 컴파일되도록 구성될 수 있다. 실행 가능 컴포넌트의 예시적인 구조에 대한 이러한 이해는 "실행 가능 컴포넌트"라는 용어를 사용할 때의 컴퓨팅 분야의 당업자의 이해 범위 내에 있다.
"실행 가능 컴포넌트"라는 용어는 또한 FPGA(field programmable gate array), ASIC(application specific integrated circuit), 또는 임의의 다른 특수 회로와 같이, 하드웨어로 배타적으로 또는 거의 배타적으로 구현되는 구조를 포함하는 것으로 당업자는 이해한다. 따라서, "실행 가능 컴포넌트"라는 용어는 소프트웨어 분야, 하드웨어 분야 또는 이들의 조합으로 구현되는지에 상관없이 컴퓨팅 분야의 당업자가 잘 이해하는 구조에 대한 용어이다. 본 명세서에서는, "컴포넌트"라는 용어도 사용될 수 있다. 본 명세서 및 이 경우에 사용된 바와 같이, 이 용어(이 용어가 하나 이상의 수식어로 수식되는지 여부에 관계없이)는 "실행 가능 컴포넌트"와 동의어 또는 그러한 "실행 가능 컴포넌트"의 특정 유형을 나타내고자 하며, 따라서 컴퓨팅 분야의 당업자들이 잘 이해하는 구조를 갖는다.
이하의 설명에서, 실시예들은 하나 이상의 컴퓨팅 시스템에 의해 수행되는 동작을 참조하여 설명한다. 이들 동작이 소프트웨어로 구현되면, (그 동작을 수행하는 관련 컴퓨팅 시스템의) 하나 이상의 프로세서가 실행 가능 컴포넌트를 구성하는 컴퓨터 실행가능 명령어를 실행했다는 것에 응답하여 컴퓨팅 시스템의 조작을 지시한다. 예를 들어, 이들 컴퓨터 실행가능 명령어는 컴퓨터 프로그램 제품을 형성하는 하나 이상의 컴퓨터 판독가능 매체에 수록될 수 있다. 그러한 조작의 일례는 데이터의 조작을 포함한다.
컴퓨터 실행가능 명령어(및 조작된 데이터)는 컴퓨팅 시스템(100)의 메모리(104)에 저장될 수 있다. 컴퓨팅 시스템(100)은 또한, 컴퓨팅 시스템(100)이 예컨대 네트워크(110)를 통해 다른 컴퓨팅 시스템과 통신할 수 있게 하는 통신 채널(108)을 포함할 수 있다.
모든 컴퓨팅 시스템이 사용자 인터페이스를 요구하는 것은 아니지만, 일부 실시예에서는, 컴퓨팅 시스템(100)이 사용자와의 인터페이스에 사용하기 위한 사용자 인터페이스(112)를 포함한다. 사용자 인터페이스(112)는 출력 메커니즘(112A) 및 입력 메커니즘(112B)을 포함할 수 있다. 본 명세서에 설명된 원리는 이들 출력 메커니즘(112A) 또는 입력 메커니즘(112B)으로 한정되지 않고 장치의 특성에 따라 달라질 수 있다. 그러나, 출력 메커니즘(112A)은, 예를 들어 스피커, 디스플레이, 촉각 출력, 홀로그램, 가상 현실 등을 포함할 수 있다. 입력 메커니즘(112B)의 예로는, 마이크로폰, 터치 스크린, 홀로그램, 가상 현실, 카메라, 키보드, 다른 포인터 입력 마우스, 임의의 유형의 센서 등이 있다.
본 명세서에 설명된 실시예들은 이하에서 더 상세히 설명되는 바와 같이, 예를 들어 하나 이상의 프로세서 및 시스템 메모리와 같은 컴퓨터 하드웨어를 포함하는 특수 목적 또는 범용 컴퓨팅 시스템을 포함하거나 이용할 수 있다. 본 명세서에 설명된 실시예들은 또한 컴퓨터 실행 가능 명령어 및/또는 데이터 구조를 반송하거나 저장하기 위한 물리적 및 다른 컴퓨터 판독 가능 매체를 포함한다. 이러한 컴퓨터 판독 가능 매체는 범용 또는 특수 목적 컴퓨팅 시스템에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 실행 가능 명령어를 저장하는 컴퓨터 판독 가능 매체는 물리적 저장 매체이다. 컴퓨터 실행 가능 명령어를 반송하는 컴퓨터 판독 가능 매체는 전송 매체이다. 따라서, 제한이 아닌 예로서, 실시예들은 저장 매체 및 전송 매체 중 적어도 두 개의 완전히 상이한 종류의 컴퓨터 판독 가능 매체를 포함할 수 있다.
컴퓨터 판독 가능 저장 매체는, RAM, ROM, EEPROM, CD-ROM, 또는 다른 광 디스크 저장부, 자기 디스크 저장부 또는 기타 자기 저장 장치, 또는 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 저장하는데 사용될 수 있고 범용 또는 특수 목적 컴퓨팅 시스템에 의해 액세스될 수 있는 임의의 다른 물리적인 유형의 매체를 포함한다.
"네트워크"는 컴퓨터 시스템 및/또는 모듈 및/또는 기타 전자 장치 사이에서 전자 데이터의 전송을 가능하게 하는 하나 이상의 데이터 링크로서 정의된다. 네트워크 또는 다른 통신 연결(유선, 무선 또는 유선 또는 무선의 조합)을 통해 컴퓨팅 시스템에 정보가 전달되는 경우, 컴퓨팅 시스템은 이 연결을 전송 매체로서 간주한다. 전송 매체는, 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 반송하는데 사용될 수 있고 범용 또는 특수 목적 컴퓨팅 시스템에 의해 액세스될 수 있는 네트워크 및/또는 데이터 링크를 포함할 수 있다. 이들의 조합이 또한 컴퓨터 판독가능 매체의 범위 내에 포함될 수 있다.
또한, 다양한 컴퓨터 시스템 컴포넌트에 도달하면, 컴퓨터 실행가능 명령어 또는 데이터 구조 형태의 프로그램 코드 수단은 자동으로 전송 매체에서 컴퓨터 저장 매체로 (또는 그 반대로) 전달될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 통해 수신된 컴퓨터 실행가능 명령어 또는 데이터 구조는 네트워크 인터페이스 컨트롤러(예컨대, "NIC") 내의 RAM 내에 버퍼링될 수 있고, 그 후 최종적으로 컴퓨터 시스템 RAM 및/또는 컴퓨터 시스템에 있는 난휘발성(less vlatile) 컴퓨터 저장 매체로 전달될 수 있다. 따라서, 판독 가능 매체는 전송 매체를 또한 (또는 주로) 이용하는 컴퓨팅 시스템 컴포넌트에 포함될 수 있다.
컴퓨터 실행가능 명령어는, 예컨대, 프로세서에서 실행될 경우에, 범용 컴퓨팅 시스템, 특수 목적 컴퓨팅 시스템, 또는 특수 목적 프로세싱 장치로 하여금 소정의 기능 또는 기능 그룹을 수행하게 하는 명령어 및 데이터를 포함한다. 이에 더하여 또는 이에 갈음하여, 컴퓨터 실행 가능 명령어는 소정의 기능 또는 기능 그룹을 수행하도록 컴퓨팅 시스템을 구성할 수 있다. 컴퓨터 실행가능 명령어는, 예를 들어, 이진수, 어셈블리어와 같은 중간 포맷 명령어, 또는 심지어 소스 코드와 같이 프로세서에 의해 직접 실행되기 전에 일부 변환(예컨대, 컴파일)이 이루어지는 명령어일 수도 있다.
당업자는 본 발명이 개인용 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 메시지 프로세서, 핸드헬드 장치, 멀티 프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능 가전, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 모바일 전화기, PDA, 페이저, 라우터, 스위치, 데이터센터, 웨어러블(예컨대, 안경 또는 시계) 등을 포함하는 많은 유형의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 실시될 수 있음을 이해할 수 있을 것이다. 본 발명은 또한 (유선 데이터 링크, 무선 데이터 링크, 또는 유선 및 무선 데이터 링크의 조합에 의해 ) 네트워크를 통해 링크되는 로컬 및 원격 컴퓨팅 시스템이 모두 태스크를 수행하는 분산 시스템 환경에서 실시될 수도 있다. 분산 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 모두에 위치할 수 있다.
당업자는 또한 본 발명이 클라우드 컴퓨팅 환경에서 실시될 수 있음을 이해할 것이다. 반드시 필요한 것은 아니지만, 클라우드 컴퓨팅 환경이 분산될 수도 있다. 분산될 경우, 클라우드 컴퓨팅 환경은 한 조직 내에서 널리 분산될 수도 있고/있거나 컴포넌트들을 복수의 조직에 걸쳐 가질 수도 있다. 본 명세서 및 청구범위에서, "클라우드 컴퓨팅"은 구성 가능한 컴퓨팅 리소스들(예컨대, 네트워크, 서버, 저장부, 애플리케이션 및 서비스)의 공유 풀에 온디맨드(on-demand) 네트워크 액세스를 가능하게 하기 위한 모델로서 정의된다. "클라우드 컴퓨팅"의 정의는 제대로 배치되었을 때 그러한 모델에서 얻을 수 있는 다른 수많은 이점들 중 어느 하나로 국한되지 않는다.
예를 들어, 클라우드 컴퓨팅은 현재 구성 가능한 컴퓨팅 리소스의 공유 풀에 대한 유비쿼터스하고 편리한 온디맨드 액세스를 제공하기 위해 시장에서 사용되고 있다. 또한, 구성 가능한 컴퓨팅 리소스의 공유 풀은 가상화를 통해 신속하게 프로비저닝되고 낮은 관리 노력 또는 서비스 제공자의 상호 작용을 통해 릴리스된 다음, 그에 따라 확장될 수 있다.
클라우드 컴퓨팅 모델은 온디맨드 셀프 서비스(on-demand self-service), 광대역 네트워크 액세스(broad network access), 리소스 풀링(resource pooling), 빠른 탄력성(rapid elasticity), 측정되는 서비스(measured service) 등과 같은 다양한 특성으로 구성될 수 있다. 클라우드 컴퓨팅 모델은 또한, 예를 들어 SaaS(Software as a Service), PaaS(Platform as a Service) 및 IaaS(Infrastructure as a Service)와 같은 다양한 서비스 모델의 형태로 제공될 수 있다. 클라우드 컴퓨팅 모델은 사설 클라우드, 커뮤니티 클라우드, 퍼블릭 클라우드, 하이브리드 클라우드 등과 같은 상이한 배포 모델을 사용하여 배포될 수 있다. 본 명세서 및 청구항에서, "클라우드 컴퓨팅 환경"은 클라우드 컴퓨팅이 이용되는 환경이다.
도 2는 본 명세서에 설명된 원리들이 작동할 수 있는 환경(200)을 도시한 것이다. 환경(200)은 복수의 물리적 개체(210)를 포함하는 물리적 공간(201)을 포함하며, 복수의 물리적 개체는 제각기의 객체, 사람, 또는 사물의 하나 이상의 물리적 특징(feature)(본 명세서에서는 상태(state)라고도 함)을 잠재적으로 식별하는데 사용될 수 있는 패턴을 갖는 (전자기 방사 또는 음향과 같은) 물리적 신호를 방출하거나 또는 반사하는 임의의 현존하는 객체, 사람 또는 사물일 수 있다. 이러한 잠재적으로 식별되는 전자기 방사의 한 예가 가시적인 개체의 특성을 확인할 수 있는 광 패턴(예를 들어, 정지 이미지 또는 비디오)을 갖는 가시광이다. 이러한 광 패턴은 임의의 시간적, 공간적 또는 더 높은 차원의 공간일 수 있다. 이러한 음향의 예는 사람의 목소리, 정상 상태 또는 소정의 동작 또는 사건 하의 객체의 소리 또는 반사된 음향 반향일 수 있다.
환경(200)은 또한 물리적 개체(210)로부터 물리적 신호를 수신하는 센서(220)를 포함한다. 물론 센서는 물리적 개체가 방출하거나 반사하는 모든 물리적 신호를 감지할 필요는 없다. 예를 들어, 가시광 카메라(스틸 또는 비디오)는 가시광의 형태로 전자기 복사를 수신하고 그러한 신호를 처리 가능한 형태로 변환 할 수 있지만, 카메라가 모두 유한한 동적 범위를 갖기 때문에 임의의 주파수의 모든 전자기 복사를 감지할 수는 없다. 음향 센서도 마찬가지로 특정 주파수 범위를 위해 설계된 제한된 동적 범위를 갖는다. 어느 경우든, 센서(220)는 결과의 센서 신호를 인식 컴포넌트(230)에 제공한다(화살표(229)로 표시됨).
인식 컴포넌트(230)는 수신된 센서 신호에서 검출된 패턴에 기초하여 위치 내의 물리적 개체(210)의 하나 이상의 특징을 적어도 추정(예를 들어, 추정 또는 인식)한다. 인식 컴포넌트(230)는 또한 물리적 개체의 특징의 "적어도 추정"과 연관된 신뢰도를 생성할 수 있다. 그 신뢰도가 100%보다 작으면 "적어도 추정"은 그저 추정일 뿐이다. 그 신뢰도가 100%이면, "적어도 추정"은 실제로 추정 이상이며, 이는 인식이다. 본 명세서 및 청구범위의 나머지 부분에서, "적어도 추정되는" 특징은 명확성을 위해 "감지된(sensed)" 특징으로 지칭할 것이다. "감지된" 기능은 항상 확실하게 존재하지는 않기 때문에, 이것은 "감지(sense)"라는 용어의 일반적인 사용과 부합한다. 인식 컴포넌트(230)는 딥 러닝(딥 뉴럴 네트워크(Deep Neural Network) 기반 및 보강(reinforcement) 기반 러닝 메커니즘) 및 머신 러닝 알고리즘을 이용하여, 이미지 내에 있는 사물이나 사람을 경험을 통해 학습함으로써, 시간이 지남에 따라 인식 정확도를 향상시킬 수 있다
인식 컴포넌트(230)는 감지된 특징을 감지된 특징 저장소(240)에 제공하고(화살표 239로 표시됨), 감지된 특징 저장소(240)는 물리적 개체가 단시간, 장시간 또는 영구적으로 물리적 공간 내에 있는지 여부에 관계없이 그 위치(201) 내의 각 물리적 개체에 대한 감지된 특징(및 관련 신뢰도)을 저장할 수 있다. 그 다음에, 계산 컴포넌트(250)는 감지된 특징 저장소(240)에 제공된 감지된 특징 데이터에 대한 다양한 질의 및/또는 계산을 수행할 수 있다. 질의 및/또는 계산은 계산 컴포넌트(250)와 감지된 특징 저장소(240) 사이의 상호 작용(화살표 249로 표시됨)에 의해 가능해질 수 있다.
일부 실시예에서, 인식 컴포넌트(230)가 센서에 의해 제공된 센서 신호(들)를 사용하여 위치(201) 내의 물리적 개체의 감지된 특징을 감지할 경우, 센서 신호 또한 감지된 특징 저장소와 같은 저장소에 제공된다. 예를 들어, 도 2에서, 감지된 특징 저장소(240)는 감지된 특징(241) ? 감지된 특징의 증거를 나타내는 대응 센서 신호(242)를 포함하는 것으로 도시되어 있다.
감지된 복수의 개체 중 적어도 한 개체의 감지된 특징 중 적어도 하나(바람직하게는 다수 개)에 대해, 적어도 하나의 신호 세그먼트가 감지된 특징과 컴퓨터 연관되어, 감지된 특징을 컴퓨터 탐색함으로써 신호 세그먼트를 컴퓨터 탐색할 수 있다. 감지된 특징과 관련 신호 세그먼트의 연관은 연속적으로 수행될 수 있으며, 그 결과 그래프가 확장되고 신호 세그먼트의 집합이 확대된다. 즉, 이하에서 더 설명되는 바와 같이, 오래 되었거나 또는 더 이상 관심이 없는 감지된 특징 및/또는 신호 세그먼트를 정리하기 위해 가비지 콜렉션 프로세스가 이용될 수 있다.
신호 세그먼트는, 예를 들어 신호 세그먼트를 생성한 센서 또는 센서들의 식별과 같은 다수의 메타데이터 조각을 포함할 수 있다. 신호 세그먼트는 그 센서에 의해 생성된 모든 신호를 포함할 필요는 없으며, 간결하게 하기 위해 특정 물리적 개체의 감지된 특징을 감지하는 데 사용된 신호 부분만 포함할 수 있다. 이 경우, 메타 데이터는 저장된 원래 신호 세그먼트의 부분에 대한 설명을 포함할 수 있다.
감지된 신호는 센서에 의해 생성되는 임의의 유형의 신호일 수 있다. 그 예로는 비디오, 이미지 및 오디오 신호가 있다. 그러나, 다양한 신호는 인간이 감지할 수 있는 것에 국한되지 않는다. 신호 세그먼트는 센서에 의해 생성된 신호의 변형된 버전을 나타낼 수 있어, 인간이 나은 초점으로 관측할 수 있게 한다. 이러한 변환은 주파수에 기초한 필터링과 같은 필터링이나 또는 양자화를 포함할 수 있다. 이러한 변환은 또한 증폭, 주파수 시프팅, 속도 조절, 확대, 진폭 조절 등을 포함할 수 있다.
저장 요건을 줄이고 관심 신호에 대해 제대로 집중하기 위해, 아마도 신호 세그먼트의 일부만 저장될 것이다. 예를 들어, 비디오 신호의 경우, 아마도 비디오의 프레임 중 일부만이 저장될 것이다. 또한, 임의의 주어진 이미지에 대해, 아마도 프레임의 관련 부분만이 저장될 것이다. 마찬가지로, 센서 신호가 이미지인 경우, 아마도 이미지의 관련 부분만 저장될 것이다. 신호 세그먼트를 사용하여 특징을 감지하는 인식 서비스는 신호 세그먼트의 어느 부분이 특징을 감지하는 데 사용되었는지를 인식한다. 따라서, 인식 서비스는 임의의 주어진 감지된 특징에 대한 신호의 관련 부분을 구체적으로 잘라낼 수 있다.
계산 컴포넌트(250)는 또한 감지된 특징 저장소(240) 내의 데이터에 대한 액세스를 결정할 수 있는 보안 컴포넌트(251)를 가질 수 있다. 예를 들어, 보안 컴포넌트(251)는 어느 사용자가 감지된 특징 데이터(241) 및/또는 센서 신호(242)에 액세스할 수 있는지를 컨트롤할 수 있다. 또한, 보안 컴포넌트(251)는 감지된 특징 데이터 중 어떤 특징 데이터에 대해 계산이 수행되는지, 및/또는 어떤 사용자가 어떤 유형의 계산 또는 쿼리를 수행하도록 인가되는지를 컨트롤할 수 있다. 따라서, 보안이 효과적으로 달성된다. 이러한 보안에 관한 더 많은 것들은 도 6을 참조하여 아래에서 설명할 것이다.
감지된 특징 데이터는 시간의 경과에 따라 물리적 공간(201) 내의 물리적 개체의 감지된 특징을 나타내기 때문에, 물리적 공간(201) 내의 물리적 개체에 대해 복잡한 계산이 수행될 수 있다. 후술하는 바와 같이, 사용자에게는, 바로 그 환경 자체가 물리적 공간에 대한 계산 또는 임의의 컴퓨팅 쿼리에 대해 준비가 된 유용한 컴퓨팅 능력으로 채워져 있는 것처럼 보인다. 이것을 이하에서는 "앰비언트 컴퓨팅(ambient computing)"이라고도 한다.
또한, 감지된 특징이 관심 대상이 될 때마다, 인식 컴포넌트가 그 특징을 감지한 것을 뒷받침하는 증거가 재구성될 수 있다. 예를 들어, 컴퓨팅 컴포넌트(240)는 특정 물리적 개체가 특정 위치에 처음 들어왔을 때의 비디오 증거를 제공할 수 있다. 복수의 센서가 인식 구성 요소가 해당 특징을 감지하기 위해 사용된 센서 신호를 생성할 경우, 임의의 개별 센서 또는 센서들의 조합에 대한 센서 신호가 재구성되고 평가될 수 있다. 따라서, 예를 들어, 특정 위치에 먼저 들어가는 물리적 개체의 비디오 증거가 상이한 각도에서 검토될 수 있다.
물리적 공간(201)은 도 2에 도시되어 있으며, 내부에 센서를 갖는 임의의 물리적 공간을 그저 추상적으로 표현하기 위한 것이다. 이러한 물리적 공간의 예는 무한하지만, 예를 들어 방, 집, 이웃, 공장, 경기장, 건물, 바닥, 사무실, 자동차, 비행기, 우주선, 페트리 접시, 파이프 또는 튜브, 대기, 지하 공간, 동굴, 땅, 이들의 조합 및/또는 그 일부를 포함한다. 물리적 공간(201)은, 관측 가능한 우주 내의 물리적 개체로부터 방사되었고/되었거나, (예컨대, 회절, 주파수 이동, 에코 등)에 의해 영향을 받았고/받았거나 반사된 신호를 수신할 수 있는 센서가 존재하기만 한다면, 그 관측 가능한 우주의 전체 또는 그 일부일 수 있다.
물리적 공간(201) 내의 물리적 개체(210)는 4개의 물리적 개체(211, 212, 213 및 214)를 포함하는 것으로 도시되어 있지만, 이는 일례일 뿐이다. 생략 부호(215)는 센서(220)로부터의 데이터에 기초하여 감지되는 특징을 갖는 임의의 수의 다양한 물리적 개체가 있을 수 있음을 나타낸다. 생략 부호(215)는 또한 물리적 개체가 위치(201)에서 나가고 들어올 수 있음을 나타낸다. 따라서, 위치(201) 내의 물리적 개체의 수 및 아이덴티티는 시간에 따라 변할 수 있다.
물리적 개체의 위치 또한 시간에 따라 변할 수 있다. 물리적 개체의 위치는 도 2의 물리적 공간(201)의 상부에 도시되어 있지만, 이것은 단순히 표시를 명확히 하기 위한 것이다. 본 명세서에 기술된 원리는 물리적 공간(201) 내의 임의의 특정한 물리적 위치를 차지하는 임의의 특정 물리적 개체에 의존하지 않는다.
마지막으로, 단지 관례상 그리고 물리적 개체(210)를 센서(220)와 구별하기 위해, 물리적 개체(210)는 삼각형으로 도시하고 센서(220)는 원으로 도시하였다. 물론, 물리적 개체(210) 및 센서(220)는 임의의 물리적 형상 또는 크기를 가질 수 있다. 물리적 개체는 일반적으로 모양이 삼각형이 아니며, 센서는 일반적으로 원형이 아니다. 또한, 센서(220)가 물리적 공간(201) 내에 물리적으로 위치하는지의 여부에 상관없이 센서(220)는 물리적 공간(201) 내의 물리적 개체를 관측할 수 있다.
물리적 공간(201) 내의 센서(220)는 2 개의 센서(221 및 222)를 포함하는 것으로 도시되어 있지만, 이는 일례일 뿐이다. 생략 부호(223)는 물리적 공간 내의 물리적 개체에 의해 방사되었고/되었거나, (예컨대, 회절, 주파수 이동, 에코 등을 통해) 영향을 받았고/받았거나 이로부터 반사된 신호를 수신할 수 있는 임의의 수의 다양한 센서가 있을 수 있음을 나타낸다. 작동 가능한 센서의 수 및 기능은, 물리적 공간 내의 센서가 추가, 제거, 업그레이드, 파손, 교체되는 등의 이유로, 시간이 지남에 따라 변경될 수 있다.
도 3은 물리적 공간 내의 물리적 개체를 추적하는 방법(300)의 흐름도를 도시한 것이다. 방법(300)은 도 2의 물리적 공간(201) 내의 물리적 개체(210)를 추적하도록 수행될 수 있으므로, 도 3의 방법(300)은 이제 도 2의 환경(200)을 자주 참조하여 설명할 것이다. 또한, 도 4는, 방법(300)을 수행하는 것을 돕기 위해 사용될 수 있고 나중에 추적된 물리적 개체에 대한 쿼리를 수행하는데 사용될 수 있으며, 또한 추적된 물리적 개체와 연관된 센서 신호에 액세스하고 검토하는데 사용될 수 있는 개체 추적 데이터 구조(400)를 도시한 것이다. 또한, 개체 추적 데이터 구조(400)는 도 2의 감지된 특징 저장소(240)(감지된 특징 데이터(241)로 표현됨)에 저장될 수 있다. 따라서, 도 3의 방법(300)은 또한 도 4의 개체 추적 데이터 구조(400)를 자주 참조하여 설명할 것이다.
추적을 돕기 위해, 물리적 공간에 대한 시공간 데이터 구조가 설정된다(동작 301). 이것은 분산 데이터 구조 또는 비 분산 데이터 구조일 수 있다. 도 4는 시공간 데이터 구조(401)를 포함하는 개체 추적 데이터 구조(400)의 한 예를 도시한 것이다. 이러한 개체 추적 데이터 구조(400)는 도 2의 감지된 특징 저장소(240) 내에 감지된 특징 데이터(241)로서 포함될 수 있다. 본 명세서에 설명된 원리는 물리적 개체 및 이들의 감지된 특징 및 활동을 추적하는 것에 대해 설명하지만, 본 명세서에 설명된 원리는 둘 이상의 위치에서 물리적 개체(및 이들의 감지된 특징 및 활동)를 추적하도록 동작할 수 있다. 이 경우, 아마도 시공간 데이터 구조(401)는 (생략 부호들(402A 및 402B)로 나타낸 바와 같이) 개체 추적 데이터 구조(400)에 의해 표현되는 트리 내의 루트 노드가 아닐 것이다. 오히려 공통 루트 노드를 통해 상호 연결될 수 있는 시공간 데이터 구조가 여러 개 있을 수 있다.
그 다음에, 도 3으로 돌아가서, 물리적 공간(예를 들어, 물리적 공간(201)) 내에 적어도 일시적으로 존재하는 다수의 물리적 개체(예를 들어, 물리적 개체(210)) 각각에 대해 박스(310A)의 내용이 수행될 수 있다. 또한, 박스(310B)의 내용은 박스(310A) 내에 내포된 것으로 도시되어 있으며, 주어진 물리적 개체에 대해 그 내용이 여러 번 각각 수행될 수 있음을 나타낸다. 방법(300)을 수행함으로써, 복잡한 개체 추적 데이터 구조(400)가 생성되고 성장되어, 그 위치 내에서 1회 이상 물리적 개체의 감지된 특징을 기록할 수 있다. 또한, 개체 추적 데이터 구조(400)는 감지된 신호에 액세스하는데에도 잠재적으로 사용될 수 있으며, 그 결과 특정 감지된 특징(또는 특징 변경)이 인식될 수 있다.
특정 시간에 그 위치 내의 특정 물리적 개체에 대해, 물리적 개체는 하나 이상의 센서에 의해 감지된다(동작 311). 즉, 물리적 개체에 의해 방사되었고/되었거나, (예컨대, 회절, 주파수 이동, 에코 등을 통해) 영향을 받았고/받았거나 이로부터 반사된 하나 이상의 물리적 신호가 하나 이상의 센서에 의해 수신된다. 도 2를 참조하면, 물리적 개체(211)가 특정한 시간에 두 센서(221, 222) 모두에 의해 감지되는 하나 이상의 특징을 갖는 것으로 가정한다.
이 시점에서 보안의 한 측면이 나타날 수 있다. 인식 컴포넌트(230)는, 특정 설정에 따라, 특정 물리적 개체와 연관된 감지된 특징, 특정 유형의 감지된 특징 및/또는 특정 시간에 생성된 센서 신호로부터 감지된 감지된 특징 또는 이들의 조합을 기록하는 것을 거부할 수 있는 보안 컴포넌트(231)를 가질 수 있다. 예를 들어, 아마도 인식 컴포넌트(230)는 그 위치 내에 있는 어떠한 사람의 감지된 특징도 기록하지 않을 것이다. 보다 세분화된 예로서, 아마도 인식 컴포넌트(230)는, 사람의 신원 또는 성별과 관련되며 특정 시간 프레임에서 생성된 센서 신호로부터의 일군의 사람의 감지된 특징을 기록하지 않을 것이다. 이러한 보안에 관한 더 많은 것들은 도 6을 참조하여 아래에서 다시 설명할 것이다.
허용되는 경우, 물리적 개체가 감지된 그 특정 시간의 적어도 근사치는 물리적 개체에 대응하는 개체 데이터 구조 내에 표현되며 이는 시공간 데이터 구조와 컴퓨팅 연관된다(computing-associated)(동작 312). 예를 들어, 도 4를 참조하면, 개체 데이터 구조(410A)는 물리적 개체(211)에 대응할 수 있고 시공간 데이터 구조(401)와 컴퓨팅 연관된다(라인(430A)으로 표현됨). 본 명세서 및 청구범위에서, 컴퓨팅 시스템이 어떤 수단에 의해 두 노드 사이의 연관을 검출할 수 있는 경우, 데이터 구조의 하나의 노드는 데이터 구조의 다른 노드와 "컴퓨팅 연관(computing-associated)"된다. 예를 들어, 포인터의 사용이 컴퓨팅 연관의 한 메커니즘이다. 데이터 구조의 노드는 또한, 데이터 구조의 다른 노드 내에 포함됨으로써, 그리고 컴퓨팅 시스템에 의해 연관으로서 인식되는 임의의 다른 메커니즘에 의해 컴퓨팅 연관될 수 있다.
시간 데이터(411)는 개체 데이터 구조(410A) 내에서 물리적 개체가 감지된(적어도 박스(310B)의 내용의 이 시간 반복에서) 시간의 적어도 근사를 나타낸다. 시간은 실시간(예를 들어, 원자 시계와 관련하여 표현됨) 일 수도 있고 인위적인 시간(artificial time)일 수도 있다. 예를 들어, 인위적인 시간은 실시간으로부터 오프셋되고/되거나 실시간과 다른 방식으로 표현되는 시간(예를 들어, 천년의 마지막 턴 이후의 초 또는 분)일 수 있다. 인위적인 시간은 또한, 각각의 감지에서 증가하는 단조롭게 증가하는 숫자로 표현되는 시간과 같은, 논리적 시간일 수 있다.
또한, 특정 시점에서의 특정한 물리적 개체의 감지(동작 311에서)에 기초하여, 이 환경은 특정한 물리적 개체가 특정 시간에 존재하는 특정 물리적 개체의 적어도 하나의 물리적 특징(및 아마도 복수 개)을 감지한다(동작 313). 예를 들어, 도 2를 참조하면, 인식 컴포넌트(230)는 센서(221 및 222)로부터 수신된 신호(예를 들어 화살표(229)로 표시됨)에 기초하여 물리적 개체(211)의 적어도 하나의 물리적 특징을 감지할 수 있다.
특정 물리적 개체의 감지된 적어도 하나의 물리적 특징은 특정 시간의 적어도 근사치와 컴퓨팅 연관된 방식으로 개체 데이터 구조(동작(314))에 표현된다. 예를 들어, 도 2에서, 감지된 특징 데이터는 감지된 특징 저장소(240)에 제공된다(화살표 239로 표시됨). 일부 실시예에서, 이 감지된 특징 데이터는 실질적으로 하나의 동작으로 개체 추적 데이터 구조(400)를 수정하기 위해 특정 시간의 적어도 근사치와 함께 제공될 수 있다. 즉, 동작(312) 및 동작(314)은 감지된 특징 저장소(240) 로의 기록 동작을 감소시키기 위해 실질적으로 동일한 시간에 수행될 수 있다.
또한, 허용된다면, 인식 컴포넌트가 감지된 특징을 감지하기 위해 의존하는 센서 신호는 감지된 특징과 컴퓨팅 연관되는 방식으로 기록된다(동작 315). 예를 들어, (예컨대, 시공간 데이터 구조(401) 내의) 감지된 특징 데이터(241)에 있는 감지된 특징은 감지된 신호 데이터(242)에 저장된 그러한 센서 신호(들)와 컴퓨팅 연관될 수 있다.
도 4를 참조하면, 제1 개체 데이터 구조는 이제 시간(411)과 컴퓨팅 연관되는 감지된 특징 데이터(421)를 갖는다. 이 예에서, 감지된 특징 데이터(421)는 물리적 개체의 2개의 감지된 물리적 특징(421A 및 421B)을 포함한다. 그러나, 생략 부호(421C)는 개체 데이터 구조(401) 내에 감지된 특징 데이터(421)의 일부로서 저장된 물리적 개체의 감지된 특징들이 더 있을 수 있음을 나타낸다. 예를 들면, 특정 시간에 감지된 임의의 주어진 물리적 개체에 대해 하나의 감지된 특징이 있을 수도 있고 또는 무수히 많은 감지된 특징이 있을 수도 있다.
경우에 따라, 감지된 특징이 다른 특징과 연관될 수도 있다. 예를 들어, 물리적 개체가 사람인 경우, 특징은 그 사람의 이름일 수 있다. 이 구체적으로 식별된 사람은 개체 데이터 구조 내에 표시되지 않은 특징에 기초하여 특성을 알았을 수 있다. 예를 들어, 사람은 조직 내에서 특정한 지위 또는 직위를 가질 수 있고, 어떠한 교육을 받았거나, 어떠한 단계에 있거나 할 수 있다. 개체 데이터 구조는, 특정 특징(예컨대, 이름)이 감지될 때, 데이터 구조에 대한 다른 계산 및/또는 쿼리의 풍부함을 더욱 확장하기 위해 해당 물리적 개체의 추가 특징(예컨대, 지위, 직위, 교육, 단계)을 가리킴으로써 확장될 수 있다.
감지된 특징 데이터는 또한 물리적 개체가 특정 시간(410A)에 실제로 감지된 특징을 가질 추정 확률을 나타내는 각각의 감지된 특징과 연관된 신뢰도를 가질 수 있다. 이 예에서, 신뢰도(421a)는 감지된 특징(421A)과 연관되며 물리적 개체(211)가 실제로 감지된 특징(421A)을 갖는다는 신뢰를 나타낸다. 마찬가지로, 신뢰도(421b)는 감지된 특징(421B)과 연관되며 물리적 개체(211)가 실제로 감지된 특징(421B)을 갖는다는 신뢰를 나타낸다. 생략 부호(421c)는 또한 임의의 수의 물리적 특징에 대해 표현된 신뢰도가 있을 수 있음을 나타낸다. 또한, (예를 들어, 확실하거나 또는 감지된 물리적 특징의 신뢰도를 측정하는 것이 중요하지 않거나 바람직하지 않은 경우) 신뢰도가 표시되지 않는 일부 물리적 특징이 있을 수 있다.
감지된 특징 데이터는 또한 그 신뢰도의 감지 특징을 감지하기 위해 인식 컴포넌트에 의해 사용된 센서 신호(들)에 대한 컴퓨팅 연관(예를 들어, 포인터)을 가질 수 있다. 예를 들어, 도 4에서, 센서 신호(들)(421Aa)는 감지된 특징(421A)과 컴퓨팅 연관되며, 시간(411)에서 감지된 특징(421A)을 감지하는데 사용된 센서 신호(들)를 나타낸다. 마찬가지로, 센서 신호(들)(421Bb)는 감지된 특징(421B)과 컴퓨팅 연관되며, 시간(411)에서 감지된 특징(421B)을 감지하는데 사용된 센서 신호(들)를 나타낸다. 생략 부호(421Cc)는 임의의 수의 물리적 특징의 컴퓨팅 연관성이 있을 수 있음을 나타낸다.
인식 컴포넌트(230)의 보안 컴포넌트(231)는 또한 특정 시간에 특정 특징을 감지하는데 사용된 센서 신호(들)를 기록할지 여부를 결정할 때 보안을 행사할 수 있다. 따라서, 보안 컴포넌트(231)는, 1) 특정 특징이 감지되었다고 기록할지 여부를 결정하고, 2) 특정 물리적 개체와 연관된 특징을 기록할지 여부를 결정하고, 3) 특정 시간에 감지된 특징을 기록할지 여부를 결정하고, 4) 센서 신호를 기록할지 여부를 결정하고, 기록하기로 결정하면 감지된 특징의 증거로 기록하기 위해 어느 신호를 기록할지 여부를 결정하는 등의 작업을 수행할 때 보안을 행사할 수 있다.
예를 들어, 추적중인 위치가 방이라고 가정한다. 이제 이미지 센서(예컨대, 카메라)가 실내의 무언가를 감지한다고 가정한다. 예를 들어, 감지된 특징은 이 "무언가(thing)"가 사람이라는 것이다. 또 다른 예시적인 감지된 특징은 "무언가"가 특정 이름의 사람이라는 것이다. "무언가"가 사람이라는 것은 신뢰도가 100%일 수 있지만, 그 사람이 특정 신원의 사람이라는 것은 신뢰도가 20%에 불과하다. 이 경우, 감지된 특징 세트는 보다 구체적인 유형의 또 다른 특징인 하나의 특징을 포함한다. 또한, 카메라로부터의 이미지 데이터는 특정 시간에 특정 물리적 개체의 감지된 특징의 기록에 의해 지시될 수 있다.
또 다른 예시적인 특징은 물리적 개체가 단순히 위치 내에 존재하거나 위치 내의 특정 위치에 존재한다는 것이다. 다른 예는 이것이 특정 시간(예컨대, 최근 또는 심지어 과거) 이후로 물리적 개체가 처음 등장했다는 것이다. 특징의 또 다른 예는 아이템이 무생물(예컨대, 99% 확실성), 공구(예컨대, 80% 확실성) 및 해머(예컨대, 60% 확실성)이라는 것이다. 또 다른 예시적인 특징은 물리적 개체가 그 위치에 더 이상 존재하지 않거나(예컨대, 부재), 특정 자세를 취하거나, 특정 방식으로 배향되거나, 또는 그 위치 내의 다른 물리적 개체와 소정의 위치 관계(예컨대, "테이블 상에" 또는 "의자 #5에 앉기")를 갖는다는 것이다.
어느 경우든, 임의의 위치 내의 물리적 개체의 수와 유형으로부터 감지할 수 있는 특징의 수와 유형은 무수히 많다. 또한, 전술한 바와 같이, 박스(310B)로 나타낸 바와 같이, 박스(310B) 내에서의 동작은 임의의 주어진 물리적 개체에 대해 잠재적으로 복수 회 수행될 수 있다. 예를 들어, 물리적 개체(211)는 센서(221 및 222) 중 하나 또는 둘 모두에 의해 검출될 수 있다. 도 4를 참조하면, 이 검출 결과는 개체 데이터 구조(410) 내에 표현되는 다음 검출 시간(또는 그 근사치)이 된다. 예를 들어, 시간(412)이 또한 개체 데이터 구조 내에 표현된다. 또한, (예컨대, 아마도 감지된 특징(422A 및 422B) 및 유연성을 나타내는 생략 부호(422C)를 포함하는) 감지된 특징(422)이 제2 시간(412)과 컴퓨팅 연관된다. 또한, 이들 감지된 특징은 또한 연관된 신뢰도(예컨대, 422a, 422b, 생략 부호(422c))을 가질 수 있다. 마찬가지로, 이들 감지된 특징은 또한 연관된 센서 신호(예컨대, 422Aa, 422Bb, 생략 부호(422Cc))를 가질 수 있다.
제2 시간에 감지된 특징은 제1 시간에 감지된 특징과 동일할 수도 있고 상이할 수도 있다. 신뢰도는 시간이 지나면 변할 수 있다. 예를 들어, 90%의 신뢰도를 가진 이미지를 통해 큰 방의 한쪽에서 시간 #1에 사람이 감지되고, 이 사람이 30 %의 신뢰도로 John Doe로 구체적으로 감지된다고 가정해 보자. 이제 0.1초 후인 #2 시간에 100%의 신뢰도로 John Doe가 50피트 떨어진 그 방의 다른 쪽에서 감지되고, John Doe가 시간 1에 있었다고 추정된 동일 위치에 사람이 남아 있다. 사람은 (적어도 사무실 환경에서는) 10 분의 1 초에 50 피트를 이동하지 않기 때문에, 이제는 시간 1에서 발견된 사람이 John Doe가 아니라고 결론 내릴 수 있다. 따라서, 그 사람이 시간 # 1에서 John Doe일 신뢰도는 0으로 감소한다.
도 4로 돌아가서, 생략 부호(413 및 423)는 물리적 개체가 그 위치 내에서 검출될 수 있는 횟수에 대한 제한이 없다는 것을 나타낸다. 후속 검출이 이루어지면, 물리적 개체에 대해 더 많이 학습될 수 있으므로, 감지된 특징은 감지된 각 특징에 대한 신뢰도를 적절히 조정하여 적절하게 추가(또는 제거)될 수 있다.
이제 박스(310A) 내에 머무르면서 박스(310B) 밖으로 이동하면, 임의의 주어진 물리적 개체에 대해, 상이한 시간에서의 특정 물리적 개체의 감지된 특징(들)의 비교(동작 321)에 기초하여 특정 개체 내에서의 특징 변화가 감지될 수 있다(동작 322). 이러한 감지된 변화는 인식 컴포넌트(230) 또는 계산 컴포넌트(250)에 의해 수행될 수 있다. 원하는 경우, 이들 감지된 변화도 기록될 수 있다(323). 예를 들어, 감지된 변화는 특정 시간과 컴퓨팅 연관되거나 또는 연관되지 않는 방식으로 개체 데이터 구조(410A)에 기록될 수 있다. 특징 변화를 나타내는 센서 신호는 매번 감지된 특징을 나타내는 센서 신호를 사용하여 재구성될 수 있다.
예를 들어, 위치 내의 물리적 개체의 존재를 나타내는 제1 시간에서의 감지된 특징 및 그 위치 내에 물리적 개체의 부재를 나타내는 제2 시간에서의 감지된 특징에 기초하여, 물리적 개체가 물리적 공간을 나왔다고 결론지을 수 있다. 반면에, 위치에서의 물리적 개체의 부재를 나타내는 제1 시간에서의 감지된 특징 및 그 위치 내에 물리적 개체가 존재함을 나타내는 제2 시간에서의 제2 특징에 기초하여, 물리적 개체가 그 위치에 진입했다고 결론지을 수 있다. 어떤 경우에는, 물리적 부재가 물리적 공간에 존재하는 것으로 처음 검출될 때까지 그 물리적 개체에 대해 물리적 공간에서의 부재가 조사되지 않는다.
이제 박스(310A)를 참조하면, 물리적 개체(들)의 특징(들)의 이러한 추적은 시간의 경과에 따라 다수의 개체에 대해 수행될 수 있다. 예를 들어, 박스(310A)의 내용은 물리적 공간(201) 내의 물리적 개체(211, 212, 213 또는 214) 각각에 대해 또는 물리적 공간(201)을 드나드는 다른 물리적 개체에 대해 수행될 수 있다. 도 4를 참조하면, 시공간 데이터 구조(401)는 (아마도 도 2의 제2 물리적 개체(212)와 연관된) 제2 개체 데이터 구조(410B)(라인 430B, 430C 및 430D로 표현됨), 제3 개체 데이터 구조(410C)(아마도 도 2의 제3 물리적 개체(213)와 연관됨), 및 제4 개체 데이터 구조(410D)(아마도 도 2의 제4 물리적 개체(214)와 연관됨)와 컴퓨팅 연관된다.
시공간 데이터 구조(401)는 또한 조건 및 동작을 정의하는 하나 이상의 트리거를 포함할 수 있다. 조건이 충족되면 해당 액션이 발생한다. 트리거는 시공간 데이터 구조의 어느 위치에나 저장될 수 있다. 예를 들어, 조건 및/또는 액션이 특정 개체 데이터 구조와 관련되면, 트리거는 대응하는 개체 데이터 구조에 저장될 수 있다. 조건 및/또는 액션이 특정 개체 데이터 구조의 특정 특징과 관련되면, 트리거는 대응하는 특징 데이터 구조에 저장될 수 있다.
생략 부호(410E)는 개체 데이터 구조의 수가 변경될 수 있음을 나타낸다. 예를 들어, 추적 데이터가 물리적 공간 내에 존재하는 물리적 개체에 대해 영원히 유지된다면, 그 위치 내에서 새로운 물리적 개체가 검출될 때마다 추가적인 개체 데이터 구조가 추가될 수 있고, 임의의 주어진 개체 데이터 구조는 물리적 공간 내에서 물리적 개체가 감지될 때마다 증대될 수 있다. 그러나, 적절한 편집, 저장 및/또는 탐색을 할 수 없을 정도로 개체 추적 데이터 구조(400)가 너무 커지지 않도록, (예컨대, 클린업(clean-up) 컴포넌트(260)에 의해) 가비지 콜렉션이 수행될 수 있다는 점을 상기하라.
박스(310A)의 외부에서, 연관된 개체 데이터 구조들의 비교(동작 331)에 기초하여 상이한 물리적 개체들 간의 물리적 관계가 감지될 수 있다(동작 332). 이들 물리적 관계는 아마도 감지된 물리적 관계를 갖는 관련 개체 데이터 구조 내에서 개체 추적 데이터 구조(401)(동작(333))에 기록될 수도 있고 및/또는 아마도 물리적 개체가 관계를 갖는 것으로 감지되는 시간과 연관될 수도 있다. 예를 들어, 시간의 경과에 따른 상이한 물리적 개체들에 대한 개체 데이터 구조를 분석하면, 특정 시간에, 물리적 개체가 다른 물리적 개체 뒤에 숨겨져 있다거나, 물리적 개체가 다른 물리적 개체의 감지를 방해한다거나, 또는 두 개의 물리적 개체가 결합되었거나 물리적 엔터티가 분리되어 복수의 물리적 개체를 생성하였다고 판단할 수 있다. 물리적 개체의 관계를 증명하는 센서 신호는 적절한 시간에 각 물리적 개체에 대해 감지된 특징을 입증하는 센서 신호를 사용하여 재구성될 수 있다.
특징 데이터 저장소(240)는 물리적 공간 내에서의 시간에 따른 물리적 개체의 표현에 대해 복잡한 함수 및 쿼리를 계산하기 위한 강력한 저장소로서 사용될 수 있다. 이러한 계산 및 쿼리는 계산 컴포넌트(250)에 의해 수행될 수 있다. 이것은 유용한 많은 실시예들을 가능하게 하고, 실제로 본 명세서에서 "앰비언트 컴퓨팅(ambient computing)"으로 언급되는 완전히 새로운 형태의 컴퓨팅을 도입한다. 센서가 있는 물리적 공간 내에서, 마치 공기 자체가 현실 세계에 대한 상태를 계산하고 감지하는 데 사용될 수 있는 셈이다. 마치 그 물리적 공간에 대해 크리스탈 볼이 생성되어 이로부터 그 위치에 대한 많은 것들과 그 이력을 쿼리 및/또는 계산할 수 있는 셈이다.
예를 들어, 사용자는 이제 객체가 바로 지금 소정의 물리적 공간 내에 있는지 또는 객체가 물리적 공간 내의 특정 시간에 있었는지 여부를 조회(query)할 수 있다. 사용자는 또한, 특정 특징(예컨대, 회사 내에서의 지위 또는 직위)을 가진 어떤 사람이 바로 지금 해당 객체 근처에 있는지 조회하고, 그 사람과 통신하여 그 객체를 사용자에게 가져오게 할 수 있다. 사용자는 물리적 개체들 사이의 관계에 대해 조회할 수 있다. 예를 들어, 사용자는 누가 객체를 소유하고 있는지 조회할 수 있다. 사용자는 객체의 상태, 객체가 숨겨져 있는지 여부, 다른 객체가 그 객체의 뷰를 방해하고 있는지에 대해 조회할 수도 있다. 사용자는 물리적 개체가 물리적 공간 내에 처음 나타났을 때, 나갈 때 등을 조회할 수도 있다. 사용자는 또한, 조명이 꺼졌을 때, 시스템이 물리적 개체의 하나 이상의 특징을 확신하게 된 때를 조회할 수 있다. 사용자는 또한 객체의 특징을 검색할 수 있다. 사용자는 해당 위치에서 발생한 활동에 대해서도 조회할 수 있다. 사용자는 특정 유형의 물리적 개체가 해당 위치에 있는 평균 시간을 계산할 수 있거나, 물리적 개체가 향후 어느 시점에 있을지를 예상하거나 할 수 있다. 따라서, 풍부한 컴퓨팅 및 쿼리가 센서를 갖는 물리적 공간상에서 수행될 수 있다.
전술한 바와 같이, 컴퓨터 탐색가능한 그래프는 감지된 특징과 연관된 신호 세그먼트를 가질 수 있다. 도 5는 관심있는 신호 세그먼트를 효율적으로 렌더링하기 위한 방법(500)의 흐름도를 도시한 것이다. 먼저, 컴퓨팅 시스템이 감지된 특징의 탐색 가능한 그래프를 탐색하여 특정한 감지된 특징에 도달한다(동작 501). 예를 들어, 이 탐색은 자동으로 또는 사용자 입력에 응답하여 수행될 수 있다. 이 탐색은 계산의 결과일 수도 있고, 또는 단순히 관심있는 감지된 특징을 식별하는 것과 관련될 수도 있다. 다른 예로서, 탐색은 사용자 쿼리의 결과일 수 있다. 일부 실시예에서, 계산 또는 쿼리의 결과 복수의 감지된 특징이 탐색될 수 있다. 한 예로서, 컴퓨팅 시스템이 도 2의 감지된 특징(222A)을 탐색한다고 가정해 보자.
그러면 컴퓨팅 시스템은, 특정한 감지된 특징과 관련 센서 신호 사이의 컴퓨터 연관을 이용하여 그 특정한 감지된 특징과 컴퓨터 연관된 감지된 신호를 탐색한다(동작 502). 예를 들어, 도 2에서, 감지된 특징이 감지된 특징(222A)인 경우, 컴퓨터 연관은 신호 세그먼트(222Aa)를 탐색하는 데 사용된다.
마지막으로, 신호 세그먼트가 적절한 출력 장치 상에서 렌더링될 수 있다(단계 503). 예를 들어, 컴퓨팅 시스템이 도 1의 컴퓨팅 시스템(100)이면, 적절한 출력 장치는 출력 메커니즘(112A) 중 하나 이상일 수 있다. 예를 들어, 오디오 신호는 스피커를 사용하여 렌더링될 수 있고, 시각 데이터는 디스플레이를 사용하여 렌더링될 수 있다. 감지된 신호를 탐색한 후에 여러 가지 일이 발생할 수 있다. 사용자가 특정 신호 세그먼트를 재생할 수도 있고, 특징에 기여하는 복수의 신호 세그먼트 중에서 선택할 수도 있다. 뷰는 복수의 신호 세그먼트로부터 합성될 수 있다.
물리 세계에서 컴퓨팅이 수행되면, 새로운 유형의 앰비언트 계산이 가능하다. 그것은 컴퓨터가 바로 앰비언트 환경에서 사용 가능하고, 공기 자체 내에서 구체화되며, 그 공기와 접촉하는 임의의 지점에 있는 물리적 개체에 대한 계산을 수행할 수 있는 셈이다. 직장에서, 이 앰비언트 컴퓨팅을 사용하면 생산성이 크게 향상될 수 있다. 예를 들어, 사용자는 잘못 배치된 도구를 재빨리 찾을 수 있고, 또는 도구 가까이에 있는 동료와 통신하여 그 동료에게 도구를 찾아서 자신에게 가져오도록 요청할 수 있다. 또한, 앰비언트 컴퓨팅에 더하여, 관심있는 특정 시점에서 관심있는 특정 물리적 개체에 대한 관심 특징을 감지하는 데 사용된 센서 신호를 사람이 검토할 수도 있다. 그러나, 앰비언트 컴퓨팅의 책임있는 사용으로 인해 물리적 생산성을 향상시키는 시나리오의 수는 무한한다.
앰비언트 컴퓨팅의 원리를 도 2 내지 도 5와 관련하여 설명하였으므로, 이제 이러한 앰비언트 컴퓨팅의 환경에서 수행될 수 있는 보안 메커니즘을 도 6과 관련하여 설명할 것이다. 도 6은 물리적 공간에서 하나 이상의 센서에 의해 감지된 정보의 생성 또는 그에 대한 액세스를 제어하기 위한 방법(600)의 흐름도이다. 이 방법은 시간의 경과에 따른 물리적 공간에서 감지된 물리적 개체의 특징의 컴퓨터 탐색가능한 그래프를 생성하는 것(동작 601)을 포함한다. 본 명세서에서 설명하는 원리는 이러한 컴퓨터 탐색가능한 그래프의 정확한 구조에 제한되지 않는다. 예시적인 구조 및 그 생성은 도 2 내지 도 4와 관련하여 설명하였다.
방법(600)은 또한 하나 이상의 기준에 기초하여 컴퓨터 탐색가능한 그래프의 노드의 생성 또는 이들 노드에 대한 액세스를 제한하는 것(동작 602)을 포함한다. 따라서, 컴퓨터 탐색 가능한 그래프에 보안이 적용된다. 화살표(603 및 604)는 그래프를 생성하고 그 노드의 생성/노드에 대한 액세스를 제한하는 프로세스가 연속적인 프로세스일 수 있음을 나타낸다. 그래프에는 노드가 계속 추가될 수도 있고 이로부터 노드가 계속 제거될 수도 있다. 또한, 노드의 생성 가능성이 있을 때마다 생성 제한을 고려할 수 있다. 액세스의 제한은 그래프의 노드가 생성될 때 또는 그 이후의 임의의 시점에서 결정될 수 있다. 제한의 예로는, 예를 들어 감지된 물리적 개체의 예상 아이덴티티, 감지된 물리적 개체의 감지된 특징 등이 있다.
컴퓨터 탐색가능한 그래프의 노드에 대한 액세스를 허가할지 여부를 결정함에 있어서, 각 노드에 대한 액세스 기준이 있을 수 있다. 그러한 액세스 기준은 명시적일 수도 있고 암시적일 수도 있다. 즉, 액세스될 노드에 대해 명시적인 액세스 기준이 없는 경우, 아마도 액세스 기준의 디폴트 설정이 적용될 수 있다. 임의의 주어진 노드에 대한 액세스 기준은 임의의 방식으로 구성될 수 있다. 예를 들어, 일 실시예에서, 노드에 대한 액세스 기준은 노드와 함께 컴퓨터 탐색가능한 그래프에 저장될 수 있다.
액세스 제한은 또한 요청된 액세스 유형에 기초한 제한을 포함할 수 있다. 예를 들어, 계산 액세스는 노드가 직접 액세스되지 않고 계산에 사용된다는 것을 의미한다. 노드의 내용을 읽는 직접 액세스는 제한될 수 있는 반면에, 노드의 정확한 내용을 보고하지 않는 계산 액세스는 허용될 수 있다.
액세스 제한은 액세스된 노드의 유형에 기초할 수도 있다. 예를 들어, 컴퓨터 탐색가능한 그래프의 특정한 개체 데이터 구조 노드에 대한 액세스에 제한이 있을 수 있다. 예를 들어, 특정한 개체 데이터 구조 노드가 물리적 공간에서 특정 개인의 탐지를 나타내는 경우, 액세스가 거부될 수 있다. 또한 컴퓨터 탐색가능한 그래프의 특정 신호 세그먼트 노드에 대한 액세스에 제한이 있을 수 있다. 일례로, 한 개인이 주어진 시간에 소정 위치에 있었다고 판단할 수는 있지만, 그 위치에서의 그 사람의 비디오 녹화를 검토할 수는 없다. 액세스 제한은 누가 액세스 요청자인지에 따라 달라질 수 있다.
컴퓨터 탐색가능한 그래프의 특정한 감지된 특징 노드의 생성을 제한할지 여부를 결정함에 있어서, 다양한 기준이 고려될 수 있다. 예를 들어, 컴퓨터 탐색가능한 그래프의 특정 신호 세그먼트 노드의 생성에 제한이 있을 수 있다.
도 7은 물리적 공간에서 감지된 특징의 컴퓨터 탐색가능한 그래프를 생성하는 것(동작 701)과 컴퓨터 탐색가능한 그래프의 프루닝(동작 702)이 있을 수 있음을 보여주는 반복 흐름(700)을 도시한 것이다. 이들 동작은 (화살표(703 및 704)에 의해 표현되는 바와 같이) 동시에 및 연속적으로 발생하여 감지된 특징의 컴퓨터 탐색가능한 그래프를 관리 가능한 크기로 유지할 수 있다. 컴퓨터 탐색가능한 그래프가 어떻게 생성될 수 있는지(동작(701)으로 표현됨)에 대해서는 본 명세서에서 충분히 설명하였다.
이제, 컴퓨터 탐색가능 그래프(computer-navigable graph)의 하나 이상의 노드를 제거하기 위해 컴퓨터 탐색가능한 그래프(computer-navigable graph)가 어떻게 프루닝될 수 있는지에 중점을 두어 설명할 것이다(동작 702). 컴퓨터 탐색가능한 그래프의 어떠한 노드도 제거될 수 있다. 예를 들어, 물리적 개체 데이터 구조의 감지된 특징은 특정 시간 또는 시간 그룹에 대해 제거될 수 있다. 물리적 개체 데이터 구조의 감지된 특징은 또한 모든 시간에 대해 제거될 수도 있다. 물리적 개체 데이터 구조의 하나 이상의 감지된 특징은 임의의 주어진 시간 또는 임의의 시간 그룹에 대해 제거될 수 있다. 또한, 물리적 개체 데이터 구조는 어떤 경우에는 완전히 제거될 수 있다.
예를 들어, 물리적 그래프가 물리학 법칙으로는 불가능한 것을 나타내는 경우, 노드 제거가 일어날 수 있다. 예를 들어, 주어진 객체는 동시에 두 장소에 있을 수 없으며, 이 객체는 이동이 어렵거나 불가능한 환경에서 짧은 시간 내에 상당한 거리를 이동할 수 없다. 따라서, 물리적 개체가 한 위치에서 확실하게 추적되는 경우, 동일한 물리적 개체가 다른 위치에 있다고 표현되는 신뢰도가 더 낮은 어떠한 물리적 개체 데이터 구조도 삭제될 수 있다.
물리적 개체의 감지된 특징에 대해 보다 높은 신뢰도가 얻어지면 노드 제거가 일어날 수도 있다. 예를 들어, 한 위치 내의 물리적 개체의 감지된 특징이 100% 확실한 것으로 결정되면, 그 물리적 개체의 감지된 특징의 신뢰도는 이전의 모든 시간에 대해 100%로 해석하도록 업데이트될 수 있다. 또한, 물리적 개체에 적용 가능하지 않은 것으로 알려진 (즉, 신뢰도가 0으로 감소되거나 무시할 수 있는) 감지된 특징은 그 물리적 개체에 대해 제거될 수 있다.
또한, 컴퓨터 탐색가능한 그래프의 일부 정보는 단순히 너무 오래되어서 유용하지 않을 수도 있다. 예를 들어, 물리적 개체가 상당한 시간 동안 실체 공간에서 관측되지 않아 물리적 개체에 대한 이전의 인식이 더 이상 관련없게 된 경우, 전체 물리적 개체 데이터 구조가 제거될 수 있다. 또한, 오래된 물리적 개체의 검출은 제거되지만, 물리적 개체 데이터 구조는 보다 최근의 검출을 반영하도록 유지될 수 있다. 따라서, 컴퓨터 탐색가능한 그래프의 클렌징(또는 프루닝)은 내적 분석(intrinsic analysis) 및/또는 외부 정보(extrinsic information)를 통해 수행될 수 있다. 이 프루닝은 낮은 품질의 정보를 제거하고 더 많은 관련 정보를 저장할 공간을 확보하여 컴퓨터 탐색 가능 그래프에 표시되는 정보의 품질을 향상시킨다.
따라서, 본 명세서에 설명된 원리들은 물리적 세계의 컴퓨터 탐색가능한 그래프를 허용한다. 그래프는 검색 및 조회가 가능하므로 검색 및 쿼리, 기타 계산을 현실 세계에서 수행할 수 있다. 그러한 환경에 보안이 추가로 부과될 수 있다. 마지막으로, 그래프는 클렌징과 프루닝을 통해 관리 가능한 크기로 유지될 수 있다. 따라서, 컴퓨팅에서 새로운 패러다임이 달성되었다.
전술한 물리적 공간의 컴퓨터 탐색가능한 그래프는 광범위한 응용 및 기술적 성취를 가능하게 한다. 이제 이러한 응용 중 두 가지를 설명한다. 첫 번째는 현실 세계에서 관측하고, 추론하고, 잠재적으로 행동하는 사용자의 능력을 증폭시키는 리얼리티 에이전트이다. 두 번째는 사용자가 현실 세계에서 발생할 수 있는 물리적 조건을 표현할 수 있게 하는 시스템으로, 물리적 조건이 충족될 경우 사용자가 미래에 영향을 미칠 수 있다. 어느 경우든, 자연어 해석을 통해 리얼리티 에이전트에게 명령을 내리고/내리거나 미래에 액션을 취할 물리적 조건을 표현할 수 있다.
도 8은 에이전트(본 명세서에서는 "리얼리티 에이전트"라고도 함)가 현실 세계 관측에 기초하여 액션을 취하는 방법의 흐름도이다. 도 9는 에이전트(910)에 대한 예시적인 동작 환경(900)을 도시한 것이다. 에이전트(910)가 도 8의 방법(800)을 수행할 수 있기 때문에, 도 9의 환경(900)을 자주 참조하여 도 8을 설명할 것이다. 에이전트는, 예를 들어, 컴퓨팅 시스템에서 실행되는 컴포넌트일 수 있다.
도 8의 방법(800)에 따르면, 에이전트가 사용자로부터 수신된 하나 이상의 명령을 해석한다(동작 801). 예를 들어, 도 9에서, 사용자(901)는 화살표(902 및 903)로 나타낸 바와 같이 명령을 내린다. 이들 명령은 자연어 명령일 수 있다(예컨대, 사용자가 명령을 말한다). 이 경우, 자연어 명령은 화살표(902)로 표시되고 자연어 엔진(911)에 의해 에이전트(910)에서 수신된다. 본 명세서에서 설명하는 원리는 자연어 명령 해석이 어떻게 일어나는지에 국한되지 않는다. 어쨌든 자연어 명령(902)은 자연어 엔진(911)에 의해(화살표 903에 의해 표시된 바와 같이) 컴퓨터 판독 가능 명령으로 해석된다.
도 8의 방법(800)에 따르면, 에이전트는 물리적 그래프에 대해 적어도 하나의 쿼리를 형성함으로써 명령(들)에 응답한다(동작 802). 예를 들어, 도 9에서, 쿼리 생성기(912)는 물리적 그래프(920)에 대해 발행될 다수의 쿼리를 생성할 수 있다. 물리적 그래프(920)는 물리적 공간 내의 하나 이상의 물리적 개체의 상태를 나타내고 다수의 센서에 의해 관측된다. 이러한 물리적 그래프(920)의 보다 구체적인 예는 도 1 내지 도 4와 관련하여 위에서 설명하였다.
도 8의 방법(800)에 따르면, 에이전트는 물리적 그래프(또는 동작)에 대해 하나 이상의 쿼리를 발행한다(동작 803). 예를 들어, 도 9에서, 쿼리 생성기(912)가 화살표(904)로 나타낸 바와 같이 물리적 그래프(920)에 쿼리를 발행한다. 물론, 쿼리에 대한 응답은 물리적 그래프(920)로부터 다시 에이전트에 의해 수신된다(동작 804). 쿼리를 제출하고(동작 803) 응답을 수신하는(동작 804) 프로세스는 하나의 간단한 요청 및 응답에서 발생할 필요는 없지만, 물리적 그래프(920)와의 복잡한 상호 작용을 나타낼 수 있다. 예를 들어, 하나의 쿼리에 대한 응답은 하나 이상의 추가 쿼리를 생성하는 데 사용될 수 있다. 어떤 경우든, 응답은 에이전트에 의해 액션 식별자(913)에서 수신된다.
도 8의 방법(800)에 따르면, 에이전트는 쿼리 응답에 응답하여 취할 액션(들)를 식별한다(동작 805). 이러한 액션은, 사용자로부터 수신된 명령에서 요청된 정보를 사용자에게 통지하는 것, 신호 세그먼트를 사용자에게 렌더링하는 것, 물리적 세계에 대해 계산하고 사용자에게 결과를 제공하는 것, 다른 사람 및/또는 이들의 대리인과 통신하는 것 등과 같은 가상 액션을 포함할 수 있다. 그러나, 이러한 액작은 물리적 액션을 포함할 수도 있다.
도 8의 방법(800)에 따르면, 에이전트는 액션(들)이 개시되도록 할 수 있다(동작(806)). 예를 들어, 도 9에서, 액션 식별자(913)는 액션을 취하도록 액션 에이전트(914)에게 신호를 보낸다(화살표(906)로 나타냄). 액션 에이전트(914)는 가상 액션(이전 단락에서 제공된 예들)을 수행할 수도 있고 물리적 액션을 실제로 수행하여 물리적 작업에 영향을 줄 수도 있다.
예를 들어, 사용자가 리얼리티 에이전트에게 특정 작업장에 유출물이 있는지 물어보고, 만약 있다면 해당 지역을 출입금지하도록 하는 명령을 내린다고 가정해 보자. 리얼리티 에이전트는 그 작업장의 물리적 그래프를 조회하여 누출을 확인한 다음, 드론이나 로봇을 해당 지역으로 파견하여 개인이 그 지역으로 들어가지 못하게 할 수 있다.
물리적 액션은 즉각적이지 않을 수도 있지만, 미래에 어떠한 액션을 취할 일부 물리적 조건을 설정하는 것을 포함할 수 있다. 예를 들어, 그러한 물리적 조건은 특정 위치에서 적어도 하나의 식별된 물리적 개체의 물리적 존재 또는 부재를 포함할 수 있다. 이에 더하여 또는 이에 갈음하여, 그러한 물리적 조건은 물리적 활동의 발생 또는 부재를 포함할 수 있다. 이에 더하여 또는 이에 갈음하여, 그러한 물리적 조건은 둘 이상의 물리적 개체 사이의 물리적 관계의 존재 또는 부재를 포함할 수 있다.
도 10은 하나 이상의 동작을 수행하기 위한 하나 이상의 물리적 조건을 설정하는 방법(1000)의 흐름도를 도시한 것이다. 방법(1000)은 물리적 조건을 설정하는 것을 포함한다(동작 1001). 이 물리적 조건은 리얼리티 에이전트가 명령에 대해 어떤 액션을 취하는 것(예컨대, 도 9의 액션 엔진(914)을 통해 도 8의 동작(806))의 일부로서 설정될 수 있다. 그러나, 물리적 조건의 설정은 대안적으로 사용자로부터의 직접 명령에 의해 수행되었을 수도 있다. 또한, 그러한 명령은 자연어 엔진에 의해 해석되는 자연어 명령일 수도 있다. 따라서, 리얼리티 에이전트(910)는 또한 미래에 어떤 액션을 취할 물리적 조건을 직접 설정하는데 사용될 수 있다.
시스템(예컨대, 아마도 리얼리티 에이전트(910))은 또한 물리적 조건의 발생시 취할 액션을 식별한다(동작 1002). 동작(1002)은 물리적 조건의 설정(1001)과 시간적 관계없이 나타나는데, 이는 그러한 액션의 식별이 물리적 조건의 발생 이전에 발생할 수도 있고/있거나 물리적 조건의 발생에 응답하여 이루어질 수도 있기 때문이다. 따라서, 동작(1002)은 동작(1001) 이전에 가능한 일찍 발생할 수도 있고, 물리적 조건의 검출 후에 발생할 수도 있으며(판정 블록(1004)에서 "예"), 또는 이 둘 모두일 수도 있다. 취할 액션은 시스템에 의해 결정될 수도 있고 사용자가 표시할 수도 있다.
물리적 조건이 설정되면(동작 1001), 시스템은 물리적 조건이 임박했는지 또는 발생했는지 감시한다(동작 1003). 물리적 조건이 발생 또는 임박했다고 검출되면(결정 블록 1004에서 "예"), 액션이 취해진다(동작 1005). 이러한 액션은 하나 이상의 개인 또는 시스템에게 물리적 조건이 발생했거나 임박했다고 경고하는 것, 물리적 조건에 대해 하나 이상의 개인과 소통하는 것, 신호 세그먼트를 제시하는 것, 또는 다른 가상 액션들과 같은 가상 액션일 수 있다. 액션은, (가능성이 더 높아보이는 물리적 조건을 위해) 물리적 조건이 발생하는 것을 회피하는 것(또는 권장하는 것)과 같은 물리적 액션일 수 있다. 그러한 액션은 물리적 조건의 발생을 다루기 위해 로봇이나 드론을 파견하는 것을 포함할 수 있다. 유출 사례에서, 사용자는 리얼리티 에이전트에게 유출을 감시하도록 지시하고, 유출이 발생하는 경우, 작업자들이 해당 영역에 들어가지 못하도록 하고 안전 팀에 알리는 등의 구체적인 물리적 액션을 취할 수 있다.
따라서, 본 명세서에 기술된 원리는 현실 세계의 일부분의 그래프를 평가함으로써 사용자가 한 질의 및 명령에 응답하는 리얼리티 에이전트를 제공한다. 일부 실시예에서, 리얼리티 에이전트는 사용자가 한 질의 및 명령에 응답하여 현실 세계에 영향을 미칠 수도 있다. 에이전트는 현실 세계 자체에서 사용자의 확장이 된다. 에이전트는 현실 세계 정보 및 사용자가 흔히 할 수 있는 활동을 관측할 수 있는 능력을 더 많이 갖고 있다. 에이전트는 이러한 현실 세계 정보를 기억하고 그러한 정보에 대해 추론할 수 있는 능력을 더 많이 갖고 있다. 마지막으로, 에이전트는 잠재적으로 현실 세계의 정보와 이에 대한 추론을 기반으로 현실 세계에서 물리적 액션을 취할 수 있는 능력을 더 많이 갖고 있다. 또한, 본 명세서에 설명된 원리는, 모든 물리적 조건의 발생에 대해 현실 세계를 관측하고, 물리적 조건에 대한 응답으로 임의의 (가상 또는 물리적) 동작을 수행하는 메커니즘을 제공한다. 따라서 사용자는 액션을 취할 현실 세계를 표현함으로써 현실 세계의 미래에 영향을 줄 수 있게 된다.
본 발명은 그 사상 또는 본질적인 특성을 벗어나지 않고 다른 특정 형태로 구체화될 수 있다. 기술된 실시예들은 모든 면에서 제한적인 것이 아니라 단지 예시적인 것으로 이해해야 한다. 그러므로, 본 발명의 범위는 전술한 설명이 아니라 첨부된 청구 범위에 의해 표시된다. 청구 범위와 균등한 의미 및 범위 내에있는 모든 변경은 이 범위 내에 포함되어야 한다.

Claims (10)

  1. 컴퓨팅 시스템으로서,
    하나 이상의 프로세서와,
    상기 하나 이상의 프로세서에 의해 실행될 경우에, 상기 컴퓨팅 시스템으로 하여금 에이전트를 개시 및/또는 작동하게 하도록 구성된 컴퓨터 실행가능한 명령어가 저장되어 있는 하나 이상의 컴퓨터 판독가능 매체를 포함하되,
    상기 에이전트는,
    사용자로부터의 하나 이상의 명령을 해석하고,
    복수의 센서에 의해 관측되는 물리적 공간 내의 하나 이상의 물리적 개체의 상태를 나타내는 물리적 그래프에 대해 적어도 하나의 쿼리를 형성하는 것과,
    상기 물리적 그래프에 대해 상기 적어도 하나의 쿼리를 발행하는 것과,
    상기 물리적 그래프에 대한 상기 적어도 하나의 쿼리에 대한 하나 이상의 응답에 대응하여 취할 액션을 식별하는 것
    을 수행함으로써, 상기 하나 이상의 명령 중 적어도 하나의 명령에 응답하도록 구성되는
    컴퓨팅 시스템.
  2. 제1항에 있어서,
    상기 에이전트는 자연어(natural language) 엔진을 포함하고, 상기 사용자로부터의 하나 이상의 명령은 자연어 명령을 포함하는,
    컴퓨팅 시스템.
  3. 제1항에 있어서,
    상기 에이전트는 하나 이상의 물리적 액션이 수행되게 하도록 구성된 물리적 액션 엔진을 포함하고, 상기 식별된 액션은 물리적 액션을 포함하는,
    컴퓨팅 시스템.
  4. 제1항에 있어서,
    상기 식별된 액션은, 상기 물리적 그래프 내에서 상태가 달성되면 액션이 트리거되도록, 상기 물리적 그래프 내에 트리거를 생성하는 것을 포함하는,
    컴퓨팅 시스템.
  5. 제1항에 있어서,
    상기 식별된 액션은 상기 사용자로부터의 하나 이상의 명령 중 상기 적어도 하나의 명령에서 요청된 정보를 상기 사용자에게 통지하는 것인,
    컴퓨팅 시스템.
  6. 제1항에 있어서,
    상기 식별된 액션은 상기 사용자에게 신호 세그먼트를 렌더링하는 것을 포함하는,
    컴퓨팅 시스템.
  7. 제1항에 있어서,
    상기 식별된 액션은 한 명 이상의 다른 사람과 통신하는 것인,
    컴퓨팅 시스템.
  8. 제1항에 있어서,
    상기 식별된 액션은 물리적 조건을 설정하는 것과, 상기 물리적 조건의 발생에 대해 상기 물리적 그래프를 계속 모니터링하는 것을 포함하는,
    컴퓨팅 시스템.
  9. 제1항에 있어서,
    상기 식별된 액션은 물리적 조건의 잠재적 발생에 대해 상기 물리적 그래프를 모니터링하는 것과, 상기 물리적 조건을 회피하거나 또는 권장(encourage)하도록 물리적 액션을 취하는 것을 포함하는,
    컴퓨팅 시스템.
  10. 에이전트 동작 방법으로서,
    에이전트에 의해, 사용자로부터의 하나 이상의 명령을 해석하는 단계와,
    상기 에이전트에 의해,
    복수의 센서에 의해 관측되는 물리적 공간 내의 하나 이상의 물리적 개체의 상태를 나타내는 물리적 그래프에 대해 적어도 하나의 쿼리를 형성하는 것과,
    상기 물리적 그래프에 대해 상기 적어도 하나의 쿼리를 발행하는 것과,
    상기 물리적 그래프에 대한 상기 적어도 하나의 쿼리에 대한 하나 이상의 응답에 대응하여 취할 액션을 식별하는 것
    을 수행함으로써, 상기 하나 이상의 명령 중 적어도 하나의 명령에 응답하는 단계를 포함하는
    에이전트 동작 방법.
KR1020197021121A 2017-01-18 2018-01-11 물리적 그래프에 기초하여 액션을 취하는 기법 KR20190107029A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762447790P 2017-01-18 2017-01-18
US62/447,790 2017-01-18
US15/436,686 US20180203881A1 (en) 2017-01-18 2017-02-17 Taking action based on physical graph
US15/436,686 2017-02-17
PCT/US2018/013232 WO2018136280A1 (en) 2017-01-18 2018-01-11 Taking action based on physical graph

Publications (1)

Publication Number Publication Date
KR20190107029A true KR20190107029A (ko) 2019-09-18

Family

ID=62841410

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197021121A KR20190107029A (ko) 2017-01-18 2018-01-11 물리적 그래프에 기초하여 액션을 취하는 기법

Country Status (16)

Country Link
US (1) US20180203881A1 (ko)
EP (1) EP3571640A1 (ko)
JP (1) JP2020505691A (ko)
KR (1) KR20190107029A (ko)
CN (1) CN110192209A (ko)
AU (1) AU2018210202A1 (ko)
BR (1) BR112019012808A2 (ko)
CA (1) CA3046332A1 (ko)
CL (1) CL2019001929A1 (ko)
CO (1) CO2019007636A2 (ko)
IL (1) IL267900A (ko)
MX (1) MX2019008497A (ko)
PH (1) PH12019550122A1 (ko)
RU (1) RU2019125863A (ko)
SG (1) SG11201905466YA (ko)
WO (1) WO2018136280A1 (ko)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9230560B2 (en) * 2012-10-08 2016-01-05 Nant Holdings Ip, Llc Smart home automation systems and methods
US9871865B2 (en) * 2013-07-11 2018-01-16 Neura, Inc. Physical environment profiling through internet of things integration platform
CN105659082B (zh) * 2013-10-21 2017-07-28 株式会社岛津制作所 全2维色谱仪用数据处理装置
US9594109B2 (en) * 2014-02-17 2017-03-14 Scadata, Inc. Monitoring system for electrical equipment failure and method
US9542648B2 (en) * 2014-04-10 2017-01-10 Palo Alto Research Center Incorporated Intelligent contextually aware digital assistants
US10154321B2 (en) * 2014-05-26 2018-12-11 Agt International Gmbh System and method for registering sensors used in monitoring-systems
US9547678B2 (en) * 2014-06-17 2017-01-17 Nant Holdings Ip, Llc Activity recognition systems and methods
US10592093B2 (en) * 2014-10-09 2020-03-17 Splunk Inc. Anomaly detection
US20160328522A1 (en) * 2015-05-08 2016-11-10 YC Wellness, Inc. Integration platform and application interfaces for remote data management and security
US11202172B2 (en) * 2015-10-29 2021-12-14 Stratacache Limited System and method for managing indoor positioning data
JP6365554B2 (ja) * 2016-01-14 2018-08-01 マツダ株式会社 運転支援装置
US10313382B2 (en) * 2016-03-29 2019-06-04 The Mitre Corporation System and method for visualizing and analyzing cyber-attacks using a graph model

Also Published As

Publication number Publication date
AU2018210202A1 (en) 2019-07-11
CO2019007636A2 (es) 2019-07-31
PH12019550122A1 (en) 2020-02-10
CL2019001929A1 (es) 2019-11-29
RU2019125863A (ru) 2021-02-19
BR112019012808A2 (pt) 2019-12-03
JP2020505691A (ja) 2020-02-20
US20180203881A1 (en) 2018-07-19
MX2019008497A (es) 2019-09-10
CN110192209A (zh) 2019-08-30
WO2018136280A1 (en) 2018-07-26
SG11201905466YA (en) 2019-08-27
EP3571640A1 (en) 2019-11-27
CA3046332A1 (en) 2018-07-26
IL267900A (en) 2019-09-26

Similar Documents

Publication Publication Date Title
EP3571638A1 (en) Automatic routing to event endpoints
US11410672B2 (en) Organization of signal segments supporting sensed features
KR20190103222A (ko) 자동화된 활동-시간 트레이닝 기법
US11070504B2 (en) Communication routing based on physical status
US10606814B2 (en) Computer-aided tracking of physical entities
US20200302970A1 (en) Automatic narration of signal segment
CN110192208B (zh) 共享物理图形的信号片段
US20180204096A1 (en) Taking action upon physical condition
KR20190107029A (ko) 물리적 그래프에 기초하여 액션을 취하는 기법
US20180203885A1 (en) Controlling creation/access of physically senses features
WO2018136313A1 (en) Automated movement orchestration
US20180203886A1 (en) Cleansing of computer-navigable physical feature graph