You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HIGHLIGHT: Finally reworked the HMM branch, added tests and documentation and adapted the API to fit the rest of
the gaitmap and tpcp ecosystem better.
(#3).
On the way, there were also some bugs fixed and internal computations were optimized.
If you were using the HMM branch before, read through the HMM examples again before updating!
All the classes and methods have new names and import paths.
Further, you will likely not get exactly the same results.
However, when using the pretrained model, changes should be minimal.
If you were training your own model, it might be that you get different results, as you might have been effected by
a bug in the training code when using "labeled" training with the composite model
(for details: #4).
This is fixed now! So please retrain your models.
A new version of the RamppEventDetection is added. FilteredRamppEventDetection adds a lowpass filter before the
detection of the IC to remove potential high-freq artifacts.
New higher level transformers that allow for complex combinations and chaining of transformers.
Most of them make use of the new tpcp composite Algorithm feature that allows to easily get and set complicated
nested parameters.
New transformers include: ChainedTransformer, ParallelTransformer
(#2)
New implementation of a Filter class and a ButterworthFilter implementation on top of the transformer API.
(#2)
Added a new flip_dataset function that can be used instead of rotate_dataset, when you only need to perform 90/180
degree rotations.
It is much faster than rotate_dataset, as it just flips the axis labels and multiplies values by -1.
(#10)
New Zupt detecor methods: AredZuptDetectors and ShoeZuptDetectors.
The ARED detector is a special case of the existing NormZuptDetector (using specifically the mean of the gyr norm)
and the SHOE detector uses a combination of acc and gyr data.
(#11)
All Zupt detectors have a new parameter window_overlap_samples that can be used as alternative to window_overlap
to specify the window overlap in samples independent of the sampling rate.
(#11)
Added new example to show how the Zupt Detector can be tuned to improve the performance of the trajectory estimation
kalman filter.
(#11)
It is now possible to only detect a subset of the supported events of an event detection method using the detect_only parameter.
(#12)
The function calculate_parameter_errors now also outputs the number of strides used for matching per parameter.
(#13)
The function calculate_parameter_errors returns way more parameters.
All basic statistics are now calculated for the error, relative error, absolute error and the relative absolute error.
If pingouin is installed, we also calculte the ICC.
(#13)
A new utility method to intersect stride lists by a region of interest list.
(#14)
A new ZuptDetector method StrideEventZuptDetector that simply returns the min_vel events of an already provided
event list as ZUPTs.
This is enabled by the new stride_event_list parameter of the detect method of all ZuptDetector methods (see
Changes)
(#14)
A new ZuptDetector method ComboZuptDetector that allows to combine the output of multiple ZuptDetector methods using
either logical "or" or "and".
(#14)
The PerSampleZuptDetectorMixin and RegionZuptDetectorMixin are now public API to simplify the implementation of
custom ZUPT detectors.
(#14)
Changed
When using memory with any of Dtw methods, we will not cache the peak detection step anymore.
It does not really speed up things and just leads to dozents of cache writes/reads as the chance of a cache match is
really low.
The zupts_ result of RtsKalmanFilter is not a pandas dataframe with start and end columns instead of a
np.ndarray.
The content remains the same.
The sampling_rate_hz parameter of the detect method of the EventDetection algorithms is now keyword only.
(#12)
For the function calculate_parameter_errors the naming of ground truth was changed to reference and input to
predicted.
This change requires updating the function call in your code.
(#13)
For all trajectory/pos/ori methods, the sampling_rate_hz parameter is now keyword only.
This might require some user facing code changes.
(#14)
Trajectory/pos/ori and ZUPT methods can now get an optional parameter called stride_event_list as parameter for the detect
method.
So far, only the RTS Kalman Filter is using this parameter to forward it to the ZUPT method.
Both wrapper (Stride-level and Region) are both aware of this parameter and pass them correctly down to the respective
methods.
(#14)
The util method start_end_array_to_bool_array now assumes that the end index of all regions is inclusive.
This enables roundtrip conversion with the bool_array_to_start_end_array method and is in line with the definitions
used for strides, ROIs, and ZUPTs in gaitmap.
Further, the method now supports to output arrays that are shorter than the largest input index.
Before, this resulted in an error.
Both changes might require some user facing code changes, if this function is used.
However, as it was not used internally, it is likely that no one was using it anyway.
(#14)
Removed
The find_zupts method of the RtsKalmanFilter and all deprecated arguments are now fully removed in favor of the
dedicated ZUPT algorithms.
The parameters where deprecated since version 1.5
Migration Guide
There are a bunch of small changes that are not backwards compatible.
The most important is likely the change to make the sampling_rate_hz parameter (and other) keyword only in many
methods.
This means, you need to use the parameter name when calling these methods.
For example, if you used detect(data, 100) before, you now need to use detect(data, sampling_rate_hz=100).