TTPLA YOLO11s-seg — power line & utility tower detection
A YOLO11s segmentation model for detecting power lines (Line) and
transmission towers (Tower) from a low-altitude drone's forward camera,
trained on TTPLA (Abdelfattah et
al., ACCV 2020). Code, training pipeline, and Jetson deployment scripts:
github.com/ethan0502/ttpla-yolo11-seg.
Why segmentation, not just detection
TTPLA's annotations are polygons. Converting them to axis-aligned boxes (the
usual detection path) throws away the true shape of a thin power line — a
box around a cable is mostly background. Training with segmentation
supervision keeps that shape information; at inference you can still take
just the boxes (cheap, drop-in) or use the predicted masks for true-pixel
risk assessment.
Benchmark
Evaluated on TTPLA's official 220-image held-out test set (never used in
training or model selection), same 2-class (Line/Tower) remap throughout.
Model
mAP50
mAP50-95
TTPLA paper baseline — YOLACT ResNet-101@700 (Abdelfattah et al., ACCV 2020)
43.19%
22.96%
yolo11s_seg (1280px train/infer)
76.59%
62.84%
yolo11s_seg_ft640 (640px deployment fine-tune)
74.24%
60.37%
+33.4pp mAP50 / +39.9pp mAP50-95 over the dataset paper's own baseline,
on an identical test protocol.
Per-class (champion model, no per-class numbers are available from the
original paper to compare against):
Class
mAP50
mAP50-95
Line (power cable)
69.6%
54.9%
Tower
83.6%
70.8%
Full methodology, comparability caveats, and internal ablations:
benchmarks/README.md
in the code repo.
Files
File
Description
yolo11s_seg_1280.pt
Champion checkpoint, trained/evaluated at 1280px (Ultralytics .pt)
yolo11s_seg_ft640.pt
640px deployment fine-tune of the champion (Ultralytics .pt)
yolo11s_seg_ft640.onnx
ONNX export of the 640px checkpoint, opset 12, for ONNX Runtime / Jetson
classes.txt
Class names in output order: Line, Tower
Usage
With Ultralytics:
python
1from ultralytics import YOLO
23model = YOLO("yolo11s_seg_1280.pt")# or yolo11s_seg_ft640.pt for the 640px variant4results = model.predict("flight.jpg", imgsz=1280)# use imgsz=640 for the ft640 checkpoint
With ONNX Runtime, use the deployment scripts in the code repo
(deploy/drone_obstacle_avoidance_seg.py for box+mask risk assessment, or
deploy/drone_obstacle_avoidance_seg_boxonly.py for a lighter box-only
path) — both are written against yolo11s_seg_ft640.onnx at 640×640.
Intended use
Real-time onboard obstacle warning for low-altitude drones (tested target:
NVIDIA Jetson Orin Nano Super, ONNX Runtime, 640px input). Not validated for
any safety-critical or fully autonomous collision-avoidance use — treat
output as a pilot/operator warning signal, not a certified sense-and-avoid
system.
Training data
TTPLA (Apache License 2.0). Raw imagery is not redistributed here or in the
code repo — see the code repo's NOTICE.md for how to obtain it and for
the official train/val/test split files used.
License
AGPL-3.0-or-later. These weights are a fine-tune of Ultralytics' pretrained
yolo11s-seg.pt checkpoint; Ultralytics' YOLO11 code and pretrained weights
are themselves AGPL-3.0 (a separate Enterprise license is available from
Ultralytics for closed-source use). See the code repo's NOTICE.md for
details.
Citation
Abdelfattah R, Wang X, Wang S. TTPLA: An Aerial-Image Dataset for Detection
and Segmentation of Transmission Towers and Power Lines. ACCV 2020.