Activity recognition method using automatic training based on inertial sensors

By dynamically adjusting the state space and category of the inertial sensor, the problems of high computational cost and high power consumption of inertial sensor classifiers are solved, enabling efficient and accurate user activity classification on mobile devices.

CN111241909BActive Publication Date: 2026-07-24STMICROELECTRONICS SRL
View PDF 8 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
STMICROELECTRONICS SRL
Filing Date
2019-11-27
Publication Date
2026-07-24

Smart Images

  • Figure CN111241909B_ABST
    Figure CN111241909B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to activity recognition methods utilizing automatic training based on inertial sensors. A technical advance is disclosed that utilizes inertial sensor data associated with a device to determine a new feature array and determine whether the new feature array is within an existing class within a state space associated with the inertial sensor data. In response to the new feature array being included in the existing class, the new feature array is added to the existing class and a representation of the existing class in the state space is updated based on the new feature array and an existing representation of the existing class. In response to the new feature array not being included in the existing class, a new class is created based on the new feature array.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to electronic devices, and more specifically, to electronic devices that employ inertial sensors to determine the movement of the electronic device. Background Technology

[0002] Many mobile electronic devices, such as smartphones, include one or more inertial sensors to detect movement of the device. Inertial data obtained from these sensors can be used to rotate the display, control application functions (e.g., control a character in a video game app), "wake up" the device, and so on. Inertial data can also be used to determine one or more of a user's movement activities while the user is holding the electronic device. For example, inertial data can be used to determine whether the user is moving, walking, or running. This type of movement activity can be determined based on characteristics of the inertial data, such as the frequency and amplitude of a particular inertial data point. This determination of movement activity can be used to improve the interaction between the user and the electronic device.

[0003] Typically, classifiers are used to learn which combinations of habitual data characteristics can be used to define each type of mobility activity. The classifier analyzes inertial data from multiple different users and groups or classifies the inertial data into unique groups or categories. Each unique category is defined by a specific combination of inertial data characteristics and represents a unique type of mobility activity. For example, a classifier might identify a first category of inactivity as accelerometer data below a first threshold; a second category of walking as accelerometer data above a first threshold and below a second threshold; and a third category of running as accelerometer data above a second threshold. Therefore, the classifier utilizes a large amount of training data to learn or identify different threshold levels, and thus defines different categories representing different types of mobility activity.

[0004] The accuracy of a classifier is generally related to the amount of training data, meaning that the more training data utilized, the higher the accuracy of the classifier. However, analyzing such large amounts of data can be computationally expensive and power-intensive, and may be unavailable or inefficient if performed by a mobile electronic device. Furthermore, the categories identified by the classifier are often generalized across the entire training data, which can lead to inaccurate learning of categories for some individuals. It is with regard to these and other considerations that the embodiments described herein were made. Summary of the Invention

[0005] An apparatus may be summarized as comprising: an inertial sensor that generates inertial sensor data associated with the apparatus during operation; and processing circuitry means communicatively coupled to the inertial sensor, wherein the processing circuitry means, during operation: determines a new feature array based on the inertial sensor data; determines whether the new feature array is within an existing category in a state space associated with the inertial sensor data; in response to the new feature array being included in an existing category, adds the new feature array to an existing category and updates the representation of the existing category in the state space based on the new feature array and the existing representation of the existing category; and in response to the new feature array not being included in an existing category, creates a new category based on the new feature array.

[0006] The processing circuitry can, in operation,: receive new inertial sensor data; select one of several categories associated with the new inertial sensor data in the state space; and instruct the device to perform an action based on the selected category. The processing circuitry can, in operation,: determine whether a new feature array is in the state space; and, in response to the state space not containing the new feature array, renormalize the state space based on the new feature array. The digital signal processing circuitry can, in operation, modify the representation of existing categories based on the renormalized state space. The processing circuitry can, in operation, rescale existing categories based on the renormalized state space. The digital signal processing circuitry can, in operation, rescale existing categories based on adding a new feature array. The processing circuitry can, in operation,: determine whether a new feature array is in the state space; in response to the state space not containing the new feature array, renormalize the state space based on the new feature array; modify the representation of two existing categories based on the renormalized state space; determine whether two existing categories satisfy an absorption criterion; and, in response to satisfying the absorption criterion, merge the two existing categories. The processing circuitry can, during operation, remove an existing category in response to a decrease in the number of times a feature appears in the existing category to a threshold. The inertial sensor may include at least one of an accelerometer or a gyroscope.

[0007] The processing circuitry can, during operation, determine whether existing and new categories meet the absorption criteria; and, in response to the absorption criteria being met, merge existing and new categories.

[0008] The new feature array can include peak-to-peak values ​​and standard deviation values ​​associated with inertial sensor data within a time window. The region of the new category can be defined by at least one predetermined value. The region of an existing category can be dynamically adjusted based on at least one Gaussian distribution associated with an existing category.

[0009] A system can be summarized as including: an accelerometer that generates acceleration data during operation; and one or more processors that execute computer instructions during operation to: determine a new feature value based on the acceleration data; determine whether the new feature value is in a state space associated with the acceleration data; in response to the new feature value being included in the state space, determine whether the new feature value is in an existing category within the state space; in response to the new feature value being included in an existing category, add a new state space point to the existing category based on the new feature value, and update a representative point of the existing category in the state space based on the new state space point and the existing state space points in the existing category; and in response to the new feature value not being included in an existing category, create a new category with a representative point in the state space based on the new feature value.

[0010] One or more processors may execute computer instructions during operation to further: renormalize the state space based on the new feature values ​​in response to the absence of new feature values ​​in the state space. One or more processors may execute computer instructions during operation to further: modify representative points of existing classes based on the renormalized state space. One or more processors may execute computer instructions during operation to further rescale existing classes based on the renormalized state space. One or more processors may execute computer instructions during operation to further rescale existing classes based on adding new state space points to existing classes.

[0011] One or more processors may execute computer instructions during operation to further: in response to the absence of new feature values ​​in the state space, renormalize the state space based on the new feature values; modify the representative points of two existing categories based on the renormalized state space; determine whether the two existing categories satisfy an absorption criterion; and in response to satisfying the absorption criterion, merge the two existing categories into a new merged category, the new merged category having new representative points in the state space, the new representative points being based on existing state space points in the two existing categories. One or more processors may execute computer instructions during operation to further: in response to the number of occurrences of state space points within an existing category being less than a threshold, remove the existing category. One or more processors may execute computer instructions during operation to further: determine whether existing categories and a new category satisfy an absorption criterion; and in response to satisfying the absorption criterion, merge the existing category and the new category with new representative points in the state space based on existing state space points in the existing category and new state space points.

[0012] A method may be summarized as including: using digital signal processing circuitry means of a mobile device, determining a new feature array indicating movement in the mobile device; determining whether the new feature array is in a state space associated with movement of the mobile device; renormalizing the state space based on the new feature array in response to the new feature array not being included in the state space; determining whether the new feature array is in a previous category in the state space; adding the new feature array to the previous category in response to the new feature array not being included in the previous category, and updating the representation of the previous category in the state space based on the new feature array; and creating a new category based on the new feature array in response to the new feature array not being included in the previous category.

[0013] The method may also include: determining whether two previous categories in the state space satisfy an absorption criterion; and merging the two previous categories in response to the absorption criterion being satisfied.

[0014] The method may also include: determining whether the previous category and the new category meet the absorption criteria; and merging the previous category and the new category in response to the absorption criteria being met.

[0015] The method may also include: removing the previous category in response to the number of times a feature appears in the previous category falling below a threshold. Attached Figure Description

[0016] Non-limiting and non-exhaustive embodiments are described with reference to the following figures. In the figures, unless otherwise specified, the same reference numerals refer to the same parts throughout.

[0017] To better understand this disclosure, reference will be made to the following specific embodiments, which should be read in conjunction with the accompanying drawings:

[0018] Figure 1 A computing device is shown, which is equipped with accelerometer and gyroscope and classifier circuitry and is configured to calculate the category of movement in real time.

[0019] Figure 2 It shows the result of Figure 1 Functional block diagram of the method implemented in the computing device;

[0020] Figure 3 A logic flowchart for the process of calculating movement categories in real time is shown;

[0021] Figure 4 A logic flowchart of an alternative process for real-time calculation of movement categories is shown;

[0022] Figures 5-7 Examples of use cases for defining and modifying categories when additional data is received are shown; and

[0023] Figures 8A-8B , Figures 9A-9B , Figures 10A-10B and Figures 11A-11B The diagram shows a graphical example of a use case for defining and modifying categories when inertial data is received. Detailed Implementation

[0024] In the following description, certain details are set forth in order to provide a thorough understanding of various embodiments of the devices, systems, methods, and articles. However, those skilled in the art will understand that other embodiments may be practiced without these details. In other instances, well-known structures and methods associated with, for example, circuits (such as transistors, multipliers, adders, dividers, comparators, integrated circuits, logic gates, finite state machines, accelerometers, gyroscopes, magnetic field sensors, memories, bus systems, etc.) are not shown or described in detail in some figures to avoid unnecessarily obscuring the description of the embodiments.

[0025] Unless the context otherwise requires, throughout the following specification and claims, the word “comprising” and its variations (such as “having” and “including”) shall be interpreted in an open, inclusive sense, that is, “including but not limited to”.

[0026] Throughout the specification, claims, and drawings, unless the context clearly indicates otherwise, the following terms have the meanings explicitly associated herein. The term "in this document" refers to the specification, claims, and drawings associated with this application. The phrases "in one embodiment," "in another embodiment," "in various embodiments," "in some embodiments," "in other embodiments," and other variations of these phrases refer to one or more features, structures, functions, limitations, or characteristics of this disclosure, and are not limited to the same or different embodiments, unless the context clearly indicates otherwise. As used herein, the term "or" is an inclusive "or" operator and is equivalent to "A or B or both" or "A or B or C, and any combination thereof," and is similarly treated for lists with additional elements. Unless the context clearly indicates otherwise, the term "based on" is not exclusive and allows for based on additional features, functions, aspects, or undescribed limitations. Furthermore, throughout the specification, the meanings of "a," "an," and "the" include both singular and plural references. Additionally, in one or more embodiments, specific features, structures, or characteristics may be combined in any suitable manner to obtain further embodiments.

[0027] The headings are provided for convenience only and do not explain the scope or meaning of this disclosure.

[0028] In short, the embodiments relate to a computing device including one or more inertial sensors for collecting data, and a processor or circuitry for performing real-time classification of the inertial sensor data. The following is a brief description of the feature array, state space, and categories used herein.

[0029] The computing device generates a feature array based on inertial sensor data. The feature array is a multidimensional array of characteristic values ​​of the inertial sensor data. These characteristics may include, but are not limited to: peak-to-peak value, standard deviation, minimum value, maximum value, or other values ​​or statistical representations of the inertial sensor data, or combinations thereof.

[0030] The state space is the region defined from the initial data point (e.g., zero) to the maximum data point (e.g., the maximum feature array). Therefore, the state space is a multidimensional region of the inertial sensor data characteristics. The new data space is initially defined by a first feature array, which is generated based on the inertial sensor data—because the first feature array is the maximum feature array at this point. Subsequent feature arrays are added to the state space. However, if a subsequent feature array falls outside the state space, the state space is redefined or renormalized based on that feature array (e.g., the state space is expanded in each dimension of the inertial sensor data characteristics beyond the state space).

[0031] As feature arrays are added to the state space, categories within the state space are defined based on the positions of the feature arrays relative to each other in the state space. Therefore, a category is a region in the state space defined by a set or group of feature arrays. With each new feature array added to the state space, the positions of one or more categories (or combinations of multiple categories) are modified based on the positions of the new feature array and other feature arrays in the state space. Furthermore, if the state space is renormalized, the relative positions of the feature arrays and categories in the state space are rescaled according to the renormalization of the state space.

[0032] Utilizing the embodiments described herein to re-normalize the state space and define and re-defined categories upon receiving inertial sensor data can improve the speed and efficiency of computing devices. For example, in various embodiments, the computing device is a mobile computing device (e.g., a cellular phone, smartphone, tablet, laptop, or other personal computing device) with limited computing resources or limited power compared to server computers or cloud computing resources. Many previous classifiers and machine learning techniques involve complex computations and large amounts of data processing, which are typically performed on server computers or cloud computing resources due to the vast amount of available computing resources and power. Attempting to implement these same previous classifiers on mobile computing devices would utilize too many computing resources and consume too much power, resulting in slow, inefficient, and power-hungry mobile computing devices. However, the embodiments described herein allow for efficient and automated training, as well as the generation of categories for a wide range of activities, which improves the speed and efficiency of computing devices.

[0033] Figure 1 A computing device 100 is shown, comprising an accelerometer 110, a gyroscope 112, a processing core 102, and a classifier circuitry 114. The processing core 102 or the classifier circuitry 114, or some combination thereof, may perform the embodiments described herein. Therefore, in some embodiments where the processing core 102 performs the embodiments described herein, the classifier circuitry 114 may be absent from the computing device 100. Conversely, if the classifier circuitry 114 performs the embodiments described herein, the computing device 100 may still include the processing core 102 to perform other actions associated with the functionality of the computing device 100.

[0034] An accelerometer 110 or a gyroscope 112 is configured to sense motion or position data associated with the computing device 100. The accelerometer 110 or the gyroscope 112, or both, can be implemented using MEMS or other technologies. Although the computing device 100 is shown as having both an accelerometer 110 and a gyroscope 112, embodiments are not limited thereto. However, in some embodiments, the computing device 100 may include only the accelerometer 110, only the gyroscope 112, or some other inertial sensor. The accelerometer 110 or the gyroscope 112 may generally be referred to as an inertial sensor that captures or senses inertial sensor data.

[0035] Processing core 102 may include, for example, one or more processors, state machines, microprocessors, programmable logic circuits, discrete circuits, logic gates, registers, etc., or various combinations thereof. Processing core 102 can control the overall operation of computing device 100, and the execution of application programs by computing device 100, etc.

[0036] The computing device 100 also includes one or more memories 104, such as one or more volatile and / or non-volatile memories, which may store all or part of instructions and data relating to applications and operations performed by the system 100. For example, memory 104 may store computer instructions that, when executed by processing core 102, perform the actions described herein.

[0037] In some embodiments, the computing device 100 includes one or more other circuits 108, which may include interfaces, transceivers, antennas, power supplies, etc. As described above, the computing device 100 may also include classifier circuitry 114, which is configured to perform the actions described herein, either alone or in combination with the processing core 102.

[0038] The computing device 100 also includes a bus system that can be configured to communicatively couple the processing core 102, memory 104, accelerometer 110, gyroscope 112, classifier circuitry 114, and other circuitry 108 to send data to or receive data from other components, or both. The bus system may include one or more, or combinations thereof, of a data bus, address bus, power bus, or control bus electrically coupled to various components of the computing device 100.

[0039] The computing device 100 may also include other sensors not shown. Such other sensors may include, but are not limited to, GPS systems, temperature sensors, magnetic sensors, or various combinations thereof.

[0040] Figure 2 It shows the result of Figure 1 A functional block diagram of the method implemented by the computing device 100 is provided. Embodiments of the overall functionality of the computing device 100 are described in more detail elsewhere herein, but... Figure 2 The examples provided here offer brief illustrative examples of such embodiments described herein. The illustrated examples include a window data acquisition function 202, a new feature array computation function 204, dynamic re-normalization processing 206, grouping of nearby / overlapping categories function 208, a classifier 210, a new category creation function 212, and a meta-classifier 214. Each of these functions can be provided by, for example... Figure 1 One or more circuits of the classifier circuit device 114 in the middle or Figure 1 The processing core 102 in the middle is used to execute it.

[0041] As described above, a feature array is a multidimensional array of inertial sensor data characteristic values ​​generated from inertial sensor data sensed by an inertial sensor on a computing device. The feature array is added to a state space, which is a multidimensional region of inertial sensor data characteristics defined from a starting data point (e.g., zero) to a maximum data point (e.g., the maximum feature array). Furthermore, categories are identified within the state space, where each category is a region in the state space defined by a set or group of feature arrays based on their positions relative to each other within the state space.

[0042] The window data acquisition function 202 receives inertial sensor data from one or more inertial sensors (e.g., from...). Figure 1 The accelerometer data from accelerometer 110 or gyroscope data from gyroscope 112, or a combination thereof. The new feature array calculation function 204 generates a new feature array based on the inertial sensor data.

[0043] Dynamic state space processing 206 generates or modifies the state space based on the new feature array. If the new feature array is the first feature array generated by the new feature array computation function 204, then dynamic state space processing 206 initializes the state space based on the new feature array. If the new feature array is not the first feature array, then dynamic state space processing 206 determines whether the new feature array is outside the current state space. If the new feature array is outside the current state space, then dynamic state space processing 206 renormalizes the state space based on the new feature array. Dynamic state space processing 206 can also renormalize the localization of existing feature arrays and categories within the state space based on the renormalized state space.

[0044] Grouping nearby / overlapping categories function 208 groups existing categories that are currently within some threshold distance or criterion from each other. Classifier 210 adds a new feature array to the state space. If the new feature array overlaps with an existing category or is within a predefined threshold distance of an existing category, classifier 210 adds the new feature array to the existing category and modifies the accuracy of that category. If the new feature array is more than a threshold distance from an existing category, new category creation function 212 generates a new category in the state space for that new feature array. Meta-classifier 214 outputs all known categories and associated information, such as if two categories were combined, a new category was added, or existing categories were refined.

[0045] Now about Figure 3 and Figure 4 The operation of one or more embodiments is described, and for convenience, references to the above description will be made to the following. Figure 1 and Figure 2 The embodiments are described in conjunction with the examples. In at least one embodiment of the various embodiments, respectively... Figure 3 and Figure 4 The processes described 300 and 400 can be performed by one or more computing devices (such as...) Figure 1 The computing device 100 in the middle is implemented or executed thereon.

[0046] Figure 3 A logic flowchart of a motion classifier process 300 for real-time computation of motion categories is shown. Following the start box, the motion classifier process 300 begins at box 302, where the computing device defines a new feature array. In various embodiments, the new feature array is defined based on accelerometer data or gyroscope data, which may be referred to herein as inertial sensor data or motion data. Inertial sensor data can be captured over a given time period. For example, for 70 samples, inertial sensor data can be captured at a data rate of 25 Hz (e.g., every 40 milliseconds). These 70 samples provide a data window for feature evaluation. In this example, the feature array is computed every 70 samples or every 2.8 seconds (40 milliseconds × 70).

[0047] Various statistical analyses can be performed on inertial sensor data for a given sample window to generate two or more features for a new feature array. The two or more features of the feature array can include, but are not limited to: peak-to-peak value (e.g., the value between the minimum and maximum sensor values ​​sensed during the sample window), minimum value (e.g., the minimum sensor value sensed during the sample window), maximum value (e.g., the maximum sensor value sensed during the sample window), standard deviation (e.g., the standard deviation of the values ​​sensed during the sample window), or other statistical values. In a non-limiting example, the new feature array may include the peak-to-peak value and standard deviation of a given sample window to create a two-dimensional feature array. Other embodiments may utilize different numbers of features in the new feature array to create other multidimensional or hyperdimensional state spaces. Similarly, each individual feature of the feature array may include various different statistical values ​​(as described above), or they may be statistical values ​​from different sensors (e.g., one feature of the feature array may be the standard deviation of sensed values ​​from an accelerometer, and another feature of the feature array may be the standard deviation of sensed values ​​from a gyroscope), or other variations or combinations thereof.

[0048] After calculating the new feature array values ​​based on the received inertial sensor data, these values ​​are normalized to the current state space, allowing the new feature array to be compared with the current state space. It should be noted that the new feature array can be within or outside the state space. For example, in a non-limiting example where the state space is two-dimensional, the normalized state space can be defined as points 0,0 to 1,1, or 0,0 to 100,100, where points 1,1 or 100,100 correspond to the previously captured maximum (or minimum) eigenvalue. Therefore, the new feature array values ​​can be normalized relative to the current state space based on the known previously captured maximum (or minimum) eigenvalue and the normalized state space. For convenience, the new feature array normalized relative to the state space will be referred to as the new feature array. It should be noted that other normalized values ​​can also be used.

[0049] Process 300 proceeds to decision block 304, where the computing device determines whether the state space should be renormalized. In various embodiments, this determination is based on whether the new feature array is within or outside the current state space. In various embodiments, the new feature array is compared with the current state space. If the new feature array is within the current state space, the state space is not renormalized; however, if the new feature array is outside the current state space, the state space will be renormalized. If the new feature array is a first feature array, it will be used to define the state space. If the state space will be renormalized, process 300 flows to block 306; otherwise, process 300 flows to decision block 314.

[0050] At box 306, the state space is renormalized relative to the new feature array. If the absolute value of any feature in the new feature array is outside the current state space for the same corresponding feature, then that feature is normalized to a new maximum (or, depending on the feature's minimum) for the renormalized state space. Thus, one or more features from the new feature array are used as new maximum (or minimum) values ​​for the corresponding features in the normalized state space, depending on whether one or more features are greater than (or less than) the absolute value of the corresponding feature in the current state space.

[0051] Continuing with the two-dimensional example above, where the state space is limited to points 0,0 to 100,100, if all values ​​in the new feature array are greater than those in the current state space, then the new feature array values ​​are normalized to 100,100 in the renormalized state space. If only one feature in the new feature array is identified as greater than the corresponding feature in the current state space, then that feature value is normalized to the maximum value (i.e., 100) of that corresponding feature in the renormalized state space. Because the state space can include multiple dimensions, each feature value in the new feature array outside the current state space is used to renormalize the state space.

[0052] Process 300 continues at block 308, where the computing device repositions the representative point of the existing category within a renormalized state space. In various embodiments, the representative point is identified as a normalized feature array, which is the center point of the existing category, based on the state space. The representative point can be a previous feature array or a mathematical representation of the center of the existing category. For example, if the existing category is identified as a single previous feature array, then the representative point of the existing category is that previous feature array. However, if the existing category comprises two previous feature arrays, the average between the two previous feature arrays can be identified as the representative point of the existing category. The various embodiments described herein may utilize k-means or k-nearest neighbor techniques to define the representative point of the existing category.

[0053] After renormalizing the current state space at box 306, the representative points of the existing categories are modified based on the new or renormalized state space. For example, the representative points are normalized using the state space by modifying their positions within the renormalized state space based on the rate of change for each feature between the previous and renormalized state spaces.

[0054] Process 300 then proceeds to decision box 310, where the computing device determines whether the category absorption criterion is met. Because the positions of representative points of existing categories (i.e., renormalized categories) may change within the renormalized state space, the distances between existing categories may also change. In various embodiments, the category absorption criterion may include overlapping categories, categories with representative points within a threshold distance of each other, etc. If two or more renormalized categories meet the category absorption criterion, process 300 flows to box 312; otherwise, process 300 flows to decision box 314.

[0055] At box 312, the computing device merges the re-normalized categories that meet the category absorption criteria. In various embodiments, the merging or absorption of categories can be an average of representative points of those representative categories, similar to the category modification between previous representative points and the new feature array, as discussed below with respect to box 320. After box 312, process 300 proceeds to decision box 314.

[0056] If no absorption criterion is met at decision box 310, or after box 312, process 300 continues at decision box 314. At decision box 314, the computing device determines whether the new feature array falls within an existing category. As described above, the existing categories are centered on a representative point. In some embodiments, the size and shape of each category (such as a circle with a given radius (e.g., if the state space is identified as points 0, 0 to 100, 100, the given radius could be 3, or some other predetermined value)) can be static and predetermined. In other embodiments, the radius can be dynamically changed based on the number of feature arrays in a given category or based on other characteristics of the feature arrays in the state space, which will be discussed below. Figure 4 Let's discuss this in more detail.

[0057] In various embodiments, the new feature array is compared with existing categories in the state space (i.e., does the new feature array fall within a region defined by representative points of existing categories?). If the new feature array does not fall into an existing category, process 300 flows to block 316; otherwise, process 300 flows to block 318.

[0058] At block 316, the computing device creates a new category for the new feature array. In various embodiments, the new feature array is identified as a representative point of the new category in the state space, and its size and shape are predetermined. After block 316, process 300 loops to block 302 to receive the new feature array.

[0059] If the new feature array falls into an existing category at decision box 314, process 300 flows from decision box 314 to box 318. At box 318, the computing device increments the number of occurrences of the category into which the new feature array falls.

[0060] Process 300 then proceeds to box 320, where the computing device refines the category positions. In various embodiments, refining the category positions includes averaging, or performing k-means or k-nearest neighbor techniques to update the representative points of the category.

[0061] In at least one embodiment, the representative points of a category are modified to be a weighted sum of the occurrences (i.e., the feature array) within that category:

[0062]

[0063] in,

[0064] d is P old The distance between the new point (i.e., the new feature array);

[0065] P new It represents the new central location of the point;

[0066] w old This excludes the number of occurrences of new points within that category; and

[0067] P old It is the previous center position in this category.

[0068] After box 320, process 300 loops to box 302, where the computing device receives a new feature array.

[0069] Figure 4 A logic flowchart of an alternative process for real-time calculation of movement categories is shown. Following the start box, process 400 begins at box 402, where a new feature array is defined. In various embodiments, box 402 includes the above-described steps. Figure 3 Various embodiments are described in box 302.

[0070] Process 400 proceeds to decision block 404, where the computing device determines whether the state space should be renormalized. In various embodiments, block 404 includes the above-mentioned... Figure 3 Various embodiments are described in box 304. If the state space is to be renormalized, process 400 flows to box 406; otherwise, process 400 flows to decision box 416.

[0071] At block 406, the computing device renormalizes the state space relative to the new feature array. In various embodiments, block 406 includes the above-mentioned... Figure 3 Various embodiments are described in box 306.

[0072] Process 400 continues at block 408, where the computing device relocates representative points of existing categories within the renormalized state space. In various embodiments, block 408 includes the points described above regarding... Figure 3 Various embodiments are described in box 308.

[0073] The process 400 then proceeds to decision box 410, where the computing device can rescale the region of the existing category for the renormalized state space, based on the rate of change of the state space.

[0074] Process 400 then proceeds to decision block 412, where the computing device determines whether the category absorption criterion is met. In various embodiments, decision block 412 includes the above-mentioned... Figure 3 Various embodiments are described in box 310. In other embodiments, category absorption criteria may be identified based on the overlap of two or more categories, or based on the overlap of two or more categories at twice their current radius.

[0075] If two or more renormalized categories meet the category absorption criteria, then process 400 flows to box 414; otherwise, process 400 flows to decision box 416.

[0076] At box 414, the computing device merges the re-normalized categories that meet the category absorption criteria together. In various embodiments, box 414 includes the above-mentioned... Figure 3 Various embodiments are described in box 312. In some embodiments, additional techniques may be employed to calculate the radius of the merged categories, and various aspects of the system, including the system’s temporal evolution, application, category priority, etc., may be taken into account.

[0077] In one embodiment, the new radius is calculated as follows:

[0078] R new =max(R1, R2)

[0079] in,

[0080] R new It is the radius of the merged categories;

[0081] R1 is the radius of the first category; and

[0082] R2 is the radius of the second category.

[0083] In another embodiment, the new radius can be calculated as follows:

[0084]

[0085] in,

[0086] R new It is the radius of the merged categories;

[0087] R1 is the radius of class X; and

[0088] w x It is the number of times category X appears.

[0089] After box 414, process 400 proceeds to decision box 416.

[0090] If no absorption criterion is met at decision box 412, or after box 414, process 400 continues at decision box 416. At decision box 416, the computing device determines whether the new feature array falls within an existing category. In various embodiments, decision box 416 includes the above-mentioned... Figure 3 Various embodiments are described in box 314. In other embodiments, if the new feature array is x times (e.g., 3 times) the area of ​​an existing category.

[0091] If the new feature array falls within an existing category, then process 400 flows to box 418; otherwise, process 400 flows to box 320.

[0092] At box 418, the computing device creates a new category for the new feature array. In various embodiments, box 418 includes the above-mentioned... Figure 3 Various embodiments are described in box 316. In some embodiments, a new category is created if the new feature array is far from the nearest category as defined below:

[0093] d(P new P class )>3R

[0094] in,

[0095] P new It is a new feature array;

[0096] P olass It is the representative point of the closest category; and

[0097] R is the radius of the closest class.

[0098] In some embodiments, the radius of the new category may be initially set to zero, and the radius of the new category may be evaluated and modified in response to the addition of a new feature array to the state space near the new category.

[0099] After box 418, process 400 proceeds to box 426.

[0100] If the new feature array falls into an existing category at decision box 416, process 400 flows from decision box 416 to box 420. At box 420, the computing device increments the count of occurrences for the category into which the new feature array falls. In various embodiments, box 420 includes the elements described above. Figure 3 Various embodiments are described in box 318.

[0101] Process 400 then proceeds to box 422, where the location of the device refinement category is calculated. In various embodiments, box 422 includes the above-mentioned... Figure 3 Various embodiments are described in box 320.

[0102] Process 400 continues at box 424, where the computing device rescales the region of the existing category that includes the new feature array. In some embodiments, the radius of the existing category can be refined to:

[0103] R new =σd+(1-σ)R old

[0104] in,

[0105] R new It is the new radius for this category;

[0106] R old It is the previous radius of this category;

[0107] d is the distance between the representative point of the closest class and the new feature array; and

[0108] σ is a number in the function of system time evolution, where 0 < σ < 1.

[0109] As new feature arrays are added to the state space, the radius of a category can be dynamically increased or decreased based on the number of times the feature arrays appear in a given category.

[0110] Following box 424 or box 418, process 400 proceeds to box 426, where the occurrence count of device management is calculated. In various embodiments, the occurrence count is reduced slowly compared to system evolution. For example, the occurrence count may be reduced by one occurrence per hour. This allows for a slow reduction in the occurrence count of obsolete categories (i.e., categories that have not been modified using new feature arrays or have not been added to), which may eventually lead to the removal of obsolete categories in box 428.

[0111] Next, process 400 continues at box 428, where the computing device removes low-occurrence categories. In various embodiments, low-occurrence categories may include categories that have fewer than a threshold number of feature arrays for a predetermined time period. For example, if a category has fewer than 5 occurrences over a 5-minute interval, that category may be removed. Other numbers of occurrences or criteria may also be used to determine whether a category should be removed.

[0112] After box 428, process 400 loops to box 402, where the computing device receives the new feature array.

[0113] This can be continued by adjusting the number of selections for the new feature array or the amount of selection over time. Figure 3 Process 300 or Figure 4In process 400, the selection of time can be referred to as a training period or training time interval. This type of training allows for real-time or automatic identification of a specific user's activity.

[0114] During or after the training period, the computing device can utilize the existing state space and existing categories to perform other actions, such as enabling an application running on the computing device to perform a selected action based on new inertial sensor data or target inertial sensor data captured by the inertial sensor.

[0115] For example, after training is complete, the computing device can compute the target inertial sensor data captured by the device's inertial sensors. A target feature array is generated based on the target inertial sensor data and compared to existing categories in the state space. If the target feature array falls into an existing category, the computing device can take an action. For example, if the target feature array falls into an existing category associated with user walking, the computing device can have the application record the number of steps taken by the user. As another example, if the target feature array falls into another existing category associated with user stillness, the computing device can output an alarm to notify the user that they have stopped moving. Various other types of actions can be performed by the computing device in response to the target feature array falling into an existing category.

[0116] Figures 5-7 Examples of use cases for defining and modifying categories when additional inertial sensor data is received are shown. Specifically, Figure 5 The diagram illustrates adding a new category to an existing state space. Figure 5 The illustration in scenario 500 shows example stages 502a-502c, which represent different stages of adding a new category to the existing state space.

[0117] Starting with example phase 502a, a state space 510 is defined for features 504a and 504b, from a zero point (e.g., 0, 0) to a maximum point (e.g., 100, 100). In this example, state space 510 is an existing state space with a maximum point set at the location of the feature array having the maximum value of features 504a and 504b; in this example, the maximum point is a representative category point 506. Representative category point 506 represents or defines the center of existing category 508. Because representative category point 506 is the maximum point in existing state space 510, a first portion of category 508 is within state space 510, and a second portion of category 508 is outside state space 510.

[0118] Example phase 502b illustrates the addition of a new state space point 512 to an existing state space 510. The new state space point 512 is constrained by the normalization of the new feature array to the state space 510. As described herein, if the new state space point 512 is outside an existing category (e.g., category 506), a new category 514 is constrained for the new state space point 512.

[0119] Example phase 502c illustrates the addition of a new category 514 for a new state space point 512. In this example, a representative category point 516 is defined as the center of the new category space 514. Because the new state space point 512 is used to define the new category 514, the representative category point 516 is located in the same position in the state space 510 as the new state space point 512.

[0120] Figure 6 Two example scenarios, scenario 600 and scenario 650, are illustrated. Scenario 600 illustrates the modification of an existing category due to the addition of a new feature array, while scenario 650 illustrates the modification of the state space due to the new feature array being outside the existing state space.

[0121] Scenario 600 includes example phases 602a-602c, which illustrate different stages of modifying existing categories. Starting with example phase 602a, state space 606 is the existing state space, which has a maximum point set at a representative category point 604 for category 620. State space 606 also includes a category 608 defined by a representative category point 610. In some embodiments, the state space 606 illustrated in example phase 602a may be… Figure 5 An embodiment of the state space 510 illustrated in example phase 502c of example 500.

[0122] Example phase 602b illustrates the addition of a new state space point 612 (i.e., a new feature array) to state space 606. In this example, the new state space point 612 is within state space 606 and within an existing category 608. As described herein, if the new state space point 612 is within an existing category (e.g., category 608), the position of the existing category is modified. As mentioned herein, the position of the existing category 608 can be modified based on the position of a representative category point 610 of the existing category 608 and the position of the new state space point 612 (such as the average position between the two points). It should be noted that as more points are added to the existing category, additional methods can be used to determine the new representative category point of the modified category, such as using k-means or k-nearest neighbor techniques.

[0123] Example phase 602c illustrates the modified position of the previous category 608, which is represented as a modified category 614 with a new representative category point 616. In this illustration, the new representative category point 616 is shown as being between the previous representative category point 618 (i.e., the representative category point 610 of category 608) and the new state space point 612.

[0124] Scenario 650 includes example phases 652a-652c, which illustrate different stages of re-normalizing the state space. Starting with example phase 652a, state space 658 is the existing state space, with its maximum point set at the representative category point 654 of category 656. In some embodiments, the state space 658 illustrated in example phase 652a may be... Figure 5 Example 500, in example phase 502c, illustrates one embodiment of state space 510. A new state space point 660 is added to state space 658. However, the new state space point 660 is outside state space 658. Therefore, state space 658 will be renormalized based on the location of the new state space point 660.

[0125] Example phase 652b illustrates a renormalized state space 662 based on a new state space point 660. In this example, the value of “feat1” for the new state space point 660 exceeds the maximum value of “feat1” in the previous state space 658. Therefore, the maximum value of “feat1” in state space 658 is renormalized relative to the “feat1” value of the new state space point 660, while the maximum value of “feat2” in state space 658 is maintained relative to the value of “feat2” for the representative category point 654, resulting in a renormalized state space 662. After state space 658 is renormalized, the positions of existing categories (e.g., category 670) within the renormalized state space 662 are modified based on the renormalized size of the renormalized state space 662.

[0126] Because the new state space point 660 is within the existing category 656, the position of category 656 is modified similarly to that described above for scenario 600. Thus, example phase 652c illustrates the modified position of the previous category 656, represented as a modified category 664 with a new representative category point 666. In this illustration, the new representative category point 666 is depicted as being between the previous representative category point 668 (i.e., the representative category point 654 of category 656) and the new state space point 660.

[0127] Figure 7Two example scenarios, Scenario 700 and Scenario 750, are also illustrated. Scenario 700 illustrates the merging of existing categories due to the renormalized state space, and Scenario 750 illustrates the merging of existing categories due to the addition of a new feature array within a threshold distance of the existing categories.

[0128] Scenario 700 includes example stages 702a-702c, which illustrate different stages of merging existing categories in response to a re-normalized state space. Starting with example stage 702a, state space 708 is an existing state space with a maximum point set at a representative category point 706 for category 704. State space 708 also includes category 710 defined by a representative category point 712. In some embodiments, space 708 illustrated in example stage 702a may be… Figure 6 An embodiment of the state space 662 illustrated in example phase 652c of scenario 650.

[0129] Example phase 702b illustrates the addition of a new state space point 714 to state space 708. However, in this example, the new state space point 714 is outside state space 708. Therefore, as described herein, state space 708 is renormalized to a renormalized state space 716 based on the location of the new state space point 714. In this example, the new state space point 714 is far outside state space 708. When renormalizing state space 708 to the renormalized state space 716, the locations of representative category points 706 and 712 for categories 704 and 710, respectively, are also normalized within the normalized state space 716 based on the rate of change from state space 708 to the renormalized state space 716. In this example, the renormalized locations of the representative category points 706 and 712 result in an overlap 718 between their respective categories 704 and 710.

[0130] When at least two categories overlap or otherwise meet a certain distance threshold criterion, these categories are merged, as illustrated in example state 702c. Example state 702c illustrates merging categories 704 and 710 into a new category 724. The representative category point 726 of the new category 724 is determined based on the average between the previous representative category points 728 and 730, or based on other k-means techniques. Furthermore, the new category 720 is defined with respect to the representative category point 722, which is located at the same position as the new state space point 714.

[0131] Scenario 750 includes example stages 752a-752d, which illustrate different stages of merging existing categories in response to the addition of an additional feature array. Starting with example stage 752a, state space 758 is an existing state space having a maximum point set at a representative category point 756 of category 754. State space 758 also includes category 760 defined by representative category point 762. In some embodiments, state space 758 illustrated in example stage 752a may be an embodiment of state space 716 illustrated in example stage 702c of scenario 700.

[0132] A new state space point 764 is added to state space 758. Because the new state space point 764 is outside the existing categories 754 and 760, a new category 766 is added to state space 758, as illustrated in example phase 752b. The new category 766 is defined by a representative category point 768, which is located at the same position as the new state space point 764 in example phase 752a.

[0133] Example phase 752c illustrates the addition of yet another new state space point 770 to state space 758. However, in this example, the new state space point 770 is positioned such that if a representative category point is added to the new category 780 at the same location as the new state space point 770, the new category 780 will overlap with categories 754 and 766. Therefore, the positions of the representative category point 756, the representative category point 768, and the new state space point 770 are averaged to create a new representative category point 774, which is illustrated in example phase 752d.

[0134] As shown in example phase 752d, a new category 772 is defined for the new representative category point 774. As a result, the previously representative category points 776 and 778 are now outside the new category 772, but the new state space point 770 is inside the new category 772.

[0135] Figure 6 and Figure 7 The example illustrated above demonstrates the use of predefined category regions. Therefore, the size of the category region for each category is defined based on a predetermined size, with a representative category point at the center of the category region. In other embodiments, as discussed herein, category regions of dynamic size or shape may also be implemented.

[0136] Figures 8A-8B and Figures 9A-9B The illustration shows a graphical example of a use case for defining and modifying categories when receiving inertial data using the embodiments described herein. Figures 8A-8B Utilization and Figures 9A-9BThe same inertial sensor data, but different grouping criteria were used to define the categories. Specifically, with... Figures 8A-8B Compared to the grouping criteria in the past, Figures 9A-9B Use grouping criteria that will produce tighter clusters to define categories.

[0137] Figures 8A-8B A graphical example of a use case for defining and modifying categories when receiving inertial sensor data is shown. Figure 8A The diagram illustrates the incoming inertial sensor data and the corresponding limitations or re-limitations of the categories. Furthermore... Figure 8B The diagram illustrates the state space with feature arrays and categories for this inertial sensor data.

[0138] As described in this article, Figure 8A Figure 804 illustrates the magnitude of multiple inertial sensor data sensed by an inertial sensor over time. In a non-limiting example, this inertial sensor data could be accelerometer data.

[0139] As described herein, Figure 802 illustrates the corresponding number of categories that have been discovered or otherwise defined over time due to the corresponding inertial sensor data. The solid line illustrates the number of categories associated with the inertial sensor data points at any given point in time. In this example, a total of four categories are defined at one point in time, but after receiving additional inertial sensor data, the system will stabilize at three categories.

[0140] Figure 802 also illustrates the corresponding categories, which, as described herein, include incoming inertial sensor data when it is added to the state space. These corresponding categories are illustrated by dashed lines in Figure 802. For illustrative purposes, the resulting three categories have been labeled “Category A,” “Category B,” and “Category C.” For example, as indicated by reference numeral 807, when inertial sensor data point 805 is received, it is added to “Category C.” As described herein, the user or computing device 102 can associate various categories with different activities as the system defines, scales, and repositions them. For example, “Category A” could be associated with a user stationary, “Category B” with a user walking, and “Category C” with a user running. These labels can be selected based on the magnitude of the inertial sensor data (e.g., if the average magnitude of the inertial sensor data in a category is above, below, or between one or more thresholds) or some other criterion.

[0141] Figure 8B The diagram shows the source from Figure 8AThe resulting state space 818 is defined by the inertial sensor data. In this example, state space 818 is a two-dimensional state space with inertial sensor data feature 1 on the y-axis and inertial sensor data feature 2 on the x-axis. As described herein, the inertial sensor data is used to generate a feature array with these features, which can then be added to state space 818. As described herein, when generating an additional feature array for the additional inertial sensor data, state space 818 is renormalized and the categories are defined, scaled, and repositioned. In this example, there are three resulting categories 806, 810, and 814 within state space 818, with representative points 808, 812, and 816, respectively. Categories 806, 810, and 814 represent... Figure 8A The “Category A”, “Category B” and “Category C” in Figure 802.

[0142] Figures 9A-9B and Figures 8A-8B The similarity between them is that they show graphical examples of use cases for defining and modifying categories when receiving inertial sensor data. Figure 9A The diagram illustrates the input inertial sensor data and the corresponding limitations or re-limitations of the categories. Furthermore... Figure 9B The diagram illustrates the state space with feature arrays and categories for inertial sensor data. Figures 9A-9B and Figures 8A-8B One non-restrictive difference between them could be the use of different classification criteria, such as different category absorption criteria or frequency of occurrence criteria.

[0143] As described in this article, Figure 9A Figure 904 illustrates the magnitude of multiple inertial sensor data sensed by the inertial sensor over time. Figure 902 illustrates the corresponding number of categories that have been identified or otherwise defined over time due to the corresponding inertial sensor data, as shown by solid lines. In this example, a total of six categories are defined at one point in time, but the system will stabilize at four categories after receiving additional inertial sensor data.

[0144] Figure 902 also illustrates the corresponding categories, as shown by the dashed lines, which include the incoming inertial sensor data when it is added to the state space. For illustrative purposes, the resulting four categories are labeled "Category A," "Category B," "Category C," and "Category D." As described above, the user or computing device 102 can associate the various categories with different activities when the system defines, scales, and repositions them. For example, "Category A" can be associated with a user being stationary, "Category B" and "Category C" can be associated with a user walking, and "Category D" can be associated with a user running. Again, these labels can be selected based on the amplitude of the inertial sensor data (e.g., if the average amplitude of the inertial sensor data in a category is above, below, or between one or more thresholds) or some other criterion.

[0145] Figure 9B The diagram shows the source from Figure 9A The resulting state space 922 is defined by the inertial sensor data. In this example, the state space 922 contains four resulting categories 906, 910, 914, and 920, with representative points 908, 912, 916, and 920, respectively. Categories 906, 910, 914, and 918 represent... Figure 9A The categories "Category A", "Category B", "Category C" and "Category D" in Figure 902.

[0146] Figure 9B The diagram shows Figure 9A The diagram shows the resulting categories of the data. In this example, there are four resulting categories: 906, 910, 914, and 918, with representative points 908, 912, 916, and 920, respectively.

[0147] Figures 10A-10B and Figures 11A-11B Further examples of inertial sensor data are illustrated, along with the resulting categories defined using the embodiments described herein. For example, Figure 10A Figures 1002 and 1004 illustrate inertial sensor data and the temporal definition and redefinition of categories, which are respectively similar to... Figure 8A See Figures 802 and 804. In this example, "Category A" can be associated with a user standing still, "Category B" and "Category C" can be associated with a user walking, and "Category D" and "Category E" can be associated with a user running.

[0148] Figure 10B The diagram illustrates the following: Figure 10AThe state space 1006 is generated from the inertial sensor data identified in the example. In this example, five identified categories 1018, 1020, 1022, 1024, and 1026 may exist within state space 1006, each with representative points 1008, 1010, 1012, 1014, and 1016, respectively. In this example, representative points 1012 and 1016 can be considered outliers because there are no other feature arrays within a selected region starting from these points. Therefore, the corresponding categories 1022 and 1026 can be defined as specific regions, independent of other feature arrays in state space 1006.

[0149] Figure 11A Figures 1102 and 1104 are illustrated to show inertial sensor data and the temporal limitation and re-limitation of categories. Figures 1102 and 1104 are respectively similar to... Figure 8A See Figures 802 and 804. In this example, "Category A" can be associated with a user being stationary, "Category B" and "Category C" can be associated with a user running, and "Category D" can be associated with a user walking. Figure 11B The diagram illustrates the following: Figure 11A The state space 1108 is generated from the inertial sensor data identified in the example. In this example, there may be five identified categories 1120, 1122, 1124, 1126 and 1128 in the state space 1108, which have representative points 1110, 1112, 1114, 1116 and 1118 respectively.

[0150] Some embodiments may take the form of or include a computer program product. For example, according to one embodiment, a computer-readable medium is provided that includes a computer program adapted to perform one or more of the methods or functions described above. The medium may be a physical storage medium, such as a read-only memory (ROM) chip, or a disk such as a DVD-ROM, CD-ROM, hard disk, memory, network, or a portable media product to be read by a suitable drive or via a suitable connection, including one or more barcodes or other related codes encoded in one or more such barcodes or other related codes stored on one or more such computer-readable media and readable by a suitable reader device.

[0151] Additionally, in some embodiments, some or all of the methods and / or functions may be implemented or provided in other ways, such as at least in part in firmware and / or hardware, including but not limited to one or more application-specific integrated circuits (ASICs), digital signal processors, discrete circuits, logic gates, standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and / or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and devices employing RFID technology and various combinations thereof.

[0152] The various embodiments described above can be combined to provide further embodiments. Aspects of the embodiments can be modified as necessary to employ various embodiments and disclosed concepts to provide even more further embodiments.

[0153] These and other changes can be made to the embodiments based on the detailed description above. Generally, the terminology used in the above claims should not be construed as limiting the claims to the specific embodiments disclosed in the specification and claims, but should be interpreted to include all possible embodiments and the full scope of equivalents to which such claims are granted. Therefore, the claims are not limited by the disclosure.

Claims

1. An apparatus comprising: An inertial sensor that generates inertial sensor data associated with the device during operation; as well as A processing circuit device, communicatively coupled to the inertial sensor, wherein the processing circuit device, in operation: A new feature array is determined based on the inertial sensor data; Determine whether the new feature array falls within an existing category in the state space associated with the inertial sensor data; In response to the inclusion of the new feature array in the existing category, the new feature array is added to the existing category, and the representation of the existing category in the state space is updated based on the new feature array and the existing representation of the existing category; In response to the new feature array not being included in the existing category, a new category is created based on the new feature array; Determine whether the new feature array is within the state space; and In response to the new feature array not being included in the state space: The state space is re-normalized based on the new feature array, and the representation of the existing category is modified based on the re-normalized state space.

2. The device according to claim 1, wherein the processing circuitry operates as follows: Receive new inertial sensor data; Select the category from the multiple categories in the state space that is associated with the new inertial sensor data; and The device is instructed to perform an action based on the selected category.

3. The device according to claim 1, wherein the processing circuitry operates as follows: The existing categories are rescaled based on the re-normalized state space.

4. The device according to claim 1, wherein the processing circuitry operates as follows: Based on the addition of the new feature array to the existing category, the existing category is rescaled.

5. The device according to claim 1, wherein the processing circuitry operates as follows: If the number of occurrences of a feature within an existing category falls below a threshold, the existing category is removed.

6. The device of claim 1, wherein the inertial sensor comprises at least one of an accelerometer or a gyroscope.

7. The apparatus of claim 1, wherein the processing circuitry, in operation: Determine whether the existing category and the new category meet the absorption criteria; and In response to the absorption criteria being met, the existing category and the new category are merged.

8. The device of claim 1, wherein the new feature array includes peak-to-peak values ​​and standard deviation values ​​associated with the inertial sensor data within a time window.

9. The device of claim 1, wherein the region of the new category is defined by at least one predetermined value.

10. The device of claim 1, wherein the region of the existing category is dynamically adjusted based on at least one Gaussian distribution associated with the existing category.

11. A system comprising: An accelerometer that generates acceleration data during operation; as well as One or more processors, which execute computer instructions in operation to: Determine new characteristic values ​​based on the acceleration data; Determine whether the new feature value is within the state space associated with the acceleration data; In response to the inclusion of the new feature value in the state space, determine whether the new feature value is within an existing category in the state space; In response to the inclusion of the new feature value in the existing category, a new state space point is added to the existing category based on the new feature value, and the representative point of the existing category in the state space is updated based on the new state space point and the existing state space points in the existing category; In response to the new feature value not being included in the existing category, a new category with representative points is created in the state space based on the new feature value; as well as In response to the new eigenvalue not being included in the state space: The state space is re-normalized based on the new feature values, and the representative points of the existing categories are modified based on the re-normalized state space.

12. The system of claim 11, wherein the one or more processors execute the computer instructions in operation to further: The existing categories are rescaled based on the re-normalized state space.

13. The system of claim 11, wherein the one or more processors execute the computer instructions in operation to further: Based on the addition of the new state space points to the existing categories, the existing categories are rescaled.

14. The system of claim 11, wherein the one or more processors execute the computer instructions in operation to further: If the number of occurrences of a state space point within an existing category falls below a threshold, the existing category is removed.

15. The system of claim 11, wherein the one or more processors execute the computer instructions in operation to further: Determine whether the existing category and the new category meet the absorption criteria; and In response to the absorption criterion being met, the existing category and the new category are merged using a new representative point in the state space, the new representative point being based on the existing state space points in the existing category and the new state space points.

16. A method comprising: Using a digital signal processing circuitry device of a mobile device, a new feature array indicating movement in the mobile device is determined; Determine whether the new feature array is within the state space associated with the movement of the mobile device; In response to the new feature array not being included in the state space, the state space is renormalized based on the new feature array; Determine whether the new feature array falls within a previous category in the state space; In response to the inclusion of the new feature array in the previous category, the new feature array is added to the previous category, and the representation of the previous category in the state space is updated based on the new feature array; In response to the new feature array not being included in the previous category, a new category is created based on the new feature array; as well as In response to the new feature array not being included in the state space: The representation of the previous category is modified based on the re-normalized state space.

17. The method of claim 16, further comprising: Determine whether the two previous categories in the state space satisfy the absorption criterion; as well as In response to the absorption criterion being met, the two previous categories are merged.

18. The method of claim 16, further comprising: Determine whether the previous category and the new category meet the absorption criteria; as well as In response to the absorption criteria being met, the previous category and the new category are merged.

19. The method of claim 16, further comprising: If the number of occurrences of a feature within the previous category falls below a threshold, the previous category is removed.

20. An apparatus comprising: An inertial sensor that generates inertial sensor data associated with the device during operation; as well as A processing circuit device, communicatively coupled to the inertial sensor, wherein the processing circuit device, in operation: A new feature array is determined based on the inertial sensor data; Determine whether the new feature array falls within an existing category in the state space associated with the inertial sensor data; In response to the inclusion of the new feature array in the existing category, the new feature array is added to the existing category, and the representation of the existing category in the state space is updated based on the new feature array and the existing representation of the existing category; In response to the new feature array not being included in the existing category, a new category is created based on the new feature array, wherein the processing circuitry is in operation as follows: Determine whether the new feature array is within the state space; In response to the new feature array not being included in the state space, the state space is renormalized based on the new feature array; Based on the re-normalized state space, modify the representations of the two existing categories; Determine whether the two existing categories meet the absorption criteria; as well as In response to the absorption criteria being met, the two existing categories are merged.

21. The apparatus of claim 20, wherein the processing circuitry, in operation: In response to the new feature array not being included in the state space: The representation of the existing category is modified based on the re-normalized state space.

22. A system comprising: An accelerometer that generates acceleration data during operation; as well as One or more processors, which execute computer instructions in operation to: Determine new characteristic values ​​based on the acceleration data; Determine whether the new feature value is within the state space associated with the acceleration data; In response to the inclusion of the new feature value in the state space, determine whether the new feature value is within an existing category in the state space; In response to the inclusion of the new feature value in the existing category, a new state space point is added to the existing category based on the new feature value, and the representative point of the existing category in the state space is updated based on the new state space point and the existing state space points in the existing category; as well as In response to the new feature value not being included in the existing category, a new category with representative points is created in the state space based on the new feature value, wherein the one or more processors execute the computer instructions in operation to further: In response to the new feature value not being included in the state space, the state space is renormalized based on the new feature value; Based on the re-normalized state space, the representative points of the two existing categories are modified; Determine whether the two existing categories meet the absorption criteria; as well as In response to the absorption criterion being met, the two existing categories are merged into a new merged category, which has a new representative point in the state space, based on the existing state space points of the two existing categories.

23. The system of claim 22, wherein the one or more processors execute the computer instructions in operation to: In response to the new eigenvalue not being included in the state space: The representative points of the existing categories are modified based on the re-normalized state space.