KR20220041911A - 이벤트 기반 레코딩 - Google Patents

이벤트 기반 레코딩 Download PDF

Info

Publication number
KR20220041911A
KR20220041911A KR1020227007241A KR20227007241A KR20220041911A KR 20220041911 A KR20220041911 A KR 20220041911A KR 1020227007241 A KR1020227007241 A KR 1020227007241A KR 20227007241 A KR20227007241 A KR 20227007241A KR 20220041911 A KR20220041911 A KR 20220041911A
Authority
KR
South Korea
Prior art keywords
event
implementations
devices
images
clip
Prior art date
Application number
KR1020227007241A
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 KR20220041911A publication Critical patent/KR20220041911A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/77Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4346Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream involving stuffing data, e.g. packets or bytes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)
  • Studio Devices (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

전자 디바이스는 이미지 센서, 하나 이상의 프로세서들, 및 명령들을 저장하는 메모리를 포함하고, 명령들은, 전자 디바이스의 구성 데이터에 기초하여 이벤트 레코딩 프로파일을 수신하고 ― 구성 데이터는 로케이션 유형 또는 전력 유형을 포함함 ― ; 이미지 센서에 의해 캡처된 장면의 복수의 이미지들을 수신하고; 장면의 복수의 이미지들 중 하나 이상에 기초하여 트리거 이벤트를 검출하고; 트리거 이벤트를 검출한 것에 대한 응답으로, 장면의 복수의 이미지들 중 하나 이상에서 관심의 오브젝트를 식별하고; 관심의 오브젝트를 포함하는 저장된 이미지들로부터 이벤트 클립을 생성하고 ― 이벤트 클립을 생성하는 단계는 이벤트 레코딩 프로파일에 기초하여 클립 길이를 구성하는 단계를 포함함 ― ; 그리고 디스플레이를 위해 이벤트 클립을 제공하기 위한 것이다.

Description

이벤트 기반 레코딩
[0001] 본 출원은, 2019년 9월 17일에 출원된 미국 가특허 출원 번호 제62/897,233호를 우선권으로 주장하며, 이로써 이 출원은 그 전체가 인용에 의해 포함된다.
[0002] 본 출원은 일반적으로 향상된 전력 및 대역폭 절감들을 제공하면서 관심의 이벤트들의 관련 비디오 클립들을 제공하는 전자 보조 디바이스(electronic assistant device)들 및 카메라들을 포함(그러나 이에 제한되지 않음)하는 전자 디바이스들에 관한 것이다.
[0003] 스트리밍 디바이스들이 점점 더 보편화되고 있다. 스트리밍 디바이스들의 수가 증가함에 따라, 증가된 스트리밍 수요들로 인해 대역폭 제한들이 더욱 중요해진다. 예컨대, 보안 카메라들 및 스트리밍 엔터테인먼트 서비스들이 장착된 단독-가구 홈(single-family home)은 특히 이러한 디바이스들이 하루 24시간 동안 고화질 비디오 데이터를 스트리밍하는 경우 홈의 인터넷 서비스 제공자에 의해 세팅된 홈의 월간 대역폭 할당량의 최대 한도에 쉽게 도달할 수 있다.
[0004] 대역폭 이슈들 외에도, 스트리밍은 또한 전력-집약적 프로세스일 수 있다. 전력 소모가 많은 스트리밍 디바이스들은 전기 요금에 부정적으로 영향을 미칠 수 있지만, 높은 전력 예산들은 또한 디바이스들이 크기 면에서 축소되고 휴대 가능하게 되는 능력에도 부정적으로 영향을 미친다. 전자 디바이스들이 더 소형화되고 모바일화됨에 따라, 연속적인 비디오 스트리밍과 같은 전력 소모가 많은 프로세스들을 지속적으로 지원하는 것이 어려워진다.
[0005] 연속적인 스트리밍 애플리케이션들에 의해 야기되는 대역폭 및 전력 이슈들에 대한 제안된 솔루션은 더욱 타겟팅된 스트리밍 접근법을 수반한다. 그러나 스트리밍 디바이스가 데이터를 캡처하여 이를 네트워크를 통해 송신할 수 있는 시나리오들을 제한함으로써, 디바이스 기능성과 관한 다양한 트레이드오프들이 발생한다. 예컨대, 보안 카메라는 대역폭 및 전력을 절감하기 위해 레코딩 및 스트리밍을 최소화하도록 설계될 수 있지만, 카메라 사용을 감소시키는 것은 중요한 보안-관련 이벤트들이 누락될 위험이 있다.
[0006] 따라서, 디바이스 기능성에 대한 영향들을 감소시키면서 대역폭 및 전력을 절감하기 위한 보다 효율적이고 정확하며 직관적인 방법들을 갖는 스트리밍 시스템들 및/또는 디바이스들이 필요하다. 이러한 시스템들, 디바이스들 및 방법들은 디바이스 기능성을 최적화하면서 타겟팅된 디바이스 동작에 대한 개선된 접근법을 제공함으로써 이벤트 식별, 카테고리화 및/또는 프리젠테이션을 위해 종래의 시스템들, 디바이스들 및 방법들을 선택적으로 보완하거나 대체한다.
[0007] 본원에서 설명된 개념들은 디바이스의 배치, 디바이스의 의도된 사용 및 디바이스가 시간이 지남에 따라 그의 주변들에 대해 학습한 것으로부터의 적응들에 기초하여 자체적으로 변경되는 동적 포뮬러들(dynamic formulas)의 사용을 포함한다. 포뮬러들은 패딩(예컨대, 관심의 오브젝트의 검출 이전 및 이후를 레코딩하는 시간량), 무활동(inactivity)(예컨대, 후속 활동을 포함하도록 이벤트를 계속하는 대신 이벤트를 종료하기 전에 대기하는 시간량), 최대 길이(예컨대, 디바이스가 레코딩을 중단하기 전에 이벤트가 얼마나 오래 지속될 수 있는지), 쿨-오프(cool-off)(예컨대, 오브젝트 검출들의 레이트 ― 이를 초과 시 이벤트의 레코딩이 중단됨 ―), 및/또는 오브젝트 필터들 및 우선순위(예컨대, 이벤트를 레코딩하기 위한 기준으로서 어떤 오브젝트들이 카운트될 수 있는지를 결정함)와 같은 조정 가능한 파라미터들을 구현함으로써 디바이스의 타겟팅된 동작들(예컨대, 이벤트들의 타겟팅된 레코딩)을 위해 사용된다. 이러한 조정 가능한 파라미터들은, (i) 디바이스의 로케이션(location)(예컨대, 실내, 실외, 어느 방 등), (ii) 디바이스의 목적(예컨대, 디바이스의 시야에 있는 것 및 사용자가 보고 싶어하는 것) 및/또는 (iii) 디바이스의 유형(예컨대, 유선-전력공급 또는 배터리-전력공급) 중 하나 이상에 기초한다.
[0008] 일 양상에서, 방법이 개시되며, 이 방법은, 이미지 센서를 갖는 전자 디바이스에서, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의한 실행을 위한 명령들을 저장하는 메모리를 포함하고, 명령들은, 전자 디바이스에 대한 이벤트 레코딩 프로파일을 획득하고 ― 이벤트 레코딩 프로파일은 전자 디바이스의 구성 데이터에 기초하며, 구성 데이터는 로케이션 유형 또는 전력 유형을 포함함 ― ; 장면의 복수의 이미지들을 이미지 센서로부터 획득하고 전자 디바이스 상에 저장하고; 장면의 복수의 이미지들 중 하나 이상에 기초하여 트리거 이벤트를 검출하고; 트리거 이벤트를 검출한 것에 대한 응답으로, 장면의 복수의 이미지들 중 하나 이상에서 관심의 오브젝트를 식별하고; 관심의 오브젝트를 포함하는 저장된 이미지들로부터 이벤트 클립을 생성하고 ― 이벤트 클립을 생성하는 것은 이벤트 레코딩 프로파일에 기초하여 클립 길이를 구성하는 것을 포함함 ― ; 그리고 디스플레이를 위해 이벤트 클립을 제공하기 위한 것이다.
[0009] 일부 구현들에서, 클립 길이를 구성하는 것은 패딩 값, 무활동 임계치 및/또는 최대 이벤트 길이를 세팅하는 것을 포함한다.
[0010] 일부 구현들에서, 클립 길이를 구성하는 것은 패딩 값을 선택하는 것을 포함하고; 패딩 값은 검출된 관심 오브젝트를 포함하는 복수의 이미지들 중 하나 이상에 선행하는 획득된 이미지들의 수에 대응하고; 그리고 이벤트를 생성하는 것은 검출된 관심 오브젝트를 포함하는 복수의 이미지들에 이미지들의 수를 추가하는 것을 포함한다.
[0011] 일부 구현들에서, 클립 길이를 구성하는 것은 무활동 임계치를 선택하는 것을 포함하고; 무활동 임계치는 관심의 오브젝트가 더 이상 검출되지 않는 획득된 이미지들의 수에 대응하고; 그리고 이벤트를 생성하는 것은 검출된 관심 오브젝트를 포함하는 복수의 이미지들에 이미지들의 수를 추가하는 것을 포함한다.
[0012] 일부 구현들에서, 클립 길이를 구성하는 것은 최대 이벤트 길이를 선택하는 것을 포함하고; 최대 이벤트 길이는 이벤트에 대한 이미지들의 최대 수에 대응하고; 그리고 이벤트를 생성하는 것은 이미지들의 최대 수에 도달 시에 이벤트를 종료하는 것을 포함한다.
[0013] 일부 구현들에서, 구성 데이터는 환경의 특정 영역에 대응하는 로케이션 유형을 포함하고; 그리고 이벤트 레코딩 프로파일에 기초하여 이벤트 길이를 구성하는 것은, 전자 디바이스가 로케이팅되는 환경의 특정 영역에 기초하여 패딩 값, 무활동 임계치, 및/또는 최대 이벤트 길이를 선택하는 것을 포함한다.
[0014] 일부 구현들에서, 구성 데이터는 전력 유형이고; 그리고 이벤트 레코딩 프로파일에 기초하여 이벤트 길이를 구성하는 것은, 전자 디바이스의 전력 유형이 유선-전력공급인지 아니면 배터리-전력공급인지에 기초하여 패딩 값, 무활동 임계치, 및/또는 최대 이벤트 길이를 선택하는 것을 포함한다.
[0015] 일부 구현들에서, 구성 데이터는 오브젝트 우선순위 데이터를 더 포함하고; 그리고 이벤트 레코딩 프로파일에 기초하여 이벤트 길이를 구성하는 것은, 오브젝트 우선순위 데이터에 따라 식별된 관심의 오브젝트의 우선순위에 기초하여 패딩 값, 무활동 임계치, 및/또는 최대 이벤트 길이를 선택하는 것을 포함한다.
[0016] 일부 구현들에서, 클립 길이를 구성하는 것은, 임계량의 시간 내에서 둘 이상의 오브젝트 검출들이 발생한 후 연속적인 오브젝트 검출들 사이에서 대기하는 시간량에 대응하는 쿨-오프 값을 세팅하는 것을 포함한다.
[0017] 일부 구현들에서, 클립 길이를 구성하는 것은, 이벤트 레코딩 프로파일과 연관된 값들의 조합에 따라 패딩 값, 무활동 임계치 및 최대 이벤트 길이를 세팅하는 것을 포함한다.
[0018] 일부 구현들에서, 트리거 이벤트를 검출하는 것은 장면의 복수의 이미지들 중 2개 이상의 분석에 기초하여 장면에서 모션을 검출하는 것을 포함한다.
[0019] 일부 구현들에서, 트리거 이벤트를 검출하는 것은 장면의 복수의 이미지들 중 하나 이상의 분석에 기초하여 장면에서 관심의 오브젝트를 검출하는 것을 포함한다.
[0020] 일부 구현들에서, 방법은 이벤트 클립을 이전에 생성된 이벤트 클립과 결합하여 결합된 이벤트 클립을 형성하는 것을 더 포함하고; 그리고 디스플레이를 위해 이벤트 클립을 제공하는 것은 디스플레이를 위해 결합된 이벤트 클립을 제공하는 것을 포함한다.
[0021] 다른 양상에서, 전자 디바이스는 이미지 센서; 하나 이상의 프로세서들; 및 명령들을 저장하는 메모리를 포함하고, 이 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 위에서 설명된 동작들의 임의의 조합을 수행하게 한다.
[0022] 다른 양상에서, 비-일시적 컴퓨터-판독 가능 저장 매체는 명령들을 저장하며, 이 명령들은, 이미지 센서 및 하나 이상의 프로세서들을 갖는 전자 디바이스에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 위에서 설명된 동작들의 임의의 조합을 수행하게 한다.
[0023] 다양한 설명된 구현들의 더 나은 이해를 위해, 유사한 참조 번호들이 도면들 전반에 걸쳐 대응하는 부분들을 지칭하는 다음의 도면들과 관련하여 아래의 구현들의 설명이 참조되어야 한다.
[0024] 도 1a는 일부 구현들에 따른 예시적인 환경이다.
[0025] 도 1b는 일부 구현들에 따른 대표적인 네트워크 아키텍처를 예시하는 블록도이다.
[0026] 도 2는 일부 구현들에 따른 예시적인 동작 환경의 블록도이다.
[0027] 도 3은 일부 구현들에 따라 예시적인 전자 디바이스를 예시하는 블록도이다.
[0028] 도 4는 일부 구현들에 따라 대표적인 서버 시스템을 예시하는 블록도이다.
[0029] 도 5는 일부 구현들에 따라 예시적인 이벤트 포뮬러들을 예시하는 블록도이다.
[0030] 도 6은 일부 구현들에 따라 대표적인 클라이언트 디바이스를 예시하는 블록도이다.
[0031] 도 7은 일부 구현들에 따라 예시적인 이벤트 프로세싱 시스템을 예시하는 블록도이다.
[0032] 도 8은 일부 구현들에 따른 예시적인 이벤트를 예시하는 도면이다.
[0033] 도 9는 일부 구현들에 따른 예시적인 결합된 이벤트를 예시하는 도면이다.
[0034] 도 10은 일부 구현들에 따라 이벤트를 디스플레이하기 위한 예시적인 사용자 인터페이스이다.
[0035] 도 11은 일부 구현들에 따라 구성 데이터를 획득하기 위한 예시적인 사용자 인터페이스이다.
[0036] 도 12는 일부 구현들에 따른 예시적인 이벤트 프로세싱 프로세스를 예시하는 흐름도이다.
[0037] 유사한 참조 번호들은 도면들의 수개의 뷰들 전반에 걸쳐 대응하는 부분들을 지칭한다.
[0038] 이제, 구현들에 대한 참조가 상세히 이루어질 것이며, 다양한 구현들의 예들은 첨부한 도면들에 예시된다. 다음의 상세한 설명에서, 다수의 특정한 세부사항들이 다양한 설명된 구현들의 완전한 이해를 제공하기 위해 기술된다. 그러나, 다양한 설명된 구현들이 이들 특정한 세부사항들 없이도 실시될 수 있다는 것은 당업자들에 자명할 것이다. 다른 경우들에서, 잘-알려진 방법들, 절차들, 컴포넌트들, 회로들, 및 네트워크들은 구현들의 양상들을 불필요하게 모호하게 하지 않기 위해 상세히 설명되지 않는다.
[0039] 카메라들 갖는 디바이스들 이를테면, 보안 카메라들, 초인종 카메라들 및 카메라들과 통합된 보조 디바이스들은 디바이스들이 설치되거나 다른 방식으로 로케이팅된 장면들(때로는 시야들로서 지칭됨)로부터 시각적 입력들을 수집하는데 사용될 수 있다. 일부 구현들에서, 디바이스들은 비디오 데이터의 클립들(본원에서 이벤트들로서 지칭됨)을 레코딩하고 서버 시스템, 허브 또는 다른 네트워크-연결 디바이스를 통해 환경의 점유자에 의한 뷰잉(viewing)을 위한 클립들을 제공한다. 일부 구현들에서, 어떤 이벤트들을 레코딩할지, 뷰잉을 위해 어떤 이벤트들을 제공할지 그리고 이벤트 비디오 클립들을 어떻게 구성할지를 결정하는 데 사용되는 파라미터들은 디바이스의 로케이션, 목적, 그리고 전력 유형을 포함(그러나 이에 제한되지 않음)하는 디바이스의 여러 양상들에 기초하여 수정된다.
[0040] 도 1a는 일부 구현들에 따른 예시적인 환경(100)이다. "환경"이라는 용어는 하나 이상의 네트워크 연결 또는 상호연결 전자 디바이스들(예컨대, 보안 카메라들, 음성 보조 디바이스들 등과 같은 하나 이상의 지원 기능들을 수행하는 디바이스들)을 포함하는 임의의 공간을 지칭할 수 있다. 예시적인 환경들은 홈들(예컨대, 단독-가구 주택들, 두 가구 주택(duplexe)들, 타운홈들, 공동 아파트 빌딩들), 호텔들, 소매점들, 사무실 빌딩들, 산업 빌딩들, 마당들, 공원들 및 보다 일반적으로 임의의 생활 공간 또는 작업 공간을 포함한다. 환경들은 때로는 본원에서 홈 환경들, 홈들 또는 환경들로서 지칭될 수 있다.
[0041] 또한 "사용자", "고객", "설치자", "집주인", "점유자", "손님", "임차인", "임대인", "수리원" 등의 용어들은 본원에서 설명된 일부 특정 상황들의 맥락에서 행동하는 사람 또는 사람들을 지칭하는데 사용될 수 있다. 이러한 참조들은 그러한 액션들을 수행하거나 그렇지 않으면 환경 내에 또는 환경에 근접하여 존재하는 사람 또는 사람들에 관하여 본 교시내용들의 범위를 제한하지 않는다. 따라서 예컨대, "사용자", "고객", "구매자", "설치자", "가입자" 및 "집주인"이라는 용어들은 단독-가구 거주 주택의 경우 구매 판단 내리고, 디바이스(예컨대, 네트워크 연결 전자 디바이스)를 구매하고, 디바이스를 설치하고, 디바이스를 구성하고 그리고/또는 디바이스를 사용하는 동일한 사람을 종종 지칭한다. 그러나, 임대인-임차인 환경과 같은 다른 시나리오들에서, 고객은 디바이스를 구매하는 것과 관련된 임대인일 수 있고, 설치자는 지역 아파트 감독관일 수 있고, 제1 사용자는 임차인일 수 있으며, 제2 사용자는 다시, 원격 제어 기능과 관련된 임대인일 수 있다. 중요하게, 액션을 수행하는 사람의 아이덴티티가 구현들 중 하나 이상에 의해 제공되는 특정한 이점과 밀접한 관계가 있을 수 있지만, 그러한 아이덴티티는, 그 특정한 아이덴티티들을 갖는 그 특정한 개인들로 본 교시내용들의 범위를 필수적으로 제한하는 것으로서, 후속하는 설명들에서 해석되지 않아야 한다.
[0042] 환경(100)은 다양한 통합된 디바이스들(본원에서 "연결된", "네트워크 연결된", "상호연결된" 또는 "스마트" 디바이스들로서 또한 지칭됨)을 갖는 구조(150)(예컨대, 집, 사무실 빌딩, 차고 또는 모바일 홈)를 포함한다. 도시된 구조(150)는 벽들(154)을 통해 서로 적어도 부분적으로 분리된 복수의 방들(152)을 포함한다. 벽들(154)은 내벽들 또는 외벽들을 포함할 수 있다. 각각의 방은 바닥(156)과 천장(158)을 더 포함할 수 있다. 네트워크 연결 디바이스들은 또한 아파트, 콘도미니엄 또는 사무실 공간과 같이 전체 구조(150)를 포함하지 않는 환경(100)에 통합될 수 있다. 일부 구현들에서, 디바이스들은, 모바일 디바이스들(104)(예컨대, 태블릿들, 랩톱들, 모바일 폰들, 스마트폰들 등), 디스플레이 디바이스들(106), 미디어 캐스팅 또는 스트리밍 디바이스들(108), 온도 조절기들(122), 홈 보호 디바이스들(예컨대, 연기, 화재 및 이산화탄소 검출기들), 연결된 초인종/카메라들(126), 연결된 잠금세트들(128), 연결된 경보 시스템들(130) 및 카메라들(132)을 포함하는 홈 보안 디바이스들(124)(예컨대, 모션 검출기들, 창 및 문 센서들 및 경보들), 연결된 벽 스위치 트랜스폰더들(136), 연결된 기기들(138), WiFi 통신 디바이스들(160)(예컨대, 허브들, 라우터들, 연장기들), 연결된 홈 청소 디바이스들(168)(예컨대, 진공청소기들 또는 바닥 청소기들), 통신 및 제어 허브(180), 및/또는 전자 보조 디바이스들(190)(본원에서 음성 보조 디바이스들 및 디스플레이 보조 디바이스들로서 또한 지칭됨) 중 하나 이상을 포함한다.
[0043] 하나 이상의 미디어 디바이스들이 환경(100)에 배치되어 로컬로 저장되거나 원격 콘텐츠 소스(예컨대, 콘텐츠 호스트(들)(114))로부터 스트리밍되는 미디어 콘텐츠에 대한 액세스를 사용자들에게 제공한다. 일부 구현들에서, 미디어 디바이스들은 미디어 콘텐츠를 청중에게 직접 출력/디스플레이/플레이하는 미디어 출력 디바이스(106), 및 하나 이상의 네트워크들을 통해 수신된 미디어 콘텐츠를 미디어 출력 디바이스들(106)에 스트리밍하는 캐스트 디바이스들(108)을 포함한다. 미디어 출력 디바이스들(106)의 예들은 텔레비전(TV) 디스플레이 디바이스들, 음악 플레이어들 및 컴퓨터 모니터들을 포함한다(그러나 이에 제한되지 않음). 캐스트 디바이스들(108)의 예들은 미디어 스트리밍 박스들, 캐스팅 디바이스들(예컨대, GOOGLE CHROMECAST 디바이스들), 셋-톱 박스들(STB), DVD 플레이어들, 및 TV 박스들을 포함한다(그러나 이에 제한되지 않음).
[0044] 예시적인 환경(100)에서, 미디어 출력 디바이스들(106)은 하나 초과의 로케이션에 배치되고, 각각의 미디어 출력 디바이스(106)는 개개의 캐스트 디바이스(108)에 커플링되거나 임베딩된 캐스팅 유닛을 포함한다. 미디어 출력 디바이스(106-1)는 DVD 플레이어 또는 셋톱 박스(108-1)에 하드 와이어링되는(hard wired) TV 디스플레이를 포함한다. 미디어 출력 디바이스(106-3)는 그의 청중에게 디스플레이하도록 미디어 콘텐츠를 스트리밍하기 위해 임베딩된 캐스팅 유닛을 통합하는 네트워크 연결 TV 디바이스를 포함한다. 미디어 출력 디바이스(106-2)는 네트워크 연결 TV 박스(108-1)(예컨대, Google TV 또는 Apple TV 제품들)에 커플링되는 레귤러 TV 디스플레이를 포함하고, 이러한 TV 박스(108-2)는 미디어 콘텐츠 호스트 서버(114)로부터 수신된 미디어 콘텐츠를 스트리밍하고 미디어 출력 디바이스(106-2) 상에 인터넷-기반 콘텐츠를 디스플레이하기 위해 인터넷에 대한 액세스를 제공한다.
[0045] 미디어 디바이스들(106, 108)에 추가로, 하나 이상의 전자 보조 디바이스들(190)이 환경(100)에 배치된다. 전자 보조 디바이스들(190)은 전자 보조 디바이스들(190) 및/또는 미디어 디바이스들(106 및 108)의 다양한 미디어 플레이 기능들을 개시하기 위한 오디오 입력들을 수집한다. 일부 구현들에서, 전자 보조 디바이스들(190)은 로컬로 저장되거나 원격 콘텐츠 소스로부터 스트리밍되는 미디어 콘텐츠를 제공하도록 구성된다. 일부 구현들에서, 전자 보조 디바이스들(190)은 음성-활성화되고(voice-activated) 미디어 디바이스에 근접하게, 예컨대, 캐스트 디바이스들(108) 및 미디어 출력 디바이스들(106)과 동일한 방에 배치된다. 대안적으로, 일부 구현들에서, 음성-활성화 전자 보조 디바이스(예컨대, 190-1 또는 190-3)는 하나 이상의 디바이스들을 갖지만 어떠한 미디어 디바이스도 없는 방에 배치된다. 대안적으로, 일부 구현들에서, 음성-활성화 전자 보조 디바이스(190)는 어떠한 네트워킹된 전자 디바이스도 갖지 않는 로케이션에 배치된다. 이는 전자 보조 디바이스들(190)이 미디어 디바이스와 통신하고 하나의 디바이스 상에서 다른 디바이스로(예컨대, 디바이스(190-1)로부터 디바이스(190-2) 및/또는 미디어 디바이스들(108)로) 디스플레이되는 콘텐츠를 공유하도록 허용한다.
[0046] 음성-활성화 전자 보조 디바이스(190)는 적어도 하나의 마이크로폰, 스피커, 프로세서 및 프로세서에 의한 실행을 위한 적어도 하나의 프로그램을 저장하는 메모리를 포함한다. 스피커는 전자 보조 디바이스(190)가 음성 메시지들(예컨대, 제시되는 미디어 콘텐츠 아이템들과 관련된 메시지들 또는 사용자와 전자 보조 디바이스(190) 사이의 대화의 부분으로서 메시지)을 전달하도록 허용하게 구성된다. 일부 실시예들에서, 전자 보조 디바이스(190)는 사용자 질의에 대한 응답으로, 스피커를 통해 사용자에게 가청 정보를 제공한다. 음성 메시지들에 대한 대안으로서, 시각적 신호들은 또한 디바이스 상에 디스플레이되는 시각적 알림과 같은 오디오 입력 프로세싱의 상태에 관하여 전자 보조 디바이스(190)의 사용자에게 피드백을 제공하기 위해 사용될 수 있다.
[0047] 일부 구현들에 따르면, 전자 디바이스(190)는 서버 시스템(140)의 도움으로 음성 인식 기능들을 제공하도록 구성된 음성-활성화 인터페이스 디바이스이다. 일부 구현들에서, 서버 시스템(140)은 클라우드 캐스트 서비스 서버(116) 및/또는 음성/디스플레이 보조 서버(112)를 포함한다. 예컨대, 일부 구현들에서, 전자 디바이스(190)는 음악(예컨대, 전자 보조 디바이스(190) 상에 또는 디스플레이 디바이스(106) 상에 디스플레이되는 비디오 콘텐츠에 대한 오디오)을 사용자에게 제공하고 음성 보조 서비스(예컨대, Google Assistant)에 대한 아이즈-프리(eyes-free) 및/또는 핸즈-프리 액세스를 허용하는 네트워크 연결 스피커를 포함한다. 선택적으로, 전자 디바이스(190)는 스피커 디바이스 또는 터치 검출 능력을 갖거나 터치 검출 능력이 없는 디스플레이 스크린을 포함하는 디바이스와 같은 음성 인터페이스 디바이스이다.
[0048] 일부 구현들에서, 전자 보조 디바이스(190)는 마이크로폰들, 스피커, 프로세서, 및 메모리(예컨대, 190-2 및 190-4)에 추가로, 디스플레이 스크린을 통합한다. 디스플레이 스크린은 전자 보조 디바이스(190)의 스피커를 통해 브로드캐스트될 수 있는 오디오 정보에 추가로, 부가적인 시각적 정보(예컨대, 미디어 콘텐츠, 미디어 콘텐츠에 관한 정보 등)를 제공하도록 구성된다. 사용자가 근처에 있고 사용자의 시선이 가려지지 않는 경우, 사용자는 전자 보조 디바이스의 디스플레이 스크린 상에서 직접 부가적인 시각적 정보를 검토할 수 있다. 선택적으로, 부가적인 시각적 정보는 오디오 입력 프로세싱의 상태에 관하여 전자 디바이스(190)의 사용자에게 피드백을 제공한다. 선택적으로, 부가적인 시각적 정보는 사용자의 이전 음성 입력들(예컨대, 사용자 질의들)에 대한 응답으로 제공되며, 스피커에 의해 브로드캐스트되는 오디오 정보와 관련될 수 있다. 일부 구현들에서, 음성-활성화 전자 디바이스들(190)의 디스플레이 스크린은 터치-감응식이고 그 표면 상의 터치 입력들(예컨대, 터치-감응 디스플레이 스크린을 통해 제공된 명령들)을 검출하도록 구성된다. 대안적으로, 일부 구현들에서, 음성-활성화 전자 디바이스들(190)의 디스플레이 스크린은 터치-감응 스크린이 아니다.
[0049] 전자 디바이스(190)로부터의 음성 입력들이 캐스트 디바이스들(108)을 통해 전자 디바이스(190) 및/또는 미디어 출력 디바이스들(106)을 제어하는 데 사용될 때, 전자 보조 디바이스(190)는 전자 보조 디바이스(190)가 자체 디스플레이를 갖는지에 독립적으로 캐스트-인에이블 미디어 디바이스들의 제어를 가능하게 한다. 일 예에서, 전자 디바이스(190)는 원거리(far-field) 음성 액세스를 갖는 스피커를 포함하고 네트워크-구현 보조 서비스(예컨대, Google Assistant)를 위한 음성 인터페이스 디바이스로서 기능한다.
[0050] 전자 디바이스(190)는 환경(100)의 임의의 방에 배치될 수 있다. 일부 구현들에서, 복수의 전자 보조 디바이스들(190)이 복수의 방들에 분산될 때, 전자 보조 디바이스들(190)은 복수의 방들 각각으로부터 음성 입력들을 수락하도록 동기화된 오디오 수신기들이 된다. 예컨대, 제1 전자 디바이스(190-1)는 제2 전자 디바이스(190-2)를 향해 지향되는 사용자 명령(예컨대, "OK Google, show this photo album on the kitchen device"의 사용자 명령)을 수신할 수 있다.
[0051] 구체적으로, 일부 구현들에서, 전자 디바이스(190)는 음성-활성화 개인 보조 서비스(예컨대, Google Assistant)에 연결되는, 마이크로폰을 갖는 네트워크-연결 스피커(예컨대, Wi-Fi 네트워크를 통해 연결됨)를 포함한다. 사용자는 전자 보조 디바이스(190)의 마이크로폰을 통해 미디어 플레이 요청을 발행하고, 전자 보조 디바이스(190) 자체 및/또는 다른 연결된 미디어 출력 디바이스(106) 상에서 미디어 콘텐츠를 플레이하도록 개인 보조 서비스에 요청할 수 있다. 예컨대, 사용자는 스피커 근처에서 "OK Google, play cat videos on my living room TV"라고 말함으로써 미디어 플레이 요청을 발행할 수 있다. 그 후 개인 보조 서비스는 기본 또는 지정된 미디어 애플리케이션을 사용하여 요청된 디바이스 상에서 요청된 미디어 콘텐츠를 플레이함으로써 미디어 플레이 요청을 이행한다.
[0052] 사용자는 또한 전자 보조 디바이스(190) 상에서 이미 플레이된 및/또는 플레이되고 있는 미디어 콘텐츠에 관해 전자 보조 디바이스(190)의 마이크로폰을 통해 음성 요청을 할 수 있다. 예컨대, 사용자는 미디어 콘텐츠의 소유권 정보 또는 주제와 같이 디스플레이되고 있는 현재 미디어 콘텐츠 아이템과 관련된 정보를 제공하도록 전자 보조 디바이스에 지시할 수 있다. 일부 구현들에서, 원격 제어가 없거나 사용자가 제2 스크린 디바이스를 사용 가능할 때 음성에 의해 현재 디스플레이되는 미디어 콘텐츠의 폐쇄 자막이 디스플레이 디바이스 상에서 개시되거나 비활성화된다. 따라서, 사용자는 물리적 사용자 인터페이스를 갖는 임의의 다른 디바이스를 수반하지 않고 아이즈-프리 및 핸즈-프리 음성-활성화 전자 보조 디바이스(190)를 통해 디스플레이 디바이스 상에서 폐쇄 자막을 턴 온(turn on)할 수 있다.
[0053] 일부 구현들에서, 전자 보조 디바이스(190)는 디스플레이 스크린 및 하나 이상의 내장 카메라들을 포함한다. 카메라들은 이미지들 및/또는 비디오들을 캡처하도록 구성되며, 이는 그 후 클라이언트 디바이스(들)(예컨대, 인가된 클라이언트 디바이스들(104)) 상의 디스플레이를 위해 서버 시스템(140)에 송신(예컨대, 스트리밍)된다.
[0054] 일부 구현들에서, 음성-활성화 전자 보조 디바이스들(190)은 환경(100)의 벽(154), 바닥(156) 또는 천장(158) 상에 장착되고, 이들과 통합되고 그리고/또는 이들에 의해 지지될 수 있다. 통합된 디바이스들은 네트워크에서 서로 그리고/또는 중앙 서버 또는 클라우드-컴퓨팅 시스템과 끊김 없이(seamlessly) 통합되어 다양한 유용한 기능들을 제공하는 지능형 다중-감지 네트워크 연결 디바이스들을 포함한다. 일부 구현들에서, 디바이스는 캐스트 디바이스(108) 및/또는 출력 디바이스(106)와 동일한 환경(100)의 로케이션에 배치되고, 따라서 캐스트 디바이스(108) 및 출력 디바이스(106)에 대해 알려진 거리를 두고 또는 이들에 근접하여 로케이팅된다.
[0055] 일부 구현들에서, 환경(100)은 하나 이상의 네트워크 연결 카메라 시스템들(132)(본원에서 카메라들(132)로서 또한 지칭됨)을 포함한다. 일부 실시예들에서, 카메라(132)에 의해 캡처된 콘텐츠는 사용자의 요청 시에(예컨대, "OK Google, show the baby room monitor"의 사용자 명령) 및/또는 환경(100)의 세팅들(예컨대, 저녁 동안 또는 침입자의 검출에 대한 응답으로 특정 카메라(132)에 의해 캡처된 콘텐츠를 디스플레이하기 위한 세팅)에 따라 전자 보조 디바이스(190) 상에 디스플레이된다.
[0056] 일부 구현들에서, 환경(100)은 하나 이상의 네트워크 연결 온도 조절기들(122), 위험 검출기들(124), 초인종들(126), 도어 록들(128), 경보 시스템들(130), 카메라 시스템들(132), 벽 스위치들(136), 가전 기기들(138)(예컨대, 냉장고들, 스토브들, 오븐들, 텔레비전들, 세탁기들 및/또는 건조기들), 조명들, 스테레오들, 인터컴 시스템들, 차고-문 오프너들, 바닥 팬들, 천장 팬들, 벽걸이 에어컨들, 수영장 히터들, 관개 시스템들, 보안 시스템들, 공간 히터들, 창문 에어컨(AC) 유닛들, 전동 덕트 통풍구들 등을 포함한다.
[0057] 환경(100)은 하나 이상의 다른 점유 센서들(예컨대, 터치 스크린들, IR 센서들, 주변 광 센서들 및 모션 검출기들)을 포함한다. 일부 구현들에서, 환경(100)은 점유자들 상에 로케이팅되거나 그에 임베딩된 RFID 태그들에 기초하여 점유를 결정하는 (예컨대, 각각의 방(152) 또는 그의 일부의) RFID(radio-frequency identification) 판독기들을 포함한다. 예컨대, RFID 판독기들은 네트워크 연결 위험 검출기들에 통합될 수 있다.
[0058] 일부 구현들에서, 감지 능력들을 포함하는 것 외에도, 환경(100)에 포함된 디바이스들 중 하나 이상은 네트워크 연결되는 다른 디바이스들, 중앙 서버, 클라우드-컴퓨팅 시스템 및/또는 다른 디바이스들(예컨대, 클라이언트 디바이스(104), 캐스트 디바이스(108), 및/또는 전자 보조 디바이스(190))과 공유하는 정보를 포함한 데이터 통신들이 가능하다. 유사하게, 일부 구현들에서, 캐스트 디바이스들(108) 및 전자 보조 디바이스들(190) 각각은, 네트워크에 연결된 다른 캐스트 디바이스들(108), 전자 보조 디바이스들(190), 중앙 서버 또는 클라우드-컴퓨팅 시스템(140), 및/또는 다른 디바이스들(예컨대, 클라이언트 디바이스들(104))과 공유하는 정보를 포함한 데이터 통신이 또한 가능하다. 데이터 통신들은, 본 문서의 출원일까지 아직 개발되지 않은 통신 프로토콜들을 포함하여, 특정한 커스텀(custom) 또는 표준 무선 네트워크 프로토콜들(예컨대, IEEE 802.15.4, Wi-Fi, ZigBee, 6LoWPAN, Thread, Z-Wave, Bluetooth Smart, ISA100.11a, WirelessHART, MiWi 등) 중 임의의 무선 프로토콜, 및/또는 특정한 커스텀 또는 표준 유선 네트워크 프로토콜들(예컨대, 이더넷, HomePlug 등) 중 임의의 유선 프로토콜, 또는 임의의 다른 적합한 통신 프로토콜을 사용하여 수행될 수 있다.
[0059] 일부 구현들에서, 캐스트 디바이스들(108), 전자 보조 디바이스들(190) 및 환경(100)에 포함된 다른 디바이스들은 무선 또는 유선 리피터(repeater)들로서 역할을 한다. 일부 구현들에서, 캐스트 디바이스들(108) 중 제1 디바이스는 무선 라우터를 통해 캐스트 디바이스들(108) 중 제2 디바이스 또는 하나 이상의 다른 디바이스들과 통신한다. 캐스트 디바이스들(108), 전자 보조 디바이스들(190) 및 하나 이상의 다른 디바이스들은 추가로, 인터넷(110)과 같은 네트워크에 대한 연결(예컨대, 네트워크 인터페이스(160))을 통해 서로 통신할 수 있다. 인터넷(110)을 통해, 캐스트 디바이스들(108), 전자 보조 디바이스들(190) 및/또는 하나 이상의 다른 디바이스들은 서버 시스템(140)(본원에서 중앙 서버 시스템 및/또는 클라우드-컴퓨팅 시스템으로서 또한 지칭됨)과 통신할 수 있다. 선택적으로, 서버 시스템(140)은 사용자에게 디스플레이되거나 다른 방식으로 제시되는 미디어 콘텐츠 아이템들 및/또는 환경(100)에 포함된 하나 이상의 디바이스들과 연관된 제조자, 지원 엔티티, 또는 서비스 제공자와 연관될 수 있다.
[0060] 일반적으로, 환경(100)에 포함되는 연결된 전자 디바이스들 중 임의의 것은 환경(100)에서 사용자들과 상호작용하기 위한 다양한 능력들을 갖도록 구성될 수 있다. 예컨대, 전자 디바이스는 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 및/또는 사용자가 마이크로폰에 의해 수신된 음성 입력들 및 사용자에게 정보를 제시하기 위해 스피커들에 의해 플레이 백(play back)되는 가청 출력들을 통해 전자 디바이스와 상호작용하는 음성-상호작용 능력들을 갖도록 구성될 수 있다. 유사하게, 전자 디바이스는 버튼들, 스위치들 및/또는 사용자 입력들을 수신하기 위해 다른 터치-응답 센서들(이를테면, 터치 스크린, 터치 패널, 정전식 또는 저항식 터치 센서들)뿐만 아니라 사용자들에게 촉각적 출력들을 제공하기 위한 햅틱 또는 다른 촉각 피드백 능력들을 갖도록 구성될 수 있다. 전자 디바이스는 또한 "LED Design Language for Visual Affordance of Voice User Interfaces"라는 제목의 미국 특허 출원 번호 제15/592,120호 ― 이는 인용에 의해 본원에 포함됨 ― 에서 설명된 바와 같이 사용자들에게 정보를 시각적으로 출력하기 위한 시각적 출력 능력들 이를테면, 디스플레이 패널 및/또는 하나 이상의 표시등들을 갖도록 구성될 수 있다. 또한, 환경(100)에 포함된 전자 디바이스는 "Systems, Methods, and Devices for Utilizing Radar-Based Touch Interfaces"라는 제목의 미국 특허 출원 번호 제15/481,289호 ― 이는 인용에 의해 본원에 포함됨 ― 에 설명된 바와 같이 레이더 트랜시버(들) 또는 PIR 검출기(들)와 같은 전자 디바이스에 근접한 오브젝트들 및 사람들의 움직임을 검출할 수 있는 움직임 센서를 갖도록 구성될 수 있다.
[0061] 이들 센서들 중 임의의 것에 의해 수신된 입력들은 전자 디바이스에 의해 그리고/또는 전자 디바이스와 통신 가능하게 커플링된 서버(예컨대, 도 1a의 서버 시스템(140))에 의해 프로세싱될 수 있다. 일부 구현들에서, 전자 디바이스 및/또는 서버는 사용자의 입력(들)에 대한 응답을 프로세싱 및/또는 준비하며, 이 응답은 전자 디바이스의 출력 능력들 중 하나 이상을 통해 전자 디바이스에 의해 출력된다. 일부 구현들에서, 전자 디바이스는 전자 디바이스의 출력 능력들 중 하나 이상을 통해, 사용자 입력에 직접적으로 응답하는 것이 아니라, 환경(100)의 제2 전자 디바이스에 의해 또는 전자 디바이스와 통신 가능하게 커플링된 서버에 의해 전자 디바이스에 송신되는 정보를 출력한다. 이 송신된 정보는 전자 디바이스의 출력 능력들에 의해 디스플레이 가능한/플레이 가능한 임의의 유형으로 이루어질 수 있다.
[0062] 서버 시스템(140)은 비디오 카메라들(132), (임베딩된 카메라들을 갖는) 초인종들(126) 및 전자 보조 디바이스들(190)과 같이 환경(100)에 포함된 디바이스들에 의해 캡처된 데이터로부터 이벤트들(예컨대, 모션, 오디오, 보안 등)들을 모니터링하고 이벤트들의 검토를 용이하게 하기 위한 데이터 프로세싱을 제공한다. 일부 구현들에서, 서버 시스템(140)은 비디오 및/또는 오디오 입력들(예컨대, 전자 보조 디바이스들(190), 초인종/카메라들(126), 또는 비디오 카메라들(132)에 의해 수집됨)을 프로세싱하는 음성/디스플레이 보조 서버(112), 환경(100)에 포함된 디바이스들 중 하나 이상의 디바이스 상의 디스플레이를 위한 미디어 콘텐츠를 제공하는 하나 이상의 콘텐츠 호스트들(114), 및 분산된 디바이스 단말들에 기초하여 가상 사용자 도메인을 생성하는 클라우드 캐스트 서비스 서버(116)를 포함할 수 있다. 일부 구현들에서, 서버 시스템(140)은 또한 가상 사용자 환경에서 분산된 디바이스 단말들의 레코드를 유지하기 위한 디바이스 레지스트리(118)를 포함한다. 분산된 디바이스 단말들의 예들은 전자 보조 디바이스들(190), 캐스트 디바이스들(108), 미디어 출력 디바이스들(106), 및/또는 환경(100)에 포함된 임의의 다른 디바이스들을 포함한다(그러나 이에 제한되지 않음). 일부 구현들에서, 이러한 분산된 디바이스 단말들은 가상 사용자 도메인의 사용자 계정에 링크된다. 일부 구현들에서, 이들 기능성들 및 콘텐츠 호스트들 각각은 서버 시스템(140) 내의 별개의 서버이다. 일부 구현들에서, 이러한 기능성들의 서브세트는 서버 시스템(140) 내에 통합된다.
[0063] 일부 구현들에서, 네트워크 인터페이스(160)는 종래의 네트워크 디바이스(예컨대, 라우터)를 포함한다. 일부 구현들에서, 환경(100)은 네트워크 인터페이스(160)를 통해 또는 직접적으로 네트워크(들)(110)에 통신 가능하게 커플링된 허브 디바이스(180)를 더 포함한다. 허브 디바이스(180)는 환경(100)에 포함된 디바이스들 중 하나 이상에 추가로 통신 가능하게 커플링된다. 일부 구현들에서, 환경(100)에 포함된 네트워크 연결 디바이스들 중 하나 이상은 선택적으로 하나 이상의 라디오 통신 네트워크들(예컨대, ZigBee, Z-Wave, Insteon, Bluetooth, Wi-Fi 및/또는 다른 라디오 통신 네트워크들)을 사용하여 허브 디바이스(180)와 통신한다. 일부 구현들에서, 허브 디바이스(180) 및 허브 디바이스(180)에/와 커플링된 디바이스들은 클라이언트 디바이스(104)(예컨대, 모바일 폰, 가정용 제어기, 랩톱, 태블릿 컴퓨터, 게임 콘솔 또는 유사한 전자 디바이스) 상에서 실행되는 애플리케이션을 통해 제어되거나 다른 방식으로 상호작용될 수 있다. 일부 구현들에서, 그러한 애플리케이션의 사용자는 허브 디바이스 또는 커플링된 네트워크 연결 디바이스들의 상태 정보를 보고(view), 홈 네트워크에 새로 도입된 디바이스들과 상호동작하도록 허브 디바이스를 구성하고, 새로운 디바이스들에 권한을 부여하고(commission), 연결된 디바이스들의 세팅들을 조정하거나 보는 등을 할 수 있다.
[0064] 도 1b는 일부 구현들에 따라 네트워크(102)를 포함하는 대표적인 네트워크 아키텍처(170)를 예시하는 블록도이다.
[0065] 일부 구현들에서, 환경(100)의 통합된 디바이스들은 다양한 유용한 기능들을 제공하기 위해 중앙 서버 또는 클라우드-컴퓨팅 시스템(예컨대, 서버 시스템(164))과 그리고/또는 네트워크(예컨대, 도 1b의 102)에서 서로 끊김 없이 통합되는, 지능형이고 다중-감지의 네트워크-연결 디바이스들(예컨대, 디바이스들(122, 124, 126, 128, 130, 132, 136 및/또는 138)) ― 본원에서 집합적으로 디바이스들(120)로서 지칭됨 ― 을 포함한다.
[0066] 일부 구현들에서, 환경(100)의 디바이스들(120)은 네트워크(102)에서 메시 네트워크를 생성하기 위해 허브 디바이스(180)와 결합된다. 일부 구현들에서, 네트워크(102)의 하나 이상의 디바이스들(120)은 제어기로서 동작한다. 부가적으로 및/또는 대안적으로, 허브 디바이스(180)는 제어기로서 동작한다. 일부 구현들에서, 제어기는 다른 디바이스들보다 더 많은 컴퓨팅 파워를 갖는다. 일부 구현들에서, 제어기는 (예컨대, 디바이스들(120), 전자 디바이스들(190)(도 1a), 및/또는 서버 시스템(164)으로부터의) 입력들을 프로세싱하고 환경(100)의 동작을 제어하기 위해 (예컨대, 네트워크(102)의 디바이스들(120)로) 커맨드들을 전송한다. 일부 구현들에서, 네트워크(102)의(예컨대, 메시 네트워크의) 디바이스들(120)의 일부는 "스포크스맨(spokesman)" 노드들(예컨대, 120-1)이고 다른 것들은 "저-전력" 노드들(예컨대, 120-6)이다. 환경(100)의 디바이스들 중 일부는 배터리로 전력공급(battery powered)되는 반면, 다른 것들은 이를테면, 환경의 벽들(154) 뒤의 배선(예컨대, 120볼트 라인 전압 와이어들)에 연결함으로써 정기적이고 신뢰할 수 있는 전원을 갖는다. 정기적이고 신뢰할 수 있는 전원을 갖는 디바이스들은 "스포크스맨" 노드들로서 지칭된다. 이러한 노드들은 통상적으로 서버 시스템(164)뿐만 아니라 환경(100)의 다양한 다른 디바이스들과의 양방향 통신을 용이하게 하기 위해 무선 프로토콜을 사용하는 능력이 갖춰진다. 일부 구현들에서, 하나 이상의 "스포크스맨" 노드들은 제어기로서 동작한다. 배터리로 전력공급되는 디바이스들은 "저-전력" 노드들이다. 이러한 저-전력 노드들은 스포크스맨 노드들보다 작은 경향이 있으며 통상적으로 Zigbee, ZWave, 6LoWPAN, Thread, Bluetooth 등과 같이 매우 적은 전력을 요구하는 무선 프로토콜들만을 사용하여 통신한다.
[0067] 일부 구현들에서, 일부 저-전력 노드들은 양방향 통신이 불가능하다. 이 저-전력 노드는 메시지들을 전송하지만, 이들은 "청취(listen)"할 수 없다. 따라서 스포크스맨 노드들과 같이 환경(100)의 다른 디바이스들은 이러한 저-전력 노드들에 정보를 전송할 수 없다. 일부 구현들에서, 일부 저-전력 노드들은 제한된 양방향 통신만이 가능하다. 예컨대, 다른 디바이스들은 특정 시간 기간 동안만 저-전력 노드들과 통신할 수 있다.
[0068] 설명된 바와 같이, 일부 구현들에서, 디바이스들은 환경(100)에서 메시 네트워크를 생성하기 위해 저-전력 및 스포크스맨 노드들로서 역할을 한다. 일부 구현들에서, 환경의 개별 저-전력 노드들은 이들이 감지하는 것에 관한 메시지들을 정기적으로 전송하고, 환경의 다른 저-전력 노드들은 ― 자체 메시지들을 전송하는 것 외에도 ― 이 메시지들을 포워딩하고, 그리하여 메시지들이 네트워크(102) 전반에 걸쳐 노드로부터 노드로(즉, 디바이스 투 디바이스(device to device)) 이동하게 한다. 일부 구현들에서, IEEE 802.11과 같은 비교적 고-전력 통신 프로토콜을 사용하여 통신할 수 있는 네트워크(102)의 스포크스맨 노드들은, IEEE 802.15.4와 같은 비교적 저-전력 통신 프로토콜로 스위칭하여 이들 메시지들을 수신하고, 메시지들을 다른 통신 프로토콜들로 번역하고, (예컨대, 비교적 고-전력 통신 프로토콜을 사용하여) 번역된 메시지들을 다른 스포크스맨 노드들 및/또는 서버 시스템(164)으로 전송할 수 있다. 따라서, 저-전력 통신 프로토콜들을 사용하는 저-전력 노드들은 인터넷(110)을 통해서뿐만 아니라 전체 네트워크(102)에 걸쳐 메시지들을 수신하고 그리고/또는 서버 시스템(164)으로 전송할 수 있다. 일부 구현들에서, 메시 네트워크는 서버 시스템(164)이, 홈의 디바이스들 대부분 또는 전부로부터 데이터를 정기적으로 수신하는 것, 데이터에 기초하여 추론을 행하는 것, 네트워크(102) 내의 및 외부의 디바이스들에 걸쳐 상태 동기화를 용이하게 하는 것, 그리고 환경에서 작업들을 수행하기 위해 디바이스들 중 하나 이상에 커맨드들을 전송하는 것을 가능하게 한다.
[0069] 설명된 바와 같이, 스포크스맨 노드들, 및 저-전력 노드들 중 일부는 "청취"가 가능하다. 따라서, 사용자들, 다른 디바이스들, 및/또는 서버 시스템(164)은 제어 커맨드들을 저-전력 노드들에 통신할 수 있다. 예컨대, 사용자는 전자 디바이스(104)(예컨대, 전화 또는 다른 모바일 통신 디바이스)를 사용하여 인터넷을 통해 커맨드들을 서버 시스템(164)에 전송할 수 있으며, 이 서버 시스템은 그 후 네트워크(102)의 하나 이상의 스포크스맨 노드들에 커맨드들을 중계한다. 스포크스맨 노드들은 저-전력 프로토콜을 사용하여 네트워크(102) 전반에 걸친 저-전력 노드들뿐만 아니라 서버 시스템(164)으로부터 커맨드들을 직접 수신하지 않은 다른 스포크스맨 노드들에 커맨드들을 통신할 수 있다.
[0070] 일부 구현들에서, 디바이스(120)의 예인 야간 조명(170)(도 1a)은 저-전력 노드이다. 광원을 하우징하는 것 외에도, 야간 조명(170)은 점유 센서 이를테면, 초음파 또는 수동 IR 센서 및 방의 광을 측정하는 주변 광 센서 이를테면, 포토 레지스터 또는 단일-픽셀 센서를 하우징한다. 일부 구현들에서, 야간 조명(170)은 방이 어둡다는 것을 그의 주변 광 센서가 검출할 때 그리고 누군가가 방에 있다는 것을 그의 점유 센서가 검출할 때 광원을 활성화하도록 구성된다. 다른 구현들에서, 야간 조명(170)은 단순히, 방이 어둡다는 것을 그의 주변 광 센서가 검출할 때 광원을 활성화하도록 구성된다. 또한, 일부 구현들에서, 야간 조명(170)은 점유 센서가 방에 사람의 존재를 검출하는 것과 일치하는 순시의 메시지를 포함하여, 방의 점유 및 방의 광의 양에 관한 메시지들을 정기적으로 전송하는 저-전력 무선 통신 칩(예컨대, ZigBee 칩)을 포함한다. 위에서 언급된 바와 같이, 이들 메시지들은 네트워크(102) 내에서 노드로부터 노드로(즉, 디바이스 투 디바이스)뿐만 아니라 인터넷(110)을 통해 서버 시스템(164)으로 무선으로(예컨대, 메시 네트워크를 사용하여) 전송될 수 있다.
[0071] 저-전력 노드들의 다른 예들은 배터리-전력공급 버전의 위험 검출기들(124), 카메라들(132), 초인종들(126) 등을 포함한다. 이러한 배터리-전력공급 디바이스들은 일정하고 신뢰할 수 있는 전력에 대한 액세스가 없는 영역에 종종 로케이팅되고, 선택적으로 임의의 수의 그리고 유형의 센서들 이를테면, 이미지 센서(들), 점유/모션 센서들, 주변 광 센서들, 주변 온도 센서들, 습도 센서들, 연기/화재/열 센서들(예컨대, 열 복사 센서들), 일산화탄소/이산화탄소 센서들 등을 포함한다. 또한, 배터리-전력공급 디바이스들은 이를테면, 위에서 설명된 바와 같은 메시 네트워크를 사용함으로써 개개의 센서들 각각에 대응하는 메시지들을 다른 디바이스들 및/또는 서버 시스템(164)에 전송할 수 있다.
[0072] 스포크스맨 노드들의 예들은 라인-전력공급 초인종들(126), 온도 조절기들(122), 벽 스위치들(136) 및 벽 플러그들(142)을 포함한다. 이러한 디바이스들은 신뢰할 수 있는 전원 근처에 로케이팅되고 그에 연결되고, 이에 따라 다양한 프로토콜들에서 양방향 통신이 가능한 하나 이상의 통신 칩들과 같은 더 많은 전력-소비 컴포넌트들을 포함할 수 있다.
[0073] 일부 구현들에서, 환경(100)은 자율적인 방식으로 특정 가사 작업들을 수행하도록 구성된 서비스 로봇들(168)(도 1a)을 포함한다.
[0074] 도 1a 및 도 1b를 참조하여 위에서 설명된 바와 같이, 일부 구현들에서, 도 1a 및 도 1b의 환경(100)은 네트워크 인터페이스(160)를 통해 또는 직접적으로 네트워크(들)(110)에 통신 가능하게 커플링된 허브 디바이스(180)를 포함한다. 허브 디바이스(180)는 추가로 적어도 환경(100)에서 이용 가능한 라디오 통신 네트워크를 사용하여 디바이스들 중 하나 이상에 통신 가능하게 커플링된다. 라디오 통신 네트워크에 의해 사용되는 통신 프로토콜들은 ZigBee, Z-Wave, Insteon, EuOcean, Thread, OSIAN, Bluetooth Low Energy 등을 포함한다(그러나 이에 제한되지 않음). 일부 구현들에서, 허브 디바이스(180)는 네트워크 인터페이스(160) 또는 네트워크(들)(110)의 데이터 포맷 요건들을 충족하도록 각각의 디바이스로부터 수신된 데이터를 변환할 뿐만 아니라, 타겟팅된 디바이스와 연관된 개개의 통신 프로토콜의 데이터 포맷 요건들을 충족하도록 네트워크 인터페이스(160) 또는 네트워크(들)(110)로부터 수신된 정보를 변환한다. 일부 구현들에서, 데이터 포맷 변환에 더하여, 허브 디바이스(180)는 추가로, 디바이스들로부터 수신된 데이터 또는 네트워크 인터페이스(160) 또는 네트워크(들)(110)로부터 수신된 정보를 예비로 프로세싱한다. 예컨대, 허브 디바이스(180)는 다수의 센서들/연결된 디바이스들(동일한 및/또는 상이한 유형들의 센서들/디바이스들을 포함함)로부터의 입력을 통합하고, 이러한 입력들 상에서 더 높은 레벨 프로세싱을 수행하고 ― 예컨대, 전체 환경을 평가하고 상이한 센서들/디바이스들 간의 동작을 조정하고 ― 그리고/또는 입력들 및 프로그래밍된 프로세싱의 모음에 기초하여 상이한 디바이스들에 명령들을 제공할 수 있다. 일부 구현들에서, 네트워크 인터페이스(160) 및 허브 디바이스(180)는 하나의 네트워크 디바이스에 통합된다는 것에 또한 주의한다. 본원에서 설명된 기능성은 디바이스들의 특정 구현들, 대표적인 전자 디바이스(들)(이를테면, 전화 또는 다른 모바일 통신 디바이스) 상에서 실행되는 제어 애플리케이션(들), 허브 디바이스(들)(180) 및 인터넷 또는 다른 광역 네트워크를 통해 허브 디바이스(들)에 커플링되는 서버(들)의 특정 구현들을 대표한다. 이 기능성 및 연관된 동작들의 전부 또는 일부는 설명된 시스템의 임의의 엘리먼트들에 의해 수행될 수 있는데 ― 예컨대, 허브 디바이스의 구현에 의해 수행되는 것으로 본원에서 설명된 기능성의 전부 또는 일부는 상이한 시스템 구현들에서, 전체적으로 또는 부분적으로, 서버, 하나 이상의 연결된 디바이스들 및/또는 제어 애플리케이션, 또는 이들의 상이한 조합들 상에서 수행될 수 있다.
[0075] 도 2는 서버 시스템(164)(때로는 "허브 디바이스 서버 시스템", "비디오 서버 시스템" 또는 "허브 서버 시스템"이라고도 불림)이 비디오 카메라들(132)에 의해 캡처된 비디오 스트림에서 모션 이벤트의 검토를 용이하게 하고 모니터링을 위한 데이터 프로세싱을 제공하는 대표적인 동작 환경(200)을 예시한다. 도 2에 도시된 바와 같이, 서버 시스템(164)은 다양한 물리적 로케이션들에(예컨대, 홈들, 식당들, 상점들, 거리들, 주차장 및/또는 도 1의 환경들(100) 내부에) 로케이팅된 비디오 소스들(222)(카메라(들)(132), 초인종(들)(126) 및/또는 전자 디바이스(들)(190)를 포함함)로부터 비디오 데이터를 수신한다. 각각의 비디오 소스(222)는 하나 이상의 리뷰어 계정들에 결합될 수 있고, 서버 시스템(164)은 비디오 소스(222)에 대한 비디오 모니터링 데이터를 리뷰어 계정들과 연관된 클라이언트 디바이스들(204)에 제공한다. 예컨대, 휴대용 전자 디바이스(104)는 클라이언트 디바이스(204)의 예이다.
[0076] 일부 구현들에서, 제공자 서버 시스템(164) 또는 그의 컴포넌트는 도 1a 및 도 1b를 참조하여 설명된 서버 시스템에 대응한다. 일부 구현들에서, 서버 시스템(164)은 전용 비디오 프로세싱 서버이거나 도 1a 및 도 1b를 참조하여 설명된 바와 같이 서버 시스템에 의해 제공되는 다른 서비스들과 독립적으로 비디오 소스들 및 클라이언트 디바이스들(204)에 비디오 프로세싱 서비스들을 제공하는 전용 비디오 프로세싱 컴포넌트들을 포함한다.
[0077] 일부 구현들에서, 비디오 소스들(222) 각각은 비디오를 캡처하고 캡처된 비디오를 실질적으로 실시간으로 또는 클립별 단위(clip-by-clip basis)로 서버 시스템(164)에 전송하는 하나 이상의 비디오 카메라들(132)을 포함한다(이벤트들 및 비디오 클립들을 참조하여 아래에서 보다 상세히 설명됨). 일부 구현들에서, 비디오 소스들(222) 중 하나 이상은 선택적으로 하나 이상의 카메라들(132)과 서버 시스템(164) 사이의 중개자로서 역할을 하는 제어기 디바이스(도시되지 않음)를 포함한다. 제어기 디바이스는 하나 이상의 카메라들(132)로부터 비디오 데이터를 수신하고, 선택적으로 비디오 데이터 상에서 일부 예비 프로세싱을 수행하고, 실질적으로 실시간으로 하나 이상의 카메라들(132)을 대신하여 비디오 데이터를 서버 시스템(164)에 전송한다. 일부 구현들에서, 각각의 카메라는 프로세싱된 비디오 데이터(예비 프로세싱을 통해 획득된 메타데이터와 함께)를 제어기 디바이스 및/또는 서버 시스템(164)에 전송하기 전에 캡처된 비디오 데이터 상에서 일부 예비 프로세싱을 수행하기 위한 자체 온-보드 프로세싱 능력들을 갖는다. 본 개시내용 전반에 걸쳐, 구현들은 비디오 소스(222)로서 비디오 카메라(132)를 참조하여 설명된다. 그러나, 각각의 구현은 또한 초인종(126) 또는 카메라가 포함된 보조 디바이스(190)와 같이 환경(100)의 임의의 다른 카메라-장착 디바이스에 적용된다.
[0078] 도 2에 도시된 바와 같이, 일부 구현들에 따르면, 클라이언트 디바이스들(204) 각각은 클라이언트-측 모듈(202)을 포함한다. 클라이언트-측 모듈(202)은 하나 이상의 네트워크들(110)을 통해 서버 시스템(164) 상에서 실행되는 서버-측 모듈(206)과 통신한다. 클라이언트-측 모듈(202)은 이벤트 모니터링 및 검토 프로세싱 및 서버-측 모듈(206)과의 통신들을 위한 클라이언트-측 기능성을 제공한다. 서버-측 모듈(206)은 개개의 클라이언트 디바이스(204) 상에 각각 상주하는 임의의 수의 클라이언트-측 모듈들(202)에 대한 이벤트 모니터링 및 검토 프로세싱을 위한 서버-측 기능성을 제공한다. 서버-측 모듈(206)은 또한 임의의 수의 제어 디바이스들 및 카메라들(132)을 포함하여, 임의의 수의 비디오 소스들(222)에 대한 비디오 프로세싱 및 카메라 제어를 위한 서버-측 기능성을 제공한다.
[0079] 일부 구현들에서, 서버-측 모듈(206)은 하나 이상의 프로세서들(212), 비디오 저장 데이터베이스(214), 디바이스 및 계정 데이터베이스들(216), 하나 이상의 클라이언트 디바이스들(218)에 대한 I/O 인터페이스, 및 하나 이상의 비디오 소스들(222)에 대한 I/O 인터페이스를 포함한다. 하나 이상의 클라이언트들에 대한 I/O 인터페이스는 서버-측 모듈(206)에 대한 클라이언트-대면 입력 및 출력 프로세싱을 용이하게 한다. 데이터베이스들(216)은 비디오 프로세싱 서버에 등록된 리뷰어 계정들에 대한 복수의 프로파일들을 저장하며, 여기서 개개의 사용자 프로파일은 개개의 리뷰어 계정에 대한 계정 크리덴셜(account credential)들, 및 개개의 리뷰어 계정에 링크된 하나 이상의 비디오 소스들을 포함한다. 하나 이상의 비디오 소스들(222)에 대한 I/O 인터페이스는 하나 이상의 비디오 소스들(222)(예컨대, 하나 이상의 카메라들(132) 및 연관된 제어기 디바이스들의 그룹들)과의 통신들을 용이하게 한다. 비디오 저장 데이터베이스(214)는 비디오 소스들(222)로부터 수신된 원시 비디오 데이터뿐만 아니라, 각각의 리뷰어 계정에 대한 이벤트 모니터링 및 검토를 위한 데이터 프로세싱에 사용하기 위한 다양한 유형들의 메타데이터, 이를테면, 모션 이벤트들, 이벤트 카테고리들, 이벤트 카테고리 모델들, 이벤트 필터들 및 이벤트 마스크들을 저장한다.
[0080] 대표적인 클라이언트 디바이스(204)의 예들은 핸드헬드 컴퓨터, 웨어러블 컴퓨팅 디바이스, PDA(personal digital assistant), 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 셀룰러 전화, 모바일 폰, 미디어 플레이어, 내비게이션 디바이스, 게임 콘솔, 텔레비전, 원격 제어, POS(point-of-sale) 단말, 차량-장착 컴퓨터, 전자책 리더기, 또는 이러한 데이터 프로세싱 디바이스들의 임의의 둘 이상의 조합 또는 다른 데이터 프로세싱 디바이스들을 포함한다(그러나 이에 제한되지 않음).
[0081] 하나 이상의 네트워크들(110)의 예들은 LAN(local area network)들 및 WAN(wide area network)들 이를테면, 인터넷을 포함한다. 하나 이상의 네트워크들(110)은 선택적으로, 다양한 유선 또는 무선 프로토콜 이를테면, Ethernet, USB(Universal Serial Bus), FIREWIRE, LTE(Long Term Evolution), GSM(Global System for Mobile Communications), EDGE(Enhanced Data GSM Environment), CDMA(code division multiple access), TDMA(time division multiple access), Bluetooth, Wi-Fi, VoIP(voice over Internet Protocol), Wi-MAX 또는 임의의 다른 적합한 통신 프로토콜을 포함한 임의의 알려진 네트워크 프로토콜을 사용하여 구현된다.
[0082] 일부 구현들에서, 서버 시스템(164)은 하나 이상의 자립형 데이터 프로세싱 장치들 또는 컴퓨터들의 분산된 네트워크 상에서 구현된다. 일부 구현들에서, 서버 시스템(164)은 또한 다양한 가상 디바이스들 및/또는 제3자 서비스 제공자들(예컨대, 제3자 클라우드 서비스 제공자들)의 서비스들을 사용하여 서버 시스템(164)의 근본적인 컴퓨팅 자원들 및/또는 인프라스트럭처 자원을 제공한다. 일부 구현들에서, 서버 시스템(164)은 핸드헬드 컴퓨터, 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 또는 이러한 데이터 프로세싱 디바이스들의 임의의 둘 이상의 조합 또는 다른 데이터 프로세싱 디바이스들을 포함한다(그러나 이에 제한되지 않음).
[0083] 도 2에 도시된 서버-클라이언트 환경(200)은 클라이언트-측 부분(예컨대, 클라이언트-측 모듈(202)) 및 서버-측 부분(예컨대, 서버-측 모듈(206)) 둘 모두를 포함한다. 동작 환경(200)의 클라이언트 및 서버 부분들 사이의 기능성들의 분할은 상이한 구현들에서 변동될 수 있다. 유사하게, 비디오 소스(222)와 서버 시스템(164) 사이의 기능성들의 분할은 상이한 구현들에서 변동될 수 있다. 예컨대, 일부 구현들에서, 클라이언트-측 모듈(202)은 사용자-대면 입력 및 출력 프로세싱 기능들만을 제공하고 다른 모든 데이터 프로세싱 기능성들을 백엔드 서버(예컨대, 서버 시스템(164))에 위임하는 씬-클라이언트(thin-client)이다. 유사하게, 일부 구현들에서, 비디오 소스들(222)의 개개의 하나는 비디오 데이터에 대한 로컬 예비 프로세싱이 제한되거나 전혀 없이, 비디오 데이터(예컨대, 비디오 클립들의 형태의 이벤트들)를 캡처하여 서버 시스템(164)에 스트리밍하는 간단한 비디오 캡처 디바이스이다. 본 기술의 다수의 양상들이 서버 시스템(164)의 관점에서 설명되지만, 클라이언트 디바이스(204) 및/또는 비디오 소스들(222)에 의해 수행되는 대응하는 액션들은 어떠한 창조적 노력들 없이도 당업자들에게 명백해질 것이다. 유사하게, 본 기술의 일부 양상들은 클라이언트 디바이스 또는 비디오 소스의 관점에서 설명될 수 있고, 비디오 서버에 의해 수행되는 대응하는 액션들은 어떠한 창조적 노력들 없이도 당업자들에게 명백해질 것이다. 또한, 본 기술의 일부 양상들은 서버 시스템(164), 클라이언트 디바이스(204), 및 비디오 소스들(222)에 의해 협조적으로 수행될 수 있다.
[0084] 서버 시스템(164), 비디오 소스들(222) 및 비디오 카메라들(132)을 수반하는 동작 환경(200)은 단지 예일 뿐이라는 것이 이해되어야 한다. 동작 환경(200)의 다수의 양상들은 일반적으로 서버 시스템이 다른 유형들의 전자 디바이스들(예컨대, 온도 조절기들(122), 위험 검출기들(124), 초인종들(126), 벽 플러그들(142), 가전 기기들(138) 등)에 의해 캡처된 데이터를 모니터링하고 이러한 데이터의 검토를 용이하게 하기 위한 데이터 프로세싱을 제공하는 다른 동작 환경들에서 응용 가능하다.
[0085] 전자 디바이스들, 클라이언트 디바이스들 및 서버 시스템은 하나 이상의 통신 네트워크들(110)을 이용하여 서로 통신한다. 예시적인 환경에서, 둘 이상의 디바이스들(예컨대, 네트워크 인터페이스 디바이스(160), 허브 디바이스(180), 및 클라이언트 디바이스들(204-m))은 이들이 유선 연결들, WLAN 또는 Bluetooth PAN(Personal Area Network)을 통해 동일한 서브-네트워크(110A)에서 통신 가능하게 커플링될 수 있도록 서로 아주 근접하게 로케이팅된다. Bluetooth PAN은 선택적으로 클래식 Bluetooth 기술 또는 BLE(Bluetooth Low Energy) 기술에 기초하여 설정된다. 이 환경은 하나 이상의 다른 라디오 통신 네트워크들(110B)을 더 포함하며, 이를 통해 비디오 소스들(222-n)의 전자 디바이스들 중 적어도 일부가 허브 디바이스(180)와 데이터를 교환한다. 대안적으로, 일부 상황들에서, 비디오 소스들(222-n)의 전자 디바이스들 중 일부는 디바이스들(160, 180 및 204-m)을 커플링하는 동일한 서브-네트워크(110A)를 통해 직접 네트워크 인터페이스 디바이스(160)와 통신한다. (예컨대, 네트워크(110C)의) 일부 구현들에서, 클라이언트 디바이스(204-m) 및 비디오 소스들(222-n)의 전자 디바이스들 둘 모두는 네트워크 인터페이스 디바이스(160) 또는 허브 디바이스(180)를 통과하지 않고 네트워크(들)(110)를 통해 직접 통신한다.
[0086] 일부 구현들에서, 정상 동작 동안, 네트워크 인터페이스 디바이스(160) 및 허브 디바이스(180)는 네트워크 게이트웨이 ― 이를 통해, 데이터가 비디오 소스들(222-n)의 전자 디바이스들과 교환됨 ― 를 형성하기 위해 서로 통신한다. 위에서 설명된 바와 같이, 네트워크 인터페이스 디바이스(160) 및 허브 디바이스(180)는 선택적으로 서브-네트워크(110A)를 통해 서로 통신한다.
[0087] 도 3은 일부 구현들에 따라, 환경(100)의 예시적인 전자 디바이스(222)를 예시하는 블록도이다. 예컨대, 전자 디바이스(222)는 보안 카메라(132), 초인종 카메라(126), 또는 카메라를 갖는 보조 디바이스(190)일 수 있다. 전자 디바이스(222)는 통상적으로 (종종 칩셋으로 지칭되는) 하나 이상의 프로세서(CPU)들(302), 하나 이상의 네트워크 인터페이스들(304), 메모리(306), 및 이들 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(308)을 포함한다. 전자 디바이스(222)는 이미지들 및/또는 비디오를 캡처하도록 구성된 하나 이상의 카메라(들)(362)를 포함한다. 전자 디바이스(222)는 하나 이상의 스피커들, 디스플레이, 및/또는 카메라(들)(362)의 상태의 시각적 표시를 디스플레이하도록 구성된 하나 이상의 표시등(들)(예컨대, LED들)을 포함하는 하나 이상의 출력 디바이스들(312)을 포함한다. 일부 구현들에서, 전자 디바이스(222)는 또한 이벤트들 또는 변화들을 검출하는 센서(들)(363)(이를테면, 모션 센서, 레이더 센서, 및/또는 존재 센서)를 포함한다. 일부 구현들에서, 이벤트들 또는 변화들의 검출은 카메라(362)의 시야에서 모션의 검출에 의해 트리거된다.
[0088] 전자 디바이스(222)(예컨대, 보조 디바이스(190))의 일부 구현들에서, 전자 디바이스(222)는 또한 하나 이상의 마이크로폰들, 볼륨 제어 및 프라이버시 제어를 포함하여, 사용자 입력을 용이하게 하는 하나 이상의 입력 디바이스들(310)을 포함한다. 볼륨 제어는 스피커들의 볼륨 레벨을 제어하거나 또는 디스플레이 보조 디바이스(300)를 리셋하는 사용자 액션(예컨대, 연장된 시간 길이 동안 볼륨 업 버튼 또는 볼륨 다운 버튼 누르기, 볼륨 업 및 다운 버튼들 둘 모두 누르기)을 수신하도록 구성된다. 프라이버시 제어는 디스플레이 보조 디바이스의 프라이버시 세팅들을 제어(예컨대, 마이크로폰들 및/또는 카메라들(362)을 비활성화할지 여부)하는 사용자 액션을 수신하도록 구성된다. 일부 구현들에서, 프라이버시 제어는 전자 디바이스(222) 상에 로케이팅된 물리적 버튼이다. 일부 구현들에서, 전자 디바이스(222)의 입력 디바이스들(310)은 디스플레이 패널 상에 통합되고 그의 표면 상의 터치 입력들을 검출하도록 구성된 터치 검출 모듈을 포함한다. 일부 구현들에서, 전자 디바이스(222)의 입력 디바이스들(310)은 시야의 이미지들 및/또는 비디오 스트림을 캡처하도록 구성된 카메라 모듈을 포함한다.
[0089] 일부 구현들에서, 전자 디바이스(222)는 디스플레이 보조 디바이스(190)를 둘러싸는 미리 결정된 영역에서 사용자의 존재를 검출하도록 구성된 존재 센서(363)를 포함한다. 일부 상황들 하에서, 디스플레이 보조 디바이스(190)는 오디오 입력들의 감지 및 프로세싱을 비활성화하는 수면 또는 동면 모드에서 동작하고, 존재 센서가 미리 결정된 영역에서 사용자의 존재를 검출할 때까지 수면 또는 동면 모드로부터 웨이크 업(wake up)하지 않거나 주변을 청취하지 않는다(즉, 주변으로부터 수집된 오디오 신호들을 프로세싱하지 않음). 존재 센서의 예는 사용자의 존재를 검출하도록 구성된 초음파 센서이다.
[0090] 메모리(306)는 고속 랜덤 액세스 메모리, 이를테면 DRAM, SRAM, DDR RAM, 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들을 포함하고; 그리고 선택적으로는, 비-휘발성 메모리, 이를테면 하나 이상의 자기 디스크 저장 디바이스들, 하나 이상의 광 디스크 저장 디바이스들, 하나 이상의 플래시 메모리 디바이스들, 또는 하나 이상의 다른 비-휘발성 솔리드 스테이트 저장 디바이스들을 포함한다. 메모리(306)는 선택적으로, 하나 이상의 프로세서들(302)(또는 CPU(들))로부터 원격으로 로케이팅된 하나 이상의 저장 디바이스들을 포함한다. 메모리(306) 또는 대안적으로는 메모리(306) 내의 비-휘발성 메모리는 비-일시적인 컴퓨터-판독 가능 저장 매체를 포함한다. 일부 구현들에서, 메모리(306) 또는 메모리(306)의 비-일시적인 컴퓨터-판독 가능 저장 매체는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브세트 또는 슈퍼세트를 저장한다:
· 다양한 기본 시스템 서비스들을 핸들링하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함하는 운영 체제(316);
· 하나 이상의 네트워크 인터페이스들(304)(유선 또는 무선) 및 하나 이상의 네트워크들(110), 이를테면 인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 대도시 영역 네트워크들 등을 통해 전자 디바이스들(222)을 다른 디바이스들(예컨대, 서버 시스템(164), 클라이언트 디바이스(104), 클라이언트 디바이스들(204), 디바이스들(120), 허브 디바이스(180), 및/또는 다른 전자 디바이스들(222))에 연결하기 위한 네트워크 통신 모듈(318);
· 디스플레이에서의 정보의 프리젠테이션을 가능하게 하는 하나 이상의 입력 디바이스들(310)를 통해 입력들을 수신하기 위한 입력/출력 제어 모듈(320), 이는 다음을 포함함:
o 전자 디바이스(222)를 둘러싼 환경에서 수집된 오디오 입력들 또는 음성 메시지들을 프로세싱하거나 서버 시스템(164)(음성/디스플레이 보조 서버(112))에서의 프로세싱을 위해 수집된 오디오 입력들 또는 음성 메시지들을 준비하기 위한 음성 프로세싱 모듈(322);
o 미디어 콘텐츠 아이템(예컨대, YouTube 비디오 클립), 뉴스 포스트, 소셜 미디어 메시지, 날씨 정보, 개인 사진, 오디오 입력 프로세싱의 상태 및 디바이스들의 판독들을 포함(그러나 이에 제한되지 않음)하는 부가적인 시각적 정보를 디스플레이하기 위한 디스플레이 보조 모듈(324); 및
o 전자 디바이스(222)의 최상부 표면 상의 터치 이벤트들을 감지하기 위한 터치 감지 모듈(326);
· 이벤트를 검출하고 이벤트와 연관된 비디오 클립을 프로세싱하기 위한 이벤트 프로세싱 모듈(350), 이는 다음을 포함함:
o 이벤트 트리거(예컨대, 장면에서의 모션 또는 전경 오브젝트의 존재)를 검출하기 위한 트리거 검출 모듈(350);
o (예컨대, 오브젝트가 이벤트의 생성을 트리거해야 하는지에 대한 결정의 부분으로서) 장면에서 검출된 오브젝트에 대해 오브젝트 인식 분석을 수행하기 위한 오브젝트 인식 모듈(354); 및
o 이벤트를 포함하는 프레임들 및/또는 이벤트 이전 및/또는 이후의 부가적인 프레임들을 포함하는 비디오 클립을 합성(composing)하기 위한 이벤트 합성 모듈(356) ― 여기서 합성은 무활동 임계치들 및 최대 이벤트 길이와 같은 이벤트 파라미터들을 고려하는 것을 포함함 ― ;
· 카메라(362)의 이미지 센서로부터 이미지 프레임들을 캡처하고 비디오 스트림들(예컨대, 연속 비디오 스트림, 비디오 클립 및/또는 하나 이상의 정지 이미지들)을 프로세싱하기 위한 비디오 프로세싱 모듈(358) ― 여기서 프로세싱은 일부 구현들에서 네트워크를 통한 송신을 위해 프로세싱된 비디오 데이터를 압축하는 것을 포함함 ― ;
· 전자 디바이스(222)의 전력 유형(예컨대, 디바이스가 배터리에 의해 전력공급되는지 또는 유선 전원에 의해 전력공급되는지)을 검출하기 위한 전력 검출 모듈(359);
· 데이터(330), 이는 다음을 포함함:
o 공통 디바이스 세팅들(예컨대, 서비스 티어, 디바이스 모델, 저장 용량, 프로세싱 능력들, 통신 능력들 등) 및 전자 디바이스(222)가 링크되는 가상 사용자 도메인의 사용자 계정의 정보를 포함하여, 전자 디바이스(222) 자체와 연관된 정보를 저장하기 위한 디바이스 세팅들(332);
o 이벤트들을 생성하기 위해 이벤트 프로세싱 모듈(350)에 의해 사용되는 파라미터들을 포함하는 이벤트 프로파일 세팅들(380), 이를테면:
■ 프리-롤 값(pre-roll value)(예컨대, 관심의 발생 또는 오브젝트의 검출 이전에 이벤트 클립에 포함할 시간량, 또는 관심의 발생 또는 오브젝트를 포함하는 이미지 프레임들에 선행하는 획득된 이미지들의 수; 예컨대, 도 8 및 도 9의 패딩 윈도우들(814 및 914) 참조); 및 포스트-롤 값(post-roll value)(예컨대, 카메라의 장면 또는 시야에서 관심의 발생 또는 오브젝트가 더 이상 검출되지 않게 된 후 이벤트 클립에 포함할 시간량, 또는 관심의 발생 또는 오브젝트가 더 이상 검출되지 않는 획득된 이미지들의 수; 예컨대, 도 8 및 도 9의 패딩 윈도우들(816 및 916) 참조)을 포함하는 패딩(382)
■ 무활동 임계치(384)(예컨대, 후속 활동을 포함하기 위해 이벤트를 계속하는 대신 이벤트를 종료하기 전에 대기하는 시간량, 또는 관심의 발생 또는 오브젝트가 더 이상 검출되지 않는 획득된 이미지 프레임들의 수, 여기서 숫자는 이벤트를 종료하기 전에 대기하는 시간량에 대응하고; 예컨대, 도 8의 시간들(D/E) 사이 및 도 9의 시간들(D/F와 I/J) 사이의 무활동 윈도우들 참조),
■ 최대 이벤트 길이(386)(예컨대, 관심의 발생 또는 오브젝트가 카메라의 시야 또는 장면에 여전히 존재하는지 여부와 무관하게, 이벤트가 종료되기 전에 이벤트가 얼마나 오래 지속될 수 있는지, 또는 최대 이벤트 길이인 것으로 지정된 시간과 연관된 이미지들의 최대 수; 예컨대, 도 8 및 도 9의 이벤트 세그먼트들(812 및 912) 참조; 일부 구현들에서, 최대 이벤트 길이는 패딩 윈도우들을 포함하고; 일부 구현들에서, 최대 이벤트 길이는 패딩 윈도우들을 포함하지 않음),
■ 쿨-오프 임계치(388)(예컨대, 오브젝트 검출 레이트 ―이를 초과 시 이벤트의 레코딩이 중단됨 ―), 및/또는
■ 오브젝트 필터들 및/또는 우선순위(390)(예컨대, 어떤 오브젝트들이 이벤트를 레코딩하기 위한 기초로서 카운트될 수 있는지 결정하기 위해; 예컨대, 도 5의 예시적인 포뮬러들(442)의 이벤트 우선순위 목록들 참조);
o 카메라(362)의 이미지 센서에 의해 캡처된 이미지 프레임들을 저장하기 위한 이미지 버퍼(392)(입력 버퍼로서 또한 지칭됨);
o 오디오 신호들, 음성 메시지들, 응답 메시지들 및 전자 디바이스(222)의 음성 인터페이스 기능들과 관련된 다른 데이터를 저장하기 위한 음성 제어 데이터(336);
o 인가된 사용자들의 이미지들, 음성 정보, 지문 정보를 포함하여, 디스플레이 보조 디바이스를 사용하도록 인가된 사용자들의 정보를 저장하기 위한 인가된 사용자 데이터(338); 및
o 전자 디바이스(222)와 연관된 원시 또는 프로세싱된 데이터 이를테면, 카메라(들)(362)에 의해 캡처된 이벤트 데이터 및/또는 비디오 데이터를 선택적으로 저장하기 위한 로컬 데이터 저장소(340);
[0091] 위에서 식별된 엘리먼트들 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있으며, 위에서 설명된 기능을 수행하기 위한 명령들의 세트에 대응한다. 위에서 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 별개의 소프트웨어 프로그램들, 절차들, 모듈들 또는 데이터 구조들로서 구현될 필요는 없으며, 따라서, 이들 모듈들의 다양한 서브세트들은 다양한 구현들에서 조합되거나 또는 그렇지 않으면 재배열될 수 있다. 일부 구현들에서, 메모리(306)는 선택적으로, 위에서 식별된 데이터 구조들 및 모듈들의 서브세트를 저장한다. 또한, 메모리(306)는 선택적으로, 위에서 설명되지 않은 부가적인 모듈들 및 데이터 구조들을 저장한다.
[0092] 일부 구현들에서, 위에서 식별된 엘리먼트들 중 하나 이상은 서버 시스템(예컨대, 서버 시스템(164))에 저장되거나 그렇지 않으면 구현될 수 있다. 예컨대, 이벤트 프로세싱 모듈(350)은 서버 시스템(164)에 저장될 수 있다. 이러한 구현들을 위해, 전자 디바이스(222)는 카메라(362)로부터 획득된 이미지 데이터를 포함하는 비디오 스트림을 서버 시스템(164)에 송신할 것이고, 이벤트 프로세싱 모듈(350)은 서버 시스템(164)에서 트리거 검출, 오브젝트 인식, 및/또는 이벤트 합성을 수행할 것이다. 위에서 언급된 프로세스들 중 하나 이상의 결과로서, 이벤트 클립(예컨대, 도 7과 관련하여 아래에서 더 상세히 설명되는 이벤트 클립(740))은 서버 시스템(164)으로부터 전자 디바이스(222)로 송신되고 (예컨대, 전자 디바이스(222)의 출력 디바이스(312)에서) 디스플레이될 것이다.
[0093] 도 4는 일부 구현들에 따른, 서버 시스템(164)을 예시한 블록도이다. 서버 시스템(164)은 (때로는 칩셋이라 불리는) 하나 이상의 프로세서(들)(예컨대, CPU들)(402), 하나 이상의 네트워크 인터페이스들(404), 메모리(406), 및 이들 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(408)을 포함한다. 메모리(406)는 고속 랜덤 액세스 메모리, 이를테면 DRAM, SRAM, DDR SRAM, 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들을 포함하고; 그리고 선택적으로는, 비-휘발성 메모리, 이를테면 하나 이상의 자기 디스크 저장 디바이스들, 하나 이상의 광 디스크 저장 디바이스들, 하나 이상의 플래시 메모리 디바이스들, 또는 하나 이상의 다른 비-휘발성 솔리드 스테이트 저장 디바이스들을 포함한다. 메모리(406)는 선택적으로 하나 이상의 프로세서(들)(402)로부터 원격에 로케이팅된 하나 이상의 저장 디바이스들을 포함한다. 메모리(406) 또는 대안적으로는 메모리(406) 내의 비-휘발성 메모리는 비-일시적인 컴퓨터-판독 가능 저장 매체를 포함한다. 일부 구현들에서, 메모리(406) 또는 메모리(406)의 비-일시적인 컴퓨터-판독 가능 저장 매체는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브세트 또는 슈퍼세트를 저장한다:
· 다양한 기본 시스템 서비스들을 핸들링하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함하는 운영 체제(410);
· 서버 시스템(164)을 하나 이상의 네트워크 인터페이스들(404)(유선 또는 무선)을 통해 다른 시스템들 및 디바이스들(예컨대, 클라이언트 디바이스들, 전자 디바이스들, 및 하나 이상의 네트워크들(110)에 연결된 시스템들)에 연결하기 위한 네트워크 통신 모듈(412);
· 디바이스 제어, 데이터 프로세싱 및 데이터 검토를 위한 서버-측 기능성들을 제공하는 서버-측 모듈(414), 이는 다음을 포함함(그러나 이에 제한되지 않음):
o 전자 디바이스들로부터 데이터(예컨대, 전자 디바이스(222)로부터 이벤트 데이터)를 수신하고, 서버 데이터베이스(428)에서 추가 프로세싱 및 저장을 위해 수신된 데이터를 준비하기 위한 데이터 수신 모듈(416);
o 전자 디바이스들(예컨대, 전자 디바이스들(222))의 동작 모드들을 수정하기 위해 서버-개시 제어 커맨드들을 생성 및 전송하고, (예컨대, 클라이언트 디바이스들(204) 및 클라이언트 디바이스(104)로부터) 전자 디바이스들의 동작 모드들을 수정하기 위한 사용자-개시 제어 커맨드들을 수신 및 포워딩(예컨대, 전자 디바이스(222)에 대한 디바이스 구성 데이터(438)를 수신하고 구성 데이터(438)에 대응하는 하나 이상의 이벤트 프로세싱 포뮬러들(442)을 포워딩)하기 위한 디바이스 제어 모듈(418);
o 전자 디바이스들에 의해 제공되는 데이터를 프로세싱하고 그리고/또는 프로세싱된 데이터를 준비하고 검토를 위해 디바이스(예컨대, 사용자에 의한 검토를 위해 클라이언트 디바이스(204))로 전송하기 위한 데이터 프로세싱 모듈(420), 이는 다음을 포함함(그러나 이에 제한되지 않음) :
■ 수신된 비디오 클립(예컨대, 검출된 이벤트에 대응하는 전자 디바이스(222)로부터의 비디오 클립) 내의 검출된 엔티티들 및/또는 이벤트 후보들을 프로세싱(예컨대, 카테고리화 및/또는 인식)하기 위한 비디오 프로세싱 모듈(422);
■ 사용자와 통신(예컨대, 경고들, 타임라인 이벤트들 등을 전송하고 사용자 편집들 및 존(zone) 정의들 등을 수신)하기 위한 사용자 인터페이스 모듈(424); 및
■ 환경들 내에서 검출된 사람들을 분석 및/또는 식별하기 위한 엔티티 인식 모듈(426);
· 서버 데이터베이스(428), 이는 다음을 포함함(그러나 이에 제한되지 않음):
o 디바이스들 및 디바이스들 및 계정 데이터를 저장하기 위한 계정 데이터베이스(216), 이는 다음을 포함함:
■ 하나 이상의 디바이스들(예컨대, 전자 디바이스들(222))과 관련된 디바이스 정보(436);
■ 디바이스 식별자들(448), 설치 로케이션 데이터(449a), 디바이스 목적 정보(449b), 및/또는 디바이스 전력 유형 데이터(449c)를 포함하는 디바이스 구성 데이터(438);
■ 사용자 프로파일과 같은 사용자 계정 정보, 링크된 허브 디바이스들 및 전자 디바이스들에 대한 정보 및 세팅들(예컨대, 허브 디바이스 식별들), 허브 디바이스 특정 시크릿들, 관련 사용자 및 하드웨어 특성들(예컨대, 서비스 티어, 구독들, 디바이스 모델, 저장 용량, 프로세싱 능력들 등), 사용자 인터페이스 세팅들, 데이터 검토 선호도들 등을 포함하는 사용자 계정들 ― 여기서 연관된 전자 디바이스들에 대한 정보는 하나 이상의 디바이스 식별자들(예컨대, MAC 어드레스 및 UUID), 디바이스 특정 시크릿들 및 디스플레이된 타이틀들을 포함함(그러나 이에 제한되지 않음); 비디오 프로세싱 서버에 등록된 리뷰어 계정들에 대한 프로파일들 ― 여기서 개개의 사용자 프로파일은 개개의 리뷰어 계정에 대한 계정 크리덴셜들, 및 개개의 리뷰어 계정에 링크된 하나 이상의 비디오 소스들을 포함함 ― 에 대한 계정 데이터(432);
o 비디오 소스들(예컨대, 하나 이상의 전자 디바이스들(222)로부터 수신된 비디오 클립들)로부터 수신된 비디오 데이터뿐만 아니라, 각각의 리뷰어 계정에 대한 이벤트 모니터링 및 검토를 위한 데이터 프로세싱에 사용하기 위한 다양한 유형들의 이벤트 메타데이터, 이를테면, 모션 이벤트들, 이벤트 카테고리들, 이벤트 카테고리 모델들, 이벤트 필터들 및 이벤트 마스크들을 저장하기 위한 비디오 저장 데이터베이스(214)(도 2 참조);
o 각각의 사용자 계정의 각각의 전자 디바이스(예컨대, 각각의 전자 디바이스(222))와 연관된 데이터뿐만 아니라, 데이터 프로세싱 모델들, 프로세싱된 데이터 결과들 및 데이터와 연관된 다른 관련 메타데이터(예컨대, 데이터 결과들의 이름들, 전자 디바이스의 로케이션, 생성 시간, 지속기간, 전자 디바이스의 세팅 등)을 저장하기 위한 데이터 저장소(430) ― 여기서 (선택적으로) 허브 디바이스(180) 또는 디바이스들과 연관된 데이터 및/또는 프로세싱의 전부 또는 일부는 안전하게 저장됨 ― ;
o 이미지들, 성문들, 지문들, 신뢰도 레벨들 등을 포함하여, 전자 디바이스들(예컨대, 전자 디바이스들(222))에 대한 인가된 사용자들의 정보를 저장하기 위한 인가된 사람 데이터베이스(242);
o 이벤트 레코드들 및 맥락 정보(예컨대, 접근하는 방문자 둘러싼 상황들을 설명하는 맥락 데이터)와 같은 이벤트 정보(440);
o 패딩 값들(443a), 무활동 값들(443b), 길이 값들(443c), 쿨-오프 값들, 및/또는 우선순위 값들(443d)의 특정 조합들을 포함하여, 특정 구성 세팅들(438)에 대응하는 이벤트 파라미터들의 미리 결정된 또는 그렇지 않으면 사전 프로그래밍된 포뮬러들(레시피(recipe)들로서 본원에서 또한 지칭됨)을 포함하는 이벤트 포뮬러들(442);
o 다양한 조명 조건들에서 카메라(들)에 의해 캡처된 이전 배경 이미지들 및/또는 엔티티 이미지들과 같은 이전 이미지들(444); 및
o (예컨대, 환경(100)에서) 엔티티들을 식별 및/또는 특성화하는 정보와 같은 엔티티 정보(446).
[0094] 위에서 식별된 엘리먼트들 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있으며, 위에서 설명된 기능을 수행하기 위한 명령들의 세트에 대응한다. 위에서 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 별개의 소프트웨어 프로그램들, 절차들, 또는 모듈들로서 구현될 필요가 없으며, 따라서 이들 모듈들의 다양한 서브세트들은 다양한 구현들에서 결합되거나 또는 다른 방식으로 재배열될 수 있다. 일부 구현들에서, 메모리(406)는 선택적으로, 위에서 식별된 데이터 구조들 및 모듈들의 서브세트를 저장한다. 또한, 메모리(406)는 선택적으로, 위에서 설명되지 않은 부가적인 모듈들 및 데이터 구조들(예컨대, 클라이언트 디바이스들, 디바이스들 및 환경들을 링크하기 위한 계정 관리 모듈)을 저장한다.
[0095] 일부 구현들에서, 메모리(406)는 음성-활성화 전자 디바이스(190)로부터 수신된 음성 메시지의 음성 프로세싱을 배열하고, 캐스트 디바이스(108) 또는 다른 음성-활성화 전자 디바이스(190)의 지정 및 사용자 음성 커맨드를 추출하기 위해 음성 메시지를 직접 프로세싱하고, 그리고/또는 음성-활성화 전자 디바이스(190)가 미디어 콘텐츠(오디오 또는 비디오)를 플레이하는 것을 가능하게 하도록 실행되는 음성/디스플레이 보조 애플리케이션(도시되지 않음)을 포함한다.
[0096] 일부 구현들에서, 서버 시스템(164)은 클라우드 캐스트 서비스(예컨대, 도 1a의 클라우드 캐스트 서버(116))를 포함한다. 일부 구현들에서, 메모리(406)는 캐스트 디바이스(들)(108)와 연관된 디바이스 프로비저닝, 디바이스 제어, 및 사용자 계정 관리를 위한 서버-측 기능성을 제공하도록 실행되는 캐스트 디바이스 애플리케이션을 더 포함한다. 클라우드 캐스트 기능성들의 추가 세부사항들은 2019년 12월 7일에 출원되고 제목이 "Display Assistant Device"인 PCT 출원 번호 제PCT/US2015/64449호에서 찾을 수 있으며, 이 문서는 그 전체가 인용에 의해 본원에 통합된다.
[0097] 도 5는 일부 구현들에 따른 2개의 예시적인 이벤트 포뮬러들(예컨대, 도 4의 포뮬러들(442))을 포함한다.
[0098] 실외 포뮬러(502)는 실외 세팅(예컨대, 실외 보안 카메라 또는 초인종 카메라)에 로케이팅된 전자 디바이스들(222)과 함께 사용하기 위한 것이다. 실외 포뮬러(502)에서, 이벤트들은 초기 이벤트 트리거 전(예컨대, 모션이 초기에 검출되기 이전 또는 관심의 오브젝트가 장면에 진입한 것으로 인식되기 이전) 2초의 비디오, 및 이벤트가 완료된 후(예컨대, 더 이상 모션이 검출되지 않은 후) 2초의 비디오만큼 패딩된다. 패딩 값들은 때로는 본원에서 프리-롤 및 포스트-롤 값들로 지칭된다. 무활동 임계치는 30초이고 최대 이벤트 길이는 5시간이다. 또한, 야외 포뮬러는 관심의 오브젝트들/이벤트들 및 그들의 우선순위의 목록을 포함한다. 일부 구현들에서, 2개의 오브젝트들/이벤트들이 이벤트의 특정 부분에서 동시에 검출되는 경우, 이벤트의 그 부분은 더 높은 우선순위 오브젝트/이벤트를 사용하여 레이블링된다. 일부 구현들에서, 임계치보다 높은 우선순위를 갖는 오브젝트들/이벤트들만이 이벤트를 생성하고 그리고/또는 클라이언트 디바이스에 알림을 전송하기 위한 기초로서 사용된다.
[0099] 실내 포뮬러(504)는 실내 세팅에 로케이팅된 전자 디바이스들(222)(예컨대, 실내 보안 카메라 또는 카메라-장착 보조 디바이스)과 함께 사용하기 위한 것이다. 이 예에서, 실내에서 발생하는 이벤트들에는 추가 포스트-롤 패딩 시간이 주어진다(5초 대 실외 포뮬러에서 단 2초). 무활동 임계치는 30초로 유지되지만, 최대 이벤트 길이들은 단 1시간이다. 또한, 이벤트 우선순위 목록은 펫(pet)들, 노크, 유리 깨기 및 우는 아기와 같은 오브젝트들/이벤트들을 실외 포뮬러(502)의 그러한 오브젝트들/이벤트들의 우선순위보다 높게 우선순위화하는데, 그 이유는 이러한 이벤트들이 실내 세팅에서 발생할 가능성이 훨씬 높고 이에 따라 더 관련이 있기 때문이다.
[00100] 포뮬러들(502 및 504)은 예들이다. 값들의 다른 조합들뿐만 아니라 다른 디바이스 로케이션들 및 구성들은 본원에서 설명된 개념들의 범위를 벗어나지 않고 이벤트 포뮬러들에서 구현될 수 있다. 일부 구현들에서, 포뮬러들(442)은 아래에서 설명되는 바와 같이 업데이트된 구성 데이터, 사용자 선호도들, 및/또는 디바이스 학습 알고리즘들에 기초하여 변하도록 구성된 베이스라인 파라미터 값들(이를테면, 도 5의 예들에 포함된 것들)을 포함할 수 있다.
[00101] 도 6은 일부 구현들에 따른 사용자 계정과 연관된 대표적인 클라이언트 디바이스(204)(도 2의 클라이언트 디바이스들(204) 및 도 1의 클라이언트 디바이스(104))를 예시하는 블록도이다. 클라이언트 디바이스(204)는, 통상적으로 (종종 칩셋으로 지칭되는) 하나 이상의 프로세서(예컨대, CPU)들(602), 하나 이상의 네트워크 인터페이스들(604), 메모리(606), 및 이들 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(608)을 포함한다. 선택적으로, 클라이언트 디바이스는 또한 사용자 인터페이스(610) 및 하나 이상의 센서들(690)(예컨대, 가속도계 및 자이로스코프)를 포함한다. 사용자 인터페이스(610)는, 하나 이상의 스피커들 및/또는 하나 이상의 시각적 디스플레이들을 포함하여, 미디어 콘텐츠의 프리젠테이션을 가능하게 하는 하나 이상의 출력 디바이스들(612)을 포함한다. 사용자 인터페이스(610)는 또한, 사용자 입력을 용이하게 하는 사용자 인터페이스 컴포넌트들을 포함하는 하나 이상의 입력 디바이스들(614) 이를테면 키보드, 마우스, 음성-커맨드 입력 유닛 또는 마이크로폰, 터치 스크린 디스플레이, 터치-감응형 입력 패드, 제스처 캡처 카메라, 또는 다른 입력 버튼들 또는 제어들을 포함한다. 더욱이, 일부 클라이언트 디바이스들은 키보드를 보완하거나 또는 대체하기 위해 마이크로폰 및 음성 인식 또는 카메라 및 제스처 인식을 사용한다. 일부 구현들에서, 클라이언트 디바이스는 이미지들을 캡처하기 위한 하나 이상의 카메라들, 스캐너들, 또는 포토 센서 유닛들(도시되지 않음)을 포함한다. 선택적으로, 클라이언트 디바이스는 클라이언트 디바이스의 로케이션(예컨대, 실내, 실외 또는 환경의 특정 공간 또는 영역)을 결정하기 위한 로케이션 검출 컴포넌트(616), 이를테면 GPS(global positioning satellite) 센서 또는 다른 지오-로케이션(geo-location) 수신기를 포함한다.
[00102] 메모리(606)는 고속 랜덤 액세스 메모리, 이를테면 DRAM, SRAM, DDR SRAM, 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들을 포함하고; 그리고 선택적으로는, 비-휘발성 메모리, 이를테면 하나 이상의 자기 디스크 저장 디바이스들, 하나 이상의 광 디스크 저장 디바이스들, 하나 이상의 플래시 메모리 디바이스들, 또는 하나 이상의 다른 비-휘발성 솔리드 스테이트 저장 디바이스들을 포함한다. 메모리(606)는 선택적으로 하나 이상의 프로세서들(602)로부터 원격에 로케이팅된 하나 이상의 저장 디바이스들을 포함한다. 메모리(606) 또는 대안적으로는 메모리(606) 내의 비-휘발성 메모리는 비-일시적인 컴퓨터-판독 가능 저장 매체를 포함한다. 일부 구현들에서, 메모리(606) 또는 메모리(606)의 비-일시적인 컴퓨터-판독 가능 저장 매체는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브세트 또는 슈퍼세트를 저장한다:
· 다양한 기본 시스템 서비스들을 핸들링하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함하는 운영 체제(618);
· 클라이언트 디바이스(204)를 하나 이상의 네트워크 인터페이스들(604)(유선 또는 무선)을 통해 다른 시스템들 및 디바이스들(예컨대, 클라이언트 디바이스들, 전자 디바이스들, 및 하나 이상의 네트워크들(110)에 연결된 시스템들)에 연결하기 위한 네트워크 통신 모듈(620);
· 하나 이상의 입력 디바이스들(614) 중 하나로부터 하나 이상의 사용자 입력들 또는 상호작용들을 검출하고 검출된 입력 또는 상호작용을 해석하기 위한 입력 프로세싱 모듈(622);
· 디바이스들을 제어하기 위해(예컨대, 커맨드들을 전송하고, 세팅들을 구성하고, 전자 디바이스들(222)에 대한 구성 데이터 등을 허브 디바이스들 및/또는 다른 클라이언트 또는 전자 디바이스들에 입력하기 위해) 그리고 디바이스들에 의해 캡처된 데이터(예컨대, 디바이스 상태 및 세팅들, 캡처된 데이터, 이벤트 비디오 클립들 또는 허브 디바이스 또는 다른 연결된 디바이스들에 관한 다른 정보)를 검토하기 위해 클라이언트 디바이스에 의한 실행을 위한 하나 이상의 애플리케이션들(623)(예컨대, 게임들, 소셜 네트워크 애플리케이션들, 애플리케이션(624), 및/또는 다른 웹 또는 비-웹 기반 애플리케이션들). 일부 구현들에서, 사용자는 모니터링(예컨대, 라이브 뷰, 이벤트 히스토리, 알림들) 온/오프 모드, 홈/어웨이 보조, 및 활동 존들에 대한 세팅들을 포함하여, 애플리케이션(624)을 사용하여 디스플레이 보조 디바이스(190)에 대한 세팅들을 구성할 수 있다. 일부 구현들에서, 애플리케이션(624)은 사용자가 홈 모니터링을 위해 카메라(362)가 활성화될 시간들을 스케줄링하는 것을 가능하게 한다. 일부 구현들에서, 사용자가 애플리케이션(624)을 통해 이미지들 및/또는 비디오 피드의 품질, 사용될 대역폭, 및 마이크로폰들에 대한 세팅들을 구성하는 것이 가능하게 된다. 일부 구현들에서, 애플리케이션(624)은 전자 디바이스(222)를 이동시키는 것이 활동 존들 내에서 레코딩되는 것 및 레코딩되지 않는 것을 왜곡할 것이라는 사용자 교육(user education)(예컨대, 트레이닝 비디오들, 매뉴얼들, 팝업 메시지 알림들)을 제공한다. 일부 구현들에서, 애플리케이션(624)은 전자 디바이스(222)가 이리저리 이동될 때 존들을 디스에이블링하거나 조정한다. 일부 구현들에서, 전자 디바이스(222)는 그것이 이동될 때 클라우드에(예컨대, 서버 시스템(164)에) 알림들을 전송하도록 구성됨;
· 하나 이상의 디바이스들(예컨대, 환경(100)의 디바이스들(120), 음성-활성화 디스플레이 보조 디바이스들(190))에 대한 세팅들, 캡처된 데이터, 및/또는 다른 데이터가 구성되고 그리고/또는 보여질 수 있는 사용자 인터페이스를 제공 및 디스플레이하기 위한 사용자 인터페이스 모듈(626);
· 디바이스 제어, 데이터 프로세싱 및 데이터 검토를 위한 클라이언트-측 기능성들을 제공하는 클라이언트-측 모듈(628), 이는 다음을 포함함(그러나 이에 제한되지 않음):
o 사용자 입력들에 따라 디바이스들(예컨대, 전자 디바이스들(222) 및 선택적으로, 다른 전자 디바이스들)의 동작 모드를 수정하기 위한 제어 커맨드들을 생성하기 위한 디바이스 제어 모듈(630);
o 사람들, 오브젝트들, 동물들 및 이벤트들을 검출 및/또는 인식하기 위해 비디오 데이터를 보고 그리고/또는 분석하기 위해 수신된 비디오 데이터(예컨대, 이벤트 비디오 클립들)를 제공하기 위한 비디오 분석 모듈(632);
o 서버 시스템(164) 또는 비디오 소스들(222)로부터의 데이터를 검토하기 위한 사용자 인터페이스들을 제공하기 위한 데이터 검토 모듈(634), 이는 다음을 포함함(그러나 이에 제한되지 않음):
■ 이벤트들(예컨대, 모션 및/또는 오디오 이벤트들)을 검토하고 선택적으로 이벤트들에 대한 사용자 편집들 및/또는 업데이트들을 가능하게 하는 이벤트 검토 모듈(636); 및
■ 검출된 사람들 및 다른 엔티티들에 관한 데이터 및/또는 이미지들을 검토하고 선택적으로 사람 데이터에 대한 사용자 편집들 및/또는 업데이트들을 가능하게 하는 사람 검토 모듈(638);
o 전자 디바이스들(222) 및/또는 서버 시스템(164)과 상호작용하기 위한 사용자 인터페이스들 및 응답 옵션들을 제시하기 위한 프리젠테이션 모듈(640); 및
o 예컨대, 전자 디바이스(222) 및/또는 서버 시스템(164)을 통해 원격 사람(예컨대, 환경(100)의 방문자)과 상호작용하기 위한 원격 상호작용 모듈(642); 및
· 사용자 계정 및 전자 디바이스들과 연관된 데이터를 저장하는 클라이언트 데이터(644), 이는 다음을 포함함(그러나 이에 제한되지 않음):
o 클라이언트 디바이스 상에 로딩된 사용자 계정들 및 사용자 계정들과 연관된 (예컨대, 비디오 소스들(501)의) 전자 디바이스들 둘 모두와 관련된 정보를 저장하는 계정 데이터(646) ― 이러한 정보는 캐시된 로그인 크리덴셜들, 허브 디바이스 식별자들(예컨대, MAC 어드레스들 및 UUID들), 전자 디바이스 식별자들(예컨대, MAC 어드레스들 및 UUID들), 사용자 인터페이스 세팅들, 디스플레이 선호도들, 인증 토큰들 및 태그들, 패스워드 키들 등을 포함함 ― ;
o 선택적으로, 이전에 설명된 엔티티 데이터를 포함하여, 전자 디바이스들과 연관된(예컨대, 비디오 소스들(222)의) 원시 또는 프로세싱된 데이터를 선택적으로 저장하기 위한 로컬 데이터 저장소(648); 및
o 다양한 조명 조건들에서 카메라(들)에 의해 캡처된 이전 배경 이미지들 및/또는 엔티티 이미지들과 같은 이전 이미지들(650).
[00103] 위에서 식별된 엘리먼트들 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있으며, 위에서 설명된 기능을 수행하기 위한 명령들의 세트에 대응한다. 위에서 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 별개의 소프트웨어 프로그램들, 절차들, 모듈들 또는 데이터 구조들로서 구현될 필요는 없으며, 따라서, 이들 모듈들의 다양한 서브세트들은 다양한 구현들에서 조합되거나 또는 그렇지 않으면 재배열될 수 있다. 일부 구현들에서, 메모리(606)는 선택적으로, 위에서 식별된 데이터 구조들 및 모듈들의 서브세트를 저장한다. 또한, 메모리(606)는 선택적으로, 위에서 설명되지 않은 부가적인 모듈들 및 데이터 구조들을 저장한다.
[00104] 도 7은 일부 구현들에 따른 이벤트 프로세싱 시스템(700)의 블록도이다. 도 3과 공유되는 피처들은 유사하게 번호가 매겨지고, 일부는 간결성을 위해 추가로 논의되지 않는다. 일부 구현들에서, 시스템(700)은 카메라가 장착된 전자 디바이스(예컨대, 전자 디바이스(222)) 상에서 구현된다. 일부 구현들에서, 시스템(700)의 다양한 모듈들은 오브젝트 인식 모듈(354)과 같은 서버 시스템(예컨대, 164)에서 구현된다. 시스템(700)은 검출된 관심 오브젝트에 대응하는 이벤트를 프로세싱한다. 본 개시내용 전반에 걸쳐, "이벤트"라는 용어는 점유자(예컨대, 사람 또는 오브젝트)에게 관심 있는 무언가를 포함하거나 관심의 발생(예컨대, 모션)을 포함하는 비디오 데이터(예컨대, 비디오 클립)의 일부를 지칭한다. "이벤트"라는 용어는 또한 비디오 클립에 기초가 되는 발생 그 자체(예컨대, 모션 이벤트)를 지칭할 수 있다. 달리 표시되지 않는 한, "이벤트", "클립", "이벤트 클립" 및 "비디오 클립"이라는 용어들은 본 개시내용 전반에 걸쳐 상호 교환 가능하게 사용된다. 이벤트들, 그의 컴포넌트들 및 이들이 구성되는 방법에 관한 부가적인 설명은 도 8 및 도 9를 참조하여 아래에 포함된다.
[00105] 다시 도 7을 참조하면, 카메라(362)의 이미지 센서는 이미지 데이터를 캡처하고 버퍼(392)에 이미지 프레임들로서 이미지 데이터를 저장한다. 일부 구현들에서, 버퍼는 순환 버퍼인데, 이는 가장 오래된 프레임들이 최신 프레임들에 의해 지속적으로 개정되어 이전에 캡처된 프레임들의 지속적으로 업데이트되는 로그의 가용성을 보장하는 것을 의미한다. 트리거 검출 모듈(352)은 이벤트 트리거를 검출한다. 일부 구현들에서, 트리거를 검출하는 것은 (예컨대, 시야에서 이동하는 오브젝트를 표시하는 변하는 픽셀 값들을 검출하기 위해 후속 프레임들을 비교함으로써, 또는 모션 센서(363)로부터의 모션을 검출함으로써) 카메라의 시야에서 모션을 검출하는 것을 포함한다. 일부 구현들에서, 트리거를 검출하는 것은 (예컨대, 전경 오브젝트들을 검출하기 위해 배경 참조 이미지들로부터 현재 이미지들을 차감함으로써 또는 존재 센서(363)로부터 존재를 검출함으로써) 카메라의 시야의 전경에서 오브젝트의 존재를 검출하는 것을 포함한다. 트리거의 검출 시에, 오브젝트 인식 모듈(354)은 트리거가 이벤트 생성 목적으로 관심의 발생 또는 오브젝트를 표현하는지를 결정한다. 일부 구현들에서, 오브젝트 인식 모듈(354)은 오브젝트의 아이덴티티, 사람의 아이덴티티, 오브젝트의 유형(예컨대, 사람 대 동물 대 자동차 대 패키지), 또는 트리거 검출 시에 프로세싱 모듈(350)에 달리 알려지지 않은 오브젝트의 임의의 속성을 검출하기 위해 (예컨대, 컴퓨터 비전 기술을 사용하여) 오브젝트 또는 패턴 인식 프로세스를 수행한다. 이벤트 합성 모듈(356)은 이벤트 프로파일 세팅들(380)에 따라 (도 8 및 도 9를 참조하여 아래에서 상세히 설명되는 바와 같은) 이벤트 클립(740)을 구성한다. 일부 구현들에서, 이벤트 프로파일 세팅들(380)은 서버(164)로부터 수신된 포뮬러들(442)에 기초한다. 일부 구현들에서, 서버는 디바이스(222)의 디바이스 구성 데이터에 기초하여 포뮬러들(442)을 선택하며, 그것의 적어도 일부는 디바이스의 전력 유형에 기초한다. 이를 위해, 전력 검출 모듈(359)은 디바이스(222)에 어떻게 전력이 공급되는지, 외부 전원(712)을 통하는지 아니면 배터리(714)를 통하는지를 결정한다. 일부 구현들에서, 전력 검출 모듈(359)은 외부 전력 버스 및 배터리 전력 버스에 연결되고, 전력 검출 모듈(359)은 어느 전력 버스가 활성인지에 기초하여 전력 유형을 결정한다. 일부 구현들에서, 이벤트 프로파일 세팅들(380)에 저장된 포뮬러들은 양 유형들의 전력에 대한 최적화를 포함한다. 따라서, 이벤트 합성 모듈(356)은 전력 검출 모듈(359)에 의해 현재 검출되고 있는 전력 유형에 따라 이벤트 클립을 구성할 수 있다.
[00106] 일부 구현들에서, 전력 유형 정보는 구성 프로세스 동안 사용자에 의해 세팅된다. 일부 구현들에서, 전력 유형은 디바이스 그 자체에 의해(예컨대, 전력 검출 모듈(359)에 의해) 검출되고, 디바이스(222)(예컨대, 이벤트 프로세싱 모듈(350))는 검출된 전력 유형에 기초하여 이벤트 파라미터들(380)을 조정한다. 일부 구현들에서, 검출된 전력 유형은 디바이스 제어 모듈(418)에 의해 구현된 포뮬러 세팅 프로세스에의 포함을 위해 서버(164)로 송신된다. 일부 구현들에서, 이벤트 레코딩 파라미터들(380)은 서버(164)와 통신해야 할 필요 없이 (예컨대, 전력 유형과 같은 구성 데이터의 변화들에 기초하여) 동적으로 업데이트되고; 이러한 구현들에서, 다양한 이벤트 프로파일들은 예컨대, 전력 유형의 변화의 검출 시에 자동으로 조정되도록 구성된다. 예컨대, 일부 구현들에서, 디바이스(222)가 언플러깅(unplugged)될 때, 디바이스가 배터리-전력공급 모드로 스위칭되고 그리하여 이벤트 프로세싱 모듈이 전력 절감 목적으로 다양한 이벤트 레코딩 파라미터들을 변경하게 한다(예컨대, 더 짧은 무활동 임계치 및 이벤트 길이 세팅들, 우선순위 세팅들(390)에의 포함을 위한 더 적은 관심의 오브젝트 등).
[00107] 일부 구현들에서, 이벤트 레코딩 포뮬러들은 디바이스(222)가 배터리에 의해 전력이 공급되는 경우 배터리 수명을 최적화하기 위해 추가로 업데이트된다. 예컨대, 배터리 레벨들 및/또는 추정된 배터리 수명 값들이 감소함에 따라, 배터리 전력을 추가로 절감하기 위해 무활동 임계치들 및 최대 이벤트 길이와 같은 이벤트 레코딩 파라미터들이 감소될 수 있고, 쿨-오프 파라미터들(예컨대, 새로운 이벤트가 프로세싱될 때까지 대기하는 시간량)이 증가될 수 있고, 이벤트들을 포함하도록 구성되는 관심의 발생들 및 오브젝트들의 목록이 감소될 수 있다.
[00108] 일부 구현들에서, 위에서 식별된 엘리먼트들 중 하나 이상은 서버 시스템(예컨대, 서버 시스템(164))에 저장되거나 그렇지 않으면 구현될 수 있다. 예컨대, 이벤트 프로세싱 모듈(350)(또는 이벤트 프로세싱 모듈(350)과 연관된 모듈들(352, 354, 356 및 380) 중 하나 이상)은 서버 시스템(164)에 저장될 수 있다. 이러한 구현들을 위해, 전자 디바이스(222)는 카메라(362) 및/또는 이미지 버퍼(392)로부터 획득된 이미지 데이터를 포함하는 비디오 스트림을 서버 시스템(164)에 송신할 것이고, 이벤트 프로세싱 모듈(350)은 서버 시스템(164)에서 트리거 검출, 오브젝트 인식, 및/또는 이벤트 합성을 수행할 것이다. 위에서 언급된 프로세스들 중 하나 이상의 결과로서, 이벤트 클립(예컨대, 이벤트 클립(740))은 서버 시스템(164)으로부터 전자 디바이스(222)로 송신되고 (예컨대, 전자 디바이스(222)의 출력 디바이스(312)에서) 디스플레이될 것이다.
[00109] 도 8은 일부 구현들에 따른 예시적인 이벤트(810)를 도시한다. 이벤트는 (예컨대, 도 7의 이벤트 프로세싱 시스템(700)에 의해) 전자 디바이스(222)에서 프로세싱된다. 이 예의 목적을 위해, 디바이스(222)는 거실에 로케이팅된다. 그러나, 이 예에서 디바이스의 정확한 로케이션은 본원에서 설명된 개념들로 제한되는 것으로 의도되지 않는다. 시스템(700)은 디바이스의 거실 로케이션에 따른 포뮬러(802)를 사용한다. 거실 포뮬러(802)는 2초 프리-롤 및 2초 포스트-롤의 패딩 파라미터들, 30초의 무활동 임계치 및 5시간의 최대 이벤트 길이를 지정한다. 도면의 타이밍 마크들(A-E)은 시간이 지남에 따라 순차적으로 발생한다. 시간 A에서, 모션이 (예컨대, 트리거 검출 모듈(352)에 의해) 검출된다. 오브젝트 인식 모듈(354)이 모션의 식별 속성들을 결정하는 것으로 진행된다. 시간 B에서, 모션은 시스템(700)에 알려진 사람(밥(Bob))으로 인식된 사람에 의해 야기된 것으로 식별된다. 따라서, 시스템(700)은 검출된 오브젝트의 아이덴티티 및 이벤트에 관한 다른 정보(예컨대, "밥이 거실에서 보임(Bob seen in the living room)")로 이벤트를 레이블링한다. 이벤트는 이벤트의 타이밍(예컨대, 시간 A의 초기 트리거 검출 이후 경과된 시간량)이 최대 이벤트 길이에 도달하지 않는 한 계속된다. 시간 C에서, 밥은 거실을 빠져나오고 시간 D에서, 더 이상 어떠한 움직임도 없고 그리하여 이벤트가 예비로 종료되게 한다. 예비 이벤트가 시간 D에서 종료되면, 무활동 카운트가 시작된다. 이 예에서 무활동 임계치가 30초이기 때문에, 무활동 카운트는 시간 D에 시작하고 30초 후 시간 E에서 종료된다. 30초 무활동 윈도우(시간들 D와 E 사이) 내에 더 이상 어떠한 트리거 검출도 없는 경우, 이벤트 합성 모듈(356)은 이벤트를 종료하고 패딩 파라미터들에 따라 이벤트에 대한 비디오 클립을 구성한다. 비디오 클립은 시간 A에서 트리거 검출 2초 전인 시간 A'에서 시작하고 시간 D에서 이벤트의 주체가 방을 나가고 나서 2초 후인 시간 D'에 종료된다. 2초의 시간 윈도우들(814 및 816)(시간들 A'와 A, 및 시간들 D와 D' 사이)은 프리-롤 및 포스트-롤 패딩 값들을 표현하며, 이벤트의 부가적인 맥락(예컨대, 밥이 진입하기 직전의 방의 상태 및 밥이 떠난 직후의 방의 상태)을 사용자에게 보여주기에 유용하다. 이벤트(810)에 대한 비디오 클립은 패딩 윈도우들(814 및 816) 동안 캡처된 이미지 프레임들로부터의 이미지 데이터뿐만 아니라 모션 윈도우(812) 동안 캡처된 이미지 프레임들의 데이터를 포함한다.
[00110] 도 9는 일부 구현들에 따른 예시적인 결합된 이벤트(910)를 도시한다. 이벤트는 거실에 로케이팅된 전자 디바이스(222)에서 프로세싱되고 이에 따라 또한, 거실 포뮬러(802)에 따른다. 도 8에서와 같이, 시간 A에서 모션이 검출되고, 시간 B에서 장면의 오브젝트는 밥인 것으로 인식되고, 시간 C에서 밥이 방을 빠져나가고 그리하여 시간 D에서 검출된 트리거와 연관된 발생을 종료한다. 또한, 도 8에서와 같이, 30초 무활동 임계치 카운터는 시간 D에서 시작된다. 그러나 시간 F에서 30초의 임계치가 도달될 수 있기 전에, 시간 E에서 다른 모션 트리거가 검출된다. 이 모션은 시간 G에서 다른 알려진 사람인 찰리(Charlie)와 연관된 것으로 결정되고, 찰리는 시간 H에서 빠져나가는 것으로 진행되고 그리하여 시간 I에서 후속 모션-관련 발생을 종료한다. 다른 무활동 윈도우는 시간 I에서 시작되고 30초 후에, 시간 J에서, 무활동 윈도우 동안 어떠한 부가적인 트리거들도 검출되지 않는 경우 윈도우는 종료한다. (무활동 임계치의 도달 시에) 무활동 윈도우를 종료하는 것은 (초기 이벤트 이후 무활동 윈도우 동안 후속 이벤트가 시작되기 때문에) 양 이벤트들에 대한 비디오 클립의 생성을 트리거한다. 결합된 이벤트(910)에 대한 비디오 클립은 패딩 값들(914 및 916)에 따라 생성되고; 이에 따라 클립은 시간 A'(시간 A에서 모션이 시작되기 2초 전)에서 시작되고 시간 I'(시간 I에서 모션이 종료되고 나서 2초 후)에서 종료된다. 중요하게도, 결합된 이벤트(910)에 대한 비디오 클립은 단일 프리-롤 윈도우(914) 및 단일 포스트-롤 윈도우(916)만을 포함하고, 모션 윈도우(912)는 양 이벤트들(예컨대, 밥의 검출 및 찰리의 검출 둘 모두)의 검출된 발생들을 포함한다. 따라서, 시스템(700)은 양 발생들(예컨대, "밥 및 찰리가 거실에서 보임(Bob and Charlie seen in the living room)")을 설명하는 단일 레이블로 결합된 이벤트를 레이블링한다. 이 단일 레이블은 더 단순한 사용자 인터페이스의 디스플레이를 통해 보다 능률적인 사용자 경험을 제공하면서, 다수의 발생들로부터의 정보를 전달한다. 다른 말로 하면, 시간적으로 가까운 복수의 이벤트들이 디스플레이 상에서 별개의 이벤트들/엘리먼트들로서 사용자에게 전달되기 보다는, 발생들의 서브세트 또는 전부를 요약하는 결합된 이벤트는 다량의 정보를 디스플레이하기 위한 더 명확한 접근법을 제공하며, 그렇지 않으면 다량의 정보는 그 양으로 인해 무시되었을 수 있다.
[00111] 도 10은 이벤트들(예컨대, 이벤트들(810 및 910))을 디스플레이하기 위한 예시적인 사용자 인터페이스들을 도시한다. 일부 구현들에서, 사용자 인터페이스들은 클라이언트 디바이스(204)의 사용자 인터페이스 모듈(626)에 의해 구현된다.
[00112] 사용자 인터페이스(1002)는 이벤트들의 목록(1004)을 포함한다. 이벤트(1006)(이벤트(910)에 대응함)와 같은 이벤트들 중 일부는 비디오-기반이고 다른 이벤트들은 그렇지 않다. 예컨대, 이벤트는 점유자가 질문(예컨대, "what time is it?")에 대답함으로써 또는 커맨드(예컨대, play jazz music)를 발행함으로써 보조 디바이스(190)와 상호작용하고, (예컨대, 영화를 플레이함으로써) TV(108)와 상호작용하고, 온도 조절기(122)와 상호작용하거나(예컨대, 난방을 올림), 임의의 방식으로 임의의 디바이스와 상호작용할 때 생성될 수 있다. 1006과 같은 이미지 또는 비디오 데이터를 포함하는 이벤트에 대해, 이벤트들의 목록(1004)은 이벤트와 연관된 스크린샷(예컨대, 밥 및 찰리 둘 모두를 포함하는 이미지)을 포함하는 썸네일(1008)을 선택적으로 포함한다.
[00113] 이벤트(1006)의 사용자 선택 시에(예컨대, 입력(614)을 통해), 사용자 인터페이스(1022)가 디스플레이된다. 일부 구현들에서, 사용자 인터페이스(1022)의 일부 또는 전부는 사용자 인터페이스(1002)에 포함된다. 일부 구현들에서, 사용자 인터페이스(1022)는 (도면에 도시된 바와 같이) 별개로 제시된다. 사용자 인터페이스들 둘 모두의 엘리먼트들은 본원에서 설명된 개념들의 범위로부터 벗어남이 없이 다른 조합들에서 혼합되고 매칭될 수 있다. 사용자 인터페이스(1022)는 이벤트와 연관된 비디오 데이터(1024)를 디스플레이한다. 일부 구현들에서, 비디오 데이터(1024)는 비디오 제어들(예컨대, 플레이, 일시정지 등)의 선택을 통해 플레이 가능하다. 인터페이스는 요약 데이터(예컨대, "Bob and Charlie were seen"), 시간 및 로케이션 데이터(예컨대, 3:32 PM ― Living Room), 및/또는 이벤트를 설명하는 다른 정보를 포함하는 이벤트의 설명(1026)을 포함한다. 인터페이스는 또한 이벤트 타이밍을 표시하는 이벤트 길이의 시각적 표현(1030)을 디스플레이한다. 일부 구현들에서, 시각적 표현(1030)은 실질적으로 직사각형 형상(때로는 필(pill)로서 지칭됨)이고, 그 길이는 이벤트의 길이에 기초한다. 일부 구현들에서, 시각적 표현(1030)은 비디오 클립(1024)이 플레이될 때 그의 장축을 중심으로 이동(예컨대, 스크롤)하여, 전체적으로 이벤트와 관련하여 클립(1024)의 현재 디스플레이된 부분이 어디에 있는지를 표시한다. 도면에서, 이는 클립(1030)이 이미 2초 전진한 타임라인으로서 도시된다. 이벤트의 다른 시각적 표현들은 본원에서 설명된 개념들의 범위로부터 벗어남이 없이 구현될 수 있다. 일부 구현들에서, 인터페이스는 또한 이벤트(예컨대, 오브젝트 인식 프로세스의 결과들)와 연관된 검출된 속성들(1032)을 포함한다. 도면에서, 이러한 속성들은 장면에서 검출된 알려진 사람들의 아이덴티티(Bob, Charlie), 장면에서 검출된 오브젝트의 유형(Person), 장면에서 검출된 발생의 유형(Talking)을 포함한다.
[00114] 도 11은 전자 디바이스들(222)에 대한 디바이스 구성 데이터(438)(예컨대, 로케이션, 목적, 및 전력 데이터(449, 도 4))를 획득하기 위한 예시적인 사용자 인터페이스들을 도시한다. 일부 구현들에서, 사용자 인터페이스들은 클라이언트 디바이스(204)의 사용자 인터페이스 모듈(626)에 의해 구현된다. 일부 구현들에서, 점유자가 환경에 대한 디바이스들을 구성할 때, 점유자는 설치 프로세스의 부분으로서 애플리케이션(예컨대, 도 6의 624)을 사용한다.
[00115] 사용자 인터페이스(1110)는 애플리케이션에서 구성하기 위한 특정 디바이스(예컨대, 전자 디바이스(222))를 추가하도록 점유자를 촉구한다. 일부 구현들에서, 점유자는 코드(예컨대, QR 코드)를 스캔하거나 특정 디바이스를 식별하기 위해 애플리케이션에 의해 사용되는 정보를 수동으로 입력한다.
[00116] 사용자 인터페이스(1120)는 (예컨대, 홈 또는 회사를 지켜보고, 아기 모니터로서 작용하는 등과 같은 디바이스 프로파일의 형태로) 디바이스에 대한 목적을 선택하도록 점유자를 촉구한다. 일부 구현들에서, 식별된 프로파일은 서버 시스템(164)에서 디바이스에 대한 목적 정보(449b)(도 4)로서 저장된다.
[00117] 사용자 인터페이스(1130)는 디바이스에 대한 로케이션(예컨대, 설치 로케이션, 또는 디바이스가 배터리-전력공급 보안 카메라와 같이 휴대용인 경우 디바이스가 동작 동안 로케이팅되도록 의도된 로케이션)을 선택하도록 점유자를 촉구한다. 일부 구현들에서, 로케이션은 로케이션 유형(예컨대, 실내, 실외), 특정 방(예컨대, 거실, 어린이집), 및/또는 영역 또는 존(예컨대, 출입구, 복도)을 포함한다. 일부 구현들에서, 식별된 로케이션 데이터는 서버 시스템(164)에 디바이스에 대한 로케이션 정보(449a)(도 4)로서 저장된다.
[00118] 사용자 인터페이스(1140)는 디바이스에 대한 알림들(예컨대, 점유자가 클라이언트 디바이스(204)에서 전자 알림들을 수신하는 데 관심이 있는 검출된 오브젝트들 및/또는 발생들)을 선택하도록 점유자를 촉구한다. 일부 구현들에서, 알림들은 식별된 사람들(예컨대, 알려진 사람, 미지의 사람), 오브젝트 유형들(예컨대, 동물들, 차량들, 패키지들, 사람들), 오디오 발생(예컨대, 개 짖는 소리, 유리 깨짐, 아기 울음, 시끄러운 소음), 또는 임의의 다른 유형의 오브젝트 또는 발생(예컨대, 도 5의 예시적인 포뮬러들(442)에 포함된 것들)에 대응한다. 일부 구현들에서, 알림 선택 데이터는 서버 시스템(164)에 디바이스에 대한 목적 정보(449b)(도 4)로서 저장된다.
[00119] 도 12는 일부 구현들에 따른 이벤트 프로세싱 프로세스(1200)의 흐름도이다. 프로세스는, 하나 이상의 프로세서들(예컨대, CPU(들)(302)) 및 하나 이상의 프로세서들에 의한 실행을 위한 하나 이상의 프로그램들을 저장하는 메모리(예컨대, 메모리(306))를 갖는 전자 디바이스(예컨대, 전자 디바이스(222)); 하나 이상의 프로세서들(예컨대, CPU(들)(402)) 및 하나 이상의 프로세서들에 의한 실행을 위한 하나 이상의 프로그램들을 저장하는 메모리(예컨대, 메모리(406))를 갖는 서버 시스템(예컨대, 서버 시스템(164)); 및/또는 하나 이상의 프로세서들(예컨대, CPU(들))(602) 및 하나 이상의 프로세서들에 의한 실행을 위한 하나 이상의 프로그램들을 저장하는 메모리(예컨대, 메모리(606))를 갖는 클라이언트 디바이스(예컨대, 클라이언트 디바이스(204))에서 수행될 수 있다. 일부 구현들에서, 전자 디바이스, 서버 시스템, 및 클라이언트 디바이스는 하나 이상의 개개의 프로세서들에 의한 실행을 위한 하나 이상의 개개의 프로그램들을 저장하는 하나 이상의 프로그램들 및 메모리들을 포함하고, 하나 이상의 프로그램들은 프로세스(1200)를 수행하기 위한 명령들을 포함한다. 일부 구현들에서, 개개의 비-일시적 컴퓨터 판독 가능 저장 매체들은 하나 이상의 개개의 프로그램들을 저장하고, 하나 이상의 개개의 프로그램들은 명령들을 포함하며, 이 명령들은, 하나 이상의 개개의 프로세서들을 갖는 전자 디바이스, 서버 시스템 및 클라이언트 디바이스에 의해 실행될 때, 전자 디바이스, 서버 시스템 및 클라이언트 디바이스로 하여금 프로세스(1200)를 수행하게 한다.
[00120] 프로세스(1200)는 클라이언트 디바이스(204)가 특정 전자 디바이스(222)에 대한 구성 데이터(예컨대, 로케이션 데이터(449a), 목적 데이터(449b), 및/또는 전력 데이터(449c) 중 하나 이상)를 수신(1202)할 때 시작된다. 일부 구현들에서, 구성 데이터는 도 11을 참조하여 위에서 설명된 인터페이스들 중 하나 이상을 사용하여 수신된다. 사용자들이 이벤트의 로케이션에 기초하여 다양한 종류들의 이벤트-관련 데이터를 검토하는 데 관심이 있을 수 있음을 인식하면, 로케이션 데이터는 디바이스의 설치 로케이션 또는 (예컨대, 사용자 인터페이스(1130) 참조하여) 디바이스가 달리 모니터링하도록 의도된 로케이션을 지정한다. 또한, 사용자들이 이벤트 유형에 기초하여 다양한 종류들의 이벤트-관련 데이터를 검토하는 데 관심이 있을 수 있음을 인식하면, 목적 데이터는 예컨대, (예컨대, 사용자 인터페이스(1120)를 참조하여) 디바이스 프로파일들 또는 (예컨대, 사용자 인터페이스(1140)를 참조하여) 알림 선택들에 기초하여 디바이스의 의도된 사용을 지정한다. 예컨대, 사용자는, 이벤트들이 카메라의 시야에서 사람들 또는 패키지들과 관련된 발생들을 포함하는 경우 실외 보안 카메라로부터 이 이벤트들을 수신하는 데 관심이 있을 수 있다. 그러나, 사용자는 이벤트들이 시끄러운 소음들 또는 차량들과 관련된 발생들을 포함하는 경우 실외 보안 카메라로부터 이 이벤트들을 수신하는데 관심이 없을 수 있다. 마찬가지로, 전자 디바이스(222)가 어린이집에 설치된 아기 모니터로서 사용되는 경우, 사용자는 이벤트들이 아기가 우는 사운드와 관련되는 경우 이 이벤트들을 수신하는 데 관심이 있을 수 있는 반면, 차량 및 패키지 검출과 같은 발생들은 관심이 없을 가능성이 높을 것이다.
[00121] 클라이언트 디바이스(204)는 구성 데이터를 서버(164)에 송신하고 ― 이 서버(164)는 (예컨대, 디바이스 제어 모듈(418)을 사용하여) 구성 데이터(438)에 기초하여 하나 이상의 이벤트 포뮬러들(442)을 결정함(1204) ― 이러한 포뮬러들을 특정 전자 디바이스(222)에 송신한다. 디바이스 제어 모듈(418)은 구성 데이터에 기초하여 이벤트 포뮬러들을 결정한다. 다른 말로 하면, 서버는 디바이스의 로케이션 및 의도된 사용에 기초하여 디바이스에 대한 이벤트 파라미터들 이를테면, 패딩, 무활동 임계치들 및 최대 이벤트 길이를 결정한다. 일부 구현들에서, 포뮬러들은 동적인데 ― 즉, 파라미터들은 이벤트의 유형, 검출된 오브젝트의 유형, 이벤트의 길이 및/또는 이벤트를 정의하거나 다른 방식으로 설명하는 임의의 다른 속성에 기초하여 동적으로 변한다. 일부 구현들에서, 동적 포뮬러들은 위에서 언급된 이벤트-관련 속성들에 기초하여 동적으로 변하도록 구성된 초기 값들로 파라미터들(443)을 세팅한다. 일부 구현들에서, 서버는 이벤트 레코딩 프로파일로서 하나 이상의 이벤트 포뮬러들(442)을 전자 디바이스(222)에 송신한다. 일부 구현들에서, 서버는 개별 포뮬러들(442)을 전자 디바이스(222)에 송신한다.
[00122] 전자 디바이스(222)는 서버(164)로부터 이벤트 포뮬러들을 캡처하거나, 수신하거나 또는 다른 방식으로 획득(1206)한다. 일부 구현들에서, 디바이스는 서버로부터 프로파일 레코딩 파라미터들(380)을 포함하는 이벤트 레코딩 프로파일을 획득한다. 일부 구현들에서, 파라미터들(380)은 이벤트 포뮬러들 및/또는 포뮬러들을 포함하는 이벤트 레코딩 프로파일들에 의해 세팅된다. 이벤트 레코딩 파라미터들(380)은 디바이스(222)의 타겟팅된 이벤트 레코딩 동작들(예컨대, 이벤트들의 타겟팅된 레코딩)을 위해 사용되고, 이들은 파라미터들 이를테면, 패딩 파라미터들(382)(예컨대, 관심의 오브젝트의 검출 이전 및 이후를 레코딩하는 시간량, 예컨대, 도 9의 914 및 916 참조), 무활동 임계치들(384)(예컨대, 후속 활동을 포함하기 위해 이벤트를 계속하는 대신 이벤트를 종료하기 전에 대기하는 시간량, 예컨대, 도 9의 시간들 D 및 I 참조), 최대 이벤트 길이 파라미터들(386)(예컨대, 디바이스가 레코딩을 중단하기 전에 이벤트가 얼마나 오래 지속될 수 있는지), 쿨-오프 파라미터들(388)(예컨대, 오브젝트 검출 레이트 ― 이를 초과 시 이벤트의 레코딩이 중단됨 ―), 및/또는 오브젝트 필터들 및 우선순위 세팅들(390)(예컨대, 이벤트를 레코딩하기 위한 기준으로서 어떤 오브젝트들이 카운트될 수 있는지 결정함, 예는 도 5의 예시적인 포뮬러들 참조)을 포함한다. 일부 구현들에서, 이러한 조정 가능한 파라미터들은 (i) 디바이스의 로케이션(예컨대, 실내, 실외, 어느 방 등), (ii) 디바이스의 의도된 사용(예컨대, 디바이스의 시야에 있는 것 및 사용자가 보고 싶어하는 것) 및/또는 (iii) 디바이스의 전력 유형(예컨대, 유선-전력공급 또는 배터리-전력공급)와 같은 전자 디바이스(222)의 구성 데이터(438)에 기초하여 서버에 의해 세팅되었다.
[00123] 전자 디바이스(222)는 비디오 스트림(예컨대, 카메라(362)에 의해 캡처된 장면의 복수의 이미지들)을 캡처, 수신 또는 다른 방식으로 획득하고(1208), 일부 구현들에서, 디바이스(222) 상에(예컨대, 버퍼(392)에) 비디오 스트림의 적어도 일부를 로컬로 저장한다. 디바이스(222)는 획득된 비디오 스트림에 기초하여(예컨대, 위에서 트리거 검출 모듈(352)을 참조하여 설명된 바와 같이 예컨대, 모션 또는 다른 트리거를 검출함으로써 장면의 복수의 이미지들 중 하나 이상에 기초하여) 트리거 이벤트를 검출한다(1210). 트리거 이벤트를 검출하는 것에 대한 응답으로, 디바이스(222)는 (예컨대, 위에서 오브젝트 인식 모듈(354)을 참조하여 설명된 바와 같이 하나 이상의 오브젝트 인식 프로세스들을 수행함으로써) 장면의 복수의 이미지들 중 하나 이상에서 관심의 발생 또는 오브젝트를 식별한다(1212). 디바이스(222)는 (예컨대, 위에서 이벤트 합성 모듈(356)을 참조하여 설명된 바와 같이) 이벤트 레코딩 및 프로세싱 세팅들(380)에 따라 관심의 오브젝트를 포함하는 저장된 이미지들로부터 이벤트 클립을 생성한다(1214). 디바이스(222)는 디스플레이를 위한 이벤트 클립을 제공한다. 일부 구현들에서, 디스플레이를 위해 이벤트 클립을 제공하는 것은 클라이언트 디바이스(204)에서 저장(1216) 및 추후 뷰잉(1218)을 위해 서버(164) 또는 허브(180)에 이벤트 클립을 송신하는 것을 포함한다. 일부 구현들에서, 특히 디바이스(222)가 디스플레이 스크린을 포함하는 경우, 디스플레이를 위해 이벤트 클립을 제공하는 것은 이벤트 클립을 로컬로 저장하고 (예컨대, 사용자가 디스플레이를 위해 이벤트 클립을 열거나 다른 방식으로 선택하는 것에 대한 응답으로) 디바이스(222)에서 이벤트 클립을 디스플레이하는 것을 포함한다.
[00124] 일부 구현들에서, 이벤트 레코딩 포뮬러들은 사용자의 관점으로부터 이벤트 검출 및 프로세싱의 품질을 추가로 최적화하기 위해 디바이스(222) 또는 서버(164)에서 구현되는 기계 학습 알고리즘들에 따른다. 예컨대, 일부 구현들에서, 점유자는 클라이언트 디바이스(204)를 사용하여, 하나 이상의 이벤트들(예컨대, 도 10의 1006)에 관한 피드백을 입력한다. 예시적인 피드백은 (예컨대, 점유자가 부적절하거나 그렇지 않고 관심이 없는 것으로 분류한 이벤트 및/또는 그의 근본 오브젝트들 또는 발생들에 대해) 거절 피드백 및/또는 특정 포뮬러에서 이벤트 레코딩 파라미터들 중 하나 이상을 조정하기 위한(예컨대, 특정 유형의 오브젝트 검출에 대한 패딩 값들을 조정하고, 특정 유형의 검출된 발생에 대한 최대 이벤트 길이 값을 조정하는 등을 위한) 맞춤화(customization) 피드백을 포함한다. 일부 구현들에서, 기계 학습 모듈은 점유자 피드백에 기초하여 특정 유형들의 이벤트들 및 디바이스 구성들에 대한 후속 이벤트 프로파일 세팅들(380)을 조정한다.
[00125] 본원에서의 다양한 설명된 구현들의 설명에서 사용된 용어는 특정한 구현들만을 설명하려는 목적을 위한 것이며, 제한하는 것으로 의도되지 않는다. 다양한 설명된 구현들 및 첨부된 청구항들의 설명에서 사용된 바와 같이, 단수형들은, 맥락이 명백하게 다르게 표시하지 않는 한, 복수형들을 또한 포함하도록 의도된다. 본원에서 사용된 바와 같이, 용어 "및/또는"은 연관된 나열된 아이템들 중 하나 이상의 아이템의 임의의 그리고 모든 가능한 결합들을 지칭하고 이들을 포함한다는 것이 또한 이해될 것이다. 추가로, 용어들 "포함하는"("includes", "including", "comprises" 및/또는 "comprising")이 본 명세서에서 사용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 이해될 것이다. 부가적으로, 용어들 "제1", "제2" 등이 다양한 엘리먼트들을 설명하기 위해 본원에서 사용될 수 있지만, 이들 엘리먼트들이 이들 용어들에 의해 제한되지 않아야 함을 이해할 것이다. 이러한 용어들은 하나의 엘리먼트를 다른 엘리먼트와 구별하기 위해서만 사용된다.
[00126] 본원에서 사용된 바와 같이, 용어 "~인 경우"는 맥락에 의존하여, "~일 때" 또는 "~ 시에" 또는 "~를 결정하는 것에 대한 응답으로" 또는 "~를 검출하는 것에 대한 응답으로" 또는 "~라는 결정에 따라"를 의미하도록 선택적으로 해석된다. 유사하게, 어구 "~로 결정되는 경우" 또는 "[언급된 조건 또는 이벤트]가 검출되는 경우"는 맥락에 의존하여, "~라고 결정할 시에" 또는 "~라고 결정하는 것에 대한 응답으로" 또는 "[언급된 조건 또는 이벤트]를 검출할 시에" 또는 "[언급된 조건 또는 이벤트]를 검출하는 것에 대한 응답으로" 또는 "[언급된 조건 또는 이벤트]가 검출된다는 결정에 따라"를 의미하도록 선택적으로 해석된다.
[00127] 전술한 설명은, 설명의 목적을 위해, 특정 실시예들을 참조하여 설명되었다. 그러나, 위의 예시적인 논의들은, 총망라하는 것으로 또는 청구항들을 개시된 바로 그 형태들로 제한하도록 의도되지 않는다. 위의 교시들의 관점에서 다수의 수정들 및 변동들이 가능하다. 실시예들은 동작의 원리들 및 실제 애플리케이션들을 가장 잘 설명하고 그리하여 당업자가 가능하게 하도록 선택되고 설명되었다.
[00128] 다양한 도면들이 특정한 순서로 다수의 논리 스테이지들을 예시하지만, 순서에 의존하지 않는 스테이지들은 재순서화될 수 있고, 다른 스테이지들은 결합 또는 분해될 수 있다. 일부 재순서화 또는 다른 그룹화들이 구체적으로 언급되었지만, 다른 것들은 당업자들에게 자명할 것이므로, 본원에서 제시된 순서화 및 그룹화들은 대안들의 총망라하는 목록이 아니다. 또한, 스테이지들이 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있다는 것이 인식되어야 한다.
[00129] 위의 설명은, 설명의 목적을 위해, 특정 구현들을 참조하여 설명되었다. 그러나, 위의 예시적인 논의들은, 총망라하는 것으로 또는 청구항들의 범위를 개시된 바로 그 형태들로 제한하는 것으로 의도되지 않는다. 위의 교시들의 관점에서 다수의 수정들 및 변동들이 가능하다. 청구항들의 기초를 이루는 원리들 및 그들의 실제 애플리케이션들을 가장 잘 설명하고 그리하여 당업자들이 고려된 특정 사용들에 적합하게 다양한 수정들을 한 구현들을 가장 잘 사용하는 것을 가능하게 하기 위해 구현들이 선택되었다.

Claims (16)

  1. 방법으로서,
    전자 디바이스에 대한 이벤트 레코딩 프로파일(event recording profile)을 수신하는 단계 ― 상기 이벤트 레코딩 프로파일은 상기 전자 디바이스의 구성 데이터에 기초하며, 상기 구성 데이터는 로케이션 유형(location type) 또는 전력 유형을 포함함 ― ;
    상기 전자 디바이스의 하나 이상의 이미지 센서들에 의해 캡처된 장면의 복수의 이미지들을 수신하는 단계;
    상기 장면의 복수의 이미지들 중 하나 이상에 기초하여 트리거 이벤트를 검출하는 단계;
    상기 트리거 이벤트를 검출한 것에 대한 응답으로, 상기 장면의 복수의 이미지들 중 하나 이상에서 관심의 오브젝트를 식별하는 단계;
    상기 관심의 오브젝트를 포함하는 저장된 이미지들로부터 이벤트 클립(event clip)을 생성하는 단계 ― 상기 이벤트 클립을 생성하는 단계는 상기 이벤트 레코딩 프로파일에 기초하여 클립 길이를 구성하는 단계를 포함함 ― ; 및
    디스플레이를 위해 상기 이벤트 클립을 제공하는 단계를 포함하는,
    방법.
  2. 제1 항에 있어서,
    상기 클립 길이를 구성하는 단계는 패딩 값, 무활동 임계치(inactivity threshold) 및/또는 최대 이벤트 길이를 세팅(setting)하는 단계를 포함하는,
    방법.
  3. 제1 항 또는 제2 항에 있어서,
    상기 클립 길이를 구성하는 단계는 패딩 값을 선택하는 단계를 포함하고;
    상기 패딩 값은 상기 검출된 관심 오브젝트를 포함하는 상기 복수의 이미지들 중 하나 이상에 선행하는 획득된 이미지들의 수에 대응하고; 그리고
    상기 이벤트를 생성하는 단계는 상기 검출된 관심 오브젝트를 포함하는 복수의 이미지들에 상기 수의 이미지들을 추가하는 단계를 포함하는,
    방법.
  4. 제1 항 내지 제3 항 중 어느 한 항에 있어서,
    상기 클립 길이를 구성하는 단계는 무활동 임계치를 선택하는 단계를 포함하고;
    상기 무활동 임계치는 상기 관심의 오브젝트가 더 이상 검출되지 않는 획득된 이미지들의 수에 대응하고; 그리고
    상기 이벤트를 생성하는 단계는 상기 검출된 관심 오브젝트를 포함하는 복수의 이미지들에 상기 수의 이미지들을 추가하는 단계를 포함하는,
    방법.
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 클립 길이를 구성하는 단계는 최대 이벤트 길이를 선택하는 단계를 포함하고;
    상기 최대 이벤트 길이는 상기 이벤트에 대한 이미지들의 최대 수에 대응하고; 그리고
    상기 이벤트를 생성하는 단계는 상기 이미지들의 최대 수에 도달 시에 상기 이벤트를 종료하는 단계를 포함하는,
    방법.
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    상기 구성 데이터는 환경의 구조의 특정 영역에 대응하는 로케이션 유형을 포함하고; 그리고
    상기 이벤트 레코딩 프로파일에 기초하여 상기 이벤트 길이를 구성하는 단계는, 상기 전자 디바이스가 로케이팅되는 환경 또는 구조의 특정 영역에 기초하여 상기 패딩 값, 상기 무활동 임계치, 및/또는 상기 최대 이벤트 길이를 선택하는 단계를 포함하는,
    방법.
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 구성 데이터는 전력 유형이고; 그리고
    상기 이벤트 레코딩 프로파일에 기초하여 상기 이벤트 길이를 구성하는 단계는, 상기 전자 디바이스의 전력 유형이 유선-전력공급인지 아니면 배터리-전력공급인지에 기초하여 상기 패딩 값, 상기 무활동 임계치, 및/또는 상기 최대 이벤트 길이를 선택하는 단계를 포함하는,
    방법.
  8. 제1 항 내지 제7 항 중 어느 한 항에 있어서,
    상기 구성 데이터는 오브젝트 우선순위 데이터를 더 포함하고; 그리고
    상기 이벤트 레코딩 프로파일에 기초하여 상기 이벤트 길이를 구성하는 단계는, 상기 오브젝트 우선순위 데이터에 따라 상기 식별된 관심의 오브젝트의 우선순위에 기초하여 상기 패딩 값, 상기 무활동 임계치, 및/또는 상기 최대 이벤트 길이를 선택하는 단계를 포함하는,
    방법.
  9. 제1 항 내지 제8 항 중 어느 한 항에 있어서,
    상기 클립 길이를 구성하는 단계는 임계량의 시간 내에서 둘 이상의 오브젝트 검출들이 발생한 후 연속적인 오브젝트 검출들 사이에서 대기하는 시간량에 대응하는 쿨-오프 값(cool-off value)을 세팅하는 단계를 포함하는,
    방법.
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 클립 길이를 구성하는 단계는 상기 이벤트 레코딩 프로파일과 연관된 값들의 조합에 따라 패딩 값, 무활동 임계치 및 최대 이벤트 길이를 세팅하는 단계를 포함하는,
    방법.
  11. 제1 항 내지 제10 항 중 어느 한 항에 있어서,
    상기 트리거 이벤트를 검출하는 단계는 상기 장면의 복수의 이미지들 중 2개 이상의 분석에 기초하여 상기 장면에서 모션을 검출하는 단계를 포함하는,
    방법.
  12. 제1 항 내지 제11 항 중 어느 한 항에 있어서,
    상기 트리거 이벤트를 검출하는 단계는 상기 장면의 복수의 이미지들 중 하나 이상의 분석에 기초하여 상기 장면에서 상기 관심의 오브젝트를 검출하는 단계를 포함하는,
    방법.
  13. 제1 항 내지 제12 항 중 어느 한 항에 있어서,
    상기 이벤트 클립을 이전에 생성된 이벤트 클립과 결합하여 결합된 이벤트 클립을 형성하는 단계를 더 포함하고; 그리고
    상기 디스플레이를 위해 이벤트 클립을 제공하는 단계는 디스플레이를 위해 상기 결합된 이벤트 클립을 제공하는 단계를 포함하는,
    방법.
  14. 전자 디바이스로서,
    하나 이상의 프로세서들; 및
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금, 제1 항 내지 제13 항 중 어느 한 항의 방법을 수행하게 하는 명령들을 저장하는 메모리를 포함하는,
    전자 디바이스.
  15. 서버 시스템으로서,
    하나 이상의 프로세서들; 및
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금, 제1 항 내지 제13 항 중 어느 한 항의 방법을 수행하게 하는 명령들을 저장하는 메모리를 포함하는,
    서버 시스템.
  16. 하나 이상의 프로세서들을 갖는 전자 디바이스에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 제1 항 내지 제13 항 중 어느 한 항의 방법을 수행하게 하는 명령들을 저장하는,
    비-일시적 컴퓨터-판독 가능 저장 매체.
KR1020227007241A 2019-09-06 2020-09-04 이벤트 기반 레코딩 KR20220041911A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962897233P 2019-09-06 2019-09-06
US62/897,233 2019-09-06
PCT/US2020/049368 WO2021046324A1 (en) 2019-09-06 2020-09-04 Event based recording

Publications (1)

Publication Number Publication Date
KR20220041911A true KR20220041911A (ko) 2022-04-01

Family

ID=72561984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227007241A KR20220041911A (ko) 2019-09-06 2020-09-04 이벤트 기반 레코딩

Country Status (6)

Country Link
US (2) US11895433B2 (ko)
EP (1) EP4026313A1 (ko)
JP (2) JP7393526B2 (ko)
KR (1) KR20220041911A (ko)
CN (2) CN117749971A (ko)
WO (1) WO2021046324A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10084848B2 (en) * 2012-10-16 2018-09-25 At&T Intellectual Property I, L.P. Centralized control of user devices via universal IP services registrar/hub
CN117749971A (zh) 2019-09-06 2024-03-22 谷歌有限责任公司 基于事件的记录
US20220335795A1 (en) * 2021-04-16 2022-10-20 Dice Corporation Hyperlinked digital video alarm electronic document
KR20240009467A (ko) * 2021-05-19 2024-01-22 인터디지탈 패튼 홀딩스, 인크 사용자 인식 자동화된 콘텐츠 캡처 및 증강
JP2023102078A (ja) * 2022-01-11 2023-07-24 ヤマハ株式会社 記録方法および記録装置
US20240015045A1 (en) * 2022-07-07 2024-01-11 Paulmicheal Lee King Touch screen controlled smart appliance and communication network

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4025100B2 (ja) * 2002-03-14 2007-12-19 株式会社日立製作所 映像利用遠隔認識配信方法及びその実施システム並びにその処理プログラム
JP3994787B2 (ja) * 2002-04-25 2007-10-24 株式会社日立製作所 監視カメラシステム
JP4775931B2 (ja) * 2004-06-30 2011-09-21 キヤノンマーケティングジャパン株式会社 画像処理装置、画像処理システム、画像処理方法及びプログラム
JP4626483B2 (ja) * 2005-10-27 2011-02-09 ソニー株式会社 サーバ装置、データ処理方法、プログラムおよび通信方法
US9325951B2 (en) * 2008-03-03 2016-04-26 Avigilon Patent Holding 2 Corporation Content-aware computer networking devices with video analytics for reducing video storage and video communication bandwidth requirements of a video surveillance network camera system
US9940508B2 (en) * 2010-08-26 2018-04-10 Blast Motion Inc. Event detection, confirmation and publication system that integrates sensor data and social media
US20120148216A1 (en) 2010-12-14 2012-06-14 Qualcomm Incorporated Self-editing video recording
US9129640B2 (en) * 2012-12-12 2015-09-08 Crowdflik, Inc. Collaborative digital video platform that enables synchronized capture, curation and editing of multiple user-generated videos
WO2014144628A2 (en) * 2013-03-15 2014-09-18 Master Lock Company Cameras and networked security systems and methods
US20150243325A1 (en) * 2014-02-24 2015-08-27 Lyve Minds, Inc. Automatic generation of compilation videos
US20190013047A1 (en) * 2014-03-31 2019-01-10 Google Inc. Identifying interesting portions of videos
US9846815B2 (en) * 2015-07-16 2017-12-19 Google Inc. Image production from video
WO2016014724A1 (en) * 2014-07-23 2016-01-28 Gopro, Inc. Scene and activity identification in video summary generation
JP2017503394A (ja) * 2014-12-14 2017-01-26 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd 映像処理方法、映像処理装置および表示装置
WO2016095361A1 (en) 2014-12-14 2016-06-23 SZ DJI Technology Co., Ltd. Methods and systems of video processing
US20160225410A1 (en) * 2015-02-03 2016-08-04 Garmin Switzerland Gmbh Action camera content management system
US20170076156A1 (en) * 2015-09-14 2017-03-16 Logitech Europe S.A. Automatically determining camera location and determining type of scene
US10319410B1 (en) * 2015-12-21 2019-06-11 Amazon Technologies, Inc. Video story assembly
US10430051B2 (en) * 2015-12-29 2019-10-01 Facebook, Inc. Multi-user content presentation system
US20180330169A1 (en) * 2017-05-12 2018-11-15 Google Inc. Methods and Systems for Presenting Image Data for Detected Regions of Interest
US10182222B2 (en) * 2017-05-12 2019-01-15 Garmin Switzerland Gmbh Graphical object overlays for 360 degree cameras
CN117749971A (zh) 2019-09-06 2024-03-22 谷歌有限责任公司 基于事件的记录

Also Published As

Publication number Publication date
JP7393526B2 (ja) 2023-12-06
US20240146866A1 (en) 2024-05-02
WO2021046324A1 (en) 2021-03-11
CN117749971A (zh) 2024-03-22
CN114342357B (zh) 2023-12-08
JP2024028748A (ja) 2024-03-05
CN114342357A (zh) 2022-04-12
US11895433B2 (en) 2024-02-06
JP2022546438A (ja) 2022-11-04
US20220295008A1 (en) 2022-09-15
EP4026313A1 (en) 2022-07-13

Similar Documents

Publication Publication Date Title
US11710387B2 (en) Systems and methods of detecting and responding to a visitor to a smart home environment
US11671662B2 (en) Methods and systems for controlling media display in a smart media display environment
US20220247978A1 (en) Systems and Methods of Detecting and Responding to a Visitor to a Smart Home Environment
US11895433B2 (en) Event based recording
WO2020076365A1 (en) Display assistant device for home monitoring
US20180349708A1 (en) Methods and Systems for Presenting Image Data for Detected Regions of Interest
US11429192B2 (en) Confidence-based application-specific user interactions
US10028023B2 (en) Methods and systems for automatic media output based on user proximity
US11743578B2 (en) Systems and methods of power-management on smart devices
US11570354B2 (en) Display assistant device having a monitoring mode and an assistant mode
EP3839580B1 (en) Confidence-based application-specific user interactions
US20230179855A1 (en) Display assistant device having a monitoring mode and an assistant mode
US12001614B2 (en) Confidence-based application-specific user interactions
US20220357801A1 (en) Confidence-based application-specific user interactions

Legal Events

Date Code Title Description
E902 Notification of reason for refusal