KR20150087253A - 전력 효율적인 분류를 위한 순차적인 특징 컴퓨팅 - Google Patents

전력 효율적인 분류를 위한 순차적인 특징 컴퓨팅 Download PDF

Info

Publication number
KR20150087253A
KR20150087253A KR1020157014160A KR20157014160A KR20150087253A KR 20150087253 A KR20150087253 A KR 20150087253A KR 1020157014160 A KR1020157014160 A KR 1020157014160A KR 20157014160 A KR20157014160 A KR 20157014160A KR 20150087253 A KR20150087253 A KR 20150087253A
Authority
KR
South Korea
Prior art keywords
computing
feature
features
sensor
characteristic
Prior art date
Application number
KR1020157014160A
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 KR20150087253A publication Critical patent/KR20150087253A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • Y02B60/144
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Power Sources (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

특징들의 전력 효율적인 프로세서 스케줄링 위한 장치 및 방법이 개시된다. 일 실시예에서, 특징들은 순차적 컴퓨팅을 위해 스케줄링될 수 있으며, 각 스케줄링된 특징은 입력으로서 센서 데이터 샘플을 수신할 수 있다. 일 실시예에서, 스케쥴링은 각각의 특징의 예상 전력 사용에 적어도 부분적으로 기초할 수 있다. 일 실시예에서, 특징들의 순차적 스케줄링 중 제 1 특징이 컴퓨팅될 수 있으며, 특징들의 순차적 스케줄링 중 제 2 특징을 컴퓨팅하기 전에, 종료 조건이 평가될 수 있다.

Description

전력 효율적인 분류를 위한 순차적인 특징 컴퓨팅{SEQUENTIAL FEATURE COMPUTATION FOR POWER EFFICIENT CLASSIFICATION}
[0001] 본원에 개시된 발명의 요지는 일반적으로 파워 관리 기술 및 특징 스케줄링 기능에 관한 것이다.
[0002] 전자 디바이스는 디바이스의 환경에 대한 정보를 모니터링하고 발견하기 위해 다양한 센서들 및 입력들이 장착될 수 있다. 예를 들어, 디바이스에 커플링된 가속도계는 디바이스 이동의 양상을 측정하는데 사용될 수 있다.
[0003] 디바이스에서 실행중인 프로그램들 또는 애플리케이션들은 가속도계와 같은, 센서들로부터 수신된 데이터를 빈번하게 사용할 수 있고, 강화된 사용자 환경을 제공하기 위해 센서들로부터의 인입 데이터를 빈번하게 프로세싱할 수 있다. 일부 경우에, 디바이스는 다수의 활성 센서들로부터의 인입 데이터를 계속하여 프로세싱한다. 일부의 경우, 센서 데이터를 프로세싱하기 위한 코드나 프로그램들은 비교적 많은 양의 전력 자원들을 사용할 수 있다. 디바이스 센서 데이터의 지속적인 그리고/또는 집중적인 프로세싱은 전지를 소진하기 전에 사용자가 디바이스를 사용할 수 있는 시간의 길이에 상당한 영향을 미칠 수 있다.
[0004] 따라서, 새롭고 개선된 전력 효율 센서 데이터 프로세싱 기술들이 바람직하다.
[0005] 본원에 개시된 실시예들은 순차적 컴퓨팅을 위한 특징들을 스케줄링하는 디바이스에 관한 것일 수 있다. 디바이스는 메모리에 커플링된 메모리 및 프로세서를 포함할 수 있다. 프로세서는 컴퓨팅을 위한 복수의 특징들을 순차적으로 스케줄링하도록 구성될 수 있으며, 복수의 특징들 각각은 입력으로서 센서 데이터 샘플을 수신하고, 스케줄링은 각각의 특징의 예상 전력 사용에 적어도 부분적으로 기초한다. 일 실시예에서, 컴퓨팅을 위한 특징들의 순차적 스케줄에서 제 2 특징을 컴퓨팅하기 전에 제 1 특징이 컴퓨팅되고 종료 조건이 평가된다.
[0006] 일부 실시예에서, 방법은, 순서화된 복수의 특징들 중 제 1 특징을 컴퓨팅하는 단계 -복수의 특징들 각각은 입력으로서 센서 데이터 샘플을 수신하고, 복수의 특징의 순서는 복수의 특징들 중 적어도 일 특징을 위한 예상 컴퓨팅 전력 사용에 기초함- 및 순서화된 복수의 특징들 중 제 2 특징을 컴퓨팅하기 전에, 종료 조건을 평가하는 단계를 포함한다. 일부 실시예에서, 복수의 특징들은 순차적으로 순서화된다. 일부 실시예들에서, 상기 방법은 복수의 특징들 중 각 특징에 대한 컴퓨팅 전력 사용을 추정하는 단계, 및 추정에 기초하여 복수의 특징들을 순서화하는 단계를 더 포함한다. 일부 실시예에서, 상기 방법은, 종료 조건이 제 1 특징의 컴퓨팅의 결과로서 충족된다고 결정하는 단계; 및 센서 데이터 샘플을 분류하는 단계를 더 포함한다. 일부 실시예들에서, 상기 방법은, 컴퓨팅을 위한 특징들의 순차적 순서로 제 2 특징을 컴퓨팅하는 단계; 종료 조건이 제 2 특징의 컴퓨팅 결과에 의해 만족된다고 결정하는 단계; 및 센서 데이터 샘플을 분류하는 단계를 더 포함한다. 일부 실시예들에서, 센서 데이터 샘플은 하나 이상의 센서에서 유래한다. 일부 실시예들에서, 센서들은 가속도계, 자이로스코프, 자력계, 또는 마이크로폰 중 하나 또는 그 이상이다. 일부 실시예들에서, 종료 조건을 평가하는 단계는 제 1 특징을 트레이닝 데이터 세트와 비교하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은, 신뢰도 값을 컴퓨팅하는 단계; 신뢰도 값이 임계값보다 크다는 것에 기초하여 종료 조건이 충족된다고 결정하는 단계를 더 포함한다. 일부 실시예들에서, 복수의 특징들의 순서는 센서 데이터 샘플 분류에 대한 특징의 예상된 가능성에 추가로 기초한다. 일부 실시예들에서, 상기 방법은 제 1 특징을 미리 컴퓨팅된 트레이닝 데이터 샘플과 비교하는 단계를 더 포함한다.
[0007] 일부 실시예들에서, 방법은, 특징들에 대한 예상 컴퓨팅 전력 사용에 기초하여 복수의 특징 중 하나 또는 그 이상의 특징들을 순차적으로 컴퓨팅하는 단계 -복수의 특징들 각각은 입력으로서 센서 데이터 샘플을 수신함- ; 및 복수의 특징들의 추가 특징들을 컴퓨팅하기 전에 종료 조건을 평가하는 단계를 포함한다. 일부 실시예들에서, 종료 조건은 각 특징이 컴퓨팅된 후 평가된다. 일부 실시예들에서, 상기 방법은 상기 컴퓨팅된 특징에 기초하여 센서 데이터 샘플을 분류하는 단계를 더 포함한다.
[0008] 도 1은 본 개시의 양상이 실시될 수 있는 시스템의 블록도이다.
[0009] 도 2는 일 실시예에서, 센서들 및 예시적인 프로세싱 모듈을 포함하는 시스템의 블록도이다.
[0010] 도 3은 일 실시예에서 순차적 특징 컴퓨팅의 흐름도를 도시한다.
[0011] 도 4는 일 실시예에서 전력 프로파일 모듈에 의해 수행될 수 있는 프로세스의 흐름도를 도시한다.
[0012] 도 5는 일 실시예에서 특징 공간에서 세 클래스들에 대한 트레이닝 데이터를 도시하는 차트이다.
[0013] 도 6은 일 실시예에서 스케줄링 모듈에 의해 수행될 수 있는 프로세스의 흐름도를 도시한다.
[0014] 도 7은 모션 상태 분류에 대한 특징들을 프로세싱하는 방법의 일 실시예의 흐름도를 도시한다.
[0015] 도 7b는 모션 상태 분류에 대한 특징들을 프로세싱하는 방법의 일 실시예의 흐름도를 도시한다.
[0016] 도 8은 음성 검출에 대한 특징들을 프로세싱하는 방법의 일 실시예의 흐름도를 도시한다.
[0017] 도 9는 디바이스 포지션을 결정하기 위한 특징들을 프로세싱하기 위한 방법의 일 실시예의 흐름도를 도시한다.
[0018] 도 10은 센서 데이터 분류를 위한 방법의 일 실시예의 흐름도를 도시한다.
[0019] 단어 "예시적" 또는 "예"는 "예, 예시 또는 설명으로서 기능하는"을 의미하는 것으로 본 명세서에서 사용된다. "예시적인" 또는 "예"로서 본 명세서에 개시된 임의의 양상 및 실시예가 다른 양상들 또는 실시예들에 비해 반드시 바람직하거나 유리한 것으로 해석되어야 하는 것은 아니다.
디바이스 개요
[0020] 도 1은 본 개시의 실시예들이 실행될 수 있는 예시적인 데이터 프로세싱 시스템을 도시하는 블록도이다. 시스템은 하나 이상의 프로세서(101), 메모리(105), I/O 컨트롤러(125) 및 네트워크 인터페이스(110)를 포함할 수 있는 디바이스(예를 들어, 디바이스(100))일 수 있다. 디바이스(100)는 또한 상기 프로세서(101)에 추가로 커플링된 신호 라인들 또는 하나 이상의 버스들에 커플링된 복수의 디바이스의 센서들을 포함할 수 있다. 디바이스(100)는 또한 디스플레이(120), 사용자 인터페이스 (예, 키보드, 터치 스크린, 또는 유사한 디바이스들), 전력 디바이스(121) (예, 배터리)는 물론 전자 디바이스들과 전형적으로 관련된 다른 컴포넌트들을 포함할 수 있다는 것이 이해되어야 한다. 일부 실시예들에서, 디바이스(100)는 모바일 또는 비 모바일 디바이스일 수 있다. 네트워크 인터페이스(110)는 무선 네트워크로/로부터 무선 링크를 통해 데이터 스트림을 전송 및 수신하기 위해 복수의 무선 서브 시스템들(115)(예, 블루투스, WiFi, 셀룰러, 또는 다른 네트워크들)에 커플링될 수 있거나, 네트워크(예를 들어, 인터넷, 이더넷, 또는 다른 무선 시스템들)에 직접 연결을 위한 유선 인터페이스 일 수 있다. 따라서, 디바이스는, 모바일 디바이스, 무선 디바이스, 셀폰, 개인 휴대 정보 단말기, 모바일 컴퓨터, 태블릿, 개인용 컴퓨터, 랩탑 컴퓨터, 또는 프로세싱 능력을 갖는 임의의 형태의 디바이스일 수 있다.
[0021] 디바이스는, 센서, 이를테면, 근접 센서(130), 주변 광 센서(ALS)(135), 가속도계(140), 자이로스코프(145), 자력계(150), 대기압 센서(155), 및/또는 글로벌 위치 확인 센서(GPS)(160)를 포함할 수 있다. 일부 실시예들에서, 마이크로폰(165), 카메라(170) 및/또는 무선 서브 시스템(115)은 디바이스의 환경을 분석하는 센서로서 사용된다. 예를 들어, 카메라(170)로부터의 이미지들은 카메라(170)가 외부 물체 의해 차단되는지 여부를 결정하기 위한 데이터를 제공할 수 으며, 이것은 차례로 (예를 들어, 사용자의 호주머니나 가방 내의) 디바이스의 위치를 결정하는데 도움을 줄 수 있다.
[0022] 메모리(105)는 프로세서(101)에 의한 실행을 위해 명령을 저장하도록 프로세서(101)에 커플링될 수 있다. 일부 실시예들에서, 메모리(105)는 비일시적이다. 메모리(105)는 또한 후술되는 실시예들을 구현하기 위한 하나 이상의 모델들 또는 모듈들을 저장할 수 있다. 메모리(105)는 또한 통합 또는 외부 센서들로부터의 데이터를 저장할 수 있다. 또한, 메모리(105)는, 보다 상세히 후술되는 모듈(171)(예를 들어, 전력 프로파일 모듈, 스케줄링 모듈 및 분류기 모듈)에 액세스하기 위한 애플리케이션 프로그램 인터페이스(API)들을 저장할 수 있다. 메모리(105)는, 또한 미리 정의된 특징 스케쥴링 정보, 트레이닝 데이터 샘플, 센서 데이터 샘플, 또는 클래스들 또는 특징들에 관련된 전력 프로파일을 설명하는 저장소 구성 파일들을 저장할 수 있다. 모듈(171)이 디바이스(100)의 다른 엘리먼트들로부터 분리되어 도시되지만, 모듈(171)은 전체적으로 또는 부분적으로, 예를 들어, 프로세서(101) 및/또는 메모리(105)에서, 또는 디바이스(100)의 다른 프로세서 및/또는 메모리에서 또는 디바이스(100)의 하나 또는 그 이상의 다른 엘리먼트들에서 도 1에 도시된 다른 엘리먼트들에 의해 구현될 수 있다. 모듈(171)의 구현에 대한 추가의 상세 사항이 아래에 설명된다.
[0023] 후술될 개시의 실시예들이 디바이스의 프로세서(101) 및/또는 디바이스의 다른 회로 및/또는 다른 디바이스들에 의해 예를 들어, 메모리(105) 또는 다른 엘리먼트에 저장된 명령들의 실행을 통해 구현될 수 있다는 것이 이해되어야 한다. 특히, 프로세서(101)를 포함하지만 이에 한정되지 않는 디바이스의 회로는, 본 개시의 실시예들에 따른 방법이나 프로세스를 실행하기 위해, 명령의 실행, 루틴 또는 프로그램의 제어 하에 동작할 수 있다. 예를 들어, 이러한 프로그램은, (예를 들어 메모리(105) 및/또는 다른 위치에 저장되는) 소프트웨어 또는 펌웨어로 구현 될 수 있고, 프로세서들, 이를테면 프로세서(101) 및/또는 디바이스의 다른 회로에 의해 구현될 수 있다. 또한, 프로세서, 마이크로 프로세서, 회로, 제어기 등의 용어는 로직, 명령, 명령어, 소프트웨어, 펌웨어, 기능 등을 실행할 수 있는 임의의 타입의 로직 또는 회로를 지칭할 수 있다는 것이 이해되어야 한다.
[0024] 또한, 본 명세서에 기술된 기능, 엔진 또는 모듈의 일부 또는 전부가 디바이스 자체에 의해 수행될 수 있고, 그리고/또는 본 명세서에 설명된 기능, 엔진 또는 모듈의 일부 또는 전부가 I/O 컨트롤러(125) 또는 네트워크 인터페이스(110)(무선 또는 유선)를 통해 디바이스에 접속된 다른 시스템에 의해 수행될 수 있다는 것이 이해되어야 한다. 따라서, 기능들 중 일부 및/또는 전부가 다른 시스템에 의해 수행될 수 있고, 최종 또는 중간 계산이 디바이스로 다시 전송될 수 있다. 일부 실시예들에서, 이러한 다른 디바이스는 실시간 또는 거의 실시간으로 정보를 프로세싱하도록 구성된 서버를 포함할 수 있다. 일부 실시예들에서, 다른 디바이스는 예를 들어, 디바이스의 알려진 구성을 기반으로 결과를 미리 결정하도록 구성된다. 또한, 도 1에 도시된 엘리먼트들 중 하나 또는 그 이상이 디바이스(100)로부터 생략될 수 있다. 예를 들어, 센서들 중 하나 또는 그 이상(130-165)이 일부 실시예들에서 생략할 수 있다.
순차적 특징 컴퓨팅 개관
[0025] 디바이스는, 디바이스의 환경과 관련된 정보를 출력 및/또는 보고하기 위해, 하나 이상의 센서들(예를 들어, 근접 센서(130), ALS(135), 가속도계(140), 자이로스코프(145), 자력계(150) 대기압 센서(155), 온도 센서(151), GPS(160), 마이크로폰(165), 카메라(170), 무선 서브 시스템(115) 또는 다른 센서)로부터 수신된 데이터를 프로세싱 또는 컴퓨팅할 수 있다. 디바이스는, 센서 데이터의 하나 또는 그 이상의 스트림들 또는 샘플들을 해석하기 위해 올웨이즈 온 또는 빈번하게 활성인 분류기에 액세스할 수 있다. 일 실시예에서, 분류기는, 하기에 상세히 설명된 바와 같이 하나 또는 그 이상의 모듈들 또는 엔진들로서 구현된다.
[0026] 도 2는 일 실시예에서, 센서들(285) 및 예시적인 프로세싱 모듈들(171)을 포함하는 디바이스(100)의 서브 섹션을 나타내는 블록도이다. 센서들(285)은, 근접 센서(130), ALS(135), 가속도계(140), 자이로스코프(145), 자력계(150), 대기압 센서 (155), 온도 센서(151), GPS(160), 마이크로폰(165), 카메라(170), 무선 서브 시스템(115) 또는 다른 센서 중 임의의 하나 또는 그 이상을 포함할 수 있다. 모듈들(171)은, 예를 들어, 전용 프로세서 또는 중앙 프로세싱 장치(예를 들어, 프로세서(101))를 공유하는 구현을 갖는 디바이스(100)의 서브 컴포넌트로서 펌웨어 또는 하드웨어로 직접 구현될 수 있다. 택일적으로, 모듈들은 프로세서에 의해 실행되는 소프트웨어로, 또는 소프트웨어와 하드웨어의 조합으로 구현될 수 있다. 소프트웨어 모듈은, 메모리, 예를 들어, 메모리(105) 또는 당업계에 공지된 다른 형태의 저장 매체의 다른 형태에 상주할 수 있다. 당업자들은, 본 명세서에 개시된 모듈들이, 당업계에 공지된 다양한 다른 구현들에서 구현될 수 있는 순차적 특징 컴퓨팅의 양상들을 수행하기 위한 기능적 프로세스를 나타낼 수 있음을 인식할 것이다. 분류기 모듈(299), 전력 프로파일 모듈(290) 및 스케줄링 모듈(295)이 도 2에 개별적으로 도시되었지만, 이러한 모듈들 중 하나 이상의 기능이 결합될 수 있거나, 전술한 것과 다른 방식으로 분산될 수 있다. 예를 들어, 전력 프로파일 모듈(290) 및 스케줄링 모듈(295)은 일부 실시예들에서 결합될 수 있다. 유사하게, 분류기 모듈(299) 및 스케줄링 모듈(295)은 일부 실시예들에서 결합될 수 있고, 그리고/또는 분류기 모듈(299) 및 전력 프로파일 모듈(290)은 일부 실시예들에서 결합될 수 있거나, 분류기 모듈(299), 전력 프로파일 모듈(290) 및 스케줄링 모듈(295) 모두는 단일 모듈로 결합되거나 3개 초과의 모듈들 사이에서 분리될 수 있다.
[0027] 일 실시예에서, 전력 프로파일 모듈(예를 들어, 전력 프로파일 모듈(290))은 특징을 컴퓨팅하기 위해 예상 전력 사용을 결정할 수 있다. 일 실시예에서, 스케줄링 모듈(예를 들어, 스케줄링 모듈 (295))은 센서 데이터를 수신하고 자동으로 특징 프로세싱을 스케줄링할 수 있다. 일 실시예에서, 분류기 모듈(예를 들어, 분류기 모듈 (299))은 센서 데이터 샘플로부터의 특징들을 프로세싱 또는 컴퓨팅하고 분류를 출력할 수 있다. 본 명세서에 사용된 바와 같이, 데이터 샘플은 센서(예를 들면, 디바이스의 센서들(285))로부터 수신된 또는 출력된 데이터의 일부를 포함할 수 있다. 분류기 모듈(299)의 출력은, 애플리케이션(예를 들어, 애플리케이션(291)은 디바이스(100)에서 실행될 수 있으며, 운동 프로그램, 활동 로거, 캘린더 애플리케이션 또는 센서 데이터 분류들을 판독하기 위한 기타 소프트웨어일 수 있음)에 의해 사용될 수 있다. 애플리케이션(291)이 디바이스(100)의 다른 엘리먼트들과 분리되어 도시되지만, 애플리케이션(291)은 전체적으로 또는 부분적으로 예를 들어, 프로세서(101) 및/또는 메모리(105)에서, 또는 디바이스(100)의 다른 프로세서 및/또는 메모리에서 또는 디바이스(100)의 하나 또는 그 이상의 다른 엘리먼트들에서 도 1에 도시된 다른 엘리먼트들에 의해 구현될 수 있다.
[0028] 일부 실시예들에서, 전력 소비와 유틸리티의 균형을 맞추기 위해, 분류기 모듈(299)은 입력 센서 데이터의 정확한 분류를 제공하면서, 저전력 소비 모드를 구현할 수 있다. 일 실시예에서, 기능을 제거(예를 들어, 가능한 특징들의 수를 줄임)함으로써 전력 소비를 감소시키는 대신, 분류기 모듈(299)은, 전반적인 디바이스의 기능을 유지하면서, 전력 효율적인 방법으로 특징들의 프로세싱을 스케줄링할 수 있다.
[0029] 본 명세서에서 사용되듯이, 특징들은 데이터에 대해 실행된 컴퓨팅의 결과 또는 출력(예를 들어, 센서 또는 다른 입력으로부터의 타겟 데이터 세트)을 지칭한다. 특징들은 데이터 세트를 분류하는데 사용될 수 있다. 예를 들어, 하나 이상의 특징들을 결정하기 위해 가속도계 데이터에 대해 컴퓨팅을 수행할 때, 결과 특징들은 (예를 들어, 가속도계 데이터가, 아마도 달리기 모션이 검출되었음을 나타낸다고 결정하기 위해) 가속도계 데이터를 분류하기 위해 분석될 수 있다.
[0030] 일 실시예에서, 분류기 모듈(299)은 이하에서보다 상세히 기술되는 바와 같이, 스케줄링 모듈(295)로부터 데이터를 수신하거나 콜(call)할 수 있다. 스케줄링 모듈(295)은, 프로세서에 의한 컴퓨팅을 위해 특징들을 효율적으로 스케줄링할 수 있어서, 비필수적인 특징 컴퓨팅이 감소 또는 회피될 수 있다. 예를 들어, 센서 데이터 샘플과 관련된 모든 특징들을 컴퓨팅하는 대신, 스케줄링 모듈(295)은 특징 컴퓨팅의 전력 효율적 프로세싱 스케줄을 결정할 수 있어서, 전력 집중 컴퓨팅들이 전략적으로 감소되거나 최소화된다. 일 실시예에서, 스케줄링 모듈(295) 또는 분류기 모듈(299)은 (예를 들어, 전력 프로파일 모듈(290)로부터) 특징 전력 사용 예상들을 수신하거나 액세스할 수 있다.
[0031] 일 실시예에서, 하나 또는 그 이상의 특징들이 순차적으로 컴퓨팅될 수 있다. 예를 들어, 일 세트 또는 일련의 특징들에서 각 특징은, 종료 조건에 도달할 때까지, 한번에 하나씩(예를 들면, 연속적으로) 컴퓨팅될 수 있다. 일부 실시예들에서, 복수의 특징들은, 시퀀스의 어떤 단계 또는 레벨에서 컴퓨팅될 수 있다. 예를 들어, 분류기(299)는, 센서 데이터 샘플을 모호하지 않게 분류하기 위해 특징을 컴퓨팅할 때까지, 하나 이상의 특징들을 컴퓨팅할 수 있다. 일 실시예에서, 특징이 트레이닝 데이터 세트와 비교되고, 특징이 특정 분류와 연관된 것으로 결정된 이전의 계산 결과에 거의 부합(예를 들어, 이전의 컴퓨팅 결과의 임계치 이내임)하는 경우, 분류는 모호하지 않다. 특징들 및 관련 컴퓨팅들은 더 상세히 후술된다.
[0032] 도 3은 일 실시예에서, 순차적 특징 컴퓨팅의 흐름도를 도시한다. 블록(305)에서, 스케줄링 모듈(295)은 각 특징의 예상 컴퓨팅 전력 사용에 적어도 부분적으로 기초하여 특징들을 스케줄링한다. 일부 실시예들에서, 특징의 스케줄링 컴퓨팅은 특징을 스케줄링하는 것, 또는 일부 다른 유사한 용어로 지칭될 수 있다. 예를 들어, 특징 A가 특징 B보다 낮은 예상 컴퓨팅 전력 사용 프로파일을 가지고 있기 때문에, 특징 A는 특징 B에 앞서 스케줄링될 수 있다. 다른 실시예들에서, 분류기 모듈(299), 또는 분류기 모듈(299)과 스케줄링 모듈(295)의 조합이 스케줄링을 제공할 수 있다. 스케줄링 특징들이 아래에서 더 상세히 설명된다.
[0033] 블록(310)에서, 분류기 모듈(299)은 특징을 컴퓨팅할 수 있다. 예를 들어, 제 1 특징은 가속도계, 예를 들어, 가속도계(140)로부터의 미가공 데이터의 평균 및/또는 표준 편차이거나, 마이크로폰 예를 들어, 마이크로폰(165)으로부터의 미가공 데이터의 제 1 멜 주파수 켑스트럼 계수일 수 있다. 특징들을 컴퓨팅하는 예들은 아래에서 더 상세히 설명된다.
[0034] 블록(315)에서, 분류기 모듈(299)은 컴퓨팅된 특징에 기초하여 종료 조건을 평가할 수 있다. 예를 들어, 종료 조건의 평가는 신뢰도 값을 컴퓨팅하고, 신뢰도 값이 임계 신뢰도 값보다 클 때 종료 조건이 충족되는 것으로 결정하는 것을 포함할 수 있다. 일 실시예에서, 임계 신뢰도 값은 특징과 트레이닝 데이터 세트를 비교함으로써 결정될 수 있다. 일 실시예에서, 특징이 높은 신뢰도 값 분류를 제공한다고 결정하는 것은, 분류기 모듈(299)이 분류를 종료(예를 들어, 나머지 스케줄링된 특징들의 컴퓨팅을 스킵)하고 분류를 출력하게 한다. 일 실시예에서, 분류기 모듈(299)은, 높은 신뢰도 값 분류가 결정될 때까지, 다수의 특징들을 통해 반복한다.
센서 데이터
[0035] 일 실시예에서, 디바이스는 하나 또는 그 이상의 집적 또는 외부 센서들(예를 들어, 상술한 센서들(285) 및 입력들 중 하나 또는 그 이상)로부터 데이터를 판독 또는 수신할 수 있다. 디바이스는 I/O 제어기(125)를 통해, (예를 들어, 외부 카메라에 대한 USB 접속 또는 WiFi 접속을 통해) 통신가능하게 연결된 외부 디바이스들로부터 외부 센서 데이터를 수신할 수 있다. 디바이스는 아래에 설명된 대로 특징 컴퓨팅에 사용할 미가공 센서 데이터를 수신할 수 있다. 다른 실시예에서, 중간 디바이스 또는 프로그램은 디바이스에 의한 특징 컴퓨팅 이전에, 센서 데이터를 사전 프로세싱할 수 있다. 설명의 편의를 위해, 본 명세서에 사용되는 센서 데이터는 프로세싱되지 않은 데이터(예를 들어, 가속도계, 주변 광 센서, 마이크로폰 또는 다른 센서로부터 수신된 데이터)를 지칭한다. 예를 들어, 가속도계로부터의 데이터는 시간, X축을 따른 가속도, Y축을 따른 가속도, 및 Z축을 따른 가속도의 속성들을 가질 수 있다. 그러나, 상술한 바와 같이, 센서 데이터는 일부 실시예들에서, 다른 형태로 수신 및 프로세싱될 수 있다.
[0036] 가속도계와 같은 센서로부터의 데이터는 특정 주파수(예를 들면, 샘플링 디바이스 또는 데이터 요구 사항들에 따라 50Hz, 60Hz 또는 다른 레이트)로 샘플링될 수 있다. 일 실시예에서, 특징 컴퓨팅은 센서로부터의 데이터의 스트림 또는 세트로부터 선택된 시간의 윈도우, 슬라이스 또는 모멘트에서 수행된다. 예를 들어, 디바이스는, 센서 데이터의 샘플 또는 더 긴 스트림(예를 들면, 10초 시간 기간 또는 몇몇 다른 시간 기간)으로부터 선택된 1초 시간 기간으로부터 특징들을 컴퓨팅할 수 있다. 예를 들어, 미가공 가속도계 데이터는 60Hz로 샘플링될 수 있어서, 1초의 데이터는 180개 샘플들의 순 입력 크기에 대해 x 축, y 축 및 z 축에서 60개의 3차원 가속도계 벡터 샘플들을 제공한다.
[0037] 일 실시예에서, 분류기 모듈(299)은 센서 데이터 샘플을 분류하기 위해, 센서 데이터 샘플을 (예를 들어, 이전에 컴퓨팅된 트레이닝 세트로부터의) 트레이닝 데이터 샘플과 비교할 수 있다.
특징 컴퓨팅
[0038] 일 실시예에서, 분류기(예를 들어, 분류기 모듈 (299))는 상술된 센서 데이터 (예를 들어, 마이크로폰, 가속도계, 주변 광 센서 또는 다른 입력으로부터의 미가공 데이터)로부터 하나 이상의 특징들을 컴퓨팅, 프로세싱 또는 추출할 수 있다. 예를 들어, 분류기 모듈은 가속도계로부터 미가공 센서 데이터(예를 들어, 센서 데이터 샘플)를 입력으로서 수신하고, 평균 및/또는 표준 편차를 출력할 수 있다. 평균 및/또는 표준 편차는 분류(예를 들면, 도보 또는 착석)를 결정하는데 사용될 수 있다. 일 실시예에서, 특징들은 프로세서(101)에 의해 메모리(105)에서 실행되는 컴퓨터 코드로부터의 값, 출력, 또는 결과이다. 예시적인 특징들은 아래에서 더 상세히 설명된다.
전력 프로파일링
[0039] 일 실시예에서, 전력 프로파일 모듈은 특징이 컴퓨팅되는 동안 디바이스의 전력 소비를 예상할 수 있다. 전력 소비는 트레이닝 데이터 세트에 기초하여 미리 결정될 수 있다. 예를 들어, 디바이스가 특징 A를 컴퓨팅하는 동안 전력 사용을 예상하도록, 특징 A는 다수 회 반복하여 컴퓨팅될 수 있다. 이 예상은 디바이스 상에서 또는 다른 디바이스에서 수행될 수 있고, 전력 예상은 디바이스로 전달될 수 있다. 특징들의 시퀀스 또는 순서를 스케줄링할 때, 전력 프로파일 모듈은 역사적 또는 평균 전력 소모, 배터리 충전 손실, 또는 다른 전력 사용 표현을 참조할 수 있다. 전력 프로파일 모듈은 또한 일 특징의 예상된 전력 사용을 다른 특징과 비교하기 위해 다른 특징을 컴퓨팅할 수 있다. 예를 들어, 전력 프로파일 모듈은 특징 B에 고유한 전력 사용을 결정하기 위해 다수 회 반복하여 특징 B를 컴퓨팅할 수 있다. 이 예상은 디바이스 상에서 또는 다른 디바이스에서 수행될 수 있고, 전력 예상은 디바이스로 전달될 수 있다. 또 다른 예들에서, 특징들의 시리즈 또는 세트는 함께 또는 병렬로 컴퓨팅되며, 전체 세트 또는 시리즈의 전력 소비가 기록된다.
[0040] 다른 특징들이나 특징들의 다른 세트는 다른 프로세싱 단계들 또는 유사한 프로세싱 단계들의 상이한 순서를 가질 수 있다. 디바이스는 가장 큰 전력 소비로부터 가장 적은 전력 소비까지 개별 특징들 또는 특징들의 세트의 순서를 랭크할 수 있다. 일 실시예에서, 특징에 대한 전력 프로파일은 특징을 계산하는 데 사용되는 프로그램 또는 애플리케이션 코드와 관련된다. 일부 실시예들에서, 전력 프로파일링은 특징들의 세트 또는 그룹에 대해에 수행된다. 예를 들어, 일 특징에 대한 예상 전력 사용을 프로파일링하는 것 대신에 또는 이에 부가하여, 특징들의 세트 또는 그룹은 병렬로 또는 순차적으로 실행되고 한 세트로서 프로파일링된다 (예를 들어, 파워 프로파일 Z는 특징들 1, 2 및 3의 전력 사용과 관련됨). 다른 프로그램이나 하드웨어, 이를테면 분류기 모듈, 또는 스케줄링 모듈은 전력 프로파일에 액세스할 수 있다. 대안적으로, 전력 프로파일 모듈 또는 엔진은 디바이스, 분류기 모듈, 또는 스케줄링 모듈에 통합된다.
[0041] 도 4는 일 실시예에서 전력 프로파일 모듈에 의해 수행될 수 있는 프로세스의 흐름도를 도시한다. 블록(405)에서, 전력 프로파일 모듈은 센서 데이터를 판독할 수 있다.
[0042] 블록(410)에서, 전력 프로파일 모듈은 센서 데이터에 기초하여 특징을 컴퓨팅할 수 있다.
[0043] 블록(415)에서, 전력 프로파일 모듈은 특징을 컴퓨팅하는 것과 관련된 전력 사용을 예상 및 기록할 수 있다. 일 실시예에서, 전력 프로파일 모듈은 다수 회 반복을 통해 동일한 특징을 컴퓨팅하고 일련의 반복 동안 평균 전력 사용을 기록할 수 있다.
[0044] 블록(420)에서, 전력 프로파일 모듈은 블록(410)으로 복귀함으로써 추가의 특징들을 프로파일링할 지 또는 다른 특징들을 프로파일링할 지를 결정할 수 있다. 일 실시예에서, 특징들은 블록(410)에서 이전에 컴퓨팅된 초기 특징과 동일한 센서 데이터 또는 상이한 센서 데이터로부터 유래할 수 있다.
[0045] 블록(425)에서, 전력 프로파일 모듈은 어떠한 추가의 특징들도 프로파일링을 위해 대기되지 않는다고 결정할 수 있고 프로파일링된 특징들 요약을 출력할 수 있다. 예를 들어, 전력 프로파일 모듈은 프로파일링된 각 특징 및 관련된 예상 전력 사용을 갖는 기록이나 파일을 출력할 수 있다. 일부 실시예들에서, 분류기 모듈 및/또는 스케줄링 모듈은 출력 요약에 액세스할 수 있고 출력 요약에서 예상 이력 전력 사용에 기초하여 프로세싱 위해 특징들을 스케줄링할 수 있다.
[0046] 일부 실시예들에서, 전력 프로파일들은 트레이닝 시스템이나 서버와 같은 별도의 디바이스 상에서 계산되고, 트레이닝 시스템 상의 전력 프로파일링의 결과는 디바이스(예를 들어, 휴대용 디바이스)에 커플링된 전력 프로파일 모듈에 의한 액세스를 위해 파일이나 데이터베이스에 저장된다. 따라서, 휴대용 디바이스에 커플링된 또는 인스톨된 전력 프로파일 모듈은 미리 결정된 또는 사전 컴퓨팅된 프로파일들에 액세스할 수 있고, 일부 실시예들에서 특징들을 스케줄링하기 전에 전력 프로파일들을 컴퓨팅하거나 생성하지 말아야 한다.
트레이닝 데이터
[0047] 일 실시예에서, 분류기 모듈은 특징들을 분류하는 기저 기준을 결정하기 위해 트레이닝 데이터를 판독할 수 있다. 예를 들어, 분류기 모듈은, 특징 Z가 정확하게 센서 데이터 샘플을 분류할 수 있는 지를 결정하기 위해 클래스와 연관된 이전 특징 계산과 특징 Z를 비교할 수 있다.
[0048] 도 5는 일 실시예에서, 특징 공간에서, 예를 들어 클래스들 A(505), B(510) 및 C(515)에 대한 트레이닝 데이터를 그래프로 나타낸 도면이다. 이 예에서, x 축(520)은 특징 1에 대한 데이터 포인트들을 나타낸다 (예를 들어, 데이터 세트로부터의 특징 1을 컴퓨팅한 결과). y 축(525)은 특징 2에 대한 데이터 포인트들을 나타낸다 (예를 들어, 데이터 세트로부터의 특징 2를 컴퓨팅한 결과). 이 예에서, 특징들 1과 2는 세 개의 클래스 중 하나에 속하는 것으로 데이터 포인트들을 분류하는 데 사용된다. 이 예에서, 제 1 특징은 경량(예, 낮은 전력 사용)이어서, 프로세서가 다른 특징들에 비해 상대적으로 적은 작업 또는 사이클을 사용하여 특징 1을 컴퓨팅 수 있으며, 이는 특징 2에 비해 낮은 전력 소비를 초래한다. 제 2 특징(특징 2)은 중량이며, 더욱 복잡한 프로세서 연산들을 사용할 수 있거나 실행할 더 많은 사이클들을 가질 수 있고, 도 1에 비해 비교적 큰 전력 사용을 갖는다.
[0049] 도 5는 특징 1이 클래스 A와 클래스들 B 및 C 사이의 데이터 포인트들을 구별하는 데 유용할 수 있음을 도시한다. 그러나, 특징 1은 클래스 B와 클래스 C를 정확하게 구분하지 않을 수 있다. 따라서, 특징 1이 높은 신뢰도로 클래스를 결정하기에 불충분한 경우, 분류기 모듈은 특징 2를 컴퓨팅할 수 있다. 분류기 모듈은 특징 1(경량 특징(520))을 우선 컴퓨팅할 수 있고, 특징 1이 클래스를 결정하기에 충분하다는 높은 신뢰도가 존재하는 경우, 특징 2(중량 특징(525))의 컴퓨팅을 스킵할 수 있다.
[0050] 전력 절감이 일 실시예에서 어떻게 달성되는 지를 추가로 설명하기 위해, 도 5는 x = 4(530), x = -2(535), x = 0(550), 및 x,y= -2,4(540)에서 차트 상에 4개의 예시적인 좌표를 도시한다.
[0051] 제 1 예(530)는 특징 1을 컴퓨팅한 후 4의 특징 값을 도시한다. 이 제 1 예(530)에서, 4의 특징 값은 (값 4에서 x 축과 교차하는 라인(530)에 의해 도시되는) 특징 공간에서의 라인으로 차트 상에 표시된다. 일 실시예에서, 가장 가까운 이웃 분류기는 분류를 결정하기 위해 트레이닝 데이터 샘플들 및 근접도를 사용한다. 가장 가까운 이웃 분류기는 직접 데이터를 분류할 수 있고 특징 1의 결과(값 4)에 가장 가까운 데이터 포인트(x 축 상에서 4에 가장 가까운 값들)가 클래스 A와 연관되어 있기 때문에(도 5의 차트의 중간 우측 부에 클러스터링된 데이터 포인트로 표현됨), 클래스 A에서 높은 신뢰도를 산출할 수 있다. 따라서, 클래스 A는 쉽게 결정되고 특징 1이 4일 때, 특징 2를 컴퓨팅하지 않고 할당될 수 있다. 이 예에서, 특징 2를 컴퓨팅하기 위한 전력 사용이 저장되고, 각각의 모든 클래스에 대한 각각의 모든 특징을 컴퓨팅하는 디바이스에 비해 디바이스 전력 소비가 감소된다.
[0052] 제 2 예(535)는 특징 1을 컴퓨팅할 때 -2의 결과를 도시한다. 이 제 2예에서, 특징 값은 (-2에서 x 축과 교차하는 라인(535)에 의해 도시되는) 특징 공간의 라인이다. 이 예에서, 특징 1의 값은 -2이며, 따라서, 단지 특징 1에 기초하여 높은 신뢰도 분류를 결정하는 것은 가능성이 없다. 특징 1의 결과(값 -2)에 가장 가까운 데이터 포인트가 클래스 A 보다는 클래스 B 및 클래스 C에 더 가깝기 때문에, 데이터를 직접 분류하기 위해 가장 가까운 이웃 분류기를 사용하는 것은 클래스 A에서 낮은 신뢰도를 산출한다. 또한, 가장 가까운 이웃 분류기가 클래스 B 또는 클래스 C가 가장 가까운 이웃인지 여부를 높은 신뢰도로 결정할 수 없기 때문에, 이어, 특징 2가 컴퓨팅될 수 있다. 이 예에서, 특징 2가 컴퓨팅되어 포인트 -2,4(540)로 차트에서 표현되는 4의 특징 2 값을 초래한다. 포인트 -2,4(540)에 가장 가까운 이웃들(예를 들어, 트레이닝 데이터에 기반함)이 클래스 B와 연관되기 때문에, 포인트 -2,4(540)가 높은 신뢰도로 클래스 B로 분류될 수 있다.
[0053] 제 3 예(545)는 특징 1을 컴퓨팅하기 전에 4의 특징 2값을 컴퓨팅하는 것을 도시한다. 이 제 3 예(545)에서, 4의 특징 2값은 (값 4에서 y축과 교차하는 라인(545)에 의해 도시되는) 특징 공간에서의 라인으로 차트 상에 표시된다. 가장 가까운 이웃 분류기는 직접 데이터를 분류할 수 있고 특징 2의 결과(값 4)에 가장 가까운 데이터 포인트(y 축 상에서 4에 가장 가까운 값들)가 클래스 B와 연관되어 있기 때문에(도 5의 차트의 좌상부에 클러스터링된 데이터 포인트들로 표현됨), 클래스 B에서 높은 신뢰도를 산출할 수 있다. 따라서, 클래스B는 쉽게 결정되고 특징 1을 컴퓨팅하지 않고 할당될 수 있다. 이 제 3 예에서, 특징 1을 컴퓨팅하기 위한 전력이 절감될 수 있으며, 특징 2 이후에 특징 1을 항상 컴퓨팅해야 하는 디바이스에 비해 디바이스 전력 소비가 감소된다.
[0054] 제 4 예(550)는 특징 2를 컴퓨팅하기 전에 0의 특징 1 값을 도시한다. 이 제 4 예(550)에서, 0의 특징 1 값은 (값 0에서 x 축과 교차하는 라인(550)에 의해 도시되는) 특징 공간에서의 라인으로 차트 상에 표시된다. 이러한 예시적인 트레이닝 세트에서, 0의 값을 갖는 특징 1은 추가의 특징 프로세싱 없이는 높은 정확도로 분류되지 않을 수 있다. 클래스 A, B 및 C로부터의 데이터 포인트들이 모두 특징 1의 결과에 비교적 가깝기 때문에(클래스 A, B 및 C 모두는 x 축 값 0에 또는 이에 가깝게 적어도 하나의 데이터 포인트를 가짐), 데이터를 직접 분류하기 위해 가장 가까운 이웃 분류기를 사용하는 것은 클래스 A, B 및 C에서 낮은 신뢰도를 산출한다. 가장 가까운 이웃 분류기가, 클래스 A, B, 또는 C가 오직 특징 1에만 기초하여 가장 가까운 이웃인지를 높은 신뢰도로 결정할 수 없기 때문에, 특징 2가 컴퓨팅될 수 있다. 다른 실시예들에서, 단일 특징이 정확하게 분류를 제공할 수 없는 경우, 새로운 센서 데이터 샘플이 다른 순간에 대해 획득될 수 있고, 예를 들면, 새로운 센서 데이터 샘플에 기초하여, 특징이 재컴퓨팅될 수 있고, 그리고/또는 추가의 특징들이 컴퓨팅될 수 있다. 새로운 센서 데이터 샘플은 특징 1을 계산하기 위한 데이터 및/또는 하나 또는 그 이상의 추가의 센서들로부터의 데이터를 제공한 동일한 센서로부터의 데이터를 포함할 수 있다. 일부 실시예들에서, 특징이 다음 특징을 컴퓨팅하기 전에, 특징이 다수의 시점 동안 다수 회 컴퓨팅될 수 있다. 다른 실시예에서, 특징이 정확한 분류를 초래할 가능성이 없는 경우, 모든 특징들이 컴퓨팅되고 컴퓨팅된 특징들 중 하나 또는 그 이상을 기초로 분류의 최상의 예상이 결정될 수 있을 때까지, 다음 특징이 자동으로 컴퓨팅된다.
[0055] 일 실시예에서, 분류가 제 1 특징 컴퓨팅으로부터 정확하게 결정될 수 없는 경우, 디바이스는 제 2 특징을 컴퓨팅할 수 있고, 두 특징 모두 또는 단지 제 2 특징을 이용하여 분류 결정을 수행할 수 있다. 제 1 특징이 정확한 클래스 결정을 수행하기에 충분하여 후속 특징 컴퓨팅(들)을 스킵하는 상황에서 전력은 절감된다.
[0056] 본 명세서의 일부 예들이 두 특징 세트에서 제 1 특징을 스킵 또는 바이패싱하는 것에 관련되지만, 당업자는 본 명세서에 설명된 기술들을 이용하여 특징들의 세트 또는 그룹에서 임의의 수의 특징들이 스킵 또는 바이패싱될 수 있다는 것을 인식할 것이다. 일부 실시예들에서, 하나 또는 그 이상의 특징들이 스킵될 수 있지만, 후속 특징이 컴퓨팅될 수 있다. 예를 들어, 특징 1, 2, 3, 4, 5의 세트가 주어진 경우, 특징들 2 및 4가 스킵될 수 있어서, 특징들 1, 3 및 5가 컴퓨팅될 수 있고 특징 2 및 4를 컴퓨팅하는데 필요한 전력 사용이 절감된다. 다른 예에서, 특징 1, 2 및 3이 스킵 또는 바이패싱될 수 있어서, 특징 4 및 5가 컴퓨팅된다.
[0057] 다른 실시예들에서, 데이터를 분류하기 위해 트레이닝 데이터를 직접 사용(예를 들어, 전술한 가장 가까운 이웃 분류기)하는 것 대신에, 트레이닝 데이터로부터 사전 컴퓨팅된 모델들이 사용될 수 있다(예를 들면, 서포트 벡터 머신, 신경망, 결정 트리, 베이지안 분류기 등).
특징 스케줄러
[0058] 일 실시예에서, 스케줄링 모듈(295)은 컴퓨팅을 위해 (예를 들어, 프로세싱 큐에서 이전에 또는 이후에 특징을 컴퓨팅하기 위해) 하나 이상의 특정 특징들의 스케줄링 우선 순위 또는 포지션을 조정할 수 있다. 스케줄링 모듈(295)은 센서 데이터 샘플을 분류하기 위해 특징들의 프로세싱(예를 들어, 컴퓨팅) 순서를 정렬할 수 있다. 스케줄링 모듈은 애플리케이션이 동작 관련된 분류를 수행할 수 있도록, 특정 분류(예를 들어, 정지, 걷기, 달리기, 피제팅(fidgeting))를 구별하기 위해 예를 들어, 애플리케이션으로부터 요청을 수신할 수 있다. 이 예에서, 스케줄링 모듈은 달리기, 걷기 또는 다른 이동과 관련된 특징들에 비해 정지 또는 이동을 더 높은 스케줄링 우선 순위로 구별하기 위해 특징을 우선 순위화할 수 있다.
[0059] 일 실시예에서, 스케줄링 모듈은, 사용가능한 트레이닝 데이터, 각 클래스의 상대적인 발생 빈도 및/또는 각 특징을 컴퓨팅하는데 요구되는 상대적인 전력 간에 구별될 요구되는 클래스들 중 하나 또는 그 이상에 기초하여 컴퓨팅할 특징들을 순서화 또는 정렬할 수 있다. 스케줄링 모듈은 분류기 모듈의 컴포넌트일 수 있거나 독립형 모듈 또는 엔진일 수 있다. 일 실시예에서, 스케줄링 모듈은 병렬 또는 스케줄링되지 않은 실행 대신에, 프로세서에 의한 순차적 또는 연속적 실행을 위해 특징을 스케줄링한다.
[0060] 스케줄링 모듈은 구별될 요구되는 클래스들에 기초하여 특징들을 순차적으로 순서화할 수 있다. 예를 들어, 스케줄링 모듈은 센서 타입이 가속도계라고 결정할 수 있고, 가속도계 출력에 기초하여, 정지, 걷기, 피제팅, 달리기의 분류가 결정될 수 있다. 따라서 여러 다른 분류들이, 센서가 가속도계라는 결정에 기초하여 결정될 수 있다 다음으로, 스케줄링 모듈은 다른 분류와 연관된 특징들을 결정할 수 있다. 평균 및/또는 표준 편차가 디바이스 및 사용자가 이동하는지를 결정하는데에 사용될 수 있다. 따라서, 스케줄링 모듈은 가능한 분류들 사이에서 정확하게 구별하지 못할 수 있는 다른 특징들 이전에, 표준 편차가 컴퓨팅되도록 특징들을 순서화할 수 있다. 유사하게, 결정될 두 분류들이 오직 착석 및 기립인 경우, 표준 편차는 가능한 두 클래스들 사이에 어떠한 구별도 제공하지 않을 수 있기 때문에, 표준 편차가 먼저 순서화되지 않을 수 있다.
[0061] 스케줄링 모듈은 각 클래스의 상대적인 출현 빈도에 기초하여 특징들을 순차적으로 순서화할 수 있다. 예를 들어, 스케줄링 모듈은 걷기가 다른 분류에 비해 더 흔하게 발생할 수 있는 분류라고 결정할 수 있다. 디바이스가 정지인 것이 걷기, 달리기 또는 피제팅보다 더 발생할 가능성이 많다는 결정에 기초하여, 데이터 세트가 걷기, 달리기 또는 피제팅을 나타내는 지를 결정하는 것과 관련된 특징들에 앞서, 스케줄링 모듈은 디바이스가 정지되어 있는지 여부의 결정과 관련된 특징을 (컴퓨팅을 위해) 스케줄링할 수 있다.
[0062] 스케줄링 모듈은 또한, 이력 또는 사전 컴퓨팅된 트레이닝 데이터 세트에 기초하여 특징 컴퓨팅을 스케줄링할 수 있다. 일 실시예에서, 특징 스케줄러, 예를 들어, 스케줄링 모듈은 각 클래스에 대한 발생의 상대 빈도를 리포팅하는 확률 데이터에 액세스한다.
[0063] 예를 들어, 특징 2가 특징 3의 도움 없이는 클래스 X와 클래스 Y를 구별할 수 없는 반면, 트레이닝 데이터 세트가 오직 특징 1만으로, 클래스 X와 클래스 Y를 구별할 수 있는 높은 가능성을 보여 주는 경우, 스케줄링 모듈은 특징 2 및 특징 3에 앞서, 컴퓨팅을 위해 특징 1을 우선 순위화할 수 있다.
[0064] 다른 예에서, 특징 스케줄러 또는 스케줄링 모듈은, 침묵(silence)이 다른 클래스들(예를 들어, 한 사람이 말하기 또는 여러 사람이 말하기)보다 트레이닝 데이터 샘플들에서 더 많은 빈도로 발생하는 지를 결정할 수 있다. 따라서, 특징 스케줄러 또는 스케줄링 모듈은 침묵과 같은 더 높은 확률의 클래스와 연관된 특징의 컴퓨팅 또는 스케줄링을 우선 순위화할 수 있다. 특징들 X와 Y 사이의 전력 사용이 대략 동일한 경우, 특징 스케줄러 또는 스케줄링 모듈은 더 낮은 확률 클래스와 관련된 특징 Y 이전에, 높은 확률 클래스와 연관된 특징 X가 컴퓨팅되어야 한다고 결정할 수 있다. 다른 실시예에서, 클래스가 센서 데이터 샘플에서 발생할 확률은 또한 경량 특징에 비해 중량 특징을 우선 순위화하는데 사용될 수 있다.
[0065] 도 5로부터 전술된 예를 이용하면, 디바이스로부터의 센서 데이터 샘플은 클래스 A, 클래스 B 또는 클래스 C로 분류될 수 있다. 특징 1 및 특징 2를 함께(순차적 또는 병렬) 컴퓨팅하는 것은, 타겟 데이터 세트의 정확한 분류를 제공할 수 있다. 그러나 상기 개시된 바와 같이, 특징 1은 경량의 컴퓨팅이고, 특징 2는 비교적 중량의 컴퓨팅이다. 따라서, 특징 2 이전의 순간에 컴퓨팅을 위해 특징 1을 스케줄링하는 것이 유리할 수 있다.
[0066] 예를 들어, 모션 상태를 정지, 걷기, 피제팅, 또는 달리기로 분류하기 위해 미가공 가속도계 데이터를 판독하거나 사용하는 경우, 둘 또는 그 이상의 특징들이 사용될 수 있다. 이 예에서, 특징 1을 컴퓨팅하고, 특징 2를 컴퓨팅하는 것 각각은 일정량의 프로세싱 전력(예를 들면, CPU 사이클, 와트 등)을 사용한다. 각 특징과 관련된 예상 프로세싱의 전력 사용은 앞서 전술 한 바와 같이 전력 프로파일링 모듈 및 트레이닝 데이터에 기초할 수 있다.
[0067] 특정 클래스에 대해 어느 특징들이 정확한 결정을 제공할 수 있는 지를 결정하기 위해, 각 특징이 트레이닝 데이터 세트 동안 컴퓨팅될 수 있고 어느 특징들이 특정 클래스를 독립적으로 분류할 수 있는 지를 결정하기 위해 분석될 수 있다. 예를 들어, 특징 1은 디바이스 사용자가 이동 중인지 또는 정지인지를 결정할 수도 있다. 일 실시예에서, 특징 1이 디바이스가 정지라고 결정하면, 고정 디바이스가 정의에 의해, 걷기, 피제팅 또는 달리기가 아니기 때문에 어떠한 추가의 모션 특징들도 스케줄링되지 않는다. 다른 실시예에서, 특징 1이 디바이스가 정지라고 결정하면, 디바이스 방위에 관련된 추가 특징들이, 고정 디바이스가 손에, 포켓에, 테이블에 또는 다른 포지션에 있는 지를 결정하기 위해 계산될 수 있다.
[0068] 일 실시예에서, 특징 1이 디바이스가 이동 중(예를 들어, 정지 아님)이라고 결정하면, 디바이스가 걷기인지, 피제팅인지, 달리기 인지를 추가로 정의하기 위해 추가 특징들이 유용할 수 있다. 중량 특징(예를 들어, 특징 2)에 비해 전력을 덜 사용하는 경량 특징(예를 들어, 특징 1)은, 분류가 결정될 수 있는 지를 결정하기 위해 다른 기능들과 분리하여 먼저 컴퓨팅될 수 있다. 중량 특징은, 제 1 특징이 정확한 분류를 제공할 수 없다고 결정될 때 실행을 시작할 수 있다.
[0069] 일 실시예에서, 스케줄링 모듈은 각 특징의 예상 컴퓨팅 전력 사용(예를 들어, 전술된 전력 프로파일링으로부터의 예상 사용)에 기초하여 특징들을 순차적으로 순서화할 수 있다. 프로세싱 전력의 예상 레벨은 이력 실행 또는 사전 컴퓨팅된 트레이닝 데이터에 의해 결정될 수 있다.
[0070] 다른 실시예에서, 스케줄링 모듈은 컴퓨팅을 위해 특징들을 스케줄링하기 위해 상술된 스케줄링 방법들 중 하나 이상의 조합을 사용할 수 있다.
[0071] 또 다른 실시예들에서, 스케줄링 모듈은 특징들의 미리 결정된 순서를 수신하거나, 자신이 앞서 결정한 순서를 식별하고, 수신된 또는 식별된 순서에 따라 특징들의 순서가 수행되는 것을 검증할 수 있다. 예를 들어, 스케줄링 모듈은 사전 조정된 특징 세트를 판독하고, 프로세서에 의한 실행을 위해 특징들을 스케줄링하거나, 올바른 순서로 모듈(예를 들어, 분류기 모듈)을 분리할 수 있다. 순서는 위에서 설명한 순서 및/또는 기술에 따라 결정되었을 수 있다. 따라서, 일부 실시예들에서, (예를 들어, 스케줄링 모듈 (295)에 의한) 스케줄링은 수신된 또는 이전에 결정된 순서에 따라 실행을 위해 스케줄링 특징들을 포함하며, 이 순서는 본 명세서에서 설명된 원칙에 따라 결정되었을 수 있다.
[0072] 도 6은 일 실시예에서 스케줄링 모듈에 의해 수행될 수 있는 프로세스의 흐름도를 도시한다. 블록(605)에서, 미가공 데이터는 센서로부터 판독될 수 있다. 예를 들어, 스케줄링 모듈은 가속도계(140), 마이크로폰(165), 주위 광 센서(135) 또는 디바이스의 다른 센서로부터 데이터를 판독할 수 있다.
[0073] 블록(610)에서, 하나 이상의 가능한 분류들이 센서의 유형에 따라 결정될 수 있다. 예를 들어, 스케줄링 모듈은 디바이스의 사용자가 걷고 있는지 여부, 사용자가 어떻게 디바이스를 휴대하고 있는지, 디바이스의 사용자가 이야기하고 있는지 여부 또는 다른 분류를 결정할 수 있다.
[0074] 블록(615)에서, 블록(610)에서 발견된 분류들에 사용되는 특징들이 결정될 수 있다. 예를 들어, 스케줄링 모듈은, 분류 A, B 및 C가 센서 타입에 기초하여 가능할 수 있고, 특징들 X, Y 및 Z는 센서로부터 데이터를 분류할 수 있다고 결정할 수 있다.
[0075] 블록(620)에서, 전력 사용 데이터가 판독될 수 있다. 일 실시예에서, 분류기 모듈 또는 스케줄링 모듈은 전력 프로파일 모듈에 의해 생성된 전력 사용 데이터를 판독하거나 이에 액세스할 수 있다.
[0076] 블록(625)에서, 특징들은 프로세싱 또는 계산을 위해 스케줄링된다. 예를 들어, 스케줄링 모듈은 프로세서(101)에 의한 순차 프로세싱을 위해 특징들 X, Y 및 Z를 순서화할 수 있어서, 특징 X가 Y에 앞서 프로세싱되고, Y는 Z에 앞서 프로세싱된다. 일 실시예에서, 프로세싱 순서는 프로세싱을 위해 분류기 모듈 또는 스케줄링 모듈로 전달 또는 전송된다.
모션 상태
[0077] 일 실시예에서, 디바이스는 전술된 디바이스 센서들 중 하나 이상으로부터의 출력을 측정함으로써 디바이스의 모션을 측정할 수 있다. 센서 데이터는 디바이스의 모션 상태를 결정하는데 사용될 수 있다. 특징 계산에 사용되는 디바이스 센서 데이터는 다수의 모션 상태들(예를 들어, 정지, 걷기, 피제팅, 운전, 달리기 또는 이와 유사한 것)을 결정할 수 있다.
[0078] 도 7은 모션 상태 분류에 대한 특징들을 스케줄링하는 방법의 일 실시예의 흐름도를 도시한다. 블록(705)에서, 가속도계 미가공 데이터가 가속도계 센서(예를 들어, 가속도계(140))로부터 판독될 수 있다. 예를 들어, 스케줄링 모듈 또는 분류기 모듈이 미가공 가속도계 데이터를 판독할 수 있다. 일 실시예에서, 스케줄링 모듈 또는 분류기 모듈은 가속도계가 모션을 검출한 경우, 하드웨어 또는 소프트웨어 인터럽트에 의해 자동으로 트리거될 수 있다.
[0079] 블록(710)에서, 가속도계 데이터로부터 가능한 하나 또는 그 이상의 가능한 분류들이 결정될 수 있다. 예를 들어, 스케줄링 모듈 또는 분류기 모듈은 모션 상태들이나 클래스들을 결정할 수 있다: 정지, 걷기, 운전, 피제팅, 달리기가 가능하다.
[0080] 블록(715)에서, 센서 데이터를 분류하기 위해 사용된 특징들이 순서화될 수 있다. 예를 들어, 스케줄링 모듈 또는 분류기 모듈은 디바이스의 방위(피치)의 하나의 축 및 가속도계의 표준 편차를 결정하기 위해 가속도계 데이터를 사용할 수 있다. 스케줄링 모듈 또는 분류기 모듈은 표준 편차가 피치보다 더 적은 전력을 사용하도록 평가된다고 결정할 수 있고, 피치가 스케줄링되기 전에 프로세서에 의한 컴퓨팅에 대한 표준 편차를 스케줄링할 수 있다.
[0081] 블록(720)에서, 미가공 센서 데이터의 표준 편차가 컴퓨팅될 수 있다. 예를 들어, 3D 가속도계 벡터들이 주어지면, 분류기 모듈은 이들의 노름(norm)들을 컴퓨팅할 수 있고 이들의 노름들의 표준 편차를 평가할 수 있다. 이 특징은 착석/기립 및 걷기처럼 모션 상태들을 구별하기에 유용한데, 이들이 가속도계 변화의 변동 정도에 의해 구별가능하기 때문이다.
[0082] 블록(725)에서, (예를 들어, 분류기 모듈에 의해) 신뢰도 값이 결정될 수 있다. 신뢰도 값이 임계치(예를 들어, 디바이스가 사용자 선호도 또는 디폴트 값에 기초하여 신뢰도 임계치를 설정할 수 있음)를 초과하면, 분류기 모듈은 결정된 분류의 출력을 진행한다. 일 실시예에서, 신뢰도 값은 가장 근접한 두 클래스들에 대한 통계적 가능성들(L1 및 L2)에 기초하여 분류기 모듈에 의해 아래와 같이 컴퓨팅될 수 있다.
Figure pct00001
일부 실시예들에서, 분류기에 대한 신뢰도 값이 트레이닝 데이터 및 평가된 특징에 기초하여 컴퓨팅된다.
블록(730)에서, 이전 특징에 대한 신뢰도 임계값이 충족되지 않는 경우, 다음 특징이 (예를 들어, 분류기 모듈에 의해) 컴퓨팅될 수 있다. 예를 들어, 다음 특징은 중력과 관련하여 디바이스 표면의 방위 또는 피치일 수 있다. 이러한 방위는 피치 및 롤로 지칭되는 두 각들에 의해 특징지어 질 수 있다. 피치는 x 축 중심의 회전이며, (-π,π]의 범위이다. 평균 피치는 가속도계 벡터를 우선 평균냄으로써 컴퓨팅되고, 이어 피치가 아래와 같이 컴퓨팅되며:
Figure pct00002
가속도계 샘플들은:
Figure pct00003
이며, 여기서 N은 특징들이 컴퓨팅되는 윈도우에서의 벡터 샘플들의 수(예를 들어, 60Hz 샘플에 대해 60)이다.
[0084] 피치는, 바지 주머니 그리고 더 낮은 정도로는 손에 디바이스가 있을 경우 착석과 기립 사이를 구별함은 물론, 예를 들어, 디바이스 포지션을 결정하기 위해 사용될 수 있다.
[0085] 일 실시예에서, 제 2 또는 추가 가속도계 관련 특징이 보수계와 연관될 수 있다. 예를 들어, 제 1 특징(예를 들어, 표준 편차)이 디바이스가 이동 중(즉, 비 고정)이라고 결정할 수 있다. 그러나, 분류기 모듈은 걷기와 달리기를 구별하기 위해 오직 표준 편차만을 기초로 해서는 충분한 신뢰도를 갖지 못할 수 있다. 따라서, 경량 표준 편차가 높은 신뢰도로 이동이 검출된다고 결정한 후, 추가의 보수계 계산이 센서 데이터 샘플에 대해 수행될 수 있다.
[0086] 일 실시예에서, (예를 들어, 가속도계로부터의 데이터에 기초하여) 이동 또는 비 정지 상태를 결정할 때, 분류기 모듈은 (예를 들어, 보수계 분류기와 관련된 하나 이상의 특징들로) 임의의 단계들(예를 들어, 걷기 또는 달리기)이 검출되었는 지를 추가로 결정할 수 있다. 어떤 단계들도 발견되지 않으면, 분류기 모듈은 풀 모션 분류기와 관련된 하나 이상의 특징들로 데이터(예를 들어, 가속도계 센서 데이터)를 추가로 분류할 수 있다. 풀 모션 분류기는 드라이브 동작이나 알 수 없는/피제팅 상태가 높은 신뢰도를 갖는 지를 결정할 수도 있다.
[0087] 일 실시예에서, 정지 동작 상태라고 결정 시, 분류기 모듈은 (예를 들어, 보수계 분류기와 관련된 특징들로) 정지 상태가 보행자 정지 상태인지를 추가로 결정할 수 있다.
[0088] 일부 실시예들에서, 블록(725)에서, 하나 이상의 보수계 관련 특징들로, 걷기 또는 달리기가 가능성이 있는 한 분류라고(즉, 높은 신뢰도를 가짐) 결정 시, 걷기 또는 달리기 분류는 블록(735)에서 출력될 수 있다.
[0089] 다른 실시예에서, 블록(725)에서, 하나 이상의 보수계 특징들로부터 걷기 또는 달리기가 가능성이 없다고(즉, 낮은 신뢰도를 가짐) 결정 시, 풀 모션 분류기와 관련된 추가 특징들이 도 7b에 도시된, 블록(730)에서 스케줄링될 수 있다. 예를 들어, 풀 모션 분류기의 특징들은 운전 또는 알 수 없는/피제팅하는 분류들이 적절한 지(즉, 높은 신뢰도를 가짐) 여부를 결정할 수 있다.
[0090] 일 실시예에서, 제 2 특징이 블록(725)에서 신뢰도 임계값을 충족하지 않는 경우, 분류기 모듈은 최종 출력이 결정될 수 있을 때까지 추가 특징들을 계속 계산할 수 있다.
[0091] 블록(735)에서, 미가공 센서 데이터에 대한 분류는 이전 컴퓨팅된 특징(들)을 기반으로 출력될 수 있다. 예를 들어, 분류기 모듈은 디바이스 동작 상태가 걷고 있다고 높은 신뢰도로 결정할 수 있으며, 그 결과는 요청하는 프로그램이나 애플리케이션으로 출력 또는 전송될 수 있다.
[0092] 일부 실시예들에서, 가속도계의 표준 편차가 높은 신뢰도로, 디바이스가 정지되어 있다고(예를 들어, 움직이지 않음) 지시할 때, 이후의 모든 스케줄링된 특징들은 자동으로 취소 또는 중지된다. 예를 들어, 가속도계가 디바이스가 정지 중이라고 검출하면, 사용자 및 디바이스가 걷기, 달리기, 운전 또는 피제팅하는 지를 결정하기 위한 추가의 계산들이 불필요할 수 있다. 일부 실시예들에서, 추가 모션 기반 센서(예를 들어, 자이로 스코프, GPS 등) 관련 특징들은 정지 분류가 가속도계 또는 다른 제 1 센서에 의해 결정되는 경우, 취소되거나 계산되지 않은 채로 남아 있을 수 있다.
[0093] 다른 실시예들에서, 가속도계의 제 1 특징이 높은 신뢰도로 디바이스가 정지 중이라고 결정할 수 있는 하는 경우, 그럼에도, 추가의 특징 계산은, 디바이스 포지션(예를 들어, 주머니, 손, 테이블, 또는 다른 위치)을 계산하기 위해 계산될 수 있다. 일 실시예에서 특징 컴퓨팅 및 분류를 요청하는 애플리케이션 또는 프로그램은 정지 분류 이상으로 추가 분류를 요청할 수 있다.
[0094] 당업자는, 본 명세서에 개시된 바와 같이, 다른 특징들이 전력 효율적인 방식으로 컴퓨팅 및 스케줄링될 수 있으며, 표준 편차 및 피치가 일 실시예를 설명하기 위해 본 명세서에서 단지 예로서 사용되는 것을 인식할 것이다.
음성 검출
[0095] 다른 실시예에서, 오디오 데이터(예를 들면, 마이크로폰(165)으로부터의 데이터)가 센서 데이터 샘플에 대한 분류를 결정하는 데 사용된다.
[0096] 도 8은 음성 검출을 위한 특징들을 스케줄링하기 위한 방법(800)의 일 실시예의 흐름도를 도시한다. 블록(805)에서, 마이크로폰(예를 들어, 마이크로폰(165))으로부터의 미가공 데이터가 (예를 들어, 분류기 모듈 또는 스케줄링 모듈 의해) 판독될 수 있다.
[0097] 블록(810)에서, 마이크로폰 데이터로부터 가능한 하나 이상의 가능한 분류들이 결정될 수 있다. 예를 들어, 무음, 한 명의 화자로부터의 음성, 다수의 화자로부터의 음성 또는 이와 유사한 것의 음성 상태 또는 분류들이 분류기 모듈 또는 스케줄링 모듈 의해 결정될 수 있다.
[0098] 블록(815)에서, 마이크로폰 데이터를 분류하는 데 사용되는 특징들이 프로세싱을 위해 순서화될 수 있다. 예를 들어, 스케줄링 모듈, 또는 분류기 모듈은 멜 주파수 켑스트럼 계수들(MFCC들)이 센서 데이터 샘플을 분류하는 데 사용될 것이라고 결정할 수 있다. 일 실시예에서, 13개의 MFCC들이 음성 검출을 위해 컴퓨팅된다; 그러나 당업자는 다른 구성도 또한 가능하다는 것을 인식할 것이다. 제 1 MFCC는 오디오 에너지(또는 볼륨)에 대응할 수 있는 한편, 나머지 MFCC들은 하나 이상의 스피커로부터 음성이 존재하는지 여부를 결정하는 데 대응할 수 있다. 일 실시예에서, 특징들은 서브세트로 분리되어, 특징 서브세트 1은 제 1 MFCC를 포함하고, 특징 서브세트 2는 MFCC 2 내지 13을 포함한다. 일 실시예에서, 분류기 모듈 또는 스케줄링 모듈은, 서브세트 1이 서브 세트 2에 비해 낮은 예상 컴퓨팅 전력 사용을 갖는다고 (예를 들어, 전력 프로파일로부터) 결정하고, 특징 서브세트 2에 앞서 특징 서브세트 1을 스케줄링한다. 서브세트 2에 앞서 컴퓨팅하기 위해 서브세트 1을 스케줄링 또는 순서화하는 것은, 서브셋 1에 기초한 분류 및 서브세트 2(MFCC 2-13) 중 하나 이상의 컴퓨팅의 회피 시 전력 경감을 초래할 수 있다.
[0099] 블록(820)에서, 미가공 센서 데이터의 특징 서브세트 1은 (예를 들어, 분류기 모듈 의해) 컴퓨팅될 수 있다. 제 1 MFCC는 마이크로폰 데이터로부터 가능한 음성이 존재하는지 또는 무음이 존재하는 지를 구별하는 데 유용할 수 있다.
[00100] 블록(825)에서, 신뢰도 값은 (예를 들어, 분류기 모듈에 의해) 계산될 수 있다. 신뢰도 값이 임계 값을 초과하는 경우(예를 들어, 디바이스 또는 분류기 모듈이 사용자 선호도들 또는 디폴트 값에 기초하여 신뢰도 임계값을 설정할 수 있음), 분류기 모듈은 결정된 분류의 출력을 진행한다. 일 실시예에서, 신뢰도 값은 가까운 두 클래스들에 대해 통계적 가능성들(L1 및 L2)에 기초하여 상술한 바와 같이 컴퓨팅될 수 있다.
[00101] 블록(830)에서, 특징 서브세트 1에 대한 신뢰도 임계값이 충족되지 않은 경우, 다음 특징 서브세트가 (예를 들어, 분류기 모듈에 의해) 컴퓨팅될 수 있다. 음성 검출의 경우, 특징 서브세트는 컴퓨팅에 대한 복수의 추가 MFCC(예를 들어, 2-13) 중 하나일 수 있다. 일 실시예에서, 다음 MFCC 특징이 블록(825)에서 신뢰도 임계값을 충족하지 않는 경우, 최종 출력이 결정될 수 있을 때까지 분류기 모듈은 추가 특징들을 계속 계산할 수 있다.
[00102] 블록(835)에서, 이전에 컴퓨팅된 특징(들) 기반으로 미가공 센서 데이터에 대한 분류가 출력될 수 있다. 예를 들어, 분류기 모듈이 하나의 스피커로부터의 음성이 검출된다고 높은 신뢰도로 결정되는 경우, 그 결과는 요청하는 프로그램이나 애플리케이션으로 출력 또는 전송된다.
[00103] 당업자는, 본 명세서에 개시된 바와 같이, 다른 특징들이 전력 효율적인 방식으로 컴퓨팅 및 스케줄링될 수 있으며, MFCC 서브세트들이 일 실시예를 설명하기 위해 본 명세서에서 단지 예로서 사용되는 것을 인식할 것이다.
디바이스 포지션
[00104] 다른 실시예에서, 디바이스 포지션 데이터(예를 들어, 가속도계(140)로부터의 데이터)는 센서 데이터 샘플에 대한 분류를 결정하는데 사용될 수 있다.
[00105] 도 9는 디바이스 포지션을 결정하기 위한 특징들을 스케줄링하기 위한 방법(900)의 일 실시예의 흐름도를 도시한다. 블록(905)에서, 미가공 데이터는 가속도계, 예컨대 가속도계(140)로부터 (예를 들어, 분류기 모듈 의해) 판독될 수 있다.
[00106] 블록(920)에서, 미가공 가속도계 센서 데이터의 표준 편차가 (예를 들어, 분류기 모듈 의해) 컴퓨팅될 수 있다.
[00107] 블록(925)에서, 신뢰도 값은 (예를 들어, 분류기 모듈에 의해) 계산될 수 있다. 표준 편차가 크고 신뢰도 임계값을 충족하지 않는 경우, 다음 특징이 블록(930)에서 컴퓨팅될 수 있다. 그렇지 않고, 신뢰도 임계값이 충족되는 경우 (예를 들면, 표준 편차가 작고, 디바이스가 휴식 중임을 시사함), 피치와 평균 롤이 블록(935)에서 (예를 들어, 분류기 모듈에 의해) 계산될 수 있다.
[00108] 블록(930)에서, 신뢰도 임계값이 블록(920)에서 컴퓨팅된 표준 편차에 대해 충족되지 않은 경우, 13개의 MFCC들이 (예를 들어, 분류기 모듈에 의해) 컴퓨팅될 수 있다. 13개의 MFCC들이 신호의 스펙트럼 엔벨로프를 특성화하고, 디바이스가 이동 중인 경우, 디바이스 포지션을 결정하는데 사용될 수 있다.
[00109] 블록(940)에서, 이전에 컴퓨팅된 특징(들)에 기초한 미가공 센서 데이터에 대한 분류는 (예를 들어, 분류기 모듈에 의해) 출력될 수 있다.
[00110] 당업자는 여기에 설명된 바와 같은 전력 효율적인 방식으로 다른 특징들이 컴퓨팅을 위해 컴퓨팅 및 순서화될 수 있고, 전술한 특징들, 센서들 및 컴퓨팅들이 다양한 실시예들을 설명하기 위한 단지 몇 가지 예들임을 인식할 것이다. 다른 실시예들에서, 다수의 특징들과 특징 컴퓨팅의 반복들이 가능하다.
[00111] 또 다른 실시예들에서, 분류기 모듈은 분류를 결정하기 위해 다수의 센서들을 사용할 수 있다. 다수의 센서들이 사용되는 경우, 센서 데이터는 전술한 바와 같이 순차적으로 활성화 또는 프로세싱될 수 있어서, 전력 집중 컴퓨팅들이 전략적으로 감소되거나 최소화된다. 예를 들어, 제 1 특징이 제 1 센서로부터의 데이터의 프로세싱 및 활성화에 기초하여 계산될 수 있다. 제 1 센서 데이터와 특징 컴퓨팅이 정확한 분류를 제공할 수 있는 경우, 다른 센서들 및 관련된 특징들이 바이패싱 또는 프로세싱되지 않은 채로 남아있을 수 있다. 그러나, 제 1 센서 데이터 및 특징 컴퓨팅이 목표 신뢰도 미만의 분류를 제공하도록 결정되는 경우, 다른 센서들이 추가 센서 데이터를 수집하는데 사용될 수 있고, 관련 특징들이 일부 실시예들에서 제 1 센서 데이터 및/또는 추가 센서 데이터에 기초하여 프로세싱될 수 있다. 예를 들어, 스케줄링 모듈(295)은 예를 들어, 전력 프로파일 모듈(290)로부터의 정보에 기초하여 센서들을 사용할 그리고/또는 측정치 또는 센서 데이터를 수집할 순서를 결정할 수 있다. 일부 실시예들에서, 추가 정보를 수집할지 여부 및/또는 어느 센서들을 사용할지를 결정하기 위해 분류기 모듈(299)로부터의 정보가 스케줄링 모듈(295)에 피드백될 수 있다.
[00112] 도 10은 특징 분류를 위한 방법의 일 실시예의 흐름도를 도시한다. 블록(1005)에서, 스케줄링된 특징(예를 들어, 가속도계로부터의 미가공 데이터의 표준 편차 또는 마이크로폰으로부터의 미가공 데이터의 제 1 멜 주파수 켑스트럼 계수)이 분류기 모듈에 의해 컴퓨팅될 수 있다. 스케줄링된 특징은 전술한 바와 같이 스케줄링될 수 있다(예를 들어, 개시된 바와 같이, 전력 소비 또는 다른 스케줄링 파라미터들을 기반으로, 스케줄링 모듈에 의해 순차적으로 순서화됨).
[00113] 블록(1010)에서, 종료 조건이 충족되는지 여부에 따라 결정이 행해질 수 있다. 예를 들어, 블록(1005)으로부터의 특징을 컴퓨팅한 결과에 기초하여, 디바이스(또는 분류기 모듈)는 컴퓨팅된 제 1 특징에 기초하여 종료 조건을 평가할 수 있다. 예를 들어, 종료 조건을 평가하는 것은 (예를 들어, 상기 개시된 바와 같이, 신뢰도가 통계적 가능성들, 트레이닝 데이터, 또는 다른 계산들에 기초할 수 있음) 신뢰도 값을 컴퓨팅하는 것 및 신뢰도 값이 임계 신뢰도 값보다 클 때 종료 조건이 충족된다고 결정하는 것을 포함할 수 있다. 일 실시예에서, 제 1 특징이 높은 신뢰도 값 분류를 제공한다고 결정하는 것은, 최적화된 분류기가 분류를 종료(예를 들어, 나머지 스케줄링된 특징들의 컴퓨팅을 스킵)하고 이를 출력할 수 있게 한다.
[00114] 블록(1015)에서, 신뢰도 임계값이 충족되지 않은 경우, 컴퓨팅할 다음 특징이 결정될 수 있다. 예를 들어, 분류기 모듈은 목표 데이터를 분류할 가능성이 가장 큰 특징이 스케줄링될 수 있거나, 또는 가장 낮은 예상 전력 소비를 갖는 특징을 결정할 수 있다. 다른 스케줄링 옵션들은 위에서 설명되어 있다. 신뢰도 임계값이 충족되면, 분류는 블록(1020)에서 출력될 수 있다. 일 실시예에서, 분류기 모듈은 특징들을 순차적으로 컴퓨팅할 수 있어서, 일단 특징이 신뢰도 임계값을 충족시키는 결과를 제공하면, 분류기 모듈은 임의의 나머지 스케줄링된 특징들을 컴퓨팅하지 않고 분류를 출력할 수 있다. 예를 들어, 분류기 모듈은, 10개의 가능한 특징들 중 2개를 프로세싱할 수 있으며, 신뢰도 임계값이 충족된다고 결정하기 전에, 분류를 출력하기 위해 나머지 7개의 특징 컴퓨팅들을 바이패싱할 수 있다.
[00115] 디바이스가 모바일 또는 무선 디바이스인 경우, 이는 하나 이상의 무선 통신 링크들을 경유하여, 임의의 적절한 무선 통신 기술에 기초하거나 아니면 이를 지원하는 무선 네트워크 통해 통신할 수 있다는 것이 이해되어야 한다. 예를 들어, 일부 양상들에서 컴퓨팅 디바이스 또는 서버는 무선 네트워크를 포함하는 네트워크와 관련될 수 있다. 일부 양상들에서, 네트워크는 인체 영역 네트워크 또는 개인 영역 네트워크(예를 들어, 울트라 광대역 네트워크)를 포함할 수 있다. 일부 양상들에서, 네트워크는 로컬 영역 네트워크 또는 광역 네트워크를 포함할 수 있다. 무선 디바이스는, 예를 들어, CDMA, TDMA, OFDM, OFDMA, WiMAX 및 Wi-Fi 같은 다양한 무선 통신 기술들, 프로토콜들 또는 표준들 중 하나 이상을 지지하거나 아니면 사용할 수 있다. 유사하게, 무선 디바이스는 다양한 대응하는 변조 또는 다중화 중 하나 이상을 사용하거나, 아니면 지지할 수 있다. 모바일 무선 디바이스는, 다른 모바일 디바이스, 셀 폰들, 다른 유선 및 무선 컴퓨터들, 인터넷 웹 사이트 등과 무선으로 통신할 수 있다.
[00116] 본 발명의 교시는 다양한 장치들(예를 들어, 디바이스들)에 통합(예를 들어, 다양한 장치들 내에 구현 또는 이에 의해 수행)될 수 있다. 예를 들어, 본원에 교시된 하나 이상의 양상들은, 전화(예를 들어, 셀룰러 폰), 개인 휴대 정보 단말기(PDA), 태블릿, 모바일 컴퓨터, 랩탑 컴퓨터, 태블릿, 엔터테인먼트 디바이스(예를 들어, 음악 또는 비디오 디바이스), 헤드셋(예를 들어, 헤드폰, 이어 피스 등), 의료 기기(예를 들면, 생체 센서, 심박수 모니터, 보수계, 심전도(EKG) 디바이스 등), 사용자 I/O 디바이스, 컴퓨터, 서버, 판매 시점 관리 디바이스, 엔터테인먼트 디바이스, 셋톱 박스, 또는 임의의 다른 적절한 디바이스에 통합될 수 있다. 이러한 디바이스들은 상이한 전력 및 데이터 요구 사항을 가질 수 있고, 각 특징에 대해 또는 특징들의 세트에 대해 생성되는 상이한 전력 프로파일들을 초래할 수 있다.
[00117] 일부 양상들에서, 무선 디바이스는 통신 시스템 위한 액세스 디바이스(예를 들어, Wi-Fi 액세스 포인트)를 포함할 수 있다. 이러한 액세스 디바이스는, 유선 또는 무선 통신 링크를 통해, 예를 들어, 다른 네트워크(예를 들어, 광역 네트워크, 이를 테면, 인터넷 또는 셀룰러 네트워크)에 대한 접속을 제공할 수 있다. 따라서, 액세스 디바이스는 다른 디바이스(예를 들어, Wi-Fi 스테이션)가 다른 네트워크 또는 일부 다른 기능에 액세스하게 할 수 있다. 또한, 디바이스들 중 하나 또는 둘 모두가 휴대용일 수 있거나, 일부 경우에, 상대적으로 비휴대용일 수 있다는 것이 이해되어야 한다.
[00118] 당업자는, 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 전술한 설명을 통해 참조될 수 있는 데이터, 명령, 코멘드, 정보, 신호, 비트, 심볼 및 칩은 전압, 전류, 전자기파, 자기장 또는 입자, 광학 분야들 또는 입자, 또는 이들의 임의의 조합으로 표현될 수 있다.
[00119] 본원에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로, 및 알고리즘 단계는, 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 조합으로 구현될 수 있다는 것을 당업자는 추가로 이해할 것이다. 하드웨어와 소프트웨어의 이러한 상호 교환 가능성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트, 블록, 모듈, 회로, 및 단계들이 이들의 기능성의 관점에서 일반적으로 상술되었다. 이러한 기능이 하드웨어 또는 소프트웨어로 구현되는지 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약에 의존한다. 당업자는 각각의 특정 애플리케이션마다 다양한 방식들로 설명된 기능을 구현할 수 있지만, 이러한 구현 결정은 본 발명의 범위를 벗어나게 하는 것으로 해석되어서는 안 된다.
[00120] 본 명세서에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 및 회로들은, 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 기타 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트, 또는 본원에 설명된 기능을 수행하도록 설계된 이들의 임의의 결합으로 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로 프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 종래 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP와 마이크로 프로세서의 조합, 복수의 마이크로 프로세서들, DSP 코어와 결합된 하나 이상의 마이크로 프로세서들, 또는 임의의 다른 이러한 구성으로 구현될 수 있다.
[00121] 본원에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 이 둘의 조합으로 직접 구현될 수 있다. 소프트웨어 모듈은, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 당업계에 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서에 커플링되어, 프로세서는 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 사용자 단말에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말에 개별 컴포넌트로서 상주할 수 있다.
[00122] 하나 이상의 예시적인 실시예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 컴퓨터 프로그램 제품으로서 소프트웨어로 구현되는 경우, 기능들은, 하나 이상의 명령들 또는 코드로서 비휘발성 컴퓨터 판독가능 매체 상에 저장되거나 전송될 수 있다. 컴퓨터 판독 가능 매체는 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 및 컴퓨터 저장 매체 둘 모두를 포함할 수 있다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체 일 수 있다. 제한적이지 않은 예로서, 이러한 비 일시적 컴퓨터 판독 가능 매체는, RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스, 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 전달하거나 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독 가능 매체라고 적절하게 지칭된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 꼬임 쌍선, 디지털 가입자 회선(DSL: digital subscriber line), 또는 무선 기술들(이를테면, 적외선, 라디오, 마이크로파)을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송된다면, 동축 케이블, 광섬유 케이블, 꼬임 쌍선, DSL 또는 무선 기술들(이를테면, 적외선, 라디오, 마이크로파)이 매체의 정의에 포함된다. 본원에 사용되는 디스크(disk 및 disc)는 컴팩트 disc(CD), 레이저 disc, 광학 disc, 디지털 다용도 disc(DVD), 플로피 disk 및 블루레이 disc를 포함하며, 여기서 disk들은 일반적으로 데이터를 자기적으로 재생하는 한편, disc들은 데이터를 레이저를 이용하여 광학적으로 재생한다. 상기의 조합은 또한 비 일시적 컴퓨터 판독 가능 매체의 범위 내에 포함되어야한다.
[00123] 개시된 실시예의 이전 설명은 당업자가 본 발명을 실시하거나 이용할 수 있도록 제공된다. 이들 실시예들에 대한 다양한 변형은 당업자에게 용이하게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고 다른 실시 형태에 적용될 수도 있다. 따라서, 본 발명은 본 명세서에 제시된 실시예들로 한정되도록 의도되는 것이 아니라, 본원에 개시된 원리들 및 신규한 특징들과 일치하는 최광의 범위와 일치하여야 한다.

Claims (32)

  1. 방법으로서,
    컴퓨팅을 위해 복수의 특징들을 순차적으로 스케줄링하는 단계 ―상기 복수의 특징들 각각은 입력으로서 센서 데이터 샘플을 수신하고, 상기 스케줄링은 각각의 특징의 예상된 전력 사용에 적어도 부분적으로 기초함―;
    컴퓨팅을 위한 특징들의 순차적인 스케줄 중 제 1 특징을 컴퓨팅하는 단계; 및
    컴퓨팅을 위한 특징들의 순차적인 스케줄 중 제 2 특징을 컴퓨팅하기 전에, 종료 조건을 평가하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 제 1 특징의 컴퓨팅이 상기 종료 조건을 만족한다고 결정하는 단계; 및
    상기 제 1 특징의 컴퓨팅의 결과에 기초하여 상기 센서 데이터 샘플을 분류하는 단계를 더 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 제 1 특징의 컴퓨팅이 상기 종료 조건을 만족시키는 데 실패했다고 결정하는 단계;
    상기 제 1 특징이 상기 종료 조건을 만족시키는데 실패 시, 컴퓨팅을 위한 특징들의 순차적 스케줄 중 상기 제 2 특징을 컴퓨팅하는 단계;
    상기 제 2 특징의 컴퓨팅이 상기 종료 조건을 만족한다고 결정하는 단계; 및
    상기 제 1 및 제 2 특징들의 컴퓨팅의 결과에 따라 상기 센서 데이터 샘플을 분류하는 단계를 더 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 특징들의 스케줄링은: 모호하지 않은 분류를 초래하는 각 특징의 가능성, 또는 센서 데이터로부터 분류되고 있는 클래스들의 발생의 상대적인 빈도 중 하나 또는 그 이상에 추가로 기초하는, 방법.
  5. 제 1 항에 있어서,
    종료 조건을 평가하는 단계는, 상기 종료 조건이 임계값을 충족시키는 분류 신뢰도에 기초하여 만족된다고 결정하는 단계를 포함하며,
    상기 분류 신뢰도는: 트레이닝 데이터 샘플의 특징과 센서 데이터 샘플의 특징 사이의 유사성, 또는 복수의 가능한 분류들 사이의 가능성에서의 차이 중 하나 또는 그 이상에 기초하는, 방법.
  6. 제 1 항에 있어서,
    상기 제 1 특징은 가속도계의 평균 또는 표준 편차이며, 상기 평균 또는 표준 편차의 컴퓨팅은 통계적 분류를 초래하고, 상기 방법은 후속하는 모션 관련 특징 컴퓨팅의 컴퓨팅을 취소하는 단계를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 제 1 특징은 마이크로폰으로부터의 오디오 에너지에 대응하는 멜 주파수 켑스트럼 계수이며, 멜 주파수 켑스트럼 계수를 컴퓨팅하는 것은 콰이어트(quiet) 분류를 초래하며, 상기 방법은 후속하는 오디오 관련 특징 컴퓨팅의 컴퓨팅을 취소하는 단계를 더 포함하는, 방법.
  8. 제 1 항에 있어서,
    상기 센서 데이터 샘플은: 가속도계, 자이로스코프, 자력계, 대기압 센서, 온도 센서, 글로벌 위치 확인 센서, WiFi 센서, 블루투스 센서, 주변 광 센서, 카메라 또는 마이크로폰 중 하나 또는 그 이상으로부터 유래하는, 방법.
  9. 데이터 프로세싱 디바이스로 하여금 방법을 수행하게 하는 실행가능한 명령들을 포함하는 머신 판독가능한 비일시적 저장 매체로서,
    상기 방법은,
    컴퓨팅을 위해 복수의 특징들을 순차적으로 스케줄링하는 단계 ―상기 복수의 특징들 각각은 입력으로서 센서 데이터 샘플을 수신하고, 상기 스케줄링은 각각의 특징의 예상된 전력 사용에 적어도 부분적으로 기초함―;
    컴퓨팅을 위한 특징들의 순차적인 스케줄 중 제 1 특징을 컴퓨팅하는 단계; 및
    컴퓨팅을 위한 특징들의 순차적인 스케줄 중 제 2 특징을 컴퓨팅하기 전에, 종료 조건을 평가하는 단계를 포함하는,
    머신 판독가능한 비일시적 저장 매체.
  10. 제 9 항에 있어서,
    상기 방법은,
    상기 제 1 특징의 컴퓨팅이 상기 종료 조건을 만족한다고 결정하는 단계; 및
    상기 제 1 특징의 컴퓨팅의 결과에 기초하여 상기 센서 데이터 샘플을 분류하는 단계를 더 포함하는, 머신 판독가능한 비일시적 저장 매체.
  11. 제 9 항에 있어서,
    상기 방법은,
    상기 제 1 특징의 컴퓨팅이 상기 종료 조건을 만족시키는 데 실패했다고 결정하는 단계;
    상기 제 1 특징이 상기 종료 조건을 만족시키는데 실패 시, 컴퓨팅을 위한 특징들의 순차적 스케줄 중 상기 제 2 특징을 컴퓨팅하는 단계;
    상기 제 2 특징의 컴퓨팅이 상기 종료 조건을 만족한다고 결정하는 단계; 및
    상기 제 1 및 제 2 특징들의 컴퓨팅의 결과에 따라 상기 센서 데이터 샘플을 분류하는 단계를 더 포함하는, 머신 판독가능한 비일시적 저장 매체.
  12. 제 9 항에 있어서,
    상기 특징들의 스케줄링은: 모호하지 않은 분류를 초래하는 각 특징의 가능성, 또는 센서 데이터로부터 분류되고 있는 클래스들의 발생의 상대적인 빈도 중 하나 또는 그 이상에 추가로 기초하는, 머신 판독가능한 비일시적 저장 매체.
  13. 제 9 항에 있어서,
    상기 종료 조건을 평가하는 단계는, 상기 종료 조건이 임계값을 충족시키는 분류 신뢰도에 기초하여 만족된다고 결정하는 단계를 더 포함하며,
    상기 분류 신뢰도는: 트레이닝 데이터 샘플의 특징과 센서 데이터 샘플의 특징 사이의 유사성, 또는 복수의 가능한 분류들 사이의 가능성에서의 차이 중 하나 또는 그 이상에 기초하는, 머신 판독가능한 비일시적 저장 매체.
  14. 제 9 항에 있어서,
    상기 제 1 특징은 가속도계의 평균 또는 표준 편차이며, 상기 평균 또는 표준 편차의 컴퓨팅은 통계적 분류를 초래하고, 상기 방법은 후속하는 모션 관련 특징 컴퓨팅의 컴퓨팅을 취소하는 단계를 더 포함하는, 머신 판독가능한 비일시적 저장 매체.
  15. 제 9 항에 있어서,
    상기 제 1 특징은 마이크로폰으로부터의 오디오 에너지에 대응하는 멜 주파수 켑스트럼 계수이며, 멜 주파수 켑스트럼 계수를 컴퓨팅하는 것은 콰이어트(quiet) 분류를 초래하며, 상기 방법은 후속하는 오디오 관련 특징 컴퓨팅의 컴퓨팅을 취소하는 단계를 더 포함하는, 머신 판독가능한 비일시적 저장 매체.
  16. 제 9 항에 있어서,
    상기 센서 데이터 샘플은: 가속도계, 자이로스코프, 자력계, 대기압 센서, 온도 센서, 글로벌 위치 확인 센서, WiFi 센서, 블루투스 센서, 주변 광 센서, 카메라 또는 마이크로폰 중 하나 또는 그 이상으로부터 유래하는, 머신 판독가능한 비일시적 저장 매체.
  17. 데이터 프로세싱 디바이스로서,
    복수의 특징들의 예상 전력 사용 내에서 각 특징을 결정하도록 구성된 전력 프로파일 모듈;
    컴퓨팅을 위해 복수의 특징들을 순차적으로 스케줄링하도록 구성된 스케줄링 모듈 ―상기 복수의 특징들 각각은 입력으로서 센서 데이터 샘플을 수신하고, 상기 스케줄링은 각각의 특징의 예상된 전력 사용에 적어도 부분적으로 기초함―; 및
    컴퓨팅을 위한 특징들의 순차적인 스케줄 중 제 1 특징을 컴퓨팅하고, 컴퓨팅을 위한 특징들의 순차적인 스케줄 중 제 2 특징을 컴퓨팅하기 전에, 종료 조건을 평가하기 위한 분류기 모듈을 포함하는,
    데이터 프로세싱 디바이스.
  18. 제 17 항에 있어서,
    상기 분류기 모듈은,
    상기 제 1 특징의 컴퓨팅이 상기 종료 조건을 만족한다고 결정하고; 그리고
    상기 제 1 특징의 컴퓨팅의 결과에 기초하여 상기 센서 데이터 샘플을 분류하도록 추가로 구성되는, 데이터 프로세싱 디바이스.
  19. 제 17 항에 있어서,
    상기 분류기 모듈은,
    상기 제 1 특징의 컴퓨팅이 상기 종료 조건을 만족시키는 데 실패했다고 결정하고;
    상기 제 1 특징이 상기 종료 조건을 만족시키는데 실패 시, 컴퓨팅을 위한 특징들의 순차적 스케줄 중 상기 제 2 특징을 컴퓨팅하고;
    상기 제 2 특징의 컴퓨팅이 상기 종료 조건을 만족한다고 결정하고; 그리고
    상기 제 1 및 제 2 특징들의 컴퓨팅의 결과에 따라 상기 센서 데이터 샘플을 분류하도록 추가로 구성되는, 데이터 프로세싱 디바이스.
  20. 제 17 항에 있어서,
    상기 특징들의 스케줄링은: 모호하지 않은 분류를 초래하는 각 특징의 가능성, 또는 센서 데이터로부터 분류되고 있는 클래스들의 발생의 상대적인 빈도 중 하나 또는 그 이상에 추가로 기초하는, 데이터 프로세싱 디바이스.
  21. 제 17 항에 있어서,
    상기 분류기 모듈은, 상기 종료 조건이 임계값을 충족시키는 분류 신뢰도에 기초하여 만족된다고 결정하도록 구성되며,
    상기 분류 신뢰도는: 트레이닝 데이터 샘플의 특징과 센서 데이터 샘플의 특징 사이의 유사성, 또는 복수의 가능한 분류들 사이의 가능성에서의 차이 중 하나 또는 그 이상에 기초하는, 데이터 프로세싱 디바이스.
  22. 제 17 항에 있어서,
    상기 스케줄링 모듈은, 상기 제 1 특징이, 통계적 분류를 초래하는, 가속도계의 평균 또는 표준 편차를 결정 시, 후속하는 모션 관련 특징 컴퓨팅의 컴퓨팅을 취소하도록 추가로 구성되는, 데이터 프로세싱 디바이스.
  23. 제 17 항에 있어서,
    상기 스케줄링 모듈은, 상기 제 1 특징이, 콰이어트(quiet) 분류를 초래하는, 마이크로폰으로부터의 오디오 에너지에 대응하는 멜 주파수 켑스트럼 계수라고 결정시, 후속하는 오디오 관련 특징 컴퓨팅의 컴퓨팅을 취소하도록 추가로 구성되는, 데이터 프로세싱 디바이스.
  24. 제 17 항에 있어서,
    상기 센서 데이터 샘플은: 가속도계, 자이로스코프, 자력계, 대기압 센서, 온도 센서, 글로벌 위치 확인 센서, WiFi 센서, 블루투스 센서, 주변 광 센서, 카메라 또는 마이크로폰 중 하나 또는 그 이상으로부터 유래하는, 데이터 프로세싱 디바이스.
  25. 장치로서,
    컴퓨팅을 위해 복수의 특징들을 순차적으로 스케줄링하기 위한 수단 ―상기 복수의 특징들 각각은 입력으로서 센서 데이터 샘플을 수신하고, 상기 스케줄링은 각각의 특징의 예상된 전력 사용에 적어도 부분적으로 기초함―;
    컴퓨팅을 위한 특징들의 순차적인 스케줄 중 제 1 특징을 컴퓨팅하기 위한 수단; 및
    컴퓨팅을 위한 특징들의 순차적인 스케줄 중 제 2 특징을 컴퓨팅하기 전에, 종료 조건을 평가하기 위한 수단을 포함하는, 장치.
  26. 제 25 항에 있어서,
    상기 제 1 특징의 컴퓨팅이 상기 종료 조건을 만족한다고 결정하기 위한 수단; 및
    상기 제 1 특징의 컴퓨팅의 결과에 기초하여 상기 센서 데이터 샘플을 분류하기 위한 수단을 더 포함하는, 장치.
  27. 제 25 항에 있어서,
    상기 제 1 특징의 컴퓨팅이 상기 종료 조건을 만족시키는 데 실패했다고 결정하기 위한 수단;
    상기 제 1 특징이 상기 종료 조건을 만족시키는데 실패 시, 컴퓨팅을 위한 특징들의 순차적 스케줄 중 상기 제 2 특징을 컴퓨팅하기 위한 수단;
    상기 제 2 특징의 컴퓨팅이 상기 종료 조건을 만족한다고 결정하기 위한 수단; 및
    상기 제 1 및 제 2 특징들의 컴퓨팅의 결과에 따라 상기 센서 데이터 샘플을 분류하기 위한 수단을 더 포함하는, 장치.
  28. 제 25 항에 있어서,
    상기 스케줄링하기 위한 수단은: 모호하지 않은 분류를 초래하는 각 특징의 가능성, 또는 센서 데이터로부터 분류되고 있는 클래스들의 발생의 상대적인 빈도 중 하나 또는 그 이상에 기초하여 상기 복수의 특징들을 순차적으로 스케줄링하기 위한 수단을 포함하는, 장치.
  29. 제 25 항에 있어서,
    종료 조건을 평가하기 위한 수단은, 상기 종료 조건이 임계값을 충족시키는 분류 신뢰도에 기초하여 만족된다고 결정하기 위한 수단을 더 포함하며,
    상기 분류 신뢰도는: 트레이닝 데이터 샘플의 특징과 센서 데이터 샘플의 특징 사이의 유사성, 또는 복수의 가능한 분류들 사이의 가능성에서의 차이 중 하나 또는 그 이상에 기초하는, 장치.
  30. 제 25 항에 있어서,
    상기 제 1 특징은 통계적 분류를 초래하는, 가속도계의 평균 또는 표준 편차이며, 상기 장치는 후속하는 모션 관련 특징 컴퓨팅의 컴퓨팅을 취소하기 위한 수단을 더 포함하는, 장치.
  31. 제 25 항에 있어서,
    상기 제 1 특징은 콰이어트(quiet) 분류를 초래하는, 마이크로폰으로부터의 오디오 에너지에 대응하는 멜 주파수 켑스트럼 계수이며, 상기 장치는 후속하는 오디오 관련 특징 컴퓨팅의 컴퓨팅을 취소하기 위한 수단을 포함하는, 장치.
  32. 제 25 항에 있어서,
    상기 센서 데이터 샘플은: 가속도계, 자이로스코프, 자력계, 대기압 센서, 온도 센서, 글로벌 위치 확인 센서, WiFi 센서, 블루투스 센서, 주변 광 센서, 카메라 또는 마이크로폰 중 하나 또는 그 이상으로부터 유래하는, 장치.
KR1020157014160A 2012-11-19 2013-10-17 전력 효율적인 분류를 위한 순차적인 특징 컴퓨팅 KR20150087253A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261728190P 2012-11-19 2012-11-19
US61/728,190 2012-11-19
US13/841,960 2013-03-15
US13/841,960 US10133329B2 (en) 2012-11-19 2013-03-15 Sequential feature computation for power efficient classification

Publications (1)

Publication Number Publication Date
KR20150087253A true KR20150087253A (ko) 2015-07-29

Family

ID=50729116

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157014160A KR20150087253A (ko) 2012-11-19 2013-10-17 전력 효율적인 분류를 위한 순차적인 특징 컴퓨팅

Country Status (10)

Country Link
US (1) US10133329B2 (ko)
EP (1) EP2920690A1 (ko)
JP (1) JP6379099B2 (ko)
KR (1) KR20150087253A (ko)
CN (1) CN104781787B (ko)
AP (1) AP2015008445A0 (ko)
EC (1) ECSP15026167A (ko)
MA (1) MA38106B1 (ko)
SA (1) SA515360446B1 (ko)
WO (1) WO2014078007A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311874B2 (en) 2017-09-01 2019-06-04 4Q Catalyst, LLC Methods and systems for voice-based programming of a voice-controlled device

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160077892A1 (en) * 2014-09-12 2016-03-17 Microsoft Corporation Automatic Sensor Selection Based On Requested Sensor Characteristics
US9933838B2 (en) 2014-09-24 2018-04-03 Seagate Technology Llc Power management in a storage compute device
CN108882892A (zh) * 2016-03-31 2018-11-23 Zoll医疗公司 跟踪患者运动的系统和方法
US11327475B2 (en) 2016-05-09 2022-05-10 Strong Force Iot Portfolio 2016, Llc Methods and systems for intelligent collection and analysis of vehicle data
US20180284735A1 (en) 2016-05-09 2018-10-04 StrongForce IoT Portfolio 2016, LLC Methods and systems for industrial internet of things data collection in a network sensitive upstream oil and gas environment
US11774944B2 (en) 2016-05-09 2023-10-03 Strong Force Iot Portfolio 2016, Llc Methods and systems for the industrial internet of things
WO2019028269A2 (en) 2017-08-02 2019-02-07 Strong Force Iot Portfolio 2016, Llc METHODS AND SYSTEMS FOR DETECTION IN AN INDUSTRIAL ENVIRONMENT OF COLLECTING INTERNET DATA FROM OBJECTS WITH LARGE DATA SETS
US11237546B2 (en) 2016-06-15 2022-02-01 Strong Force loT Portfolio 2016, LLC Method and system of modifying a data collection trajectory for vehicles
US10678233B2 (en) 2017-08-02 2020-06-09 Strong Force Iot Portfolio 2016, Llc Systems and methods for data collection and data sharing in an industrial environment
US10403303B1 (en) * 2017-11-02 2019-09-03 Gopro, Inc. Systems and methods for identifying speech based on cepstral coefficients and support vector machines
CN108764353B (zh) * 2018-05-25 2021-11-30 中国电力科学研究院有限公司 基于匹配度的大规模电力系统功率曲线分类方法
US20220277176A1 (en) * 2021-02-26 2022-09-01 International Business Machines Corporation Log classification using machine learning

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6775787B2 (en) 2002-01-02 2004-08-10 Intel Corporation Instruction scheduling based on power estimation
US7203635B2 (en) 2002-06-27 2007-04-10 Microsoft Corporation Layered models for context awareness
US20040268159A1 (en) 2003-06-30 2004-12-30 Microsoft Corporation Power profiling
US7440751B2 (en) 2005-06-30 2008-10-21 Nokia Corporation System and method for controlling energy usage in mobile applications
EP1750421B1 (en) 2005-08-04 2017-11-08 Lenovo Innovations Limited (Hong Kong) Execution of an application in a mobile communication terminal when plugging on cradle for charging
WO2007024968A1 (en) 2005-08-24 2007-03-01 Thomson Licensing Method and apparatus for power management for mobile devices
US20110044501A1 (en) 2006-07-14 2011-02-24 Ailive, Inc. Systems and methods for personalized motion control
US9582060B2 (en) 2006-08-31 2017-02-28 Advanced Silicon Technologies Llc Battery-powered device with reduced power consumption based on an application profile data
US20080161712A1 (en) 2006-12-27 2008-07-03 Kent Leyde Low Power Device With Contingent Scheduling
US8145677B2 (en) * 2007-03-27 2012-03-27 Faleh Jassem Al-Shameri Automated generation of metadata for mining image and text data
US7961946B2 (en) * 2007-05-15 2011-06-14 Digisensory Technologies Pty Ltd Method and system for background estimation in localization and tracking of objects in a smart video camera
US20110016455A1 (en) * 2009-07-20 2011-01-20 Glenn Perry Power Profiling for Embedded System Design
US20110085728A1 (en) * 2009-10-08 2011-04-14 Yuli Gao Detecting near duplicate images
CN101877054A (zh) 2009-11-23 2010-11-03 北京中星微电子有限公司 一种针对人脸图像的年龄判别方法和装置
JP2011170856A (ja) 2010-02-22 2011-09-01 Ailive Inc 複数の検出ストリームを用いたモーション認識用システム及び方法
WO2012001215A1 (en) 2010-07-01 2012-01-05 Nokia Corporation Adaptation of context models
US9374787B2 (en) * 2011-02-10 2016-06-21 Alcatel Lucent Method and apparatus of smart power management for mobile communication terminals using power thresholds
CN102193633B (zh) 2011-05-25 2012-12-12 广州畅途软件有限公司 一种数据手套动态手语识别方法
US20130159454A1 (en) * 2011-12-16 2013-06-20 Motorola Mobility, Inc. Customizing distribution of data from a sensor network data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311874B2 (en) 2017-09-01 2019-06-04 4Q Catalyst, LLC Methods and systems for voice-based programming of a voice-controlled device

Also Published As

Publication number Publication date
JP2016504663A (ja) 2016-02-12
SA515360446B1 (ar) 2018-03-29
CN104781787B (zh) 2019-05-21
CN104781787A (zh) 2015-07-15
MA38106A1 (fr) 2016-06-30
JP6379099B2 (ja) 2018-08-22
ECSP15026167A (es) 2016-01-29
US10133329B2 (en) 2018-11-20
AP2015008445A0 (en) 2015-05-31
MA38106B1 (fr) 2017-01-31
US20140143579A1 (en) 2014-05-22
WO2014078007A1 (en) 2014-05-22
EP2920690A1 (en) 2015-09-23

Similar Documents

Publication Publication Date Title
JP6379099B2 (ja) 電力効率の高い分類のための順次特徴計算
JP6363239B2 (ja) パワー効率のよいコンテキストアウェア推定のための適応型センササンプリング
US10353476B2 (en) Efficient gesture processing
US9443202B2 (en) Adaptation of context models
EP2915319B1 (en) Managing a context model in a mobile device by assigning context labels for data clusters
Georgiev et al. Dsp. ear: Leveraging co-processor support for continuous audio sensing on smartphones
US10539586B2 (en) Techniques for determination of a motion state of a mobile device
KR101437757B1 (ko) 콘텍스트 감지 및 융합을 위한 방법, 장치 및 컴퓨터 프로그램제품
KR101568098B1 (ko) 상황정보 추출
Raffa et al. Don't slow me down: Bringing energy efficiency to continuous gesture recognition
US20130346012A1 (en) Apparatus and method for determining immersion risk of mobile terminal user
WO2013157332A1 (ja) 行動識別装置、行動識別システム及び行動識別プログラム
US20230274147A1 (en) Processing Sensor Data with Multi-Model System on Resource-Constrained Device

Legal Events

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