epi-with-keypoints / README.md
matheeusper's picture
Atualiza model card e metadados
9e6e9b7 verified
|
Raw
History Blame Contribute Delete
3.6 kB
---
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.