CoolFace
Modelpublic

ethan0502/ttpla-yolo11-seg

sourceHugging Faceagpl-3.0updated 2mo agoView on Hugging Face
0likes20downloads
Model Card

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.

ModelmAP50mAP50-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%
yolo11ssegft640 (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):

ClassmAP50mAP50-95
Line (power cable)69.6%54.9%
Tower83.6%70.8%

Full methodology, comparability caveats, and internal ablations: `benchmarks/README.md` in the code repo.

Files

FileDescription
yolo11s_seg_1280.ptChampion checkpoint, trained/evaluated at 1280px (Ultralytics .pt)
yolo11s_seg_ft640.pt640px deployment fine-tune of the champion (Ultralytics .pt)
yolo11s_seg_ft640.onnxONNX export of the 640px checkpoint, opset 12, for ONNX Runtime / Jetson
classes.txtClass names in output order: Line, Tower

Usage

With Ultralytics:

python
from ultralytics import YOLO

model = YOLO("yolo11s_seg_1280.pt")  # or yolo11s_seg_ft640.pt for the 640px variant
results = 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.