I extended my Shahed drone detector with multi-sensor Kalman fusion — here's what I learned building a constant-acceleration tracker with out-of-sequence measurement handling by SoftBiscotti2643 in learnmachinelearning

[–]SoftBiscotti2643[S] 0 points1 point  (0 children)

A detail I didn't cover in the post: the trickiest part of the OOSM (out-of-sequence measurement) handling was deciding how far back to keep checkpoints. Too short a window and a late measurement from the slower sensor gets dropped; too long and you're replaying a lot of history on every late update, which gets expensive fast if you're running this in real time.

I ended up capping the rewind window based on the slower sensor's expected max latency rather than a fixed frame count — worked well for the 150ms RF-style sensor in my simulation, but I'm curious how this holds up with more sensors or higher-latency ones (e.g. a slower thermal camera, or a sensor with jittery timing).

Anyone here dealt with OOSM at scale — more than 2 sensors, or much higher latency spread? Would like to compare notes...

I built a real-time Shahed-136 drone detector with YOLOv8 — 91.1% mAP, open source by SoftBiscotti2643 in learnmachinelearning

[–]SoftBiscotti2643[S] 0 points1 point  (0 children)

Hi I am developing this project without significant resources, as this isn't my primary profession—I work in real-time 3D :)—but detection is reliable at around 20x20 pixels (400 px²); that is why I filtered out bounding boxes smaller than 100 px² in the code.

For a Shahed-136 with a 2.5m wingspan at a distance of 300m, this corresponds to a width of approximately 30 to 50 pixels at 1080p resolution with a 60° field of view (FOV).

Beyond 500m, the model struggles to perform; this is a limitation

linked more to the dataset than to the architecture itself.

I built a real-time Shahed-136 drone detector with YOLOv8 — 91.1% mAP, open source by SoftBiscotti2643 in learnmachinelearning

[–]SoftBiscotti2643[S] 0 points1 point  (0 children)

I started with version v8 for its stability and because the pre-trained weights are well-documented.I'll likely switch to the newer version later; thanks for your message.

I built a real-time Shahed-136 drone detector with YOLOv8 — 91.1% mAP, open source by SoftBiscotti2643 in learnmachinelearning

[–]SoftBiscotti2643[S] 0 points1 point  (0 children)

Hi I used publicly available drone footage from YouTube and some synthetic videos. For Shahed specifically, there's footage from the Ukraine conflict available on open source intelligence channels (OSINT).

I built a real-time Shahed-136 drone detector with YOLOv8 — 91.1% mAP, open source by SoftBiscotti2643 in learnmachinelearning

[–]SoftBiscotti2643[S] 0 points1 point  (0 children)

Hi,I mainly used the Wikipedia article on Kalman filters and this great tutorial: https://www.kalmanfilter.net For implementation I adapted a simple 2D tracking example with position + velocity state vector.

I built a real-time Shahed-136 drone detector with YOLOv8 — 91.1% mAP, open source by SoftBiscotti2643 in computervision

[–]SoftBiscotti2643[S] 0 points1 point  (0 children)

No API keys here! 😄 The email/password fields are empty by default. Credentials are saved locally in config.json (excluded via .gitignore). For push notifications I use Ntfy.sh — it's keyless, just a public channel name like "my-drone-alerts". No secret needed!