Wearable article-based sensor-based metric estimation

By embedding an IMU sensor and a CNN model into a wearable device, combined with a segmented model, the problems of excessive computational resource consumption and insufficient accuracy in existing technologies are solved, achieving more efficient and accurate force curve and gait attitude magnitude estimation, and simplifying the setup process.

CN122641434APending Publication Date: 2026-08-25NIKE INNOVATE CV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202580011486.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2025-01-24
Filing Date
2025-01-27
Publication Date
2026-08-25

AI Technical Summary

Technical Problem

Existing wearable devices suffer from excessive consumption of computing resources, latency, and jitter during data processing and synchronization. They are also relatively static in design and function, requiring cumbersome setup and configuration, and lack accuracy.

Method used

By embedding inertial measurement unit (IMU) sensors in wearable devices, combined with convolutional neural networks (CNN) and segmented models, only a portion of the sensor data is processed, reducing storage and I/O consumption. Machine learning models are used to perform accurate force curve and gait magnitude estimation, and some functions are executed locally on the wearable device.

Benefits of technology

It reduces memory consumption and computational waiting time, improves accuracy, reduces jitter, simplifies the setup process, and enhances the real-time data processing capabilities of wearable devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122641434A_ABST
    Figure CN122641434A_ABST
Patent Text Reader

Abstract

Aspects herein relate to, among other things, estimating force variations representative of a force profile, human gait metrics, activity types, and / or other movement data from one or more sensors included in a wearable article. For example, first sensor data is received at a first time via one or more sensors included in an article of footwear. Second sensor data is received at a second time, after the first time, via the one or more sensors. Based at least in part on the first sensor data and the second sensor data, a force variation representative of at least a portion of a force profile is estimated. In response at least in part to the estimating, the received first sensor data, the received second sensor data, and / or a visual element associated with the estimated force variation is transmitted to a user device over a computer network for presentation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Various aspects of this document relate to systems and methods for estimating, among other things, force variations, human gait attitude magnitudes, activity types, and / or other movement data representing force curves based on one or more sensors included in wearable articles, such as footwear. Background Technology

[0002] Some technologies are designed to track various aspects of a user's health, fitness, mobility, or other attributes. They use a combination of sensors and algorithms to monitor user activity, provide real-time data, and can sync with services or mobile apps for a more comprehensive experience. For example, wearable devices can sync with cloud services to monitor the wearer's heart rate, track daily activities, or record sleep patterns. However, these and other existing technologies are static in design and function and unnecessarily consume computational resources, such as computer memory. Attached Figure Description

[0003] This article describes the technology in detail with reference to the accompanying drawings, which are described below.

[0004] Figure 1 At a higher level, a screenshot is shown illustrating the effect of a runner's foot experiencing forces exceeding a threshold, based on several aspects.

[0005] Figure 2 At a higher level, a screenshot is shown illustrating the effect of the player's feet experiencing force exceeding a threshold, based on several aspects.

[0006] Figure 3A The illustration shows footwear products positioned in the first location at a given time, based on several factors.

[0007] Figure 3B The diagram illustrates the second position at a second time point following the first time point, based on several factors. Figure 3A Footwear products.

[0008] Figure 4 The image shows screenshots of an example user interface based on some aspects.

[0009] Figure 5A The illustration shows an exploded view of footwear with an embedded inertial measurement unit (IMU) according to some aspects.

[0010] Figure 5B The diagram illustrates the differences between various aspects. Figure 5A Cross-sectional views of the IMU and midsole of the footwear product.

[0011] Figure 6 The diagram illustrates a block diagram of a system based on several aspects.

[0012] Figure 7 This is a schematic diagram illustrating how a neural network generates force curve predictions based on certain aspects.

[0013] Figure 8 The illustration shows an example convolutional neural network (CNN) based on some aspects.

[0014] Figure 9 This diagram illustrates how different layers of the same model can be split across different devices to reduce storage consumption and achieve other computational savings, based on various factors.

[0015] Figure 10 It is a high-level illustration of force curve estimation or force change estimation based on some aspects of processing IMU data.

[0016] Figure 11 It is a flowchart of an example process for estimating force changes on at least one parameter, based on some aspects.

[0017] Figure 12 It is a flowchart of an example process for estimating one or more step attitude quantities based on some aspects.

[0018] Figure 13 This is a flowchart illustrating an example process for estimating the type of activity of a wearer associated with a wearable device, based on several aspects.

[0019] Figure 14 This is a flowchart illustrating an example process for classifying a wearer's posture based on several aspects.

[0020] Figure 15 This is a flowchart illustrating an example process of extracting sensor data from three channels based on certain aspects and feeding it as input to a model for estimation.

[0021] Figure 16 It is a flowchart illustrating an example process for estimating one or more metrics based on encoding and decoding model data via different devices.

[0022] Figure 17 This is an example process for manufacturing footwear with an embedded IMU, based on some aspects.

[0023] Figure 18 This is a block diagram illustrating an example computational environment for estimating one or more metrics based on one or more sensors in footwear products.

[0024] Figure 19 It is a block diagram of the electronic device of any wearable product described herein, based on some aspects.

[0025] Figure 20 It is a block diagram based on some aspects of computing devices. Detailed Implementation

[0026] Overview

[0027] Some existing technologies track a user's health status, fitness, mobility, or other attributes. For example, some smartwatches are configured to use sensors to determine steps, distance traveled, calories burned, heart rate, sleep duration, and / or sleep quality. Other technologies, such as virtual reality-based technologies, employ head-mounted displays (HMDs) that include motion sensors to track a user's position and movement within a virtual environment. Gaming technologies can also track user movement. However, all of these and other technologies are computationally intensive. These technologies rely on services for data synchronization, storage, and analysis. Data collected by wearable devices is periodically synchronized to cloud-based platforms, where it is processed, analyzed, and made accessible via apps to view historical trends, etc.

[0028] These and other technologies suffer from various computational resource issues. For example, one problem is the unnecessarily increased computational latency caused by the need to open network communication channels for communication between cloud services and wearable devices, and the continuous streaming of real-time sensor data over the network. Wearable devices may include network interfaces that transmit protocol packets (e.g., TCP / IP packets) of streaming sensor data to and from servers in near real-time for analysis and sending notifications related to the sensor data. This leads to latency issues because significant delays occur when sensor data is transmitted to and from cloud services. Similarly, these technologies suffer from excessive jitter. Jitter refers to variations in the latency of received data packets. Network devices use streaming buffers to temporarily store and forward streams of data packets. When the buffers become full or data is held back due to priority (common in these technologies), jitter is introduced as data packets are released at different times.

[0029] Some technologies are static in both design and function. For example, regarding design, biomechanical research techniques require bulky equipment, such as force plates, treadmills, or other laboratory equipment, to function properly. However, using such techniques requires cumbersome setup and configuration (e.g., installing and wiring complex stereo sensors and force plates). Some technologies are also static in function, which can lead to accuracy and other issues. For example, some technologies use generalized models or functions for motion prediction. Some technologies also use only sensor data as input for prediction.

[0030] Various aspects of this disclosure provide one or more technical solutions to one or more of these technical problems, as described herein. At a higher level, certain aspects of this document relate to a wearable article system and method for estimating (among other things) force variations, human gait attitude magnitudes, activity types, and / or other movement data representing at least a portion of a force curve based on one or more sensors included in a wearable article (e.g., footwear).

[0031] Some aspects have the technical benefits of reducing memory consumption and input / output (I / O). For example, regarding memory consumption, storage devices (e.g., flash memory) located in the wearable device store only the first part of a more complete model (e.g., a convolutional neural network (CNN)), where intermediate layers (e.g., bottleneck layers or flattening layers) produce estimates containing fewer data points (e.g., 4 floating-point numbers), while a more complete version of the model with dense layers would require more data points (e.g., 128 floating-point numbers). Therefore, some aspects terminate the model early, meaning stopping the network's forward pass at intermediate layers before reaching the final dense layer to make streamlined predictions. In this way, more force curves or other estimated metrics can be stored in on-chip memory or at the wearable device, thus reducing memory consumption.

[0032] In another example, regarding reduced I / O and memory consumption, some aspects process only a few selected channels or axes (e.g., 3-axis IMU data) of a full-channel (e.g., 6-axis IMU data) device. For instance, some aspects exclude the analysis of inner and outer axis accelerometer sensor data and only analyze pitch axis sensor data from the gyroscope sensor, reducing the processing of IMU sensor data from 6 channels to 3 channels. This provides significant memory savings and reduced I / O. This differs from existing technologies that store and analyze all real-time streaming sensor data. Instead of analyzing a continuous stream of all sensor data, the aspects analyze only the selected channels. This means that the aspects perform fewer reads and / or writes, which reduces wear on components such as read / write heads.

[0033] In yet another example, regarding reduced memory consumption and reduced I / O, some aspects are based on estimating one or more metrics by processing only a fixed window of sensor data (e.g., gait phases indicating the complete gait cycle), where other sensor data indicating other parts of the complete gait cycle are not processed for estimation. For example, only sensor data representing the detected “ground touch” gait phase is used for force curve prediction. This means that sensor data representing other gait phases are not stored in memory or otherwise used for prediction, thus reducing memory consumption and I / O (e.g., because the read / write head moves less to access such other sensor data).

[0034] Several aspects also improve upon the static design of existing technologies. For example, these aspects do not include force sensors (e.g., force-measuring sensors or load cells), which are devices that directly measure the force applied to them. Instead of using bulky equipment (such as force-measuring treadmills commonly used in biomechanical research techniques), these aspects integrate one or more sensors (e.g., inertial measurement units (IMUs), accelerometers, and / or gyroscopes) into wearable articles (e.g., footwear). Therefore, cumbersome setup and configuration (e.g., installing and wiring complex stereo sensors and force-measuring plates) are eliminated.

[0035] Some aspects also offer technical advantages in terms of improved accuracy compared to existing technologies. For example, similar to existing technologies, some aspects use piecewise models for metric prediction instead of generalized models or functions for movement prediction. A piecewise model is a mathematical model that includes multiple functions or expressions defined over different intervals or "segments" of the input domain. In other words, a piecewise model does not represent a single function uniformly applied to its entire domain (e.g., all sensor data values ​​corresponding to walking, jogging, and running, or all gait phases), but rather a combination of different functions, each applicable to a specific range of input values ​​(e.g., sensor values ​​indicating only running (not walking) or a specific gait phase, not other phases). For example, one piecewise model could be a machine learning model representing a series of sensor values ​​representing a user running; another piecewise model could be a model representing another series of sensor values ​​representing a user walking. This approach is particularly useful in terms of accuracy because the relationship between running and walking (or a specific gait phase) is not uniform and varies under different conditions or circumstances.

[0036] Some aspects also have the technical effect of improving accuracy by using more than sensor data as input for prediction. For example, in some aspects, the estimation of force or force variation (representing the force curve) can be based on estimating one or more gait attitude parameters (e.g., foot strike angle, number of strides, speed, etc.), estimating / classifying the type of activity the wearer is engaged in (e.g., running or walking), and / or using a piecewise model. For example, the foot speed of a particular wearer can indicate a specific force value. For example, if the wearer is estimated to be walking (activity type classification) and the wearer's speed (gait attitude parameter) is below a threshold indicating walking, then aspects adjust weights or otherwise make the force curve estimate increase toward lower forces because the walking activity type and speed are below the threshold.

[0037] Similarly, some aspects also have the technical effect of improving accuracy by adding one or more running features (e.g., specific gait attitude metrics) to a model (such as a convolutional neural network (CNN)). Such running features can be added to the model in a variety of ways, such as at a flattening layer and / or at the first convolutional layer along with sensor data input.

[0038] Some aspects also have the technical effect of improving accuracy by having the model generate only the "shape" of the force curve and / or by scaling up the shape (e.g., via a separate regression model). For example, a regression model scales the shape of the curve by fitting a mathematical function or equation to a set of data points. Other functions, such as smoothing functions, can be used additionally or alternatively. Smoothing is a technique used to reduce noise and highlight patterns or trends in input data, typically achieved by estimating a smoother curve. Smoothing techniques are used to help reveal underlying structures or relationships in data and can be viewed as a form of regression in some cases. Therefore, regression or smoothing techniques, especially in machine learning, can be used to help mitigate overfitting. Overfitting occurs when a model learns to fit the training data too tightly, capturing noise and outliers in the data instead of general patterns. Smoothing and some regression methods introduce constraints or reduce the complexity of the model, making it less likely to overfit.

[0039] Several aspects also have the technical effect of reducing computational latency. In some aspects, this is at least in part due to processing and / or transmitting only a few selected channels or axes of a full-channel device (e.g., a 6-axis IMU) (e.g., 3-axis IMU data), as described above. Additionally or alternatively, in some cases, this is because most or all of the functionality is performed at the wearable device (e.g., via on-chip stored CNNs). In this way, for example, there is no need to open network communication channels (so much or none at all) for communication between the cloud service and the wearable device, and / or fewer real-time sensor data streams must be transmitted over the network. For example, in some instances, by transmitting 3 channels instead of 6, or because the wearable device does not need to establish a communication session with the server at all, the wearable device does not need to transmit the same number of protocol packets (e.g., TCP / IP packets) of streaming sensor data to and from the server in near real-time. This reduces latency because there is less delay experienced when sensor data is transmitted to and from the cloud service. Similarly, the likelihood of jitter is reduced because fewer data packet streams are buffered and forwarded.

[0040] Now regarding the attached diagram, Figure 1 At a higher level, screenshot 100 illustrates, according to some aspects, the effect of a runner's foot or corresponding sensor experiencing forces exceeding a threshold (e.g., ground reaction force). For example, GRF is the force exerted by the ground on the body in contact with it (e.g., the wearer's foot). Specifically, screenshot 100 represents an augmented reality (AR), virtual reality (VR), or mixed reality (MR) environment where a real-world runner or user exceeds a force threshold within a threshold time period (e.g., 1 week), measured by one or more real-world sensors (e.g., accelerometers and / or gyroscopes) incorporated into a real-world footwear article (e.g., footwear article 500 of Figure 5). In some aspects, screenshot 100 represents a page of a computer application used to perform gait analysis (e.g., for physical therapy or sports science) to understand the forces and mechanics involved in the wearer's various movements and activities. Alternatively or additionally, in some aspects, screenshot 100 represents a game where the force is minimized to obtain the highest score.

[0041] In response to one or both of the aforementioned force and / or time thresholds being met, some aspects generate or overlay visual data 104 and 107 on the legs of the user avatar 100, wherein such visual data 104 and 107 represent the legs of avatar 100 growing from Godzilla. If the sensor reading falls below one or both thresholds, visual data 104 and 107 disappear, causing visual data representing human legs to be displayed instead of visual data 104 and 107. Alternatively or additionally, in response to one or both thresholds being met, some aspects generate visual data (not shown) representing cracks on the display (e.g., screenshot 100). Alternatively or additionally, in response to satisfying one or two thresholds and / or avatar 100 entering within a threshold distance of visual data 108 representing a car or visual data 110 representing a building, some aspects alter the orientation of at least a portion of visual data 108 or 110, indicating deformation resulting from Godzilla's legs (i.e., visual data 104 and 106) crushing the car or crashing into the building. In some aspects, such deformation can be represented using physics-based simulations. For example, collision detection algorithms can identify when a data object (such as a car) collides with other objects or obstacles (such as Godzilla's legs). Alternatively or additionally, rigid body physics simulations can be used. These simulations model how an object responds to forces and collisions while maintaining its shape. Factors such as mass, velocity, and forces applied during a collision can be considered.

[0042] Although Figure 1 The illustration shows what happens when a force threshold is met or exceeded, but the corresponding function can be performed using alternative or additional metrics. Other metrics include any gait attitude metrics described herein. Examples of gait attitude metrics include the number of strides taken by the wearer, activity type (e.g., running vs. walking), foot strike angle, mean peak, etc. Therefore, the force and / or time thresholds can be replaced with any gait attitude metric threshold such that when any suitable threshold (e.g., foot strike angle) is met or exceeded, visual content 104 / 106, visual data representing cracks in the display, and / or crushing / crashing a car or building, as described above, can be displayed. Other metrics may additionally or alternatively include posture estimation, such as regarding… Figure 14 As described. For example, in response to estimating a “stomping” posture, visual data 104 and / or 106 representing Godzilla’s legs deform visual data 108 representing the crushed car.

[0043] Now go to Figure 2 , Figure 2At a higher level, screenshot 200 illustrates the effect of a player's foot experiencing forces exceeding a threshold (e.g., GRF) according to several aspects. Specifically, screenshot 200 represents a game environment where the user's footwear or corresponding sensors exceed the force threshold, such as those integrated into the footwear (e.g., Figure 5A The measurements are taken from one or more sensors in the footwear products (500). In some respects, screenshot 200 represents a page from a game application.

[0044] Regarding screenshot 200, the player avatar 201 needs to reach the car 204 within a time threshold (e.g., 10 seconds), while the real-world user must run within a force threshold so as not to disturb the T-Rex 202. In these respects, the player avatar 200 represents a real-world user wearing footwear including one or more sensors (e.g., IMU) that measure or predict force, where the movement of avatar 201 mimics the user's lower limb movement in the real world. In response to one or both of the aforementioned force and / or time thresholds being exceeded (indicating high impact force on the user's feet and / or too slow), the visual data 202 of the T-Rex indicates a change in position or orientation, indicating a pursuit or attempt to catch avatar 201. If the sensor readings fall below one or both thresholds (indicating the user is running with low impact force within a given time), the visual data 202 of the T-Rex indicates that it remains in place or does not participate in catching avatar 201. Although Figure 2 The illustration shows what happens when the force threshold is met or exceeded, but as mentioned above, alternative or additional movement attributes can be measured and used to perform the corresponding functions, such as additional gait attitude parameters, force curves, gait postures, etc.

[0045] Figure 3A The illustration shows a footwear product 300 located in a first position at a first moment. The footwear product 300 includes a heel stabilizer 302, an outsole 304, and an IMU 306. Figure 3B The diagram illustrates the second position at the second time point following the first time point. Figure 3A Footwear article 300. In response to sensor data from IMU 306 experiencing a force (e.g., GRF) or other metric (e.g., gait attitude magnitude) threshold, spring mechanism 308 causes outsole 304 to move along an axis closer to the ground, and / or causes heel stabilizer 302 to move along an axis higher above the ground, thereby creating a "bouncing" force to counteract or assist (e.g., produce a larger magnitude) that force. For example, a particular aspect predicts that the outsole 304 at the toe portion of footwear article 300 is experiencing a GRF above a threshold at the metatarsophalangeal portion, indicating that the wearer is beginning to jump or run. Responsively, as Figure 3BAs shown, spring 306 generates a bouncy force to assist the wearer in jumping or running. Examples of footwear article 300 are described in PCT / US2023 / 031679, which is incorporated herein by reference in its entirety.

[0046] Figure 4 The illustration shows a screenshot 400 of an example user interface based on some aspects. In some aspects, screenshot 400 represents a page of a coach or other user application that warns the coach (or other user) when gait attitude quantities or forces exceed a threshold. Screenshot 400 includes a set of gait attitude quantities 402, namely stride (number of strides), activity type (running), speed (mph (miles per hour)), gait cycle time (GCT) (in milliseconds), stride length (in meters), cadence (steps per minute), foot strike angle (degrees), average VGRF (vertical ground reaction force), peak VGRF, VGRF impulse, and instantaneous VGRF LR.

[0047] Screenshot 400 also includes a speed-cadence curve 404 and a GRF curve 406. Screenshot 400 also includes a pop-up window 404 indicating that the runner's VGRF is too high (i.e., it exceeds a threshold). Screenshot 400 also includes a gait adjustment recommendation button 414.

[0048] At a given moment, one or more sensors within the footwear can measure sensor data (e.g., accelerometer sensor data), which is then transmitted to one or more processors and interpreted by them to derive gait parameters 402, a speed-cadence graph 404, a pop-up window 408, and / or a force curve 406. In response to receiving an indication that the user has selected the "speed" graph metric as indicated by 410 and the "cadence" graph metric as indicated by 412, certain aspects automatically cause the speed-cadence graph 404 to be presented, where speed is indicated by line 404-1 and cadence by line 404-2.

[0049] The vGRF curve 406 is a graphical representation of how vertical forces change when a person interacts with the ground during various movements. Such a curve 406 can be used in biomechanics and gait analysis to understand the distribution and timing of forces during activities such as walking, running, and jumping. Curve 406 can provide valuable insights into the mechanics and efficiency of these movements and can be used to evaluate various aspects of gait and athletic performance. In some aspects, the horizontal axis of curve 406 represents time, where data points are collected at regular intervals. This axis shows the duration of a particular activity or movement, such as walking, running, or jumping. In some aspects, the vertical axis of curve 406 represents the magnitude of the vertical ground reaction force. In some aspects, this force is measured in Newtons (N) or other appropriate units of force. The force axis shows the change over time of the force exerted on the ground by a person's feet or body during activity.

[0050] Although pop-up window 408 indicates that the runner's VGRF is too high, it should be understood that VGRF is only representative and can indicate any movement or gait attitude values, such as the number of strides or speed, falling outside the threshold. In response to receiving an indication that the user has selected the "Gait Adjustment Recommendation" button 414, a specific aspect causes one or more recommendations to be presented, which, if adopted by the wearer, would help reduce or eliminate gait attitude values ​​or other movement values ​​falling outside the threshold. For example, in response to receiving an indication that the user has selected button 414, the specific aspect accesses a data structure stored in memory that lists pre-determined, manually coded steps the user can take to reduce their VGRF. Such a data structure could be a lookup table, where the index or key of a particular entry or record represents a specific VGRF range, and the value represents the action the user must take. In an illustrative example, a key could be 2000 Newtons to 2050 Newtons, and the value could be something like "Tell the runner to run more on the forefoot than on the heel." Therefore, if the runner does take such an action, this can eliminate the notification in pop-up window 408.

[0051] Figure 5AAn exploded view of a footwear article 500 having an embedded inertial measurement unit (IMU) 506 according to some aspects is illustrated. In some aspects, the footwear article includes a sole structure attached to the upper. The footwear article 500 described herein may include shoes or any part of a shoe (e.g., midsole, insole lining, or upper), socks, running shoes, baseball shoes, basketball shoes, skate shoes, cycling shoes, American football shoes, tennis shoes, global football shoes, training shoes, walking shoes, hiking shoes, etc. The concepts described herein can also be applied to other types of footwear considered non-athletic, such as dress shoes, loafers, sandals, and work boots. As used herein, footwear articles can be divided into different general areas. The forefoot area generally includes the portion of the footwear article corresponding to the toe and the joints connecting the metatarsals and phalanges. The midfoot area generally includes the portions of the footwear article corresponding to the arch and instep areas of the foot. The heel area generally corresponds to the posterior portion of the foot, including the calcaneus. The footwear described herein may include a lateral side (i.e., the surface facing away from the other foot) corresponding to the lateral region or lateral portion of the foot, and a medial side (i.e., the surface facing the other foot) corresponding to the medial region of the foot. These different regions and sides are intended to represent general areas of footwear to aid the discussion below, and are not intended to delineate precise areas. The different regions and sides may be applied as a whole to footwear, to the upper, and to the sole structure.

[0052] continue Figure 5A Footwear article 500 includes an outsole 502, a midsole 504, an insole 508, and an upper 512. The midsole 504 is configured to engage between the insole 508 and the outsole 502. The midsole 504 includes a cavity or recess 504-1 configured to receive an IMU 506. Figure 5B The diagram illustrates the differences between various aspects. Figure 5A Cross-sectional views of the IMU 506 and midsole 504 of the footwear. Therefore, Figure 5B The diagram also illustrates the midsole 504, the cavity 504-1, and the IMU 506. In some respects, the IMU 506 is equal to or greater than 21 × 17.5 mm (e.g., ±5%), but less than 2 inches by 2 inches (e.g., ±5%). Therefore, such a cavity 504-1 can be slightly larger than these dimensions (e.g., increased by 5%) to accommodate the IMU 506. In some respects, the midsole 504 can be made of any suitable material to accommodate the IMU 506 while providing cushioning and support. For example, in some respects, the midsole 504 is or includes ethylene-vinyl acetate (EVA) foam.

[0053] To manufacture the midsole 504, a mold can be created for the midsole 504 with a designed cavity 504-1 for the IMU 506. A specific aspect then injects or pours a selected midsole material into the mold, ensuring that the cavity 504-1 for the IMU 506 is properly formed. The aspect then allows the midsole 504 to cure or set. Once the midsole 504 is ready, the specific aspect inserts the IMU 506 into the designated cavity 504-1. If the IMU 506 requires wiring or connection to other components (e.g., a battery or sensor), some aspects will pass wiring through the midsole 504 to connect the IMU 506 to the necessary components. Some aspects seal the midsole 504 to protect the IMU 506 from moisture, shock, and other potential sources of damage. For example, sealing may include filling the cavity 504-1 with additional EVA foam so that the IMU 506 is completely enclosed or surrounded by the midsole 502 (e.g., no openings allow the IMU 506 to fall out). This can be achieved by using a sealant or covering that is also integrated into the midsole 504-1. Once the midsole 504 is manufactured, it can be integrated into the other parts of the shoe during the shoemaking process, following typical stitching and assembly steps. For example, the midsole 504 can be joined to the top of the outsole 502 in any suitable manner, and the insole 508 can be joined to the midsole 504, etc. As used herein, “joining” means sewing, fastening, or otherwise connecting two articles together. For example, joining can include or means stitching, knitting, weaving, bonding, nonwoven joining, etc.

[0054] continue Figure 5A and Figure 5B The IMU 506 can be any suitable IMU with any appropriate number and type of sensors. In some aspects, the IMU 506 is configured to detect or measure rotational movement across six channels, such as pitch, roll, and yaw from a gyroscope, and longitudinal, vertical, and inward / outward movement from an accelerometer. To achieve this, the IMU 506 can combine the functions of one or more accelerometers, gyroscopes, and / or magnetometers. An accelerometer can be used as a tool for measuring velocity on the IMU 506. In some aspects, the accelerometer functions to detect the rate of change of velocity of an object (e.g., footwear 500). In some aspects, a gyroscope is used as a tool for measuring rotation / rotational rate on the IMU 506. Its function is to detect changes in rotation or maintain orientation. The magnetometer sensor measures the strength and / or direction of the magnetic field on the IMU. Combining these three sensors allows for the measurement of orientation, velocity, and magnetic force.

[0055] It should be understood that although IMU 506 is... Figure 5A and Figure 5BThe IMU 506 is illustrated as being embedded within the midsole 504, but it may be embedded within or attached to other parts of the footwear article 500. For example, in some aspects, it may be embedded within the insole 508, embedded within the outsole 502 (as described with respect to the midsole 504), attached to the laces 510, or otherwise secured to the upper 512. In another instance, the IMU 506 may be embedded in the insole, as described in U.S. Provisional Application 63 / 465,969, filed May 12, 2023, which is incorporated herein by reference in its entirety. In yet another instance, the IMU 506 may be embedded in the footwear article 500, as described in U.S. Application US7607243, which is incorporated herein by reference in its entirety.

[0056] Figure 6 A block diagram of system 600 according to some aspects is illustrated. System 600 represents only one example of a suitable computing system architecture. Other arrangements and elements may be used in addition to or in lieu of the arrangements and elements shown, and some elements may be omitted entirely for clarity. Furthermore, many of the elements described herein are functional entities that can be implemented as discrete or distributed components or combined with other components, and implemented in any suitable combination and location. For example, some or each of the components of the system may reside in a single computing device (e.g., Figure 20 Within computing device 8). Alternatively, some or each of the components may be distributed among various computing devices, such as distributed cloud computing environments. In some embodiments, system 600 and each component are located within footwear article 1804, system 1808, and / or user equipment 1802, such as Figure 18 As described in more detail below. In some respects, the components of System 600 are represented or embodied as a set of compiled computer instructions or functions, program modules, computer software services, logic gates, hardware accelerators, or arrangements of processes that execute on one or more computer systems.

[0057] System 200 is typically used to estimate force curves and step attitude parameters. System 200 includes sensor data (e.g., from...) Figure 5A The IMU 506 transmits IMU sensor data, gait magnitude estimation unit 606, gait segmentation unit 604, force curve estimation unit 608, estimated gait magnitude 612, and estimated force curve 610. At the first time, sensor data 602 is transmitted to gait magnitude estimation unit 606, gait segmentation unit 604, and / or force curve estimation unit 608.

[0058] The gait segmentation component 604 is typically responsible for detecting, estimating, classifying, predicting, or otherwise calculating the type of activity the wearer is engaged in, and / or deriving (e.g., programmatically calling) an appropriate corresponding model. Examples of activity types are running, walking, jogging, or gait phases within a gait cycle. A gait cycle is a series of events that occur within a complete cycle of walking, running, etc., and is typically divided into several gait phases. For example, initial contact (IC) is the moment the foot first contacts the ground (usually with the heel). The load response (LR) phase occurs when the foot begins to bear weight and the body begins to move over the supporting limb. During this phase, the foot continues to invert (roll inward). The mid-stance phase (MSt) occurs when the body weight is directly over the supporting limb. The foot lies flat on the ground, and the arch begins to rise. The late-stance phase (TSt) occurs when the body continues to move forward over the supporting limb. The heel begins to lift, and the foot everts (rolls outward). The pre-swing phase (PSw) is when the feet lift off the ground and the body begins to prepare for the swing phase. The initial swing phase (ISw) is the beginning of the forward swing as the legs leave the ground. During the middle swing phase (MSw), the legs continue to swing forward. The final swing phase (TSw) is when the legs are preparing to make contact with the ground in this final stage of the swing.

[0059] In an illustrative example of how the gait segmentation component 604 functions in some respects, at a first time point, the gait segmentation component 604 classifies a specific stride length and / or a specific window of sensor data values ​​from sensor data 602 into a specific activity type, such as running or walking. In some respects, such classification involves the concept of using a machine learning model that has been trained to learn the relationship between sensor data values ​​and corresponding labels or categories (such as walking or running). For example, in some respects, during training or fine-tuning, a series of sensor data values ​​labeled “running” are fed to the model. Additionally or alternatively, a series of other sensor data values ​​labeled “walking” are fed to the model. Thus, over multiple epochs, the model learns to reduce its error and adjust its weights to learn which sensor data values ​​indicate walking or running. For example, because running has a higher impact than walking, running can be associated with a higher range of accelerometer values ​​than walking. Thus, the machine learning model can learn such a relationship. Therefore, at model deployment time or inference time, the model can infer based on specific received sensor data values ​​(e.g., the wearer is in a running phase) by training on the same or similar sensor data values. In response to this classification of activity type, some aspects programmatically invoke the force curve estimation component 608 or its associated piecewise model, as described in more detail below.

[0060] The gait attitude estimation component 606 is typically responsible for detecting, estimating, classifying, predicting, or otherwise calculating one or more gait attitude parameters of a wearer (e.g., the wearer of footwear 500). The output of the gait attitude estimation component 606 is the estimated gait attitude parameter 612. Examples of gait attitude parameters include stride length (number of strides), activity type (running), speed (mph), gait cycle time (in ms), stride length (in m), cadence (steps per minute), foot strike angle (degrees), average VGRF (vertical ground reaction force), peak VGRF, VGRF impulse, and instantaneous VGRF LR. The gait attitude estimation component 606 takes sensor data 602 and / or the output of the gait segmentation component 604 (e.g., classification of whether the wearer is running) as input, each of which is described in more detail below.

[0061] In an illustrative example of how the gait attitude estimation component 606 functions in some respects, at a first time point, the gait attitude estimation component 606 extracts a specific window of sensor data values ​​from sensor data 602 and / or an activity type from gait segmentation component 604, and responsively estimates a specific gait attitude quantity (e.g., vertical ground reaction force (VGRF)) and its corresponding value. In some respects, such classification involves the concept of using a machine learning model (e.g., a regression model) that has been trained to learn the relationship between sensor data values ​​and / or activity type classifications (from gait segmentation component 604) and corresponding labels or classifications (such as the magnitude of a specific predicted force (although other gait attitude quantities may be made)). For example, in some respects, during training or fine-tuning, a series of sensor data values ​​(e.g., accelerometer and gyroscope values ​​X) and / or outputs from gait segmentation component 604 (e.g., “walking”) are fed to the model, and these outputs are labeled as “force in the range of 400 Newtons and 500 Newtons” (or other gait attitude quantities). Additionally or alternatively, the model is fed a series of other sensor data values ​​(e.g., accelerometer and gyroscope values ​​Y) and / or gait segmentation outputs (e.g., "running"), labeled as "force in the range of 700 to 800 Newtons". Thus, over multiple epochs, the model learns to reduce its error and adjust its weights to learn which sensor data values ​​and / or activity type classifications indicate a specific range of gait attitude quantities, such as force, stride length, foot strike angle, etc. Therefore, for example, at model deployment time or inference time, the model can infer from a specific received sensor data value based on training with the same or similar sensor data values ​​(e.g., the wearer is experiencing a specific VGRF value).

[0062] In some respects, the attitude magnitude estimation component 606 uses additional or alternative algorithms. For example, an accelerometer can measure linear acceleration. It provides information about the forces acting on an object along a specific direction (e.g., along three axes—X, Y, and Z, or longitudinal, vertical, and inner / outer). When the device (e.g., IMU 506) is stationary on a flat surface, in some respects, the accelerometer measures the acceleration caused by gravity (approximately 9.81 m / s²) in the direction opposite to the gravity vector (upward along the Z-axis). A gyroscope measures angular rate, i.e., the rate of rotation or change in orientation. The gyroscope provides information about the rate of rotation along each of the device's axes. Gyroscope data can be integrated over time to estimate the device's orientation or angular displacement.

[0063] To predict force or acceleration using accelerometer and gyroscope data, some aspects employ sensor fusion techniques and / or utilize complementary filters (e.g., Kalman filters) or more advanced sensor fusion algorithms. By integrating the accelerometer data twice (in the absence of any other force), some aspects obtain the change in position. When gravity is removed (by subtracting the gravitational component from the accelerometer data), the remaining acceleration data can be used to calculate the position and / or orientation of the device (e.g., the accelerometers). Gyroscope data provides information about the rate of change of orientation. By integrating these data over time, the aspects estimate the orientation of the device relative to an initial reference frame.

[0064] Combining orientation data from the gyroscope with linear acceleration data from the accelerometer allows the various aspects to calculate the position and / or orientation of a device (e.g., IMU 506) in its current orientation. This fusion process compensates for the fact that the accelerometer measures both linear acceleration and constant gravity. The combined data can be used to estimate the device's position and / or orientation in real time. For example, if the device is moving, the various aspects consider its orientation and acceleration to calculate the net force causing that motion.

[0065] The force curve component 608 takes sensor data 602, estimated gait attitude quantities 612, and / or activity type classification (e.g., generated from the gait segmentation component 604) as input to generate an estimated force curve 610 as output. Because a force curve is a graphical representation of how force changes over time or relative to a specific event or activity (e.g., a specific gait phase, running, or walking), in some respects, the output 610 only represents the magnitude or index of force changing over time relative to a specific event or activity (rather than a graphical representation). For example, the output 610 may only represent the estimated force change over at least one parameter (such as time and / or classification according to a specific activity type). The shape of the force curve describes how force changes over time or during an event. Different patterns can indicate different characteristics of the activity. For example, in running gait analysis, the force curve may show patterns of force during foot strike, rolling, and push-off. Force curves often have specific characteristics corresponding to key events or phases in the activity. For example, in vertical jump analysis, the curve will typically show a sharp increase in force before takeoff, then almost no force at takeoff, and then a sharp increase again upon landing. Researchers and / or users can use force curves to analyze various aspects, such as the timing and magnitude of peak force, load rate, force distribution across different body parts or limbs, and other biomechanical or physical properties. This analysis can provide insights into performance, injury risk, and activity mechanics. Force curves are a useful tool for understanding the mechanics and dynamics of various movements and activities, and help users make informed decisions about improving performance, preventing injuries, and optimizing equipment and techniques.

[0066] As described above, in some aspects, the gait segmentation component 604 programmatically calls another model (such as a piecewise model) for use by the force curve estimation component 608. A piecewise model (also called a piecewise function or piecewise defined function) is a mathematical model that includes multiple functions or expressions defined over different intervals or "segments" of the input domain. In other words, instead of representing a single function uniformly applied to its entire domain (e.g., corresponding to all sensor data values ​​for walking, jogging, and running, or all gait phases), a piecewise model is a combination of different functions, each applicable to a specific range of input values ​​(e.g., sensor values ​​indicating only running (not walking) or a specific gait phase, but not other phases). For example, one piecewise model could be a machine learning model representing a series of sensor values ​​representing a user running; another piecewise model could be a model representing another series of sensor values ​​representing a user walking. This approach is particularly useful because the relationship between running and walking (or a specific gait phase) is not uniform and varies under different conditions or circumstances.

[0067] In an illustrative example, in response to the gait segmentation component 604 classifying a set of sensor values ​​as "running," the gait segmentation component 604 can return a "running" segmented model to the force curve component 608 for use. This "running" segmented model is directly used to generate the estimated force curve 610. This helps to enable a more precise estimation of force changes over time, because sensor data and therefore forces may differ significantly between running and walking, for example.

[0068] In some aspects, such a segmented model or prediction of the estimated force curve 610 involves the concept of using a machine learning model that has been trained to learn the relationship between sensor data values, activity type classifications (from the gait segmentation component 604), and / or the estimated gait attitude magnitudes 612 and their corresponding labels or classifications (such as a specific predicted change in force over time), which will be described in more detail below. For example, in some aspects, during training or fine-tuning, a series of sensor data values ​​(e.g., accelerometer and gyroscope values ​​X), gait attitude magnitude values ​​(e.g., foot landing angle at time X), and / or gait models from the gait segmentation component 604 that predict the shape of the force curve using regression techniques are fed to the model. Thus, over multiple epochs, the model learns to reduce its errors and adjust its weights to learn which sensor data values, activity types, and / or gait attitude magnitude classifications indicate a particular force curve or its corresponding shape. Thus, for example, at the model deployment time or inference time, the model can make inferences based on training on the same or similar data (e.g., the existence of a specific change in force over time represented by the force curve).

[0069] Figure 7 This is a schematic diagram illustrating how a neural network 705 generates force curve (or force change) predictions based on certain aspects. In some embodiments, the neural network 705 represents... Figure 6The force curve estimation component 608 uses or includes the following: In some aspects, the neural network 705 represents or includes any suitable model functionality, such as supervised learning (e.g., using logistic regression, using backpropagation neural networks, using random forests, decision trees, etc.), unsupervised learning (e.g., using the Apriori algorithm, using K-means clustering), semi-supervised learning, reinforcement learning (e.g., using the Q-learning algorithm, using temporal difference learning), regression algorithms (e.g., ordinary least squares, logistic regression, stepwise regression, multivariate adaptive regression splines, local estimation scatter plot smoothing, etc.), instance-based methods (e.g., k-nearest neighbors, learned vector quantization, self-organizing maps, etc.), regularization methods (e.g., ridge regression, minimum absolute shrinkage and selection operators, elastic networks, etc.), decision tree learning methods (e.g., classification and regression trees, iterative dichotomy 3, C4.5, chi-square automatic interaction detection, decision stumps, random forests, multivariate adaptive regression splines, gradient boosting machines, etc.), Bayesian methods ( Examples of suitable machine learning algorithms include: Naive Bayes, average single dependency estimator, Bayesian belief network, kernel methods (e.g., support vector machine, radial basis function, linear discriminant analysis), clustering methods (e.g., k-means clustering, expectation maximization), association rule learning algorithms (e.g., Apriori algorithm, Eclat algorithm), artificial neural network models (e.g., perceptron method, backpropagation method, Hopfield network method, self-organizing map method, learned vector quantization method, etc.), deep learning algorithms (e.g., restricted Boltzmann machine, deep belief network method, convolutional network method, stacked autoencoder method, etc.), dimensionality reduction methods (e.g., principal component analysis, partial least squares regression, Sammon map, multidimensional scaling, projection tracking, etc.), ensemble methods (e.g., boosting, bootstrap aggregation, adaptive boosting, stacked generalization, gradient boosting machine method, random forest method, etc.), and / or any suitable form of machine learning algorithm.

[0070] Neural network 705 is modeled as a data flow graph (DFG), where each node in the DFG (e.g., 721) is an operator with one or more input and output tensors (such as 720 and 722). A "tensor" (e.g., a vector) is a data structure containing values ​​representing the inputs, outputs, and / or transformations processed by the operator. Each edge of the DFG depicts the correlation between operators. Neural network 705 includes an input layer, an output layer, and one or more hidden layers. The input layer is the first layer of neural network 705. The input layer receives preprocessed input data, such as one or more sensor data values ​​(e.g., specific accelerometer and gyroscope values), represented by 703 and 715 (e.g., via preprocessing 704 or 716). The output layer is the last layer of neural network 705. The output layer generates one or more inferences in the form of clustering, regression, classification, etc., which can be hard classification (e.g., the force curve has shape X) or soft probability (e.g., the force curve has a 50% probability of having shape X), represented by predictions 709 and 707. The neural network 705 can include any number of hidden layers. Hidden layers are intermediate layers in the neural network 705 that perform various operations.

[0071] Figure 7 Each node in the network, such as node 721, is associated with or includes one or more activation tensors, such as input tensor 720, output tensor 722, and / or intermediate tensors. As shown in the data flow from input tensor 720 to output tensor 722, an "activation tensor" is a tensor that serves as the input, intermediate, and / or output (e.g., modeled from left to right) of at least one neural network layer. This differs from weight tensors, such as 724, where weight tensors are modeled as flowing upwards (not as actual inputs or outputs). In other words, activation tensors represent some form of the neural network inputs 703 and 715. For example, input tensor 720 or node 721 could represent the presence or estimation of a specific sensor data value inside or outside a threshold, while weight tensors represent weight values ​​indicating the activation / inhibition values ​​of nodes.

[0072] Each node in network 705 may also be associated with or include one or more weight tensors (e.g., 724) that include weight values. In the context of machine learning, a “weight” can represent the importance or significance of a feature or feature value used for prediction. For example, each feature (e.g., an accelerometer value within a range) may be associated with an integer or other real number, where the higher the real number, the more significant the feature is for its prediction. In one or more aspects, weights in a neural network represent the strength of the connection between nodes or neurons from one layer (input layer) to the next layer (hidden layer or output layer). A weight of 0 can mean that the input (e.g., input tensor 720) will not change the output (e.g., output tensor 722), while weights higher than 0 will change the output. The higher the input value or the closer the value is to 1, the more the output will change or increase. Similarly, negative weights can exist. Negative weights can proportionally decrease the value of the output. For example, the more the input value increases, the more the output value decreases. Negative weights can result in negative scores. For example, force curve estimation may be highly correlated with a specific range of accelerometer values, a specific range of gait parameters, and / or activity type, and therefore neural network layers or nodes representing these ranges and / or activity types can be given higher weights so that these data are activated or considered when making the final prediction score.

[0073] Each node in a 705 neural network can additionally use activation and weight tensors to perform one or more functions, such as activation functions, matrix multiplication, normalization, etc. In some respects, nodes in a 705 neural network are either fully connected or partially connected. See also... Figure 7Each node can process one or more inputs (or portions thereof) in 703 and 715 using activation and weight tensors. In some aspects, in response to receiving deployment input 703 and training data input 715, neural network 705 first performs preprocessing 704 or 716, such as encoding or converting such inputs into machine-readable notations representing the entire input (e.g., tensors representing sensor data values ​​over a specific time span). Responsively, a node can then receive an input tensor, which may, for example, represent the presence of one or more features in the input (e.g., a specific range of sensor values). In some aspects, the input tensor is an N-dimensional tensor, where N can be greater than or equal to one. In some aspects, if the node is in the input layer, the input tensor 720 represents the input data of neural network 705. In some aspects, the input tensor 720 is also the output of another node in the previous layer. In some respects, after a node (such as node 721) performs an operation using the input tensor 720, it generates an output tensor 722, which is then passed to other neurons in the hidden layer and / or the output layer. The output tensor 722 represents the output processed by node 721. For example, the output tensor 722 could be a matrix representing a matrix multiplication product, or a matrix indicating whether a sensor data value has exceeded a threshold (or is within a range). In various respects, the output tensor 722 represents the input to another node in a subsequent layer (i.e., the output layer).

[0074] In some aspects, node 721 applies weight tensor 724 to input tensor 720 via linear operations (e.g., matrix multiplication, addition, scaling, biasing, or convolution). All other nodes in the neural network can perform the same function. In some aspects, the results of linear operations are processed by nonlinear activations (such as step functions, sigmoid functions, hyperbolic tangent functions (tan h), and modified linear unit functions (ReLU). The result of activation or other operations is output tensor 722, which is sent to subsequent connection nodes in the next layer of neural network 705. Subsequent nodes use output tensor 722 as input activation tensors to another node.

[0075] Each function in the neural network 705 can be associated with different coefficients (e.g., weights and kernel coefficients) that can be adjusted during training. For example, after preprocessing 716 in various aspects (e.g., normalization, feature scaling, and extraction), the neural network 705 is trained using one or more datasets of preprocessed training data input 715 to train predictions with appropriate weights and an acceptable loss to set the weight tensor. This will help to make correct inference predictions 709 at a later deployment time. In one or more aspects, learning or training involves minimizing a loss function between the target variable (e.g., a prediction indicating an incorrect force curve) and the actual predictor variable (e.g., a prediction indicating a correct force curve). Based on the loss determined by the loss function (e.g., mean squared error loss (MSEL), cross-entropy loss, etc.), the loss function is learned to reduce errors in predictions over multiple epochs or training sessions, such that the neural network 705 learns which features and weights indicate correct inference given the input. Therefore, it is desirable to achieve as close to 100% confidence as possible in a particular classification or inference in order to reduce prediction errors. In an illustrative example, the neural network 705 learns that, given a set of sensor data values ​​A, gait attitude values ​​B, and a specific activity type (e.g., running), the correct classification is a specific force curve or a predicted force change over a certain time period.

[0076] After the first round / epoch of training, the neural network 705 makes predictions using specific weight values, which may or may not be at an acceptable level of the loss function. For example, the neural network 705 can process the pre-processed training data input 715 a second time to make another round of predictions. This process can then be repeated over multiple iterations or epochs until the weight values ​​in the weight tensor are learned for the best or correct predictions (e.g., by maximizing the reward and minimizing the loss) and / or the loss function reduces the error in the predictions to an acceptable confidence level.

[0077] In some respects, the input is preprocessed at 716 (or 704) before being fed into the neural network 705 as input to training data input 715 (or deployment input 703). In some respects, this preprocessing includes feature scaling, feature extraction, normalization, etc. Scaling (or “feature scaling”) is the process of changing numerical values ​​(e.g., via normalization or standardization) so that the model can better process the information. For example, some aspects may involve normalization to bind numerical values ​​between 0 and 1. Other instances of preprocessing include feature extraction, handling missing data, feature scaling, and feature selection.

[0078] Feature extraction involves computing a simplified set of values ​​from a high-dimensional signal that can summarize most of the information contained within it. Feature extraction techniques develop transformations from the input space to a lower-dimensional subspace, attempting to preserve the most relevant information. In feature selection, the input dimension containing the most relevant information for solving a specific problem is chosen. These methods aim to improve performance, such as the accuracy of estimation, visualization, and interpretability. The advantage of feature selection is that it does not lose important information associated with individual features; however, if a small feature set is required and the original features are highly diverse, information may be lost because some features must be omitted. On the other hand, dimensionality reduction, also known as feature extraction, can typically reduce the size of the feature space without losing information about the original feature space.

[0079] In some respects, the preprocessing of the data at positions 716 and / or 704 includes techniques for handling missing data. These techniques include full case analysis, single imputation, log-linear models and estimation using the EM algorithm, propensity score matching, and multiple imputation. This technique limits attention to cases where all variables are observed in a full case analysis. In a single implicit imputation method, missing values ​​are replaced with values ​​from similar response units in the sample. Similarity is determined by examining the variables observed for both responders and non-responders. Multiple imputation replaces each missing value with a vector of at least two imputed values ​​drawn at least twice. These extractions typically come from a stochastic imputation process. In a log-linear model, the unit counts of the contingency table are directly modeled. Assumptions may be that, given the expected value for each unit, the unit counts follow an independent multivariate Poisson distribution. These are conditions based on the total sample size, whose counts follow a multinomial distribution.

[0080] In some aspects, the preprocessing at 716 and / or 704 includes outlier detection and correction techniques for handling outlier data within the input data 715 / 703. Unlike other cases, outliers often disproportionately influence substantial conclusions about the relationship between variables. Outliers can be defined as data points that deviate significantly from other data points. For example, error outliers are data points that are far from other data points because they are caused by inaccuracies. More specifically, error outliers include those caused by not being part of the target data group, being outside the possible range of values, errors in observation, errors in recording, errors in data preparation, errors in calculation, errors in encoding, or errors in data manipulation. These error outliers can be handled by adjusting data points to correct their values ​​or by adding more such data points from the dataset. In some implementations, specific aspects define values ​​that are more than three scaled median absolute deviations (“MAD”) from the median as outliers. Once defined as outliers, some aspects replace these values ​​with thresholds used in outlier detection.

[0081] In some aspects, preprocessing at 716 and / or 704 includes feature selection at 715 and / or 703 of the input data. Feature selection techniques can be performed to reduce dimensionality from the extracted features. Employing feature selection techniques can reduce the computational cost of modeling, resulting in a simpler, more generalized, and higher-performance model. Feature extraction techniques can be performed to reduce the dimensionality of the input data. However, in some implementations, the number of features obtained may still be higher than the number of features in the pre-training data at 715. Therefore, feature selection techniques can be used to further reduce the dimensionality of the data to identify relevant features for classification and regression. Feature selection techniques can reduce the computational cost of modeling, prevent the generation of complex and overfitted models with high generalization errors, and generate simple and easily understandable high-performance models. In some aspects, the mRmR sequential feature selection algorithm is used to perform feature selection. The mRmR method is designed to discard redundant features, which allows for the design of compact and efficient machine learning-based models.

[0082] In one or more aspects, the neural network 705 transforms or encodes the deployment input 703 and training data input 715 into corresponding feature vectors in the feature space (e.g., via convolutional layers). A “feature vector” (also referred to as a “vector”) as described herein can include one or more real numbers, such as a series of floating-point values ​​or integers representing one or more other real numbers (e.g., [0, 1, 0, 0]), natural language (e.g., English) words and / or other character sequences (e.g., symbols (e.g., @, !, #), phrases and / or sentences, etc.). Such natural language words and / or character sequences correspond to this set of features and are encoded or transformed into corresponding feature vectors, enabling a computer to process the corresponding extracted features. For example, each value or other content on a page can be parsed, tokenized, and encoded into one or more feature vectors.

[0083] continue Figure 7 In some respects, neural networks 705 are trained in a supervised manner using annotations or labels based on the use of regression models to represent continuous numerical values. At least one objective of a regression model is to predict or estimate numerical values ​​based on input features. In some respects, the evaluation of regression models involves metrics such as mean squared error (MSE), mean absolute error (MAE), root mean square error (RMSE), and R-squared (R²). These metrics measure the accuracy and precision of the model's numerical predictions.

[0084] In illustrative examples, in some aspects, training includes (or prior to) annotating / labeling training data 715, causing neural network 705 to learn the association between features or weights and corresponding labels, which is used to modify weight / neural node connections for future predictions. For example, a particular aspect captures or samples different ranges of sensor data, gait attitude magnitudes, and activity type classifications at a first time point, and then outputs this information as a report. Responsibly, the wearer, subject matter expert, or programming logic then labels such reports with specific force value ranges (between X and Y Newtons) or force changes (from time 0 to the first time point, with a force change of Z Newtons). This process can be repeated for various subsequent time points, allowing labels to be created for different times to provide, for example, near real-time predictions of force curves based on time series of the wearer wearing the wearable. In this way, neural network 705 can learn which weights or features and their corresponding sensor data, gait attitude magnitudes, and / or activity type values ​​indicate specific forces or force curves. Therefore, the neural network 705 adjusts the weights (weight tensors) or deactivates nodes accordingly, so that certain nodes corresponding to specific sensor data, gait attitude values, and / or activity type values ​​are activated, while other nodes corresponding to other sensor data, gait attitude values, and / or activity type values ​​at specific locations are disabled from making score predictions.

[0085] In one or more aspects, after training, neural network 705 (e.g., in a deployment state) receives one or more preprocessed deployment inputs 703. When deploying a machine learning model, it is typically trained, tested, and packaged to process data it has never processed before. Responsively, in one or more aspects, deployment inputs 703 (i.e., sensor data value A, activity type classification B, and gait attitude quantity C) (e.g., indicating a specific time segment and / or activity that the wearable device is experiencing) are fed into neural network 705, which then uses the same weight tensor (e.g., 724) learned through training to produce a correct inference prediction 709. For example, input tensor 720 may include new values ​​(e.g., sensor data values ​​indicated in 703), which are then multiplied or otherwise combined with weight tensor 724 to represent the same weight values ​​learned during training for inference prediction 709.

[0086] In some respects, the sensor data input in 703 and / or 715 represents Figure 6 Sensor data 602. In some aspects, the activity type classification in inputs 703 and / or 715 represents the output generated by the gait segmentation unit 604. In some aspects, the gait attitude parameters in inputs 703 and / or 715 represent... Figure 6The estimated step attitude quantity 612 is generated by the step attitude quantity estimation component 606.

[0087] Now for reference Figure 8 The illustration shows an example of a Convolutional Neural Network (CNN) 800 based on some aspects. In some respects, the CNN 800 represents... Figure 7 The neural network 705. The CNN 800 receives sensor data (e.g., sensor data 602) and running features 805 and / or 813. The CNN 800 includes a convolutional layer 807, a max-pooling layer 809, a flattening layer 811, and an output 815.

[0088] In some respects, sensor data 803 refers to any suitable sensor data described herein, such as that provided by [the relevant authority / organization]. Figure 5A and Figure 5B The sensor data is provided by the IMU 506. In some aspects, the input data includes six channels, such as 3-axis accelerometer data (longitudinal, vertical, and inward / outward) and 3-axis gyroscope data (pitch, yaw, and roll). Channels represent different measurements or sensor data readings collected from individual sensors. Alternatively, in some aspects, there are three channels, with only the pitch axis used for gyroscope data, along with the longitudinal and vertical accelerometer sensor data. In some aspects, the sensor data input 803 includes 256 samples. A sample, also known as "batch size" or "batch dimension," represents the number of independent data points or instances fed into the CNN800 in a single forward or backward pass. For example, 256 sensor data readings could be fed into the CNN for a single forward pass.

[0089] In some respects, running feature 805 is also fed into CNN 800 as input to convolutional layer 807. In some respects, running feature 805 and / or 813 represent any of the step attitude quantities described herein, such as those related to... Figure 6 The estimated gait attitude parameters 612 are described. In some respects, the gait feature 805 has a shape (256, 2). The shape of the input data refers to the dimension of the data fed into the CNN 800. For example, the shape can specify the number of samples and the length of the time series of sensor data sampled.

[0090] Convolutional layer 807 applies a set of learnable filters or kernels to sensor data input 803 and / or running features 804 to extract features. Each filter (small matrix) detects a specific pattern or feature. Convolution involves sliding the filters across sensor data input 803 and / or running features 805, multiplying them element-wise and summing them, and producing an output feature map. The output represents the presence of detected features at different spatial locations. Convolutional layer 807 can have parameters such as the number of filters, filter size, and padding, which can be tuned to control the capacity and receptive field of the CNN 800. In some cases, there are four filters with a kernel size of 12. Kernel size refers to the dimension of the filter, specifically its width and height.

[0091] Max-pooling layer 809 is typically responsible for performing max-pooling. Max-pooling is a downsampling operation applied to the feature map generated by convolutional layer 807. Max-pooling layer 809 reduces the spatial dimensionality of the feature map while preserving the most important information. Max-pooling works by dividing the feature map into non-overlapping regions (e.g., 2×2 or 3×3) and selecting the maximum value from each region to create a new, smaller feature map. This helps reduce computational complexity, makes CNN 800 more robust to changes in object location and size, and helps control overfitting. In some respects, the pooling size of max-pooling layer 809 is 6. Pooling size refers to the dimension of the local region on which the max-pooling operation is applied. The pooling size is typically specified as a tuple with two values ​​(width, height), and the pooling size determines the size of the region on which the max operation is applied.

[0092] The flattening layer 811 can be used to transition from the convolutional layer 807 and the pooling layer 809 to the fully connected layers (not shown) of the CNN 800. For example, in some aspects, the flattening layer 811 takes a 2D or 3D tensor output from a previous layer (e.g., a feature map) and converts it into a 1D vector. This flattening process can be useful because the fully connected layers may require 1D input. Once flattened, the vector can be fed into one or more fully connected layers for final prediction at output 815. In some aspects, the flattening layer 811 also takes a running feature 813 (e.g., shape 2) as input to create a 1D vector. In some aspects, the running feature 813 represents the exact same running feature 805, but in some aspects, they are different running features. In some aspects, running features 805 or 813 are introduced as input according to alternative embodiments, such as together with sensor data input 803 to be processed by the convolutional layer, or alternatively at the flattening layer 811. In some respects, running feature 813 represents a very specific gait attitude pool, which corresponds to shape 4.

[0093] Figure 9This diagram illustrates how different layers of the same model can be split across different devices to reduce storage consumption and achieve other computational savings, based on various factors. Figure 9 It includes a footwear storage device 902 (e.g., RAM, cache, flash memory, or other memory), a network 910 (e.g., a wide area network (WAN)), and user equipment 912. The footwear storage device 902 includes a bottleneck model 904. The user equipment 912 includes a dense model 906.

[0094] In some aspects, the footwear storage device 902 is embedded in or otherwise attached to a wearable product, such as footwear 500, such as within an IMU 506. The bottleneck model 904 represents the first part of the CNN. The bottleneck model 904 includes an input 904-1 (e.g., sensor data input 803 and / or running features 805), which is convolved via a convolutional layer 904-2. A max-pooling layer 904-3 then applies a downsampling operation to the feature map generated by the convolutional layer 904-2. The output of the max-pooling layer 904-3 is then convolved again via a convolutional layer 904-4, followed by another round of max-pooling and convolution via a max-pooling layer 404-4 and a convolutional layer 904-6. For example, the input at 904-1 could initially have a shape of (256, 3), which is convolved (via convolutional layer 904-2) to a shape of (256, 34), after which max-pooling layer 904-3 and convolutional layer 904-4 reduce the dimensions to a shape of (42, 4). Max-pooling layer 404-5 and convolutional layer 404-6 then perform another iteration to further reduce the shape, such as to (7, 4). Max-pooling layer 904-7 then performs a flattening function (e.g., via flattening layer 811) to flatten or convert the 2D data into a 1D vector, denoted as 904-8, which can now have a significantly reduced shape, such as (4, 1).

[0095] Therefore, the flattened output 904-8 represents a simplified estimate, such as a simplified representation of the estimated force curve 610, and / or Figure 6A simplified representation of the estimated step attitude quantity 612. In response to the flattening layer producing a flattening output 904-8, some aspects terminate the bottleneck model 904 at the flattening output 904-8 (e.g., the bottleneck layer). For example, the flattening output 904-8 may have only four values, while the complete force curve may have 128 values. This saves storage space on the footwear storage device 902. More storage space allows more force curves or other metrics to be stored in the footwear storage device 902 than would otherwise be possible. This also makes transmitting force curves or other metrics over the network 910 computationally more efficient. For example, when data is transmitted over a network (e.g., a LAN or WAN) to user equipment 912 and / or another network device (such as a cloud service node), network latency is reduced (and potentially bandwidth is saved) because less data is being transmitted.

[0096] Early termination of a model means stopping the forward pass of the network at intermediate layers (e.g., bottleneck layers, such as flattening layers) before reaching the final output layer (i.e., dense layer 904-4). To terminate such a model early, some aspects call the index or name of the intermediate layer within the CNN. Then, some aspects can access the layers of the CNN model using the API of a deep learning framework (e.g., in Python, common libraries include TensorFlow and PyTorch). In some aspects, a new model is created, such as dense model 906. Bottleneck model 904 is a subset or second part of dense model 906. In some aspects, dense model 906 includes all layers from the input layer up to and including the termination point (i.e., layers 904-1, 904-2, 904-3, 904-4, 904-5, 904-6, 904-7, and 904-8). However, dense model 906 additionally includes dense layer 904-9, which is not present in bottleneck model 904. However, in some respects, the dense model 906 alternatively contains only the flattened output 904-8 and the dense layer 904-9 (without containing any other layers in the bottleneck model 904), such as Figure 9 As shown. Dense layers in a CNN (e.g., fully connected layers) are a type of layer that are fully connected, meaning that each neuron in a dense layer is connected to every neuron in the previous layer. Each connection between neurons has learned weights and a bias associated with them. These weights and biases can be learned during training via backpropagation and gradient descent, allowing the network to adapt to and model complex relationships in the data. In some aspects, non-linear activation functions (such as ReLU (Rectified Linear Unit) or Sigmoid) are applied to the output of each neuron in the dense layers 904-9. This introduces non-linearity into the network, allowing it to model more complex functions.

[0097] Therefore, the final dense layer 904-9 then runs at the user device 912 (and / or in the cloud) to generate, for example, a complete force curve or other stride attitude measure of 128 samples. The 4-value bottleneck output 904-8 represents the complete force curve (but in a lossless manner). In other words, if it were desired to store the force curve or other metric in the footwear storage device 902, typically 128 floating-point values ​​(e.g., per stride) would have to be stored. However, using the bottleneck model 904, for example, only 4 values ​​would need to be stored, representing the 128 values ​​in a lossless manner. Therefore, for example, if there is a request for the user device 912 to display the final predicted force curve or other metric, the bottleneck output 904-8 can be generated at the network interface at the footwear, and then the footwear transmits the bottleneck output 904-8 through network 910. Responsively, dense model 906 decodes the bottleneck output 904-8 to generate decoded dense data (e.g., shape (128, 1)) via dense layer 904-9, which contains significantly more information than the output 904-8. In some respects, the output 904-8 is not transmitted to user device 912 via network 910 unless there is such a display or other transmission request. Instead, all data is stored locally at footwear storage device 902. Thus, for example, the amount of storage required for stride length or any time window is significantly reduced (e.g., 4 floating-point numbers per stride instead of 128).

[0098] Figure 10 It is a high-level illustration of force curve estimation (or force change estimation) based on some aspects of processing IMU data. Figure 10 This includes input data 1002, a machine learning model 1004, and output data 1006. In some respects, the IMU data representation of input data 1002 is... Figure 5A and Figure 5B The sensor data generated by the IMU 506. In some respects, machine learning model 1004 represents neural network 705, CNN 800, bottleneck model 904, or dense model 906. In some respects, output data 1006 represents... Figure 8 Output 815, Figure 4 Force curve 406 Figure 9 The output of the flattened layer 904-8 and the output of the dense layer 904-9 Figure 6 The estimated force curves 610, the inference predictions 709 and / or Figure 7 The training prediction is 707.

[0099] like Figure 10As shown, input data 1002 is represented by a graph, where the Y-axis represents IMU sensor data, and each line represents a different axis (e.g., pitch, yaw, and roll) from one or more sensors. The X-axis represents the gait cycle as a percentage. In this way, it is possible to determine what a specific sensor data value is at a specific part or percentage of the gait cycle. Gait cycle percentage refers to dividing a complete walking or running cycle into different phases or events, each phase or event being represented as a percentage of the entire cycle. This concept can be used in biomechanics and gait analysis to understand and quantify the different components of a person's stride. The gait cycle typically consists of two main phases: the stance phase and the swing phase. These phases are also divided into specific events. The gait cycle is generally defined as beginning when one foot makes initial contact with the ground (initial contact) and ending when the same foot makes contact with the ground again. This cycle can be divided into the following key events, and each event is represented as a percentage of the entire gait cycle: Initial Contact (0%) – This is the moment when one foot first contacts the ground to begin a new stride. Load response is the phase that begins immediately after initial contact and includes the period of weight transfer to the standing limbs. It typically spans from 0% to approximately 12% of the gait cycle. The mid-stand phase is the phase following load response, representing the period when the standing limbs fully support the body weight. It typically ranges from approximately 12% to 31% of the gait cycle. The end-stand phase marks the initiation of the transition from the mid-stand phase to the swing phase. It typically occurs from approximately 31% to 50% of the gait cycle. The pre-swing phase is a brief period in which the legs prepare for the upcoming swing phase and spans from approximately 50% to 62% of the gait cycle. The initial swing phase is the beginning of the swing phase, where the foot lifts off the ground and begins to move forward. It typically covers 62% to 75% of the gait cycle. The mid-swing phase is the middle stage of the swing phase and ranges from approximately 75% to 87% of the gait cycle. The end-swing phase occurs near the end of the swing phase, just before the foot prepares for another initial contact. It typically spans from 87% to 100% of the gait cycle. Gait cycle percentage is useful for analyzing and understanding the timing and coordination of various events during walking and running. In some embodiments, 0% begins with toe lift-off, which is the opposite of “contact” as described above.

[0100] Input data 1002 is fed into machine learning model 1004, which generates scores, inferences, or predictions—i.e., output data 1006—for the corresponding percentage or portion of the gait cycle shown in input data 1002 (as represented by the X-axis). The scores, inferences, or predictions indicate the estimated force magnitude or force variation corresponding to the gait cycle (as represented by the Y-axis), as shown in force curve 1008. For example, Figure 10The illustration shows that for a given set of IMU sensor values ​​at approximately 80% of the gait cycle, these sensor values ​​are predicted to result in the highest force magnitude (i.e., the peak of force curve 1008) relative to other sensor values ​​at other gait cycles.

[0101] Example Method

[0102] Figure 11 This is a flowchart of an example process 1100 for estimating force changes at at least one parameter, based on several aspects. Process 1100 (and / or any of the functions described herein) can be executed by processing logic including hardware (e.g., circuitry, hardware accelerators (e.g., AI accelerators), dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions running on a processor to perform hardware emulation), firmware, or combinations thereof. Although specific boxes described in this disclosure are referenced in a specific number and order, it should be understood that any box may occur substantially in parallel with any other box, or before or after any other box. Furthermore, more (or fewer) boxes may exist than those shown. The added boxes may include any function embodying any of the functions described herein (e.g., as per [reference to...]). Figures 1 to 19 The box described herein. The computer-implemented method, system (including a wearable article and a processor) and / or computer-readable medium associated with the processor as described herein may perform or be caused to perform process 1200 or any other function described herein. In some aspects, one or more processors of the footwear article or system (e.g., which includes a footwear article and / or a processor) perform... Figures 11 to 16 One or more of processes 1100 to 1600. Alternatively or additionally, storage is performed on a server or backend device (e.g., Figure 18 One or more processors of the system (1808) execute one or more of the processes 1100 to 16.

[0103] According to box 1102, some aspects receive first sensor data at a first time via one or more sensors included in the footwear (e.g., ...). Figure 6The sensor data (602) includes one or more sensors that do not include force sensors. For example, an accelerometer in a shoe can measure the rate at a specific time point corresponding to the swing phase of the gait cycle, and then transmit such sensor values ​​to an on-chip processor for reception by the processor. A "force sensor" (e.g., a force sensor or weighing sensor) is a device used to directly measure the force applied to it. It converts mechanical force into an electrical signal that can be measured and directly interpreted as a force (e.g., Newtons). For example, a force sensor can be a force plate, also called a force table, which is a specialized instrument used to measure the ground reaction force (GRF) exerted on it by an object or person standing or moving on it. Other sensors (such as accelerometers and gyroscopes) are not force sensors because they do not directly measure force. Instead, for example, an accelerometer measures linear acceleration, which is the rate of change of the rate (velocity or direction) of an object along one or more axes. A gyroscope measures angular rate, which is the rate of rotation or change of orientation of an object about one or more axes. They provide information about the rotational motion of the object and how it changes direction. In some aspects, footwear articles (e.g., corresponding to heel strike) are in a first position at a first time.

[0104] In some respects, one or more sensors are included in any suitable wearable garment (not just footwear). For example, one or more sensors may be included in upper garments (e.g., shirts), lower garments (e.g., trousers), wristbands, helmets, armbands, or any other suitable wearable garment. In some respects, one or more sensors are included in an inertial measurement unit (IMU), such as those provided by… Figure 5A and Figure 5B As described in IMU 506.

[0105] According to box 1104, some aspects receive second sensor data via one or more sensors at a second time point following the first time point. For example, an accelerometer in the shoe can measure another velocity at a subsequent time point corresponding to the heel strike phase of the gait cycle, and then transmit such sensor values ​​to an on-chip processor for reception by the processor. In some embodiments, the footwear article is located in a second position (e.g., toe-off) at the second time point following the first time point. According to box 1106, based at least in part on the first and second sensor data, some aspects estimate a force change representing at least a portion of the force curve (e.g., predicted force from time 1 to time 2 over a period spanning to time 5). The portion of the force curve can be represented by at least one parameter (such as time, gait cycle, gait percentage, etc.). Figure 10Estimation of force changes (as shown) or one or more of other activity types. In some respects, estimating force changes inherently involves estimating, predicting, or calculating forces at different points in time or at a particular event. In some respects, box 1104 (and process 1100) alternatively represents estimating forces rather than force changes.

[0106] In some respects, the estimate at box 1106 is based on the use of a convolutional neural network (CNN), such as... Figure 8 and / or Figure 9 As described. In some aspects, the first part of the CNN is stored in a storage device at the footwear product (e.g., footwear product storage device 902), wherein the first part includes intermediate layers (e.g., bottleneck layers or flattening layers) that produce outputs indicative of the estimate (e.g., flattened outputs 904-8). An "intermediate" layer is any layer in the model that is neither the last nor the first layer. For example, in the context of a neural network, an intermediate layer could be a hidden layer, but not an input or output layer. In various aspects, the first part does not include dense output layers (e.g., Figure 9 The dense layers 904-9), but the second part of the CNN is stored in the user device (e.g., user device 912) and does include a dense output layer (e.g., as shown in the dense model 906).

[0107] Some aspects will include one or more running characteristics (e.g., Figure 8 The running features (805 or 813) are added to the first input of the convolutional layer (e.g., convolutional layer 807) at the CNN or to the flattening layer (e.g., ...) at the CNN. Figure 8 One of the second inputs of the flattening layer 811. In this way, the estimation is at least partially based on the addition of one or more running features. An example of this is described with respect to the force curve estimation component 608 estimating the force curve 610 based on the estimated gait attitude quantity 612 generated by the gait attitude quantity estimation 606.

[0108] In some respects, the estimation at box 1106 is based solely on selected axis or sensor data (e.g., 3-axis input) from accelerometers and gyroscopes processed (e.g., by a machine learning model). For example, the IMU may include accelerometers that provide a first portion of sensor data along the longitudinal and vertical axes. However, the estimation may not be based on (e.g., not fed into the model) a first portion of sensor data provided by the accelerometers along the medial and lateral axes. The longitudinal axis, or anteroposterior axis (X-axis), measures acceleration in the anteroposterior direction parallel to the sagittal plane of the body. Positive acceleration along this axis corresponds to forward motion, while negative acceleration corresponds to backward motion. The lateral axis, or medial and lateral axis (y-axis), measures acceleration in the lateral direction parallel to the frontal plane of the body. Positive acceleration along this axis corresponds to rightward motion, while negative acceleration corresponds to leftward motion. The vertical axis, or head-to-tail axis (Z-axis), measures acceleration in the up-down direction perpendicular to the ground. Positive acceleration along this axis indicates upward motion, and negative acceleration indicates downward motion.

[0109] Continuing this example, the gyroscope can provide a second portion of the sensor data via the pitch axis, but the estimate at box 1106 is not based on a second portion provided by the gyroscope via the yaw or roll axis. Yaw refers to the rotation of an object about its vertical axis, which is typically aligned with the direction of gravity. This movement is similar to a left or right turn, causing a change in the heading or orientation of an object (e.g., an IMU) without tilting it up or down. Pitch refers to the rotation of an object (e.g., an IMU) about its lateral or transverse axis. This movement involves causing the object to tilt up or down, resulting in ascent or descent. Roll refers to the rotation of an object about its longitudinal or roll axis. This movement involves tilting the object from one side to the other, similar to the motion of a ship or aircraft rolling about its long axis.

[0110] In some aspects, the estimation at box 1106 is based on a fixed window (e.g., a specific data block and / or time series) of sensor data that only processes gait phases indicative of the complete gait cycle, where other sensor data indicative of other parts of the complete gait cycle are not processed for estimation. For example, the data structure can map a specific accelerometer range or threshold to a specific gait phase (such as ground contact). “Ground contact” refers to the moment when the foot or footwear of the leading leg makes initial contact with the ground. It is one of the core events that occur during the standing phase of the gait cycle, the period during which the foot is in contact with the ground. In an illustrative example, in response to a spike in accelerometer data or a reading exceeding a threshold, a predefined window (e.g., the first and last seconds) of accelerometer data associated with that spike is passed to a model (e.g., CNN 800) for further processing. For example, in some aspects, such a window of sensor data is the only data included in sensor data 602. Regarding the "spike" discussed in this article, a typical accelerometer sensor can, for example, measure accelerations ranging from -2g to +2g, where 1g represents the standard gravitational acceleration on Earth (approximately 9.81 m / s²). This means that sensor values ​​at spikes can exceed 2g, or even reach significantly higher values, depending on the intensity of the event. For example, upon ground contact, based on the rapid deceleration experienced when footwear impacts the ground, an accelerometer might record a spike that briefly exceeds a 2g threshold (e.g., between 5g and 10g). This can responsively trigger various aspects to capture the number of threshold or time-series sensor data values ​​measured before and / or after the spike or threshold for processing. This is intuitive because ground contact and other gait phases highly indicate the estimated ground force, while other gait phases may not indicate such a force.

[0111] Based at least in part on one of the first or second sensor data, some aspects classify the types of activities the wearer of the footwear has engaged in. In this way, the estimate at box 1106 is at least in part based on the classification of activity types. An example of this is described with respect to gait segmentation component 604, which is typically responsible for detecting, estimating, classifying, predicting, or otherwise calculating which type of activity the wearer is engaged in. In some aspects, activity types include at least one of running, walking, jogging, jumping, landing, or gait phases of the entire gait cycle. In some aspects, the classification of activity types is based on the use of piecewise models, such as those described with respect to gait segmentation component 604 and force curve estimation component 608, where, for example, a “running” model can be used to estimate forces.

[0112] According to box 1108, at least in part in response to the estimation, some aspects send at least one of the following to the user device via a computer network (e.g., network 910) for presentation: received first sensor data, received second sensor data, or visual content associated with the estimated force change on at least one parameter. In some aspects, the visual content includes ground force curves, such as those shown by curve 1008, the estimated force curve 610, or force curve 406 or output data 1006. In some aspects, the visual content includes immersive technology elements. Immersive technology elements as described herein refer to elements of immersive technology (e.g., virtual data elements). Immersive technology refers to technologies that create a sense of immersion or presence for a user, typically by engaging multiple senses to make them feel as if they are part of a computer-generated or augmented environment. Immersive technology can include virtual reality (VR), augmented reality (AR), and / or mixed reality (MR). For example, return to reference. Figure 1 In some respects, immersive technology elements refer to Figure 1 Any content in the screenshot 100, such as visual data 104 or 106, indicates that Godzilla's legs grow in response to the detection of force, force change, or other gait attitude parameters (e.g., foot landing angle) exceeding a threshold.

[0113] In some respects, visual content additionally or alternatively represents game elements of a video game. For example, return to reference. Figure 2 In some aspects, game elements include anything in screenshot 200, such as visual data 202 corresponding to a Tyrannosaurus Rex chasing avatar 201 in response to a predicted force (or force change) exceeding a threshold. Other game implementations may be used alternatively. For example, game elements may include the player (or visual data representing their avatar) at their feet (or...) Figure 5A A rocket is launched when the footwear (500) exceeds a force (or other metric) threshold, wherein the rocket's height is proportional to the magnitude of the predicted force exhibited. In another example, game elements can be included in a basketball game. If an avatar representing an athlete dunks with a threshold force magnitude, force variation, or jump intensity (and / or other stride force exceeding the threshold), then upon landing, a broadcast system can overlay a video feed with a graphic overlay of the explosion emitted by the athlete on the court surface itself, as described, for example, in U.S. Patent Application No. US20220279891 A1, the entire contents of which are incorporated herein by reference.

[0114] In some respects, visual content additionally or alternatively includes user interface elements (e.g., any elements within screenshot 400). For example, user interface elements may include elements that warn the user when the force exceeds a threshold. An example of this is... Figure 4Pop-up window 408. Some aspects determine that at least one of the first sensor data, the second sensor data, or the estimated force exceeds a threshold. Based on this determination, some aspects send a notification to the user equipment. For example, referring to pop-up window 408, some aspects cause pop-up window 408 to be displayed when the estimated VGRF exceeds the ground force threshold.

[0115] Based at least in part on estimates of force variation (or other measures) on at least one parameter, some aspects cause footwear to apply resistance or auxiliary forces, such as regarding Figure 3B The described resistance or assisting force. Some aspects classify lower limb postures such as stomping, kicking, or jumping, based at least in part on estimates of force variation in at least one parameter (or estimates of some other measure), as described in more detail below.

[0116] Based at least on the estimated force change (or other estimated metrics), some aspects (e.g., CNN 800) estimate the shape of the force curve. Other aspects additionally use separate regression models (e.g., separate from CNN 800) to scale the shape output. A regression model scales the shape of the curve by fitting a mathematical function or equation to a set of data points. The specific curve shape the model scales depends on the type of regression model used. Various types of regression models exist, and each has its own way of scaling the curve shape. To estimate the shape of the curve, a regression model can minimize a cost function (e.g., mean squared error) by adjusting its parameters (e.g., coefficients in linear regression or weights in a neural network) to best fit the observed data points. The choice of a particular regression model and its parameters will affect how well that particular regression model captures the shape of the underlying curve in the sensor data.

[0117] In the example illustration, a linear regression model estimates a straight line (linear relationship) between the independent and dependent variables. The equation for a simple linear regression model is y = mx + b, where "y" is the dependent variable, "x" is the independent variable, "m" is the slope of the line, and "b" is the y-intercept. The curve is a straight line. Multinomial regression models estimate curves of higher order (e.g., quadratic, cubic, etc.). These models capture more complex relationships between variables by fitting a polynomial equation to the data. For a quadratic curve, the equation might look like y = a + bx + cx. 2The shape of the curve can be parabolic or a more complex polynomial shape, depending on the degree of the polynomial. Nonlinear regression models estimate curves that do not follow simple linear or polynomial patterns. These models use various types of functions (such as exponential, logarithmic, sigmoid, or other custom functions) to capture the shape of the curve. The specific function chosen depends on the nature of the data and the problem. Other models, such as spline regression models, decision trees and random forests, and neural networks, can be used additionally or alternatively to approximate the shape of the curve.

[0118] In some respects, estimating or scaling the shape of a force curve involves one or more smoothing operations. Smoothing is a technique used to reduce noise and highlight patterns or trends in input data, often achieved by estimating a smoother curve. Smoothing techniques are used to help reveal underlying structures or relationships in data and can be viewed as a form of regression in some cases. Smoothing methods (such as moving averages, kernel smoothing, or Loess (locally weighted scatter plot smoothing)) aim to create a smoother representation of data points, such as different force curve estimates. These techniques involve calculating a weighted average of nearby data points, which effectively produces a smooth curve that captures trends and removes noise. This is analogous to the goal of a regression model to estimate a curve representing the relationship between variables. Some regression models can also be viewed as smoothing techniques. For example, kernel regression (a type of nonparametric regression) uses a kernel function to estimate a smoother curve through the data. This curve is not restricted to linearity or following a specific polynomial form, making it a flexible smoothing method.

[0119] Figure 12 This is a flowchart of an example process 1200 for estimating one or more step attitude quantities, based on several aspects. According to box 1203, some aspects receive a set of sensor data via sensors included in the footwear. In some aspects, box 1203 includes information about... Figure 11 All the functions described in box 1102. According to box 1205, some aspects estimate one or more gait attitude parameters, at least in part, based on a set of received sensor data. An example of this is described with respect to the gait attitude parameter estimation component 606 estimating the estimated gait attitude parameters 612 based on the analysis of sensor data 604. For example, the estimated gait attitude parameters may be stride length (number of strides), activity type (running), speed (e.g., mph), gait cycle time (in ms), stride length (in m), cadence (steps per minute), foot strike angle (degrees), VGRF (vertical ground reaction force) average, VGRF peak, VGRF impulse, and / or VGRF instantaneous LR.

[0120] For example, the number of strides (e.g., the number of strides during running or walking) can be predicted based on a spike pattern in accelerometer data that reaches a threshold within a time interval (e.g., 4 spikes indicate 4 strides). In some aspects, activity type is determined via, for example... Figure 6 The gait segmentation component 604 described herein is used for estimation. Velocity is the rate at which an object (e.g., an IMU) changes position relative to time. Gait cycle time refers to the time required for a complete cycle of human walking or running (from the initial contact of one foot with the ground (heel strike), through a complete step, until the same foot contacts the ground again). The gait cycle is typically divided into two phases: the stance phase (when the foot contacts the ground) and the swing phase (when the foot leaves the ground). Gait cycle time is the time required to complete both the stance and swing phases of a leg. For example, an IMU can monitor acceleration patterns via an accelerometer, and a processor can identify key events in the gait cycle, such as heel strike and toe lift, to determine the gait cycle time and other time parameters.

[0121] Stride length refers to the distance covered in a single stride, that is, the linear distance between two consecutive ground strikes of the same foot during walking or running. For example, a processor can analyze acceleration signals to identify key events in the gait cycle, such as heel strike and toe lift. The processor can then calculate the time between these events to determine the stride duration, and then multiply the stride duration by the average rate to estimate the stride length. The average rate can be calculated based on the linear distance traveled within the stride duration. Cadence, or steps per minute, can be measured by counting the number of times accelerometer or gyroscope data spikes above a threshold within a minute.

[0122] Foot strike angle, also known as foot strike pattern, refers to the angle (e.g., in degrees) at which the foot contacts the ground during walking, running, or other forms of movement. It describes the orientation of the foot relative to the ground when it first makes contact during a gait cycle. For example, a gyroscope can measure the change in angle as footwear moves during a gait cycle. A processor can then analyze the gyroscope data to identify the angle at which the foot makes initial contact with the ground. This angle represents the foot strike pattern. Different foot strike patterns (such as heel strike, midfoot strike, or forefoot strike) will produce different angular orientations at initial contact. Some embodiments may classify foot strike patterns based on the angle measured by the gyroscope. For example, a large negative angle may indicate heel strike, while a smaller or positive angle may indicate midfoot or forefoot strike. However, it should be understood that this example of negative and positive angles is merely representative. For example, in some embodiments, a negative angle indicates forefoot strike, and a positive angle indicates heel strike.

[0123] According to box 1207, based at least in part on the estimation, some aspects participate in at least one of the following: providing the estimated gait attitude quantities to the model for further processing, or causing visual elements to be presented at the user device. For example, the provision of the estimated gait attitude quantities is in Figure 6 As described herein, the estimated gait attitude quantity 612 is returned to the force curve estimation component 608. In some aspects, such visual elements include any of the visual elements within the screenshot 400, such as the gait attitude quantity 402.

[0124] Figure 13 This is a flowchart of an example process 1300 for estimating the type of activity of a wearer associated with a wearable garment, based on several aspects. According to box 1302, some aspects receive a set of sensor data via sensors included in the wearable garment (e.g., upper garment, wristband, or footwear). In some aspects, box 1302 includes information about... Figure 11 Box 1102 describes all the functions.

[0125] According to box 1304, based at least in part on a set of received sensor data, some aspects estimate the type of activity of the wearer associated with the wearable device. In some aspects, the activity type is estimated via a gait segmentation component 604, which calculates or classifies which activity type the wearer is in, such as... Figure 6 As stated in box 1306, based at least in part on this estimation, some aspects participate in at least one of the following: providing the estimated activity type to the model for further processing, or causing visual elements to be presented at the user device. For example, the provision of the estimated activity type in Figure 6 As described, the estimated activity type is transferred from the gait segmentation component 604 to the force curve estimation component 608. In some aspects, such visual elements include any of the visual elements within the screenshot 400, such as the “Activity…Running” marker located in the gait attitude parameters 402.

[0126] Figure 14 This is a flowchart of an example process 1400 for classifying a wearer's posture based on several aspects. According to box 1402, some aspects receive a set of sensor data (e.g., ...) via sensors included in a wearable garment (e.g., upper garment, wristband, or footwear). Figure 6 (Sensor data 602). In some respects, box 1402 includes information about... Figure 11 Box 1102 describes all the functions.

[0127] According to box 1404, some aspects of the wearer's posture are classified based at least in part on a received set of sensor data. For example, accelerometer and gyroscope sensor data can be used to predict lower limb postures, such as stomping, kicking, or jumping. For example, machine learning algorithms (such as decision trees, support vector machines, or deep learning models such as convolutional neural networks (CNNs) and recurrent neural networks (RNNs)) can be trained on labeled sensor datasets, where the corresponding postures are labels. These algorithms learn to recognize patterns in the data corresponding to specific postures. For example, during the training phase, the algorithms are exposed to a dataset of labeled instances, where each instance includes sensor data and an associated posture label. The algorithms learn to associate patterns in the data with corresponding postures. In some aspects, such classified postures are performed by gait segmentation component 604, such as... Figure 6 The activity type described is, for example, a categorized gait posture.

[0128] According to box 1406, at least in part, some aspects trigger specific actions in response to classification. For example, once the algorithm recognizes a gesture, it can trigger a specific action or response on a device or in an application. For example, recognizing a specific gesture can control a character in a video game, navigate a user interface, or otherwise perform a specific function in a computer application. For example, returning to a reference... Figure 1 In response to the detection that the leg movement of avatar 102 is classified as a "stomp," some aspects of the pixels representing the visual data 108 of the car are distorted, indicating that the car 108 has been smashed. This particular action may alternatively or additionally include sending at least one of the following to the user device via a computer network for presentation: a set of sensor data, or an indication of the classified posture.

[0129] Figure 15 This is a flowchart of an example process 1500 for extracting sensor data from three channels and providing it as input to a model for estimation. According to box 1503, some aspects first receive sensor data from the IMU (e.g., stored in computer memory) from six channels (also referred to herein as "6 axes"). For example, each axis or channel may correspond to three channels of the accelerometer (longitudinal, vertical, and inner / outer) and three channels of the gyroscope (pitch, yaw, and roll).

[0130] According to box 1505, some aspects extract sensor data from three channels. For example, extraction may include accessing or retrieving two channels (longitudinal axis and vertical axis sensor data, while discarding inner and outer axis sensor data) from computer memory, and one channel (pitch axis sensor data only, but without accessing yaw or roll axis sensor data) from gyroscope data.

[0131] According to box 1506, some aspects provide the extracted sensor data from the three channels as input to the model (e.g., Figure 7 Neural network 705, Figure 8 CNN 800 or Figure 9 The bottleneck model 904), wherein the model is at least partially based on the provided information to estimate one or more metrics (e.g., force, force change, any step attitude quantity described herein, activity type classification, etc.). For example, return to reference Figure 7 The neural network 705 can perform inference 709 on the force curve based on the extracted sensor data from the three channels (and / or the activity type classification B or gait attitude parameters of the analysis deployment input 703) included in the sensor data A of the analysis deployment input 703.

[0132] Figure 16 This is a flowchart of an example process 1600 for estimating one or more metrics based on encoding and decoding model data via different devices, according to some aspects. In some aspects, process 1600 represents regarding... Figure 9 The described functionality. According to box 1602, some aspects will use a set of sensor data (e.g., Figure 6 Sensor data 602 is fed forward into a neural network (e.g., bottleneck model 904). According to box 1604, some aspects then encode this set of sensor data into one or more multidimensional data structures via the neural network. Examples of this aspect include, for example, regarding… Figure 8 The convolutional layer 807 is described, which produces feature maps such as 2D or 3D tensors.

[0133] According to box 1606, some aspects flatten multidimensional data structures into 1-dimensional data structures, such as vectors, via intermediate layers of a neural network. An example of this is described with respect to flattening layer 811 and max-pooling layers 904-7 to produce flattened output 904-8.

[0134] According to box 1608, some aspects terminate the forward pass, such as, for example, regarding Figure 9 As described, and early termination is performed at the flattened output 904-8. According to box 1610, some aspects transmit a 1D data structure (and / or other commands, such as commands to generate estimated outputs) to a network device (e.g., user device 912, server, or cloud service node) via a network (e.g., network 910), wherein dense layers of a neural network stored on the network device decode the 1D data structure into higher-dimensional output estimates of one or more metrics (e.g., estimated force, force change, estimated gait attitude magnitude, estimated activity type). Examples of this aspect are in Figure 9As described, the dense layer 904-9 outputs a higher-dimensional output estimate (e.g., 128 floating-point numbers) instead of a 1-dimensional data structure (e.g., possibly only 4 floating-point numbers).

[0135] Figure 17 This is an example process 1700 for manufacturing footwear with an embedded IMU, based on some aspects. In some aspects, process 1700 is used for manufacturing... Figure 5A and Figure 5B Footwear article 500. According to frame 1703, some aspects obtain a mold for a sole (e.g., a midsole), wherein the mold includes protrusions. For example, the protrusions can be spatial volumes that are negative cavities. Example sizes of the protrusions include 38.0 mm × 24.0 mm × 9.7 mm (greater than or less than 5%) or 18 mm × 16 mm × 4 mm (greater than or less than 5%).

[0136] According to frame 1705, some aspects involve injecting or pouring sole material into a mold, wherein the sole material includes cavities corresponding to protrusions (or the result of protrusions). For example, since a protrusion is a spatial volume, the sole material does not enter the protrusion or the spatial volume within the protrusion, and thus forms outside such a protrusion, thereby creating a cavity.

[0137] According to box 1707, several aspects allow for the curing or setting of sole materials. The curing or setting time for midsole materials in footwear can vary significantly depending on the type of material used and the specific manufacturing process. Different materials, such as EVA foam, polyurethane, or rubber, may have different curing times. Additionally, the curing process can be affected by factors such as temperature, humidity, and additives or chemicals used in the material. For example, the curing time for EVA foam midsoles can range from 12 to 24 hours. However, the exact curing time can be adjusted by the manufacturer according to their requirements. In another example, the curing time for polyurethane (PU) midsoles can range from 4 to 12 hours.

[0138] According to box 1709, some aspects then embed or position the inertial measurement unit (IMU) within a cavity of the cured or shaped sole material. In various aspects, the IMU's dimensions are substantially the same as the cavity to provide a tight frictional fit (allowing for minimal or no movement). For example, the IMU's size may be 38.0 mm × 24.0 mm × 9.7 mm (greater or less than 5%) or 18 mm × 16 mm × 4 mm (greater or less than 5%). In some aspects, additional manufacturing steps occur. For example, as per [reference to...] Figure 5AAs described, some aspects of the midsole 504 (or cavity) are sealed to protect the IMU 506 from moisture, impact, and other potential sources of damage. For example, the seal may include filling the cavity 504-1 with additional EVA foam so that the IMU 506 is completely encased or surrounded by the midsole 502 (e.g., there are no openings for the IMU 506 to fall out). This can be achieved by using a sealant or covering that is also integrated into the midsole 504-1. Once the midsole 504 is manufactured, it can be integrated into the other parts of the shoe during the shoemaking process, following typical stitching and assembly steps.

[0139] Example computing environment

[0140] Figure 18 This is a block diagram illustrating an example computing environment 1800 for estimating one or more metrics based on one or more sensors in footwear 1805, according to several aspects. It should be understood that this and other arrangements described herein are merely illustrative examples. Other arrangements and elements (e.g., machines, interfaces, functions, sequences, and functional groupings, etc.) may be used in addition to or in place of the arrangements and elements shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that can be implemented as separate or distributed components or combined with other components, and implemented in any suitable combination and location. The various functions performed by one or more entities described herein can be performed by hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in memory.

[0141] The computing environment 1800 is an example of a suitable architecture or operating environment for implementing certain aspects of this disclosure. In addition to other components not shown, the computing environment 1800 includes a user device 1802, a footwear article 1804, and a wearable article processing system 1808. Each of the user device 1802, the wearable article 1804, and the wearable article processing system 1808 may include one or more computer devices, such as those discussed below. Figure 20 Computing device 200. For example... Figure 18 As shown, user equipment 1802, wearable device 1804, and wearable device processing system 1808 can be connected via network 1806 (e.g., Figure 9The network 1806 communicates with the network 910, which may include, but is not limited to, one or more local area networks (LANs) and / or wide area networks (WANs). Such network environments are common in offices, enterprise-wide computer networks, intranets, and the Internet. It should be understood that, within the scope of this technology, any number of client devices and server devices can be used within the computing environment 1800. Each device may include a single device or multiple devices cooperating in a distributed environment. For example, the wearable artifacts processing system 1808 may be provided by multiple server devices or cloud nodes that collectively provide the functionality of the wearable artifacts processing system 1808 as described herein. Additionally, other components not shown may also be included in the network environment. In some aspects, the wearable artifacts processing system 1808 is included in the user equipment 1802.

[0142] User device 1802 (e.g., user device 912) and / or footwear 1804 may be client devices on the client side of computing environment 1800, while wearable artifact processing system 1808 may be on the server side of computing environment 1800. Wearable artifact processing system 1808 may include server-side software designed to work in conjunction with client software on user device 1802 and / or footwear 1804 to implement any combination of features and functions discussed in this disclosure. For example, user device 1802 may include an application for interacting with wearable artifact processing system 1808. This application may be, for example, a web browser or an application for providing functions (such as information about...). Figures 11 to 16 Those described) dedicated applications (e.g., Figure 4 (Screenshot 400). This division of computing environment 1800 is provided to illustrate an example of a suitable environment, and for each implementation, it is not required that any combination of user device 1802 and wearable artifact processing system 1808 remain as separate entities. While computing environment 1800 illustrates a configuration in a networked environment with separate user devices and wearable artifact processing systems, it should be understood that other configurations in which components are combined may be employed. For example, in some configurations, the user device may also provide the capabilities of the techniques described herein.

[0143] User equipment 1802 may include any type of computing device that can be used by a user. For example, in one aspect, the user equipment may be what is described herein as... Figure 20The type of computing device 8 described. By way of example and not limitation, user device 1802 may be embodied as a personal computer (PC), laptop computer, mobile device, smartphone, tablet computer, smartwatch, wearable computer, handheld communication device, gaming device or system, entertainment system, vehicle computer system, embedded system controller, electrical appliance, consumer electronics device, workstation, or any combination of these depicted devices, or any other suitable device. A user may associate with user device 1802 and may interact with wearable article processing system 1808 via user device 1802.

[0144] In some aspects, the wearable article processing system 1808 is configured to receive at least a portion of sensor data (e.g., sensor data 5602) from the footwear article 1808 (or more precisely, the IMU 1804-5) in order to interpret the sensor data and provide a corresponding estimate (e.g., ...) to the user device 1802. Figure 6 The estimated step attitude quantity 612 and / or the estimated force curve 610). Alternatively or additionally, in some respects, IMU 1804-8 of footwear article 1804 performs at least some of these estimates, for example, as per [reference to...]. Figure 9 The footwear storage device 902 is described. Alternatively or additionally, in some aspects, the user equipment 1802 performs at least a portion of these estimates, for example, as per [the description of the footwear storage device 902]. Figure 9 The dense model 906 of the user equipment 912 is described. Similarly, in some aspects, the footwear article 1804 performs processes 1100, 1200, 1300, 1400, 1500 and / or 1600. Alternatively or additionally, the wearable article handling system 1800 performs one or more of these processes. Alternatively or additionally, the user equipment 1802 performs some or every one of these processes.

[0145] The wearable artifact processing system 1808 can be implemented using one or more server devices, one or more platforms with corresponding application programming interfaces, cloud infrastructure, etc. In one aspect, the functions performed by the components of the wearable artifact processing system 1808 are associated with one or more applications, services, or routines. Specifically, such applications, services, or routines can operate on one or more user devices or servers, be distributed across one or more user devices and servers, or be implemented in the cloud. Furthermore, in some aspects, these components of the wearable artifact processing system 1808 can be distributed on a network in the cloud (including one or more servers and client devices), and / or can reside on user devices. Moreover, these components, the functions performed by these components, or the services performed by these components can be implemented at an appropriate abstraction layer of the computing system (such as the operating system layer, application layer, hardware layer, etc.). Alternatively or additionally, the functions of these components and / or aspects of the techniques described herein can be performed at least in part by one or more hardware logic components. For example, but not limited to, illustrative types of hardware logic components that can be used include field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-chips (SoCs), complex programmable logic devices (CPLDs), etc. Additionally, although the functionality of these components is described herein with reference to the specific components shown in example computing environment 1800, it is conceivable that, in some respects, the functionality of these components may be shared or distributed across other components.

[0146] Figure 19 It is any wearable product described herein in some respects (e.g., Figure 5A Block diagram 30 of electronic components for footwear products (500). In some respects, block diagram 300 identifies an IMU (such as...). Figure 5A and Figure 5B The electronic components of the IMU 506. Despite Figure 19 The illustrations depict various components included within a wearable article, but in some respects, some or every component is not part of the wearable article. For example, in some respects, the electronics of the wearable article may only include one or more sensors 48, memory 41, and / or wireless communication block 34, while other components (e.g., processor 42) are hosted in a remote device (such as...). Figure 18 The wearable device handling system 2808 is located at the device. Block diagram 30 includes a wireless communication block 34, a control block 40, a power supply 46, and one or more sensors 48 (e.g., accelerometers and / or gyroscopes).

[0147] Power block 46 includes a DC power source, such as a battery, supercapacitor, etc., sufficient to power a variety of other electronic devices. The battery may be a rechargeable battery or may be replaceable. Additionally or alternatively, power block 46 may include any of a variety of other power sources, including a piezoelectric generator or other power sources that can generate power through the movement or regular use of the wearable device. Power block 46 may optionally include additional components to boost or otherwise convert the power output of the DC power source, such as a boost converter in the example, power block 46 including a lithium-ion battery configured to deliver between 3.0 and 4.2 volts and a charged (5) volt boost converter.

[0148] Control block 40 receives power from power block 46 and controls the operation of wireless communication block 34 and signals transmitted and received from one or more sensors 48. Control block 40 includes one or more processors 42 (e.g., microcontrollers, CPUs, GPUs, and / or TPUs), electronic memory 41 (e.g., footwear storage device 902), such as random access memory (RAM), flash memory, data stream buffers, caches, and / or any suitable electronic memory known in the art, and input / output block 44, as well as various other components that may be desired or utilized. In some instances, control block 40 is a single system or a system-on-a-chip (e.g., a PCB substrate with circuitry). In some instances, control block 40 includes an Atmel Corporation ATmega32U4 microcontroller as processor 42 and associated circuitry and / or an Arduino Leonardo microcontroller board, or any suitable controller or controller system. In some aspects, processor 42 performs the functions described herein. Figures 11 to 16 The process is from 1100 to 1600.

[0149] Sensor 48 measures or detects sensor data, such as accelerometer or gyroscope readings, and then forwards such data to input / output block 44. When sensor 48 outputs a signal to input / output block 44 of control block 40, input / output block 44 formats the signal received from the sensor and forwards the signal to memory 41 (e.g., a stream buffer) and / or processor 42. Processor 42 evaluates various properties of the signal from memory 41 or input / output block 44 as needed, including but not limited to the time when the output signal was sensed and the duration of the output signal, and / or interprets the signal via any of the estimates described herein, such as the estimated gait attitude quantity 612, the estimated force curve 610, and / or the estimated activity type. Processor 42 may store such properties or estimates in electronic memory 41 and / or apply these properties appropriately.

[0150] The wireless communication block 34 (e.g., a network interface) includes one or more wireless antennas 36 and a wireless controller 32. Each of the wireless antennas 36 can be configured to communicate according to different wireless modes, such as various versions of Bluetooth, Near Field Communication (NEC), Ultra High Frequency (UHF), etc. Each wireless antenna 36 can be configured to communicate within one frequency band or across multiple frequency bands. The wireless controller 32 is configured to communicate according to various wireless modes corresponding to the one or more antennas 36. The wireless controller 32 can be a single device or multiple separate controllers, each configured to communicate according to the different modes supported by the various antennas. In a non-limiting example, the wireless communication block 34 includes a single antenna 36 configured to transmit sensor data to an external device, such as Bluetooth or any other standard. Figure 18 Wearable device handling system 1808 and / or Figure 18 User equipment 1802.

[0151] The wireless communication block 34 is configured to communicate via various modes with one or more external devices that are not part of the wearable article itself. The external device may be a mobile device, such as a mobile phone (e.g., user equipment 2802), a smartphone, a personal digital assistant (PDA), a mobile music or media player, etc. The external device may additionally or alternatively be fixed or typically fixed, such as a race tracker or base station. The wireless communication block 34 may pair with a given external device according to a conventional pairing mechanism associated with that external device to establish a communication link between the wearable article and the external device.

[0152] In various instances, control block 40 includes, either as a separate component or implemented with processor 42, and / or input / output block 44, implementing an analog-to-digital converter (ADC) and rate smoothing and / or filtering of signals from one or more sensors 48. In various instances, the ADC converts the input analog signal from approximately zero (0) volts to approximately five (5) volts and, at sampling rates from approximately ten (10) Hz to fifty (50) Hz, to an eight-bit digital signal. In one instance, the sampling rate is thirty (30) Hz.

[0153] In various instances, input / output block 44 and / or processor 42 utilize a rolling weighted average of the digital output from the ADC for each sensor data value received from sensor 48. In one instance, processor 42 applies a rolling weighted average of 0.2 to the current output of the ADC from the accelerometer sensor and 0.8 to the previous rolling weighted average of the output of that accelerometer sensor. Thus, the current rolling weighted average of the output of a given accelerometer sensor is based on eighty percent (80) of the previous average, and twenty percent (20) of the current output of the ADC from that pressure sensor. It should be noted and emphasized that the rolling weighted average of each sensor can be evaluated individually and independently.

[0154] Looking at it now Figure 20 The computing device 8 includes a bus 10 that is directly or indirectly coupled to the following devices: memory 12, one or more processors 14, one or more presentation units 16, input / output (I / O) ports 18, input / output units 20, and an exemplary power supply 22. Bus 10 can represent one or more buses (such as an address bus, a data bus, or a combination thereof). Although for clarity... Figure 20 The various boxes are shown with lines, but in reality, the depiction of each component is not so clear, and metaphorically, the lines would be more accurately described as gray and blurry. For example, the presentation components such as those of a display device can be considered as I / O components. Furthermore, the processor has memory. The inventors recognize this as the nature of the art and reiterate... Figure 20 The figures are merely illustrations of exemplary computing devices that can be used in conjunction with one or more aspects of the present invention. No distinction is made between categories such as “workstation,” “server,” “laptop,” “handheld device,” etc., as all of these categories are... Figure 20 Within the scope and refer to "Computing Devices".

[0155] Computing device 8 typically includes a variety of computer-readable media. Computer-readable media can be any available medium accessible by computing device 8, and includes volatile and non-volatile media, as well as removable and non-removable media. By way of example and not limitation, computer-readable media can include computer storage media and communication media. Computer storage media includes volatile and non-volatile media, removable and non-removable media, of any method or technical fact for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, cassette tape, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and is accessible by computing device 8. Computer storage media itself does not include signals. Communication media typically embody computer-readable instructions, data structures, program modules, or other data in the form of modulated data signals such as carrier waves or other transmission mechanisms, and includes any information delivery medium. The term "modulated data signal" refers to a signal whose characteristics are set or altered in a manner that encodes information in the signal. By way of example and not limitation, communication media include wired media such as wired networks or direct wired connections, and wireless media such as acoustic, RF, infrared, and other wireless media. Any combination of the foregoing should also be included within the scope of computer-readable media. In various respects, computing device 8 represents user equipment 1802, Figure 9 User equipment 912 or Figure 18 The physical architecture of the wearable device processing system 1808.

[0156] Memory 12 includes computer storage media in the form of volatile memory and / or non-volatile memory. The memory can be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. Computing device 8 includes one or more processors that read data from various entities such as memory 12 or I / O components 20. Presentation component 16 presents data indications to a user or other device. Exemplary presentation components include display devices, speakers, printing components, vibrating components, etc. In some aspects, the memory includes program instructions that, when executed by one or more processors, cause one or more processors to perform any of the operations described herein, such as... Figure 11 , Figure 12 , Figure 13 , Figure 14 , Figure 15 and / or Figure 16 Processes 1100, 1200, 1300, 1400, 1500 and / or 1600 or any of the functions described herein.

[0157] I / O port 18 allows computing device 8 to be logically coupled to other devices including I / O component 20, some of which may be built-in. Illustrative components include microphones, joysticks, game controllers, satellite receivers, scanners, printers, wireless devices, etc. I / O component 20 can provide a natural user interface (NUI) that processes user-generated air gestures, voice, or other physiological input. In some cases, the input can be transmitted to appropriate network elements for further processing. The NUI can implement any combination of voice recognition, stylus recognition, facial recognition, biometric recognition, on-screen and near-screen gesture recognition, air gestures, head and glasses tracking, and touch recognition (described in more detail below) associated with the display of computing device 8. Computing device 8 may be equipped with depth cameras, such as stereo camera systems, infrared camera systems, RGB camera systems, touchscreen technology, and combinations thereof, for gesture detection and recognition. Additionally, computing device 8 may be equipped with an accelerometer or gyroscope capable of detecting motion. The output of the accelerometer or gyroscope can be provided to the display of computing device 8 to present immersive augmented reality or virtual reality.

[0158] As will be understood, aspects of the invention particularly provide for generating proof and proof service notifications corresponding to the veracity of the established claims. The invention has been described with respect to specific aspects, which are intended in all respects to be illustrative rather than restrictive. Alternative aspects will become apparent to those skilled in the art to which this invention pertains without departing from the scope of the invention.

[0159] As can be seen from the foregoing, the present invention is well adapted to achieve all the objects and objectives listed above, as well as other advantages that are obvious and inherent to the system and method. It should be understood that certain features and sub-combinations are practical and can be used without reference to other features and sub-combinations. This is contemplated by and within the scope of the claims.

[0160] The subject matter of this invention has been specifically described herein to satisfy legal requirements. However, the specification itself is not intended to limit the scope of this patent. Rather, the inventors have envisioned that the claimed subject matter may be embodied in other ways, in conjunction with other prior or future techniques, to include different steps or combinations of steps similar to those described in this document. Furthermore, although the terms “step” and / or “box” may be used herein to refer to different elements of the method employed, these terms should not be construed as implying any particular order among or between the various steps disclosed herein, unless and only if the order of individual steps is explicitly described.

[0161] The following clauses represent example aspects of the concepts envisioned herein. Any of the following clauses may be combined in a dependent manner to be subordinate to one or more other clauses. Furthermore, any combination of dependent clauses (clauses that explicitly rely on preceding clauses) may be combined while remaining within the scope of the aspects envisioned herein. The following clauses are examples and not limitations.

[0162] Clause 1: A computer-implemented method comprising: receiving first sensor data at a first time via one or more sensors included in footwear, said one or more sensors excluding a force sensor; receiving second sensor data at a second time after the first time via said one or more sensors; estimating a force change representing at least a portion of a force curve based at least in part on the first sensor data and the second sensor data; and, at least in part in response to the estimation, sending at least one of the following to a user device via a computer network for presentation: the received first sensor data, the received second sensor data, or visual content associated with the estimated force change.

[0163] Clause 2: The computer-implemented method according to Clause 1, wherein the estimation is based on the use of a convolutional neural network (CNN).

[0164] Clause 3: A computer-implemented method according to any one of Clauses 1 to 2, wherein a first portion of the CNN is stored in the footwear article, and wherein the first portion includes an intermediate layer that produces an output indicating an estimate, and wherein the first portion does not include a dense layer.

[0165] Clause 4: The computer-implemented method according to any one of Clauses 1 to 3 further comprises: adding one or more running features to one of the first inputs of the convolutional layer at the CNN or the second input of the flattening layer at the CNN, wherein the estimation is at least partially based on the addition of the one or more running features.

[0166] Clause 5: A computer-implemented method according to any one of Clauses 1 to 4, wherein the one or more sensors are included in an inertial measurement unit (IMU), the IMU comprising: an accelerometer that provides a first portion of the sensor data along a longitudinal axis and a vertical axis, and wherein the estimation is not based on the first portion provided by the accelerometer along an inner and outer axis; and a gyroscope that provides a second portion of the sensor data via a pitch axis, and wherein the estimation is not based on the second portion provided by the gyroscope via a yaw axis or a roll axis.

[0167] Clause 6: A computer-implemented method according to any one of Clauses 1 to 5, wherein the estimation is based on a fixed window that processes only sensor data indicating gait phases of a complete gait cycle, and wherein other sensor data indicating other portions of the complete gait cycle are not processed for estimation.

[0168] Clause 7: A computer-implemented method according to any one of Clauses 1 to 6, wherein the visual element includes at least one of the following: a ground force curve, an immersive technology element, a game element of a video game, or a user interface element that warns the user when the force exceeds a threshold.

[0169] Clause 8: A computer-implemented method according to any one of Clauses 1 to 7, wherein the method further comprises: determining that at least one of the first sensor data, the second sensor data, or the force exceeds a threshold; in response to determining that at least one of the first sensor data, the second sensor data, or the force exceeds the threshold, tracking at least one of the first sensor data, the second sensor data, or the force for a period of time; and in response to tracking at least one of the first sensor data, the second sensor data, or the force for the period of time, sending a notification to the user equipment indicating that at least one of the tracked first sensor data, the tracked second sensor data, or the tracked force has exceeded the threshold.

[0170] Clause 9: The computer-implemented method according to any one of Clauses 1 to 8 further comprises: applying a resistance or auxiliary force to the footwear article based at least in part on an estimate of the force variation.

[0171] Clause 10: The computer-implemented method according to any one of Clauses 1 to 9 further comprises: classifying lower limb postures based at least in part on an estimate of the force variation, wherein the lower limb postures include at least one of stomping, kicking, or jumping.

[0172] Clause 11: The computer-implemented method according to any one of Clauses 1 to 10 further comprises: classifying, at least in part, the types of activities that the wearer of the footwear has participated in based on one of the first sensor data or the second sensor data, wherein the estimation is at least in part based on the classification of the activity types, and wherein the activity types include at least one of running, walking, jogging, jumping, landing, or gait phases of a gait cycle.

[0173] Clause 12: A computer-implemented method according to any one of Clauses 1 to 11, wherein the classification is based on the use of a segmented model.

[0174] Clause 13: The computer-implemented method according to any one of Clauses 1 to 12 further comprises: estimating one or more gait attitude parameters based at least in part on one of the first sensor data or the second sensor data, wherein the estimation of the force variation is also based on the estimation of the one or more gait attitude parameters, and wherein the one or more gait attitude parameters include at least one of the following: the number of strides taken by the wearer of the footwear, the type of activity of the wearer, the speed of the wearer, the Gaussian curvature tensor value, stride length, steps per minute, foot landing angle, average vertical ground reaction force (VGRF), peak VGRF activity, VGRF impulse, or VGRF instantaneous load rate.

[0175] Clause 14: The computer-implemented method according to any one of Clauses 1 to 13 further includes estimating and scaling the shape of the force curve based at least in part on an estimate of the force variation.

[0176] Clause 15: A footwear article configured to conform to the human foot, the footwear article comprising: one or more sensors; and one or more processors communicatively coupled to the one or more sensors, wherein the one or more processors are configured to perform operations including: receiving first sensor data from the one or more sensors at a first time; receiving second sensor data from the one or more sensors at a second time after the first time; estimating a force change representing at least a portion of a force curve based at least in part on the first sensor data and the second sensor data; and at least in part in response to the estimation, sending at least one of the following to a user device via a computer network for presentation: the received first sensor data, the received second sensor data, or a visual element associated with the estimated force change.

[0177] Clause 16: Footwear articles as described in Clause 15, wherein the estimation is based on a convolutional neural network (CNN) using computer memory stored within the footwear article.

[0178] Clause 17: Footwear products according to Clauses 15 to 16, wherein a first portion of the CNN is stored in the computer memory, and wherein the first portion includes an intermediate layer that produces an output indicative of the estimation, and wherein the first portion does not include a dense layer, and wherein a second portion of the CNN is stored in the user device, and wherein the second portion includes the dense layer.

[0179] Clause 18: Footwear articles according to Clauses 15 to 17, wherein the one or more processors are configured to perform additional operations, the additional operations including: adding one or more running features to one of the first inputs of a convolutional layer at the CNN or a second input of a flattening layer at the CNN, wherein the estimation is at least partially based on the addition of the one or more running features.

[0180] Clause 19: Footwear articles according to Clauses 15 to 18, wherein one or more sensors are included in an inertial measurement unit (IMU), the IMU comprising: an accelerometer that provides a first portion of the sensor data along a longitudinal axis and a vertical axis, and wherein the estimation is not based on the first portion provided by the accelerometer along an inner or outer axis; and a gyroscope that provides a second portion of the sensor data via a pitch axis, and wherein the estimation is not based on the second portion provided by the gyroscope via a yaw axis or a roll axis.

[0181] Clause 20: Footwear articles according to Clauses 15 to 19, wherein the estimation is based on a fixed window of sensor data that indicates only the gait phases of the complete gait cycle processed by the one or more processors, and wherein other sensor data indicating other portions of the complete gait cycle are not processed for estimation.

[0182] Clause 21: Footwear articles according to Clauses 15 to 20, wherein the visual elements include at least one of the following: ground force curves, immersive technology elements, video game elements, or user interface elements that warn the user when the force exceeds a threshold.

[0183] Clause 22: Footwear products according to Clauses 15 to 21, wherein the one or more processors are configured to perform additional operations, the additional operations including: determining that at least one of the first sensor data, the second sensor data, or the force exceeds a threshold; and sending a notification to the user equipment based on determining that at least one of the first sensor data, the second sensor data, or the force exceeds the threshold.

[0184] Clause 23: Footwear articles according to Clauses 15 to 22, wherein one or more processors are configured to perform additional operations, the additional operations including: applying a drag or auxiliary force to the footwear article based at least in part on an estimate of the force variation.

[0185] Clause 24: Footwear articles according to Clauses 15 to 23, wherein the one or more processors are configured to perform additional operations, the additional operations including: classifying lower limb postures based at least in part on an estimate of the force variation, and wherein the lower limb postures include at least one of stomping, kicking, or jumping.

[0186] Clause 25: Footwear articles according to Clauses 15 to 24, wherein the one or more processors are configured to perform additional operations, the additional operations including: classifying, at least in part, the types of activities that the wearer of the footwear article has participated in, based on either the first sensor data or the second sensor data, wherein the estimation is at least in part based on the classification of the activity types, wherein the activity types include at least one of running, walking, jogging, jumping, landing, or gait phases of a gait cycle, and wherein the classification is based on the use of a segmented model.

[0187] Clause 26: Footwear articles according to Clauses 15 to 25, wherein the one or more processors are configured to perform additional operations, the additional operations including: estimating one or more gait attitude parameters based at least in part on one of the first sensor data or the second sensor data, wherein the estimation of the force variation is also based on the estimation of the one or more gait attitude parameters, and wherein the one or more gait attitude parameters include at least one of the following: the number of strides taken by the wearer of the footwear article, the type of activity of the wearer, the speed of the wearer, the Gaussian curvature tensor value, stride length, steps per minute, foot strike angle, average vertical ground reaction force (VGRF), peak VGRF activity, VGRF impulse, or VGRF instantaneous load rate.

[0188] Clause 27: Footwear articles according to Clauses 15 to 26, wherein one or more processors are configured to perform additional operations, said additional operations including estimating and scaling the shape of the force curve based at least in part on an estimate of the force variation.

[0189] Clause 28. A system comprising: a wearable article including one or more sensors; and one or more processors communicatively coupled to the one or more sensors, wherein the one or more processors are configured to perform operations including: receiving first sensor data from the one or more sensors at a first time; receiving second sensor data from the one or more sensors at a second time after the first time; estimating a force change representing at least a portion of a force curve based at least in part on the first sensor data and the second sensor data; and at least in part in response to the estimation, presenting at a user device at at least one of the following: the received first sensor data, the received second sensor data, or a visual element associated with the estimated force change.

[0190] Clause 29. A computer-implemented method comprising: receiving, at a first time, a set of sensor data via one or more sensors included in a footwear article, said one or more sensors excluding a force sensor; estimating one or more gait attitude quantities based at least in part on the received set of sensor data; and participating, at least in part on the estimation, in at least one of: providing the estimated gait attitude quantities to a model for further processing, or causing visual elements to be presented at a user device.

[0191] Clause 30: The computer method according to Clause 29 further includes: in response to providing the estimated step attitude parameters to the model, estimating via the model a force change representing at least a portion of the force curve.

[0192] Clause 31: The computer-implemented method according to Clauses 29 to 30, wherein a first portion of the model is stored in the footwear article, and wherein the first portion includes an intermediate layer that generates an output indicating an estimate of the force variation, and wherein the first portion does not include a dense layer, and wherein a second portion of the model is stored in the user device, and wherein the second portion includes the dense layer.

[0193] Clause 32: The computer-implemented method according to Clauses 29 to 31 further includes: adding one or more step attitude quantities to one of a first input of a convolutional layer at a convolutional neural network (CNN) or a second input of a flattening layer at the CNN, wherein the estimation of force variation is based at least in part on the addition of the one or more step attitude quantities.

[0194] Clause 33: The computer-implemented method according to Clauses 29 to 32, wherein the estimation is based on a fixed window that processes only sensor data indicating gait phases of a complete gait cycle, and wherein other sensor data indicating other portions of the complete gait cycle are not processed for estimation.

[0195] Clause 34: The computer-implemented method according to Clauses 29 to 33, wherein the visual element includes at least one of the following: ground force curves, immersive technology elements, game elements of video games, or user interface elements.

[0196] Clause 35: The computer-implemented method according to Clauses 29 to 34 further includes: causing the footwear to apply a resistance or assisting force, at least in part based on an estimate.

[0197] Clause 36: A footwear article comprising: one or more sensors; and one or more processors communicatively coupled to the one or more sensors, wherein the one or more processors are configured to perform operations including: receiving a set of sensor data from the one or more sensors; estimating, at least in part, a type of activity of a wearer associated with the footwear article based on the received set of sensor data; and participating, at least in part, in at least one of: providing the estimated type of activity to a model for further processing, or causing a visual element to be presented at a user device.

[0198] Clause 37: Footwear articles according to Clause 36, wherein one or more processors are configured to perform additional operations, said additional operations including: in response to providing the estimated activity type to the model, estimating via the model force changes representing at least a portion of the force curve.

[0199] Clause 38: Footwear articles according to Clauses 36 to 37, wherein a first portion of the model is stored in the footwear article, and wherein the first portion includes an intermediate layer that generates an output indicating an estimate of the force variation, and wherein the first portion does not include a dense layer, and wherein a second portion of the model is stored in the user device, and wherein the second portion includes the dense layer.

[0200] Clause 39: Footwear articles as described in Clauses 36 to 38, wherein the estimation is based on a fixed window that processes only sensor data indicating gait phases of a complete gait cycle, and wherein other sensor data indicating other portions of the complete gait cycle are not processed for estimation.

[0201] Clause 40: Footwear articles as described in Clauses 36 to 39, wherein the visual elements include at least one of the following: force curves, immersive technology elements, video game elements, or user interface elements.

[0202] Clause 41: Footwear articles according to Clauses 36 to 40 further include: causing the footwear article to apply resistance or assistive force, at least in part based on an estimate.

[0203] Clause 42: A computer-implemented method comprising: receiving sensor data via one or more sensors included in footwear during a first time period, said one or more sensors excluding a force sensor; estimating a force magnitude based at least in part on analyzing said sensor data; and determining that the estimated force magnitude exceeds a threshold.

[0204] In addition, at least in part in response to determining that the estimated force magnitude exceeds the threshold, at least one of the following is sent to the user equipment via a computer network for presentation: received sensor data, or visual elements associated with the estimated force magnitude.

[0205] The present invention has been described in conjunction with specific aspects, which are intended in all respects to be illustrative and not restrictive. Alternative aspects will become apparent to those skilled in the art without departing from its scope.

[0206] Various components used herein have been identified, and it should be understood that any number of components and arrangements can be employed to achieve the desired functionality within the scope of this disclosure. For example, for clarity of concept, components in aspects depicted in the figures are shown by lines. Other arrangements of these and other components may also be implemented. For example, although some components are depicted as single components, many elements described herein can be implemented as separate or distributed components or combined with other components, and implemented in any suitable combination and location. Some elements may be omitted entirely. Furthermore, the various functions performed by one or more entities as described herein can be performed by hardware, firmware, and / or software, as described below. For example, various functions can be performed by a processor executing instructions stored in memory. Therefore, other arrangements and elements (e.g., machines, interfaces, functions, sequences, and functional groups) may be used in addition to or in place of the arrangements and elements shown.

[0207] The aspects described herein may be combined with one or more of the specifically described alternatives. In particular, in the alternatives, the claimed aspect may include references to more than one other aspect. The claimed aspect may specify further limitations on the claimed subject matter.

[0208] This document describes in detail the subject matter of various aspects of the technology to meet legal requirements. However, the specification itself is not intended to limit the scope of this patent. Rather, the inventors have envisioned that the claimed subject matter may be embodied in other ways, in conjunction with other existing or future technologies, to include different steps or combinations of steps similar to those described in this document. Furthermore, although the terms “step” and / or “box” may be used herein to refer to different elements of the method employed, these terms should not be construed as implying any particular order among or between the various steps disclosed herein, unless and only if the order of individual steps is explicitly described.

[0209] For the purposes of this disclosure, the word "including" has the same broad meaning as the word "comprising," and the word "access" includes "receiving," "quoting," or "retrieval." Furthermore, the word "communication" has the same broad meaning as the words "receiving" or "transmitting," which are implemented by a software- or hardware-based bus, receiver, or transmitter using the communication medium described herein. Additionally, unless otherwise indicated, words such as "a" and "an" include both plural and singular forms. Thus, for example, the constraint of "feature" is satisfied when one or more features are present. Furthermore, the term "or" includes conjunctions, disjuncts, and both (a or b therefore includes a or b, and a and b).

[0210] For the purposes of the detailed discussion above, aspects of this technology are described with reference to a distributed computing environment; however, the distributed computing environment depicted herein is merely exemplary. Components can be configured to perform novel aspects of these aspects, wherein the term "configured for" can mean "programmed to" perform a specific task or implement a specific abstract data type using code. Furthermore, while aspects of this technology may generally refer to the technical solution environment and illustrations described herein, it should be understood that the technology can be extended to other implementation contexts.

[0211] As can be seen from the foregoing, this technology is well adapted to achieve all the aforementioned objectives and purposes, as well as other obvious advantages inherent to this system and method. It should be understood that certain features and sub-combinations are useful and can be employed without reference to other features and sub-combinations. This is contemplated by the claims and is within the scope of the claims.

Claims

1. A computer-implemented method, comprising: At a first time point, first sensor data is received via one or more sensors included in the footwear, wherein the one or more sensors do not include a force sensor; and at a second time point after the first time point, second sensor data is received via the one or more sensors. Based at least in part on the first sensor data and the second sensor data, a force change representing at least part of the force curve is estimated; and in at least part in response to the estimation, at least one of the following is sent to a user equipment via a computer network for presentation: the received first sensor data, the received second sensor data, or visual content associated with the estimated force change.

2. The method of claim 1, wherein the estimation is based on the use of a convolutional neural network (CNN).

3. The method of claim 2, wherein a first portion of the CNN is stored in the footwear article, and wherein the first portion includes an intermediate layer that generates an output indicating an estimate of the force variation, and wherein the first portion does not include a dense layer.

4. The method according to claim 2, further comprising: One or more running features are added to one of the first inputs of the convolutional layer at the CNN or the second input of the flattening layer at the CNN, wherein the estimation of the force variation is based at least in part on the addition of the one or more running features.

5. The method of claim 1, wherein the one or more sensors are included in an inertial measurement unit (IMU), the inertial measurement unit comprising: An accelerometer that provides a first portion of the first sensor data along a longitudinal axis and a vertical axis, wherein the estimation of the force change is not based on the first portion provided by the accelerometer along an inner and outer axis; And a gyroscope that provides a second portion of the first sensor data via a pitch axis, wherein the estimation of the force variation is not based on the second portion provided by the gyroscope via a yaw axis or a roll axis.

6. The method of claim 1, wherein the estimation is based on a fixed window that processes only sensor data indicating gait phases of the complete gait cycle, and wherein other sensor data indicating other portions of the complete gait cycle are not processed for estimation.

7. The method of claim 1, wherein the visual content includes at least one of the following: a ground force curve, an immersive technology element, a video game element, or a user interface element that warns the user when the force exceeds a threshold.

8. The method according to claim 1, wherein the method further comprises: Determine that at least one of the first sensor data, the second sensor data, or the force exceeds a threshold; And in response to determining that at least one of the first sensor data, the second sensor data, or the force exceeds the threshold, to track at least one of the first sensor data, the second sensor data, or the force for a certain period of time; In response to tracking at least one of the first sensor data, the second sensor data, or the force during the specified time period, a notification is sent to the user equipment indicating that at least one of the tracked first sensor data, the tracked second sensor data, or the tracked force has exceeded the threshold.

9. The method according to claim 1, further comprising: The footwear is designed to apply resistance or auxiliary force based at least in part on an estimate of the force variation.

10. The method according to claim 1, further comprising: The lower limb postures are classified based at least in part on estimates of the force changes, and the lower limb postures include at least one of stomping, kicking, or jumping.

11. The method according to claim 1, further comprising: The types of activities that the wearer of the footwear has participated in are classified, at least in part based on either the first sensor data or the second sensor data, and the estimation of the force variation is at least in part based on the classification of the activity types, wherein the activity types include at least one of running, walking, jogging, jumping, landing, or gait phases of a gait cycle.

12. The method of claim 11, wherein the classification is based on the use of a segmentation model.

13. The method according to claim 1, further comprising: One or more gait attitude parameters are estimated, at least in part based on one of the first sensor data or the second sensor data, wherein the estimation of the force variation is also based on the estimation of the one or more gait attitude parameters, and wherein the one or more gait attitude parameters include at least one of the following: the number of strides taken by the wearer of the footwear, the type of activity of the wearer, the speed of the wearer, the Gaussian curvature tensor value, stride length, steps per minute, foot landing angle, average vertical ground reaction force (VGRF), peak VGRF activity, VGRF impulse, or VGRF instantaneous load rate.

14. The method of claim 1, further comprising estimating and scaling the shape of the force curve based at least in part on an estimate of the force variation.

15. A footwear article configured to conform to the human foot, said footwear article comprising: One or more sensors; and one or more processors communicatively coupled to the one or more sensors, wherein the one or more processors are configured to perform operations including: receiving first sensor data from the one or more sensors at a first time; receiving second sensor data from the one or more sensors at a second time after the first time; estimating a force change representing at least a portion of a force curve based at least in part on the first sensor data and the second sensor data; and, at least in part in response to the estimation of the force change, sending at least one of the following to a user equipment via a computer network for presentation: the received first sensor data, the received second sensor data, or visual content associated with the estimated force change.

16. The footwear article of claim 15, wherein the estimation is based on a convolutional neural network (CNN) using computer memory stored within the footwear article.

17. The footwear article of claim 15, wherein a first portion of the CNN is stored in a computer memory, and wherein the first portion includes an intermediate layer that generates an output indicating an estimate of the force variation, and wherein the first portion does not include a dense layer, and wherein a second portion of the CNN is stored in the user device, and wherein the second portion includes the dense layer.

18. The footwear article of claim 15, wherein the one or more processors are configured to perform an additional operation, the additional operation comprising: One or more running features are added to either the first input of a convolutional layer at the CNN or the second input of a flattening layer at the CNN, wherein the estimation of the force variation is based at least in part on the addition of the one or more running features.

19. The footwear article of claim 15, wherein the one or more sensors are included in an inertial measurement unit (IMU), the IMU comprising: An accelerometer that provides a first portion of the first sensor data along a longitudinal axis and a vertical axis, wherein the estimation of the force change is not based on the first portion provided by the accelerometer along an inner and outer axis; And a gyroscope that provides a second portion of the first sensor data via a pitch axis, wherein the estimation of the force variation is not based on the second portion provided by the gyroscope via a yaw axis or a roll axis.

20. The footwear article of claim 15, wherein the estimation is based on a fixed window of sensor data that indicates only the gait phases of the complete gait cycle processed by the one or more processors, and wherein other sensor data indicating other portions of the complete gait cycle are not processed for estimation.

21. The footwear article of claim 15, wherein the visual content includes at least one of the following: a ground force curve, an immersive technology element, a video game element, or a user interface element that warns the user when the force exceeds a threshold.

22. The footwear article of claim 15, wherein the one or more processors are configured to perform an additional operation, the additional operation comprising: Determine that at least one of the first sensor data, the second sensor data, or the force exceeds a threshold; And based on determining that at least one of the first sensor data, the second sensor data, or the force exceeds the threshold, a notification is sent to the user equipment.

23. The footwear article of claim 15, wherein the one or more processors are configured to perform an additional operation, the additional operation comprising: The footwear is designed to apply resistance or auxiliary force based at least in part on an estimate of the force variation.

24. The footwear article of claim 15, wherein the one or more processors are configured to perform an additional operation, the additional operation comprising: The lower limb postures are classified based at least in part on estimates of the force changes, and the lower limb postures include at least one of stomping, kicking, or jumping.

25. The footwear article of claim 15, wherein the one or more processors are configured to perform an additional operation, the additional operation comprising: The types of activities that the wearer of the footwear has participated in are classified, at least in part based on either the first sensor data or the second sensor data, and wherein the estimation of the force variation is at least in part based on the classification of the activity types, and wherein the activity types include at least one of running, walking, jogging, jumping, landing, or gait phases of a gait cycle, and wherein the classification is based on the use of a segmented model.

26. The footwear article of claim 15, wherein the one or more processors are configured to perform an additional operation, the additional operation comprising: One or more gait attitude parameters are estimated, at least in part based on one of the first sensor data or the second sensor data, wherein the estimation of the force variation is also based on the estimation of the one or more gait attitude parameters, and wherein the one or more gait attitude parameters include at least one of the following: the number of strides taken by the wearer of the footwear, the type of activity of the wearer, the speed of the wearer, the Gaussian curvature tensor value, stride length, steps per minute, foot landing angle, average vertical ground reaction force (VGRF), peak VGRF activity, VGRF impulse, or VGRF instantaneous load rate.

27. The footwear article of claim 15, wherein the one or more processors are configured to perform additional operations, the additional operations including estimating and scaling the shape of the force curve based at least in part on an estimate of the force variation.

28. A system comprising: Wearable articles, the wearable articles including one or more sensors; and one or more processors communicatively coupled to the one or more sensors, wherein the one or more processors are configured to perform operations including: receiving first sensor data from the one or more sensors at a first time; receiving second sensor data from the one or more sensors at a second time after the first time; estimating a force change representing at least a portion of a force curve based at least in part on the first sensor data and the second sensor data; and at least in part in response to the estimation, causing at least one of the following to be presented at a user equipment: the received first sensor data, the received second sensor data, or visual content associated with the estimated force change.

29. A computer-implemented method, comprising: At a first moment, a set of sensor data is received via one or more sensors included in the footwear, wherein the one or more sensors do not include a force sensor; Based at least in part on a set of received sensor data, estimate one or more gait attitude quantities; and based at least in part on the estimation, participate in at least one of the following: provide the estimated one or more gait attitude quantities to a model for further processing, or cause visual elements to be presented at a user device.

30. The method of claim 29, further comprising: In response to providing one or more estimated step attitude parameters to the model, the model estimates force changes representing at least a portion of the force curve.

31. The method of claim 29, wherein a first portion of the model is stored in the footwear article, and wherein the first portion includes an intermediate layer that generates an output indicating an estimate of the one or more gait attitude parameters, and wherein the first portion does not include a dense layer, and wherein a second portion of the model is stored in the user device, and wherein the second portion includes the dense layer.

32. The method of claim 29, further comprising: The one or more step attitude parameters are added to one of the first inputs of the convolutional layer at the convolutional neural network (CNN) or the second input of the flattening layer at the CNN, wherein the estimation of force variation is based at least in part on the addition of the one or more step attitude parameters.

33. The method of claim 29, wherein the estimation is based on a fixed window that processes only sensor data indicating gait phases of the complete gait cycle, and wherein other sensor data indicating other portions of the complete gait cycle are not processed for estimation.

34. The method of claim 29, wherein the visual element comprises at least one of the following: ground force curves, immersive technology elements, game elements of video games, or user interface elements.

35. The method of claim 29, further comprising: Based at least in part on estimates, the footwear is made to apply resistance or auxiliary force.

36. A footwear product, comprising: One or more sensors; and one or more processors communicatively coupled to the one or more sensors, wherein the one or more processors are configured to perform operations including: receiving a set of sensor data from the one or more sensors; estimating, at least in part, the type of activity of a wearer associated with the footwear based on the received set of sensor data; and, at least in part, participating in at least one of the following: providing the estimated type of activity to a model for further processing, or causing a visual element to be presented at a user device.

37. The footwear article of claim 36, wherein the one or more processors are configured to perform an additional operation, the additional operation comprising: In response to providing the estimated activity type to the model, force changes representing at least a portion of the force curve are estimated via the model.

38. The footwear article of claim 37, wherein a first portion of the model is stored in the footwear article, and wherein the first portion includes an intermediate layer that generates an output indicating an estimate of the force variation, and wherein the first portion does not include a dense layer, and wherein a second portion of the model is stored in the user device, and wherein the second portion includes the dense layer.

39. The footwear article of claim 36, wherein the estimation is based on a fixed window that processes only sensor data indicating gait phases of a complete gait cycle, and wherein other sensor data indicating other portions of the complete gait cycle are not processed for estimation.

40. The footwear article of claim 36, wherein the visual element comprises at least one of the following: force curves, immersive technology elements, video game elements, or user interface elements.

41. The footwear article according to claim 36, further comprising: The footwear is subjected to resistance or auxiliary force based at least in part on an estimate.

42. A computer-implemented method, comprising: During a first time period, sensor data is received via one or more sensors included in the footwear, wherein the one or more sensors do not include force sensors; The magnitude of the force is estimated, at least in part, based on the analysis of the sensor data; Determine that the estimated force exceeds a threshold; and at least in part in response to determining that the estimated force exceeds the threshold, send at least one of the following to the user equipment via a computer network for presentation: received sensor data, or visual content associated with the estimated force.

Citation Information

Patent Citations

  • Motion-based media creation

    US20220279891A1

  • Athletic or other performance sensing systems

    US7607243B2