Anti-drone Turret


Dec 2025 – present

A student project building an optics-based counter-UAS (anti-drone) turret. I work on the software team, responsible for machine vision, tracking and control, and a simple C2 (command and control) system. The goal is to detect and track small drones at long range using only cameras — radar is outside our budget.

Mono camera frame with a detected DJI drone bounded against the sky
Detecting a DJI Mini 5 Pro on the mono camera.

Sensor module

Since we detect purely with optics, the sensor module pairs a wide-angle RGB camera for search with a zoomed mono camera for range. An STM32 handles the supporting sensors — a laser rangefinder and GNSS.

The sensor module: a wide-angle RGB camera and a zoomed mono camera
Sensor module — wide-angle RGB (search) and zoomed mono (range).

Machine vision

Detecting drones is a small object detection problem: they show up as a handful of pixels, and most detectors lose them to downsampling. After testing on a public dataset we landed on YOLOv11-P2, whose extra feature level is better at picking up small objects, and we lean on heavy augmentation to bridge the gap to real conditions. Everything runs on an NVIDIA Jetson with a GStreamer / DeepStream pipeline that keeps as much as possible on the GPU, which holds the frame rate above 30 FPS.

Basler Camera (pylonsrc)
      ↓
capsfilter        GRAY8 · NVMM · 1920×1080
      ↓
nvvideoconvert    GRAY8 → NV12 (for streammux)
      ↓
nvstreammux       batch size 1 · 1920×1088
      ↓
nvinfer           YOLOv11-P2 drone detector (FP16)
      ↓
nvvideoconvert    NV12 → RGBA (for OSD)
      ↓
nvdsosd           bounding boxes + drone count overlay
      ↓
nv3dsink          display output

Results

Detection range for a DJI Mini 5 Pro so far: about 550 m on the mono camera and 90 m on RGB. Next up is a better RGB lens and an ND filter to push those numbers further.

Software architecture diagram spanning sensors, perception, autonomy, control, C2 and safety layers
End-to-end architecture, with a human operator kept in the loop before any action.

Keywords: Computer Vision, C++, Python, NVIDIA/CUDA, YOLO


© Frederic Ljosland Strand