the present invention relates generally to monitoring devices and more specifically to classifying activities utilizing such devices . the following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements . various modifications to the preferred embodiments and the generic principles and features described herein will be readily apparent to those skilled in the art . thus , the present invention is not intended to be limited to the embodiments shown , but is to be accorded the widest scope consistent with the principles and features described herein . a system and method in accordance with the present invention describes an inertial activity classification device , comprising of any combination of sensors , such as an accelerometer , gyroscope , temperature sensor , pressure sensor , magnetometer , or microphone , and a method for classifying an activity based on features derived from inertial data , and the ability to continually report an activity derived from physical activity . in an embodiment the system and method improves the long - term viability of a multi - sensor inertial activity classification device by offering a decision scheme for power management , allowing the usage of relatively higher power devices , such as a gyroscope , for more accurate sensing and activity classification without the associated reduction in battery life . a system and method in accordance with an embodiment also provides an improvement in the accuracy of a device by being able to identify walking , jogging , and running phases of motion , for the purpose of increasing the relevance of the reported data for calorie counting purposes , and also to reject false positive “ steps ” in the counted number of steps . the identification of activities allows the device to more accurately track steps when walking , running , etc ., while rejecting “ steps ” recorded during shaking , driving , or other inactive movements . accordingly motion tracking information , such as number of steps to be reported at an appropriate time is allowed based on an activity . to describe the features of the present invention in more detail refer now to the following description in conjunction with the accompanying figures . fig1 is a block diagram of a system 10 that utilizes an activity classification algorithm 100 in accordance with an embodiment . the system 10 includes a device 11 . the device 11 may include any type of mobile device including but not limited to , a cell phone , a tablet pc , or other type of portable electronic device . the device 11 receives input data from a plurality of sensors such as one or more magnetometers 12 , one or more accelerometers 14 and one or more gyroscopes 16 . although the sensors 12 , 14 and 16 are shown external to the device 11 , one of ordinary skill in the art readily recognizes that those sensors could be internal to the device 11 and that would be within the spirit and scope of the present invention . the device 11 includes memory 18 for storing data . in the described embodiment , sensors refer to magnetometer 12 , accelerometer 14 or gyroscope 16 . data 20 stores data from the one or more sensors . memory 18 also includes algorithm 100 in accordance with the present invention . algorithm 100 may include software code for , but not limited to activity classification and sensor fusion . in the described embodiments , sensor fusion may include consolidating data from magnetometer 12 , accelerometer 14 and gyroscope 16 and generating sensor fusion data . a processor 24 executes the algorithm 100 which operates on the data received from the sensors . the processor 24 provides the sensor fusion data 19 . the sensor fusion data 19 provides orientation information of the device . a system that utilizes an activity classification algorithm 100 in accordance with the present invention can take the form of an entirely hardware implementation , an entirely software implementation , or an implementation containing both hardware and software elements . in one implementation , this activity classification algorithm is implemented in software , which includes , but is not limited to , application software , firmware , resident software , microcode , etc . furthermore , the activity classification algorithm 100 can take the form of a computer program product accessible from a computer - usable or computer - readable medium providing program code for use by or in connection with a computer or any instruction execution system . for the purposes of this description , a computer - usable or computer - readable medium can be any apparatus that can contain , store , communicate , propagate , or transport the program for use by or in connection with the instruction execution system , apparatus , or device . the medium can be an electronic , magnetic , optical , electromagnetic , infrared , or semiconductor system ( or apparatus or device ) or a propagation medium . examples of a computer - readable medium include a semiconductor or solid state memory , magnetic tape , a removable computer diskette , a random access memory ( ram ), a read - only memory ( rom ), a rigid magnetic disk , and an optical disk . current examples of optical disks include dvd , compact disk - read - only memory ( cd - rom ), and compact disk - read / write ( cd - r / w ). to describe the features of the present invention in more detail , refer now to the following description in conjunction with the accompanying figures . in an embodiment an inertial activity classification device includes any combination of sensors , such as an accelerometer , gyroscope , temperature sensor , pressure sensor , magnetometer , or microphone , and an algorithm for classifying an activity based on features derived from inertial data , and the ability to continually report an activity derived from physical activity . a system in accordance with an embodiment relies on multiple sensors and an activity classification algorithm in order to improve accuracy of the activity recognition results . the inclusion of a sensor has the effect of improving accuracy , stability , or algorithm performance . fig2 a is a diagram of an activity classification system 100 wherein more than one processor is operating in accordance with an embodiment . in an embodiment , components include one or more sensors 102 , raw data 104 , the activity classification algorithm 100 , and one or more processors 108 a - 108 n . the set of sensors could be any combination of a 1 , 2 , or 3 - axis accelerometer , a 1 , 2 , or 3 - axis gyroscope , a 1 , 2 , or 3 - axis magnetometer , a pressure sensor , a temperature sensor , and a microphone . such an activity could also be utilized in an embodiment where there are one or more sensors worn by a user on various parts of the body . fig2 b is a diagram of an activity system 150 wherein one or more sensors are utilized in a wireless environment in accordance with an embodiment . as is seen , the activity stem includes two sensor systems 160 a and 160 b that communicate wirelessly to a host system 165 . host system 165 can be connected wirelessly to any number of sensor systems . in an example , sensor system 160 a could be attached to an arm of a user and sensor system 160 b could be could be coupled to a leg of the user . each of the sensor systems 160 a and 160 b include a sensor 170 a and 170 b respectively for receiving activity data . each of the sensors 170 a and 170 b is coupled to a processor 172 a and 172 b respectively which receives the activity data from the sensor . each of the processors 172 a and 172 b then provides the data to its respective radio 174 a and 174 b . the radios 174 a and 174 b transmit the data wirelessly to the host system 165 . the host system 165 comprises a wireless receiver 176 which receives the data from radios 174 a and 174 b and a processor 178 which executes the activity classification algorithm 100 ′. in another embodiment , sensor systems and the host system can be connected by wires . in another embodiment , the host system can reside on a sensor system and connect to other sensor systems . fig3 illustrates an activity classification device 200 to be worn as if it were a wrist watch . activity classification device 200 is strapped to a user and is designed for portable media devices . in operation , a wearable module &# 39 ; s microcontroller within the device 200 collects data from the inertial sensors , such as a gyroscope and or accelerometer within the device 200 , calculating a set of features from each data . in an implementation , included are a signal mean , standard deviation , energy , and entropy , as calculated from signal sources ; raw accelerometer magnitude , raw gyroscope magnitude , and calculated signals resulting from a set of libraries that provide data for motion processing , such as : linear world - frame acceleration ( x , y , z ), linear body - frame acceleration ( x , y , z ), angular world frame rate ( x , y , z ), angular body frame rate ( x , y , z ), utilizing the following calculators . accelerometer / gyro magnitude =√{ square root over ( x 2 + y 2 + z 2 )} equation 1 mean and standard deviation are simple measures of the average value , and typical variance of the source signal . energy and entropy are the result of measures of a frequency space transformation , using an fft . energy is a measure of the “ energy ” of a signal which results from frequency information ( i . e . steady state or dc signals have energy of 0 ), while entropy ( also called “ spectral entropy ”) is a measure of how spread apart the signal frequencies are ( lower value indicate fewer frequencies , while higher values indicate multiple frequencies present in the source signal . for example , these features can be calculated over a 10 second data collection period ( approximately 1024 data points @ 100 hz data collection rate ), using the following equations : standard deviation =√{ square root over ( σ i = 1 n ( x ( i )− x mean ) 2 /( n − 1 ))}{ square root over ( σ i = 1 n ( x ( i )− x mean ) 2 /( n − 1 ))} equation 3 energy = σ i = 1 n fft x ( i ) 2 / n equation 4 entropy = σ i = 1 n ( fft x ( i ))( log ( fft x ( i ))/ n equation 5 where n = number of samples within the collection period , and fftx contains the elements of a fast fourier transform of the original signal . referring back to fig2 , in an embodiment , signal features calculated within the device , or raw data 104 can be transmitted to a host device 108 a - 108 n or other microcontroller based system , where the features can be calculated in real time . the processing power required is largely dominated by the ability to take an fft of the signal . while not required for the present invention , the inclusion of the fft based features improve the accuracy of the system and improve the performance of the pedometer feature . additional features may be added , based on the fft results , or other transformations , i . e . wavelet transforms ( used commonly in image compression technology ), run length - encoding , differentiation , integration , or a combination of those techniques . using the features , activities can be differentiated from one another for analyzing whether the user is wearing the device ( or not ), and detecting what activity the user is engaged in . for example , when the activity transitions between standing , to walking , to running , the values of features increase , and a simple rule can be created for a feature . if an accelerometer standard deviation is above some threshold a , then the user is assumed to be running ; otherwise , if the accelerometer standard deviation is above threshold b , the user is assumed to be walking , else the user is assumed to be standing , and therefore no “ steps ” should be recorded , as they likely occur from another type of activity . with a collection of independent features for every 10 seconds of data collected , numerous rules can be created which identify an activity into one of those categories . fig4 illustrates an example of an algorithm for a decision tree 400 generation that is utilized to identify a plurality of activities . to improve the performance and accuracy of the approach , modern machine learning and statistical processing techniques can be applied . for example , the algorithm can be applied to previously classified sets of data collected during “ walking ,” “ running ,” “ stair climbing ,” or a number of other activities that would not be associated with a step , such as “ waving ,” “ shaking ,” “ sitting ,” “ driving a car ,” etc . there are published algorithms such as c4 . 5 which uses a technique of choosing features to classify the data based on maximizing the information entropy gained by using a specific feature . using the c4 . 5 , a decision tree 400 can be generated to classify the current sensed features , calculated from the inertial sensor values , with a high degree of accuracy ( typically above 95 %). the decision tree 400 may be calculated on the device itself , or as a post or pre - process in which the decision tree 400 is classified based on previously collected data , then programmed or “ hard coded ” into the device itself . ideally a user will have been “ trained ” into the classifier set , to maximize the performance and accuracy of user activity classification , although with a sufficient sample of similar users , “ training ” is not required . including a multitude of users within a training set creates a generalized classifier , which improves performance of un - trained users . alternate algorithms exist ( id3 , see5 , k - means clustering , hmm &# 39 ; s , etc .) which could be applied instead of the c4 . 5 technique to generate the decision tree . clustering techniques involve computing the likelihood a current set of features matches a specific activity by comparing the relative “ distance ” between the feature groups . such techniques have been successfully applied and tested in accordance with an embodiment . in an embodiment the system and method improves the long - term viability of a multi - sensor inertial activity classification device by offering a decision scheme for power management , allowing the usage of relatively higher power devices , such as a gyroscope , for more accurate sensing and activity classification without the associated reduction in battery life . fig5 illustrates the power management process 500 for low power mode sensor variance tracking in accordance with an embodiment . in an embodiment , the power management process 500 resides within the activity classification algorithm . the power management process 500 utilizes the set of sensors and their derived features that can be utilized to correctly classify activities with a high degree of accuracy . the power management process 500 can then be put in a low power mode until the low power mode sensors measure an activity transition . in the described embodiments , a low power mode refers to reducing the sampling data rate of sensors or placing the device in standby or shutting off one or more sensors that are being fed into the algorithm . typically , low power is accomplished by placing the gyroscope in a standby mode . sensor output magnitude , linear world frame acceleration , linear body acceleration , angular world frame rate , and angular body frame rate , are used for the activity classification step . referring back to fig5 , first the activity classification device operates in “ full power mode ” where a gyroscope , an accelerometer , and a magnetometer ( if present ) collect data , and a microcontroller processes all relevant features . the device then performs activity classification based on clustering , decision tree , or other some other model with confidence , via step 502 where the activity is recognized . second , when the confidence level of the reported activity is sufficiently high , the device can store the current accelerometer values in 506 and then shut off the gyroscope , v , to enter a “ low power mode .” confidence may be computed , via step 502 as the percentage of feature sets / samples identified as the current activity during a predetermined time period such as the last 10 seconds , or by distance from the current sample to the appropriate generated cluster , or other method . third , when in “ low power mode ” the accelerometer is still active and collecting data . the values and associated features stored in step 506 are compared as to whether transitioning to a new activity , by comparing the variance between the current data and stored values when sensor fusion is turned off , via step 508 . fourth , the value of the variance of accelerometer derived features is evaluated . if the variance is sufficiently large , the device will transition back to “ full power mode ”, to classify the current ( assumed to be different ) activity , via step 510 . it is possible , and perhaps desirable , to also trigger the reclassification if the activity transitions to sub - activities ( slower running / jogging as compared to sprint running ), so levels can be chosen which allow for the activity transitions while maintaining a reasonable range of values where the sensor will remain off , thus saving power . the power management process is the equivalent of storing the low power mode features of an activity e . g . “ running ,” detecting a change in the low power mode features which would indicate a new activity . by comparing each feature independently , the likelihood of detecting a new trained activity with the power management process is high . by utilizing the power management process , the device will save power according to the amount of time a specific activity is maintained . “ sitting ,” “ sleeping ,” “ standing ,” “ driving ,” or “ walking ” can be assumed to last for several hours throughout the day , while short periods of heavy activity , such as : “ making dinner ” or “ getting into the car ” would be expected to require the gyroscope to be “ on ” for correct identification , but would last for much shorter amounts of time . when the activity classification process is applied to a device , it allows a device carried by the user ( attached to wrist , foot , hip , chest , etc ., through various attachment techniques ) to track different phases of activity , from stopped / standing to a slow walk , fast walk , jog , run , sprint , etc . and report them via an on - screen display or other indicator , as well as report analytically the calories burned for each of those activities . once the activity has successfully been classified , an application may run on the data , analyzing the step frequency and event . in an embodiment , the application may choose to increment a step counter when a user is classified as “ walking ” or “ running ,” but may reject a user standing and shaking the pedometer up and down , or a device jostling loosely in the back of a vehicle , for example . the application of machine learning and activity classification allows an activity classification device to utilize a set of sensors , including accelerometers , gyroscopes , magnetometers , pressure sensors , temperature sensors , microphones , etc . by implementing a power management methodology based on the measured feature - space variance of any sensor , or combination of sensors . with the activity classification device , a lower power sensor ( or combination of sensors ) can be used to detected transitions between activities , while a larger set of sensors may be used for a short period of time to classify the activity . the application of machine learning and activity classification allow a typical digital pedometer to increase its level of accuracy and improve functionality , particularly for long - term data collection . an implementation in accordance with an embodiment requires certain training steps to be performed with the device , in recognizing the user ( or a representative set of users ) to analyze walking , running , standing , etc . for best results , a training step should be included to allow the end user to “ classify ” their own activities , so that their specific motion features might be correctly identified . although the present invention has been described in accordance with the embodiments shown , one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention . accordingly , many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the present invention .
an activity classification device is disclosed . the activity classification device comprises one or more motion sensors and a memory configured to receive signals from the one or more motion sensors . the device further includes a processor in communication with the memory . finally , the device includes a classification algorithm executed by the processor , the classification algorithm for identifying activities that a user is engaged in . the memory may also record a user &# 39 ; s activity log , calorie count and an rf module , which transmits the recorded data to a host either upon request or continuously .