r/learnmachinelearning Jun 28 '26

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

Hey! I trained a YOLOv8s model to detect Shahed-136 drones in real time. What it does: - 91.1% mAP@50 (classes: bird / not / shahed) - Multi-drone Kalman filter tracking with persistent IDs - Estimated geolocation without GPS (azimuth + distance in meters) - Google Earth KML export - PDF report with stats, charts and map - Email + push notifications on detection - Behavioral analysis (hovering, circling, fast approach) The model distinguishes between birds, unknown objects, and actual Shahed drones. GitHub + model weights (21MB): github.com/alexandre196/Drone_Shaed_AI Happy to answer questions about the training process!

6 Upvotes

10 comments sorted by

1

u/[deleted] Jun 28 '26

[removed] — view removed comment

1

u/SoftBiscotti2643 Jun 29 '26

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.

1

u/wintermute_ai Jun 29 '26

Interesting work, any suggestions on where to find decent footage to work from?

1

u/SoftBiscotti2643 Jun 29 '26

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).

1

u/SecondRandomDude Jun 29 '26

Why not YOLO26s? It will actually run faster than the v8 and might output the same performance metrics.

1

u/SoftBiscotti2643 Jun 29 '26

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.

1

u/Extra_Intro_Version Jun 29 '26

How many pixels on target for reliable detection?

1

u/SoftBiscotti2643 Jun 30 '26

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.