Skip to content

Movement: Support for kalman filters (Deborshi Kashyap) #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions GSoC-2025/application_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ _Extension: max 1 page_

_Extension: max 0.75 page_

- **Past experienc.**
- **Past experience.**

Please describe your past experience with programming, open source, or any other experience you deem relevant for the project you are applying for. Any successful open source projects, published work or content of the like should definitely be highlighted.
- **Motivation: why this project?**
Expand All @@ -84,4 +84,4 @@ _Extension: max 0.25 page_

- **Are you also applying to projects with other organisations in GSoC 2025?**

If so, which ones? What would be your preference in case of a tie?
If so, which ones? What would be your preference in case of a tie?
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
<h1> Name and Contact Information </h1>

Name : Deborshi Kashyap

Time-zone : UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi

E-mail : [email protected]

Github : [decembboy](https://github.com/decembboy) , [Deborshi](https://github.com/deborshi-web)

Zulip Username : [Debor](https://neuroinformatics.zulipchat.com/#user/882018)

Code Contribution:

[Microsoft torchgeo](https://github.com/microsoft/torchgeo/pull/2460)

[myhealthconnectsociety](https://github.com/myhealthconnectsociety/project-healthcare/pull/138)

[neuroinformatics unit ( movement )](https://github.com/neuroinformatics-unit/movement/issues/21)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a link to an issue, not a PR. Note that in this section we expect to see links to PRs only.






# Title:

Support for kalman filter in movement

# Synopsis:

This project aims to integrate Kalman filtering into the Movement project to enhance data smoothing and filtering capabilities. The Kalman filter will be implemented to smooth position, velocity, and acceleration timeseries. Additionally, as a stretch goal, it will be applied to fix identity switches in multi-animal tracking data. This functionality is crucial for improving trajectory estimations, aggregating multi-source information, and enhancing tracking accuracy. The deliverables include a robust Python implementation, comprehensive tests, thorough documentation, and an example use case in the Movement gallery. The open-source community will benefit from improved data handling methods in movement analysis.

# Implementation Timeline:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You haven't specified the size of the project you are applying for. How many hours to do you intend to commit in total?


1. <h3> Understanding the Problem </h3>
The goal is to implement Kalman Filters in a simplified manner for tracking movement.
Kalman Filters help in predicting and correcting movement data (e.g., tracking an object's position over time with noisy measurements).

2. <h3> Define Requirements </h3>
Should handle basic motion models (e.g., constant velocity, constant acceleration).
Should be easy to integrate into a simple movement tracking system.
Should have minimal computational overhead for real-time processing.

3. <h3> Implement a Basic Kalman Filter </h3>
Define the state vector (position, velocity, etc.).
Define state transition and observation models.
Initialize the process covariance, measurement covariance, and Kalman gain.
Implement the prediction and update steps.

4. <h3> Test with Sample Data </h3>
Simulate object movement (e.g., moving in a straight line).
Introduce noise to measurements.
Verify if the filter smooths out the trajectory correctly.

5. <h3> Optimize and Simplify </h3>
Reduce computational complexity if needed.
Remove unnecessary parameters for a minimalist version.
Provide easy-to-use functions for integration.

<h2> Week Deliverables </h2>

<h3> Community Bonding: </h3>

Study Movement's current data structures, discuss approach with mentors, explore existing Kalman filter implementations.

Week 1 Implement a basic Kalman filter for single-variable smoothing (position).

Week 2 Extend the filter to support velocity and acceleration. Add initial test cases.

Week 3 Optimize implementation for efficiency. Begin integrating filter into Movement’s framework.

Week 4 Finalize core implementation. Improve test coverage and edge-case handling.

Week 5 Draft documentation and create usage examples.

Week 6 Midterm Evaluation: Ensure filtering is fully functional with documented examples.

Week 7 Begin stretch goal: Implement identity switch correction using Kalman filtering.

Week 8 Improve accuracy of identity-switch handling. Test and refine algorithm.

Week 9 Integrate new feature into Movement’s tracking tools.

Week 10 Final testing, performance tuning, and validation with real-world data.

Week 11 Freeze codebase, finalize documentation, and polish the example use case.

Week 12 Submit final deliverables, write project report, and assist with integration into Movement.

<h3> Communication Plan: </h3>

• Weekly progress meetings with mentors via video calls.

• Ongoing discussions and questions through Zulip chat.

• Regular code updates and reviews on GitHub.

• Midterm and final project reports.

# Personal Statement:

<h2> Past Experience: </h2>

I am an experienced Python developer with expertise in numpy, pandas, OpenCV, and matplotlib. I have worked on data processing, visualization, and automation tools, including CSV-to-graph converters and AI-driven automation frameworks here are projects listed below

[Interactive German Dialect](https://github.com/decembboy/German-Dialect-Map)

[Interactive Graph Generator](https://github.com/decembboy/Interactive-graph-generator)

[Automate Assistant](https://github.com/decembboy/Automate-Assistant)


I have contributed to open-source projects such as

1. [Microsoft torchgeo](https://github.com/microsoft/torchgeo/pull/2460)
2. [myhealthconnectsociety](https://github.com/myhealthconnectsociety/project-healthcare/pull/138)
3. [neuroinformatics unit ( movement )](https://github.com/neuroinformatics-unit/movement/issues/21)

I also took a [Google cyber security course](https://www.coursera.org/account/accomplishments/specialization/5AD3BY5DV4V3) on Coursera. It demonstrates my ability to manage complicated data procedures efficiently.

<h3> Motivation: </h3>

I am deeply interested in motion analysis and filtering techniques. This project aligns with my passion for optimizing data processing workflows and working on real-world applications in scientific computing. The opportunity to contribute to Movement and help improve data accuracy excites me, as it directly benefits researchers and analysts dealing with complex tracking problems.

<h3> Match:</h3>

My background in Python, data processing, and algorithmic optimization makes me an excellent fit for this project. Having worked on automation and AI-driven tools, I can efficiently implement, test, and optimize the Kalman filter for Movement.

<h3> Availability: </h3>

I have commitments during the GSoC work period. I have one-day exams in June and December, time-table is not yet scheduled.

<h3> Are you also applying for projects with other organisations in GSoC 2025? </h3>

No, I'm not applying for any projects with other organizations in GSoC 2025.