Instructions to use Kodjaoglanian/pavimentos-yolo11s with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use Kodjaoglanian/pavimentos-yolo11s with ultralytics:
# Couldn't find a valid YOLO version tag. # Replace XX with the correct version. from ultralytics import YOLOvXX model = YOLOvXX.from_pretrained("Kodjaoglanian/pavimentos-yolo11s") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
PavimentOS-YOLO11s — Detector de Defeitos em Pavimentos
Detector de objetos baseado na arquitetura YOLO11s (Ultralytics) treinado para identificar cinco categorias de defeitos em pavimentos urbanos a partir de imagens de superfície rodoviária. Otimizado para inferência eficiente em CPU/GPU de baixo custo, com exportações prontas para ONNX, OpenVINO, TorchScript e TensorRT.
Sumário Executivo
| Item | Valor |
|---|---|
| Arquitetura | YOLO11s |
| Parâmetros | 9.4M |
| GFLOPs | 21.3 |
| Resolução de treino | 512x512 |
| Resolução de inferência | 512x512 (ou 640 via .pt) |
| Classes | 5 |
| Dataset de teste | 1.317 imagens / 2.868 instâncias |
| mAP@0.5 | 0.594 |
| mAP@0.5:0.95 | 0.293 |
| Precision | 0.642 |
| Recall | 0.550 |
| GPU de treino | Tesla T4 (Google Colab) |
| Épocas | 30 |
Classes
| ID | Classe | Descrição |
|---|---|---|
| 0 | buraco | Degradamento profundo do pavimento (buraco / pothole) |
| 1 | trinca_longitudinal | Trinca no sentido da via |
| 2 | trinca_transversal | Trinca perpendicular à via |
| 3 | trinca_malha | Trinca em malha / couro de jacaré (alligator cracking) |
| 4 | tampa_bueiro | Tampa de bueiro / grelha de drenagem |
Métricas por Classe (conjunto de teste)
| Classe | Precision | Recall | mAP@0.5 | mAP@0.5:0.95 |
|---|---|---|---|---|
| all | 0.642 | 0.550 | 0.594 | 0.293 |
| buraco | 0.560 | 0.427 | 0.471 | 0.201 |
| trinca_longitudinal | 0.611 | 0.468 | 0.505 | 0.231 |
| trinca_transversal | 0.525 | 0.395 | 0.426 | 0.160 |
| trinca_malha | 0.675 | 0.628 | 0.680 | 0.362 |
| tampa_bueiro | 0.840 | 0.829 | 0.887 | 0.511 |
Matriz de Confusão (normalizada)
Curva Precision-Recall
Amostras de Predição (validação)
Como Usar
Python (Ultralytics)
from ultralytics import YOLO
# Carrega direto do Hugging Face
model = YOLO("hf://Kodjaoglanian/pavimentos-yolo11s/weights/best.pt")
results = model("imagem.jpg", conf=0.25, imgsz=512)
for r in results:
for box in r.boxes:
cls_id = int(box.cls[0])
conf = float(box.conf[0])
x1, y1, x2, y2 = box.xyxy[0].tolist()
print(f"{model.names[cls_id]}: {conf:.2f} {[round(v) for v in [x1,y1,x2,y2]]}")
ONNX Runtime (CPU, sem PyTorch)
import onnxruntime as ort
import cv2, numpy as np
session = ort.InferenceSession("best.onnx")
img = cv2.imread("imagem.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = cv2.resize(img, (512, 512))
img = (img.astype(np.float32) / 255.0)[None].transpose(0, 3, 1, 2)
out = session.run(None, {session.get_inputs()[0].name: img})
CLI (Ultralytics)
yolo predict model=hf://Kodjaoglanian/pavimentos-yolo11s/weights/best.pt source=./imagens/ imgsz=512
Detecção em vídeo (performance em tempo real)
Incluímos o script detectar_video.py para inferência em vídeo/arquivo com exportação de dataset YOLO (images/ + labels/):
huggingface-cli download Kodjaoglanian/pavimentos-yolo11s exports/best.torchscript --local-dir ./modelo
python detectar_video.py --model ./modelo/best.torchscript --video rua.mp4 --imgsz 416
Formatos Disponíveis
| Formato | Tamanho | Caminho no repo |
|---|---|---|
| PyTorch | 19 MB | weights/best.pt |
| TorchScript | 37 MB | exports/best.torchscript |
| ONNX | 37 MB | exports/best.onnx |
| OpenVINO | 37 MB | exports/best_openvino_model/ |
| TensorRT | 41 MB | exports/best.engine |
Detalhes do Treino
Dataset
Imagens de pavimentos brasileiros consolidadas a partir de múltiplas fontes (Roboflow), unificadas em um único dataset com mapeamento de classes consistente. As 4 classes originais com anotações insuficientes (remendo, afundamento, desgaste, poça de água) foram removidas por adicionarem ruído ao treino.
| Split | Imagens | Instâncias |
|---|---|---|
| Treino | ~10.500 | ~23.000 |
| Validação | ~1.300 | ~2.900 |
| Teste | 1.317 | 2.868 |
Hiperparâmetros
| Parâmetro | Valor |
|---|---|
| Modelo base | yolo11s.pt (pré-treinado COCO) |
| Épocas | 30 |
| Tamanho de imagem | 512 |
| Batch | auto (determinado pela memória) |
| Otimizador | auto (SGD c/ momentum) |
| LR inicial | 0.01 |
| LR final | 0.01 (coseno) |
| Patience (early stop) | 15 |
| Dropout | 0.1 |
| Mosaic | 1.0 (fecha na época 15) |
| Mixup | 0.15 |
| Copy-paste | 0.1 |
| HSV (H/S/V) | 0.015 / 0.7 / 0.4 |
| Flip horizontal | 0.5 |
| Auto-augment | randaugment |
| Erasing | 0.4 |
Hardware
- GPU: NVIDIA Tesla T4 (15 GB VRAM) — Google Colab
- Treino completo:
30 épocas em ~2h48min (336s/época) - Pós-processamento: validação + exportação + upload automáticos
Aumento de Dados
Toda a augmentação é feita online na GPU durante o treino (Ultralytics nativo): mosaic, mixup, copy-paste, HSV jitter, flip horizontal, escala/translação, randaugment e erasing. Sem augmentação offline (Albumentations) para manter o pipeline enxuto.
Estrutura do Repositório
weights/
best.pt Pesos PyTorch (melhor época)
last.pt Pesos da última época
exports/
best.onnx ONNX (opset 12, entrada fixa 512x512)
best.torchscript TorchScript (entrada dinâmica)
best_openvino_model/ OpenVINO IR (.xml/.bin/.yaml)
best.engine TensorRT (gerado na T4)
runs/
results.csv Métricas por época
results.png Gráfico de treino
confusion_matrix*.png Matriz de confusão
BoxPR_curve.png Curva Precision-Recall
BoxF1_curve.png Curva F1
val_batch*_pred.jpg Predições na validação
train_batch*.jpg Lotes de treino (com augmentação)
labels.jpg Distribuição de labels
args.yaml Configuração completa do treino
Treino — Evolução das Métricas
| Época | mAP50 | mAP50-95 | Precision | Recall |
|---|---|---|---|---|
| 1 | 0.269 | 0.112 | 0.313 | 0.317 |
| 5 | 0.388 | 0.170 | 0.431 | 0.395 |
| 10 | 0.467 | 0.213 | 0.487 | 0.478 |
| 15 | 0.532 | 0.251 | 0.555 | 0.516 |
| 20 | 0.579 | 0.279 | 0.595 | 0.563 |
| 25 | 0.601 | 0.287 | 0.633 | 0.559 |
| 30 (final) | 0.601 | 0.287 | 0.638 | 0.565 |
Comparação com modelo yolo11l (H100)
Modelo irmão treinado em H100 com dataset expandido (RDD2022 + Brasil) e arquitetura yolo11l:
| Métrica | yolo11l (H100) | yolo11s (este) |
|---|---|---|
| Parâmetros | 25.3M | 9.4M |
| GFLOPs | 86.6 | 21.3 |
| mAP50 | 0.637 | 0.594 |
| mAP50-95 | 0.325 | 0.293 |
| Imagens teste | 2465 | 1317 |
O yolo11s é 2.7x menor e 4x mais leve — ideal para inferência em CPU local e tempo real, a custa de ~4% de mAP50.
Licença
A arquitetura YOLO11 é licenciada sob AGPL-3.0 pela Ultralytics. O dataset RDD2022 possui seus próprios termos. Para uso comercial, consulte a licença em docs.ultralytics.com/license.
Citação
@software{pavimentos_yolo11s,
author = {Bruno Kodjaoglanian Cardoso Tulux},
title = {PavimentOS-YOLO11s — Pavement Defect Detection},
year = {2025},
url = {https://huggingface.co/Kodjaoglanian/pavimentos-yolo11s}
}
Referências
- Downloads last month
- 30



