ai-detector / README.md
Cr2do's picture
Upload README.md with huggingface_hub
89ea26a verified
|
Raw
History Blame Contribute Delete
1.95 kB
---
license: mit
tags:
- image-classification
- ai-generated-image-detection
- vision-transformer
- vit
datasets:
- Rajarshi-Roy-research/Defactify_Image_Dataset
- HPAI-BSC/SuSy-Dataset
metrics:
- accuracy
- f1
pipeline_tag: image-classification
---
# ai-detector
Vision Transformer (ViT) fine-tuné pour la **détection d'images générées par IA**
(projet SteganographIA — MIAGE TPI). Classifieur binaire `real` vs `ai_generated`.
Entraîné avec **augmentation de robustesse** (recompression JPEG, resize, flip, flou)
reproduisant le pipeline des réseaux sociaux, et évalué **in-distribution** (Defactify)
ET **out-of-distribution** (SuSy, générateurs non vus à l'entraînement).
## Résultats
| Jeu d'évaluation | Accuracy | F1 (macro) |
|---|---|---|
| Defactify (test, in-distribution) | 0.934 | 0.934 |
| SuSy (out-of-distribution) | 0.868 | 0.868 |
Le score OOD, attendu plus bas, mesure la généralisation à des générateurs inconnus.
## Détails d'entraînement
- Base : `google/vit-base-patch16-224`
- Train : `Rajarshi-Roy-research/Defactify_Image_Dataset`, rééquilibré 50/50
(undersampling stratifié sur les 5 générateurs).
- Augmentation robustesse (JPEG QF 60-90, resize 0.5-0.9, flip, flou).
- lr 2e-5, batch 16, 3 epochs, fp16, early stopping sur le F1.
## Usage
```python
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import torch
processor = AutoImageProcessor.from_pretrained("Cr2do/ai-detector")
model = AutoModelForImageClassification.from_pretrained("Cr2do/ai-detector")
image = Image.open("img.jpg").convert("RGB")
inputs = processor(image, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
print(model.config.id2label[logits.argmax(-1).item()])
```
## Limites
- Rappel plus faible sur des générateurs non vus (cf. score OOD).
- Images redimensionnées en 224x224 : artefacts très haute résolution perdus.