Downloads · 30 days
0
ACloudCenter/yolo11s-insplad-powerline
yolo11s-insplad-powerline is a object detection model from ACloudCenter. Use it when you need objects located in an image. It is set up for onnxruntime. The card lists the license as cc-by-nc-3.0.
Two ONNX models for inspecting power line hardware in UAV imagery:
Downloads · 30 days
0
Access
Public
Updated Aug 4, 2026
Repo size
141 MB
Likes
2
Public
Click a slice to open those files.
.data80.5 MB · 57%
From the Hugging Face model README
Two ONNX models for inspecting power line hardware in UAV imagery:
Both run on CPU under ONNX Runtime with no PyTorch or Ultralytics dependency at inference time.
Trained on InsPLAD (Vieira-e-Silva et al., 2023). Code, full technical report, and a live demo: https://github.com/Josh-E-S/powerline-inspection-demo
Measured on the InsPLAD benchmark's own test split (2,626 images, 6,324 instances), verified by matching per-class counts against Table 3 of the paper. Metric is COCO Box AP (IoU 0.50:0.95), the same definition the paper uses. Latency is single-image CPU inference on an Apple M5.
| File | Size | Box AP | AP50 | p50 latency |
|---|---|---|---|---|
detector-1280-int8.onnx | 10.6 MB | 0.726 | 0.906 | 127 ms |
detector-1280-fp32.onnx | 38.5 MB | 0.738 | 0.912 | 150 ms |
detector-640-int8.onnx | 10.1 MB | 0.710 | 0.889 | 30 ms |
Published baselines on the same split, for reference: DetectoRS 0.721 Box AP at 990.9 MB, RetinaNet 0.891 AP50 at 756.2 MB, both measured on an RTX 3080Ti. The 1280 INT8 model above exceeds the best published Box AP at roughly 1/93rd the weights size, on CPU.
Condition classifier: 0.960 balanced accuracy on the fault test split (6,417 crops), against the published 0.954.
Per-class results lead on 11 of 17 classes. The three glass-insulator shackle variants remain weak in absolute terms (0.34-0.47 Box AP); they are scarce (around 100 training instances each) and are confused predominantly with one another.
| File | Purpose |
|---|---|
detector-640-int8.onnx | fastest; used in the live demo |
detector-1280-int8.onnx | best accuracy per byte |
detector-1280-fp32.onnx | unquantized reference |
classifier.onnx + classifier.onnx.data | condition classifier (external data file is required alongside the model) |
classifier_classes.json | class order for the classifier output |
import numpy as np, onnxruntime as ort
from PIL import Image
sess = ort.InferenceSession("detector-640-int8.onnx",
providers=["CPUExecutionProvider"])
size = 640
def letterbox(path, size):
img = Image.open(path).convert("RGB")
r = min(size / img.width, size / img.height)
nw, nh = round(img.width * r), round(img.height * r)
canvas = Image.new("RGB", (size, size), (114, 114, 114))
canvas.paste(img.resize((nw, nh), Image.BILINEAR),
((size - nw) // 2, (size - nh) // 2))
x = np.asarray(canvas, np.float32).transpose(2, 0, 1)[None] / 255.0
return x, r, (size - nw) // 2, (size - nh) // 2
x, scale, pad_x, pad_y = letterbox("image.jpg", size)
out = sess.run(None, {sess.get_inputs()[0].name: x})[0][0]
# out is (4 + 17, anchors): xywh box coords then per-class scores.
# Apply your own confidence filter and class-wise NMS, then undo the
# letterbox with scale/pad to map boxes back to the original image.
Class names are in the model metadata under the names key. The
classifier expects 224x224 crops with ImageNet normalization, and has a
single head over all 11 asset__condition classes, so mask its logits to
the conditions valid for the detected asset before the softmax.
A complete reference implementation, including NMS and the two-stage
wiring, is in
app/app.py.
Intended for research and demonstration of inspection pipelines, not for operational decisions about physical infrastructure.
YOLO11-s fine-tuned from COCO weights at 1280px for 60 epochs with rare-class oversampling, on a single A100. EfficientNetV2-S fine-tuned on fault crops with class-balanced sampling. INT8 is ONNX Runtime static quantization, QDQ format, per-channel weights, calibrated on 800 real validation images and restricted to Conv/MatMul operations.
That last restriction matters: quantizing the detection head's output tensor, which holds box coordinates and class probabilities on very different numeric scales, collapses every probability to zero. Full details in the technical report.
CC BY-NC 3.0, non-commercial use only. These weights are derivative works of the InsPLAD dataset and inherit its licence. Attribution to the dataset authors is required:
@article{vieira2023insplad,
title = {InsPLAD: A Dataset and Benchmark for Power Line Asset
Inspection in UAV Images},
author = {Vieira-e-Silva, Andr\'e Luiz Buarque Vieira and
Felix, Heitor and Sim\~oes, Francisco and
Teichrieb, Veronica},
journal = {International Journal of Remote Sensing},
volume = {44},
number = {23},
year = {2023}
}
Commercial use requires permission from the dataset authors.