NO Window sizing in Edge impulse github code but present in Edge impulse for flatten processing block

Question/Issue:
We were trying to replicate the processing block - flatten for accelerometer based dataset, but couldn’t find the usage of window size and window stride in edge impulse processing block.
Without these feature, the model accuracy will be affected since the flatten feature will be calculated for complete data point(10sec of data).

Context/Use case:
Accelerometer based motion detection.

Reproducibility:

  • [ ] Always

Environment:
Local system like mac or linux.

Hi @ajithkjajith

Can you give more detail on the usage? Is your complete sample 10 seconds long because you’re detecting a long-duration event?

Is the stride vs overlap what is causing confusion? Say the accelerometer samples at 100Hz 1 second will have 100 samples.
Setting the stride to 2000 will give 200 samples, window increase of 2000 will give 0% overlap.
Window size vs increase:

  • Window size: 2,000 ms (for 2 seconds at 100 Hz)
  • Window increase: 1,000 ms (for 1 second stride at 100 Hz = 50% overlap)

I see that this doc is possibly lacking in examples for use cases here. Some sample settings for short vs long usage:

Short-duration motions vs long-duration motions:

  • For short-duration motions (e.g., jerks or taps): Use smaller windows (e.g., 50-75 samples) and minimal overlap (stride of 75%).

  • For long-duration motions (e.g., walking or running): Use larger windows (e.g., 150-200 samples) with more overlap (stride of 25-50%).

Hope this helps,

Best

Eoin

fyi @brianmcfadden

Hi @Eoin,
Thanks for the response.
I understood the concept of window size and stride with the examples that you provided.

My question was,
Edge impulse Studio has the option of windows stride and windows length.
However, Edge impulse github processing block (processing-blocks/flatten/dsp.py at master · edgeimpulse/processing-blocks · GitHub) doesn’t have the windows stride or length implementation.

Do we need to write the wrapper code for considering the windows stride and length and then pass to dsp.py?

Hello @ajithkjajith,

The processing blocks don’t have this option. They expect a fixed input buffer.
In the studio this is done in the step before when you configure your impulse.

Do we need to write the wrapper code for considering the windows stride and length and then pass to dsp.py?

Correct. If you want to replicate locally, you’ll need to manually prepare your raw buffers.

I hope this helps.

Best,

Louis

1 Like