WO2023136433A1 - Method for calculating exercise information related to wheelchair, and wearable device - Google Patents

Method for calculating exercise information related to wheelchair, and wearable device Download PDF

Info

Publication number
WO2023136433A1
WO2023136433A1 PCT/KR2022/016370 KR2022016370W WO2023136433A1 WO 2023136433 A1 WO2023136433 A1 WO 2023136433A1 KR 2022016370 W KR2022016370 W KR 2022016370W WO 2023136433 A1 WO2023136433 A1 WO 2023136433A1
Authority
WO
WIPO (PCT)
Prior art keywords
acceleration
kld
buffer
acceleration data
processor
Prior art date
Application number
PCT/KR2022/016370
Other languages
French (fr)
Korean (ko)
Inventor
김창훈
배현진
송진우
최창림
강산희
권영서
김용훈
박소영
박소진
Original Assignee
삼성전자 주식회사
세종대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020220013725A external-priority patent/KR20230109042A/en
Application filed by 삼성전자 주식회사, 세종대학교산학협력단 filed Critical 삼성전자 주식회사
Publication of WO2023136433A1 publication Critical patent/WO2023136433A1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb

Definitions

  • Various embodiments of the present disclosure disclose a method for calculating exercise information related to a wheelchair and a wearable device.
  • 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.
  • 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, .
  • KLD Kullback-Leivler divergence
  • a wearable device 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 Kullback-Leivler divergence
  • a method of operating a wearable device 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.
  • recognizing a wheelchair pushing motion based on the KLD output value, and recognizing the recognized wheelchair pushing motion number of times can be counted.
  • 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.
  • 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.
  • motion information related to the wheelchair eg., number of times of pushing the wheelchair, time of pushing the wheelchair
  • FIG. 1 is a block diagram of a wearable device according to various embodiments.
  • FIG. 2 is a front perspective view of a wearable device according to various embodiments.
  • FIG. 3 is a diagram illustrating a rear perspective view of a wearable device according to various embodiments.
  • FIG. 4 is a diagram illustrating acceleration data related to a wheelchair pushing motion according to various embodiments.
  • FIG. 5 is a flowchart illustrating a method of operating a wearable device according to various embodiments.
  • FIG. 6 is a diagram illustrating an example of storing acceleration data in an acceleration buffer according to time according to various embodiments.
  • FIG. 7 is a flowchart illustrating a method of recognizing a wheelchair pushing motion of a wearable device according to various embodiments.
  • FIGS. 8A to 8C are diagrams illustrating an example of utilizing a buffer included in a wearable device according to various embodiments.
  • FIG. 9 is a diagram illustrating an example of classifying motion based on acceleration data in a wearable device according to various embodiments.
  • FIG. 10 is a flowchart illustrating a method of counting a wheelchair pushing motion of a wearable device according to various embodiments.
  • FIG. 11 is a diagram illustrating an example of setting a window for acceleration data in a wearable device according to various embodiments.
  • FIG. 12 is a diagram illustrating an example of selecting an adaptive threshold in a wearable device according to various embodiments.
  • FIG. 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.
  • FIG. 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.
  • a (eg, first) component is said to be “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively.”
  • the certain component may be connected to the other component directly (eg by wire), wirelessly, or through a third component.
  • 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.
  • a module may be an integrally constructed component or a minimal unit of components or a portion thereof that performs one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • FIG. 1 is a block diagram of a wearable device according to various embodiments.
  • the wearable device 101 includes a memory 110, a processor 120, an input module 130, a display module 140, an inertial sensor 150, a communication module 160, and a microphone 170. , a speaker 175, a charging module 180, a battery 185, and/or an interface 190.
  • the wearable device 101 may communicate with at least one of an external electronic device or a server through a network (eg, a short-distance wireless communication network or a long-distance wireless communication network).
  • a network eg, a short-distance wireless communication network or a long-distance wireless communication network.
  • at least one of the components described above may be omitted or one or more other components (eg, a camera module) may be added.
  • the input module 130 and the display module 140 may be integrated into one module (eg, a touch screen).
  • the memory 110 may store various data used by at least one component of the wearable device 101 (eg, the processor 120 or the inertial sensor 150).
  • the data may include, for example, input data or output data for software (eg, a program) and commands related thereto.
  • the memory 110 may include volatile memory or non-volatile memory.
  • the program may be stored as software in the memory 110 and may include, for example, an operating system, middleware, or applications.
  • the processor 120 may execute software to control at least one other component (eg, hardware or software component) of the wearable device 101 connected to the processor 120, and perform various data processing or calculations.
  • the processor 120 stores instructions or data received from other components (eg, the inertial sensor 150 or the communication module 160) in volatile memory and , it can process commands or data stored in volatile memory, and store the resulting data in non-volatile memory.
  • the processor 120 may include a main processor (eg, a central processing unit or an application processor) or a secondary processor (eg, a graphics processing unit, a neural processing unit (NPU)) that may operate independently or together therewith. , image signal processor, sensor hub processor, or communication processor).
  • the processor 120 measures acceleration data (or an acceleration value or an acceleration sensed value) using the inertial sensor 150, stores the measured acceleration data in an acceleration buffer (or first acceleration buffer), and stores the measured acceleration data in the acceleration buffer.
  • the probability distribution of the stored acceleration data and the probability distribution of the reference signal are compared, the comparison result is obtained as a KLD output value, and the wheelchair pushing motion can be recognized based on the obtained KLD output value.
  • the reference signal is previously stored in the memory 110, and the processor 120 may compare a probability distribution of the measured acceleration data with a probability distribution of the reference signal using a KLD algorithm.
  • the processor 120 determines whether acceleration data equal to the size of the acceleration buffer is stored, measures acceleration data until acceleration data equal to the size of the acceleration buffer is stored, and stores the measured acceleration data in the acceleration buffer. can be repeated.
  • the processor 120 may recognize the wheelchair pushing motion when the KLD output value is less than the KLD reference value, and recognize it as not the wheelchair pushing motion when the KLD output value is greater than or equal to the KLD reference value
  • the processor 120 may calculate KLD and store the KLD output value in the KLD buffer.
  • the processor 120 may repeatedly perform operations of calculating KLD based on the acceleration data stored in the acceleration buffer and storing the KLD output value in the KLD buffer until KLD output values equal to the size of the KLD buffer are stored.
  • the processor 120 may calculate a KLD average value based on the KLD output values stored in the KLD buffer.
  • the processor 120 may identify the last acceleration data stored in the acceleration buffer and store the identified acceleration data in a second acceleration buffer.
  • the processor 120 repeatedly performs an operation of identifying the last acceleration data (eg, the latest acceleration data) stored in the acceleration buffer and storing it in the second acceleration buffer until acceleration data equal to the size of the second acceleration buffer is stored. can do.
  • the processor 120 may calculate an acceleration variance value based on the acceleration data stored in the second acceleration buffer.
  • the processor 120 performs a wheelchair pushing operation when the KLD output value is less than the KLD reference value, the calculated KLD average value is less than the KLD average threshold value, and the calculated acceleration variance value exceeds the variance threshold value.
  • the processor 120 performs the wheelchair pushing operation when at least one of the KLD output value is greater than the KLD reference value, the calculated KLD average value is greater than or equal to the KLD average threshold value, and the calculated acceleration variance value is less than or equal to the variance threshold value. It can be judged that this is not the case.
  • the processor 120 may set a window to a set number of acceleration data from among the acceleration data stored in the second acceleration buffer when recognizing the wheelchair pushing motion.
  • the processor 120 may detect an acceleration peak within a window, and return (or identify) acceleration data detected as a peak when an acceleration peak within the window is detected.
  • the processor 120 may update the window by adding a window index.
  • the processor 120 may detect a minimum value of acceleration data stored in the second acceleration buffer, and select (or determine) an adaptive threshold based on the minimum value of the acceleration data.
  • the processor 120 determines whether the returned acceleration data is less than the adaptive threshold, and if the returned acceleration data is less than the adaptive threshold, the two windows detected as acceleration peaks It may be determined whether a difference between indices exceeds an index threshold.
  • the processor 120 may count the number of pushing motions of the wheelchair when a difference between two window indices detected as an acceleration peak exceeds an index threshold.
  • the processor 120 may not count the wheelchair pushing motion when the returned acceleration data is equal to or greater than the adaptive threshold or when a difference between two window indices detected as an acceleration peak is equal to or less than the index threshold.
  • the auxiliary processor may use less power than the main processor or may be set to be specialized for a designated function.
  • a secondary processor may be implemented separately from, or as part of, the main processor.
  • a secondary processor may, for example, perform a wearable device on behalf of the main processor while the main processor is in an inactive (eg sleep) state, or together with the main processor while the main processor is in an active (eg application execution) state. It is possible to control at least some of functions or states related to at least one of the components (eg, the display module 140, the inertial sensor 150, or the communication module 160).
  • an auxiliary processor eg, an image signal processor or a communication processor
  • the auxiliary processor 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 wearable device 101 itself where the artificial intelligence model is performed, or may be performed through a separate server.
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning or reinforcement learning, but in the above example Not limited.
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the foregoing, but is not limited to the foregoing examples.
  • the artificial intelligence model may include, in addition or alternatively, software structures in addition to hardware structures.
  • the input module 130 may receive a command or data to be used in a component (eg, the processor 120) of the wearable device 101 from the outside of the wearable device 101 (eg, a user).
  • the input module 130 may include a microphone, mouse, keyboard, key (eg, button), or digital pen (eg, stylus pen).
  • the display module 140 may visually provide information to the outside of the wearable device 101 (eg, a user).
  • the display module 140 may include a display, a hologram device, or a projector and a control circuit for controlling the device.
  • the display module 140 may include a touch sensor set to detect a touch or a pressure sensor set to measure the intensity of force generated by the touch.
  • the inertial sensor 150 is a sensor that detects force, and may also be referred to as a 6-axis sensor by combining acceleration (3 axes) and Gyro (3 axes). Alternatively, the inertial sensor 150 may be referred to as a game rotation vector sensor by integrating an acceleration sensor and a gyro sensor.
  • the accelerometer measures dynamic forces such as acceleration, vibration, and shock of an object. It may be a sensor that The acceleration sensor can detect the motion state of an object and can be used for various purposes.
  • the wearable device 101 may recognize a wheelchair pushing motion based on acceleration data measured by the inertial sensor 150 .
  • a gyroscope may be a sensor that measures the angular velocity of an object.
  • the gyro sensor may measure the angular velocity of the object.
  • the angular velocity may mean a rotational speed (or angle) per time.
  • the gyro sensor may also be referred to as a gyroscope.
  • the communication module 160 may support establishment of a direct (eg, wired) communication channel or wireless communication channel between the wearable device 101 and an external electronic device or server, and communication through the established communication channel.
  • the communication module 160 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 160 is a wireless communication module (eg, a cellular communication module, a short-distance wireless communication module, or a global positioning system (GPS) communication module) or a wired communication module (eg, a local area network (LAN)). communication module or power line communication module).
  • 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.
  • 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.
  • WiFi wireless fidelity
  • IrDA infrared data association
  • a legacy cellular network such as Bluetooth, WiFi direct, or infrared data association (IrDA), or a legacy cellular network, a 5G network, a
  • the wireless communication module may identify or authenticate the wearable device 101 within a communication network such as a short-distance communication network or a long-distance communication network using subscriber information (eg, International Mobile Subscriber Identity (IMSI)) stored in the subscriber identification module. .
  • subscriber information eg, International Mobile Subscriber Identity (IMSI)
  • IMSI International Mobile Subscriber Identity
  • the microphone 170 may convert sound into an electrical signal or vice versa. According to one embodiment, the microphone 170 may acquire sound (or audio) and convert it into an electrical signal.
  • the speaker 175 may output an audio (or sound) signal to the outside of the wearable device 101 .
  • the speaker 175 may include a receiver.
  • the speaker 175 may be used for general purposes such as multimedia playback or recording playback.
  • a receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker 175 or as part of it.
  • the charging module 180 may manage power supplied to the wearable device 101 .
  • the charging module 180 may charge the battery 185 with power received through the interface 190 .
  • the charging module 180 may be implemented as at least part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 185 may supply power to at least one component of the wearable device 101 .
  • the battery 185 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
  • the interface 190 may support one or more specified protocols that may be used to directly or wirelessly connect the wearable device 101 to an external electronic device (or charger).
  • the interface 190 may include a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • the interface 190 may include a connector through which the wearable device 101 is physically connected to an external electronic device.
  • commands or data may be transmitted or received between the wearable device 101 and an external electronic device through a server.
  • the external electronic device may be the same as or different from the wearable device 101 .
  • all or part of operations executed in the wearable device 101 may be executed in an external electronic device. For example, when the wearable device 101 needs to perform a certain function or service automatically or in response to a request from a user or other device, the wearable device 101 instead of executing the function or service by itself Alternatively or additionally, one or more external electronic devices may be requested to perform the function or at least part of the service.
  • One or more external electronic devices receiving the request may execute at least a part of the requested function or service or an additional function or service related to the request, and deliver a result of the execution to the wearable device 101 .
  • the wearable device 101 may process the result as it is or additionally and provide it as at least part of a response to the request.
  • the wearable device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device may include an internet of things (IoT) device.
  • the server may be an intelligent server using machine learning and/or neural networks.
  • the wearable device 101 can be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
  • 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).
  • the processor 120 of the wearable device 101 may call at least one command among one or more commands stored from a storage medium and execute it. This enables the device to be operated to perform at least one function according to the at least one command invoked.
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-temporary' only means that the storage medium is a tangible device and does not contain a signal (e.g. electromagnetic wave), and this term refers to the case where data is stored semi-permanently in the storage medium. It does not discriminate when it is temporarily stored.
  • FIG. 2 is a front perspective view of a wearable device according to various embodiments
  • FIG. 3 is a rear perspective view of a wearable device according to various embodiments.
  • a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments has a first surface (or front surface) 210A and a second surface (or rear surface) 210B. , And a housing 210 including a side surface 210C surrounding a space between the first surface 210A and the second surface 210B, and connected to at least a portion of the housing 210 and the wearable device 200 It may include fastening members 250 and 260 capable of being detached from the user's body (eg, wrist, ankle, etc.). In another embodiment (not shown), the housing may refer to a structure forming some of the first face 210A, the second face 210B, and the side face 210C of FIG. 2 .
  • the first surface 210A may be formed by a front plate 201 (eg, a glass plate or a polymer plate including various coating layers) that is substantially transparent at least in part.
  • the second face 210B may be formed by the substantially opaque back plate 207 .
  • Back plate 207 may be formed, for example, of coated or tinted glass, ceramic, polymer, metal (eg, aluminum, stainless steel (STS), or magnesium), or a combination of at least two of the foregoing.
  • the side surface 210C is coupled to the front plate 201 and the back plate 207 and may be formed by a side bezel structure (or "side member") 206 including metal and/or polymer.
  • the back plate 207 and the side bezel structure 206 may be integrally formed and may include the same material (eg, a metal material such as aluminum).
  • the binding members 250 and 260 may be formed of various materials and shapes. Integral and plurality of unit links may be formed to flow with each other by woven material, leather, rubber, urethane, metal, ceramic, or a combination of at least two of the above materials.
  • the wearable device 200 includes a display 220 (eg, the display module 140 of FIG. 1 ), audio modules 205 and 208 , and a sensor module 211 (eg, the inertial module of FIG. 1 ). sensor 150), key input devices 202, 203, 204 (eg, the input module 130 of FIG. 1) and a connector hole 209.
  • the wearable device 200 may omit at least one of the components (eg, the key input devices 202, 203, and 204, the connector hole 209, or the sensor module 211) or have other components. Additional elements may be included.
  • the display 220 may be exposed through a substantial portion of the front plate 201 , for example.
  • the shape of the display 220 may be a shape corresponding to the shape of the front plate 201, and may have various shapes such as a circle, an ellipse, or a polygon.
  • the display 220 may be coupled to or disposed adjacent to a touch sensing circuit, a pressure sensor capable of measuring the intensity (pressure) of a touch, and/or a fingerprint sensor.
  • the audio modules 205 and 208 may include a microphone hole 205 and a speaker hole 208 .
  • a microphone for acquiring external sound may be disposed inside the microphone hole 205, and in some embodiments, a plurality of microphones may be disposed to detect the direction of sound.
  • the speaker hole 208 can be used as an external speaker and a receiver for a call.
  • the sensor module 211 may generate an electrical signal or data value corresponding to an internal operating state of the wearable device 200 or an external environmental state.
  • the sensor module 211 may include, for example, a biometric sensor module 211 (eg, an HRM sensor) disposed on the second surface 210B of the housing 210 .
  • the wearable device 200 includes a sensor module not shown, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, At least one of a humidity sensor and an illuminance sensor may be further included.
  • the key input devices 202, 203, and 204 include a wheel key 202 disposed on a first surface 210A of the housing 210 and rotatable in at least one direction, and/or a side surface 210C of the housing 210. ) may include side key buttons 202 and 203 disposed on.
  • the wheel key may have a shape corresponding to the shape of the front plate 202 .
  • the wearable device 200 may not include some or all of the key input devices 202, 203, and 204, and the key input devices 202, 203, and 204 that are not included may be displayed on the display 220. It may be implemented in other forms such as soft keys on the screen.
  • the connector hole 209 may accommodate a connector (eg, a USB connector) for transmitting and receiving power and/or data to and from an external electronic device and a connector for transmitting and receiving an audio signal to and from an external electronic device.
  • a connector eg, a USB connector
  • Other connector holes may be included.
  • the wearable device 200 may further include, for example, a connector cover (not shown) that covers at least a portion of the connector hole 209 and blocks external foreign substances from entering the connector hole.
  • the binding members 250 and 260 may be detachably attached to at least a partial region of the housing 210 using the locking members 251 and 261 .
  • the fastening members 250 and 260 may include one or more of a fixing member 252 , a fixing member fastening hole 253 , a band guide member 254 , and a band fixing ring 255 .
  • the fixing member 252 may be configured to fix the housing 210 and the fastening members 250 and 260 to a part of the user's body (eg, wrist, ankle, etc.).
  • the fixing member fastening hole 253 corresponds to the fixing member 252 to fix the housing 210 and the fastening members 250 and 260 to a part of the user's body.
  • the band guide member 254 is configured to limit the movement range of the fixing member 252 when the fixing member 252 is fastened to the fixing member fastening hole 253, so that the fastening members 250 and 260 are attached to a part of the user's body. It can be tightly bonded.
  • the band fixing ring 255 may limit the movement range of the fastening members 250 and 260 in a state in which the fixing member 252 and the fixing member fastening hole 253 are fastened.
  • FIG. 4 is a diagram illustrating acceleration data related to a wheelchair pushing motion according to various embodiments.
  • wheelchair pushing motions can be largely classified into four types.
  • the wheelchair pushing motion classification 410 shows a hand movement according to a wheelchair pushing motion, and may show a situation in which the wheelchair moves in a left direction.
  • the wheelchair pushing action may include 1 grabbing the handle of the wheelchair (holding), 2 pushing the wheelchair wheel (pushing), 3 releasing the hand from the handle (releasing), and 4 recovering the hand (recovery).
  • it is classified into four operations for description of the invention, it may be classified into more or less than four operations depending on the implementation.
  • acceleration characteristics that can be detected when a user rides a wheelchair while wearing a wearable device eg, the wearable device 101 of FIG. 1 ) will be described.
  • 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 wearable device 101 receives acceleration, and when the operation of retrieving the hand is followed, the direction of movement of the hand is change, and large accelerations can occur.
  • the grabbing motion may generate acceleration data in the form of a peak.
  • 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.
  • 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.
  • 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.
  • a graph 450 shows acceleration data generated when a wheelchair pushing motion is performed. Looking at the graph 450, it can be seen that the acceleration characteristics appear differently according to 1234 corresponding to the wheelchair pushing motion classification 410, and the acceleration characteristics repeatedly occur.
  • the action of releasing the hand is an action that generates the largest peak in acceleration data (451, 455)
  • the action of holding the knob is an action that generates the smallest peak in acceleration data (453, 457) may be marked with
  • acceleration characteristics according to the wheelchair pushing motion classification 410 may appear more distinctly in an axis of the acceleration sensor that coincides with the direction of the user's fingertip.
  • An axis of the acceleration sensor that coincides with the direction of the user's fingertip may vary depending on a position where the acceleration sensor (eg, the inertial sensor 150 of FIG. 1 ) is disposed on the wearable device 101 .
  • the axis of the acceleration sensor corresponding to the direction of the user's fingertip is set as the 'x-axis', and the pushing motion of the wheelchair can be recognized based on the acceleration data of the x-axis.
  • the axis of the acceleration sensor used for pushing the wheelchair may be the y-axis or the z-axis according to the position where the acceleration sensor is disposed in the wearable device 101 .
  • a user may wear the wearable device 101 on his or her left hand or right hand.
  • the x-axis of the acceleration sensor may be divided into a + direction or a - direction.
  • the wheelchair pushing motion can be recognized using sign inversion of the x-axis.
  • the wearable device 101 recognizes the wheelchair pushing motion by using the acceleration data measured by the acceleration sensor according to the wheelchair pushing motion as an input of the KLD (Kullback-Leivler divergence) algorithm, and recognizes the wheelchair pushing motion, and then the measured acceleration data It is possible to count the number of wheelchair pushing motions based on .
  • KLD Kullback-Leivler divergence
  • a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments of the present invention includes an inertial sensor (eg, the inertial sensor 150 of FIG. 1 ), a display (eg, the display module 140 of FIG. 1 ) )), a memory for storing a reference signal (eg, memory 110 of FIG. 1 ), and a processor operatively connected with at least one of the inertial sensor, the display, or the memory (eg, processor 120 of FIG. 1 ). )), wherein 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 measure the measured acceleration data.
  • KLD Kullback-Leivler divergence
  • a KLD output value is obtained by comparing the probability distribution of the acceleration data with the probability distribution of the reference signal stored in the memory, determining whether the obtained KLD output value is less than the KLD reference value, and the obtained KLD output value is less than the KLD reference value. , can be set to be recognized as a wheelchair pushing motion.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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. .
  • 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.
  • 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.
  • FIG. 5 is a flowchart 500 illustrating a method of operating a wearable device according to various embodiments.
  • a processor eg, processor 120 of FIG. 1
  • a wearable device eg, wearable device 101 of FIG. 1
  • an acceleration sensor eg, FIG. Acceleration data (or acceleration value, acceleration sensed value) may be measured using the inertial sensor 150 of 1). Acceleration characteristics according to the pushing motion of the wheelchair may appear more distinctly in the axis of the inertial sensor 150 that coincides with the direction of the user's fingertip. The axis of the inertial sensor 150 coinciding with the direction of the user's fingertip may vary depending on the position where the inertial sensor 150 is disposed on the wearable device 101 .
  • the processor 120 may identify (or extract) acceleration data of the 'x-axis' that matches the direction of the user's fingertip from among the acceleration data measured by the inertial sensor 150 .
  • the acceleration data measured by the inertial sensor 150 includes acceleration data of the x-axis, y-axis, and z-axis, and the processor 120 does not use the acceleration data of the y-axis and z-axis to recognize the wheelchair pushing motion, and Only axis acceleration data can be used.
  • the axis of the acceleration sensor used for pushing the wheelchair may be the y-axis or the z-axis.
  • the processor 120 may store the measured acceleration data in an acceleration buffer (or a first acceleration buffer).
  • the first acceleration buffer may store acceleration data measured by the inertial sensor 150 in real time.
  • the processor 120 may process (eg, filter) measured acceleration data (eg, raw data) and store the measured acceleration data (eg, raw data) in the first acceleration buffer.
  • the processor 120 may store 120 pieces of acceleration data in the first acceleration buffer in the measured order.
  • the processor 120 may repeatedly perform operations 501 and 503 until acceleration data corresponding to the size of the first acceleration buffer is stored.
  • the processor 120 may perform operation 505 when all acceleration data is stored as much as the size of the first acceleration buffer.
  • operation 501 and operation 503 are separately described in the drawing, the processor 120 performs operation 501 and operation 503 as one operation, and stores the measured acceleration data in the first acceleration buffer whenever acceleration data is measured. can be saved
  • the processor 120 may compare a probability distribution of the measured acceleration data with a probability distribution of the reference signal.
  • the processor 120 may use a probability distribution comparison method, for example, a KLD algorithm, to determine whether the measured acceleration data corresponds to a wheelchair pushing motion.
  • a probability distribution comparison method for example, a KLD algorithm
  • a probability distribution of the defined reference signal may be calculated using a kernel function, and the calculated reference signal may be previously stored in a memory of the wearable device 101 (eg, the memory 110 of FIG. 1 ).
  • the reference signal may be a reference value for determining whether the measured acceleration data corresponds to a wheelchair pushing motion.
  • 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.
  • the processor 120 may obtain the comparison result as a KLD output value.
  • the processor 120 calculates a probability distribution of 120 acceleration data stored in the first acceleration buffer (eg, first to 120th measured acceleration data) and 120 reference signals by using the KLD algorithm.
  • One KLD output value can be obtained by comparing the probability distributions.
  • KL-divergence can be considered as an information entropy difference between the probability distribution of the measured acceleration data and the probability distribution of the reference signal. If the calculated KL-divergence (eg, KLD output value) has a large value, it means that the information entropy difference is large, which may mean that the similarity between the probability distribution of the measured acceleration data and the probability distribution of the reference signal is small.
  • KL-divergence when KL-divergence has a small value, it means that the information entropy difference is small, which means that the probability distribution of the measured acceleration data and the probability distribution of the reference signal have similar probability distributions. Since the KLD algorithm corresponds to a known technology, a detailed description thereof may be omitted.
  • the processor 120 may recognize a wheelchair pushing motion based on the obtained KLD output value. If the obtained KLD output value is less than the KLD reference value, the processor 120 may determine that the measured acceleration data and the reference signal have a high similarity and recognize the wheelchair pushing motion. If the obtained KLD output value is greater than or equal to the KLD reference value, the processor 120 may determine that the measured acceleration data and the reference signal have a small similarity and may not recognize the wheelchair pushing motion.
  • the KLD reference value may mean a threshold for determining the similarity of two probability distributions as KLD.
  • the KLD reference value may be previously stored in the memory 110.
  • the present invention is for recognizing a wheelchair pushing motion, and if it is not a wheelchair pushing motion (eg, walking, running, etc.), it can be determined as an atypical motion. If it is determined in operation 509 that the wheelchair pushing motion is not, the processor 120 may perform an algorithm for obtaining exercise information (eg, number of steps, walking time, running time, etc.) according to the atypical motion. Since operations such as calculating the number of steps, calculating the walking time, or calculating the running time correspond to the prior art, a detailed description thereof may be omitted.
  • a wheelchair pushing motion eg, walking, running, etc.
  • the processor 120 When it is recognized as a wheelchair pushing motion in operation 509, the processor 120 repeatedly performs operations 501 to 509 to obtain a probability distribution of newly measured acceleration data (eg, second to 121st measured acceleration data). It is possible to determine the wheelchair pushing motion by comparing the probability distribution of the reference signal. Also, if the processor 120 recognizes the wheelchair pushing motion, the processor 120 may perform the operation of FIG. 10 to count the number of times of the wheelchair pushing motion.
  • FIG. 6 is a diagram illustrating an example of storing acceleration data in an acceleration buffer according to time according to various embodiments.
  • a processor eg, processor 120 of FIG. 1 of a wearable device (eg, wearable device 101 of FIG. 1 ) of various embodiments includes an acceleration sensor (eg, inertial sensor of FIG. 1 ). (150) may be used to measure acceleration data (or acceleration value or acceleration sensing value).
  • the processor 120 stores acceleration data measured in real time according to a time sequence (eg, time index 601) in an acceleration buffer (or first acceleration buffer) 603. can For example, in the time index 601, the first acceleration data measured at the first time (1) is stored in the acceleration buffer 603, and the second acceleration data measured at the second time (2) is stored in the acceleration buffer 601.
  • the processor 120 continues to measure and store acceleration data in the acceleration buffer 603 until the acceleration data is stored as much as the size of the acceleration buffer 603 (eg, 120), and stores the acceleration data as much as the size of the acceleration buffer 603.
  • a first KLD output value may be obtained by comparing a probability distribution of acceleration data (eg, first to 120th acceleration data) stored in the acceleration buffer with a probability distribution of the reference signal.
  • the 121st acceleration data is stored in the acceleration buffer 603 according to the 121st new time index 601, and the processor 120 stores the acceleration data stored in the acceleration buffer (eg, the second A second KLD output value may be obtained by comparing the probability distribution of the acceleration data to the 121st acceleration data) with the probability distribution of the reference signal. Then, when the time index 601 is the 122nd, the 122nd acceleration data is stored in the acceleration buffer 603, and the processor 120 stores the acceleration data stored in the acceleration buffer (eg, the third acceleration data to the 122nd acceleration data). A third KLD output value can be obtained by comparing the probability distribution with the probability distribution of the reference signal.
  • the processor 120 stores new acceleration data in the acceleration buffer 601 according to the sampling time of the inertial sensor 150, and the acceleration buffer 601 can be continuously updated. For example, if acceleration data is sampled at 100 Hz, each time acceleration data is measured, the acceleration buffer 601 may store the latest acceleration data, remove the oldest acceleration data, and continue updating.
  • FIG. 7 is a flowchart 700 illustrating a method of recognizing a wheelchair pushing motion of a wearable device according to various embodiments.
  • a processor eg, the processor 120 of FIG. 1 of a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments generates a first acceleration buffer (eg, the wearable device 101 of FIG. 1 ).
  • It may be determined whether acceleration data is stored as much as the size of the acceleration buffer 603 in FIG. 6 .
  • acceleration data measured in real time as much as the magnitude of the reference signal may be required.
  • the processor 120 may determine the size of the first acceleration buffer by the size of the reference signal.
  • the size of the first acceleration buffer may also be set to 100, and if the size of the reference signal is 120, the size of the first acceleration buffer may also be set to 120.
  • the processor 120 may perform operation 703 when acceleration data equal to the size of the first acceleration buffer is stored, and return to operation 501 of FIG. 5 when acceleration data is not stored equal to the size of the first acceleration buffer. .
  • the processor 120 may repeatedly perform an operation of measuring acceleration data and storing the measured acceleration data in the first acceleration buffer.
  • the processor 120 may repeatedly perform an operation of measuring acceleration data and storing the measured acceleration data in the first acceleration buffer until acceleration data equal to the size of the first acceleration buffer is stored.
  • the processor 120 may calculate KLD and identify the acceleration data.
  • the processor 120 uses the KLD algorithm to determine the probability distribution of the acceleration data (eg, from the first acceleration data to the 120th acceleration data) stored in the first acceleration buffer and the reference signal stored in the memory (eg, the memory 110 of FIG. 1).
  • KLD can be calculated by comparing the probability distributions of (120 reference signals).
  • the calculated comparison value may be a KLD output value.
  • the processor 120 may identify acceleration data last stored in the first acceleration buffer.
  • operations 705 to 709 may be performed simultaneously with operations 706 to 710 .
  • the processor 120 may recognize the wheelchair pushing motion using the KLD output value, but may further use the KLD average value or acceleration variance value to increase the accuracy of the wheelchair pushing motion. To this end, the processor 120 may further perform the operation of FIG. 7 . First, the operation of calculating the KLD average value will be described. The present invention is not limited by the description.
  • the processor 120 may store the KLD output value in a KLD buffer.
  • the KLD output value may be calculated and stored in the KLD buffer whenever the first acceleration buffer is updated.
  • the size of the KLD buffer may be the same as or different from the size of the first acceleration buffer. For example, the size of the KLD buffer may be larger than the size of the first acceleration buffer. When the size of the first acceleration buffer is 100, the size of the KLD buffer may be 120. Alternatively, when the size of the first acceleration buffer is 120, the size of the KLD buffer may be 150.
  • the processor 120 may determine whether as many KLD output values as the size of the KLD buffer are stored.
  • the processor 120 may perform operation 703 to obtain a first KLD output value.
  • the processor 120 may store the obtained first KLD output value in the KLD buffer, and determine whether as many KLD output values are stored as the size of the KLD buffer.
  • the processor 120 may perform operation 709 when the KLD output value is stored as much as the size of the KLD buffer, and perform operation 721 when the KLD output value is not stored as much as the size of the KLD buffer.
  • the processor 120 measures new acceleration data (eg, 121st acceleration data) and stores the measured acceleration data in the first acceleration buffer. can If operation 721 is performed, the processor 120 returns to operation 703 and compares the probability distribution of the acceleration data (eg, the second acceleration data to the 121st acceleration data) stored in the first acceleration buffer with the probability distribution of the reference signal. A second KLD output value can be obtained. After performing step 703, the processor 120 may perform step 705 to store the obtained second KLD output value in the KLD buffer, and perform step 707 to determine whether KLD output values corresponding to the size of the KLD buffer are stored. . The processor 120 may repeatedly perform operations 703, 705, 707, and 721 until KLD output values corresponding to the size of the KLD buffer are stored.
  • new acceleration data eg, 121st acceleration data
  • the processor 120 returns to operation 703 and compares the probability distribution of the acceleration data (eg, the second acceleration data to the 121st acceleration data) stored in the first acceleration buffer with the probability distribution of the reference signal
  • the processor 120 may calculate a KLD average value based on the KLD output values.
  • the processor 120 may calculate an average value of 150 KLD output values.
  • the processor 120 may perform operation 711 after calculating the KLD average value.
  • the processor 120 may store the identified acceleration data in a second acceleration buffer. Similar to the first acceleration buffer, acceleration data may be stored in the second acceleration buffer. The difference is that after storing as much as the size of the first acceleration buffer, the last acceleration data stored in the first acceleration buffer may be stored in the second acceleration buffer. When acceleration data is stored as much as the size of the first acceleration buffer (eg, 120), the 120th acceleration data may be the last acceleration data stored in the first acceleration buffer. The processor 120 may identify the last acceleration data stored in the first acceleration buffer in operation 703 and store the identified acceleration data in the second acceleration buffer.
  • the processor 120 may determine whether acceleration data is stored as much as the size of the second acceleration buffer.
  • the size of the second acceleration buffer may be the same as or different from the size of the first acceleration buffer or the size of the KLD buffer.
  • the size of the second acceleration buffer may be greater than the size of the first acceleration buffer and the same as the size of the KLD buffer.
  • the size of the first acceleration buffer is 100
  • the size of the second acceleration buffer may be 120.
  • the size of the second acceleration buffer may be 150.
  • the processor 120 may perform operation 710 when acceleration data equal to the size of the second acceleration buffer is stored, and perform operation 722 when acceleration data is not stored equal to the size of the second acceleration buffer. there is.
  • the processor 120 measures new acceleration data (eg, 121st acceleration data) and converts the measured acceleration data to the first acceleration data. can be stored in a buffer. Operation 722 may be the same as or similar to operation 721 . After performing operation 722, the processor 120 may return to operation 703 to identify the last acceleration data (eg, 121st acceleration data) stored in the first acceleration buffer. After performing step 703, the processor 120 performs operation 706 to store the identified acceleration data in the second acceleration buffer, and performs operation 708 to determine whether acceleration data corresponding to the size of the second acceleration buffer is stored. can judge The processor 120 may repeatedly perform operations 703, 706, 708, and 722 until acceleration data corresponding to the size of the second acceleration buffer is stored.
  • new acceleration data eg, 121st acceleration data
  • Operation 722 may be the same as or similar to operation 721 .
  • the processor 120 may return to operation 703 to identify the last acceleration data (eg, 121st acceleration data) stored in the first acceleration buffer.
  • the processor 120 performs operation
  • the processor 120 may calculate an acceleration variance value based on the acceleration data.
  • the processor 120 may calculate variance values of 150 acceleration data.
  • the processor 120 may perform operation 711 after calculating the acceleration dispersion value.
  • the processor 120 may determine whether or not a set condition is met.
  • the set condition may include at least one of a KLD output value less than a KLD reference value, a KLD average value less than a KLD average threshold value, and an acceleration variance value exceeding a variance threshold value.
  • the processor 120 may determine that the set condition is satisfied.
  • the processor 120 determines the set conditions when the KLD output value is less than the KLD reference value, the KLD average value calculated in operation 709 is less than the KLD average threshold value, and the acceleration variance value calculated in operation 710 exceeds the variance threshold value. can be judged to be relevant.
  • the processor 120 may perform operation 713 when the set conditions are met, and perform operation 715 when the set conditions are not met.
  • the processor 120 may recognize (or determine) the wheelchair pushing motion.
  • the processor 120 may repeatedly perform operations 701 to 711 to determine whether the pushing motion of the wheelchair is continuously performed. Also, if the processor 120 recognizes the wheelchair pushing motion, the processor 120 may perform the operation of FIG. 10 to count the number of times of the wheelchair pushing motion.
  • the processor 120 may determine that the pushing motion is not the wheelchair.
  • the processor 120 determines whether the KLD output value is greater than or equal to the KLD reference value, the KLD average value calculated in operation 709 is greater than or equal to the KLD average threshold value, or the acceleration variance value calculated in operation 710 is less than or equal to the variance threshold. It may be determined that the set conditions are not met. When the KLD output value, the KLD average value, or the acceleration variance value does not correspond to any of the set conditions, the processor 120 may determine that the wheelchair pushing motion is not. The processor 120 may determine that the motion other than the wheelchair pushing motion is an atypical motion such as walking or running.
  • the processor 120 may perform an algorithm for acquiring exercise information (eg, walking time, number of steps, running time, etc.) according to the atypical motion. Since operations such as calculating the number of steps, calculating the walking time, or calculating the running time correspond to the prior art, a detailed description thereof may be omitted.
  • exercise information eg, walking time, number of steps, running time, etc.
  • FIGS. 8A to 8C are diagrams illustrating an example of utilizing a buffer included in a wearable device according to various embodiments.
  • a processor eg, the processor 120 of FIG. 1 of a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments includes an acceleration sensor (eg, the inertial sensor of FIG. 1 ). (150) may be used to measure acceleration data (or acceleration value or acceleration sensing value).
  • the processor 120 may store acceleration data measured in real time according to a time sequence (eg, the time index 601) in a first acceleration buffer (eg, the acceleration buffer 603 of FIG. 6).
  • the size of the first acceleration buffer 603 may be set equal to the size of the reference signal stored in the memory of the wearable device 101 (eg, the memory 110 of FIG. 1 ).
  • the size of the first acceleration buffer 603 is described as '120', but the present invention is not limited by the description.
  • the first acceleration data measured at the first time (1) is stored in the first acceleration buffer 603
  • the second acceleration data measured at the second time (2) is stored in the first acceleration buffer ( 601) can be stored.
  • the processor 120 may continuously measure and store acceleration data in the first acceleration buffer 603 until the acceleration data is stored as much as the size of the first acceleration buffer 603 (eg, 120).
  • the processor 120 converts the probability distribution of the acceleration data stored in the first acceleration buffer 603 (eg, the first acceleration data to the 120th acceleration data) into a reference signal.
  • the first KLD output value 811 can be obtained by comparing with the probability distribution of .
  • the processor 120 may determine whether it is a wheelchair pushing motion based on the first KLD output value 811 .
  • the processor 120 may further use the KLD average value or acceleration variance value in order to more accurately determine whether the motion is a wheelchair pushing motion.
  • the processor 120 obtains the first KLD output value 811
  • the first KLD output value 811 is stored in the KLD buffer 801
  • the last acceleration data stored in the first acceleration buffer 603 (eg, 120 th acceleration data) may be stored in the second acceleration buffer 803 .
  • the size of the KLD buffer 801 may be the same as or different from the size of the first acceleration buffer 603 or the second acceleration buffer 803 .
  • the size of the KLD buffer 801 or the size of the second acceleration buffer 803 is 150, which is the same and may be different from that of the first acceleration buffer 603.
  • the present invention is not limited by the description.
  • the processor 120 stores the newly measured acceleration data (eg, 121st acceleration data) in the first acceleration buffer 603, and stores the acceleration data (eg, second acceleration data) stored in the first acceleration buffer 603.
  • the second KLD output value may be obtained by comparing the probability distribution of the 121st acceleration data) with the probability distribution of the reference signal.
  • the processor 120 obtains the second KLD output value
  • the second KLD output value is stored in the KLD buffer 801
  • the last acceleration data (eg, the 121st acceleration data) stored in the first acceleration buffer 603 is stored in the second acceleration buffer. (803).
  • the processor 120 stores the 269th acceleration data measured at the time when the time index 601 is the 269th in the first acceleration buffer 603, and stores the acceleration data stored in the first acceleration buffer 603.
  • the 150th KLD output value 817 may be obtained by comparing the probability distribution of the data (eg, the 150th acceleration data to the 269th acceleration data) with the probability distribution of the reference signal.
  • the processor 120 obtains the 150th KLD output value 817, it stores the 150th KLD output value 817 in the KLD buffer 801, and stores the last acceleration data stored in the first acceleration buffer 603 (eg, the 269th KLD output value 817).
  • acceleration data may be stored in the second acceleration buffer 803 .
  • the processor 120 may calculate the first KLD average value 813 based on the KLD output value stored in the KLD buffer 801.
  • acceleration data eg, 120th to 269th acceleration data
  • the processor 120 stores the data stored in the second acceleration buffer 803.
  • a first acceleration variance value 815 may be calculated based on the acceleration data.
  • the processor 120 may perform motion classification 830 based on at least one of the 150th KLD output value 817 , the first KLD average value 813 , and the first acceleration variance value 815 .
  • the motion classification 830 may determine (or classify) a typical motion or an irregular motion.
  • the standard motion may include a wheelchair pushing motion, and the atypical motion may include all motions (eg, walking, number of steps) except for the wheelchair pushing motion.
  • the processor 120 may determine the wheelchair pushing motion in the motion classification 830.
  • the processor 120 may determine that the wheelchair pushing motion is not the motion classification 830 .
  • the processor 120 determines that the 150th KLD output value 817 is less than the KLD reference value, the first KLD average value 813 is less than the KLD average threshold value, and the first acceleration variance value 815 exceeds the variance threshold value, In the motion classification 830, it may be determined as a wheelchair pushing motion.
  • the processor 120 determines at least one of the fact that the 150th KLD output value 817 is greater than or equal to the KLD reference value, the first KLD average value 813 is greater than or equal to the KLD average threshold value, or the first acceleration variance value 815 is less than or equal to the variance threshold value. If applicable, it may be determined that the motion classification 830 is not a wheelchair pushing motion.
  • the processor 120 stores the 270th acceleration data measured at the time when the time index 601 is the 270th in the first acceleration buffer 603, and stores the acceleration data stored in the first acceleration buffer 603.
  • the 151st KLD output value 831 may be obtained by comparing the probability distribution of the data (eg, the 151st acceleration data to the 270th acceleration data) with the probability distribution of the reference signal.
  • the processor 120 obtains the 151st KLD output value 831, it stores the 151st KLD output value 831 in the KLD buffer 801, and stores the last acceleration data stored in the first acceleration buffer 603 (eg, the 270th KLD output value 831). acceleration data) may be stored in the second acceleration buffer 803 .
  • the processor 120 may calculate the second KLD average value 833 based on the KLD output value stored in the KLD buffer 801.
  • the processor 120 stores the acceleration data stored in the second acceleration buffer 803 (eg, the 121st acceleration data to the 270th acceleration data). Data), the second acceleration variance value 835 may be calculated.
  • the processor 120 may perform motion classification 850 based on at least one of the 151st KLD output value 831 , the second KLD average value 833 , and the second acceleration variance value 835 . For example, if the 151st KLD output value 831 corresponds to less than the KLD reference value, the processor 120 may determine the wheelchair pushing motion in the motion classification 850. When the 151st KLD output value 831 is equal to or greater than the KLD reference value, the processor 120 may determine that the wheelchair pushing motion is not the motion classification 850 .
  • the processor 120 determines that the 151st KLD output value 831 is less than the KLD reference value, the second KLD average value 833 is less than the KLD average threshold value, and the second acceleration variance value 835 exceeds the variance threshold value, In the motion classification 850, it may be determined as a wheelchair pushing motion. The processor 120 determines at least one of the fact that the 151st KLD output value 831 is greater than or equal to the KLD reference value, the second KLD average value 833 is greater than or equal to the KLD average threshold value, or the second acceleration variance value 835 is less than or equal to the variance threshold value. If applicable, it may be determined that the motion classification 850 is not a wheelchair pushing motion.
  • FIG. 9 is a diagram illustrating an example of classifying motion based on acceleration data in a wearable device according to various embodiments.
  • a processor eg, the processor 120 of FIG. 1
  • a wearable device eg, the wearable device 101 of FIG. 1
  • method can be used.
  • a kernel function-based density estimation method using a Gaussian function as a kernel function may be used.
  • the first graph 910 may represent acceleration data 911 appearing during a wheelchair pushing motion and acceleration data 913 appearing when not a wheelchair pushing motion (eg, atypical motion).
  • the second graph 930 may indicate a kernel function generation result when a wheelchair pushing motion (eg, a orthopedic motion) is performed.
  • the first signal 933 represents a kernel function estimation result of the reference signal
  • the second signal 931 may mean acceleration data actually measured during a wheelchair pushing motion.
  • the reference signal may refer to acceleration data generated when a wheelchair pushing motion (eg, 1234 in FIG. 4) is performed once. Comparing the first signal 933 and the second signal 931, it can be seen that they have similar characteristics.
  • the third graph 950 may indicate a kernel function generation result when the wheelchair pushing motion is not (eg, atypical motion).
  • a third signal 953 indicates a result of estimating the kernel function of the reference signal, and a fourth signal 951 may mean acceleration data actually measured when the wheelchair is not pushing. Comparing the third signal 953 and the fourth signal 951, it can be seen that they do not have similar characteristics.
  • 10 is a flowchart 1000 illustrating a method of counting a wheelchair pushing motion of a wearable device according to various embodiments. 10 may be performed after being recognized as a wheelchair pushing motion by FIG. 5 or 7 .
  • a processor eg, processor 120 of FIG. 1 of a wearable device (eg, wearable device 101 of FIG. 1 ) sets a second acceleration buffer (eg, processor 120 of FIG. 1 ).
  • New acceleration data may be stored in the second acceleration buffer 803 of FIGS. 8A to 8C.
  • the processor 120 may determine whether 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.
  • acceleration data corresponding to the size of the second acceleration buffer 803 may be stored.
  • the processor 120 may store new acceleration data in the second acceleration buffer 803 .
  • the 270th acceleration data may be stored as new acceleration data in the second acceleration buffer 803.
  • the processor 120 may set a window for the set number of acceleration data. For example, the processor 120 may set one window to five acceleration data and assign (or allocate) a window index.
  • windows are set for 5 acceleration data, but windows may be set for more than 5 acceleration data (eg, 7, 9, 11). Examples are only for helping understanding of the invention, and the present invention is not limited by the examples.
  • the second acceleration buffer 803 may store 121st to 270th acceleration data.
  • the processor 120 may set the first window index to the 121st to 125th acceleration data.
  • the processor 120 may set the second window index to the 122nd to 126th acceleration data.
  • the processor 120 may sequentially set windows for acceleration data stored in the second acceleration buffer 803 in a window sliding manner.
  • the processor 120 may detect an acceleration peak within the window.
  • the processor 120 defines the five acceleration data included in the window as d(1), d(2), d(3), d(4), and d(5), respectively, through the following determination formula. Acceleration peaks can be determined.
  • the processor 120 may determine that an acceleration peak within the window is detected, and when the Condition value is 0, it may be determined that an acceleration peak within the window is not detected.
  • the processor 120 may detect an acceleration peak based on third acceleration data (eg, d(3)), which is an intermediate value within the window.
  • the above determination method is a method of detecting the minimum value of acceleration data as a peak, and this may be because the axis of the inertial sensor 150 used when determining a wheelchair pushing motion (e.g., 1234 in FIG. 4) is set to the x-axis.
  • the x-axis of the inertial sensor 150 performs an operation (e.g., 3) to return to the wheelchair after the wheelchair pushing operation, the direction of the user's hand changes to the opposite direction of the pushing, and a large acceleration is generated to more easily detect the peak. This could be possible
  • the axis of the inertial sensor 150 coincident with the direction of the user's fingertip may vary depending on the location where the inertial sensor 150 is disposed on the wearable device 101 .
  • the axis of the acceleration sensor corresponding to the direction of the user's fingertip is set as the 'x-axis', and the pushing motion of the wheelchair can be recognized based on the acceleration data of the x-axis.
  • the axis of the acceleration sensor used for pushing the wheelchair may be the y-axis or the z-axis according to the position where the acceleration sensor is disposed in the wearable device 101 .
  • the processor 120 may detect an acceleration peak using a maximum value of acceleration data.
  • the processor 120 may determine that an acceleration peak is detected and perform operation 1007. In addition, when no acceleration peak is detected within the window (Condition value is 0), the processor 120 may determine that no acceleration peak is detected and perform operation 1006 .
  • the processor 120 may add a window index. If the window index is 1 (eg, the first window index) when operation 1003 is first performed, the window index may become 2 (eg, the second window index) when operation 1006 is performed. Processor 120 may perform operation 1006 and return to operation 1003 . When returning to operation 1003, the processor 120 may update the window and set a window corresponding to the added window index to the set number of acceleration data. For example, the processor 120 may set the second window index to the 122nd to 126th acceleration data.
  • the window index may become 3 (eg, the third window index) when operation 1006 is performed.
  • Processor 120 may perform operation 1006 and return to operation 1003 .
  • the processor 120 may set a window for the set number of acceleration data. For example, the processor 120 may set the third window index to the 123rd to 127th acceleration data.
  • the processor 120 may return (or identify) acceleration data detected as a peak. For example, the processor 120 may return the acceleration data having the minimum value among the 121st to 125th acceleration data.
  • the processor 120 may detect a minimum value of acceleration data stored in the second acceleration buffer 803 .
  • the detection of the minimum value of the acceleration data may be because acceleration data having the minimum value is detected as an acceleration peak when the acceleration peak is detected in operation 1005 .
  • the processor 120 may detect the maximum value of the acceleration data stored in the second acceleration buffer 803 .
  • the minimum value of acceleration data is detected, but the present invention is not limited by the description.
  • a number of acceleration peaks may be detected due to the user's hand motion and the noise of the inertial sensor 150 .
  • the situation that receives the greatest acceleration may be the part where the direction of the hands changes for the motion to return to the wheelchair pushing motion (e.g., 3) after the hand pushes off the handle of the wheelchair.
  • the threshold may be considered.
  • fixing the threshold to a constant may cause a peak detection error (or error) because the magnitude of the acceleration data varies according to the strength of the wheelchair pushing motion.
  • the processor 120 may use an adaptive threshold to reduce a peak detection error occurring when the user performs a wheelchair pushing motion.
  • the processor 120 may select (or determine) an adaptive threshold based on the minimum value of the acceleration data.
  • the processor 120 may determine a set reference value (eg, acceleration data corresponding to 10% of the minimum value) of the minimum value of acceleration data stored in the second acceleration buffer 803 as an adaptive threshold.
  • the processor 120 may set an adaptive threshold based on the minimum value of the acceleration data because it detects the acceleration data having the minimum value as the acceleration peak.
  • the set reference value of the maximum value of the acceleration data stored in the second acceleration buffer 803 (e.g., corresponds to 90% of the maximum value). acceleration data) may be determined as an adaptive threshold.
  • the new acceleration data is stored in the second acceleration buffer 803, so that the adaptive threshold can be continuously changed.
  • the adaptive threshold may be dynamically changed because the adaptive threshold is determined based on the acceleration data stored in the second acceleration buffer 803.
  • the processor 120 may determine the adaptive threshold whenever a new window is updated. When an acceleration peak is detected in a new window, operations 1007 to 1011 are performed, so that the processor 120 can determine the adaptive threshold every time a new window is updated.
  • a first adaptive threshold determined when operations 1009 and 1011 are first performed may be the same as or different from a second adaptive threshold determined when operations 1009 and 1011 are performed a second time.
  • the processor 120 may determine whether the returned acceleration data is less than the adaptive threshold. Since the adaptive threshold is determined based on the “minimum value” of the acceleration data in operations 1009 and 1011, the processor 120 may determine whether the returned acceleration data is less than the adaptive threshold. If the adaptive threshold is determined based on the “maximum value” of the acceleration data, the processor 120 may determine whether the returned acceleration data exceeds the adaptive threshold.
  • the returned acceleration data may be obtained in operation 1007 and the adaptive threshold may be obtained in operation 1011 .
  • the processor 120 may perform operation 1015 when the returned acceleration data is less than the adaptive threshold, and may perform operation 1019 when the returned acceleration data is greater than or equal to the adaptive threshold.
  • the processor 120 may determine whether a difference (or interval) between window indices exceeds an index threshold.
  • the window index may be a window index given in operation 1003. It may take a certain amount of time to perform the wheelchair pushing motion (eg, 1234 in FIG. 4 ) once. Even if the wheelchair pushing motion is performed quickly or slowly, it may take a certain amount of time to perform one wheelchair pushing motion.
  • the index threshold may be used to reduce count errors when counting wheelchair pushing motions.
  • the processor 120 may count the wheelchair pushing motion only when the interval between the window index determined as the previous wheelchair pushing motion and the window index determined as the subsequent wheelchair pushing motion exceeds the index threshold.
  • the index threshold may be previously stored in the memory of the wearable device 101 (eg, the memory 110 of FIG. 1 ). The index threshold may be set such that an interval between two window indices in which an acceleration peak is detected is determined as one wheelchair pushing motion.
  • the processor 120 performs one wheelchair pushing motion. may not be recognized as a detected acceleration peak.
  • the processor 120 converts the wheel chair pushing motion to the detected acceleration peak. Recognizable.
  • the processor 120 performs operation 1017 when the difference between the two window indices detected as the acceleration peak exceeds the index threshold, and when the difference between the two window indices detected as the acceleration peak is less than or equal to the index threshold, the processor 120 performs operation 1017. 1019 can be done.
  • the processor 120 may count the wheelchair pushing motion.
  • the processor 120 may count the wheelchair pushing motion once every time operations 1001 to 1017 are performed.
  • the processor 120 may store the counted number in the memory 110 and display the counted number on a display (eg, the display module 140 of FIG. 1 ).
  • the processor 120 may calculate the wheelchair pushing time based on the number of times or time in which the wheelchair pushing motion is counted.
  • the processor 120 may provide the number of times of pushing the wheelchair or the time of pushing the wheelchair as activity information (or exercise information).
  • the processor 120 may analyze and provide a movement pattern of the user based on the wheelchair pushing motion.
  • the processor 120 may provide a wheelchair mode, such as a walking mode or a running mode, as an exercise mode.
  • a wheelchair mode such as a walking mode or a running mode
  • the processor 120 performs the operation of FIG. 5 or 7 to recognize the wheelchair pushing motion, and when recognized as a wheelchair pushing motion, the processor 120 performs the motion of FIG. 10 to push the wheelchair
  • the number of operations can be counted.
  • the processor 120 may calculate calorie consumption based on the number of wheelchair pushing motions and provide the calculated calorie consumption to the user. For example, the processor 120 may calculate calories consumed during the day by adding a basal metabolic rate or additional calories each time the number of wheelchair pushing motions is counted. The processor 120 may calculate the calorie consumption based on the speed of the wheelchair pushing motion. The processor 120 calculates additional calories consumed when the speed of the wheelchair pushing motion is fast (eg, exceeds a speed threshold), and calculates additional calories consumed when the speed of the wheelchair pushing motion is slow (eg, below the speed threshold). may not be calculated. The processor 120 may add the additional calories burned to the calories burned. Alternatively, the processor 120 may recognize an active wheelchair pushing motion when the speed of the wheelchair pushing motion is fast, and recognize a normal wheelchair pushing motion when the speed of the wheelchair pushing motion is slow.
  • the processor 120 may output a guide to exercise when the wheelchair pushing motion is not recognized for a set period of time (eg, 3 days, 7 days, etc.).
  • the inertial sensor 150 can measure acceleration data 24 hours a day with low power.
  • the processor 120 may determine whether the wheelchair pushing motion is recognized at set intervals (eg, 1 day, 3 days) based on the measured acceleration data.
  • the guide may include at least one of text, image, video, or voice.
  • the guide may display a user interface on the display module 140 or output a voice through a speaker (eg, the speaker 175 of FIG. 1 ).
  • the processor 120 may provide a user interface for setting a target value for the number of pushing the wheelchair.
  • the user may set the number of times of pushing the wheelchair (eg, 100 times or 200 times) through the user interface similarly to the target number of steps.
  • the processor 120 may count the wheelchair pushing motion once in operation 1017 and then return to operation 1001 .
  • the processor 120 may count the wheelchair pushing motion by repeatedly performing operations 1001 to 1017 .
  • the processor 120 may not count the wheelchair pushing motion in operation 1019.
  • the processor 120 may return to operation 1001 without counting the wheelchair pushing motion.
  • the processor 120 may perform the operation of FIG. 5 or 7 while performing FIG. 10 to recognize the wheelchair pushing motion. If the operation of FIG. 5 or 7 is not recognized as a wheelchair pushing motion, the processor 120 may not perform the operation of FIG. 10 .
  • the processor 120 may perform the operation of FIG. 10 when the operation of FIG. 5 or 7 is recognized as a wheelchair pushing motion.
  • the processor 120 may stop the operation of FIG. 10 and perform the operation of FIG. 5 or 7. can
  • FIG. 11 is a diagram illustrating an example of setting a window for acceleration data in a wearable device according to various embodiments.
  • a processor eg, the processor 120 of FIG. 1 of a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments generates a second acceleration buffer (eg, FIGS. 8A to 100 ).
  • a window may be set for acceleration data stored in the second acceleration buffer 803 of FIG. 8C.
  • the window setting 1110 may be set in a window sliding manner.
  • the size of the second acceleration buffer 803 is 150, and 150 pieces of acceleration data can be stored in the second acceleration buffer 803.
  • the processor 120 sets the first to fifth acceleration data stored in the second acceleration buffer 803 as the first window index 1111, and the second acceleration data to the fifth acceleration data.
  • Up to 6 acceleration data is set as the 2nd window index 1112, from the 3rd acceleration data to the 7th acceleration data is set as the 3rd window index 1113, from the 4th acceleration data to the 8th acceleration data is set as the 4th window index (1114) can be set.
  • the processor 120 may set the first window index 1111 and perform operation 1005 of FIG. 10 .
  • the processor 120 may set the second window index 1112 in operation 1003 by adding one window index. there is.
  • the processor 120 adds one window index to obtain the third window index 1113 in operation 1003. can be set
  • the first window index 1111 includes first acceleration data 1131, second acceleration data 1133, third acceleration data 1135, fourth acceleration data 1137, and fifth acceleration data 1137.
  • Acceleration data 1139 may be included.
  • the processor 120 determines whether the third acceleration data 1135 is less than the first acceleration data 1131 or the third acceleration data 1135 is less than the second acceleration data 1133 according to the determination method described with reference to FIG. 10 . , It may be determined whether the third acceleration data 1135 is less than the fourth acceleration data 1137 or whether the third acceleration data 1135 is less than the fifth acceleration data 1139.
  • the third acceleration data 1135 is less than the first acceleration data 1131, the second acceleration data 1133, the fourth acceleration data 1137, and the fifth acceleration data 1139 (eg, Condition If the value is 1), it can be determined that an acceleration peak within the first window index 1111 is detected.
  • the third acceleration data 1135 is greater than or equal to the first acceleration data 1131, the second acceleration data 1133, the fourth acceleration data 1137, or the fifth acceleration data 1139 (eg, Condition If the value is 0), it may be determined that the acceleration peak within the first window index 1111 is not detected.
  • the graph 1130 an example in which an acceleration peak in the first window index 1111 is not detected may be shown.
  • the processor 120 may set a window for the second window index 1112, the third window index 1113, or the fourth window index 1114 in the same way, and detect an acceleration peak within the window.
  • FIG. 12 is a diagram illustrating an example of selecting an adaptive threshold in a wearable device according to various embodiments.
  • a first graph 1210 and a second graph 1230 show a second acceleration buffer (eg, the second acceleration buffer of FIGS. 8A to 8C ) of a wearable device (eg, the wearable device 101 of FIG. 1 ).
  • a second acceleration buffer eg, the second acceleration buffer of FIGS. 8A to 8C
  • An example in which an adaptive threshold is determined based on a minimum value of acceleration data stored in the acceleration buffer 803 may be shown.
  • the wheelchair pushing motion e.g., 1234 in FIG. 4
  • a number of acceleration peaks may be detected due to the user's hand movement type and the noise of the acceleration sensor (e.g., the inertial sensor 150 in FIG. 1).
  • the situation that receives the greatest acceleration may be the part where the direction of the hands changes for the motion to return to the wheelchair pushing motion (e.g., 3) after the hand pushes off the handle of the wheelchair.
  • the threshold is fixed at one value, an acceleration peak detection error may occur because the magnitude of acceleration data varies depending on the intensity of the wheelchair pushing motion.
  • a processor of the wearable device 101 eg, the processor 120 of FIG. 1 ) may use an adaptive threshold to reduce a peak detection error generated when a user performs a wheelchair pushing motion.
  • the first signal 1211 means acceleration data stored in the second acceleration buffer 803, and the second signal 1213 is based on the acceleration data stored in the second acceleration buffer 803. It shows the adaptive threshold determined by
  • the second graph 1230 may be an enlarged view of a certain section of the first graph 1210 .
  • the third signal 1231 means acceleration data stored in the second acceleration buffer 803, and the fourth signal 1233 is based on the acceleration data stored in the second acceleration buffer 803. It shows the adaptive threshold determined by
  • the peak (eg, upper end) of the adaptive threshold is continuously changed.
  • the new acceleration data is stored in the second acceleration buffer 803, so that the adaptive threshold can be continuously changed.
  • the adaptive threshold may be dynamically changed because the adaptive threshold is determined based on the acceleration data stored in the second acceleration buffer 803.
  • FIG. 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.
  • a first graph 1310 and a second graph 1330 are provided to prevent a count error of a wheelchair pushing motion based on whether a difference between two window indices detected as an acceleration peak exceeds an index threshold.
  • a processor eg, the processor 120 of FIG. 1
  • a wearable device eg, the wearable device 101 of FIG. 1
  • the difference or interval between the first window index 1311 and the second window index 1313 is the index threshold. It can be judged whether it exceeds . If the interval between the two window indices detected as the acceleration peak is too small, it may be difficult for the processor 120 to see that a single wheelchair pushing motion has been performed.
  • the index threshold may be previously stored in the memory of the wearable device 101 (eg, the memory 110 of FIG. 1 ).
  • the index threshold may be set such that an interval between two window indices in which an acceleration peak is detected is determined as one wheelchair pushing motion. For example, if the difference between the first window index 1311 and the second window index 1313 is less than or equal to an index threshold, the processor 120 determines that the wheelchair pushing motion is detected as an error, and does not count it as the number of times of the wheelchair pushing motion. may not be The processor 120 determines the difference between the first window index 1311 and the third window index 1315 when the third window index 1315 in which the acceleration peak is detected is detected after the second window index 1313 is detected. It may be determined whether or not exceeds the index threshold. When the difference between the first window index 1311 and the third window index 1315 exceeds an index threshold, the processor 120 may count the number of wheelchair pushing motions (eg, increase the wheelchair pushing motion by one time). .
  • a third graph 1331 before applying the index threshold and a fourth graph 1335 after applying the index threshold may be included.
  • a plurality of window indices eg, the first window index 1353, the second window index 1353, the third window index 1355, the fourth window index 1356, etc.
  • the processor 120 may count the wheelchair pushing motion 4 or more times before applying the index threshold, but may count the wheelchair pushing motion 2 times when the index threshold is applied.
  • FIG. 14 is a diagram illustrating a difference in acceleration data according to movement in a wearable device according to various embodiments.
  • a processor eg, processor 120 of FIG. 1 of a wearable device (eg, wearable device 101 of FIG. 1 ) of various embodiments recognizes a wheelchair pushing motion, and The operation of counting may be repeatedly performed.
  • a first graph 1401 represents signals according to acceleration data and motion classification when a wheelchair pushing motion is performed.
  • the first signal 1410 may represent acceleration data measured by an acceleration sensor (eg, the inertial sensor 150 of FIG. 1 ) of the wearable device.
  • the second signal 1413 indicates a signal according to motion classification, and may be a non-zero constant (eg, 30 in FIG.
  • a circle 1411 may mean that the wheelchair pushing motion is counted.
  • a second graph 1403 represents acceleration data and signals according to motion classification when the wheelchair is not a pushing motion.
  • the third signal 1431 is acceleration data measured by the inertial sensor 150
  • the fourth signal 1433 represents a signal according to motion classification, and may be 0 when not recognized as a wheelchair pushing motion.
  • a third graph 1405 represents signals according to acceleration data and motion classification when a wheelchair pushing motion is performed.
  • the fifth signal 1460 is acceleration data measured by the inertial sensor 150
  • the sixth signal 1463 represents a signal according to motion classification, which is a non-zero constant when recognized as a wheelchair pushing motion, and a wheelchair pushing motion. It can be 0 when it is not recognized as .
  • a circle 1461 may mean that the wheelchair pushing motion is counted.
  • a fourth graph 1407 shows signals according to acceleration data and motion classification when the wheelchair is not a pushing motion.
  • the seventh signal 1471 is acceleration data measured by the inertial sensor 150
  • the eighth signal 1473 indicates a signal according to motion classification, and may be 0 when not recognized as a wheelchair pushing motion.
  • 15 is a diagram illustrating a user interface related to pushing a wheelchair in a wearable device according to various embodiments.
  • a processor eg, the processor 120 of FIG. 1 of a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments counts a wheelchair pushing motion, and calculates the counted number of times. may be displayed on a display (eg, the display module 140 of FIG. 1).
  • the first user interface 1510 may represent an example of providing the number of times of pushing a wheelchair or the time of pushing a wheelchair as activity information (or exercise information).
  • the processor 120 may analyze and provide a movement pattern of the user based on the wheelchair pushing motion.
  • the processor 120 may provide a wheelchair mode, such as a walking mode or a running mode, as an exercise mode.
  • the processor 120 When the wearable device 101 is set to the wheelchair mode, the processor 120 performs the operation of FIG. 5 or 7 to recognize the wheelchair pushing motion, and when recognized as a wheelchair pushing motion, the processor 120 performs the motion of FIG. 10 to push the wheelchair The number of operations can be counted.
  • the processor 120 may calculate calorie consumption based on the number of wheelchair pushing motions and provide the calculated calorie consumption to the user.
  • the second user interface 1530 may include at least one of the number of times of pushing the wheelchair, the time of pushing the wheelchair, and calories burned.
  • the processor 120 may calculate calories consumed during the day by adding a basal metabolic rate or additional calories each time the number of wheelchair pushing motions is counted.
  • the processor 120 may calculate the calorie consumption based on the speed of the wheelchair pushing motion.
  • the processor 120 may output a guide to exercise when the wheelchair pushing motion is not recognized for a set period of time (eg, 3 days, 7 days, etc.).
  • the guide may include at least one of text, image, video, or voice.
  • the guide may display a user interface on the display module 140 or output a voice through a speaker (eg, the speaker 175 of FIG. 1 ).
  • the processor 120 may provide a user interface for setting a target value for the number of pushing the wheelchair.
  • the user may set the number of times of pushing the wheelchair (eg, 100 times or 200 times) through the user interface similarly to the target number of steps.
  • An operating method of a wearable device uses an inertial sensor (eg, the inertial sensor 150 of FIG. 1) included in the wearable device.
  • An operation of measuring acceleration data an operation of storing the measured acceleration data in an acceleration buffer of a memory (eg, memory 110 of FIG.
  • 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.
  • 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.
  • 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
  • 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.
  • 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.
  • 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.
  • a device-readable storage medium eg compact disc read only memory (CD-ROM)
  • an application store eg Play Store TM
  • It can be distributed (eg downloaded or uploaded) online, directly between smart phones.
  • 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.
  • 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.
  • 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.
  • a plurality of components eg modules or programs
  • 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. .
  • 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.

Abstract

Disclosed in various embodiments of the present invention are a method and a device, the device comprising: an inertial sensor; a display; a memory for storing a reference signal; and a processor operatively connected to at least one from among the inertial sensor, the display and the memory, wherein the processor is configured to: measure acceleration data by using the inertial sensor; store the measured acceleration data in an acceleration buffer of the memory; acquire a KLD output value by comparing, through a Kullback-Leivler divergence algorithm, a probability distribution of the measured acceleration data to a probability distribution of a reference signal stored in the memory; determine whether the acquired KLD output value is less than a KLD reference value; and recognize same to be a wheelchair pushing movement if the acquired KLD output value is less than the KLD reference value. Various embodiments are possible.

Description

휠체어와 관련된 운동 정보 산출 방법 및 웨어러블 디바이스Exercise information calculation method and wearable device related to wheelchair
본 발명의 다양한 실시예들은 휠체어와 관련된 운동 정보 산출 방법 및 웨어러블 디바이스에 관하여 개시한다.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은 다양한 실시예들에 따른 웨어러블 디바이스의 블록도이다.1 is a block diagram of a wearable device according to various embodiments.
도 2는 다양한 실시예들에 따른 웨어러블 디바이스의 전면 사시도를 도시한 도면이다.2 is a front perspective view of a wearable device according to various embodiments.
도 3은 다양한 실시예들에 따른 웨어러블 디바이스의 후면 사시도를 도시한 도면이다.3 is a diagram illustrating a rear perspective view of a wearable device according to various embodiments.
도 4는 다양한 실시예들에 따른 휠체어 밀기 동작과 관련된 가속도 데이터를 나타낸 도면이다.4 is a diagram illustrating acceleration data related to a wheelchair pushing motion according to various embodiments.
도 5는 다양한 실시예들에 따른 웨어러블 디바이스의 동작 방법을 도시한 흐름도이다.5 is a flowchart illustrating a method of operating a wearable device according to various embodiments.
도 6은 다양한 실시예들에 따른 시간에 따라 가속도 버퍼에 가속도 데이터를 저장하는 일례를 도시한 도면이다.6 is a diagram illustrating an example of storing acceleration data in an acceleration buffer according to time according to various embodiments.
도 7은 다양한 실시예들에 따른 웨어러블 디바이스의 휠체어 밀기 동작을 인식하는 방법을 도시한 흐름도이다.7 is a flowchart illustrating a method of recognizing a wheelchair pushing motion of a wearable device according to various embodiments.
도 8a 내지 도 8c는 다양한 실시예들에 따른 웨어러블 디바이스에 포함된 버퍼를 활용하는 일례를 도시한 도면들이다.8A to 8C are diagrams illustrating an example of utilizing a buffer included in a wearable device according to various embodiments.
도 9는 다양한 실시예들에 따른 웨어러블 디바이스에서 가속도 데이터에 기반하여 움직임을 분류하는 일례를 도시한 도면이다.9 is a diagram illustrating an example of classifying motion based on acceleration data in a wearable device according to various embodiments.
도 10은 다양한 실시예들에 따른 웨어러블 디바이스의 휠체어 밀기 동작을 카운트하는 방법을 도시한 흐름도이다.10 is a flowchart illustrating a method of counting a wheelchair pushing motion of a wearable device according to various embodiments.
도 11은 다양한 실시예들에 따른 웨어러블 디바이스에서 가속도 데이터에 윈도우를 설정하는 일례를 도시한 도면이다.11 is a diagram illustrating an example of setting a window for acceleration data in a wearable device according to various embodiments.
도 12는 다양한 실시예들에 따른 웨어러블 디바이스에서 적응형 임계치를 선정하는 일례를 도시한 도면이다.12 is a diagram illustrating an example of selecting an adaptive threshold in a wearable device according to various embodiments.
도 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.
도 14는 다양한 실시예들에 따른 웨어러블 디바이스에서 움직임에 따른 가속도 데이터의 차이를 나타낸 도면이다.14 is a diagram illustrating a difference in acceleration data according to movement in a wearable device according to various embodiments.
도 15는 다양한 실시예들에 따른 웨어러블 디바이스에서 휠체어 밀기와 관련된 사용자 인터페이스를 도시한 도면이다.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 wearable device 101 includes a memory 110, a processor 120, an input module 130, a display module 140, an inertial sensor 150, a communication module 160, and a microphone 170. , a speaker 175, a charging module 180, a battery 185, and/or an interface 190. The wearable device 101 may communicate with at least one of an external electronic device or a server through a network (eg, a short-distance wireless communication network or a long-distance wireless communication network). In the wearable device 101, at least one of the components described above may be omitted or one or more other components (eg, a camera module) may be added. The input module 130 and the display module 140 may be integrated into one module (eg, a touch screen).
메모리(110)는 웨어러블 디바이스(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 관성 센서(150))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(110)는, 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 상기 프로그램은 메모리(110)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제, 미들 웨어 또는 어플리케이션을 포함할 수 있다.The memory 110 may store various data used by at least one component of the wearable device 101 (eg, the processor 120 or the inertial sensor 150). The data may include, for example, input data or output data for software (eg, a program) and commands related thereto. The memory 110 may include volatile memory or non-volatile memory. The program may be stored as software in the memory 110 and may include, for example, an operating system, middleware, or applications.
프로세서(120)는 소프트웨어를 실행하여 프로세서(120)에 연결된 웨어러블 디바이스(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 관성 센서(150) 또는 통신 모듈(160))로부터 수신된 명령 또는 데이터를 휘발성 메모리에 저장하고, 휘발성 메모리에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. The processor 120 may execute software to control at least one other component (eg, hardware or software component) of the wearable device 101 connected to the processor 120, and perform various data processing or calculations. can According to one embodiment, as at least part of data processing or operation, the processor 120 stores instructions or data received from other components (eg, the inertial sensor 150 or the communication module 160) in volatile memory and , it can process commands or data stored in volatile memory, and store the resulting data in non-volatile memory. According to one embodiment, the processor 120 may include a main processor (eg, a central processing unit or an application processor) or a secondary processor (eg, a graphics processing unit, a neural processing unit (NPU)) that may operate independently or together therewith. , image signal processor, sensor hub processor, or communication processor).
프로세서(120)는 관성 센서(150)를 이용하여 가속도 데이터(또는 가속도 값, 가속도 센싱값)를 측정하고, 측정된 가속도 데이터를 가속도 버퍼(또는 제1 가속도 버퍼)에 저장하고, 상기 가속도 버퍼에 저장된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포를 비교하고, 상기 비교 결과를 KLD 출력값으로 획득하고, 상기 획득한 KLD 출력값에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 상기 기준 신호는 메모리(110)에 사전에 저장되며, 프로세서(120)는 KLD 알고리즘을 이용하여 상기 측정된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포를 비교할 수 있다. 프로세서(120)는 상기 가속도 버퍼의 크기만큼 가속도 데이터가 저장되었는지 판단하고, 상기 가속도 버퍼의 크기만큼 가속도 데이터가 저장될 때까지 가속도 데이터를 측정하여 측정된 가속도 데이터를 상기가속도 버퍼에 저장하는 동작을 반복 수행할 수 있다. 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 미만인 경우, 상기 휠체어 밀기 동작으로 인식하고, 상기 KLD 출력값이 상기 KLD 기준값 이상인 경우, 상기 휠체어 밀기 동작이 아닌 것으로 인식할 수 있다.The processor 120 measures acceleration data (or an acceleration value or an acceleration sensed value) using the inertial sensor 150, stores the measured acceleration data in an acceleration buffer (or first acceleration buffer), and stores the measured acceleration data in the acceleration buffer. The probability distribution of the stored acceleration data and the probability distribution of the reference signal are compared, the comparison result is obtained as a KLD output value, and the wheelchair pushing motion can be recognized based on the obtained KLD output value. The reference signal is previously stored in the memory 110, and the processor 120 may compare a probability distribution of the measured acceleration data with a probability distribution of the reference signal using a KLD algorithm. The processor 120 determines whether acceleration data equal to the size of the acceleration buffer is stored, measures acceleration data until acceleration data equal to the size of the acceleration buffer is stored, and stores the measured acceleration data in the acceleration buffer. can be repeated. The processor 120 may recognize the wheelchair pushing motion when the KLD output value is less than the KLD reference value, and recognize it as not the wheelchair pushing motion when the KLD output value is greater than or equal to the KLD reference value.
다양한 실시예들에 따르면, 상기 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 프로세서(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 processor 120 may calculate KLD and store the KLD output value in the KLD buffer. The processor 120 may repeatedly perform operations of calculating KLD based on the acceleration data stored in the acceleration buffer and storing the KLD output value in the KLD buffer until KLD output values equal to the size of the KLD buffer are stored. When KLD output values equal to the size of the KLD buffer are stored, the processor 120 may calculate a KLD average value based on the KLD output values stored in the KLD buffer. When acceleration data corresponding to the size of the acceleration buffer is stored, the processor 120 may identify the last acceleration data stored in the acceleration buffer and store the identified acceleration data in a second acceleration buffer. The processor 120 repeatedly performs an operation of identifying the last acceleration data (eg, the latest acceleration data) stored in the acceleration buffer and storing it in the second acceleration buffer until acceleration data equal to the size of the second acceleration buffer is stored. can do. When acceleration data corresponding to the size of the second acceleration buffer is stored, the processor 120 may calculate an acceleration variance value based on the acceleration data stored in the second acceleration buffer.
다양한 실시예들에 따르면, 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 미만이고, 상기 산출한 KLD 평균값이 KLD 평균 임계치 미만이며, 상기 산출한 가속도 분산값이 분산 임계치를 초과하는 경우, 휠체어 밀기 동작으로 인식할 수 있다. 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 이상이거나, 상기 산출한 KLD 평균값이 KLD 평균 임계치 이상이거나, 또는 상기 산출한 가속도 분산값이 분산 임계치 이하인 것 중 적어도 하나에 해당하는 경우, 상기 휠체어 밀기 동작이 아닌 것으로 판단할 수 있다.According to various embodiments, the processor 120 performs a wheelchair pushing operation when the KLD output value is less than the KLD reference value, the calculated KLD average value is less than the KLD average threshold value, and the calculated acceleration variance value exceeds the variance threshold value. can be recognized as The processor 120 performs the wheelchair pushing operation when at least one of the KLD output value is greater than the KLD reference value, the calculated KLD average value is greater than or equal to the KLD average threshold value, and the calculated acceleration variance value is less than or equal to the variance threshold value. It can be judged that this is not the case.
다양한 실시예들에 따르면, 프로세서(120)는 휠체어 밀기 동작으로 인식되면, 상기 제2 가속도 버퍼에 저장된 가속도 데이터 중에서 설정된 개수의 가속도 데이터에 윈도우를 설정할 수 있다. 프로세서(120)는 윈도우 내 가속도 피크(peak)를 검출하고, 윈도우 내 가속도 피크가 검출되는 경우, 피크로 검출된 가속도 데이터를 반환(또는 식별)할 수 있다. 프로세서(120)는 윈도우 내 가속도 피크가 검출되지 않는 경우, 윈도우 인덱스를 추가하여 윈도우를 갱신할 수 있다. 프로세서(120)는 상기 제2 가속도 버퍼에 저장된 가속도 데이터의 최소값을 검출하고, 상기 가속도 데이터의 최소값에 기반하여 적응형 임계치를 선정(또는 결정)할 수 있다. According to various embodiments, the processor 120 may set a window to a set number of acceleration data from among the acceleration data stored in the second acceleration buffer when recognizing the wheelchair pushing motion. The processor 120 may detect an acceleration peak within a window, and return (or identify) acceleration data detected as a peak when an acceleration peak within the window is detected. When an acceleration peak within the window is not detected, the processor 120 may update the window by adding a window index. The processor 120 may detect a minimum value of acceleration data stored in the second acceleration buffer, and select (or determine) an adaptive threshold based on the minimum value of the acceleration data.
다양한 실시예들에 따르면, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인지 여부를 판단하고, 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인 경우, 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는지 여부를 판단할 수 있다. 프로세서(120)는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 인덱스 임계치를 초과하는 경우, 휠체어 밀기 동작의 횟수를 카운트할 수 있다. 프로세서(120)는 상기 반환된 가속도 데이터가 적응형 임계치 이상이거나, 또는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치 이하인 경우, 휠체어 밀기 동작을 카운트하지 않을 수 있다.According to various embodiments, the processor 120 determines whether the returned acceleration data is less than the adaptive threshold, and if the returned acceleration data is less than the adaptive threshold, the two windows detected as acceleration peaks It may be determined whether a difference between indices exceeds an index threshold. The processor 120 may count the number of pushing motions of the wheelchair when a difference between two window indices detected as an acceleration peak exceeds an index threshold. The processor 120 may not count the wheelchair pushing motion when the returned acceleration data is equal to or greater than the adaptive threshold or when a difference between two window indices detected as an acceleration peak is equal to or less than the index threshold.
예를 들어, 웨어러블 디바이스(101)가 메인 프로세서 및 보조 프로세서를 포함하는 경우, 보조 프로세서는 메인 프로세서보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서는 메인 프로세서와 별개로, 또는 그 일부로서 구현될 수 있다. 보조 프로세서는, 예를 들면, 메인 프로세서가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서를 대신하여, 또는 메인 프로세서가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서와 함께, 웨어러블 디바이스의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(140), 관성 센서(150), 또는 통신 모듈(160))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 통신 모듈(160))의 일부로서 구현될 수 있다. For example, when the wearable device 101 includes a main processor and an auxiliary processor, the auxiliary processor may use less power than the main processor or may be set to be specialized for a designated function. A secondary processor may be implemented separately from, or as part of, the main processor. A secondary processor may, for example, perform a wearable device on behalf of the main processor while the main processor is in an inactive (eg sleep) state, or together with the main processor while the main processor is in an active (eg application execution) state. It is possible to control at least some of functions or states related to at least one of the components (eg, the display module 140, the inertial sensor 150, or the communication module 160). According to one embodiment, an auxiliary processor (eg, an image signal processor or a communication processor) may be implemented as part of other functionally related components (eg, the communication module 160).
일실시예에 따르면, 보조 프로세서(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 웨어러블 디바이스(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 wearable device 101 itself where the artificial intelligence model is performed, or may be performed through a separate server. The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning or reinforcement learning, but in the above example Not limited. The artificial intelligence model may include a plurality of artificial neural network layers. Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the foregoing, but is not limited to the foregoing examples. The artificial intelligence model may include, in addition or alternatively, software structures in addition to hardware structures.
입력 모듈(130)은 웨어러블 디바이스(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 웨어러블 디바이스(101)의 외부(예: 사용자)로부터 수신할 수 있다. 예를 들어, 입력 모듈(130)은 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The input module 130 may receive a command or data to be used in a component (eg, the processor 120) of the wearable device 101 from the outside of the wearable device 101 (eg, a user). For example, the input module 130 may include a microphone, mouse, keyboard, key (eg, button), or digital pen (eg, stylus pen).
디스플레이 모듈(140)은 웨어러블 디바이스(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 예를 들어, 디스플레이 모듈(140)은 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(140)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The display module 140 may visually provide information to the outside of the wearable device 101 (eg, a user). For example, the display module 140 may include a display, a hologram device, or a projector and a control circuit for controlling the device. According to one embodiment, the display module 140 may include a touch sensor set to detect a touch or a pressure sensor set to measure the intensity of force generated by the touch.
관성 센서(150)는 힘을 감지하는 센서로, 가속도(3축)와 Gyro(3축)을 합쳐 6축센서 라고도 할 수 있다. 또는, 관성 센서(150)는 가속도 센서와 자이로 센서를 통합하여 게임 로테이션 벡터 센서(game rotation vector sensor)라 할 수 있다, 가속도 센서(accelerometer)는 물체의 가속도, 진동, 충격과 같은 동적 힘을 측정하는 센서일 수 있다. 상기 가속도 센서는 물체의 운동 상태를 감지할 수 있어, 다양한 용도로 활용될 수 있다. 웨어러블 디바이스(101)는 관성 센서(150)에서 측정한 가속도 데이터에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 자이로 센서(gyroscope)는 물체의 각속도를 측정하는 센서일 수 있다. 상기 자이로 센서는 물체의 가속도를 측정하는 가속도 센서와 달리 물체의 각속도를 측정할 수 있다. 상기 각속도는 시간당 회전하는 속도(또는 각도)를 의미하는 것일 수 있다. 상기 자이로 센서는 자이로스코프(gyroscope)라고도 할 수 있다.The inertial sensor 150 is a sensor that detects force, and may also be referred to as a 6-axis sensor by combining acceleration (3 axes) and Gyro (3 axes). Alternatively, the inertial sensor 150 may be referred to as a game rotation vector sensor by integrating an acceleration sensor and a gyro sensor. The accelerometer measures dynamic forces such as acceleration, vibration, and shock of an object. It may be a sensor that The acceleration sensor can detect the motion state of an object and can be used for various purposes. The wearable device 101 may recognize a wheelchair pushing motion based on acceleration data measured by the inertial sensor 150 . A gyroscope may be a sensor that measures the angular velocity of an object. Unlike an acceleration sensor that measures the acceleration of an object, the gyro sensor may measure the angular velocity of the object. The angular velocity may mean a rotational speed (or angle) per time. The gyro sensor may also be referred to as a gyroscope.
통신 모듈(160)은 웨어러블 디바이스(101)와 외부 전자 장치 또는 서버 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(160)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(160)은 무선 통신 모듈(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GPS(global positioning system) 통신 모듈) 또는 유선 통신 모듈(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. The communication module 160 may support establishment of a direct (eg, wired) communication channel or wireless communication channel between the wearable device 101 and an external electronic device or server, and communication through the established communication channel. The communication module 160 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication. According to one embodiment, the communication module 160 is a wireless communication module (eg, a cellular communication module, a short-distance wireless communication module, or a global positioning system (GPS) communication module) or a wired communication module (eg, a local area network (LAN)). communication module or power line communication module).
이들 통신 모듈 중 해당하는 통신 모듈은 블루투스, 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 wearable device 101 within a communication network such as a short-distance communication network or a long-distance communication network using subscriber information (eg, International Mobile Subscriber Identity (IMSI)) stored in the subscriber identification module. .
마이크(170)는 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 마이크(170)는 소리(또는 오디오)를 획득하여 전기 신호로 변환시킬 수 있다.The microphone 170 may convert sound into an electrical signal or vice versa. According to one embodiment, the microphone 170 may acquire sound (or audio) and convert it into an electrical signal.
스피커(175)는 오디오(또는 음향) 신호를 웨어러블 디바이스(101)의 외부로 출력할 수 있다. 스피커(175)는 리시버를 포함할 수 있다. 스피커(175)는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커(175)와 별개로, 또는 그 일부로서 구현될 수 있다.The speaker 175 may output an audio (or sound) signal to the outside of the wearable device 101 . The speaker 175 may include a receiver. The speaker 175 may be used for general purposes such as multimedia playback or recording playback. A receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker 175 or as part of it.
충전 모듈(180)은 웨어러블 디바이스(101)에 공급되는 전력을 관리할 수 있다. 충전 모듈(180)은 인터페이스(190)를 통해 수신되는 전력으로 배터리(185)를 충전시킬 수 있다. 충전 모듈(180)은 PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The charging module 180 may manage power supplied to the wearable device 101 . The charging module 180 may charge the battery 185 with power received through the interface 190 . The charging module 180 may be implemented as at least part of a power management integrated circuit (PMIC).
배터리(185)는 웨어러블 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(185)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The battery 185 may supply power to at least one component of the wearable device 101 . According to one embodiment, the battery 185 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
인터페이스(190)는 웨어러블 디바이스(101)가 외부 전자 장치(또는 충전기)와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(190)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다. 인터페이스(190)는 웨어러블 디바이스(101)가 외부 전자 장치와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. The interface 190 may support one or more specified protocols that may be used to directly or wirelessly connect the wearable device 101 to an external electronic device (or charger). According to one embodiment, the interface 190 may include a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface. The interface 190 may include a connector through which the wearable device 101 is physically connected to an external electronic device.
일실시예에 따르면, 명령 또는 데이터는 서버를 통해서 웨어러블 디바이스(101)와 외부 전자 장치 간에 송신 또는 수신될 수 있다. 외부 전자 장치는 웨어러블 디바이스(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 웨어러블 디바이스(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치에서 실행될 수 있다. 예를 들면, 웨어러블 디바이스(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 웨어러블 디바이스(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 웨어러블 디바이스(101)로 전달할 수 있다. 웨어러블 디바이스(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. According to an embodiment, commands or data may be transmitted or received between the wearable device 101 and an external electronic device through a server. The external electronic device may be the same as or different from the wearable device 101 . According to an embodiment, all or part of operations executed in the wearable device 101 may be executed in an external electronic device. For example, when the wearable device 101 needs to perform a certain function or service automatically or in response to a request from a user or other device, the wearable device 101 instead of executing the function or service by itself Alternatively or additionally, one or more external electronic devices may be requested to perform the function or at least part of the service. One or more external electronic devices receiving the request may execute at least a part of the requested function or service or an additional function or service related to the request, and deliver a result of the execution to the wearable device 101 . The wearable device 101 may process the result as it is or additionally and provide it as at least part of a response to the request.
이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(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 wearable device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device may include an internet of things (IoT) device. The server may be an intelligent server using machine learning and/or neural networks. The wearable device 101 can be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
본 문서의 다양한 실시예들은 기기(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 processor 120 of the wearable device 101 may call at least one command among one or more commands stored from a storage medium and execute it. This enables the device to be operated to perform at least one function according to the at least one command invoked. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-temporary' only means that the storage medium is a tangible device and does not contain a signal (e.g. electromagnetic wave), and this term refers to the case where data is stored semi-permanently in the storage medium. It does not discriminate when it is temporarily stored.
도 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 wearable device 101 of FIG. 1 ) according to various embodiments has a first surface (or front surface) 210A and a second surface (or rear surface) 210B. , And a housing 210 including a side surface 210C surrounding a space between the first surface 210A and the second surface 210B, and connected to at least a portion of the housing 210 and the wearable device 200 It may include fastening members 250 and 260 capable of being detached from the user's body (eg, wrist, ankle, etc.). In another embodiment (not shown), the housing may refer to a structure forming some of the first face 210A, the second face 210B, and the side face 210C of FIG. 2 .
일 실시예에 따르면, 제1 면(210A)은 적어도 일부분이 실질적으로 투명한 전면 플레이트(201)(예: 다양한 코팅 레이어들을 포함하는 글라스 플레이트, 또는 폴리머 플레이트)에 의하여 형성될 수 있다. 제2 면(210B)은 실질적으로 불투명한 후면 플레이트(207)에 의하여 형성될 수 있다. 후면 플레이트(207)는, 예를 들어, 코팅 또는 착색된 유리, 세라믹, 폴리머, 금속(예: 알루미늄, 스테인레스 스틸(STS), 또는 마그네슘), 또는 상기 물질들 중 적어도 둘의 조합에 의하여 형성될 수 있다. 측면(210C)은, 전면 플레이트(201) 및 후면 플레이트(207)와 결합하며, 금속 및/또는 폴리머를 포함하는 측면 베젤 구조 (또는 "측면 부재")(206)에 의하여 형성될 수 있다. 어떤 실시예에서는, 후면 플레이트(207) 및 측면 베젤 구조(206)는 일체로 형성될 수 있고, 동일한 물질(예: 알루미늄과 같은 금속 물질)을 포함할 수 있다. 결착 부재(250, 260)는 다양한 재질 및 형태로 형성될 수 있다. 직조물, 가죽, 러버, 우레탄, 금속, 세라믹, 또는 상기 물질들 중 적어도 둘의 조합에 의하여 일체형 및 복수의 단위 링크가 서로 유동 가능하도록 형성될 수 있다.According to one embodiment, the first surface 210A may be formed by a front plate 201 (eg, a glass plate or a polymer plate including various coating layers) that is substantially transparent at least in part. The second face 210B may be formed by the substantially opaque back plate 207 . Back plate 207 may be formed, for example, of coated or tinted glass, ceramic, polymer, metal (eg, aluminum, stainless steel (STS), or magnesium), or a combination of at least two of the foregoing. can The side surface 210C is coupled to the front plate 201 and the back plate 207 and may be formed by a side bezel structure (or "side member") 206 including metal and/or polymer. In some embodiments, the back plate 207 and the side bezel structure 206 may be integrally formed and may include the same material (eg, a metal material such as aluminum). The binding members 250 and 260 may be formed of various materials and shapes. Integral and plurality of unit links may be formed to flow with each other by woven material, leather, rubber, urethane, metal, ceramic, or a combination of at least two of the above materials.
다양한 실시예들에 따르면, 웨어러블 디바이스(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 wearable device 200 includes a display 220 (eg, the display module 140 of FIG. 1 ), audio modules 205 and 208 , and a sensor module 211 (eg, the inertial module of FIG. 1 ). sensor 150), key input devices 202, 203, 204 (eg, the input module 130 of FIG. 1) and a connector hole 209. In some embodiments, the wearable device 200 may omit at least one of the components (eg, the key input devices 202, 203, and 204, the connector hole 209, or the sensor module 211) or have other components. Additional elements may be included.
디스플레이(220)는, 예를 들어, 전면 플레이트(201)의 상당 부분을 통하여 노출될 수 있다. 디스플레이(220)의 형태는, 전면 플레이트(201)의 형태에 대응하는 형태일 수 있으며, 원형, 타원형, 또는 다각형 등 다양한 형태일 수 있다. 디스플레이(220)는, 터치 감지 회로, 터치의 세기(압력)를 측정할 수 있는 압력 센서, 및/또는 지문 센서와 결합되거나 인접하여 배치될 수 있다.The display 220 may be exposed through a substantial portion of the front plate 201 , for example. The shape of the display 220 may be a shape corresponding to the shape of the front plate 201, and may have various shapes such as a circle, an ellipse, or a polygon. The display 220 may be coupled to or disposed adjacent to a touch sensing circuit, a pressure sensor capable of measuring the intensity (pressure) of a touch, and/or a fingerprint sensor.
오디오 모듈(205, 208)은, 마이크 홀(205) 및 스피커 홀(208)을 포함할 수 있다. 마이크 홀(205)은 외부의 소리를 획득하기 위한 마이크가 내부에 배치될 수 있고, 어떤 실시예에서는 소리의 방향을 감지할 수 있도록 복수개의 마이크가 배치될 수 있다. 스피커 홀(208)은, 외부 스피커 및 통화용 리시버로 사용할 수 있다. The audio modules 205 and 208 may include a microphone hole 205 and a speaker hole 208 . A microphone for acquiring external sound may be disposed inside the microphone hole 205, and in some embodiments, a plurality of microphones may be disposed to detect the direction of sound. The speaker hole 208 can be used as an external speaker and a receiver for a call.
센서 모듈(211)은, 웨어러블 디바이스(200)의 내부의 작동 상태, 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(211)은, 예를 들어, 하우징(210)의 제2 면(210B)에 배치된 생체 센서 모듈(211)(예: HRM 센서)을 포함할 수 있다. 웨어러블 디바이스(200)는, 도시되지 않은 센서 모듈, 예를 들어, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서 중 적어도 하나를 더 포함할 수 있다.The sensor module 211 may generate an electrical signal or data value corresponding to an internal operating state of the wearable device 200 or an external environmental state. The sensor module 211 may include, for example, a biometric sensor module 211 (eg, an HRM sensor) disposed on the second surface 210B of the housing 210 . The wearable device 200 includes a sensor module not shown, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, At least one of a humidity sensor and an illuminance sensor may be further included.
키 입력 장치(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 key input devices 202, 203, and 204 include a wheel key 202 disposed on a first surface 210A of the housing 210 and rotatable in at least one direction, and/or a side surface 210C of the housing 210. ) may include side key buttons 202 and 203 disposed on. The wheel key may have a shape corresponding to the shape of the front plate 202 . In other embodiments, the wearable device 200 may not include some or all of the key input devices 202, 203, and 204, and the key input devices 202, 203, and 204 that are not included may be displayed on the display 220. It may be implemented in other forms such as soft keys on the screen. The connector hole 209 may accommodate a connector (eg, a USB connector) for transmitting and receiving power and/or data to and from an external electronic device and a connector for transmitting and receiving an audio signal to and from an external electronic device. Other connector holes (not shown) may be included. The wearable device 200 may further include, for example, a connector cover (not shown) that covers at least a portion of the connector hole 209 and blocks external foreign substances from entering the connector hole.
결착 부재(250, 260)는 락킹 부재(251, 261)를 이용하여 하우징(210)의 적어도 일부 영역에 탈착 가능하도록 결착될 수 있다. 결착 부재(250, 260)는 고정 부재(252), 고정 부재 체결 홀(253), 밴드 가이드 부재(254), 밴드 고정 고리(255) 중 하나 또는 그 이상을 포함할 수 있다. The binding members 250 and 260 may be detachably attached to at least a partial region of the housing 210 using the locking members 251 and 261 . The fastening members 250 and 260 may include one or more of a fixing member 252 , a fixing member fastening hole 253 , a band guide member 254 , and a band fixing ring 255 .
고정 부재(252)는 하우징(210)과 결착 부재(250, 260)를 사용자의 신체 일부(예: 손목, 발목 등)에 고정시키도록 구성될 수 있다. 고정 부재 체결 홀(253)은 고정 부재(252)에 대응하여 하우징(210)과 결착 부재(250, 260)를 사용자의 신체 일부에 고정시킬 수 있다. 밴드 가이드 부재(254)는 고정 부재(252)가 고정 부재 체결 홀(253)과 체결 시 고정 부재(252)의 움직임 범위를 제한하도록 구성됨으로써, 결착 부재(250, 260)가 사용자의 신체 일부에 밀착하여 결착되도록 할 수 있다. 밴드 고정 고리(255)는 고정 부재(252)와 고정 부재 체결 홀(253)이 체결된 상태에서, 결착 부재(250,260)의 움직임 범위를 제한할 수 있다.The fixing member 252 may be configured to fix the housing 210 and the fastening members 250 and 260 to a part of the user's body (eg, wrist, ankle, etc.). The fixing member fastening hole 253 corresponds to the fixing member 252 to fix the housing 210 and the fastening members 250 and 260 to a part of the user's body. The band guide member 254 is configured to limit the movement range of the fixing member 252 when the fixing member 252 is fastened to the fixing member fastening hole 253, so that the fastening members 250 and 260 are attached to a part of the user's body. It can be tightly bonded. The band fixing ring 255 may limit the movement range of the fastening members 250 and 260 in a state in which the fixing member 252 and the fixing member fastening hole 253 are fastened.
도 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 motion classification 410 shows a hand movement according to a wheelchair pushing motion, and may show a situation in which the wheelchair moves in a left direction. The wheelchair pushing action may include ① grabbing the handle of the wheelchair (holding), ② pushing the wheelchair wheel (pushing), ③ releasing the hand from the handle (releasing), and ④ recovering the hand (recovery). . Although it is classified into four operations for description of the invention, it may be classified into more or less than four operations depending on the implementation. Below, acceleration characteristics that can be detected when a user rides a wheelchair while wearing a wearable device (eg, the wearable device 101 of FIG. 1 ) will be described.
①손잡이를 잡는 동작은 휠체어를 회전하기 위해 바퀴를 잡는 동작으로써, 사용자의 손이 바퀴에 닿아 정지함에 따라 웨어러블 디바이스(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 wearable device 101 receives acceleration, and when the operation of retrieving the hand is followed, the direction of movement of the hand is change, and large accelerations can occur. The grabbing motion may generate acceleration data in the form of a peak.
② 바퀴를 미는 동작은 휠체어 바퀴를 직접적으로 회전하는 동작으로써, 지속적으로 속도는 증가할 수 있지만 가속도는 크게 발생하지 않아 피크는 생기지 않을 수 있다. 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 graph 450 shows acceleration data generated when a wheelchair pushing motion is performed. Looking at the graph 450, it can be seen that the acceleration characteristics appear differently according to ①②③④ corresponding to the wheelchair pushing motion classification 410, and the acceleration characteristics repeatedly occur. In the graph 450, ③ the action of releasing the hand is an action that generates the largest peak in acceleration data (451, 455), and the action of holding the knob is an action that generates the smallest peak in acceleration data (453, 457) may be marked with
다양한 실시예들에 따르면, 휠체어 밀기 동작 분류(410)에 따른 가속도 특성은 사용자의 손끝 방향과 일치하는 가속도 센서의 축에서 더욱 뚜렷하게 나타날 수 있다. 사용자의 손끝 방향과 일치하는 가속도 센서의 축은 가속도 센서(예: 도 1의 관성 센서(150))가 웨어러블 디바이스(101)에 배치된 위치에 따라 달라질 수 있다. 본 발명에서는 사용자의 손끝 방향과 일치하는 가속도 센서의 축을 'x축'으로 설정하고, x축의 가속도 데이터에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 다만, 가속도 센서가 웨어러블 디바이스(101)에 배치된 위치에 따라 휠체어 밀기 동작에 사용하는 가속도 센서의 축은 y축 또는 z축이 될 수도 있다. According to various embodiments, acceleration characteristics according to the wheelchair pushing motion classification 410 may appear more distinctly in an axis of the acceleration sensor that coincides with the direction of the user's fingertip. An axis of the acceleration sensor that coincides with the direction of the user's fingertip may vary depending on a position where the acceleration sensor (eg, the inertial sensor 150 of FIG. 1 ) is disposed on the wearable device 101 . In the present invention, the axis of the acceleration sensor corresponding to the direction of the user's fingertip is set as the 'x-axis', and the pushing motion of the wheelchair can be recognized based on the acceleration data of the x-axis. However, the axis of the acceleration sensor used for pushing the wheelchair may be the y-axis or the z-axis according to the position where the acceleration sensor is disposed in the wearable device 101 .
다양한 실시예들에 따르면, 사용자는 웨어러블 디바이스(101)를 왼손 또는 오른손에 착용할 수 있다. 사용자가 웨어러블 디바이스(101)를 왼손 또는 오른손에 착용함에 따라 가속도 센서의 x축은 +방향 또는 -방향으로 구분될 수 있다. 가속도 센서의 x축에서 측정된 가속도 데이터가 -값을 가지는 경우 x축의 부호 반전을 이용하여 휠체어 밀기 동작을 인식할 수 있다.According to various embodiments, a user may wear the wearable device 101 on his or her left hand or right hand. As the user wears the wearable device 101 on the left hand or the right hand, the x-axis of the acceleration sensor may be divided into a + direction or a - direction. When the acceleration data measured on the x-axis of the accelerometer has a -value, the wheelchair pushing motion can be recognized using sign inversion of the x-axis.
웨어러블 디바이스(101)는 휠체어 밀기 동작에 따라 가속도 센서에서 측정된 가속도 데이터를 KLD(Kullback-Leivler divergence) 알고리즘의 입력으로 사용하여 휠체어 밀기 동작을 인식하고, 휠체어 밀기 동작으로 인식된 이후 측정된 가속도 데이터에 기반하여 휠체어 밀기 동작의 횟수를 카운트할 수 있다. The wearable device 101 recognizes the wheelchair pushing motion by using the acceleration data measured by the acceleration sensor according to the wheelchair pushing motion as an input of the KLD (Kullback-Leivler divergence) algorithm, and recognizes the wheelchair pushing motion, and then the measured acceleration data It is possible to count the number of wheelchair pushing motions based on .
본 발명의 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))는 관성 센서(예: 도 1의 관성 센서(150)), 디스플레이(예: 도 1의 디스플레이 모듈(140)), 기준 신호를 저장하는 메모리(예: 도 1의 메모리(110)), 및 상기 관성 센서, 상기 디스플레이, 또는 상기 메모리 중 적어도 하나와 작동적으로 연결된 프로세서(예: 도 1의 프로세서(120))를 포함하고, 상기 프로세서는, 상기 관성 센서를 이용하여 가속도 데이터를 측정하고, 상기 측정된 가속도 데이터를 상기 메모리의 가속도 버퍼에 저장하고, KLD(Kullback-Leivler divergence) 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하고, 상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하고, 상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하도록 설정될 수 있다.A wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments of the present invention includes an inertial sensor (eg, the inertial sensor 150 of FIG. 1 ), a display (eg, the display module 140 of FIG. 1 ) )), a memory for storing a reference signal (eg, memory 110 of FIG. 1 ), and a processor operatively connected with at least one of the inertial sensor, the display, or the memory (eg, processor 120 of FIG. 1 ). )), wherein 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 measure the measured acceleration data. A KLD output value is obtained by comparing the probability distribution of the acceleration data with the probability distribution of the reference signal stored in the memory, determining whether the obtained KLD output value is less than the KLD reference value, and the obtained KLD output value is less than the KLD reference value. , can be set to be recognized as a wheelchair pushing motion.
상기 프로세서는, 상기 기준 신호의 크기만큼 상기 가속도 버퍼의 크기를 결정하고, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장되었는지 판단하고, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장된 경우, 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하도록 설정될 수 있다.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 flowchart 500 illustrating a method of operating a wearable device according to various embodiments.
도 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 operation 501, a processor (eg, processor 120 of FIG. 1 ) of a wearable device (eg, wearable device 101 of FIG. 1 ) according to various embodiments generates an acceleration sensor (eg, FIG. Acceleration data (or acceleration value, acceleration sensed value) may be measured using the inertial sensor 150 of 1). Acceleration characteristics according to the pushing motion of the wheelchair may appear more distinctly in the axis of the inertial sensor 150 that coincides with the direction of the user's fingertip. The axis of the inertial sensor 150 coinciding with the direction of the user's fingertip may vary depending on the position where the inertial sensor 150 is disposed on the wearable device 101 . The processor 120 may identify (or extract) acceleration data of the 'x-axis' that matches the direction of the user's fingertip from among the acceleration data measured by the inertial sensor 150 . The acceleration data measured by the inertial sensor 150 includes acceleration data of the x-axis, y-axis, and z-axis, and the processor 120 does not use the acceleration data of the y-axis and z-axis to recognize the wheelchair pushing motion, and Only axis acceleration data can be used. Depending on the position where the inertial sensor 150 is disposed on the wearable device 101, the axis of the acceleration sensor used for pushing the wheelchair may be the y-axis or the z-axis. Hereinafter, it is described using the x-axis, but the present invention is not limited by the description.
동작 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 operation 503, the processor 120 may store the measured acceleration data in an acceleration buffer (or a first acceleration buffer). The first acceleration buffer may store acceleration data measured by the inertial sensor 150 in real time. The processor 120 may process (eg, filter) measured acceleration data (eg, raw data) and store the measured acceleration data (eg, raw data) in the first acceleration buffer. When the size of the first acceleration buffer is 120, the processor 120 may store 120 pieces of acceleration data in the first acceleration buffer in the measured order. The processor 120 may repeatedly perform operations 501 and 503 until acceleration data corresponding to the size of the first acceleration buffer is stored. The processor 120 may perform operation 505 when all acceleration data is stored as much as the size of the first acceleration buffer. Although operation 501 and operation 503 are separately described in the drawing, the processor 120 performs operation 501 and operation 503 as one operation, and stores the measured acceleration data in the first acceleration buffer whenever acceleration data is measured. can be saved
동작 505에서, 프로세서(120)는 상기 측정된 가속도 데이터의 확률 분포와 기준 신호의 확률 분포를 비교할 수 있다. 프로세서(120)는 상기 측정된 가속도 데이터가 휠체어 밀기 동작에 해당되는지 판단하기 위해 확률 분포 비교 방법, 예를 들어, KLD 알고리즘을 사용할 수 있다. 휠체어 밀기 동작을 수행할 때 발생하는 신호적 특징이 동일하게 발생하는 점을 이용해서, 사전에 휠체어 밀기 동작(예: ①②③④)을 1회 수행할 때 발생하는 가속도 데이터를 기준 신호로 정의할 수 있다. 정의된 기준 신호의 확률 분포를 kernel 함수를 이용해서 계산하고, 계산된 기준 신호를 웨어러블 디바이스(101)의 메모리(예: 도 1의 메모리(110))에 미리 저장할 수 있다. 상기 기준 신호는 상기 측정된 가속도 데이터가 휠체어 밀기 동작에 해당되는지 판단하기 위한 기준 값이 될 수 있다. In operation 505, the processor 120 may compare a probability distribution of the measured acceleration data with a probability distribution of the reference signal. The processor 120 may use a probability distribution comparison method, for example, a KLD algorithm, to determine whether the measured acceleration data corresponds to a wheelchair pushing motion. Using the fact that the same signal characteristics occur when performing a wheelchair pushing motion, acceleration data generated when a wheelchair pushing motion (eg ①②③④) is performed once can be defined as a reference signal. . A probability distribution of the defined reference signal may be calculated using a kernel function, and the calculated reference signal may be previously stored in a memory of the wearable device 101 (eg, the memory 110 of FIG. 1 ). The reference signal may be a reference value for determining whether the measured acceleration data corresponds to a wheelchair pushing motion.
다양한 실시예들에 따르면, 확률 분포 비교 방법을 사용하기 위해서, 상기 기준 신호가 저장된 크기만큼 상기 제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 operation 507, the processor 120 may obtain the comparison result as a KLD output value. For example, the processor 120 calculates a probability distribution of 120 acceleration data stored in the first acceleration buffer (eg, first to 120th measured acceleration data) and 120 reference signals by using the KLD algorithm. One KLD output value can be obtained by comparing the probability distributions. KL-divergence can be considered as an information entropy difference between the probability distribution of the measured acceleration data and the probability distribution of the reference signal. If the calculated KL-divergence (eg, KLD output value) has a large value, it means that the information entropy difference is large, which may mean that the similarity between the probability distribution of the measured acceleration data and the probability distribution of the reference signal is small. Conversely, when KL-divergence has a small value, it means that the information entropy difference is small, which means that the probability distribution of the measured acceleration data and the probability distribution of the reference signal have similar probability distributions. Since the KLD algorithm corresponds to a known technology, a detailed description thereof may be omitted.
동작 509에서, 프로세서(120)는 상기 획득한 KLD 출력값에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 프로세서(120)는 상기 획득한 KLD 출력값이 KLD 기준값 미만이면, 상기 측정된 가속도 데이터와 상기 기준 신호의 유사도가 큰 것으로 판단하여 휠체어 밀기 동작으로 인식할 수 있다. 프로세서(120)는 상기 획득한 KLD 출력값이 KLD 기준값 이상이면, 상기 측정된 가속도 데이터와 상기 기준 신호의 유사도가 작은 것으로 판단하여 휠체어 밀기 동작으로 인식하지 않을 수 있다. KLD 기준값은 두 확률 분포의 유사도를 KLD로 판단하기 위한 임계치를 의미할 수 있다. 상기 KLD 기준값은 메모리(110)에 사전에 저장될 수 있다. 본 발명은 휠체어 밀기 동작을 인식하기 위한 것으로, 휠체어 밀기 동작이 아닌 경우(예: 걷기, 달리기 등), 비정형 동작으로 판단할 수 있다. 동작 509에서 휠체어 밀기 동작이 아닌 것으로 판단되는 경우, 프로세서(120)는 상기 비정형 동작에 따른 운동 정보(예: 걸음 수, 걷는 시간, 달리는 시간 등)를 획득하기 위한 알고리즘을 수행할 수 있다. 걸음 수 산출, 걷는 시간 산출 또는 달리는 시간 산출과 같은 동작은 종래 기술에 해당하므로, 자세한 설명을 생략할 수 있다.In operation 509, the processor 120 may recognize a wheelchair pushing motion based on the obtained KLD output value. If the obtained KLD output value is less than the KLD reference value, the processor 120 may determine that the measured acceleration data and the reference signal have a high similarity and recognize the wheelchair pushing motion. If the obtained KLD output value is greater than or equal to the KLD reference value, the processor 120 may determine that the measured acceleration data and the reference signal have a small similarity and may not recognize the wheelchair pushing motion. The KLD reference value may mean a threshold for determining the similarity of two probability distributions as KLD. The KLD reference value may be previously stored in the memory 110. The present invention is for recognizing a wheelchair pushing motion, and if it is not a wheelchair pushing motion (eg, walking, running, etc.), it can be determined as an atypical motion. If it is determined in operation 509 that the wheelchair pushing motion is not, the processor 120 may perform an algorithm for obtaining exercise information (eg, number of steps, walking time, running time, etc.) according to the atypical motion. Since operations such as calculating the number of steps, calculating the walking time, or calculating the running time correspond to the prior art, a detailed description thereof may be omitted.
동작 509에서 휠체어 밀기 동작으로 인식되는 경우, 프로세서(120)는 동작 501 내지 동작 509를 반복적으로 수행하여 새롭게 측정된 가속도 데이터(예: 두번째 측정된 가속도 데이터부터 121번째 측정된 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 휠체어 밀기 동작을 판단할 수 있다. 또한, 프로세서(120)는 휠체어 밀기 동작으로 인식되는 경우, 도 10의 동작을 수행하여 휠체어 밀기 동작의 횟수를 카운트할 수 있다.When it is recognized as a wheelchair pushing motion in operation 509, the processor 120 repeatedly performs operations 501 to 509 to obtain a probability distribution of newly measured acceleration data (eg, second to 121st measured acceleration data). It is possible to determine the wheelchair pushing motion by comparing the probability distribution of the reference signal. Also, if the processor 120 recognizes the wheelchair pushing motion, the processor 120 may perform the operation of FIG. 10 to count the number of times of the wheelchair pushing motion.
도 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, processor 120 of FIG. 1 ) of a wearable device (eg, wearable device 101 of FIG. 1 ) according to various embodiments includes an acceleration sensor (eg, inertial sensor of FIG. 1 ). (150) may be used to measure acceleration data (or acceleration value or acceleration sensing value). Referring to first reference numeral 610, the processor 120 stores acceleration data measured in real time according to a time sequence (eg, time index 601) in an acceleration buffer (or first acceleration buffer) 603. can For example, in the time index 601, the first acceleration data measured at the first time (1) is stored in the acceleration buffer 603, and the second acceleration data measured at the second time (2) is stored in the acceleration buffer 601. can The processor 120 continues to measure and store acceleration data in the acceleration buffer 603 until the acceleration data is stored as much as the size of the acceleration buffer 603 (eg, 120), and stores the acceleration data as much as the size of the acceleration buffer 603. When is stored, a first KLD output value may be obtained by comparing a probability distribution of acceleration data (eg, first to 120th acceleration data) stored in the acceleration buffer with a probability distribution of the reference signal.
제2 도면 부호(630)를 참조하면, 121번째 새로운 시간 인덱스(601)에 따라 121번째 가속도 데이터가 가속도 버퍼(603)에 저장되며, 프로세서(120)는 가속도 버퍼에 저장된 가속도 데이터(예: 두번째 가속도 데이터부터 121번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 두번째 KLD 출력값을 획득할 수 있다. 이후 시간 인덱스(601)가 122번째인 경우, 122번째 가속도 데이터가 가속도 버퍼(603)에 저장되며, 프로세서(120)는 가속도 버퍼에 저장된 가속도 데이터(예: 세번째 가속도 데이터부터 122번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 세번째 KLD 출력값을 획득할 수 있다.Referring to the second reference numeral 630, the 121st acceleration data is stored in the acceleration buffer 603 according to the 121st new time index 601, and the processor 120 stores the acceleration data stored in the acceleration buffer (eg, the second A second KLD output value may be obtained by comparing the probability distribution of the acceleration data to the 121st acceleration data) with the probability distribution of the reference signal. Then, when the time index 601 is the 122nd, the 122nd acceleration data is stored in the acceleration buffer 603, and the processor 120 stores the acceleration data stored in the acceleration buffer (eg, the third acceleration data to the 122nd acceleration data). A third KLD output value can be obtained by comparing the probability distribution with the probability distribution of the reference signal.
프로세서(120)는 관성 센서(150)의 샘플링 시간(sampling time)에 맞추어 가속도 버퍼(601)에 새로운 가속도 데이터를 저장하고, 가속도 버퍼(601)는 지속적으로 갱신될 수 있다. 예를 들어 100Hz로 가속도 데이터를 샘플링 한다면, 가속도 데이터가 측정될 때마다 가속도 버퍼(601)는 가장 최신의 가속도 데이터를 저장하고, 가장 오래된 가속도 데이터를 제거하며 갱신을 지속할 수 있다.The processor 120 stores new acceleration data in the acceleration buffer 601 according to the sampling time of the inertial sensor 150, and the acceleration buffer 601 can be continuously updated. For example, if acceleration data is sampled at 100 Hz, each time acceleration data is measured, the acceleration buffer 601 may store the latest acceleration data, remove the oldest acceleration data, and continue updating.
도 7은 다양한 실시예들에 따른 웨어러블 디바이스의 휠체어 밀기 동작을 인식하는 방법을 도시한 흐름도(700)이다.7 is a flowchart 700 illustrating a method of recognizing a wheelchair pushing motion of a wearable device according to various embodiments.
도 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 operation 701, a processor (eg, the processor 120 of FIG. 1 ) of a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments generates a first acceleration buffer (eg, the wearable device 101 of FIG. 1 ). : It may be determined whether acceleration data is stored as much as the size of the acceleration buffer 603 in FIG. 6 . In order to use the probability distribution comparison method using the KLD algorithm, acceleration data measured in real time as much as the magnitude of the reference signal may be required. The processor 120 may determine the size of the first acceleration buffer by the size of the reference signal. For example, if the size of the reference signal is 100, the size of the first acceleration buffer may also be set to 100, and if the size of the reference signal is 120, the size of the first acceleration buffer may also be set to 120. When acceleration data is not stored as much as the size of the first acceleration buffer, a probability distribution comparison with a reference signal may not be possible. The processor 120 may perform operation 703 when acceleration data equal to the size of the first acceleration buffer is stored, and return to operation 501 of FIG. 5 when acceleration data is not stored equal to the size of the first acceleration buffer. .
프로세서(120)는 동작 501로 리턴하는 경우, 가속도 데이터를 측정하여 측정된 가속도 데이터를 제1 가속도 버퍼에 저장하는 동작을 반복 수행할 있다. 프로세서(120)는 제1 가속도 버퍼의 크기만큼 가속도 데이터가 저장될 때까지 가속도 데이터를 측정하여 측정된 가속도 데이터를 제1 가속도 버퍼에 저장하는 동작을 반복 수행할 수 있다.When returning to operation 501, the processor 120 may repeatedly perform an operation of measuring acceleration data and storing the measured acceleration data in the first acceleration buffer. The processor 120 may repeatedly perform an operation of measuring acceleration data and storing the measured acceleration data in the first acceleration buffer until acceleration data equal to the size of the first acceleration buffer is stored.
제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 operation 703, the processor 120 may calculate KLD and identify the acceleration data. The processor 120 uses the KLD algorithm to determine the probability distribution of the acceleration data (eg, from the first acceleration data to the 120th acceleration data) stored in the first acceleration buffer and the reference signal stored in the memory (eg, the memory 110 of FIG. 1). KLD can be calculated by comparing the probability distributions of (120 reference signals). The calculated comparison value may be a KLD output value. Also, the processor 120 may identify acceleration data last stored in the first acceleration buffer. Hereinafter, operations 705 to 709 may be performed simultaneously with operations 706 to 710 .
다양한 실시예들에 따르면, 프로세서(120)는 KLD 출력값을 이용하여 휠체어 밀기 동작을 인식할 수 있지만, 휠체어 밀기 동작의 정확성을 높이기 위하여, KLD 평균값 또는 가속도 분산값을 더 이용할 수 있다. 이를 위해, 프로세서(120)는 도 7의 동작을 더 수행할 수 있다. 먼저, KLD 평균값을 계산하는 동작부터 설명하기로 한다. 설명에 의해 본 발명이 제한되는 것은 아니다.According to various embodiments, the processor 120 may recognize the wheelchair pushing motion using the KLD output value, but may further use the KLD average value or acceleration variance value to increase the accuracy of the wheelchair pushing motion. To this end, the processor 120 may further perform the operation of FIG. 7 . First, the operation of calculating the KLD average value will be described. The present invention is not limited by the description.
동작 705에서, 프로세서(120)는 KLD 출력값을 KLD 버퍼에 저장할 수 있다. 상기 KLD 출력값은 상기 제1 가속도 버퍼가 갱신될 때마다 계산되어 KLD 버퍼에 저장될 수 있다. 상기 KLD 버퍼의 크기는 상기 제1 가속도 버퍼의 크기와 동일하거나, 또는 상이할 수 있다. 예를 들어, 상기 KLD 버퍼의 크기는 상기 제1 가속도 버퍼의 크기보다 클 수 있다. 상기 제1 가속도 버퍼의 크기가 100인 경우, 상기 KLD 버퍼의 크기는 120일 수 있다. 또는, 상기 제1 가속도 버퍼의 크기가 120인 경우, 상기 KLD 버퍼의 크기는 150일 수 있다.At operation 705, the processor 120 may store the KLD output value in a KLD buffer. The KLD output value may be calculated and stored in the KLD buffer whenever the first acceleration buffer is updated. The size of the KLD buffer may be the same as or different from the size of the first acceleration buffer. For example, the size of the KLD buffer may be larger than the size of the first acceleration buffer. When the size of the first acceleration buffer is 100, the size of the KLD buffer may be 120. Alternatively, when the size of the first acceleration buffer is 120, the size of the KLD buffer may be 150.
동작 707에서, 프로세서(120)는 KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있는지 판단할 수 있다. 상기 제1 가속도 버퍼의 크기가 120이고, 120번째 가속도 데이터가 상기 제1 가속도 버퍼에 저장되면 프로세서(120)는 동작 703을 수행하여 첫번째 KLD 출력값이 획득될 수 있다. 프로세서(120)는 획득한 첫번째 KLD 출력값을 KLD 버퍼에 저장하고, KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있는지 판단할 수 있다. In operation 707, the processor 120 may determine whether as many KLD output values as the size of the KLD buffer are stored. When the size of the first acceleration buffer is 120 and the 120th acceleration data is stored in the first acceleration buffer, the processor 120 may perform operation 703 to obtain a first KLD output value. The processor 120 may store the obtained first KLD output value in the KLD buffer, and determine whether as many KLD output values are stored as the size of the KLD buffer.
프로세서(120)는 KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있는 경우, 동작 709를 수행하고, KLD 버퍼의 크기만큼 KLD 출력값이 저장되어 있지 않은 경우, 동작 721을 수행할 수 있다.The processor 120 may perform operation 709 when the KLD output value is stored as much as the size of the KLD buffer, and perform operation 721 when the KLD output value is not stored as much as the size of the KLD buffer.
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 operation 721, the processor 120 measures new acceleration data (eg, 121st acceleration data) and stores the measured acceleration data in the first acceleration buffer. can If operation 721 is performed, the processor 120 returns to operation 703 and compares the probability distribution of the acceleration data (eg, the second acceleration data to the 121st acceleration data) stored in the first acceleration buffer with the probability distribution of the reference signal. A second KLD output value can be obtained. After performing step 703, the processor 120 may perform step 705 to store the obtained second KLD output value in the KLD buffer, and perform step 707 to determine whether KLD output values corresponding to the size of the KLD buffer are stored. . The processor 120 may repeatedly perform operations 703, 705, 707, and 721 until KLD output values corresponding to the size of the KLD buffer are stored.
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 operation 709, the processor 120 may calculate a KLD average value based on the KLD output values. When the size of the KLD buffer is 150, the processor 120 may calculate an average value of 150 KLD output values. The processor 120 may perform operation 711 after calculating the KLD average value.
가속도 분산값을 계산하는 동작을 설명하기로 한다.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 operation 706, the processor 120 may store the identified acceleration data in a second acceleration buffer. Similar to the first acceleration buffer, acceleration data may be stored in the second acceleration buffer. The difference is that after storing as much as the size of the first acceleration buffer, the last acceleration data stored in the first acceleration buffer may be stored in the second acceleration buffer. When acceleration data is stored as much as the size of the first acceleration buffer (eg, 120), the 120th acceleration data may be the last acceleration data stored in the first acceleration buffer. The processor 120 may identify the last acceleration data stored in the first acceleration buffer in operation 703 and store the identified acceleration data in the second acceleration buffer.
동작 708에서, 프로세서(120)는 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있는지 판단할 수 있다. 상기 제2 가속도 버퍼의 크기는 상기 제1 가속도 버퍼의 크기 또는 상기 KLD 버퍼의 크기와 동일하거나, 또는 상이할 수 있다. 예를 들어, 상기 제2 가속도 버퍼의 크기는 상기 제1 가속도 버퍼의 크기보다 크고, 상기 KLD 버퍼의 크기와 동일할 수 있다. 상기 제1 가속도 버퍼의 크기가 100인 경우, 상기 제2 가속도 버퍼의 크기는 120일 수 있다. 또는, 상기 제1 가속도 버퍼의 크기가 120인 경우, 상기 제2 가속도 버퍼의 크기는 150일 수 있다.In operation 708, the processor 120 may determine whether acceleration data is stored as much as the size of the second acceleration buffer. The size of the second acceleration buffer may be the same as or different from the size of the first acceleration buffer or the size of the KLD buffer. For example, the size of the second acceleration buffer may be greater than the size of the first acceleration buffer and the same as the size of the KLD buffer. When the size of the first acceleration buffer is 100, the size of the second acceleration buffer may be 120. Alternatively, when the size of the first acceleration buffer is 120, the size of the second acceleration buffer may be 150.
프로세서(120)는 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있는 경우, 동작 710을 수행하고, 상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있지 않은 경우, 동작 722를 수행할 수 있다.The processor 120 may perform operation 710 when acceleration data equal to the size of the second acceleration buffer is stored, and perform operation 722 when acceleration data is not stored equal to the size of the second acceleration buffer. there is.
상기 제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 operation 722, the processor 120 measures new acceleration data (eg, 121st acceleration data) and converts the measured acceleration data to the first acceleration data. can be stored in a buffer. Operation 722 may be the same as or similar to operation 721 . After performing operation 722, the processor 120 may return to operation 703 to identify the last acceleration data (eg, 121st acceleration data) stored in the first acceleration buffer. After performing step 703, the processor 120 performs operation 706 to store the identified acceleration data in the second acceleration buffer, and performs operation 708 to determine whether acceleration data corresponding to the size of the second acceleration buffer is stored. can judge The processor 120 may repeatedly perform operations 703, 706, 708, and 722 until acceleration data corresponding to the size of the second acceleration buffer is stored.
상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되어 있는 경우, 동작 710에서, 프로세서(120)는 상기 가속도 데이터에 기반하여 가속도 분산값을 산출할 수 있다. 상기 제2 가속도 버퍼의 크기가 150인 경우, 프로세서(120)는 150개의 가속도 데이터의 분산값을 산출할 수 있다. 프로세서(120)는 상기 가속도 분산값을 산출한 후 동작 711을 수행할 수 있다.When acceleration data corresponding to the size of the second acceleration buffer is stored, in operation 710, the processor 120 may calculate an acceleration variance value based on the acceleration data. When the size of the second acceleration buffer is 150, the processor 120 may calculate variance values of 150 acceleration data. The processor 120 may perform operation 711 after calculating the acceleration dispersion value.
동작 711에서, 프로세서(120)는 설정된 조건에 해당되는지 여부를 판단할 수 있다. 상기 설정된 조건은 KLD 출력값이 KLD 기준값 미만이고, KLD 평균값이 KLD 평균 임계치 미만이며, 가속도 분산값이 분산 임계치를 초과하는 것 중 적어도 하나를 포함할 수 있다. 프로세서(120)는 도 5의 동작 507에서 획득한 KLD 출력값이 KLD 기준값 미만인 경우, 상기 설정된 조건에 해당되는 것으로 판단할 수 있다. 또는, 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 미만이고, 동작 709에서 산출한 KLD 평균값이 KLD 평균 임계치 미만이며, 동작 710에서 산출한 가속도 분산값이 분산 임계치를 초과하는 경우, 상기 설정된 조건에 해당되는 것으로 판단할 수 있다.In operation 711, the processor 120 may determine whether or not a set condition is met. The set condition may include at least one of a KLD output value less than a KLD reference value, a KLD average value less than a KLD average threshold value, and an acceleration variance value exceeding a variance threshold value. When the KLD output value obtained in operation 507 of FIG. 5 is less than the KLD reference value, the processor 120 may determine that the set condition is satisfied. Alternatively, the processor 120 determines the set conditions when the KLD output value is less than the KLD reference value, the KLD average value calculated in operation 709 is less than the KLD average threshold value, and the acceleration variance value calculated in operation 710 exceeds the variance threshold value. can be judged to be relevant.
프로세서(120)는 상기 설정된 조건에 해당되는 경우 동작 713을 수행하고, 상기 설정된 조건에 해당되지 않는 경우 동작 715를 수행할 수 있다.The processor 120 may perform operation 713 when the set conditions are met, and perform operation 715 when the set conditions are not met.
상기 설정된 조건에 해당되는 경우 동작 713에서, 프로세서(120)는 휠체어 밀기 동작으로 인식(또는 판단)할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작으로 판단된 경우, 프로세서(120)는 동작 701 내지 동작 711을 반복적으로 수행하여 계속해서 휠체어 밀기 동작이 수행되는지 여부를 판단할 수 있다. 또한, 프로세서(120)는 휠체어 밀기 동작으로 인식되는 경우, 도 10의 동작을 수행하여 휠체어 밀기 동작의 횟수를 카운트할 수 있다.In operation 713, if the set conditions are met, the processor 120 may recognize (or determine) the wheelchair pushing motion. When the processor 120 determines that the pushing motion is the wheelchair, the processor 120 may repeatedly perform operations 701 to 711 to determine whether the pushing motion of the wheelchair is continuously performed. Also, if the processor 120 recognizes the wheelchair pushing motion, the processor 120 may perform the operation of FIG. 10 to count the number of times of the wheelchair pushing motion.
상기 설정된 조건에 해당되지 않는 경우 동작 715에서, 프로세서(120)는 상기 휠체어 밀기 동작이 아닌 것으로 판단할 수 있다. 프로세서(120)는 상기 KLD 출력값이 KLD 기준값 이상이거나, 동작 709에서 산출한 KLD 평균값이 KLD 평균 임계치 이상이거나, 또는 동작 710에서 산출한 가속도 분산값이 분산 임계치 이하인 것 중 적어도 하나에 해당하는 경우, 상기 설정된 조건에 해당되지 않는 것으로 판단할 수 있다. 프로세서(120)는 상기 KLD 출력값, 상기 KLD 평균값 또는 상기 가속도 분산값이 상기 설정된 조건에 하나라도 해당되지 않는 경우, 상기 휠체어 밀기 동작이 아닌 것으로 판단할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작이 아닌 경우, 걷기, 달리기와 같은 비정형 동작으로 판단할 수 있다. 프로세서(120)는 상기 비정형 동작에 따른 운동 정보(예: 걷는 시간, 걸음 수, 달리는 시간 등)를 획득하기 위한 알고리즘을 수행할 수 있다. 걸음 수 산출, 걷는 시간 산출 또는 달리는 시간 산출과 같은 동작은 종래 기술에 해당하므로, 자세한 설명을 생략할 수 있다.If the set conditions are not met, in operation 715, the processor 120 may determine that the pushing motion is not the wheelchair. The processor 120 determines whether the KLD output value is greater than or equal to the KLD reference value, the KLD average value calculated in operation 709 is greater than or equal to the KLD average threshold value, or the acceleration variance value calculated in operation 710 is less than or equal to the variance threshold. It may be determined that the set conditions are not met. When the KLD output value, the KLD average value, or the acceleration variance value does not correspond to any of the set conditions, the processor 120 may determine that the wheelchair pushing motion is not. The processor 120 may determine that the motion other than the wheelchair pushing motion is an atypical motion such as walking or running. The processor 120 may perform an algorithm for acquiring exercise information (eg, walking time, number of steps, running time, etc.) according to the atypical motion. Since operations such as calculating the number of steps, calculating the walking time, or calculating the running time correspond to the prior art, a detailed description thereof may be omitted.
도 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 processor 120 of FIG. 1 ) of a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments includes an acceleration sensor (eg, the inertial sensor of FIG. 1 ). (150) may be used to measure acceleration data (or acceleration value or acceleration sensing value). The processor 120 may store acceleration data measured in real time according to a time sequence (eg, the time index 601) in a first acceleration buffer (eg, the acceleration buffer 603 of FIG. 6). The size of the first acceleration buffer 603 may be set equal to the size of the reference signal stored in the memory of the wearable device 101 (eg, the memory 110 of FIG. 1 ). Hereinafter, the size of the first acceleration buffer 603 is described as '120', but the present invention is not limited by the description. For example, in the time index 601, the first acceleration data measured at the first time (1) is stored in the first acceleration buffer 603, and the second acceleration data measured at the second time (2) is stored in the first acceleration buffer ( 601) can be stored. The processor 120 may continuously measure and store acceleration data in the first acceleration buffer 603 until the acceleration data is stored as much as the size of the first acceleration buffer 603 (eg, 120).
프로세서(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 first acceleration buffer 603 is stored, the processor 120 converts the probability distribution of the acceleration data stored in the first acceleration buffer 603 (eg, the first acceleration data to the 120th acceleration data) into a reference signal. The first KLD output value 811 can be obtained by comparing with the probability distribution of . The processor 120 may determine whether it is a wheelchair pushing motion based on the first KLD output value 811 . Alternatively, the processor 120 may further use the KLD average value or acceleration variance value in order to more accurately determine whether the motion is a wheelchair pushing motion. To this end, when the processor 120 obtains the first KLD output value 811, the first KLD output value 811 is stored in the KLD buffer 801, and the last acceleration data stored in the first acceleration buffer 603 (eg, 120 th acceleration data) may be stored in the second acceleration buffer 803 . The size of the KLD buffer 801 may be the same as or different from the size of the first acceleration buffer 603 or the second acceleration buffer 803 . For example, the size of the KLD buffer 801 or the size of the second acceleration buffer 803 is 150, which is the same and may be different from that of the first acceleration buffer 603. The present invention is not limited by the description.
이후, 프로세서(120)는 새로이 측정된 가속도 데이터(예: 121번째 가속도 데이터)를 제1 가속도 버퍼(603)에 저장하고, 제1 가속도 버퍼(603)에 저장된 가속도 데이터(예: 2번째 가속도 데이터부터 121번째 가속도 데이터)의 확률 분포를 기준 신호의 확률 분포와 비교하여 두번째 KLD 출력값을 획득할 수 있다. 프로세서(120)는 두번째 KLD 출력값을 획득하면, 두번째 KLD 출력값을 KLD 버퍼(801)에 저장하고, 제1 가속도 버퍼(603)에 저장된 마지막 가속도 데이터(예: 121번째 가속도 데이터)를 제2 가속도 버퍼(803)에 저장할 수 있다.Thereafter, the processor 120 stores the newly measured acceleration data (eg, 121st acceleration data) in the first acceleration buffer 603, and stores the acceleration data (eg, second acceleration data) stored in the first acceleration buffer 603. The second KLD output value may be obtained by comparing the probability distribution of the 121st acceleration data) with the probability distribution of the reference signal. When the processor 120 obtains the second KLD output value, the second KLD output value is stored in the KLD buffer 801, and the last acceleration data (eg, the 121st acceleration data) stored in the first acceleration buffer 603 is stored in the second acceleration buffer. (803).
도 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 processor 120 stores the 269th acceleration data measured at the time when the time index 601 is the 269th in the first acceleration buffer 603, and stores the acceleration data stored in the first acceleration buffer 603. The 150th KLD output value 817 may be obtained by comparing the probability distribution of the data (eg, the 150th acceleration data to the 269th acceleration data) with the probability distribution of the reference signal. When the processor 120 obtains the 150th KLD output value 817, it stores the 150th KLD output value 817 in the KLD buffer 801, and stores the last acceleration data stored in the first acceleration buffer 603 (eg, the 269th KLD output value 817). acceleration data) may be stored in the second acceleration buffer 803 . When the KLD output value is stored as much as the size of the KLD buffer 801 (eg, 150), the processor 120 may calculate the first KLD average value 813 based on the KLD output value stored in the KLD buffer 801. In addition, when acceleration data (eg, 120th to 269th acceleration data) is stored as much as the size (eg, 150) of the second acceleration buffer 803, the processor 120 stores the data stored in the second acceleration buffer 803. A first acceleration variance value 815 may be calculated based on the acceleration data.
프로세서(120)는 150번째 KLD 출력값(817), 제1 KLD 평균값(813), 또는 제1 가속도 분산값(815) 중 적어도 하나에 기반하여 움직임 분류(830)를 수행할 수 있다. 움직임 분류(830)는 정형 동작 또는 비정형 동작을 판단(또는 분류)하는 것일 수 있다. 상기 정형 동작은 휠체어 밀기 동작을 포함하고, 상기 비정형 동작은 상기 휠체어 밀기 동작을 제외한 모든 동작(예: 걷기, 걸음 수)을 포함할 수 있다. 예를 들어, 프로세서(120)는 150번째 KLD 출력값(817)이 KLD 기준값 미만에 해당하는 경우, 움직임 분류(830)에서 휠체어 밀기 동작으로 판단할 수 있다. 프로세서(120)는 150번째 KLD 출력값(817)이 KLD 기준값 이상인 경우, 움직임 분류(830)에서 휠체어 밀기 동작 아님으로 판단할 수 있다. The processor 120 may perform motion classification 830 based on at least one of the 150th KLD output value 817 , the first KLD average value 813 , and the first acceleration variance value 815 . The motion classification 830 may determine (or classify) a typical motion or an irregular motion. The standard motion may include a wheelchair pushing motion, and the atypical motion may include all motions (eg, walking, number of steps) except for the wheelchair pushing motion. For example, if the 150th KLD output value 817 corresponds to less than the KLD reference value, the processor 120 may determine the wheelchair pushing motion in the motion classification 830. When the 150th KLD output value 817 is equal to or greater than the KLD reference value, the processor 120 may determine that the wheelchair pushing motion is not the motion classification 830 .
또는, 프로세서(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 processor 120 determines that the 150th KLD output value 817 is less than the KLD reference value, the first KLD average value 813 is less than the KLD average threshold value, and the first acceleration variance value 815 exceeds the variance threshold value, In the motion classification 830, it may be determined as a wheelchair pushing motion. The processor 120 determines at least one of the fact that the 150th KLD output value 817 is greater than or equal to the KLD reference value, the first KLD average value 813 is greater than or equal to the KLD average threshold value, or the first acceleration variance value 815 is less than or equal to the variance threshold value. If applicable, it may be determined that the motion classification 830 is not a wheelchair pushing motion.
도 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 processor 120 stores the 270th acceleration data measured at the time when the time index 601 is the 270th in the first acceleration buffer 603, and stores the acceleration data stored in the first acceleration buffer 603. The 151st KLD output value 831 may be obtained by comparing the probability distribution of the data (eg, the 151st acceleration data to the 270th acceleration data) with the probability distribution of the reference signal. When the processor 120 obtains the 151st KLD output value 831, it stores the 151st KLD output value 831 in the KLD buffer 801, and stores the last acceleration data stored in the first acceleration buffer 603 (eg, the 270th KLD output value 831). acceleration data) may be stored in the second acceleration buffer 803 . When the KLD output value is stored as much as the size of the KLD buffer 801 (eg, 150), the processor 120 may calculate the second KLD average value 833 based on the KLD output value stored in the KLD buffer 801. In addition, when acceleration data is stored as much as the size of the second acceleration buffer 803 (eg, 150), the processor 120 stores the acceleration data stored in the second acceleration buffer 803 (eg, the 121st acceleration data to the 270th acceleration data). Data), the second acceleration variance value 835 may be calculated.
프로세서(120)는 151번째 KLD 출력값(831), 제2 KLD 평균값(833), 또는 제2 가속도 분산값(835) 중 적어도 하나에 기반하여 움직임 분류(850)를 수행할 수 있다. 예를 들어, 프로세서(120)는 151번째 KLD 출력값(831)이 KLD 기준값 미만에 해당하는 경우, 움직임 분류(850)에서 휠체어 밀기 동작으로 판단할 수 있다. 프로세서(120)는 151번째 KLD 출력값(831)이 KLD 기준값 이상인 경우, 움직임 분류(850)에서 휠체어 밀기 동작 아님으로 판단할 수 있다. The processor 120 may perform motion classification 850 based on at least one of the 151st KLD output value 831 , the second KLD average value 833 , and the second acceleration variance value 835 . For example, if the 151st KLD output value 831 corresponds to less than the KLD reference value, the processor 120 may determine the wheelchair pushing motion in the motion classification 850. When the 151st KLD output value 831 is equal to or greater than the KLD reference value, the processor 120 may determine that the wheelchair pushing motion is not the motion classification 850 .
또는, 프로세서(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 processor 120 determines that the 151st KLD output value 831 is less than the KLD reference value, the second KLD average value 833 is less than the KLD average threshold value, and the second acceleration variance value 835 exceeds the variance threshold value, In the motion classification 850, it may be determined as a wheelchair pushing motion. The processor 120 determines at least one of the fact that the 151st KLD output value 831 is greater than or equal to the KLD reference value, the second KLD average value 833 is greater than or equal to the KLD average threshold value, or the second acceleration variance value 835 is less than or equal to the variance threshold value. If applicable, it may be determined that the motion classification 850 is not a wheelchair pushing motion.
도 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 processor 120 of FIG. 1 ) of a wearable device (eg, the wearable device 101 of FIG. 1 ) estimates a probability density function using acceleration data. method can be used. In the present invention, among non-parametric density estimation methods, a kernel function-based density estimation method using a Gaussian function as a kernel function may be used. The first graph 910 may represent acceleration data 911 appearing during a wheelchair pushing motion and acceleration data 913 appearing when not a wheelchair pushing motion (eg, atypical motion).
제2 그래프(930)는 휠체어 밀기 동작일 때(예: 정형 동작) 커널 함수 생성 결과를 나타낸 것일 수 있다. 제1 신호(933)는 기준 신호의 커널 함수 추정 결과를 나타낸 것이고, 제2 신호(931)는 휠체어 밀기 동작일 때 실제로 측정된 가속도 데이터를 의미할 수 있다. 상기 기준 신호는 휠체어 밀기 동작(예: 도 4의 ①②③④)을 1회 수행할 때 발생하는 가속도 데이터를 의미할 수 있다. 제1 신호(933)와 제2 신호(931)를 비교하면, 유사한 특징을 가지는 것을 알 수 있다. The second graph 930 may indicate a kernel function generation result when a wheelchair pushing motion (eg, a orthopedic motion) is performed. The first signal 933 represents a kernel function estimation result of the reference signal, and the second signal 931 may mean acceleration data actually measured during a wheelchair pushing motion. The reference signal may refer to acceleration data generated when a wheelchair pushing motion (eg, ①②③④ in FIG. 4) is performed once. Comparing the first signal 933 and the second signal 931, it can be seen that they have similar characteristics.
제3 그래프(950)는 휠체어 밀기 동작이 아닐 때(예: 비정형 동작) 커널 함수 생성 결과를 나타낸 것일 수 있다. 제3 신호(953)는 기준 신호의 커널 함수 추정 결과를 나타낸 것이고, 제4 신호(951)는 휠체어 밀기 동작이 아닐 때 실제로 측정된 가속도 데이터를 의미할 수 있다. 제3 신호(953)와 제4 신호(951)를 비교하면, 유사한 특징을 가지지 않는 것을 알 수 있다. The third graph 950 may indicate a kernel function generation result when the wheelchair pushing motion is not (eg, atypical motion). A third signal 953 indicates a result of estimating the kernel function of the reference signal, and a fourth signal 951 may mean acceleration data actually measured when the wheelchair is not pushing. Comparing the third signal 953 and the fourth signal 951, it can be seen that they do not have similar characteristics.
따라서, 휠체어 밀기 동작일 때는 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 flowchart 1000 illustrating a method of counting a wheelchair pushing motion of a wearable device according to various embodiments. 10 may be performed after being recognized as a wheelchair pushing motion by FIG. 5 or 7 .
도 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 operation 1001, a processor (eg, processor 120 of FIG. 1 ) of a wearable device (eg, wearable device 101 of FIG. 1 ) according to various embodiments sets a second acceleration buffer (eg, processor 120 of FIG. 1 ). : New acceleration data may be stored in the second acceleration buffer 803 of FIGS. 8A to 8C. To recognize the wheelchair pushing motion, the processor 120 may determine whether 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. In order to calculate the acceleration dispersion value, acceleration data corresponding to the size of the second acceleration buffer 803 may be stored. Then, when a new acceleration is measured by an acceleration sensor (eg, the inertial sensor 150 of FIG. 1 ), the processor 120 may store new acceleration data in the second acceleration buffer 803 . For example, when the size of the second acceleration buffer 803 is 150, the 270th acceleration data may be stored as new acceleration data in the second acceleration buffer 803.
동작 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 operation 1003, the processor 120 may set a window for the set number of acceleration data. For example, the processor 120 may set one window to five acceleration data and assign (or allocate) a window index. Hereinafter, it is described that windows are set for 5 acceleration data, but windows may be set for more than 5 acceleration data (eg, 7, 9, 11). Examples are only for helping understanding of the invention, and the present invention is not limited by the examples. The second acceleration buffer 803 may store 121st to 270th acceleration data. The processor 120 may set the first window index to the 121st to 125th acceleration data. When updating the window, the processor 120 may set the second window index to the 122nd to 126th acceleration data. The processor 120 may sequentially set windows for acceleration data stored in the second acceleration buffer 803 in a window sliding manner.
동작 1005에서, 프로세서(120)는 윈도우 내 가속도 피크(peak)를 검출할 수 있다. 프로세서(120)는 상기 윈도우 내에 포함된 5개의 가속도 데이터를 각각 d(1), d(2), d(3), d(4), d(5) 라고 정의하고, 아래와 같은 판단식을 통해 가속도 피크를 결정할 수 있다. At operation 1005, the processor 120 may detect an acceleration peak within the window. The processor 120 defines the five acceleration data included in the window as d(1), d(2), d(3), d(4), and d(5), respectively, through the following determination formula. Acceleration peaks can be determined.
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 processor 120 may determine that an acceleration peak within the window is detected, and when the Condition value is 0, it may be determined that an acceleration peak within the window is not detected. The processor 120 may detect an acceleration peak based on third acceleration data (eg, d(3)), which is an intermediate value within the window. The above determination method is a method of detecting the minimum value of acceleration data as a peak, and this may be because the axis of the inertial sensor 150 used when determining a wheelchair pushing motion (e.g., ①②③④ in FIG. 4) is set to the x-axis. When the x-axis of the inertial sensor 150 performs an operation (e.g., ③) to return to the wheelchair after the wheelchair pushing operation, the direction of the user's hand changes to the opposite direction of the pushing, and a large acceleration is generated to more easily detect the peak. this could be possible
다양한 실시예들에 따르면, 사용자의 손끝 방향과 일치하는 관성 센서(150)의 축은 관성 센서(150)가 웨어러블 디바이스(101)에 배치된 위치에 따라 달라질 수 있다. 본 발명에서는 사용자의 손끝 방향과 일치하는 가속도 센서의 축을 'x축'으로 설정하고, x축의 가속도 데이터에 기반하여 휠체어 밀기 동작을 인식할 수 있다. 다만, 가속도 센서가 웨어러블 디바이스(101)에 배치된 위치에 따라 휠체어 밀기 동작에 사용하는 가속도 센서의 축은 y축 또는 z축이 될 수도 있다. 또한, 프로세서(120)는 가속도 데이터의 최대값을 이용하여 가속도 피크를 검출할 수도 있다.According to various embodiments, the axis of the inertial sensor 150 coincident with the direction of the user's fingertip may vary depending on the location where the inertial sensor 150 is disposed on the wearable device 101 . In the present invention, the axis of the acceleration sensor corresponding to the direction of the user's fingertip is set as the 'x-axis', and the pushing motion of the wheelchair can be recognized based on the acceleration data of the x-axis. However, the axis of the acceleration sensor used for pushing the wheelchair may be the y-axis or the z-axis according to the position where the acceleration sensor is disposed in the wearable device 101 . Also, the processor 120 may detect an acceleration peak using a maximum value of acceleration data.
동작 1005에서, 프로세서(120)는 윈도우 내 가속도 피크가 검출되는 경우(Condition 값이 1), 가속도 피크를 검출한 것으로 판단하고 동작 1007을 수행할 수 있다. 또한, 프로세서(120)는 윈도우 내 가속도 피크가 검출되지 않는 경우(Condition 값이 0), 가속도 피크를 검출하지 않은 것으로 판단하고 동작 1006을 수행할 수 있다. In operation 1005, when an acceleration peak within the window is detected (Condition value is 1), the processor 120 may determine that an acceleration peak is detected and perform operation 1007. In addition, when no acceleration peak is detected within the window (Condition value is 0), the processor 120 may determine that no acceleration peak is detected and perform operation 1006 .
가속도 피크를 검출하지 않은 것으로 판단되는 경우, 동작 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 operation 1006, the processor 120 may add a window index. If the window index is 1 (eg, the first window index) when operation 1003 is first performed, the window index may become 2 (eg, the second window index) when operation 1006 is performed. Processor 120 may perform operation 1006 and return to operation 1003 . When returning to operation 1003, the processor 120 may update the window and set a window corresponding to the added window index to the set number of acceleration data. For example, the processor 120 may set the second window index to the 122nd to 126th acceleration data.
다양한 실시예들에 따르면, 동작 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 operation 1003 is performed a second time, the window index may become 3 (eg, the third window index) when operation 1006 is performed. . Processor 120 may perform operation 1006 and return to operation 1003 . Returning to operation 1003, the processor 120 may set a window for the set number of acceleration data. For example, the processor 120 may set the third window index to the 123rd to 127th acceleration data.
가속도 피크를 검출한 것으로 판단되는 경우, 동작 1007에서, 프로세서(120)는 피크로 검출된 가속도 데이터를 반환(또는 식별)할 수 있다. 예를 들어, 프로세서(120)는 121번째 가속도 데이터부터 125번째 가속도 데이터 중에서 최소값을 가지는 가속도 데이터를 반환할 수 있다.When it is determined that an acceleration peak has been detected, in operation 1007, the processor 120 may return (or identify) acceleration data detected as a peak. For example, the processor 120 may return the acceleration data having the minimum value among the 121st to 125th acceleration data.
동작 1009에서, 프로세서(120)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터의 최소값을 검출할 수 있다. 가속도 데이터의 최소값을 검출하는 것은, 동작 1005에서 가속도 피크 검출 시 최소값을 가지는 가속도 데이터를 가속도 피크로 검출했기 때문일 수 있다. 가속도 피크 검출 시 최대값을 가지는 가속도 데이터를 가속도 피크로 검출하는 경우, 프로세서(120)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터의 최대값을 검출할 수 있다. 이하에서는, 발명의 이해를 돕기 위해, 가속도 데이터의 최소값을 검출하는 것으로 설명하고 있지만, 설명에 의해 본 발명이 제한되는 것은 아니다.In operation 1009 , the processor 120 may detect a minimum value of acceleration data stored in the second acceleration buffer 803 . The detection of the minimum value of the acceleration data may be because acceleration data having the minimum value is detected as an acceleration peak when the acceleration peak is detected in operation 1005 . When the acceleration data having the maximum value is detected as the acceleration peak upon detection of the acceleration peak, the processor 120 may detect the maximum value of the acceleration data stored in the second acceleration buffer 803 . Hereinafter, in order to help understanding of the present invention, it is described that the minimum value of acceleration data is detected, but the present invention is not limited by the description.
휠체어 밀기 동작(예: 도 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 inertial sensor 150 . Among the wheelchair pushing motions, the situation that receives the greatest acceleration may be the part where the direction of the hands changes for the motion to return to the wheelchair pushing motion (e.g., ③) after the hand pushes off the handle of the wheelchair. In order to consider only the largest peak, only peaks lower than a threshold may be considered. At this time, fixing the threshold to a constant may cause a peak detection error (or error) because the magnitude of the acceleration data varies according to the strength of the wheelchair pushing motion. The processor 120 may use an adaptive threshold to reduce a peak detection error occurring when the user performs a wheelchair pushing motion.
동작 1011에서, 프로세서(120)는 상기 가속도 데이터의 최소값에 기반하여 적응형 임계치를 선정(또는 결정)할 수 있다. 프로세서(120)는 제2 가속도 버퍼(803)에 저장된 가속도 데이터의 최소값의 설정된 기준치(예: 최소값의 10%에 해당하는 가속도 데이터)를 적응형 임계치로 결정할 수 있다. 프로세서(120)는 상기 가속도 피크 검출 시, 최소값을 가지는 가속도 데이터를 가속도 피크로 검출하기 때문에, 상기 가속도 데이터의 최소값에 기반하여 적응형 임계치를 설정할 수 있다. 프로세서(120)는 가속도 피크 검출 시 최대값을 가지는 가속도 데이터를 가속도 피크로 검출하는 경우, 제2 가속도 버퍼(803)에 저장된 가속도 데이터의 최대값의 설정된 기준치(예: 최대값의 90%에 해당하는 가속도 데이터)를 적응형 임계치로 결정할 수 있다.In operation 1011, the processor 120 may select (or determine) an adaptive threshold based on the minimum value of the acceleration data. The processor 120 may determine a set reference value (eg, acceleration data corresponding to 10% of the minimum value) of the minimum value of acceleration data stored in the second acceleration buffer 803 as an adaptive threshold. When the acceleration peak is detected, the processor 120 may set an adaptive threshold based on the minimum value of the acceleration data because it detects the acceleration data having the minimum value as the acceleration peak. When the processor 120 detects the acceleration data having the maximum value as the acceleration peak upon detection of the acceleration peak, the set reference value of the maximum value of the acceleration data stored in the second acceleration buffer 803 (e.g., corresponds to 90% of the maximum value). acceleration data) may be determined as an adaptive threshold.
새로운 가속도 데이터가 측정될 때마다, 제2 가속도 버퍼(803)에는 새로운 가속도 데이터가 저장되므로, 상기 적응형 임계치는 계속 변경될 수 있다. 제2 가속도 버퍼(803)에 저장되는 가속도 데이터가 변경되면, 제2 가속도 버퍼(803)에 저장된 가속도 데이터를 기준으로 적응형 임계치를 결정하므로, 상기 적응형 임계치는 동적으로 변경될 수 있다. 또는, 프로세서(120)는 새로운 윈도우를 갱신할 때마다 상기 적응형 임계치를 결정할 수 있다. 새로운 윈도우에서 가속도 피크가 검출되는 경우, 동작 1007 내지 동작 1011을 수행하므로, 프로세서(120)는 새로운 윈도우를 갱신할 때마다 상기 적응형 임계치를 결정할 수 있다.Whenever new acceleration data is measured, the new acceleration data is stored in the second acceleration buffer 803, so that the adaptive threshold can be continuously changed. When the acceleration data stored in the second acceleration buffer 803 is changed, the adaptive threshold may be dynamically changed because the adaptive threshold is determined based on the acceleration data stored in the second acceleration buffer 803. Alternatively, the processor 120 may determine the adaptive threshold whenever a new window is updated. When an acceleration peak is detected in a new window, operations 1007 to 1011 are performed, so that the processor 120 can determine the adaptive threshold every time a new window is updated.
예를 들어, 동작 1009 및 동작 1011을 첫번째 수행했을 때 결정된 첫번째 적응형 임계치는 동작 1009 및 동작 1011을 두번째 수행했을 때 결정된 두번째 적응형 임계치와 동일하거나, 또는 상이할 수 있다.For example, a first adaptive threshold determined when operations 1009 and 1011 are first performed may be the same as or different from a second adaptive threshold determined when operations 1009 and 1011 are performed a second time.
동작 1013에서, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인지 여부를 판단할 수 있다. 동작 1009 및 동작 1011에 의해 상기 적응형 임계치가 가속도 데이터의 "최소값"을 기반으로 결정된 것이므로, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인지 여부를 판단할 수 있다. 만약, 상기 적응형 임계치가 가속도 데이터의 "최대값"을 기반으로 결정되는 경우, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치를 초과하는지 여부를 판단할 수 있다. 상기 반환된 가속도 데이터는 1007에서 획득한 것이고, 상기 적응형 임계치는 동작 1011에서 획득한 것일 수 있다. 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인 경우, 동작 1015를 수행하고, 프로세서(120)는 상기 반환된 가속도 데이터가 상기 적응형 임계치 이상인 경우, 동작 1019를 수행할 수 있다.In operation 1013, the processor 120 may determine whether the returned acceleration data is less than the adaptive threshold. Since the adaptive threshold is determined based on the “minimum value” of the acceleration data in operations 1009 and 1011, the processor 120 may determine whether the returned acceleration data is less than the adaptive threshold. If the adaptive threshold is determined based on the “maximum value” of the acceleration data, the processor 120 may determine whether the returned acceleration data exceeds the adaptive threshold. The returned acceleration data may be obtained in operation 1007 and the adaptive threshold may be obtained in operation 1011 . The processor 120 may perform operation 1015 when the returned acceleration data is less than the adaptive threshold, and may perform operation 1019 when the returned acceleration data is greater than or equal to the adaptive threshold.
상기 반환된 가속도 데이터가 상기 적응형 임계치 미만인 경우, 동작 1015에서, 프로세서(120)는 윈도우 인덱스간의 차이(또는 간격)가 인덱스 임계치를 초과하는지 여부를 판단할 수 있다. 상기 윈도우 인덱스는 동작 1003에서 부여된 윈도우 인덱스일 수 있다. 휠체어 밀기 동작(예: 도 4의 ①②③④)을 한번 수행하는 데는 일정한 시간이 소요될 수 있다. 휠체어 밀기 동작을 빠르게 또는 느리게 수행하더라도 한번의 휠체어 밀기 동작을 수행하는 데는 일정한 시간이 소요될 수 있다. 상기 인덱스 임계치는 휠체어 밀기 동작의 카운트 시에 카운트 오류를 줄이기 위한 것일 수 있다. When the returned acceleration data is less than the adaptive threshold, in operation 1015, the processor 120 may determine whether a difference (or interval) between window indices exceeds an index threshold. The window index may be a window index given in operation 1003. It may take a certain amount of time to perform the wheelchair pushing motion (eg, ①②③④ in FIG. 4 ) once. Even if the wheelchair pushing motion is performed quickly or slowly, it may take a certain amount of time to perform one wheelchair pushing motion. The index threshold may be used to reduce count errors when counting wheelchair pushing motions.
가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 간격(또는 차이)이 너무 작으면 한번의 휠체어 밀기 동작을 수행한 것으로 보기 어려울 수 있다. 프로세서(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 processor 120 may count the wheelchair pushing motion only when the interval between the window index determined as the previous wheelchair pushing motion and the window index determined as the subsequent wheelchair pushing motion exceeds the index threshold. The index threshold may be previously stored in the memory of the wearable device 101 (eg, the memory 110 of FIG. 1 ). The index threshold may be set such that an interval between two window indices in which an acceleration peak is detected is determined as one wheelchair pushing motion.
예를 들어, 프로세서(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 processor 120 performs one wheelchair pushing motion. may not be recognized as a detected acceleration peak. When the difference (or interval) between the window index in which the first acceleration peak is detected and the window index in which the second acceleration peak is detected exceeds the index threshold, the processor 120 converts the wheel chair pushing motion to the detected acceleration peak. Recognizable.
프로세서(120)는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치를 초과하는 경우, 동작 1017을 수행하고, 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치 이하인 경우, 동작 1019를 수행할 수 있다.The processor 120 performs operation 1017 when the difference between the two window indices detected as the acceleration peak exceeds the index threshold, and when the difference between the two window indices detected as the acceleration peak is less than or equal to the index threshold, the processor 120 performs operation 1017. 1019 can be done.
가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치를 초과하는 경우, 동작 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 operation 1017, the processor 120 may count the wheelchair pushing motion. The processor 120 may count the wheelchair pushing motion once every time operations 1001 to 1017 are performed. The processor 120 may store the counted number in the memory 110 and display the counted number on a display (eg, the display module 140 of FIG. 1 ). The processor 120 may calculate the wheelchair pushing time based on the number of times or time in which the wheelchair pushing motion is counted. The processor 120 may provide the number of times of pushing the wheelchair or the time of pushing the wheelchair as activity information (or exercise information). The processor 120 may analyze and provide a movement pattern of the user based on the wheelchair pushing motion. According to various embodiments, the processor 120 may provide a wheelchair mode, such as a walking mode or a running mode, as an exercise mode. When the wearable device 101 is set to the wheelchair mode, the processor 120 performs the operation of FIG. 5 or 7 to recognize the wheelchair pushing motion, and when recognized as a wheelchair pushing motion, the processor 120 performs the motion of FIG. 10 to push the wheelchair The number of operations can be counted.
다양한 실시예들에 따르면, 프로세서(120)는 휠체어 밀기 동작의 횟수에 기반하여 소모 칼로리를 계산하고, 계산된 소모 칼로리를 사용자에게 제공할 수 있다. 예를 들어, 프로세서(120)는 휠체어 밀기 동작의 횟수가 카운트될 때마다 기초 대사량 또는 추가 칼로리를 더하여 하루 동안 소모된 칼로리를 계산할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작의 속도에 기반하여 상기 소모 칼로리를 계산할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작의 속도가 빠른 경우(예: 속도 임계치 초과), 추가 소모 칼로리를 계산하고, 상기 휠체어 밀기 동작의 속도가 느린 경우(예: 속도 임계치 이하), 추가 소모 칼로리를 계산하지 않을 수 있다. 프로세서(120)는 상기 추가 소모 칼로리를 상기 소모 칼로리에 합산할 수 있다. 또는, 프로세서(120)는 상기 휠체어 밀기 동작의 속도가 빠른 경우, 활발한 휠체어 밀기 동작으로 인식하고, 상기 휠체어 밀기 동작의 속도가 느린 경우, 일반 휠체어 밀기 동작을 인식할 수 있다.According to various embodiments, the processor 120 may calculate calorie consumption based on the number of wheelchair pushing motions and provide the calculated calorie consumption to the user. For example, the processor 120 may calculate calories consumed during the day by adding a basal metabolic rate or additional calories each time the number of wheelchair pushing motions is counted. The processor 120 may calculate the calorie consumption based on the speed of the wheelchair pushing motion. The processor 120 calculates additional calories consumed when the speed of the wheelchair pushing motion is fast (eg, exceeds a speed threshold), and calculates additional calories consumed when the speed of the wheelchair pushing motion is slow (eg, below the speed threshold). may not be calculated. The processor 120 may add the additional calories burned to the calories burned. Alternatively, the processor 120 may recognize an active wheelchair pushing motion when the speed of the wheelchair pushing motion is fast, and recognize a normal wheelchair pushing motion when the speed of the wheelchair pushing motion is slow.
다양한 실시예들에 따르면, 프로세서(120)는 설정된 시간 동안(예: 3일, 7일 등) 휠체어 밀기 동작이 인식되지 않는 경우, 운동하라는 안내를 출력할 수 있다. 관성 센서(150)는 24 시간 내내 저전력으로 가속도 데이터를 측정할 수 있다. 프로세서(120)는 측정된 가속도 데이터에 기반하여 설정된 간격(예: 1일, 3일)으로 휠체어 밀기 동작이 인식되는지 여부를 판단할 수 있다. 상기 안내는 텍스트, 이미지, 비디오 또는 음성 중 적어도 하나를 포함할 수 있다. 상기 안내는 디스플레이 모듈(140)에 사용자 인터페이스를 표시하거나, 스피커(예: 도 1의 스피커(175))를 통해 음성을 출력할 수 있다. 프로세서(120)는 휠체어 밀기 횟수의 목표치를 설정하는 사용자 인터페이스를 제공할 수 있다. 사용자는 상기 사용자 인터페이스를 통해 걸음 수 목표치와 유사하게, 휠체어 밀기 횟수(예: 100회, 200회)를 설정할 수 있다.According to various embodiments, the processor 120 may output a guide to exercise when the wheelchair pushing motion is not recognized for a set period of time (eg, 3 days, 7 days, etc.). The inertial sensor 150 can measure acceleration data 24 hours a day with low power. The processor 120 may determine whether the wheelchair pushing motion is recognized at set intervals (eg, 1 day, 3 days) based on the measured acceleration data. The guide may include at least one of text, image, video, or voice. The guide may display a user interface on the display module 140 or output a voice through a speaker (eg, the speaker 175 of FIG. 1 ). The processor 120 may provide a user interface for setting a target value for the number of pushing the wheelchair. The user may set the number of times of pushing the wheelchair (eg, 100 times or 200 times) through the user interface similarly to the target number of steps.
프로세서(120)는 동작 1017에 의해 휠체어 밀기 동작을 1회 카운트한 후, 동작 1001로 리턴할 수 있다. 프로세서(120)는 동작 1001 내지 동작 1017을 반복적으로 수행하여 휠체어 밀기 동작을 카운트할 수 있다. The processor 120 may count the wheelchair pushing motion once in operation 1017 and then return to operation 1001 . The processor 120 may count the wheelchair pushing motion by repeatedly performing operations 1001 to 1017 .
상기 반환된 가속도 데이터가 적응형 임계치 이상이거나, 또는 가속도 피크로 검출된 두 개의 윈도우 인덱스 간의 차이가 상기 인덱스 임계치 이하인 경우, 동작 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 processor 120 may not count the wheelchair pushing motion in operation 1019. The processor 120 may return to operation 1001 without counting the wheelchair pushing motion. The processor 120 may perform the operation of FIG. 5 or 7 while performing FIG. 10 to recognize the wheelchair pushing motion. If the operation of FIG. 5 or 7 is not recognized as a wheelchair pushing motion, the processor 120 may not perform the operation of FIG. 10 . The processor 120 may perform the operation of FIG. 10 when the operation of FIG. 5 or 7 is recognized as a wheelchair pushing motion. According to various embodiments, when the operation 1019 is performed a set number of times (eg, 10 or 20 times), the processor 120 may stop the operation of FIG. 10 and perform the operation of FIG. 5 or 7. can
도 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 processor 120 of FIG. 1 ) of a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments generates a second acceleration buffer (eg, FIGS. 8A to 100 ). A window may be set for acceleration data stored in the second acceleration buffer 803 of FIG. 8C. The window setting 1110 may be set in a window sliding manner. The size of the second acceleration buffer 803 is 150, and 150 pieces of acceleration data can be stored in the second acceleration buffer 803. Referring to the window setting 1110, the processor 120 sets the first to fifth acceleration data stored in the second acceleration buffer 803 as the first window index 1111, and the second acceleration data to the fifth acceleration data. Up to 6 acceleration data is set as the 2nd window index 1112, from the 3rd acceleration data to the 7th acceleration data is set as the 3rd window index 1113, from the 4th acceleration data to the 8th acceleration data is set as the 4th window index (1114) can be set.
프로세서(120)는 제1 윈도우 인덱스(1111)를 설정하고, 도 10의 동작 1005를 수행할 수 있다. 동작 1005를 수행하여 제1 윈도우 인덱스(1111) 내에서 가속도 피크가 검출되지 않는 경우, 동작 1006에서, 프로세서(120)는 윈도우 인덱스를 하나 추가하여 동작 1003에서 제2 윈도우 인덱스(1112)를 설정할 수 있다. 또한, 동작 1005를 수행하여 제2 윈도우 인덱스(1112) 내에서 가속도 피크가 검출되지 않는 경우, 동작 1006에서, 프로세서(120)는 윈도우 인덱스를 하나 추가하여 동작 1003에서 제3 윈도우 인덱스(1113)를 설정할 수 있다. The processor 120 may set the first window index 1111 and perform operation 1005 of FIG. 10 . When an acceleration peak is not detected within the first window index 1111 by performing operation 1005, in operation 1006, the processor 120 may set the second window index 1112 in operation 1003 by adding one window index. there is. In addition, when the acceleration peak is not detected within the second window index 1112 by performing operation 1005, in operation 1006, the processor 120 adds one window index to obtain the third window index 1113 in operation 1003. can be set
그래프(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 graph 1130, the first window index 1111 includes first acceleration data 1131, second acceleration data 1133, third acceleration data 1135, fourth acceleration data 1137, and fifth acceleration data 1137. Acceleration data 1139 may be included. The processor 120 determines whether the third acceleration data 1135 is less than the first acceleration data 1131 or the third acceleration data 1135 is less than the second acceleration data 1133 according to the determination method described with reference to FIG. 10 . , It may be determined whether the third acceleration data 1135 is less than the fourth acceleration data 1137 or whether the third acceleration data 1135 is less than the fifth acceleration data 1139. When the third acceleration data 1135 is less than the first acceleration data 1131, the second acceleration data 1133, the fourth acceleration data 1137, and the fifth acceleration data 1139 (eg, Condition If the value is 1), it can be determined that an acceleration peak within the first window index 1111 is detected.
프로세서(120)는 제3 가속도 데이터(1135)가 제1 가속도 데이터(1131) 또는 제2 가속도 데이터(1133), 제4 가속도 데이터(1137), 제5 가속도 데이터(1139) 이상인 경우(예: Condition 값이 0), 제1 윈도우 인덱스(1111) 내 가속도 피크가 검출되지 않은 것으로 판단할 수 있다. 그래프(1130)에서는, 제1 윈도우 인덱스(1111) 내 가속도 피크가 검출되지 않은 일례를 나타낸 것일 수 있다.When the third acceleration data 1135 is greater than or equal to the first acceleration data 1131, the second acceleration data 1133, the fourth acceleration data 1137, or the fifth acceleration data 1139 (eg, Condition If the value is 0), it may be determined that the acceleration peak within the first window index 1111 is not detected. In the graph 1130, an example in which an acceleration peak in the first window index 1111 is not detected may be shown.
프로세서(120)는 제2 윈도우 인덱스(1112), 제3 윈도우 인덱스(1113) 또는 제4 윈도우 인덱스(1114)에 대하여 동일한 방법으로 윈도를 설정하고, 윈도우 내 가속도 피크를 검출할 수 있다.The processor 120 may set a window for the second window index 1112, the third window index 1113, or the fourth window index 1114 in the same way, and detect an acceleration peak within the window.
도 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 first graph 1210 and a second graph 1230 show a second acceleration buffer (eg, the second acceleration buffer of FIGS. 8A to 8C ) of a wearable device (eg, the wearable device 101 of FIG. 1 ). An example in which an adaptive threshold is determined based on a minimum value of acceleration data stored in the acceleration buffer 803 may be shown. During the wheelchair pushing motion (e.g., ①②③④ in FIG. 4), a number of acceleration peaks may be detected due to the user's hand movement type and the noise of the acceleration sensor (e.g., the inertial sensor 150 in FIG. 1). Among the wheelchair pushing motions, the situation that receives the greatest acceleration may be the part where the direction of the hands changes for the motion to return to the wheelchair pushing motion (e.g., ③) after the hand pushes off the handle of the wheelchair. In order to consider only the largest peak, only peaks smaller than the threshold can be considered. If the threshold is fixed at one value, an acceleration peak detection error may occur because the magnitude of acceleration data varies depending on the intensity of the wheelchair pushing motion. A processor of the wearable device 101 (eg, the processor 120 of FIG. 1 ) may use an adaptive threshold to reduce a peak detection error generated when a user performs a wheelchair pushing motion.
제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 first graph 1210, the first signal 1211 means acceleration data stored in the second acceleration buffer 803, and the second signal 1213 is based on the acceleration data stored in the second acceleration buffer 803. It shows the adaptive threshold determined by The second graph 1230 may be an enlarged view of a certain section of the first graph 1210 . In the second graph 1230, the third signal 1231 means acceleration data stored in the second acceleration buffer 803, and the fourth signal 1233 is based on the acceleration data stored in the second acceleration buffer 803. It shows the adaptive threshold determined by
제1 그래프(1210) 및 제2 그래프(1230)의 제2 신호(1231) 및 제4 신호(1233)를 보면, 적응형 임계치의 피크(예: 상단)가 계속 변경되는 것을 알 수 있다. 새로운 가속도 데이터가 측정될 때마다, 제2 가속도 버퍼(803)에는 새로운 가속도 데이터가 저장되므로, 상기 적응형 임계치는 계속 변경될 수 있다. 제2 가속도 버퍼(803)에 저장되는 가속도 데이터가 변경되면, 제2 가속도 버퍼(803)에 저장된 가속도 데이터를 기준으로 적응형 임계치를 결정하므로, 상기 적응형 임계치는 동적으로 변경될 수 있다. Looking at the second signal 1231 and the fourth signal 1233 of the first graph 1210 and the second graph 1230, it can be seen that the peak (eg, upper end) of the adaptive threshold is continuously changed. Whenever new acceleration data is measured, the new acceleration data is stored in the second acceleration buffer 803, so that the adaptive threshold can be continuously changed. When the acceleration data stored in the second acceleration buffer 803 is changed, the adaptive threshold may be dynamically changed because the adaptive threshold is determined based on the acceleration data stored in the second acceleration buffer 803.
도 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 first graph 1310 and a second graph 1330 are provided to prevent a count error of a wheelchair pushing motion based on whether a difference between two window indices detected as an acceleration peak exceeds an index threshold. An example may be shown. Referring to the first graph 1310, a processor (eg, the processor 120 of FIG. 1 ) of a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments generates a first acceleration peak detected. After 1 window index 1311, when the second window index 1313 where the acceleration peak is detected is detected, the difference (or interval) between the first window index 1311 and the second window index 1313 is the index threshold. It can be judged whether it exceeds . If the interval between the two window indices detected as the acceleration peak is too small, it may be difficult for the processor 120 to see that a single wheelchair pushing motion has been performed.
상기 인덱스 임계치는 웨어러블 디바이스(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 memory 110 of FIG. 1 ). The index threshold may be set such that an interval between two window indices in which an acceleration peak is detected is determined as one wheelchair pushing motion. For example, if the difference between the first window index 1311 and the second window index 1313 is less than or equal to an index threshold, the processor 120 determines that the wheelchair pushing motion is detected as an error, and does not count it as the number of times of the wheelchair pushing motion. may not be The processor 120 determines the difference between the first window index 1311 and the third window index 1315 when the third window index 1315 in which the acceleration peak is detected is detected after the second window index 1313 is detected. It may be determined whether or not exceeds the index threshold. When the difference between the first window index 1311 and the third window index 1315 exceeds an index threshold, the processor 120 may count the number of wheelchair pushing motions (eg, increase the wheelchair pushing motion by one time). .
제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 second graph 1330, a third graph 1331 before applying the index threshold and a fourth graph 1335 after applying the index threshold may be included. Looking at the third graph 1331, a plurality of window indices (eg, the first window index 1353, the second window index 1353, the third window index 1355, the fourth window index 1356, etc.) can be detected. If it is determined whether the difference between two window indices consecutive in time exceeds the index threshold, it may be determined that the second window index 1353 and the fourth window index 1356 exceed the index threshold. As shown in the third graph 1331, the processor 120 may count the wheelchair pushing motion 4 or more times before applying the index threshold, but may count the wheelchair pushing motion 2 times when the index threshold is applied.
도 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, processor 120 of FIG. 1 ) of a wearable device (eg, wearable device 101 of FIG. 1 ) according to various embodiments recognizes a wheelchair pushing motion, and The operation of counting may be repeatedly performed. At a first reference numeral 1400, a first graph 1401 represents signals according to acceleration data and motion classification when a wheelchair pushing motion is performed. The first signal 1410 may represent acceleration data measured by an acceleration sensor (eg, the inertial sensor 150 of FIG. 1 ) of the wearable device. The second signal 1413 indicates a signal according to motion classification, and may be a non-zero constant (eg, 30 in FIG. 14 ) when recognized as a wheelchair pushing motion, or 0 when not recognized as a wheelchair pushing motion. In the first graph 1401, a circle 1411 may mean that the wheelchair pushing motion is counted. In a first reference numeral 1400, a second graph 1403 represents acceleration data and signals according to motion classification when the wheelchair is not a pushing motion. The third signal 1431 is acceleration data measured by the inertial sensor 150, and the fourth signal 1433 represents a signal according to motion classification, and may be 0 when not recognized as a wheelchair pushing motion.
제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 second reference numeral 1450, a third graph 1405 represents signals according to acceleration data and motion classification when a wheelchair pushing motion is performed. The fifth signal 1460 is acceleration data measured by the inertial sensor 150, and the sixth signal 1463 represents a signal according to motion classification, which is a non-zero constant when recognized as a wheelchair pushing motion, and a wheelchair pushing motion. It can be 0 when it is not recognized as . In the third graph 1405, a circle 1461 may mean that the wheelchair pushing motion is counted. At second reference numeral 1450, a fourth graph 1407 shows signals according to acceleration data and motion classification when the wheelchair is not a pushing motion. The seventh signal 1471 is acceleration data measured by the inertial sensor 150, and the eighth signal 1473 indicates a signal according to motion classification, and may be 0 when not recognized as a wheelchair pushing motion.
도 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 processor 120 of FIG. 1 ) of a wearable device (eg, the wearable device 101 of FIG. 1 ) according to various embodiments counts a wheelchair pushing motion, and calculates the counted number of times. may be displayed on a display (eg, the display module 140 of FIG. 1). The first user interface 1510 may represent an example of providing the number of times of pushing a wheelchair or the time of pushing a wheelchair as activity information (or exercise information). The processor 120 may analyze and provide a movement pattern of the user based on the wheelchair pushing motion. According to various embodiments, the processor 120 may provide a wheelchair mode, such as a walking mode or a running mode, as an exercise mode. When the wearable device 101 is set to the wheelchair mode, the processor 120 performs the operation of FIG. 5 or 7 to recognize the wheelchair pushing motion, and when recognized as a wheelchair pushing motion, the processor 120 performs the motion of FIG. 10 to push the wheelchair The number of operations can be counted.
다양한 실시예들에 따르면, 프로세서(120)는 휠체어 밀기 동작의 횟수에 기반하여 소모 칼로리를 계산하고, 계산된 소모 칼로리를 사용자에게 제공할 수 있다. 제2 사용자 인터페이스(1530)는 휠체어 밀기 횟수, 휠체어 밀기 시간 또는 소모 칼로리 중 적어도 하나를 포함할 수 있다. 예를 들어, 프로세서(120)는 휠체어 밀기 동작의 횟수가 카운트될 때마다 기초 대사량 또는 추가 칼로리를 더하여 하루 동안 소모된 칼로리를 계산할 수 있다. 프로세서(120)는 상기 휠체어 밀기 동작의 속도에 기반하여 상기 소모 칼로리를 계산할 수 있다. According to various embodiments, the processor 120 may calculate calorie consumption based on the number of wheelchair pushing motions and provide the calculated calorie consumption to the user. The second user interface 1530 may include at least one of the number of times of pushing the wheelchair, the time of pushing the wheelchair, and calories burned. For example, the processor 120 may calculate calories consumed during the day by adding a basal metabolic rate or additional calories each time the number of wheelchair pushing motions is counted. The processor 120 may calculate the calorie consumption based on the speed of the wheelchair pushing motion.
다양한 실시예들에 따르면, 프로세서(120)는 설정된 시간 동안(예: 3일, 7일 등) 휠체어 밀기 동작이 인식되지 않는 경우, 운동하라는 안내를 출력할 수 있다. 상기 안내는 텍스트, 이미지, 비디오 또는 음성 중 적어도 하나를 포함할 수 있다. 상기 안내는 디스플레이 모듈(140)에 사용자 인터페이스를 표시하거나, 스피커(예: 도 1의 스피커(175))를 통해 음성을 출력할 수 있다. 프로세서(120)는 휠체어 밀기 횟수의 목표치를 설정하는 사용자 인터페이스를 제공할 수 있다. 사용자는 상기 사용자 인터페이스를 통해 걸음 수 목표치와 유사하게, 휠체어 밀기 횟수(예: 100회, 200회)를 설정할 수 있다.According to various embodiments, the processor 120 may output a guide to exercise when the wheelchair pushing motion is not recognized for a set period of time (eg, 3 days, 7 days, etc.). The guide may include at least one of text, image, video, or voice. The guide may display a user interface on the display module 140 or output a voice through a speaker (eg, the speaker 175 of FIG. 1 ). The processor 120 may provide a user interface for setting a target value for the number of pushing the wheelchair. The user may set the number of times of pushing the wheelchair (eg, 100 times or 200 times) through the user interface similarly to the target number of steps.
본 발명의 다양한 실시예들에 따른 웨어러블 디바이스(예: 도 1의 웨어러블 디바이스(101))의 동작 방법은 상기 웨어러블 디바이스에 포함된 관성 센서(예: 도 1의 관성 센서(150))를 이용하여 가속도 데이터를 측정하는 동작, 상기 측정된 가속도 데이터를 상기 웨어러블 디바이스의 메모리(예: 도 1의 메모리(110))의 가속도 버퍼에 저장하는 동작, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장되었는지 판단하는 동작, 상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장된 경우, KLD 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하는 동작, 상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하는 동작, 및 상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하는 동작을 포함할 수 있다.An operating method of a wearable device (eg, the wearable device 101 of FIG. 1) according to various embodiments of the present invention uses an inertial sensor (eg, the inertial sensor 150 of FIG. 1) included in the wearable device. An operation of measuring acceleration data, an operation of storing the measured acceleration data in an acceleration buffer of a memory (eg, memory 110 of FIG. 1) of the wearable device, and determining whether the acceleration data is stored as much as the size of the acceleration buffer operation, when the acceleration data is stored as much as the size of the acceleration buffer, obtaining a KLD output value by comparing the probability distribution of the measured acceleration data with the probability distribution of the reference signal stored in the memory through the KLD algorithm; An operation of determining whether one KLD output value is less than the KLD reference value, and an operation of recognizing as a wheelchair pushing motion when the obtained KLD output value is less than the KLD reference value may be included.
상기 인식하는 동작은, 상기 획득한 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.

Claims (15)

  1. 웨어러블 디바이스에 있어서,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;
    KLD(Kullback-Leivler divergence) 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하고, 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;
    상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하고,Determine whether the obtained KLD output value is less than the KLD reference value,
    상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하도록 설정된 웨어러블 디바이스.When the obtained KLD output value is less than the KLD reference value, a wearable device configured to recognize a wheelchair pushing motion.
  2. 제1항에 있어서, 상기 프로세서는,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.
  3. 제1항에 있어서, 상기 프로세서는,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.
  4. 제1항에 있어서, 상기 프로세서는,The method of claim 1, wherein the processor,
    상기 획득한 KLD 출력값에 기반하여 KLD 평균값을 산출하고,Calculate a KLD average value based on the obtained KLD output value,
    상기 측정된 가속도 데이터에 기반하여 가속도 분산값을 산출하고,Calculate an acceleration dispersion value based on the measured acceleration data,
    상기 KLD 출력값, 상기 KLD 평균값 또는 상기 가속도 분산값 중 적어도 하나에 기반하여 상기 휠체어 밀기 동작을 인식하도록 설정된 웨어러블 디바이스.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.
  5. 제4항에 있어서, 상기 프로세서는,The method of claim 4, wherein the processor,
    상기 획득한 KLD 출력값을 KLD 버퍼에 저장하고,Store the obtained KLD output value in a KLD buffer,
    상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장되었는지 판단하고,Determine whether the KLD output value is stored as much as the size of the KLD buffer,
    상기 KLD 버퍼의 크기만큼 KLD 출력값이 저장된 경우, 상기 KLD 버퍼에 저장된 KLD 출력값의 평균값을 산출하도록 설정된 웨어러블 디바이스.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.
  6. 제4항에 있어서, According to claim 4,
    상기 가속도 버퍼를 제1 가속도 버퍼라 하고,The acceleration buffer is referred to as a first acceleration buffer,
    상기 프로세서는,the processor,
    상기 제1 가속도 버퍼의 크기만큼 저장된 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하고,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,
    상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장되었는지 판단하고,Determine whether acceleration data is stored as much as the size of the second acceleration buffer;
    상기 제2 가속도 버퍼의 크기만큼 가속도 데이터가 저장된 경우, 상기 제2 가속도 버퍼에 저장된 가속도 데이터의 가속도 분산값을 산출하도록 설정된 웨어러블 디바이스.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.
  7. 제6항에 있어서, 상기 프로세서는,The method of claim 6, wherein the processor,
    상기 제1 가속도 버퍼의 크기만큼 저장된 경우, 상기 제1 가속도 버퍼에 저장된 마지막 가속도 데이터를 상기 제2 가속도 버퍼에 저장하도록 설정된 웨어러블 디바이스.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.
  8. 제4항에 있어서, 상기 프로세서는,The method of claim 4, wherein the processor,
    상기 KLD 출력값, 상기 KLD 평균값 또는 상기 가속도 분산값 중 적어도 하나가 설정된 조건에 해당되는 경우, 상기 휠체어 밀기 동작으로 인식하도록 설정된 웨어러블 디바이스.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.
  9. 제8항에 있어서, According to claim 8,
    상기 설정된 조건은 상기 KLD 출력값이 KLD 기준값 미만이고, 상기 KLD 평균값이 KLD 평균 임계치 미만이며, 상기 가속도 분산값이 분산 임계치를 초과하는 것 중 적어도 하나를 포함하도록 설정된 웨어러블 디바이스.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.
  10. 제1항에 있어서, According to claim 1,
    상기 가속도 버퍼를 제1 가속도 버퍼라 하고,The acceleration buffer is referred to as a first acceleration buffer,
    상기 프로세서는,the processor,
    상기 휠체어 밀기 동작으로 인식되는 경우, 상기 제1 가속도 버퍼에 저장된 가속도 데이터를 제2 가속도 버퍼에 저장하고,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;
    상기 제2 가속도 버퍼에 저장된 가속도 데이터 중 설정된 개수의 가속도 데이터에 윈도우를 설정하고,Setting a window to the set number of acceleration data among the acceleration data stored in the second acceleration buffer;
    상기 윈도우 내 가속도 피크(peak)를 검출하고,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.
  11. 제10항에 있어서, 상기 프로세서는, 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.
  12. 제11항에 있어서, 상기 프로세서는,The method of claim 11, wherein the processor,
    상기 제2 가속도 버퍼에 저장된 가속도 데이터의 최소값을 검출하고,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.
  13. 제12항에 있어서, 상기 프로세서는,The method of claim 12, wherein the processor,
    상기 제2 가속도 버퍼에 새로운 가속도 데이터가 저장되거나, 또는 상기 윈도우를 갱신할 때마다 상기 적응형 임계치를 변경하도록 설정된 웨어러블 디바이스.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.
  14. 제10항에 있어서, 상기 프로세서는,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.
  15. 웨어러블 디바이스의 동작 방법에 있어서,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;
    상기 가속도 버퍼의 크기만큼 상기 가속도 데이터가 저장된 경우, KLD 알고리즘을 통해 상기 측정된 가속도 데이터의 확률 분포와 상기 메모리에 저장된 기준 신호의 확률 분포를 비교하여 KLD 출력값을 획득하는 동작;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;
    상기 획득한 KLD 출력값을 KLD 기준값 미만인지 여부를 판단하는 동작; 및determining whether the obtained KLD output value is less than a KLD reference value; and
    상기 획득한 KLD 출력값이 상기 KLD 기준값 미만인 경우, 휠체어 밀기 동작으로 인식하는 동작을 포함하는 방법.And if the obtained KLD output value is less than the KLD reference value, recognizing it as a wheelchair pushing motion.
PCT/KR2022/016370 2022-01-12 2022-10-25 Method for calculating exercise information related to wheelchair, and wearable device WO2023136433A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220004717 2022-01-12
KR10-2022-0004717 2022-01-12
KR1020220013725A KR20230109042A (en) 2022-01-12 2022-01-28 Wearable device and method for calculating exercise information related to wheelchair
KR10-2022-0013725 2022-01-28

Publications (1)

Publication Number Publication Date
WO2023136433A1 true WO2023136433A1 (en) 2023-07-20

Family

ID=87279285

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/016370 WO2023136433A1 (en) 2022-01-12 2022-10-25 Method for calculating exercise information related to wheelchair, and wearable device

Country Status (1)

Country Link
WO (1) WO2023136433A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040046803A (en) * 2002-11-28 2004-06-05 이원진 mobile type walking characteristic analysis system using an accelerometer
KR101647634B1 (en) * 2016-04-28 2016-08-11 (주)비에네스소프트 Apparatus and method for handling emergency situation of wheel chair a passenger
JP2018526060A (en) * 2015-06-30 2018-09-13 アイシュー, インコーポレイテッド Fall risk identification using machine learning algorithms
US20200367789A1 (en) * 2018-01-05 2020-11-26 Interaxon Inc Wearable computing apparatus with movement sensors and methods therefor
WO2021140450A1 (en) * 2020-01-06 2021-07-15 Veridium Ip Limited System and method for disentangling features specific to users, actions and devices recorded in motion sensor data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040046803A (en) * 2002-11-28 2004-06-05 이원진 mobile type walking characteristic analysis system using an accelerometer
JP2018526060A (en) * 2015-06-30 2018-09-13 アイシュー, インコーポレイテッド Fall risk identification using machine learning algorithms
KR101647634B1 (en) * 2016-04-28 2016-08-11 (주)비에네스소프트 Apparatus and method for handling emergency situation of wheel chair a passenger
US20200367789A1 (en) * 2018-01-05 2020-11-26 Interaxon Inc Wearable computing apparatus with movement sensors and methods therefor
WO2021140450A1 (en) * 2020-01-06 2021-07-15 Veridium Ip Limited System and method for disentangling features specific to users, actions and devices recorded in motion sensor data

Similar Documents

Publication Publication Date Title
WO2018117704A1 (en) Electronic apparatus and operation method thereof
WO2010126321A2 (en) Apparatus and method for user intention inference using multimodal information
WO2020171518A1 (en) Electronic device for adaptive power management
WO2020050530A1 (en) Electronic device including ultrasonic in-display fingerprint sensor and operating method thereof
WO2020213842A1 (en) Multi-model structures for classification and intent determination
WO2021149882A1 (en) User authentication method and device for executing same
EP3539056A1 (en) Electronic apparatus and operation method thereof
WO2020101435A1 (en) Method for sensing external shock and electronic device therefor
WO2020171563A1 (en) Electronic device and method for controlling operation of display in same
WO2020091505A1 (en) Electronic device and method for intelligent interaction thereof
WO2019172642A1 (en) Electronic device and method for measuring heart rate
WO2019245331A1 (en) Text input device and method therefor
WO2020060311A1 (en) Electronic device and method for providing or obtaining data for training thereof
WO2023136433A1 (en) Method for calculating exercise information related to wheelchair, and wearable device
WO2021025396A1 (en) Method and device for detecting fall accident by using sensor in low power state
WO2019054715A1 (en) Electronic device and feedback information acquisition method therefor
WO2020130633A1 (en) Location based operation method, electronic device and storage medium
EP3799557A1 (en) Electronic device and method for providing personalized biometric information based on biometric signal using same
WO2022158692A1 (en) Electronic device for identifying force touch and method for operating same
WO2021157975A1 (en) Audio output device and method to detect wearing thereof
WO2020171547A1 (en) Method of managing multi tasks and electronic device therefor
WO2020116926A1 (en) Electronic device for detecting location of user and method thereof
WO2022186508A1 (en) Electronic device and control method therefor
WO2020032522A1 (en) Apparatus for unlocking electronic device by using stylus pen and method thereof
KR20230109042A (en) Wearable device and method for calculating exercise information related to wheelchair

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22920763

Country of ref document: EP

Kind code of ref document: A1