KR20230109042A - Wearable device and method for calculating exercise information related to wheelchair - Google Patents
Wearable device and method for calculating exercise information related to wheelchair Download PDFInfo
- Publication number
- KR20230109042A KR20230109042A KR1020220013725A KR20220013725A KR20230109042A KR 20230109042 A KR20230109042 A KR 20230109042A KR 1020220013725 A KR1020220013725 A KR 1020220013725A KR 20220013725 A KR20220013725 A KR 20220013725A KR 20230109042 A KR20230109042 A KR 20230109042A
- Authority
- KR
- South Korea
- Prior art keywords
- acceleration
- kld
- buffer
- acceleration data
- processor
- Prior art date
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/103—Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
- A61B5/11—Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
- A61B5/1123—Discriminating type of movement, e.g. walking or running
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/103—Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
- A61B5/11—Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
- A61B5/1116—Determining posture transitions
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/68—Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient
- A61B5/6801—Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient specially adapted to be attached to or worn on the body surface
- A61B5/6802—Sensor mounted on worn items
- A61B5/681—Wristwatch-type devices
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B2505/00—Evaluating, monitoring or diagnosing in the context of a particular type of medical care
- A61B2505/09—Rehabilitation or training
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B2562/00—Details of sensors; Constructional details of sensor housings or probes; Accessories for sensors
- A61B2562/02—Details of sensors specially adapted for in-vivo measurements
- A61B2562/0219—Inertial sensors, e.g. accelerometers, gyroscopes, tilt switches
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S297/00—Chairs and seats
- Y10S297/04—Wheelchair
Landscapes
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Engineering & Computer Science (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- Veterinary Medicine (AREA)
- Biophysics (AREA)
- Pathology (AREA)
- Public Health (AREA)
- Biomedical Technology (AREA)
- Heart & Thoracic Surgery (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Surgery (AREA)
- Animal Behavior & Ethology (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Physiology (AREA)
- Dentistry (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
Abstract
본 발명의 다양한 실시 예들은 관성 센서, 디스플레이, 기준 신호를 저장하는 메모리, 및 상기 관성 센서, 상기 디스플레이, 또는 상기 메모리 중 적어도 하나와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 관성 센서를 이용하여 가속도 데이터를 측정하고, 상기 측정된 가속도 데이터를 상기 메모리의 가속도 버퍼에 저장하고, KLD(Kullback-Leivler divergence) 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하고, 상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하고, 상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하도록 설정된 방법 및 장치에 관하여 개시한다. 다양한 실시 예들이 가능하다.Various embodiments of the present invention include an inertial sensor, a display, a memory for storing a reference signal, and a processor operatively connected to at least one of the inertial sensor, the display, or the memory, wherein the processor includes the inertial sensor Acceleration data is measured using , the measured acceleration data is stored in an acceleration buffer of the memory, and a probability distribution of the measured acceleration data and a reference signal stored in the memory are obtained through a Kullback-Leivler divergence (KLD) algorithm. Obtaining a KLD output value by comparing probability distributions, determining whether the obtained KLD output value is less than the KLD reference value, and recognizing as a wheelchair pushing motion when the obtained KLD output value is less than the KLD reference value Regarding a method and apparatus Initiate. Various embodiments are possible.
Description
본 발명의 다양한 실시예들은 휠체어와 관련된 운동 정보 산출 방법 및 웨어러블 디바이스에 관하여 개시한다.Various embodiments of the present disclosure disclose a method for calculating exercise information related to a wheelchair and a wearable device.
디지털 기술의 발달과 함께 이동통신 단말기, PDA(personal digital assistant), 전자수첩, 스마트 폰, 태블릿 PC(personal computer), 또는 웨어러블 디바이스(wearable device)와 같은 다양한 유형의 전자 장치가 널리 사용되고 있다. 이러한, 전자 장치는 기능 지지 및 증대를 위해, 전자 장치의 하드웨어적인 부분 및/또는 소프트웨어적인 부분이 지속적으로 개량되고 있다.With the development of digital technology, various types of electronic devices such as mobile communication terminals, personal digital assistants (PDAs), electronic notebooks, smart phones, tablet PCs (personal computers), or wearable devices are widely used. In order to support and increase functions of these electronic devices, hardware parts and/or software parts of electronic devices are continuously being improved.
일례로, 웨어러블 디바이스와 같은 전자 장치는 사용자의 신체에 접촉(또는 착용) 가능한 것으로, 예를 들면 스마트 워치, 스마트 글래스, 스마트 밴드와 같은 다양한 형태로 제공되고 있다. 웨어러블 디바이스는 사용자에 관한 다양한 정보(예: 생체, 활동)를 수집 및 분석하여 사용자에게 다양한 기능(예: 운동 정보, 건강 정보)를 제공할 수 있다. For example, electronic devices such as wearable devices are capable of being in contact with (or worn on) a user's body, and are provided in various forms such as, for example, smart watches, smart glasses, and smart bands. The wearable device may provide various functions (eg, exercise information, health information) to the user by collecting and analyzing various information (eg, biometrics and activity) about the user.
종래의 웨어러블 디바이스는 걸음 수에 기반하여 운동 정보를 제공하고 있다. 따라서, 목발을 짚거나, 의족을 끼는 경우, 걸음 수에 기반하여 운동 정보를 제공하기 위해서는 운동 정보를 산출하기 위한 특별한 알고리즘이 필요할 수 있다. 더욱이, 휠체어를 타는 경우, 걸음 수에 기반한 운동 정보를 제공할 수 없으므로, 휠체어를 탄 사용자에게도 휠체어 사용과 관련된 운동 정보를 제공하기 위한 방안이 필요할 수 있다.Conventional wearable devices provide exercise information based on the number of steps taken. Accordingly, a special algorithm for calculating exercise information may be required to provide exercise information based on the number of steps when walking on crutches or wearing a prosthetic leg. Furthermore, since exercise information based on the number of steps cannot be provided when riding a wheelchair, a scheme for providing exercise information related to wheelchair use to a user in a wheelchair may be required.
다양한 실시예들에서는, 웨어러블 디바이스에 포함된 가속도 센서에서 측정된 가속도 데이터의 확률 분포와 웨어러블 디바이스에 미리 저장된 기준 신호의 확률 분포를 KLD(Kullback-Leivler divergence) 알고리즘을 통해 비교하여 KLD 출력값을 획득하고, 획득한 KLD 출력값에 기반하여 휠체어 밀기 동작으로 인식하고, 인식된 휠체어 밀기 동작의 횟수를 카운트함으로써, 휠체어와 관련된 운동 정보를 제공하는 방법 및 장치에 관하여 개시할 수 있다.In various embodiments, a probability distribution of acceleration data measured by an acceleration sensor included in a wearable device and a probability distribution of a reference signal pre-stored in the wearable device are compared through a Kullback-Leivler divergence (KLD) algorithm to obtain a KLD output value, , A method and apparatus for providing exercise information related to a wheelchair by recognizing the obtained KLD output value as a wheelchair pushing motion and counting the number of times of the recognized wheelchair pushing motion may be disclosed.
본 발명의 다양한 실시예들에 따른 웨어러블 디바이스는 관성 센서, 디스플레이, 기준 신호를 저장하는 메모리, 및 상기 관성 센서, 상기 디스플레이, 또는 상기 메모리 중 적어도 하나와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 관성 센서를 이용하여 가속도 데이터를 측정하고, 상기 측정된 가속도 데이터를 상기 메모리의 가속도 버퍼에 저장하고, KLD(Kullback-Leivler divergence) 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하고, 상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하고, 상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하도록 설정될 수 있다.A wearable device according to various embodiments of the present disclosure includes an inertial sensor, a display, a memory for storing a reference signal, and a processor operatively connected to at least one of the inertial sensor, the display, or the memory, the processor Measures acceleration data using the inertial sensor, stores the measured acceleration data in an acceleration buffer of the memory, and uses a Kullback-Leivler divergence (KLD) algorithm to obtain a probability distribution of the measured acceleration data and the memory Obtain a KLD output value by comparing the probability distribution of the reference signal stored in , determine whether the obtained KLD output value is less than the KLD reference value, and set to recognize as a wheelchair pushing operation if the obtained KLD output value is less than the KLD reference value It can be.
본 발명의 다양한 실시예들에 따른 웨어러블 디바이스의 동작 방법은 상기 웨어러블 디바이스에 포함된 관성 센서를 이용하여 가속도 데이터를 측정하는 동작, 상기 측정된 가속도 데이터를 상기 웨어러블 디바이스에 포함된 메모리의 가속도 버퍼에 저장하는 동작, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장되었는지 판단하는 동작, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장된 경우, KLD 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하는 동작, 상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하는 동작, 및 상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하는 동작을 포함할 수 있다.A method of operating a wearable device according to various embodiments of the present disclosure includes measuring acceleration data using an inertial sensor included in the wearable device, and storing the measured acceleration data in an acceleration buffer of a memory included in the wearable device. An operation of storing, an operation of determining whether the acceleration data is stored as much as the size of the acceleration buffer, and when the acceleration data is stored as much as the size of the acceleration buffer, a probability distribution of the measured acceleration data and stored in the memory through the KLD algorithm Obtaining a KLD output value by comparing probability distributions of reference signals, determining whether the obtained KLD output value is less than the KLD reference value, and recognizing as a wheelchair pushing operation if the obtained KLD output value is less than the KLD reference value Actions may be included.
다양한 실시예들에 따르면, KLD 알고리즘을 이용하여 웨어러블 디바이스에서 측정된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포를 비교함으로써, KLD 출력값에 기반하여 휠체어 밀기 동작으로 인식하고, 인식된 휠체어 밀기 동작의 횟수를 카운트할 수 있다.According to various embodiments, by comparing the probability distribution of acceleration data measured in a wearable device with a probability distribution of a reference signal using a KLD algorithm, recognizing a wheelchair pushing motion based on the KLD output value, and recognizing the recognized wheelchair pushing motion number of times can be counted.
다양한 실시예들에 따르면, 휠체어 밀기 동작을 정형 동작으로 판단하고, 이외의 모든 동작을 비정형 동작으로 판단함으로써, 휠체어 밀기 동작의 검출 정확도를 향상시킬 수 있다.According to various embodiments, the detection accuracy of the wheelchair pushing motion may be improved by determining the wheelchair pushing motion as a standard motion and determining all other motions as atypical motions.
다양한 실시예들에 따르면, KLD 알고리즘을 통해 획득한 KLD 출력값 뿐만 아니라, KLD 평균값과 가속도 분산값을 더 이용함으로써, 휠체어 밀기 동작의 검출 정확성을 향상시킬 수 있다.According to various embodiments, detection accuracy of a wheelchair pushing motion may be improved by further using not only the KLD output value obtained through the KLD algorithm but also the KLD average value and acceleration variance value.
다양한 실시예들에 따르면, 걸음 수를 카운트하는 것뿐만 아니라, 휠체어 밀기 동작의 횟수를 카운트함으로써, 휠체어를 탄 사용자에 대해서도 휠체어와 관련된 운동 정보(예: 휠체어 밀기 횟수, 휠체어 밀기 시간)를 효율적으로 제공할 수 있다.According to various embodiments, by counting the number of wheelchair pushing motions as well as counting the number of steps, motion information related to the wheelchair (eg, number of times of pushing the wheelchair, time of pushing the wheelchair) efficiently can provide
도 1은 다양한 실시예들에 따른 웨어러블 디바이스의 블록도이다.
도 2는 다양한 실시예들에 따른 웨어러블 디바이스의 전면 사시도를 도시한 도면이다.
도 3은 다양한 실시예들에 따른 웨어러블 디바이스의 후면 사시도를 도시한 도면이다.
도 4는 다양한 실시예들에 따른 휠체어 밀기 동작과 관련된 가속도 데이터를 나타낸 도면이다.
도 5는 다양한 실시예들에 따른 웨어러블 디바이스의 동작 방법을 도시한 흐름도이다.
도 6은 다양한 실시예들에 따른 시간에 따라 가속도 버퍼에 가속도 데이터를 저장하는 일례를 도시한 도면이다.
도 7은 다양한 실시예들에 따른 웨어러블 디바이스의 휠체어 밀기 동작을 인식하는 방법을 도시한 흐름도이다.
도 8a 내지 도 8c는 다양한 실시예들에 따른 웨어러블 디바이스에 포함된 버퍼를 활용하는 일례를 도시한 도면들이다.
도 9는 다양한 실시예들에 따른 웨어러블 디바이스에서 가속도 데이터에 기반하여 움직임을 분류하는 일례를 도시한 도면이다.
도 10은 다양한 실시예들에 따른 웨어러블 디바이스의 휠체어 밀기 동작을 카운트하는 방법을 도시한 흐름도이다.
도 11은 다양한 실시예들에 따른 웨어러블 디바이스에서 가속도 데이터에 윈도우를 설정하는 일례를 도시한 도면이다.
도 12는 다양한 실시예들에 따른 웨어러블 디바이스에서 적응형 임계치를 선정하는 일례를 도시한 도면이다.
도 13은 다양한 실시예들에 따른 웨어러블 디바이스에서 휠체어 밀기 동작의 카운트 오류를 방지하기 위한 일례를 도시한 도면이다.
도 14는 다양한 실시예들에 따른 웨어러블 디바이스에서 움직임에 따른 가속도 데이터의 차이를 나타낸 도면이다.
도 15는 다양한 실시예들에 따른 웨어러블 디바이스에서 휠체어 밀기와 관련된 사용자 인터페이스를 도시한 도면이다.1 is a block diagram of a wearable device according to various embodiments.
2 is a front perspective view of a wearable device according to various embodiments.
3 is a diagram illustrating a rear perspective view of a wearable device according to various embodiments.
4 is a diagram illustrating acceleration data related to a wheelchair pushing motion according to various embodiments.
5 is a flowchart illustrating a method of operating a wearable device according to various embodiments.
6 is a diagram illustrating an example of storing acceleration data in an acceleration buffer according to time according to various embodiments.
7 is a flowchart illustrating a method of recognizing a wheelchair pushing motion of a wearable device according to various embodiments.
8A to 8C are diagrams illustrating an example of utilizing a buffer included in a wearable device according to various embodiments.
9 is a diagram illustrating an example of classifying motion based on acceleration data in a wearable device according to various embodiments.
10 is a flowchart illustrating a method of counting a wheelchair pushing motion of a wearable device according to various embodiments.
11 is a diagram illustrating an example of setting a window on acceleration data in a wearable device according to various embodiments.
12 is a diagram illustrating an example of selecting an adaptive threshold in a wearable device according to various embodiments.
13 is a diagram illustrating an example for preventing a count error of a wheelchair pushing motion in a wearable device according to various embodiments.
14 is a diagram illustrating a difference in acceleration data according to movement in a wearable device according to various embodiments.
15 is a diagram illustrating a user interface related to pushing a wheelchair in a wearable device according to various embodiments.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. Various embodiments of this document and terms used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, like reference numbers may be used for like or related elements. The singular form of a noun corresponding to an item may include one item or a plurality of items, unless the relevant context clearly dictates otherwise.
본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.In this document, "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C", and "A Each of the phrases such as "at least one of , B, or C" may include any one of the items listed together in that phrase, or all possible combinations thereof. Terms such as "first", "second", or "first" or "secondary" may simply be used to distinguish that component from other corresponding components, and may refer to that component in other respects (eg, importance or order) is not limited. A (eg, first) component is said to be "coupled" or "connected" to another (eg, second) component, with or without the terms "functionally" or "communicatively." When mentioned, it means that the certain component may be connected to the other component directly (eg by wire), wirelessly, or through a third component.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as, for example, logic, logical blocks, parts, or circuits. can be used as A module may be an integrally constructed component or a minimal unit of components or a portion thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
도 1은 다양한 실시예들에 따른 웨어러블 디바이스의 블록도이다.1 is a block diagram of a wearable device according to various embodiments.
도 1을 참조하면, 웨어러블 디바이스(101)는 메모리(110), 프로세서(120), 입력 모듈(130), 디스플레이 모듈(140), 관성 센서(150), 통신 모듈(160), 마이크(170), 스피커(175), 충전 모듈(180), 배터리(185) 및/또는 인터페이스(190) 중 적어도 하나를 포함할 수 있다. 웨어러블 디바이스(101)는 네트워크(예: 근거리 무선 통신 네트워크, 원거리 무선 통신 네트워크)를 통하여 외부 전자 장치 또는 서버 중 적어도 하나와 통신할 수 있다. 웨어러블 디바이스(101)는 상기 기재된 구성요소들 중 적어도 하나가 생략되거나, 하나 이상의 다른 구성요소(예: 카메라 모듈)가 추가될 수 있다. 입력 모듈(130) 및 디스플레이 모듈(140)은 하나의 모듈(예: 터치스크린)로 통합될 수 있다.Referring to FIG. 1 , the
메모리(110)는 웨어러블 디바이스(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 관성 센서(150))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(110)는, 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 상기 프로그램은 메모리(110)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제, 미들 웨어 또는 어플리케이션을 포함할 수 있다.The
프로세서(120)는 소프트웨어를 실행하여 프로세서(120)에 연결된 웨어러블 디바이스(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 관성 센서(150) 또는 통신 모듈(160))로부터 수신된 명령 또는 데이터를 휘발성 메모리에 저장하고, 휘발성 메모리에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. The
프로세서(120)는 관성 센서(150)를 이용하여 가속도 데이터(또는 가속도 값, 가속도 센싱값)를 측정하고, 측정된 가속도 데이터를 가속도 버퍼(또는 제1 가속도 버퍼)에 저장하고, 상기 가속도 버퍼에 저장된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포를 비교하고, 상기 비교 결과를 KLD 출력값으로 획득하고, 상기 획득한 KLD 출력값에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 상기 기준 신호는 메모리(110)에 사전에 저장되며, 프로세서(120)는 KLD 알고리즘을 이용하여 상기 측정된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포를 비교할 수 있다. 프로세서(120)는 상기 가속도 버퍼의 크기만큼 가속도 데이터가 저장되었는지 판단하고, 상기 가속도 버퍼의 크기만큼 가속도 데이터가 저장될 때까지 가속도 데이터를 측정하여 측정된 가속도 데이터를 상기가속도 버퍼에 저장하는 동작을 반복 수행할 수 있다. 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 미만인 경우, 상기 휠체어 밀기 동작으로 인식하고, 상기 KLD 출력값이 상기 KLD 기준값 이상인 경우, 상기 휠체어 밀기 동작이 아닌 것으로 인식할 수 있다.The
다양한 실시예들에 따르면, 상기 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 프로세서(120)는 KLD를 계산하고, KLD 출력값을 KLD 버퍼에 저장할 수 있다. 프로세서(120)는 KLD 버퍼의 크기만큼 KLD 출력값이 저장될 때까지 상기 가속도 버퍼에 저장된 가속도 데이터에 기반하여 KLD를 계산하고, KLD 출력값을 KLD 버퍼에 저장하는 동작을 반복 수행할 수 있다. 프로세서(120)는 KLD 버퍼의 크기만큼 KLD 출력값이 저장되면, KLD 버퍼에 저장된 KLD 출력값에 기반하여 KLD 평균값을 산출할 수 있다. 상기 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 프로세서(120)는 상기 가속도 버퍼에 저장된 마지막 가속도 데이터를 식별하고, 식별된 가속도 데이터를 제2 가속도 버퍼에 저장할 수 있다. 프로세서(120)는 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장될 때까지 상기 가속도 버퍼에 저장된 마지막 가속도 데이터(예: 최신 가속도 데이터)를 식별하여 상기 제2 가속도 버퍼에 저장하는 동작을 반복 수행할 수 있다. 프로세서(120)는 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되면, 상기 제2 가속도 버퍼에 저장된 가속도 데이터에 기반하여 가속도 분산값을 산출할 수 있다.According to various embodiments, when acceleration data is stored as much as the size of the acceleration buffer, the
다양한 실시예들에 따르면, 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 미만이고, 상기 산출한 KLD 평균값이 KLD 평균 임계치 미만이며, 상기 산출한 가속도 분산값이 분산 임계치를 초과하는 경우, 휠체어 밀기 동작으로 인식할 수 있다. 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 이상이거나, 상기 산출한 KLD 평균값이 KLD 평균 임계치 이상이거나, 또는 상기 산출한 가속도 분산값이 분산 임계치 이하인 것 중 적어도 하나에 해당하는 경우, 상기 휠체어 밀기 동작이 아닌 것으로 판단할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 휠체어 밀기 동작으로 인식되면, 상기 제2 가속도 버퍼에 저장된 가속도 데이터 중에서 설정된 개수의 가속도 데이터에 윈도우를 설정할 수 있다. 프로세서(120)는 윈도우 내 가속도 피크(peak)를 검출하고, 윈도우 내 가속도 피크가 검출되는 경우, 피크로 검출된 가속도 데이터를 반환(또는 식별)할 수 있다. 프로세서(120)는 윈도우 내 가속도 피크가 검출되지 않는 경우, 윈도우 인덱스를 추가하여 윈도우를 갱신할 수 있다. 프로세서(120)는 상기 제2 가속도 버퍼에 저장된 가속도 데이터의 최소값을 검출하고, 상기 가속도 데이터의 최소값에 기반하여 적응형 임계치를 선정(또는 결정)할 수 있다. According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인지 여부를 판단하고, 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인 경우, 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는지 여부를 판단할 수 있다. 프로세서(120)는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는 경우, 휠체어 밀기 동작의 횟수를 카운트할 수 있다. 프로세서(120)는 상기 반환된 가속도 데이터가 적응형 임계치 이상이거나, 또는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치 이하인 경우, 휠체어 밀기 동작을 카운트하지 않을 수 있다.According to various embodiments, the
예를 들어, 웨어러블 디바이스(101)가 메인 프로세서 및 보조 프로세서를 포함하는 경우, 보조 프로세서는 메인 프로세서보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서는 메인 프로세서와 별개로, 또는 그 일부로서 구현될 수 있다. 보조 프로세서는, 예를 들면, 메인 프로세서가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서를 대신하여, 또는 메인 프로세서가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서와 함께, 웨어러블 디바이스의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(140), 관성 센서(150), 또는 통신 모듈(160))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 통신 모듈(160))의 일부로서 구현될 수 있다. For example, when the
일실시예에 따르면, 보조 프로세서(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 웨어러블 디바이스(101) 자체에서 수행될 수 있고, 별도의 서버를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.According to an embodiment, the auxiliary processor (eg, a neural network processing device) may include a hardware structure specialized for processing an artificial intelligence model. AI models can be created through machine learning. Such learning may be performed, for example, in the
입력 모듈(130)은 웨어러블 디바이스(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 웨어러블 디바이스(101)의 외부(예: 사용자)로부터 수신할 수 있다. 예를 들어, 입력 모듈(130)은 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The
디스플레이 모듈(140)은 웨어러블 디바이스(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 예를 들어, 디스플레이 모듈(140)은 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(140)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The
관성 센서(150)는 힘을 감지하는 센서로, 가속도(3축)와 Gyro(3축)을 합쳐 6축센서 라고도 할 수 있다. 또는, 관성 센서(150)는 가속도 센서와 자이로 센서를 통합하여 게임 로테이션 벡터 센서(game rotation vector sensor)라 할 수 있다, 가속도 센서(accelerometer)는 물체의 가속도, 진동, 충격과 같은 동적 힘을 측정하는 센서일 수 있다. 상기 가속도 센서는 물체의 운동 상태를 감지할 수 있어, 다양한 용도로 활용될 수 있다. 웨어러블 디바이스(101)는 관성 센서(150)에서 측정한 가속도 데이터에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 자이로 센서(gyroscope)는 물체의 각속도를 측정하는 센서일 수 있다. 상기 자이로 센서는 물체의 가속도를 측정하는 가속도 센서와 달리 물체의 각속도를 측정할 수 있다. 상기 각속도는 시간당 회전하는 속도(또는 각도)를 의미하는 것일 수 있다. 상기 자이로 센서는 자이로스코프(gyroscope)라고도 할 수 있다.The
통신 모듈(160)은 웨어러블 디바이스(101)와 외부 전자 장치 또는 서버 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(160)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(160)은 무선 통신 모듈(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GPS(global positioning system) 통신 모듈) 또는 유선 통신 모듈(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. The
이들 통신 모듈 중 해당하는 통신 모듈은 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크 또는 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈은 가입자 식별 모듈에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 근거리 통신 네트워크 또는 원거리 통신 네트워크와 같은 통신 네트워크 내에서 웨어러블 디바이스(101)를 확인 또는 인증할 수 있다. Among these communication modules, the corresponding communication module is a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA), or a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, LAN). or WAN) may communicate with an external electronic device through a long-distance communication network. These various types of communication modules may be integrated as one component (eg, a single chip) or implemented as a plurality of separate components (eg, multiple chips). The wireless communication module may identify or authenticate the
마이크(170)는 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 마이크(170)는 소리(또는 오디오)를 획득하여 전기 신호로 변환시킬 수 있다.The
스피커(175)는 오디오(또는 음향) 신호를 웨어러블 디바이스(101)의 외부로 출력할 수 있다. 스피커(175)는 리시버를 포함할 수 있다. 스피커(175)는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커(175)와 별개로, 또는 그 일부로서 구현될 수 있다.The
충전 모듈(180)은 웨어러블 디바이스(101)에 공급되는 전력을 관리할 수 있다. 충전 모듈(180)은 인터페이스(190)를 통해 수신되는 전력으로 배터리(185)를 충전시킬 수 있다. 충전 모듈(180)은 PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The
배터리(185)는 웨어러블 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(185)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The
인터페이스(190)는 웨어러블 디바이스(101)가 외부 전자 장치(또는 충전기)와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(190)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다. 인터페이스(190)는 웨어러블 디바이스(101)가 외부 전자 장치와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. The
일실시예에 따르면, 명령 또는 데이터는 서버를 통해서 웨어러블 디바이스(101)와 외부 전자 장치 간에 송신 또는 수신될 수 있다. 외부 전자 장치는 웨어러블 디바이스(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 웨어러블 디바이스(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치에서 실행될 수 있다. 예를 들면, 웨어러블 디바이스(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 웨어러블 디바이스(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 웨어러블 디바이스(101)로 전달할 수 있다. 웨어러블 디바이스(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. According to an embodiment, commands or data may be transmitted or received between the
이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 웨어러블 디바이스(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부 전자 장치는 IoT(internet of things) 기기를 포함할 수 있다. 서버는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 웨어러블 디바이스(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다. To this end, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The
본 문서의 다양한 실시예들은 기기(machine)(예: 웨어러블 디바이스(101)) 의해 읽을 수 있는 저장 매체(storage medium)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어로서 구현될 수 있다. 예를 들면, 웨어러블 디바이스(101)의 프로세서(120)는 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of this document may be implemented as software including one or more instructions stored in a storage medium readable by a machine (eg, the wearable device 101). For example, the
도 2는 다양한 실시예들에 따른 웨어러블 디바이스의 전면 사시도이고, 도 3은 다양한 실시예들에 따른 웨어러블 디바이스의 후면 사시도를 도시한 도면이다.2 is a front perspective view of a wearable device according to various embodiments, and FIG. 3 is a rear perspective view of a wearable device according to various embodiments.
도 2 및 3을 참조하면, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))는 제1 면(또는 전면)(210A), 제2 면(또는 후면)(210B), 및 제1 면(210A) 및 제2 면(210B) 사이의 공간을 둘러싸는 측면(210C)을 포함하는 하우징(210)과, 하우징(210)의 적어도 일부에 연결되고 웨어러블 디바이스(200)를 사용자의 신체(예: 손목, 발목 등)에 탈착 가능하게 하는 결착 부재(250, 260)를 포함할 수 있다. 다른 실시예(미도시)에서는, 하우징은, 도 2의 제1 면(210A), 제2 면(210B) 및 측면(210C)들 중 일부를 형성하는 구조를 지칭할 수도 있다. Referring to FIGS. 2 and 3 , a wearable device (eg, the
일 실시예에 따르면, 제1 면(210A)은 적어도 일부분이 실질적으로 투명한 전면 플레이트(201)(예: 다양한 코팅 레이어들을 포함하는 글라스 플레이트, 또는 폴리머 플레이트)에 의하여 형성될 수 있다. 제2 면(210B)은 실질적으로 불투명한 후면 플레이트(207)에 의하여 형성될 수 있다. 후면 플레이트(207)는, 예를 들어, 코팅 또는 착색된 유리, 세라믹, 폴리머, 금속(예: 알루미늄, 스테인레스 스틸(STS), 또는 마그네슘), 또는 상기 물질들 중 적어도 둘의 조합에 의하여 형성될 수 있다. 측면(210C)은, 전면 플레이트(201) 및 후면 플레이트(207)와 결합하며, 금속 및/또는 폴리머를 포함하는 측면 베젤 구조 (또는 "측면 부재")(206)에 의하여 형성될 수 있다. 어떤 실시예에서는, 후면 플레이트(207) 및 측면 베젤 구조(206)는 일체로 형성될 수 있고, 동일한 물질(예: 알루미늄과 같은 금속 물질)을 포함할 수 있다. 결착 부재(250, 260)는 다양한 재질 및 형태로 형성될 수 있다. 직조물, 가죽, 러버, 우레탄, 금속, 세라믹, 또는 상기 물질들 중 적어도 둘의 조합에 의하여 일체형 및 복수의 단위 링크가 서로 유동 가능하도록 형성될 수 있다.According to one embodiment, the
다양한 실시예들에 따르면, 웨어러블 디바이스(200)는 디스플레이(220)(예: 도 1의 디스플레이 모듈(140)), 오디오 모듈(205, 208), 센서 모듈(211)(예: 도 1의 관성 센서(150)), 키 입력 장치(202, 203, 204)(예: 도 1의 입력 모듈(130)) 및 커넥터 홀(209) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에서는, 웨어러블 디바이스(200)는, 구성요소들 중 적어도 하나(예: 키 입력 장치(202, 203, 204), 커넥터 홀(209), 또는 센서 모듈(211))를 생략하거나 다른 구성요소를 추가적으로 포함할 수 있다.According to various embodiments, the
디스플레이(220)는, 예를 들어, 전면 플레이트(201)의 상당 부분을 통하여 노출될 수 있다. 디스플레이(220)의 형태는, 전면 플레이트(201)의 형태에 대응하는 형태일 수 있으며, 원형, 타원형, 또는 다각형 등 다양한 형태일 수 있다. 디스플레이(220)는, 터치 감지 회로, 터치의 세기(압력)를 측정할 수 있는 압력 센서, 및/또는 지문 센서와 결합되거나 인접하여 배치될 수 있다.The
오디오 모듈(205, 208)은, 마이크 홀(205) 및 스피커 홀(208)을 포함할 수 있다. 마이크 홀(205)은 외부의 소리를 획득하기 위한 마이크가 내부에 배치될 수 있고, 어떤 실시예에서는 소리의 방향을 감지할 수 있도록 복수개의 마이크가 배치될 수 있다. 스피커 홀(208)은, 외부 스피커 및 통화용 리시버로 사용할 수 있다. The
센서 모듈(211)은, 웨어러블 디바이스(200)의 내부의 작동 상태, 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(211)은, 예를 들어, 하우징(210)의 제2 면(210B)에 배치된 생체 센서 모듈(211)(예: HRM 센서)을 포함할 수 있다. 웨어러블 디바이스(200)는, 도시되지 않은 센서 모듈, 예를 들어, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서 중 적어도 하나를 더 포함할 수 있다.The
키 입력 장치(202, 203, 204)는, 하우징(210)의 제1 면(210A)에 배치되고 적어도 하나의 방향으로 회전 가능한 휠 키(202), 및/또는 하우징(210)의 측면(210C)에 배치된 사이드 키 버튼(202, 203)을 포함할 수 있다. 휠 키는 전면 플레이트(202)의 형태에 대응하는 형태일 수 있다. 다른 실시예에서는, 웨어러블 디바이스(200)는 키 입력 장치(202, 203, 204)들 중 일부 또는 전부를 포함하지 않을 수 있고 포함되지 않은 키 입력 장치(202, 203, 204)는 디스플레이(220) 상에 소프트 키 등 다른 형태로 구현될 수 있다. 커넥터 홀(209)은, 외부 전자 장치와 전력 및/또는 데이터를 송수신하기 위한 커넥터(예를 들어, USB 커넥터)를 수용할 수 있고 외부 전자 장치와 오디오 신호를 송수신하기 위한 커넥터를 수용할 수 있는 다른 커넥터 홀(미도시))을 포함할 수 있다. 웨어러블 디바이스(200)는, 예를 들면, 커넥터 홀(209)의 적어도 일부를 덮고, 커넥터 홀에 대한 외부 이물질의 유입을 차단하는 커넥터 커버(미도시)를 더 포함할 수 있다.The
결착 부재(250, 260)는 락킹 부재(251, 261)를 이용하여 하우징(210)의 적어도 일부 영역에 탈착 가능하도록 결착될 수 있다. 결착 부재(250, 260)는 고정 부재(252), 고정 부재 체결 홀(253), 밴드 가이드 부재(254), 밴드 고정 고리(255) 중 하나 또는 그 이상을 포함할 수 있다. The binding
고정 부재(252)는 하우징(210)과 결착 부재(250, 260)를 사용자의 신체 일부(예: 손목, 발목 등)에 고정시키도록 구성될 수 있다. 고정 부재 체결 홀(253)은 고정 부재(252)에 대응하여 하우징(210)과 결착 부재(250, 260)를 사용자의 신체 일부에 고정시킬 수 있다. 밴드 가이드 부재(254)는 고정 부재(252)가 고정 부재 체결 홀(253)과 체결 시 고정 부재(252)의 움직임 범위를 제한하도록 구성됨으로써, 결착 부재(250, 260)가 사용자의 신체 일부에 밀착하여 결착되도록 할 수 있다. 밴드 고정 고리(255)는 고정 부재(252)와 고정 부재 체결 홀(253)이 체결된 상태에서, 결착 부재(250,260)의 움직임 범위를 제한할 수 있다.The fixing
도 4는 다양한 실시예들에 따른 휠체어 밀기 동작과 관련된 가속도 데이터를 나타낸 도면이다.4 is a diagram illustrating acceleration data related to a wheelchair pushing motion according to various embodiments.
도 4를 참조하면, 휠체어 밀기 동작은 크게 4가지로 분류될 수 있다. 예를 들어, 휠체어 밀기 동작 분류(410)는 휠체어 밀기 동작에 따른 손의 움직임을 도시한 것으로, 좌측 방향으로 휠체어가 움직이는 상황을 도시한 것일 수 있다. 휠체어 밀기 동작은 ① 휠체어 손잡이를 잡는 동작(holding), ② 휠체어 바퀴를 미는 동작(pushing), ③ 휠체어 손잡이에서 손을 떼는 동작(releasing), ④ 손을 회수하는 동작(recovery)을 포함할 수 있다. 발명의 설명을 위해 네가지 동작으로 분류하고 있지만, 구현에 따라 네가지 동작 보다 많거나, 적은 동작으로 분류할 수도 있다. 아래에서는, 사용자가 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))를 착용한 상태에서 휠체어를 탈 때 검출될 수 있는 가속도 특징에 대해 설명할 수 있다.Referring to FIG. 4 , wheelchair pushing motions can be largely classified into four types. For example, the wheelchair pushing
①손잡이를 잡는 동작은 휠체어를 회전하기 위해 바퀴를 잡는 동작으로써, 사용자의 손이 바퀴에 닿아 정지함에 따라 웨어러블 디바이스(101)는 가속도를 받으며, 손을 회수하는 동작과 이어지는 경우 손의 움직이는 방향이 바뀌며 큰 가속도가 발생할 수 있다. 잡는 동작은 가속도 데이터가 피크 형태로 발생될 수 있다.① The operation of grabbing the handle is an operation of grabbing the wheel to rotate the wheelchair, and as the user's hand touches the wheel and stops, the
② 바퀴를 미는 동작은 휠체어 바퀴를 직접적으로 회전하는 동작으로써, 지속적으로 속도는 증가할 수 있지만 가속도는 크게 발생하지 않아 피크는 생기지 않을 수 있다. 2번 동작의 경우 휠체어의 미는 속도에 따라 바퀴를 미는 동작의 길이가 변화할 수 있다.② The action of pushing the wheel is an action of directly rotating the wheel of the wheelchair. Although the speed may continuously increase, the acceleration may not occur significantly, so a peak may not occur. In the case of motion No. 2, the length of the motion of pushing the wheel may change according to the pushing speed of the wheelchair.
③ 손을 떼는 동작은 사용자의 손이 휠체어의 전진 방향에서 반대 방향으로 바뀌게 되는 동작으로, 2번 동작을 수행함에 따라 증가된 속도가 일시에 정지하며 큰 가속도가 발생할 수 있다. 이에 따라 전체 밀기 동작을 수행하는 가속도 중 가장 큰 피크가 발생할 수 있다.③ The motion of releasing the hand is a motion in which the user's hand changes from the forward direction of the wheelchair to the opposite direction. As the second motion is performed, the increased speed temporarily stops and large acceleration may occur. Accordingly, the largest peak among accelerations performing the entire pushing motion may occur.
④ 손을 회수하는 동작은 사용자가 손을 때는 동작 수행 후 휠체어 전진 반대 방향으로 손이 회수되는 동작으로 방향의 변화가 없이 발생하기 때문에 큰 피크 동작은 발생하지 않을 수 있다.④ The hand-retrieving action is an action in which the hand is retrieved in the opposite direction of the wheelchair forward after performing the action when the user releases his hand, and since it occurs without a change in direction, a large peak action may not occur.
그래프(450)는 휠체어 밀기 동작을 수행했을 때 발생하는 가속도 데이터를 도시한 것이다. 그래프(450)를 보면, 휠체어 밀기 동작 분류(410)에 대응하는 ①②③④에 따라 가속도 특징이 다르게 나타나고, 가속도 특징이 반복되어 발생하는 것을 확인할 수 있다. 그래프(450)에서, ③ 손을 떼는 동작은 가속도 데이터에서 가장 큰 피크가 발생하는 동작(451, 455)이고, ① 손잡이를 잡는 동작은 가속도 데이터에서 가장 작은 피크가 발생하는 동작(453, 457)으로 표기된 것일 수 있다.A
다양한 실시예들에 따르면, 휠체어 밀기 동작 분류(410)에 따른 가속도 특성은 사용자의 손끝 방향과 일치하는 가속도 센서의 축에서 더욱 뚜렷하게 나타날 수 있다. 사용자의 손끝 방향과 일치하는 가속도 센서의 축은 가속도 센서(예: 도 1의 관성 센서(150))가 웨어러블 디바이스(101)에 배치된 위치에 따라 달라질 수 있다. 본 발명에서는 사용자의 손끝 방향과 일치하는 가속도 센서의 축을 'x축'으로 설정하고, x축의 가속도 데이터에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 다만, 가속도 센서가 웨어러블 디바이스(101)에 배치된 위치에 따라 휠체어 밀기 동작에 사용하는 가속도 센서의 축은 y축 또는 z축이 될 수도 있다. According to various embodiments, acceleration characteristics according to the wheelchair pushing
다양한 실시예들에 따르면, 사용자는 웨어러블 디바이스(101)를 왼손 또는 오른손에 착용할 수 있다. 사용자가 웨어러블 디바이스(101)를 왼손 또는 오른손에 착용함에 따라 가속도 센서의 x축은 +방향 또는 -방향으로 구분될 수 있다. 가속도 센서의 x축에서 측정된 가속도 데이터가 -값을 가지는 경우 x축의 부호 반전을 이용하여 휠체어 밀기 동작을 인식할 수 있다.According to various embodiments, a user may wear the
웨어러블 디바이스(101)는 휠체어 밀기 동작에 따라 가속도 센서에서 측정된 가속도 데이터를 KLD(Kullback-Leivler divergence) 알고리즘의 입력으로 사용하여 휠체어 밀기 동작을 인식하고, 휠체어 밀기 동작으로 인식된 이후 측정된 가속도 데이터에 기반하여 휠체어 밀기 동작의 횟수를 카운트할 수 있다. The
본 발명의 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))는 관성 센서(예: 도 1의 관성 센서(150)), 디스플레이(예: 도 1의 디스플레이 모듈(140)), 기준 신호를 저장하는 메모리(예: 도 1의 메모리(110)), 및 상기 관성 센서, 상기 디스플레이, 또는 상기 메모리 중 적어도 하나와 작동적으로 연결된 프로세서(예: 도 1의 프로세서(120))를 포함하고, 상기 프로세서는, 상기 관성 센서를 이용하여 가속도 데이터를 측정하고, 상기 측정된 가속도 데이터를 상기 메모리의 가속도 버퍼에 저장하고, KLD(Kullback-Leivler divergence) 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하고, 상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하고, 상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하도록 설정될 수 있다.A wearable device (eg, the
상기 프로세서는, 상기 기준 신호의 크기만큼 상기 가속도 버퍼의 크기를 결정하고, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장되었는지 판단하고, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장된 경우, 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하도록 설정될 수 있다.The processor determines the size of the acceleration buffer as much as the size of the reference signal, determines whether the acceleration data is stored as much as the size of the acceleration buffer, and when the acceleration data is stored as much as the size of the acceleration buffer, the measured It may be set to compare the probability distribution of the acceleration data with the probability distribution of the reference signal stored in the memory.
상기 프로세서는, 상기 웨어러블 디바이스에 배치된 상기 관성 센서의 위치에 따라 설정된 축에 대응하는 가속도 데이터를 상기 가속도 버퍼에 저장하도록 설정될 수 있다.The processor may be configured to store acceleration data corresponding to an axis set according to a position of the inertial sensor disposed in the wearable device in the acceleration buffer.
상기 프로세서는, 상기 획득한 KLD 출력값에 기반하여 KLD 평균값을 산출하고, 상기 측정된 가속도 데이터에 기반하여 가속도 분산값을 산출하고, 상기 KLD 출력값, 상기 KLD 평균값 또는 상기 가속도 분산값 중 적어도 하나에 기반하여 상기 휠체어 밀기 동작을 인식하도록 설정될 수 있다.The processor calculates a KLD average value based on the obtained KLD output value, calculates an acceleration variance value based on the measured acceleration data, and calculates an acceleration variance value based on at least one of the KLD output value, the KLD average value, or the acceleration variance value. It can be set to recognize the pushing motion of the wheelchair.
상기 프로세서는, 상기 획득한 KLD 출력값을 KLD 버퍼에 저장하고, 상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장되었는지 판단하고, 상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장된 경우, 상기 KLD 버퍼에 저장된 KLD 출력값의 평균값을 산출하도록 설정될 수 있다.The processor stores the obtained KLD output value in the KLD buffer, determines whether the KLD output value is stored as much as the size of the KLD buffer, and when the KLD output value is stored as much as the size of the KLD buffer, the KLD output value stored in the KLD buffer It can be set to calculate an average value.
상기 가속도 버퍼를 제1 가속도 버퍼라 하고, 상기 프로세서는, 상기 제1 가속도 버퍼의 크기만큼 저장된 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하고, 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되었는지 판단하고, 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 상기 제2 가속도 버퍼에 저장된 가속도 데이터의 가속도 분산값을 산출하도록 설정될 수 있다.The acceleration buffer is referred to as a first acceleration buffer, and the processor stores the acceleration data stored in the first acceleration buffer in a second acceleration buffer when the size of the first acceleration buffer is stored, and It may be set to determine whether acceleration data is stored as much as the size and, when acceleration data is stored as much as the size of the second acceleration buffer, to calculate an acceleration variance value of the acceleration data stored in the second acceleration buffer.
상기 프로세서는, 상기 제1 가속도 버퍼의 크기만큼 저장된 경우, 상기 제1 가속도 버퍼에 저장된 마지막 가속도 데이터를 상기 제2 가속도 버퍼에 저장하도록 설정될 수 있다.The processor may be configured to store the last acceleration data stored in the first acceleration buffer in the second acceleration buffer when the size of the first acceleration buffer is stored.
상기 프로세서는, 상기 KLD 출력값, 상기 KLD 평균값 또는 상기 가속도 분산값 중 적어도 하나가 설정된 조건에 해당되는 경우, 상기 휠체어 밀기 동작으로 인식하도록 설정될 수 있다.The processor may be set to recognize the wheelchair pushing motion when at least one of the KLD output value, the KLD average value, and the acceleration variance value corresponds to a set condition.
상기 설정된 조건은 상기 KLD 출력값이 KLD 기준값 미만이고, 상기 KLD 평균값이 KLD 평균 임계치 미만이며, 상기 가속도 분산값이 분산 임계치를 초과하는 것 중 적어도 하나를 포함하도록 설정될 수 있다.The set condition may be set to include at least one of the following: the KLD output value is less than the KLD reference value, the KLD average value is less than the KLD average threshold value, and the acceleration variance value exceeds the variance threshold value.
상기 가속도 버퍼를 제1 가속도 버퍼라 하고, 상기 프로세서는, 상기 휠체어 밀기 동작으로 인식되는 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하고, 상기 제2 가속도 버퍼에 저장된 가속도 데이터 중 설정된 개수의 가속도 데이터에 윈도우를 설정하고, 상기 윈도우 내 가속도 피크(peak)를 검출하고, 상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인지 여부를 판단하고, 상기 판단 결과에 기반하여 상기 휠체어 밀기 동작의 횟수를 카운트하도록 설정될 수 있다.The acceleration buffer is referred to as a first acceleration buffer, and the processor stores the acceleration data stored in the first acceleration buffer in a second acceleration buffer when it is recognized as the wheelchair pushing motion, and the acceleration stored in the second acceleration buffer A window is set for a set number of acceleration data among the data, an acceleration peak within the window is detected, it is determined whether the acceleration data detected as an acceleration peak within the window is less than an adaptive threshold, and according to the determination result Based on this, it may be set to count the number of times of the wheelchair pushing motion.
상기 프로세서는, 상기 윈도우 내 가속도 피크가 검출되는 경우, 상기 가속도 피크로 검출된 가속도 데이터를 식별하고, 상기 윈도우 내 가속도 피크가 검출되지 않는 경우, 윈도우 인덱스를 추가하여 윈도우를 갱신하도록 설정될 수 있다.The processor may be set to update the window by identifying acceleration data detected as the acceleration peak when an acceleration peak within the window is detected, and adding a window index when an acceleration peak within the window is not detected. .
상기 프로세서는, 상기 제2 가속도 버퍼에 저장된 가속도 데이터의 최소값을 검출하고, 상기 가속도 데이터의 최소값에 기반하여 적응형 임계치를 결정하고, 상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인지 여부를 판단하도록 설정될 수 있다.The processor detects a minimum value of acceleration data stored in the second acceleration buffer, determines an adaptive threshold based on the minimum value of the acceleration data, and determines whether acceleration data detected as an acceleration peak within the window is less than the adaptive threshold. It can be set to determine whether or not.
상기 프로세서는, 상기 제2 가속도 버퍼에 새로운 가속도 데이터가 저장되거나, 또는 상기 윈도우를 갱신할 때마다 상기 적응형 임계치를 변경하도록 설정될 수 있다.The processor may be configured to change the adaptive threshold whenever new acceleration data is stored in the second acceleration buffer or the window is updated.
상기 프로세서는, 상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인 경우, 가속도 피크가 검출된 두 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는지 여부를 판단하고, 가속도 피크가 검출된 두 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는 경우, 상기 휠체어 밀기 동작의 횟수를 카운트하도록 설정될 수 있다.The processor, when the acceleration data detected as the acceleration peak within the window is less than the adaptive threshold, determines whether the difference between the two window indices in which the acceleration peak is detected exceeds the index threshold, and the two window indices in which the acceleration peak is detected When the difference between the values exceeds the index threshold, the number of times of the wheelchair pushing motion may be set to be counted.
도 5는 다양한 실시예들에 따른 웨어러블 디바이스의 동작 방법을 도시한 흐름도(500)이다.5 is a
도 5를 참조하면, 동작 501에서, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 가속도 센서(예: 도 1의 관성 센서(150))를 이용하여 가속도 데이터(또는 가속도 값, 가속도 센싱값)를 측정할 수 있다. 휠체어 밀기 동작에 따른 가속도 특성은 사용자의 손끝 방향과 일치하는 관성 센서(150)의 축에서 더욱 뚜렷하게 나타날 수 있다. 사용자의 손끝 방향과 일치하는 관성 센서(150)의 축은 관성 센서(150)가 웨어러블 디바이스(101)에 배치된 위치에 따라 달라질 수 있다. 프로세서(120)는 관성 센서(150)에서 측정된 가속도 데이터 중에서 사용자의 손끝 방향과 일치하는 'x축'의 가속도 데이터를 식별(또는 추출)할 수 있다. 관성 센서(150)에서 측정된 가속도 데이터는 x축, y축, z축의 가속도 데이터를 포함하고, 프로세서(120)는 휠체어 밀기 동작을 인식하기 위해 y축, z축의 가속도 데이터를 사용하지 않고, x축의 가속도 데이터만을 사용할 수 있다. 관성 센서(150)가 웨어러블 디바이스(101)에 배치된 위치에 따라 휠체어 밀기 동작에 사용하는 가속도 센서의 축은 y축 또는 z축이 될 수도 있다. 이하에서는 x축을 이용하는 것으로 설명하지만, 설명에 의해 본 발명이 제한되는 것은 아니다.Referring to FIG. 5 , in
동작 503에서, 프로세서(120)는 측정된 가속도 데이터를 가속도 버퍼(또는 제1 가속도 버퍼)에 저장할 수 있다. 상기 제1 가속도 버퍼는 관성 센서(150)에서 실시간으로 측정된 가속도 데이터가 저장될 수 있다. 프로세서(120)는 측정된 가속도 데이터(예: 로우(raw) 데이터)를 처리(예: 필터링)하여 상기 제1 가속도 버퍼에 저장할 수 있다. 상기 제1 가속도 버퍼의 크기가 120인 경우, 프로세서(120)는 120개의 가속도 데이터를 측정된 순서대로 상기 제1 가속도 버퍼에 저장할 수 있다. 프로세서(120)는 상기 제1 가속도 버퍼의 크기만큼 가속도 데이터가 저장될 때까지 동작 501 및 동작 503을 반복 수행할 수 있다. 프로세서(120)는 상기 제1 가속도 버퍼의 크기만큼 가속도 데이터가 모두 저장된 경우, 동작 505를 수행할 수 있다. 도면에서는 동작 501과 동작 503을 구분하여 설명하고 있지만, 프로세서(120)는 동작 501 및 동작 503을 하나의 동작으로 수행하여, 가속도 데이터가 측정될 때마다 상기 제1 가속도 버퍼에 측정된 가속도 데이터를 저장할 수 있다.In
동작 505에서, 프로세서(120)는 상기 측정된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포를 비교할 수 있다. 프로세서(120)는 상기 측정된 가속도 데이터가 휠체어 밀기 동작에 해당되는지 판단하기 위해 확률 분포 비교 방법, 예를 들어, KLD 알고리즘을 사용할 수 있다. 휠체어 밀기 동작을 수행할 때 발생하는 신호적 특징이 동일하게 발생하는 점을 이용해서, 사전에 휠체어 밀기 동작(예: ①②③④)을 1회 수행할 때 발생하는 가속도 데이터를 기준 신호로 정의할 수 있다. 정의된 기준 신호의 확률 분포를 kernel 함수를 이용해서 계산하고, 계산된 기준 신호를 웨어러블 디바이스(101)의 메모리(예: 도 1의 메모리(110))에 미리 저장할 수 있다. 상기 기준 신호는 상기 측정된 가속도 데이터가 휠체어 밀기 동작에 해당되는지 판단하기 위한 기준 값이 될 수 있다. In
다양한 실시예들에 따르면, 확률 분포 비교 방법을 사용하기 위해서, 상기 기준 신호가 저장된 크기만큼 상기 제1 가속도 버퍼의 크기가 설정될 수 있다. 예를 들어, 상기 기준 신호가 120개 저장된 경우, 상기 제1 가속도 버퍼의 크기도 120개의 가속도 데이터가 저장될 수 있도록 설정되고, 상기 기준 신호가 150개 저장된 경우, 상기 제1 가속도 버퍼의 크기도 150개의 가속도 데이터가 저장될 수 있도록 설정될 수 있다. According to various embodiments, in order to use the probability distribution comparison method, the size of the first acceleration buffer may be set as much as the size at which the reference signal is stored. For example, when 120 reference signals are stored, the size of the first acceleration buffer is set to store 120 acceleration data, and when 150 reference signals are stored, the size of the first acceleration buffer is also set. It can be set so that 150 pieces of acceleration data can be stored.
동작 507에서, 프로세서(120)는 상기 비교 결과를 KLD 출력값으로 획득할 수 있다. 예를 들어, 프로세서(120)는 KLD 알고리즘을 이용하여 상기 제1 가속도 버퍼에 저장된 120개의 가속도 데이터(예: 첫번째 측정된 가속도 데이터부터 120번째 측정된 가속도 데이터)의 확률 분포와 120개의 기준 신호의 확률 분포를 비교하여 하나의 KLD 출력값을 획득할 수 있다. KL-divergence는 상기 측정된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포 간의 information entropy 차이로 고려될 수 있다. 계산한 KL-divergence(예: KLD 출력값)가 큰 값을 가지면 information entropy 차이가 크다는 것을 의미하며 이는 상기 측정된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포 간의 유사성이 적다는 것을 의미할 수 있다. 반대로, KL-divergence가 작은 값을 가지면 information entropy 차이가 적다는 것을 의미하며, 이는 상기 측정된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포가 유사한 확률 분포를 가진다는 것을 의미한다. KLD 알고리즘은 공지 기술에 해당하므로, 자세한 설명을 생략할 수 있다.In
동작 509에서, 프로세서(120)는 상기 획득한 KLD 출력값에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 프로세서(120)는 상기 획득한 KLD 출력값이 KLD 기준값 미만이면, 상기 측정된 가속도 데이터와 상기 기준 신호의 유사도가 큰 것으로 판단하여 휠체어 밀기 동작으로 인식할 수 있다. 프로세서(120)는 상기 획득한 KLD 출력값이 KLD 기준값 이상이면, 상기 측정된 가속도 데이터와 상기 기준 신호의 유사도가 작은 것으로 판단하여 휠체어 밀기 동작으로 인식하지 않을 수 있다. KLD 기준값은 두 확률 분포의 유사도를 KLD로 판단하기 위한 임계치를 의미할 수 있다. 상기 KLD 기준값은 메모리(110)에 사전에 저장될 수 있다. 본 발명은 휠체어 밀기 동작을 인식하기 위한 것으로, 휠체어 밀기 동작이 아닌 경우(예: 걷기, 달리기 등), 비정형 동작으로 판단할 수 있다. 동작 509에서 휠체어 밀기 동작이 아닌 것으로 판단되는 경우, 프로세서(120)는 상기 비정형 동작에 따른 운동 정보(예: 걸음 수, 걷는 시간, 달리는 시간 등)를 획득하기 위한 알고리즘을 수행할 수 있다. 걸음 수 산출, 걷는 시간 산출 또는 달리는 시간 산출과 같은 동작은 종래 기술에 해당하므로, 자세한 설명을 생략할 수 있다.In
동작 509에서 휠체어 밀기 동작으로 인식되는 경우, 프로세서(120)는 동작 501 내지 동작 509를 반복적으로 수행하여 새롭게 측정된 가속도 데이터(예: 두번째 측정된 가속도 데이터부터 121번째 측정된 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 휠체어 밀기 동작을 판단할 수 있다. 또한, 프로세서(120)는 휠체어 밀기 동작으로 인식되는 경우, 도 10의 동작을 수행하여 휠체어 밀기 동작의 횟수를 카운트할 수 있다.When it is recognized as a wheelchair pushing motion in
도 6은 다양한 실시예들에 따른 시간에 따라 가속도 버퍼에 가속도 데이터를 저장하는 일례를 도시한 도면이다.6 is a diagram illustrating an example of storing acceleration data in an acceleration buffer according to time according to various embodiments.
도 6을 참조하면, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 가속도 센서(예: 도 1의 관성 센서(150))를 이용하여 가속도 데이터(또는 가속도 값, 가속도 센싱값)를 측정할 수 있다. 제1 도면 부호(610)를 참조하면, 프로세서(120)는 시간 순서(예: 시간 인덱스(601))에 따라 실시간으로 측정된 가속도 데이터를 가속도 버퍼(또는 제1 가속도 버퍼)(603)에 저장할 수 있다. 예를 들어, 시간 인덱스(601)에서 첫번째 시간(1)에 측정된 첫번째 가속도 데이터를 가속도 버퍼(603)에 저장하고, 두번째 시간(2)에 측정된 두번째 가속도 데이터를 가속도 버퍼(601)에 저장할 수 있다. 프로세서(120)는 가속도 버퍼(603)의 크기(예: 120)만큼 가속도 데이터가 저장될 때까지 가속도 데이터를 계속 측정하여 가속도 버퍼(603)에 저장하고, 가속도 버퍼(603)의 크기만큼 가속도 데이터가 저장되면, 가속도 버퍼에 저장된 가속도 데이터(예: 첫번째 가속도 데이터부터 120번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 첫번째 KLD 출력값을 획득할 수 있다.Referring to FIG. 6 , a processor (eg,
제2 도면 부호(630)를 참조하면, 121번째 새로운 시간 인덱스(601)에 따라 121번째 가속도 데이터가 가속도 버퍼(603)에 저장되며, 프로세서(120)는 가속도 버퍼에 저장된 가속도 데이터(예: 두번째 가속도 데이터부터 121번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 두번째 KLD 출력값을 획득할 수 있다. 이후 시간 인덱스(601)가 122번째인 경우, 122번째 가속도 데이터가 가속도 버퍼(603)에 저장되며, 프로세서(120)는 가속도 버퍼에 저장된 가속도 데이터(예: 세번째 가속도 데이터부터 122번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 세번째 KLD 출력값을 획득할 수 있다.Referring to the
프로세서(120)는 관성 센서(150)의 샘플링 시간(sampling time)에 맞추어 가속도 버퍼(601)에 새로운 가속도 데이터를 저장하고, 가속도 버퍼(601)는 지속적으로 갱신될 수 있다. 예를 들어 100Hz로 가속도 데이터를 샘플링 한다면, 가속도 데이터가 측정될 때마다 가속도 버퍼(601)는 가장 최신의 가속도 데이터를 저장하고, 가장 오래된 가속도 데이터를 제거하며 갱신을 지속할 수 있다.The
도 7은 다양한 실시예들에 따른 웨어러블 디바이스의 휠체어 밀기 동작을 인식하는 방법을 도시한 흐름도(700)이다.7 is a
도 7을 참조하면, 동작 701에서, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 제1 가속도 버퍼(예: 도 6의 가속도 버퍼(603))의 크기만큼 가속도 데이터가 저장되었는지 판단할 수 있다. KLD 알고리즘을 이용한 확률 분포 비교 방법을 이용하기 위해서는 기준 신호의 크기만큼 실시간으로 측정된 가속도 데이터가 필요할 수 있다. 프로세서(120)는 기준 신호의 크기만큼 제1 가속도 버퍼의 크기를 정할 수 있다. 예를 들어, 기준 신호의 크기가 100인 경우, 제1 가속도 버퍼의 크기도 100으로 설정하고, 기준 신호의 크기가 120인 경우, 제1 가속도 버퍼의 크기도 120으로 설정할 수 있다. 상기 제1 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있지 않은 경우, 기준 신호와의 확률 분포 비교가 불가할 수 있다. 프로세서(120)는 제1 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 동작 703을 수행하고, 제1 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있지 않은 경우, 도 5의 동작 501로 리턴할 수 있다. Referring to FIG. 7 , in
프로세서(120)는 동작 501로 리턴하는 경우, 가속도 데이터를 측정하여 측정된 가속도 데이터를 제1 가속도 버퍼에 저장하는 동작을 반복 수행할 있다. 프로세서(120)는 제1 가속도 버퍼의 크기만큼 가속도 데이터가 저장될 때까지 가속도 데이터를 측정하여 측정된 가속도 데이터를 제1 가속도 버퍼에 저장하는 동작을 반복 수행할 수 있다.When returning to
제1 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 동작 703에서, 프로세서(120)는 KLD를 계산하고, 가속도 데이터를 식별할 수 있다. 프로세서(120)는 KLD 알고리즘을 통해 상기 제1 가속도 버퍼에 저장된 가속도 데이터(예: 첫번째 가속도 데이터부터 120번째 가속도 데이터)의 확률 분포와 메모리(예: 도 1의 메모리(110))에 저장된 기준 신호(120개의 기준 신호)의 확률 분포를 비교하여 KLD를 계산할 수 있다. 상기 계산된 비교값이 KLD 출력값일 수 있다. 또한, 프로세서(120)는 상기 제1 가속도 버퍼에 마지막으로 저장된 가속도 데이터를 식별할 수 있다. 이하, 동작 705 내지 동작 709는 동작 706 내지 710과 동시에 수행될 수 있다.When acceleration data equal to the size of the first acceleration buffer is stored, in
다양한 실시예들에 따르면, 프로세서(120)는 KLD 출력값을 이용하여 휠체어 밀기 동작을 인식할 수 있지만, 휠체어 밀기 동작의 정확성을 높이기 위하여, KLD 평균값 또는 가속도 분산값을 더 이용할 수 있다. 이를 위해, 프로세서(120)는 도 7의 동작을 더 수행할 수 있다. 먼저, KLD 평균값을 계산하는 동작부터 설명하기로 한다. 설명에 의해 본 발명이 제한되는 것은 아니다.According to various embodiments, the
동작 705에서, 프로세서(120)는 KLD 출력값을 KLD 버퍼에 저장할 수 있다. 상기 KLD 출력값은 상기 제1 가속도 버퍼가 갱신될 때마다 계산되어 KLD 버퍼에 저장될 수 있다. 상기 KLD 버퍼의 크기는 상기 제1 가속도 버퍼의 크기와 동일하거나, 또는 상이할 수 있다. 예를 들어, 상기 KLD 버퍼의 크기는 상기 제1 가속도 버퍼의 크기보다 클 수 있다. 상기 제1 가속도 버퍼의 크기가 100인 경우, 상기 KLD 버퍼의 크기는 120일 수 있다. 또는, 상기 제1 가속도 버퍼의 크기가 120인 경우, 상기 KLD 버퍼의 크기는 150일 수 있다.At
동작 707에서, 프로세서(120)는 KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있는지 판단할 수 있다. 상기 제1 가속도 버퍼의 크기가 120이고, 120번째 가속도 데이터가 상기 제1 가속도 버퍼에 저장되면 프로세서(120)는 동작 703을 수행하여 첫번째 KLD 출력값이 획득될 수 있다. 프로세서(120)는 획득한 첫번째 KLD 출력값을 KLD 버퍼에 저장하고, KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있는지 판단할 수 있다. In
프로세서(120)는 KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있는 경우, 동작 709를 수행하고, KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있지 않은 경우, 동작 721을 수행할 수 있다.The
KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있지 않은 경우, 동작 721에서, 프로세서(120)는 새로운 가속도 데이터(예: 121번째 가속도 데이터)를 측정하고, 측정된 가속도 데이터를 상기 제1 가속도 버퍼에 저장할 수 있다. 동작 721을 수행하면, 프로세서(120)는 동작 703으로 리턴하여, 상기 제1 가속도 버퍼에 저장된 가속도 데이터(예: 두번째 가속도 데이터부터 121번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 두번째 KLD 출력값을 획득할 수 있다. 프로세서(120)는 703을 수행한 후 동작 705를 수행하여 획득한 두번째 KLD 출려값을 KLD 버퍼에 저장하고, 동작 707을 수행하여 KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있는지 여부를 판단할 수 있다. 프로세서(120)는 KLD 버퍼의 크기만큼 KLD 출력값이 저장될 때까지 동작 703, 705, 707, 721을 반복적으로 수행할 수 있다.When the KLD output value is not stored as much as the size of the KLD buffer, in
KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있는 경우, 동작 709에서, 프로세서(120)는 KLD 출력값에 기반하여 KLD 평균값을 산출할 수 있다. 상기 KLD 버퍼의 크기가 150인 경우, 프로세서(120)는 150개의 KLD 출력값의 평균값을 산출할 수 있다. 프로세서(120)는 KLD 평균값을 산출한 후 동작 711을 수행할 수 있다.When KLD output values equal to the size of the KLD buffer are stored, in
가속도 분산값을 계산하는 동작을 설명하기로 한다.An operation of calculating an acceleration variance value will be described.
동작 706에서, 프로세서(120)는 식별된 가속도 데이터를 제2 가속도 버퍼에 저장할 수 있다. 상기 제2 가속도 버퍼는 상기 제1 가속도 버퍼와 유사하게 가속도 데이터가 저장될 수 있다. 차이점은, 상기 제2 가속도 버퍼에는 상기 제1 가속도 버퍼의 크기만큼 저장한 후, 상기 제1 가속도 버퍼에 저장된 마지막 가속도 데이터가 저장될 수 있다. 상기 제1 가속도 버퍼의 크기(예: 120)만큼 가속도 데이터를 저장한 경우, 120번째 가속도 데이터가 상기 제1 가속도 버퍼에 저장된 마지막 가속도 데이터일 수 있다. 프로세서(120)는 동작 703에서 상기 제1 가속도 버퍼에 저장된 마지막 가속도 데이터를 식별하여 상기 식별된 가속도 데이터를 상기 제2 가속도 버퍼에 저장할 수 있다. In
동작 708에서, 프로세서(120)는 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있는지 판단할 수 있다. 상기 제2 가속도 버퍼의 크기는 상기 제1 가속도 버퍼의 크기 또는 상기 KLD 버퍼의 크기와 동일하거나, 또는 상이할 수 있다. 예를 들어, 상기 제2 가속도 버퍼의 크기는 상기 제1 가속도 버퍼의 크기보다 크고, 상기 KLD 버퍼의 크기와 동일할 수 있다. 상기 제1 가속도 버퍼의 크기가 100인 경우, 상기 제2 가속도 버퍼의 크기는 120일 수 있다. 또는, 상기 제1 가속도 버퍼의 크기가 120인 경우, 상기 제2 가속도 버퍼의 크기는 150일 수 있다.In
프로세서(120)는 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있는 경우, 동작 710을 수행하고, 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있지 않은 경우, 동작 722를 수행할 수 있다.The
상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있지 않은 경우, 동작 722에서, 프로세서(120)는 새로운 가속도 데이터(예: 121번째 가속도 데이터)를 측정하고, 측정된 가속도 데이터를 상기 제1 가속도 버퍼에 저장할 수 있다. 동작 722는 동작 721과 동일 또는 유사할 수 있다. 동작 722를 수행하면, 프로세서(120)는 동작 703으로 리턴하여, 상기 제1 가속도 버퍼에 저장된 마지막 가속도 데이터(예: 121번째 가속도 데이터)를 식별할 수 있다. 프로세서(120)는 703을 수행한 후 동작 706을 수행하여 식별된 가속도 데이터를 상기 제2 가속도 버퍼에 저장하고, 동작 708을 수행하여 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있는지 여부를 판단할 수 있다. 프로세서(120)는 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장될 때까지 동작 703, 706, 708, 722를 반복적으로 수행할 수 있다.When acceleration data is not stored as much as the size of the second acceleration buffer, in
상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있는 경우, 동작 710에서, 프로세서(120)는 상기 가속도 데이터에 기반하여 가속도 분산값을 산출할 수 있다. 상기 제2 가속도 버퍼의 크기가 150인 경우, 프로세서(120)는 150개의 가속도 데이터의 분산값을 산출할 수 있다. 프로세서(120)는 상기 가속도 분산값을 산출한 후 동작 711을 수행할 수 있다.When acceleration data corresponding to the size of the second acceleration buffer is stored, in
동작 711에서, 프로세서(120)는 설정된 조건에 해당되는지 여부를 판단할 수 있다. 상기 설정된 조건은 KLD 출력값이 KLD 기준값 미만이고, KLD 평균값이 KLD 평균 임계치 미만이며, 가속도 분산값이 분산 임계치를 초과하는 것 중 적어도 하나를 포함할 수 있다. 프로세서(120)는 도 5의 동작 507에서 획득한 KLD 출력값이 KLD 기준값 미만인 경우, 상기 설정된 조건에 해당되는 것으로 판단할 수 있다. 또는, 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 미만이고, 동작 709에서 산출한 KLD 평균값이 KLD 평균 임계치 미만이며, 동작 710에서 산출한 가속도 분산값이 분산 임계치를 초과하는 경우, 상기 설정된 조건에 해당되는 것으로 판단할 수 있다.In
프로세서(120)는 상기 설정된 조건에 해당되는 경우 동작 713을 수행하고, 상기 설정된 조건에 해당되지 않는 경우 동작 715를 수행할 수 있다.The
상기 설정된 조건에 해당되는 경우 동작 713에서, 프로세서(120)는 휠체어 밀기 동작으로 인식(또는 판단)할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작으로 판단된 경우, 프로세서(120)는 동작 701 내지 동작 711을 반복적으로 수행하여 계속해서 휠체어 밀기 동작이 수행되는지 여부를 판단할 수 있다. 또한, 프로세서(120)는 휠체어 밀기 동작으로 인식되는 경우, 도 10의 동작을 수행하여 휠체어 밀기 동작의 횟수를 카운트할 수 있다.In
상기 설정된 조건에 해당되지 않는 경우 동작 715에서, 프로세서(120)는 상기 휠체어 밀기 동작이 아닌 것으로 판단할 수 있다. 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 이상이거나, 동작 709에서 산출한 KLD 평균값이 KLD 평균 임계치 이상이거나, 또는 동작 710에서 산출한 가속도 분산값이 분산 임계치 이하인 것 중 적어도 하나에 해당하는 경우, 상기 설정된 조건에 해당되지 않는 것으로 판단할 수 있다. 프로세서(120)는 상기 KLD 출력값, 상기 KLD 평균값 또는 상기 가속도 분산값이 상기 설정된 조건에 하나라도 해당되지 않는 경우, 상기 휠체어 밀기 동작이 아닌 것으로 판단할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작이 아닌 경우, 걷기, 달리기와 같은 비정형 동작으로 판단할 수 있다. 프로세서(120)는 상기 비정형 동작에 따른 운동 정보(예: 걷는 시간, 걸음 수, 달리는 시간 등)를 획득하기 위한 알고리즘을 수행할 수 있다. 걸음 수 산출, 걷는 시간 산출 또는 달리는 시간 산출과 같은 동작은 종래 기술에 해당하므로, 자세한 설명을 생략할 수 있다.If the set conditions are not met, in
도 8a 내지 도 8c는 다양한 실시예들에 따른 웨어러블 디바이스에 포함된 버퍼를 활용하는 일례를 도시한 도면들이다.8A to 8C are diagrams illustrating an example of utilizing a buffer included in a wearable device according to various embodiments.
도 8a를 참조하면, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 가속도 센서(예: 도 1의 관성 센서(150))를 이용하여 가속도 데이터(또는 가속도 값, 가속도 센싱값)를 측정할 수 있다. 프로세서(120)는 시간 순서(예: 시간 인덱스(601))에 따라 실시간으로 측정된 가속도 데이터를 제1 가속도 버퍼(예: 도 6의 가속도 버퍼(603))에 저장할 수 있다. 제1 가속도 버퍼(603)의 크기는 웨어러블 디바이스(101)의 메모리(예: 도 1의 메모리(110))에 저장된 기준 신호의 크기와 동일하게 설정될 수 있다. 이하에서는 제1 가속도 버퍼(603)의 크기를 '120'으로 설명하지만, 설명에 의해 본 발명이 제한되는 것은 아니다. 예를 들어, 시간 인덱스(601)에서 첫번째 시간(1)에 측정된 첫번째 가속도 데이터를 제1 가속도 버퍼(603)에 저장하고, 두번째 시간(2)에 측정된 두번째 가속도 데이터를 제1 가속도 버퍼(601)에 저장할 수 있다. 프로세서(120)는 제1 가속도 버퍼(603)의 크기(예: 120)만큼 가속도 데이터가 저장될 때까지 가속도 데이터를 계속 측정하여 제1 가속도 버퍼(603)에 저장할 수 있다. Referring to FIG. 8A , a processor (eg, the
프로세서(120)는 제1 가속도 버퍼(603)의 크기만큼 가속도 데이터가 저장되면, 제1 가속도 버퍼(603)에 저장된 가속도 데이터(예: 첫번째 가속도 데이터부터 120번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 첫번째 KLD 출력값(811)을 획득할 수 있다. 프로세서(120)는 첫번째 KLD 출력값(811)에 기반하여 휠체어 밀기 동작인지 여부를 판단할 수 있다. 또는, 프로세서(120)는 휠체어 밀기 동작인지 여부를 더욱 정확하게 판단하기 위해 KLD 평균값 또는 가속도 분산값을 더 이용할 수도 있다. 이를 위해, 프로세서(120)는 첫번째 KLD 출력값(811)을 획득하면, 첫번째 KLD 출력값(811)을 KLD 버퍼(801)에 저장하고, 제1 가속도 버퍼(603)에 저장된 마지막 가속도 데이터(예: 120번째 가속도 데이터)를 제2 가속도 버퍼(803)에 저장할 수 있다. KLD 버퍼(801)의 크기는 제1 가속도 버퍼(603) 또는 제2 가속도 버퍼(803)의 크기와 동일하거나, 다를 수 있다. 예를 들어, KLD 버퍼(801)의 크기 또는 제2 가속도 버퍼(803)의 크기는 150으로, 서로 동일하고, 제1 가속도 버퍼(603)와 다를 수 있다. 설명에 의해 본 발명이 제한되는 것은 아니다.When acceleration data corresponding to the size of the
이후, 프로세서(120)는 새로이 측정된 가속도 데이터(예: 121번째 가속도 데이터)를 제1 가속도 버퍼(603)에 저장하고, 제1 가속도 버퍼(603)에 저장된 가속도 데이터(예: 2번째 가속도 데이터부터 121번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 두번째 KLD 출력값을 획득할 수 있다. 프로세서(120)는 두번째 KLD 출력값을 획득하면, 두번째 KLD 출력값을 KLD 버퍼(801)에 저장하고, 제1 가속도 버퍼(603)에 저장된 마지막 가속도 데이터(예: 121번째 가속도 데이터)를 제2 가속도 버퍼(803)에 저장할 수 있다.Thereafter, the
도 8b를 참조하면, 프로세서(120)는 시간 인덱스(601)가 269번째인 시간에 측정된 269번째 가속도 데이터를 제1 가속도 버퍼(603)에 저장하고, 제1 가속도 버퍼(603)에 저장된 가속도 데이터(예: 150번째 가속도 데이터부터 269번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 150번째 KLD 출력값(817)을 획득할 수 있다. 프로세서(120)는 150번째 KLD 출력값(817)을 획득하면, 150번째 KLD 출력값(817)을 KLD 버퍼(801)에 저장하고, 제1 가속도 버퍼(603)에 저장된 마지막 가속도 데이터(예: 269번째 가속도 데이터)를 제2 가속도 버퍼(803)에 저장할 수 있다. 프로세서(120)는 KLD 버퍼(801)의 크기(예: 150)만큼 KLD 출력값이 저장된 경우, KLD 버퍼(801)에 저장된 KLD 출력값에 기반하여 제1 KLD 평균값(813)을 산출할 수 있다. 또한, 프로세서(120)는 제2 가속도 버퍼(803)의 크기(예: 150)만큼 가속도 데이터(예: 120번째 가속도 데이터부터 269번째 가속도 데이터)가 저장된 경우, 제2 가속도 버퍼(803)에 저장된 가속도 데이터에 기반하여 제1 가속도 분산값(815)을 산출할 수 있다. Referring to FIG. 8B , the
프로세서(120)는 150번째 KLD 출력값(817), 제1 KLD 평균값(813), 또는 제1 가속도 분산값(815) 중 적어도 하나에 기반하여 움직임 분류(830)를 수행할 수 있다. 움직임 분류(830)는 정형 동작 또는 비정형 동작을 판단(또는 분류)하는 것일 수 있다. 상기 정형 동작은 휠체어 밀기 동작을 포함하고, 상기 비정형 동작은 상기 휠체어 밀기 동작을 제외한 모든 동작(예: 걷기, 걸음 수)을 포함할 수 있다. 예를 들어, 프로세서(120)는 150번째 KLD 출력값(817)이 KLD 기준값 미만에 해당하는 경우, 움직임 분류(830)에서 휠체어 밀기 동작으로 판단할 수 있다. 프로세서(120)는 150번째 KLD 출력값(817)이 KLD 기준값 이상인 경우, 움직임 분류(830)에서 휠체어 밀기 동작 아님으로 판단할 수 있다. The
또는, 프로세서(120)는 150번째 KLD 출력값(817)이 KLD 기준값 미만이고, 제1 KLD 평균값(813)이 KLD 평균 임계치 미만이며, 제1 가속도 분산값(815)이 분산 임계치를 초과하는 경우, 움직임 분류(830)에서 휠체어 밀기 동작으로 판단할 수 있다. 프로세서(120)는 150번째 KLD 출력값(817)이 KLD 기준값 이상이거나, 제1 KLD 평균값(813)이 KLD 평균 임계치 이상이거나, 또는 제1 가속도 분산값(815)이 분산 임계치 이하인 것 중 적어도 하나에 해당하는 경우, 움직임 분류(830)에서 휠체어 밀기 동작 아님으로 판단할 수 있다.Alternatively, the
도 8c를 참조하면, 프로세서(120)는 시간 인덱스(601)가 270번째인 시간에 측정된 270번째 가속도 데이터를 제1 가속도 버퍼(603)에 저장하고, 제1 가속도 버퍼(603)에 저장된 가속도 데이터(예: 151번째 가속도 데이터부터 270번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 151번째 KLD 출력값(831)을 획득할 수 있다. 프로세서(120)는 151번째 KLD 출력값(831)을 획득하면, 151번째 KLD 출력값(831)을 KLD 버퍼(801)에 저장하고, 제1 가속도 버퍼(603)에 저장된 마지막 가속도 데이터(예: 270번째 가속도 데이터)를 제2 가속도 버퍼(803)에 저장할 수 있다. 프로세서(120)는 KLD 버퍼(801)의 크기(예: 150)만큼 KLD 출력값이 저장된 경우, KLD 버퍼(801)에 저장된 KLD 출력값에 기반하여 제2 KLD 평균값(833)을 산출할 수 있다. 또한, 프로세서(120)는 제2 가속도 버퍼(803)의 크기(예: 150)만큼 가속도 데이터가 저장된 경우, 제2 가속도 버퍼(803)에 저장된 가속도 데이터(예: 121번째 가속도 데이터부터 270번째 가속도 데이터)에 기반하여 제2 가속도 분산값(835)을 산출할 수 있다. Referring to FIG. 8C , the
프로세서(120)는 151번째 KLD 출력값(831), 제2 KLD 평균값(833), 또는 제2 가속도 분산값(835) 중 적어도 하나에 기반하여 움직임 분류(850)를 수행할 수 있다. 예를 들어, 프로세서(120)는 151번째 KLD 출력값(831)이 KLD 기준값 미만에 해당하는 경우, 움직임 분류(850)에서 휠체어 밀기 동작으로 판단할 수 있다. 프로세서(120)는 151번째 KLD 출력값(831)이 KLD 기준값 이상인 경우, 움직임 분류(850)에서 휠체어 밀기 동작 아님으로 판단할 수 있다. The
또는, 프로세서(120)는 151번째 KLD 출력값(831)이 KLD 기준값 미만이고, 제2 KLD 평균값(833)이 KLD 평균 임계치 미만이며, 제2 가속도 분산값(835)이 분산 임계치를 초과하는 경우, 움직임 분류(850)에서 휠체어 밀기 동작으로 판단할 수 있다. 프로세서(120)는 151번째 KLD 출력값(831)이 KLD 기준값 이상이거나, 제2 KLD 평균값(833)이 KLD 평균 임계치 이상이거나, 또는 제2 가속도 분산값(835)이 분산 임계치 이하인 것 중 적어도 하나에 해당하는 경우, 움직임 분류(850)에서 휠체어 밀기 동작 아님으로 판단할 수 있다.Alternatively, the
도 9는 다양한 실시예들에 따른 웨어러블 디바이스에서 가속도 데이터에 기반하여 움직임을 분류하는 일례를 도시한 도면이다.9 is a diagram illustrating an example of classifying motion based on acceleration data in a wearable device according to various embodiments.
도 9를 참조하면, 휠체어 밀기 동작 시 측정되는 가속도 데이터의 확률 분포는 일반적이지 않으며 비선형 분포를 가지기 때문에 확률 밀도 함수의 모델 선정은 쉽지 않을 수 있다. 다양한 실시예들에 다른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 가속도 데이터를 이용하여 확률 밀도 함수를 추정하는 방식인 비모수 밀도 추정 방식을 사용할 수 있다. 본 발명에서는 비모수 밀도 추정 방식 중 가우시안(Gaussian) 함수를 커널(kernel) 함수로 사용한 커널 함수 기반 밀도 추정 방식 기법을 이용할 수 있다. 제1 그래프(910)는 휠체어 밀기 동작일 때 나타나는 가속도 데이터(911)와 휠체어 밀기 동작이 아닐 때(예: 비정형 동작) 나타나는 가속도 데이터(913)를 나타낸 것일 수 있다.Referring to FIG. 9 , since the probability distribution of acceleration data measured during a wheelchair pushing motion is not general and has a nonlinear distribution, it may not be easy to select a probability density function model. According to various embodiments, a processor (eg, the
제2 그래프(930)는 휠체어 밀기 동작일 때(예: 정형 동작) 커널 함수 생성 결과를 나타낸 것일 수 있다. 제1 신호(933)는 기준 신호의 커널 함수 추정 결과를 나타낸 것이고, 제2 신호(931)는 휠체어 밀기 동작일 때 실제로 측정된 가속도 데이터를 의미할 수 있다. 상기 기준 신호는 휠체어 밀기 동작(예: 도 4의 ①②③④)을 1회 수행할 때 발생하는 가속도 데이터를 의미할 수 있다. 제1 신호(933)와 제2 신호(931)를 비교하면, 유사한 특징을 가지는 것을 알 수 있다. The
제3 그래프(950)는 휠체어 밀기 동작이 아닐 때(예: 비정형 동작) 커널 함수 생성 결과를 나타낸 것일 수 있다. 제3 신호(953)는 기준 신호의 커널 함수 추정 결과를 나타낸 것이고, 제4 신호(951)는 휠체어 밀기 동작이 아닐 때 실제로 측정된 가속도 데이터를 의미할 수 있다. 제3 신호(953)와 제4 신호(951)를 비교하면, 유사한 특징을 가지지 않는 것을 알 수 있다. The
따라서, 휠체어 밀기 동작일 때는 KLD 알고리즘을 이용하여 사전에 정의된 기준 신호의 확률 분포와 실제 측정된 가속도 데이터의 확률 분포를 비교함으로써, 두 확률 분포의 유사도에 따라 효율적으로 휠체어 밀기 동작임을 인식할 수 있다.Therefore, in the case of a wheelchair pushing motion, by comparing the probability distribution of a predefined reference signal with the probability distribution of actually measured acceleration data using the KLD algorithm, it is possible to efficiently recognize the wheelchair pushing motion according to the similarity of the two probability distributions. there is.
도 10은 다양한 실시예들에 따른 웨어러블 디바이스의 휠체어 밀기 동작을 카운트하는 방법을 도시한 흐름도(1000)이다. 도 10은 도 5 또는 도 7에 의해 휠체어 밀기 동작으로 인식된 이후에 수행될 수 있다.10 is a
도 10을 참조하면, 동작 1001에서, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 제2 가속도 버퍼(예: 도 8a 내지 도 8c의 제2 가속도 버퍼(803))에 새로운 가속도 데이터를 저장할 수 있다. 휠체어 밀기 동작을 인식하기 위해서, 프로세서(120)는 KLD 출력값이 KLD 기준값 미만이고, KLD 평균값이 KLD 평균 임계치 미만이며, 가속도 분산값이 분산 임계치를 초과하는지 여부를 판단할 수 있다. 상기 가속도 분산값을 산출하기 위해서는 제2 가속도 버퍼(803)의 크기만큼 가속도 데이터가 저장되어 있을 수 있다. 이후 가속도 센서(예: 도 1의 관성 센서(150))에 의해 새로운 가속도가 측정되는 경우, 프로세서(120)는 제2 가속도 버퍼(803)에 새로운 가속도 데이터를 저장할 수 있다. 예를 들어, 제2 가속도 버퍼(803)의 크기가 150인 경우, 제2 가속도 버퍼(803)에 270번째 가속도 데이터가 새로운 가속도 데이터로서 저장될 수 있다.Referring to FIG. 10 , in
동작 1003에서, 프로세서(120)는 설정된 개수의 가속도 데이터에 윈도우를 설정할 수 있다. 예를 들어, 프로세서(120)는 5개의 가속도 데이터에 하나의 윈도우를 설정하고, 윈도우 인덱스를 부여(또는 할당)할 수 있다. 이하에서는, 5개의 가속도 데이터에 윈도우를 설정하는 것으로 설명하고 있지만, 5개보다 많은 가속도 데이터(예: 7개, 9개, 11개)에 윈도우를 설정할 수도 있다. 예시는 발명의 이해를 돕기 위한 것일 뿐, 예시에 의해 본 발명이 제한되는 것은 아니다. 제2 가속도 버퍼(803)에는 121번째 가속도 데이터부터 270번째 가속도 데이터가 저장될 수 있다. 프로세서(120)는 121번째 가속도 데이터부터 125번째 가속도 데이터에 제1 윈도우 인덱스를 설정할 수 있다. 윈도우 갱신 시, 프로세서(120)는 122번째 가속도 데이터부터 126번째 가속도 데이터에 제2 윈도우 인덱스를 설정할 수 있다. 프로세서(120)는 윈도우 슬라이딩 방식으로 제2 가속도 버퍼(803)에 저장된 가속도 데이터에 대하여 순차적으로 윈도우를 설정할 수 있다.In
동작 1005에서, 프로세서(120)는 윈도우 내 가속도 피크(peak)를 검출할 수 있다. 프로세서(120)는 상기 윈도우 내에 포함된 5개의 가속도 데이터를 각각 d(1), d(2), d(3), d(4), d(5) 라고 정의하고, 아래와 같은 판단식을 통해 가속도 피크를 결정할 수 있다. At
Condition = {d(1) > d(3) ∧ d(2) > d(3) ∧ d(4) > d(3) ∧ d(5) > d(3)}Condition = {d(1) > d(3) ∧ d(2) > d(3) ∧ d(4) > d(3) ∧ d(5) > d(3)}
프로세서(120)는 Condition 값이 1인 경우, 상기 윈도우 내 가속도 피크가 검출된 것이고, Condition 값이 0인 경우, 상기 윈도우 내 가속도 피크가 검출되지 않은 것으로 판단할 수 있다. 프로세서(120)는 상기 윈도우 내에서 중간값인 세번째 가속도 데이터(예: d(3))를 기준으로 가속도 피크를 검출할 수 있다. 상기 판단 방법은 가속도 데이터의 최소값을 peak로 검출하는 방법으로, 휠체어 밀기 동작(예: 도 4의 ①②③④) 판단 시 이용되는 관성 센서(150)의 축을 x축으로 설정하였기 때문일 수 있다. 관성 센서(150)의 x축은 휠체어 밀기 동작이 끝나고 다시 휠체어 밀기 동작을 위해 돌아오는 동작(예:③)을 수행할 때 사용자 손의 방향이 밀기와는 반대로 바뀌며 큰 가속도를 만들어 peak를 보다 쉽게 검출이 가능할 수 있다.When the Condition value is 1, the
다양한 실시예들에 따르면, 사용자의 손끝 방향과 일치하는 관성 센서(150)의 축은 관성 센서(150)가 웨어러블 디바이스(101)에 배치된 위치에 따라 달라질 수 있다. 본 발명에서는 사용자의 손끝 방향과 일치하는 가속도 센서의 축을 'x축'으로 설정하고, x축의 가속도 데이터에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 다만, 가속도 센서가 웨어러블 디바이스(101)에 배치된 위치에 따라 휠체어 밀기 동작에 사용하는 가속도 센서의 축은 y축 또는 z축이 될 수도 있다. 또한, 프로세서(120)는 가속도 데이터의 최대값을 이용하여 가속도 피크를 검출할 수도 있다.According to various embodiments, the axis of the
동작 1005에서, 프로세서(120)는 윈도우 내 가속도 피크가 검출되는 경우(Condition 값이 1), 가속도 피크를 검출한 것으로 판단하고 동작 1007을 수행할 수 있다. 또한, 프로세서(120)는 윈도우 내 가속도 피크가 검출되지 않는 경우(Condition 값이 0), 가속도 피크를 검출하지 않은 것으로 판단하고 동작 1006을 수행할 수 있다. In
가속도 피크를 검출하지 않은 것으로 판단되는 경우, 동작 1006에서, 프로세서(120)는 윈도우 인덱스를 추가할 수 있다. 동작 1003을 처음 수행할 때 윈도우 인덱스가 1(예: 제1 윈도우 인덱스)인 경우, 동작 1006을 수행하면 윈도우 인덱스는 2(예: 제2 윈도우 인덱스)가 될 수 있다. 프로세서(120)는 동작 1006을 수행하고, 동작 1003으로 리턴할 수 있다. 동작 1003으로 리턴하면, 프로세서(120)는 윈도우를 갱신하여 설정된 개수의 가속도 데이터에 상기 추가된 윈도우 인덱스에 해당하는 윈도우를 설정할 수 있다. 예를 들어, 프로세서(120)는 122번째 가속도 데이터부터 126번째 가속도 데이터에 제2 윈도우 인덱스를 설정할 수 있다.If it is determined that the acceleration peak has not been detected, in
다양한 실시예들에 따르면, 동작 1003을 두번째 수행할 때 윈도우 인덱스가 2(예: 제2 윈도우 인덱스)인 경우, 동작 1006을 수행하면 윈도우 인덱스는 3(예: 제3 윈도우 인덱스)이 될 수 있다. 프로세서(120)는 동작 1006을 수행하고, 동작 1003으로 리턴할 수 있다. 동작 1003으로 리턴하면, 프로세서(120)는 설정된 개수의 가속도 데이터에 윈도우를 설정할 수 있다. 예를 들어, 프로세서(120)는 123번째 가속도 데이터부터 127번째 가속도 데이터에 제3 윈도우 인덱스를 설정할 수 있다.According to various embodiments, if the window index is 2 (eg, the second window index) when
가속도 피크를 검출한 것으로 판단되는 경우, 동작 1007에서, 프로세서(120)는 피크로 검출된 가속도 데이터를 반환(또는 식별)할 수 있다. 예를 들어, 프로세서(120)는 121번째 가속도 데이터부터 125번째 가속도 데이터 중에서 최소값을 가지는 가속도 데이터를 반환할 수 있다.When it is determined that an acceleration peak has been detected, in
동작 1009에서, 프로세서(120)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터의 최소값을 검출할 수 있다. 가속도 데이터의 최소값을 검출하는 것은, 동작 1005에서 가속도 피크 검출 시 최소값을 가지는 가속도 데이터를 가속도 피크로 검출했기 때문일 수 있다. 가속도 피크 검출 시 최대값을 가지는 가속도 데이터를 가속도 피크로 검출하는 경우, 프로세서(120)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터의 최대값을 검출할 수 있다. 이하에서는, 발명의 이해를 돕기 위해, 가속도 데이터의 최소값을 검출하는 것으로 설명하고 있지만, 설명에 의해 본 발명이 제한되는 것은 아니다.In
휠체어 밀기 동작(예: 도 4의 ①②③④)을 수행하는 동안, 사용자의 손 움직임 형태와 관성 센서(150)의 노이즈로 인해서 다수의 가속도 피크가 검출될 수 있다. 휠체어 밀기 동작 중 가장 큰 가속도를 받는 상황은 바퀴를 밀고 난 후, 손이 휠체어 손잡이에서 떨어져 다시 휠체어 밀기 동작을 위해 돌아오는 동작(예: ③)을 위해 손의 방향이 변화하는 부분일 수 있다. 가장 큰 peak만을 고려하기 위해서는 임계치(threshold)보다 낮은 peak만 고려할 수 있다. 이때, 임계치를 상수(constant)로 고정하는 것은 휠체어 밀기 동작의 세기에 따라 가속도 데이터의 크기가 달라지기 때문에 peak 검출 오차(또는 오류)가 발생할 수 있다. 프로세서(120)는 사용자가 휠체어 밀기 동작을 수행할 때 발생하는 peak 검출 오차를 줄이기 위해서 적응형 임계치를 사용할 수 있다. While performing a wheelchair pushing motion (eg, ①②③④ in FIG. 4 ), a number of acceleration peaks may be detected due to the user's hand motion and the noise of the
동작 1011에서, 프로세서(120)는 상기 가속도 데이터의 최소값에 기반하여 적응형 임계치를 선정(또는 결정)할 수 있다. 프로세서(120)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터의 최소값의 설정된 기준치(예: 최소값의 10%에 해당하는 가속도 데이터)를 적응형 임계치로 결정할 수 있다. 프로세서(120)는 상기 가속도 피크 검출 시, 최소값을 가지는 가속도 데이터를 가속도 피크로 검출하기 때문에, 상기 가속도 데이터의 최소값에 기반하여 적응형 임계치를 설정할 수 있다. 프로세서(120)는 가속도 피크 검출 시 최대값을 가지는 가속도 데이터를 가속도 피크로 검출하는 경우, 제2 가속도 버퍼(803)에 저장된 가속도 데이터의 최대값의 설정된 기준치(예: 최대값의 90%에 해당하는 가속도 데이터)를 적응형 임계치로 결정할 수 있다.In
새로운 가속도 데이터가 측정될 때마다, 제2 가속도 버퍼(803)에는 새로운 가속도 데이터가 저장되므로, 상기 적응형 임계치는 계속 변경될 수 있다. 제2 가속도 버퍼(803)에 저장되는 가속도 데이터가 변경되면, 제2 가속도 버퍼(803)에 저장된 가속도 데이터를 기준으로 적응형 임계치를 결정하므로, 상기 적응형 임계치는 동적으로 변경될 수 있다. 또는, 프로세서(120)는 새로운 윈도우를 갱신할 때마다 상기 적응형 임계치를 결정할 수 있다. 새로운 윈도우에서 가속도 피크가 검출되는 경우, 동작 1007 내지 동작 1011을 수행하므로, 프로세서(120)는 새로운 윈도우를 갱신할 때마다 상기 적응형 임계치를 결정할 수 있다.Whenever new acceleration data is measured, the new acceleration data is stored in the
예를 들어, 동작 1009 및 동작 1011을 첫번째 수행했을 때 결정된 첫번째 적응형 임계치는 동작 1009 및 동작 1011을 두번째 수행했을 때 결정된 두번째 적응형 임계치와 동일하거나, 또는 상이할 수 있다.For example, a first adaptive threshold determined when
동작 1013에서, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인지 여부를 판단할 수 있다. 동작 1009 및 동작 1011에 의해 상기 적응형 임계치가 가속도 데이터의 "최소값"을 기반으로 결정된 것이므로, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인지 여부를 판단할 수 있다. 만약, 상기 적응형 임계치가 가속도 데이터의 "최대값"을 기반으로 결정되는 경우, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치를 초과하는지 여부를 판단할 수 있다. 상기 반환된 가속도 데이터는 1007에서 획득한 것이고, 상기 적응형 임계치는 동작 1011에서 획득한 것일 수 있다. 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인 경우, 동작 1015를 수행하고, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 이상인 경우, 동작 1019를 수행할 수 있다.In
상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인 경우, 동작 1015에서, 프로세서(120)는 윈도우 인덱스간의 차이(또는 간격)가 인덱스 임계치를 초과하는지 여부를 판단할 수 있다. 상기 윈도우 인덱스는 동작 1003에서 부여된 윈도우 인덱스일 수 있다. 휠체어 밀기 동작(예: 도 4의 ①②③④)을 한번 수행하는 데는 일정한 시간이 소요될 수 있다. 휠체어 밀기 동작을 빠르게 또는 느리게 수행하더라도 한번의 휠체어 밀기 동작을 수행하는 데는 일정한 시간이 소요될 수 있다. 상기 인덱스 임계치는 휠체어 밀기 동작의 카운트 시에 카운트 오류를 줄이기 위한 것일 수 있다. When the returned acceleration data is less than the adaptive threshold, in
가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 간격(또는 차이)이 너무 작으면 한번의 휠체어 밀기 동작을 수행한 것으로 보기 어려울 수 있다. 프로세서(120)는 이전에 휠체어 밀기 동작으로 판단한 윈도우 인덱스와 그 이후 휠체어 밀기 동작으로 판단한 윈도우 인덱스 간의 간격이 인덱스 임계치를 초과하는 경우에 한해서만 휠체어 밀기 동작을 카운트할 수 있다. 상기 인덱스 임계치는 웨어러블 디바이스(101)의 메모리(예: 도 1의 메모리(110))에 사전에 저장될 수 있다. 상기 인덱스 임계치는 가속도 피크가 검출된 두 개의 윈도우 인덱스 간의 간격이 한번의 휠체어 밀기 동작을 수행한 것으로 판단되도록 설정될 수 있다.If the interval (or difference) between the two window indices detected as an acceleration peak is too small, it may be difficult to assume that one wheelchair pushing motion has been performed. The
예를 들어, 프로세서(120)는 첫번째 가속도 피크가 검출된 윈도우 인덱스(예: 이전 윈도우 인덱스)가 두번째 가속도 피크가 검출된 윈도우 인덱스(예: 현재 윈도우 인덱스)와 너무 가까우면, 한번의 휠체어 밀기 동작을 수행함에 따라 검출된 가속도 피크로 인식하지 않을 수 있다. 프로세서(120)는 첫번째 가속도 피크가 검출된 윈도우 인덱스와 두번째 가속도 피크가 검출된 윈도우 인덱스 간의 차이(또는 간격)가 인덱스 임계치를 초과하는 경우, 한번의 휠체어 밀기 동작을 수행함에 따라 검출된 가속도 피크로 인식할 수 있다.For example, if the window index where the first acceleration peak is detected (eg, the previous window index) is too close to the window index where the second acceleration peak is detected (eg, the current window index), the
프로세서(120)는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치를 초과하는 경우, 동작 1017을 수행하고, 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치 이하인 경우, 동작 1019를 수행할 수 있다.The
가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치를 초과하는 경우, 동작 1017에서, 프로세서(120)는 휠체어 밀기 동작을 카운트할 수 있다. 프로세서(120)는 동작 1001 내지 동작 1017을 한번 수행할 때마다 휠체어 밀기 동작을 1회 카운트할 수 있다. 프로세서(120)는 카운트된 횟수를 메모리(110)에 저장하고, 카운트된 횟수를 디스플레이(예: 도 1의 디스플레이 모듈(140))에 표시할 수 있다. 프로세서(120)는 휠체어 밀기 동작이 카운트되는 횟수 또는 시간에 기반하여 휠체어 밀기 시간을 산출할 수 있다. 프로세서(120)는 상기 휠체어 밀기 횟수 또는 상기 휠체어 밀기 시간을 활동 정보(또는 운동 정보)로서 제공할 수 있다. 프로세서(120)는 휠체어 밀기 동작에 기반하여 사용자의 운동 패턴을 분석하여 제공할 수 있다. 다양한 실시예들에 따르면, 프로세서(120)는 걷기 모드, 달리기 모드와 같이 휠체어 모드를 운동 모드로서 제공할 수 있다. 웨어러블 디바이스(101)가 휠체어 모드로 설정되는 경우, 프로세서(120)는 도 5 또는 도 7의 동작을 수행하여 휠체어 밀기 동작을 인식하고, 휠체어 밀기 동작으로 인식되는 경우, 도 10을 수행하여 휠체어 밀기 동작의 횟수를 카운트할 수 있다.When the difference between the two window indices detected as the acceleration peak exceeds the index threshold, in
다양한 실시예들에 따르면, 프로세서(120)는 휠체어 밀기 동작의 횟수에 기반하여 소모 칼로리를 계산하고, 계산된 소모 칼로리를 사용자에게 제공할 수 있다. 예를 들어, 프로세서(120)는 휠체어 밀기 동작의 횟수가 카운트될 때마다 기초 대사량 또는 추가 칼로리를 더하여 하루 동안 소모된 칼로리를 계산할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작의 속도에 기반하여 상기 소모 칼로리를 계산할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작의 속도가 빠른 경우(예: 속도 임계치 초과), 추가 소모 칼로리를 계산하고, 상기 휠체어 밀기 동작의 속도가 느린 경우(예: 속도 임계치 이하), 추가 소모 칼로리를 계산하지 않을 수 있다. 프로세서(120)는 상기 추가 소모 칼로리를 상기 소모 칼로리에 합산할 수 있다. 또는, 프로세서(120)는 상기 휠체어 밀기 동작의 속도가 빠른 경우, 활발한 휠체어 밀기 동작으로 인식하고, 상기 휠체어 밀기 동작의 속도가 느린 경우, 일반 휠체어 밀기 동작을 인식할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 설정된 시간 동안(예: 3일, 7일 등) 휠체어 밀기 동작이 인식되지 않는 경우, 운동하라는 안내를 출력할 수 있다. 관성 센서(150)는 24 시간 내내 저전력으로 가속도 데이터를 측정할 수 있다. 프로세서(120)는 측정된 가속도 데이터에 기반하여 설정된 간격(예: 1일, 3일)으로 휠체어 밀기 동작이 인식되는지 여부를 판단할 수 있다. 상기 안내는 텍스트, 이미지, 비디오 또는 음성 중 적어도 하나를 포함할 수 있다. 상기 안내는 디스플레이 모듈(140)에 사용자 인터페이스를 표시하거나, 스피커(예: 도 1의 스피커(175))를 통해 음성을 출력할 수 있다. 프로세서(120)는 휠체어 밀기 횟수의 목표치를 설정하는 사용자 인터페이스를 제공할 수 있다. 사용자는 상기 사용자 인터페이스를 통해 걸음 수 목표치와 유사하게, 휠체어 밀기 횟수(예: 100회, 200회)를 설정할 수 있다.According to various embodiments, the
프로세서(120)는 동작 1017에 의해 휠체어 밀기 동작을 1회 카운트한 후, 동작 1001로 리턴할 수 있다. 프로세서(120)는 동작 1001 내지 동작 1017을 반복적으로 수행하여 휠체어 밀기 동작을 카운트할 수 있다. The
상기 반환된 가속도 데이터가 적응형 임계치 이상이거나, 또는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치 이하인 경우, 동작 1019에서, 프로세서(120)는 휠체어 밀기 동작을 카운트하지 않을 수 있다. 프로세서(120)는 휠체어 밀기 동작을 카운트하지 않고, 동작 1001로 리턴할 수 있다. 프로세서(120)는 도 10을 수행하는 동안 도 5 또는 도 7의 동작을 수행하여 휠체어 밀기 동작을 인식할 수 있다. 도 5 또는 도 7의 동작에 의해 휠체어 밀기 동작으로 인식되지 않는 경우, 프로세서(120)는 도 10의 동작을 수행하지 않을 수 있다. 프로세서(120)는 도 5 또는 도 7의 동작에 의해 휠체어 밀기 동작으로 인식되는 경우, 도 10의 동작을 수행할 수 있다. 다양한 실시예들에 따르면, 동작 1019의 동작이 설정된 횟수(예: 10회, 20회) 수행되는 경우, 프로세서(120)는 도 10의 동작을 중지하고, 도 5 또는 도 7의 동작을 수행할 수 있다.If the returned acceleration data is greater than or equal to the adaptive threshold, or if the difference between two window indices detected as acceleration peaks is less than or equal to the index threshold, the
도 11은 다양한 실시예들에 따른 웨어러블 디바이스에서 가속도 데이터에 윈도우를 설정하는 일례를 도시한 도면이다.11 is a diagram illustrating an example of setting a window for acceleration data in a wearable device according to various embodiments.
도 11을 참조하면, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 제2 가속도 버퍼(예: 도 8a 내지 도 8c의 제2 가속도 버퍼(803))에 저장된 가속도 데이터에 윈도우를 설정할 수 있다. 윈도우 설정(1110)은 윈도우 슬라이딩 방식으로 설정될 수 있다. 제2 가속도 버퍼(803)의 크기는 150이며, 제2 가속도 버퍼(803)에는 150개의 가속도 데이터가 저장될 수 있다. 윈도우 설정(1110)을 참조하면, 프로세서(120)는 제2 가속도 버퍼(803)에 저장된 제1 가속도 데이터부터 제5 가속도 데이터까지 제1 윈도우 인덱스(1111)로 설정하고, 제2 가속도 데이터부터 제6 가속도 데이터까지 제2 윈도우 인덱스(1112)로 설정하고, 제3 가속도 데이터부터 제7 가속도 데이터까지 제3 윈도우 인덱스(1113)로 설정하고, 제4 가속도 데이터부터 제8 가속도 데이터까지 제4 윈도우 인덱스(1114)로 설정할 수 있다.Referring to FIG. 11 , a processor (eg, the
프로세서(120)는 제1 윈도우 인덱스(1111)를 설정하고, 도 10의 동작 1005를 수행할 수 있다. 동작 1005를 수행하여 제1 윈도우 인덱스(1111) 내에서 가속도 피크가 검출되지 않는 경우, 동작 1006에서, 프로세서(120)는 윈도우 인덱스를 하나 추가하여 동작 1003에서 제2 윈도우 인덱스(1112)를 설정할 수 있다. 또한, 동작 1005를 수행하여 제2 윈도우 인덱스(1112) 내에서 가속도 피크가 검출되지 않는 경우, 동작 1006에서, 프로세서(120)는 윈도우 인덱스를 하나 추가하여 동작 1003에서 제3 윈도우 인덱스(1113)를 설정할 수 있다. The
그래프(1130)를 참조하면, 제1 윈도우 인덱스(1111)에는 제1 가속도 데이터(1131), 제2 가속도 데이터(1133), 제3 가속도 데이터(1135), 제4 가속도 데이터(1137), 제5 가속도 데이터(1139)가 포함될 수 있다. 프로세서(120)는 도 10에서 설명한 판단 방법에 따라, 제3 가속도 데이터(1135)가 제1 가속도 데이터(1131) 미만인지, 제3 가속도 데이터(1135)가 제2 가속도 데이터(1133) 보다 미만인지, 제3 가속도 데이터(1135)가 제4 가속도 데이터(1137) 미만인지, 제3 가속도 데이터(1135)가 제5 가속도 데이터(1139) 미만인지 여부를 판단할 수 있다. 프로세서(120)는 제3 가속도 데이터(1135)가 제1 가속도 데이터(1131)와 제2 가속도 데이터(1133), 제4 가속도 데이터(1137)와 제5 가속도 데이터(1139) 미만인 경우(예: Condition 값이 1), 제1 윈도우 인덱스(1111) 내 가속도 피크가 검출된 것으로 판단할 수 있다. Referring to the
프로세서(120)는 제3 가속도 데이터(1135)가 제1 가속도 데이터(1131) 또는 제2 가속도 데이터(1133), 제4 가속도 데이터(1137), 제5 가속도 데이터(1139) 이상인 경우(예: Condition 값이 0), 제1 윈도우 인덱스(1111) 내 가속도 피크가 검출되지 않은 것으로 판단할 수 있다. 그래프(1130)에서는, 제1 윈도우 인덱스(1111) 내 가속도 피크가 검출되지 않은 일례를 나타낸 것일 수 있다.When the
프로세서(120)는 제2 윈도우 인덱스(1112), 제3 윈도우 인덱스(1113) 또는 제4 윈도우 인덱스(1114)에 대하여 동일한 방법으로 윈도를 설정하고, 윈도우 내 가속도 피크를 검출할 수 있다.The
도 12는 다양한 실시예들에 따른 웨어러블 디바이스에서 적응형 임계치를 선정하는 일례를 도시한 도면이다.12 is a diagram illustrating an example of selecting an adaptive threshold in a wearable device according to various embodiments.
도 12를 참조하면, 제1 그래프(1210) 및 제2 그래프(1230)는 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 제2 가속도 버퍼(예: 도 8a 내지 도 8c의 제2 가속도 버퍼(803))에 저장된 가속도 데이터의 최소값에 기반하여 적응형 임계치가 결정되는 일례를 도시한 것일 수 있다. 휠체어 밀기 동작(예: 도 4의 ①②③④)을 수행하는 동안, 사용자의 손 움직임 형태와 가속도 센서(예: 도 1의 관성 센서(150))의 노이즈로 인해서 다수의 가속도 피크가 검출될 수 있다. 휠체어 밀기 동작 중 가장 큰 가속도를 받는 상황은 바퀴를 밀고 난 후, 손이 휠체어 손잡이에서 떨어져 다시 휠체어 밀기 동작을 위해 돌아오는 동작(예: ③)을 위해 손의 방향이 변화하는 부분일 수 있다. 가장 큰 peak만을 고려하기 위해서는 임계치보다 작은 peak만 고려할 수 있는데, 임계치를 하나의 값으로 고정하는 경우, 휠체어 밀기 동작의 세기에 따라 가속도 데이터의 크기가 달라지기 때문에 가속도 피크 검출 오차가 발생할 수 있다. 웨어러블 디바이스(101)의 프로세서(예: 도 1의 프로세서(120))는 사용자가 휠체어 밀기 동작을 수행할 때 발생하는 peak 검출 오차를 줄이기 위해서 적응형 임계치를 사용할 수 있다. Referring to FIG. 12 , a
제1 그래프(1210)에서, 제1 신호(1211)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터를 의미하고, 제2 신호(1213)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터에 기반하여 결정되는 적응형 임계치를 나타낸 것이다. 제2 그래프(1230)는 제1 그래프(1210)의 일정 구간을 확대 도시한 것일 수 있다. 제2 그래프(1230)에서, 제3 신호(1231)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터를 의미하고, 제4 신호(1233)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터에 기반하여 결정되는 적응형 임계치를 나타낸 것이다.In the
제1 그래프(1210) 및 제2 그래프(1230)의 제2 신호(1231) 및 제4 신호(1233)를 보면, 적응형 임계치의 피크(예: 상단)가 계속 변경되는 것을 알 수 있다. 새로운 가속도 데이터가 측정될 때마다, 제2 가속도 버퍼(803)에는 새로운 가속도 데이터가 저장되므로, 상기 적응형 임계치는 계속 변경될 수 있다. 제2 가속도 버퍼(803)에 저장되는 가속도 데이터가 변경되면, 제2 가속도 버퍼(803)에 저장된 가속도 데이터를 기준으로 적응형 임계치를 결정하므로, 상기 적응형 임계치는 동적으로 변경될 수 있다. Looking at the
도 13은 다양한 실시예들에 따른 웨어러블 디바이스에서 휠체어 밀기 동작의 카운트 오류를 방지하기 위한 일례를 도시한 도면이다.13 is a diagram illustrating an example of preventing a count error of a wheelchair pushing motion in a wearable device according to various embodiments.
도 13을 참조하면, 제1 그래프(1310) 및 제2 그래프(1330)는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는지 여부에 기반하여 휠체어 밀기 동작의 카운트 오류를 방지하는 일례를 도시한 것일 수 있다. 제1 그래프(1310)를 참조하면, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 가속도 피크가 검출된 제1 윈도우 인덱스(1311) 이후에, 가속도 피크가 검출된 제2 윈도우 인덱스(1313)가 검출되는 경우, 제1 윈도우 인덱스(1311)와 제2 윈도우 인덱스(1313) 간의 차이(또는 간격)가 인덱스 임계치를 초과하는지 여부를 판단할 수 있다. 프로세서(120)는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 간격이 너무 작으면 한번의 휠체어 밀기 동작을 수행한 것으로 보기 어려울 수 있다. Referring to FIG. 13, a
상기 인덱스 임계치는 웨어러블 디바이스(101)의 메모리(예: 도 1의 메모리(110))에 사전에 저장될 수 있다. 상기 인덱스 임계치는 가속도 피크가 검출된 두 개의 윈도우 인덱스 간의 간격이 한번의 휠체어 밀기 동작을 수행한 것으로 판단되도록 설정될 수 있다. 예를 들어, 프로세서(120)는 제1 윈도우 인덱스(1311)와 제2 윈도우 인덱스(1313) 간의 차이가 인덱스 임계치 이하인 경우, 휠체어 밀기 동작의 검출 오류로 판단하고, 휠체어 밀기 동작의 횟수로 카운트하지 않을 수 있다. 프로세서(120)는 제2 윈도우 인덱스(1313) 검출 이후에, 가속도 피크가 검출된 제3 윈도우 인덱스(1315)가 검출되는 경우, 제1 윈도우 인덱스(1311)와 제3 윈도우 인덱스(1315) 간의 차이가 인덱스 임계치를 초과하는지 여부를 판단할 수 있다. 프로세서(120)는 제1 윈도우 인덱스(1311)와 제3 윈도우 인덱스(1315) 간의 차이가 인덱스 임계치를 초과하는 경우, 휠체어 밀기 동작의 횟수를 카운트(예: 휠체어 밀기 동작 1회 증가)할 수 있다.The index threshold may be previously stored in the memory of the wearable device 101 (eg, the
제2 그래프(1330)를 참조하면, 인덱스 임계치를 적용하기 전의 제3 그래프(1331)와 인덱스 문턱치를 적용한 후의 제4 그래프(1335)를 포함할 수 있다. 제3 그래프(1331)를 보면, 다수의 윈도우 인덱스(예: 제1 윈도우 인덱스(1353), 제2 윈도우 인덱스(1353), 제3 윈도우 인덱스(1355), 제4 윈도우 인덱스(1356) 등 )가 검출될 수 있다. 시간적으로 연속된 두 개의 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는지 여부를 판단하면, 제2 윈도우 인덱스(1353) 및 제4 윈도우 인덱스(1356)가 인덱스 임계치를 초과한 것으로 판단될 수 있다. 프로세서(120)는 제3 그래프(1331)와 같이 인덱스 임계치를 적용하기 전에는 휠체어 밀기 동작을 4회 이상 카운트할 수 있지만, 인덱스 임계치를 적용하는 경우, 휠체어 밀기 동작을 2회 카운트할 수 있다.Referring to the
도 14는 다양한 실시예들에 따른 웨어러블 디바이스에서 움직임에 따른 가속도 데이터의 차이를 나타낸 도면이다.14 is a diagram illustrating a difference in acceleration data according to movement in a wearable device according to various embodiments.
도 14를 참조하면, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 휠체어 밀기 동작을 인식하고, 휠체어 밀기 동작을 카운트하는 동작을 반복 수행할 수 있다. 제1 도면 부호(1400)에서, 제1 그래프(1401)는 휠체어 밀기 동작일 때 가속도 데이터 및 움직임 분류에 따른 신호를 나타낸 것이다. 제1 신호(1410)는 웨어러블 디바이스의 가속도 센서(예: 도 1의 관성 센서(150))에서 측정한 가속도 데이터를 나타낼 수 있다. 제2 신호(1413)는 움직임 분류에 따른 신호를 나타내는 것으로, 휠체어 밀기 동작으로 인식될 때는 0이 아닌 상수(예: 도 14에서 30), 휠체어 밀기 동작으로 인식되지 않을 때는 0일 수 있다. 제1 그래프(1401)에서 동그라미(1411)는 휠체어 밀기 동작으로 카운트된 것을 의미할 수 있다. 제1 도면 부호(1400)에서, 제2 그래프(1403)는 휠체어 밀기 동작이 아닐 때 가속도 데이터 및 움직임 분류에 따른 신호를 나타낸 것이다. 제3 신호(1431)는 관성 센서(150)에서 측정한 가속도 데이터이고, 제4 신호(1433)는 움직임 분류에 따른 신호를 나타내는 것으로, 휠체어 밀기 동작으로 인식되지 않을 때는 0일 수 있다.Referring to FIG. 14 , a processor (eg,
제2 도면 부호(1450)에서, 제3 그래프(1405)는 휠체어 밀기 동작일 때 가속도 데이터 및 움직임 분류에 따른 신호를 나타낸 것이다. 제5 신호(1460)는 관성 센서(150)에서 측정한 가속도 데이터이고, 제6 신호(1463)는 움직임 분류에 따른 신호를 나타내는 것으로, 휠체어 밀기 동작으로 인식될 때는 0이 아닌 상수, 휠체어 밀기 동작으로 인식되지 않을 때는 0일 수 있다. 제3 그래프(1405)에서 동그라미(1461)는 휠체어 밀기 동작으로 카운트된 것을 의미할 수 있다. 제2 도면 부호(1450)에서, 제4 그래프(1407)는 휠체어 밀기 동작이 아닐 때 가속도 데이터 및 움직임 분류에 따른 신호를 나타낸 것이다. 제7 신호(1471)는 관성 센서(150)에서 측정한 가속도 데이터이고, 제8 신호(1473)는 움직임 분류에 따른 신호를 나타내는 것으로, 휠체어 밀기 동작으로 인식되지 않을 때는 0일 수 있다.Referring to a
도 15는 다양한 실시예들에 따른 웨어러블 디바이스에서 휠체어 밀기와 관련된 사용자 인터페이스를 도시한 도면이다.15 is a diagram illustrating a user interface related to pushing a wheelchair in a wearable device according to various embodiments.
도 15를 참조하면, 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 프로세서(예: 도 1의 프로세서(120))는 휠체어 밀기 동작을 카운트하고, 카운트된 횟수를 디스플레이(예: 도 1의 디스플레이 모듈(140))에 표시할 수 있다. 제1 사용자 인터페이스(1510)는 휠체어 밀기 횟수 또는 휠체어 밀기 시간을 활동 정보(또는 운동 정보)로서 제공하는 일례를 나타낸 것일 수 있다. 프로세서(120)는 휠체어 밀기 동작에 기반하여 사용자의 운동 패턴을 분석하여 제공할 수 있다. 다양한 실시예들에 따르면, 프로세서(120)는 걷기 모드, 달리기 모드와 같이 휠체어 모드를 운동 모드로서 제공할 수 있다. 웨어러블 디바이스(101)가 휠체어 모드로 설정되는 경우, 프로세서(120)는 도 5 또는 도 7의 동작을 수행하여 휠체어 밀기 동작을 인식하고, 휠체어 밀기 동작으로 인식되는 경우, 도 10을 수행하여 휠체어 밀기 동작의 횟수를 카운트할 수 있다.Referring to FIG. 15 , a processor (eg, the
다양한 실시예들에 따르면, 프로세서(120)는 휠체어 밀기 동작의 횟수에 기반하여 소모 칼로리를 계산하고, 계산된 소모 칼로리를 사용자에게 제공할 수 있다. 제2 사용자 인터페이스(1530)는 휠체어 밀기 횟수, 휠체어 밀기 시간 또는 소모 칼로리 중 적어도 하나를 포함할 수 있다. 예를 들어, 프로세서(120)는 휠체어 밀기 동작의 횟수가 카운트될 때마다 기초 대사량 또는 추가 칼로리를 더하여 하루 동안 소모된 칼로리를 계산할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작의 속도에 기반하여 상기 소모 칼로리를 계산할 수 있다. According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 설정된 시간 동안(예: 3일, 7일 등) 휠체어 밀기 동작이 인식되지 않는 경우, 운동하라는 안내를 출력할 수 있다. 상기 안내는 텍스트, 이미지, 비디오 또는 음성 중 적어도 하나를 포함할 수 있다. 상기 안내는 디스플레이 모듈(140)에 사용자 인터페이스를 표시하거나, 스피커(예: 도 1의 스피커(175))를 통해 음성을 출력할 수 있다. 프로세서(120)는 휠체어 밀기 횟수의 목표치를 설정하는 사용자 인터페이스를 제공할 수 있다. 사용자는 상기 사용자 인터페이스를 통해 걸음 수 목표치와 유사하게, 휠체어 밀기 횟수(예: 100회, 200회)를 설정할 수 있다.According to various embodiments, the
본 발명의 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 동작 방법은 상기 웨어러블 디바이스에 포함된 관성 센서(예: 도 1의 관성 센서(150))를 이용하여 가속도 데이터를 측정하는 동작, 상기 측정된 가속도 데이터를 상기 웨어러블 디바이스의 메모리(예: 도 1의 메모리(110))의 가속도 버퍼에 저장하는 동작, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장되었는지 판단하는 동작, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장된 경우, KLD 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하는 동작, 상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하는 동작, 및 상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하는 동작을 포함할 수 있다.An operating method of a wearable device (eg, the
상기 인식하는 동작은, 상기 획득한 KLD 출력값에 기반하여 KLD 평균값을 산출하는 동작, 상기 측정된 가속도 데이터에 기반하여 가속도 분산값을 산출하는 동작, 상기 KLD 출력값이 KLD 기준값 미만이고, 상기 KLD 평균값이 KLD 평균 임계치 미만이며, 상기 가속도 분산값이 분산 임계치를 초과하는 것 중 적어도 하나에 해당되는 경우, 상기 휠체어 밀기 동작으로 인식하는 동작을 포함할 수 있다.The recognizing operation includes an operation of calculating a KLD average value based on the obtained KLD output value, an operation of calculating an acceleration variance value based on the measured acceleration data, the KLD output value is less than the KLD reference value, and the KLD average value is If the acceleration variance value is less than the KLD average threshold and corresponds to at least one of those exceeding the variance threshold, an operation of recognizing the wheelchair pushing operation may be included.
상기 KLD 평균값을 산출하는 동작은, 상기 획득한 KLD 출력값을 KLD 버퍼에 저장하는 동작, 상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장되었는지 판단하는 동작, 및 상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장된 경우, 상기 KLD 버퍼에 저장된 KLD 출력값의 평균값을 산출하는 동작을 포함할 수 있다.The operation of calculating the KLD average value includes the operation of storing the obtained KLD output value in the KLD buffer, the operation of determining whether the KLD output value is stored as much as the size of the KLD buffer, and the KLD output value as much as the size of the KLD buffer When stored, An operation of calculating an average value of KLD output values stored in the KLD buffer may be included.
상기 가속도 버퍼를 제1 가속도 버퍼라 하고, 상기 가속도 분산값을 산출하는 동작은, 상기 제1 가속도 버퍼의 크기만큼 저장된 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하는 동작, 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되었는지 판단하는 동작, 및 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 상기 제2 가속도 버퍼에 저장된 가속도 데이터의 가속도 분산값을 산출하는 동작을 포함할 수 있다.In the case where the acceleration buffer is referred to as a first acceleration buffer and the acceleration variance value is calculated, the acceleration data stored in the first acceleration buffer is stored in a second acceleration buffer when the acceleration data is stored as much as the size of the first acceleration buffer. , an operation of determining whether acceleration data equal to the size of the second acceleration buffer is stored, and an operation of calculating an acceleration variance value of the acceleration data stored in the second acceleration buffer when acceleration data equal to the size of the second acceleration buffer is stored. can include
상기 방법은 상기 휠체어 밀기 동작으로 인식되는 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하는 동작, 상기 제2 가속도 버퍼에 저장된 가속도 데이터 중 설정된 개수의 가속도 데이터에 윈도우를 설정하는 동작, 상기 윈도우 내 가속도 피크를 검출하는 동작, 상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인지 여부를 판단하는 동작, 및 상기 판단 결과에 기반하여 상기 휠체어 밀기 동작의 횟수를 카운트하는 동작을 더 포함할 수 있다.When the motion is recognized as pushing the wheelchair, the method stores acceleration data stored in the first acceleration buffer in a second acceleration buffer, and sets a window to a set number of acceleration data among the acceleration data stored in the second acceleration buffer. operation, detecting an acceleration peak within the window, determining whether acceleration data detected as an acceleration peak within the window is less than an adaptive threshold, and counting the number of times of the wheelchair pushing operation based on the determination result. It may further include an operation to do.
상기 적응형 임계치 미만인지 판단하는 동작은, 상기 제2 가속도 버퍼에 저장된 가속도 데이터의 최소값을 검출하는 동작, 상기 가속도 데이터의 최소값에 기반하여 상기 적응형 임계치를 결정하는 동작, 및 상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 상기 적응형 임계치 미만인지 여부를 판단하는 동작을 포함할 수 있다.Determining whether the threshold is less than the adaptive threshold may include detecting a minimum value of acceleration data stored in the second acceleration buffer, determining the adaptive threshold based on the minimum value of the acceleration data, and determining an acceleration peak within the window. It may include an operation of determining whether the detected acceleration data is less than the adaptive threshold.
상기 카운트하는 동작은, 상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인 경우, 가속도 피크가 검출된 두 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는지 여부를 판단하는 동작, 및 가속도 피크가 검출된 두 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는 경우, 상기 휠체어 밀기 동작의 횟수를 카운트하는 동작을 포함할 수 있다.The counting operation may include, when the acceleration data detected as the acceleration peak within the window is less than the adaptive threshold, an operation of determining whether a difference between two window indices in which an acceleration peak is detected exceeds an index threshold, and an acceleration peak is detected and counting the number of times of the wheelchair pushing operation when the difference between the two window indices exceeds an index threshold.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in this document may be included and provided in a computer program product. Computer program products may be traded between sellers and buyers as commodities. A computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play Store TM ) or on two user devices ( It can be distributed (eg downloaded or uploaded) online, directly between smart phones. In the case of online distribution, at least part of the computer program product may be temporarily stored or temporarily created in a device-readable storage medium such as a manufacturer's server, an application store server, or a relay server's memory.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱 하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (eg, module or program) of the above-described components may include a single object or a plurality of entities, and some of the plurality of entities may be separately disposed in other components. there is. According to various embodiments, one or more components or operations among the aforementioned corresponding components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (eg modules or programs) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by a corresponding component of the plurality of components prior to the integration. . According to various embodiments, the actions performed by a module, program, or other component are executed sequentially, in parallel, iteratively, or heuristically, or one or more of the actions are executed in a different order, or omitted. or one or more other actions may be added.
본 명세서와 도면에 개시된 본 발명의 다양한 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Various embodiments of the present invention disclosed in the present specification and drawings are only presented as specific examples to easily explain the technical content of the present invention and help understanding of the present invention, and are not intended to limit the scope of the present invention. Therefore, the scope of the present invention should be construed as including all changes or modifications derived based on the technical idea of the present invention in addition to the embodiments disclosed herein.
101: 웨어러블 디바이스
110: 메모리
120: 프로세서
150: 관성 센서101: wearable device
110: memory
120: processor
150: inertial sensor
Claims (20)
관성 센서;
디스플레이;
기준 신호를 저장하는 메모리; 및
상기 관성 센서, 상기 디스플레이, 또는 상기 메모리 중 적어도 하나와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는,
상기 관성 센서를 이용하여 가속도 데이터를 측정하고,
상기 측정된 가속도 데이터를 상기 메모리의 가속도 버퍼에 저장하고,
KLD(Kullback-Leivler divergence) 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하고,
상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하고,
상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하도록 설정된 웨어러블 디바이스.
In the wearable device,
inertial sensor;
display;
a memory for storing a reference signal; and
a processor operatively coupled with at least one of the inertial sensor, the display, or the memory, the processor comprising:
Measuring acceleration data using the inertial sensor;
Store the measured acceleration data in an acceleration buffer of the memory;
Obtaining a KLD output value by comparing a probability distribution of the measured acceleration data with a probability distribution of a reference signal stored in the memory through a Kullback-Leivler divergence (KLD) algorithm;
Determine whether the obtained KLD output value is less than the KLD reference value,
When the obtained KLD output value is less than the KLD reference value, a wearable device configured to recognize a wheelchair pushing motion.
상기 기준 신호의 크기만큼 상기 가속도 버퍼의 크기를 결정하고,
상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장되었는지 판단하고,
상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장된 경우, 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하도록 설정된 웨어러블 디바이스.
The method of claim 1, wherein the processor,
determining the size of the acceleration buffer by the size of the reference signal;
Determine whether the acceleration data is stored as much as the size of the acceleration buffer;
The wearable device configured to compare a probability distribution of the measured acceleration data with a probability distribution of a reference signal stored in the memory when the acceleration data is stored as much as the size of the acceleration buffer.
상기 웨어러블 디바이스에 배치된 상기 관성 센서의 위치에 따라 설정된 축에 대응하는 가속도 데이터를 상기 가속도 버퍼에 저장하도록 설정된 웨어러블 디바이스.
The method of claim 1, wherein the processor,
The wearable device configured to store acceleration data corresponding to an axis set according to a position of the inertial sensor disposed in the wearable device in the acceleration buffer.
상기 획득한 KLD 출력값에 기반하여 KLD 평균값을 산출하고,
상기 측정된 가속도 데이터에 기반하여 가속도 분산값을 산출하고,
상기 KLD 출력값, 상기 KLD 평균값 또는 상기 가속도 분산값 중 적어도 하나에 기반하여 상기 휠체어 밀기 동작을 인식하도록 설정된 웨어러블 디바이스.
The method of claim 1, wherein the processor,
Calculate a KLD average value based on the obtained KLD output value,
Calculate an acceleration dispersion value based on the measured acceleration data,
A wearable device configured to recognize the wheelchair pushing motion based on at least one of the KLD output value, the KLD average value, or the acceleration variance value.
상기 획득한 KLD 출력값을 KLD 버퍼에 저장하고,
상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장되었는지 판단하고,
상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장된 경우, 상기 KLD 버퍼에 저장된 KLD 출력값의 평균값을 산출하도록 설정된 웨어러블 디바이스.
The method of claim 4, wherein the processor,
Store the obtained KLD output value in a KLD buffer,
Determine whether the KLD output value is stored as much as the size of the KLD buffer,
A wearable device configured to calculate an average value of KLD output values stored in the KLD buffer when KLD output values are stored as much as the size of the KLD buffer.
상기 가속도 버퍼를 제1 가속도 버퍼라 하고,
상기 프로세서는,
상기 제1 가속도 버퍼의 크기만큼 저장된 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하고,
상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되었는지 판단하고,
상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 상기 제2 가속도 버퍼에 저장된 가속도 데이터의 가속도 분산값을 산출하도록 설정된 웨어러블 디바이스.
According to claim 4,
The acceleration buffer is referred to as a first acceleration buffer,
the processor,
When the size of the first acceleration buffer is stored, the acceleration data stored in the first acceleration buffer is stored in a second acceleration buffer,
Determine whether acceleration data is stored as much as the size of the second acceleration buffer;
The wearable device configured to calculate an acceleration variance value of the acceleration data stored in the second acceleration buffer when acceleration data is stored as much as the size of the second acceleration buffer.
상기 제1 가속도 버퍼의 크기만큼 저장된 경우, 상기 제1 가속도 버퍼에 저장된 마지막 가속도 데이터를 상기 제2 가속도 버퍼에 저장하도록 설정된 웨어러블 디바이스.
The method of claim 6, wherein the processor,
The wearable device configured to store the last acceleration data stored in the first acceleration buffer in the second acceleration buffer when the size of the first acceleration buffer is stored.
상기 KLD 출력값, 상기 KLD 평균값 또는 상기 가속도 분산값 중 적어도 하나가 설정된 조건에 해당되는 경우, 상기 휠체어 밀기 동작으로 인식하도록 설정된 웨어러블 디바이스.
The method of claim 4, wherein the processor,
A wearable device set to recognize the wheelchair pushing motion when at least one of the KLD output value, the KLD average value, or the acceleration variance value corresponds to a set condition.
상기 설정된 조건은 상기 KLD 출력값이 KLD 기준값 미만이고, 상기 KLD 평균값이 KLD 평균 임계치 미만이며, 상기 가속도 분산값이 분산 임계치를 초과하는 것 중 적어도 하나를 포함하도록 설정된 웨어러블 디바이스.
According to claim 8,
The set condition is set to include at least one of the KLD output value being less than the KLD reference value, the KLD average value being less than the KLD average threshold value, and the acceleration variance value exceeding the variance threshold value.
상기 가속도 버퍼를 제1 가속도 버퍼라 하고,
상기 프로세서는,
상기 휠체어 밀기 동작으로 인식되는 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하고,
상기 제2 가속도 버퍼에 저장된 가속도 데이터 중 설정된 개수의 가속도 데이터에 윈도우를 설정하고,
상기 윈도우 내 가속도 피크(peak)를 검출하고,
상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인지 여부를 판단하고,
상기 판단 결과에 기반하여 상기 휠체어 밀기 동작의 횟수를 카운트하도록 설정된 웨어러블 디바이스.
According to claim 1,
The acceleration buffer is referred to as a first acceleration buffer,
the processor,
When the motion is recognized as pushing the wheelchair, the acceleration data stored in the first acceleration buffer is stored in a second acceleration buffer;
Setting a window to the set number of acceleration data among the acceleration data stored in the second acceleration buffer;
detecting an acceleration peak within the window;
Determining whether acceleration data detected as an acceleration peak within the window is less than an adaptive threshold;
A wearable device configured to count the number of times of the wheelchair pushing motion based on the determination result.
상기 윈도우 내 가속도 피크가 검출되는 경우, 상기 가속도 피크로 검출된 가속도 데이터를 식별하고,
상기 윈도우 내 가속도 피크가 검출되지 않는 경우, 윈도우 인덱스를 추가하여 윈도우를 갱신하도록 설정된 웨어러블 디바이스.
The method of claim 10, wherein the processor,
When an acceleration peak within the window is detected, identifying acceleration data detected as the acceleration peak;
A wearable device configured to update a window by adding a window index when an acceleration peak within the window is not detected.
상기 제2 가속도 버퍼에 저장된 가속도 데이터의 최소값을 검출하고,
상기 가속도 데이터의 최소값에 기반하여 적응형 임계치를 결정하고,
상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인지 여부를 판단하도록 설정된 웨어러블 디바이스.
The method of claim 11, wherein the processor,
detecting a minimum value of acceleration data stored in the second acceleration buffer;
determine an adaptive threshold based on the minimum value of the acceleration data;
The wearable device configured to determine whether acceleration data detected as an acceleration peak within the window is less than an adaptive threshold.
상기 제2 가속도 버퍼에 새로운 가속도 데이터가 저장되거나, 또는 상기 윈도우를 갱신할 때마다 상기 적응형 임계치를 변경하도록 설정된 웨어러블 디바이스.
The method of claim 12, wherein the processor,
The wearable device configured to change the adaptive threshold whenever new acceleration data is stored in the second acceleration buffer or the window is updated.
상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인 경우, 가속도 피크가 검출된 두 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는지 여부를 판단하고,
가속도 피크가 검출된 두 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는 경우, 상기 휠체어 밀기 동작의 횟수를 카운트하도록 설정된 웨어러블 디바이스.
The method of claim 10, wherein the processor,
When acceleration data detected as an acceleration peak within the window is less than an adaptive threshold, determining whether a difference between two window indices in which an acceleration peak is detected exceeds an index threshold;
The wearable device configured to count the number of times of the pushing motion of the wheelchair when a difference between two window indices in which an acceleration peak is detected exceeds an index threshold.
상기 웨어러블 디바이스에 포함된 관성 센서를 이용하여 가속도 데이터를 측정하는 동작;
상기 측정된 가속도 데이터를 상기 웨어러블 디바이스에 포함된 메모리의 가속도 버퍼에 저장하는 동작;
상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장되었는지 판단하는 동작;
상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장된 경우, KLD 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하는 동작;
상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하는 동작; 및
상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하는 동작을 포함하는 방법.
In the operating method of the wearable device,
measuring acceleration data using an inertial sensor included in the wearable device;
storing the measured acceleration data in an acceleration buffer of a memory included in the wearable device;
determining whether the acceleration data is stored as much as the size of the acceleration buffer;
obtaining a KLD output value by comparing a probability distribution of the measured acceleration data with a probability distribution of a reference signal stored in the memory through a KLD algorithm when the acceleration data is stored as much as the size of the acceleration buffer;
determining whether the obtained KLD output value is less than a KLD reference value; and
And if the obtained KLD output value is less than the KLD reference value, recognizing it as a wheelchair pushing motion.
상기 획득한 KLD 출력값에 기반하여 KLD 평균값을 산출하는 동작;
상기 측정된 가속도 데이터에 기반하여 가속도 분산값을 산출하는 동작;
상기 KLD 출력값이 KLD 기준값 미만이고, 상기 KLD 평균값이 KLD 평균 임계치 미만이며, 상기 가속도 분산값이 분산 임계치를 초과하는 것 중 적어도 하나에 해당되는 경우, 상기 휠체어 밀기 동작으로 인식하는 동작을 포함하는 방법.
The method of claim 15, wherein the recognizing operation,
Calculating an average KLD value based on the obtained KLD output value;
calculating an acceleration dispersion value based on the measured acceleration data;
Recognizing the wheelchair pushing operation when at least one of the KLD output value is less than the KLD reference value, the KLD average value is less than the KLD average threshold value, and the acceleration variance value exceeds the variance threshold value. .
상기 획득한 KLD 출력값을 KLD 버퍼에 저장하는 동작;
상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장되었는지 판단하는 동작; 및
상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장된 경우, 상기 KLD 버퍼에 저장된 KLD 출력값의 평균값을 산출하는 동작을 포함하는 방법.
The method of claim 16, wherein the operation of calculating the KLD average value,
storing the obtained KLD output value in a KLD buffer;
determining whether KLD output values are stored as much as the size of the KLD buffer; and
and calculating an average value of the KLD output values stored in the KLD buffer when KLD output values corresponding to the size of the KLD buffer are stored.
상기 가속도 버퍼를 제1 가속도 버퍼라 하고,
상기 가속도 분산값을 산출하는 동작은,
상기 제1 가속도 버퍼의 크기만큼 저장된 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하는 동작;
상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되었는지 판단하는 동작; 및
상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 상기 제2 가속도 버퍼에 저장된 가속도 데이터의 가속도 분산값을 산출하는 동작을 포함하는 방법.
According to claim 16,
The acceleration buffer is referred to as a first acceleration buffer,
The operation of calculating the acceleration variance value,
storing the acceleration data stored in the first acceleration buffer in a second acceleration buffer when the size of the first acceleration buffer is stored;
determining whether acceleration data corresponding to the size of the second acceleration buffer is stored; and
and calculating an acceleration dispersion value of the acceleration data stored in the second acceleration buffer when acceleration data corresponding to the size of the second acceleration buffer is stored.
상기 가속도 버퍼를 제1 가속도 버퍼라 하고,
상기 휠체어 밀기 동작으로 인식되는 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하는 동작;
상기 제2 가속도 버퍼에 저장된 가속도 데이터 중 설정된 개수의 가속도 데이터에 윈도우를 설정하는 동작;
상기 윈도우 내 가속도 피크(peak)를 검출하는 동작;
상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인지 여부를 판단하는 동작; 및
상기 판단 결과에 기반하여 상기 휠체어 밀기 동작의 횟수를 카운트하는 동작을 더 포함하는 방법.
According to claim 16,
The acceleration buffer is referred to as a first acceleration buffer,
storing acceleration data stored in the first acceleration buffer in a second acceleration buffer when the motion is recognized as pushing the wheelchair;
setting a window to a set number of acceleration data among acceleration data stored in the second acceleration buffer;
detecting an acceleration peak within the window;
determining whether acceleration data detected as an acceleration peak within the window is less than an adaptive threshold; and
The method further comprising counting the number of times of the wheelchair pushing motion based on the determination result.
상기 적응형 임계치 미만인지 판단하는 동작은,
상기 제2 가속도 버퍼에 저장된 가속도 데이터의 최소값을 검출하는 동작;
상기 가속도 데이터의 최소값에 기반하여 상기 적응형 임계치를 결정하는 동작; 및
상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 상기 적응형 임계치 미만인지 여부를 판단하는 동작을 포함하고,
상기 카운트하는 동작은,
상기 윈도우 내 가속도 피크로 검출된 가속도 데이터가 적응형 임계치 미만인 경우, 가속도 피크가 검출된 두 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는지 여부를 판단하는 동작; 및
가속도 피크가 검출된 두 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는 경우, 상기 휠체어 밀기 동작의 횟수를 카운트하는 동작을 포함하는 방법.According to claim 19,
The operation of determining whether the adaptive threshold is less than,
detecting a minimum value of acceleration data stored in the second acceleration buffer;
determining the adaptive threshold based on the minimum value of the acceleration data; and
And determining whether acceleration data detected as an acceleration peak within the window is less than the adaptive threshold,
The counting operation is
determining whether a difference between two window indices in which an acceleration peak is detected exceeds an index threshold when acceleration data detected as an acceleration peak within the window is less than an adaptive threshold; and
and counting the number of pushing motions of the wheelchair when a difference between two window indices in which an acceleration peak is detected exceeds an index threshold.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2022/016370 WO2023136433A1 (en) | 2022-01-12 | 2022-10-25 | Method for calculating exercise information related to wheelchair, and wearable device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220004717 | 2022-01-12 | ||
KR1020220004717 | 2022-01-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230109042A true KR20230109042A (en) | 2023-07-19 |
Family
ID=87425933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220013725A KR20230109042A (en) | 2022-01-12 | 2022-01-28 | Wearable device and method for calculating exercise information related to wheelchair |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230109042A (en) |
-
2022
- 2022-01-28 KR KR1020220013725A patent/KR20230109042A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9582080B1 (en) | Methods and apparatus for learning sensor data patterns for gesture-based input | |
CN106575150B (en) | Method for recognizing gestures using motion data and wearable computing device | |
US9235278B1 (en) | Machine-learning based tap detection | |
US9804679B2 (en) | Touchless user interface navigation using gestures | |
US20150091790A1 (en) | Classification of gesture detection systems through use of known and yet to be worn sensors | |
US11100314B2 (en) | Device, system and method for improving motion estimation using a human motion model | |
Raffa et al. | Don't slow me down: Bringing energy efficiency to continuous gesture recognition | |
US11580421B2 (en) | Weakly supervised learning for improving multimodal sensing platform | |
Vaughn et al. | Activity detection and analysis using smartphone sensors | |
KR102637133B1 (en) | On-device activity recognition | |
WO2014147785A1 (en) | Movement detection device, movement detection method, program, and recording medium | |
EP3289435B1 (en) | User interface control using impact gestures | |
Prabowo et al. | Missing data handling using machine learning for human activity recognition on mobile device | |
Iyer et al. | Generalized hand gesture recognition for wearable devices in IoT: Application and implementation challenges | |
KR20230109042A (en) | Wearable device and method for calculating exercise information related to wheelchair | |
Marasović et al. | Accelerometer based gesture recognition system using distance metric learning for nearest neighbour classification | |
Agarwal et al. | Gestglove: A wearable device with gesture based touchless interaction | |
EP3611612A1 (en) | Determining a user input | |
Tootaghaj et al. | High five: improving gesture recognition by embracing uncertainty | |
Marasović et al. | Motion-based gesture recognition algorithms for robot manipulation | |
Song et al. | Magic Wand: Towards Plug-and-Play Gesture Recognition on Smartwatch | |
WO2023136433A1 (en) | Method for calculating exercise information related to wheelchair, and wearable device | |
Skoglund et al. | Activity tracking using ear-level accelerometers | |
US11980792B2 (en) | Method and apparatus for calibrating a user activity model used by a mobile device | |
US20230048413A1 (en) | Wearable electronic device and method for providing information of brushing teeth in wearable electronic device |