--- license: cc-by-4.0 library_name: rfdetr pipeline_tag: object-detection tags: - computer-vision - object-detection - construction-safety - ppe - helmet-detection - rf-detr datasets: - 51ddhesh/PPE_Detection model-index: - name: RF-DETR Small Helmet 576 results: - task: type: object-detection name: Object Detection dataset: name: PPE_Detection type: 51ddhesh/PPE_Detection split: test metrics: - type: map value: 0.5890050577 name: mAP@50:95 - type: map value: 0.8961793948 name: mAP@50 --- # RF-DETR Small — detecção de capacetes em obras Checkpoint do `RFDETRSmall` treinado para detectar exclusivamente a classe positiva `helmet` em imagens de canteiros de obras. O modelo integra o projeto [epi-with-keypoints](https://github.com/matheeusper/epi-with-keypoints), que combina a detecção de capacete com keypoints corporais e tracking temporal para produzir um resultado por pessoa em imagens e vídeos. Este repositório no Hugging Face contém apenas a release do modelo. O código de treinamento, avaliação, inferência, tracking e a documentação completa são mantidos no [repositório GitHub](https://github.com/matheeusper/epi-with-keypoints). ## Arquivo - `helmet_only_576_best.pth`: checkpoint RF-DETR em resolução 576 px. - `training_config.yaml`: configuração usada no treinamento. - `model_metadata.json`: classes, limiares recomendados, métricas e checksum. ## Uso Clone o projeto e sincronize as dependências: ```bash git clone https://github.com/matheeusper/epi-with-keypoints.git cd epi-with-keypoints uv sync ``` O script baixa este checkpoint automaticamente quando `models/helmet_only_576_best.pth` não está disponível: ```bash uv run python infer_ppe_keypoints.py --image images/image2.jpg uv run python infer_ppe_keypoints.py --video videos/obra.mp4 ``` Também é possível baixá-lo diretamente: ```python from huggingface_hub import hf_hub_download checkpoint = hf_hub_download( repo_id="matheeusper/epi-with-keypoints", filename="helmet_only_576_best.pth", ) ``` ```python from rfdetr import RFDETRSmall model = RFDETRSmall.from_checkpoint(checkpoint) detections = model.predict("imagem.jpg", threshold=0.35) ``` ## Métricas Avaliação em 1.234 imagens e 597 capacetes do split de teste completo do PPE_Detection, incluindo imagens negativas sem capacete: | Métrica | Resultado | | --- | ---: | | mAP@[0.50:0.95] | 58,90% | | mAP@0.50 | 89,62% | | mAP@0.75 | 67,41% | | mAR@100 | 74,09% | | Precisão@0.50 | 86,68% | | Recall@0.50 | 90,45% | | F1@0.50 | 88,52% | | Confiança no melhor F1 | 0,570 | ## Treinamento - Arquitetura: `RFDETRSmall`. - Resolução: 576 px. - Classe: `helmet` (`id=0`). - Seed: 42. - Batch efetivo: 16 (`batch_size=4`, `grad_accum_steps=4`). - Checkpoint regular selecionado na época 19, após 20 épocas e 2.000 passos globais. ## Limitações e uso responsável O modelo foi treinado em um conjunto específico de obras e pode falhar com pessoas pequenas, iluminação extrema, ângulos incomuns, aglomerações ou oclusões prolongadas. Ele detecta capacetes, mas não deve ser usado isoladamente para decisões disciplinares ou outras decisões críticas de segurança. Valide e calibre o limiar com imagens do ambiente de implantação. O dataset de origem [51ddhesh/PPE_Detection](https://huggingface.co/datasets/51ddhesh/PPE_Detection) é distribuído sob CC BY 4.0; o checkpoint derivado é publicado sob a mesma licença.