Aditya Kothuri

Autonomous Wildlife Monitoring

2026

Work

Every great ape species is Endangered or Critically Endangered. As part of Geologic Dome’s wildlife monitoring initiative, I fine-tuned a YOLO-based detector on PanAf500 camera-trap footage, evaluated it against all 201,430 annotated boxes, and prepared the system for deployment on autonomous field nodes.

Tracked F1
0.857
ID switches
2,257 → 301
Apes tracked
874
Generated stand-in · deterministic from the project name

The problem

Every great ape species is listed as Endangered or Critically Endangered. Monitoring them is especially difficult because the footage comes from fixed camera traps in dense rainforest, where occlusion, darkness, distance, and motion blur often occur at the same time. A per-frame detector gives the operator one main control: the confidence threshold. Choosing that threshold means balancing missed apes against false detections, without knowing which setting will work best.

Conservation needs to track individuals, not just detect them. Counting apes, following them through a clip, and linking behavior to the right animal all require identity to persist across frames. With the raw detector, the 874 annotated individuals were fragmented into thousands of track segments, resulting in 2,257 identity switches.

Approach

  1. 01

    Evaluate across the full dataset

    The evaluation uses every densely annotated PanAf500 clip: 500 videos, about 180,000 frames, 201,430 ground-truth boxes, and 874 individual apes across 14 field sites. An earlier 10-clip sample produced a threshold recommendation that the full dataset contradicted. The full-dataset result is reported in the repository.

    The 10-clip evaluation had two problems: it used hard clips and included tracking. The tracker removed false positives before the detector was scored. Detector results now come from detector only runs.

  2. 02

    Determine detector basline

    MegaDetector V6, a YOLOv10-e model, was first evaluated as shipped using PyTorch-Wildlife. We cached one run at 0.05 confidence so higher thresholds could be tested without rerunning the model. This established the baseline before fine tuning. The baseline showed the main failure cases were occlusion, small subjects, and apes carrying infants.

    The best single-frame operating point across the full dataset was a confidence threshold of 0.40, with an F1 score of 0.835. This is the baseline every later stage must beat.

  3. 03

    Find the performance ceiling

    Early results showed tracking coverage and detection recall were identical at 0.7149. Every true positive was already part of a track, and no track covered a frame that the detector missed. Coverage was therefore limited by the detector, not the tracker. The main problem was identity.

    This finding changed the focus of the project. From that point on, the goal was not to find more animals, but to improve identity tracking by reducing ID switches, fragmentation, and gaps between tracks.

  4. 04

    Detect First, Filter Later

    The shipped pipeline runs detection at 0.05 confidence, where raw precision is only 0.468, and passes the detections to ByteTrack. ByteTrack removes detections that do not persist and interpolates short gaps. This uses temporal information that a per-frame threshold cannot. The tracked output achieves both higher precision and higher recall than the best single-frame threshold.

    Tracking improves F1 from 0.835 to 0.857. ID switches drop from 2,257 to 301, and box jitter drops by 77%.

  5. 05

    Use Ground Truth for Visual Validation

    The annotated clips show the model’s boxes and the dataset’s behavior labels in different colors, with a legend on every frame. MegaDetector only detects animals; the behavior labels come from PanAf’s annotators. The original footage is not redistributed because the annotated clips are derived from a non-commercial conservation dataset.

  6. 06

    Target the Failures With Fine-Tuning

    The identity improvements were tested again on held-out clips, where one-third of the improvement was lost. We recorded this as a threefold increase in regression rate rather than calling the problem fixed. The main remaining failures are occlusion and scale: recall is 0.207 for apes carrying infants and 0.711 for small subjects, compared with 0.93 for large subjects. These are the cases targeted by the fine-tuning. The final pipeline includes the manifest, config, provenance, and a single CLI, making it ready for deployment on a solar-powered field node.

    MegaDetector’s training data is not fully public, so we cannot rule out overlap with PanAf. This means the baseline results could be optimistic in a way that no split of the PanAf dataset can detect.

What I built

  • Fine-tuned the YOLOv10-based MegaDetector V6 on the failure cases identified in the baseline evaluation, and prepared the packaged pipeline for deployment on Geologic Dome’s autonomous field nodes.
  • Built the end-to-end pipeline for clip manifests, frame decoding, inference, confidence filtering, tracking, refinement, overlays, and export, using MegaDetector V6 and ByteTrack as upstream components.
  • Ran the full-dataset evaluation across all 201,430 annotated boxes and 874 ape identities, using a fixed IoU and confidence threshold rather than averaging results across a sweep.
  • Found that tracking coverage was capped by detector recall, so the focus shifted from detection tuning to identity tracking.
  • Designed the detect-generously-then-filter approach that outperformed every single-frame threshold, and built the refinement pass that reduced identity switches by 87%.

Results

Tracked precision0.794 before refinement
0.855
Tracked recall
0.859
Tracked F1best single-frame threshold: 0.835
0.857
ID switches
2,257 → 301
Fragmentationtracks per ape
2.48 → 1.27
Identity coverage
0.740 → 0.823
Box jitter
−77%
Measured onBaseline pipeline: 201,430 boxes, 874 apes, IoU 0.50. Fine-tuned results follow.
500 clips

Stack

Led detector fine tuning, built the tracking pipeline, and ran full dataset evaluation across 500 camera trap videos.

MegaDetector V6 · PyTorch-Wildlife · ByteTrack · supervision · OpenCV · Colab A100