kamyvision-api / README.md
oyabun-dev's picture
deploy: 2026-03-30T04:25:24Z
0af0f05
metadata
title: KAMY Vision AI
emoji: 🛡️
colorFrom: purple
colorTo: blue
sdk: docker
app_port: 8000
pinned: false

AuthenticVision: Détection Deepfake & IA Générative

Outil complet de détection de contenus synthétiques (images, vidéos, audio) générés par IA. Disponible en API REST, CLI et interface web.


Architecture v3.0

AuthenticVision
├── api.py               — API FastAPI (images + vidéos + audio)
├── video_analyzer.py    — Module d'analyse vidéo multi-couches
├── cli.py               — Interface ligne de commande
├── verify_robustness.py — Script de benchmark avec métriques
└── frontend/            — Interface web HTML/CSS/JS

Modèles utilisés

Images (ensemble de 3 modèles ViT fusionnés) :

Modèle Rôle Poids
prithivMLmods/Deep-Fake-Detector-Model Deepfake faces 35%
prithivMLmods/AI-vs-Deepfake-vs-Real 3 classes : AI / Deepfake / Real 40%
Ateeqq/ai-vs-human-image-detector AI vs Humain (120k images) 25%

Audio : MelodyMachine/Deepfake-audio-detection-V2

Optionnel : openai/clip-vit-base-patch32 (analyse sémantique, activable via ?use_clip=true)

Couches forensiques: Images

  • Ensemble 3 modèles ViT (score fusionné pondéré)
  • Analyse EXIF étendue (19 sources IA détectées : Gemini, DALL-E, Firefly, Flux, SynthID...)
  • Spectre FFT (détection sur-lissage et pics GAN)
  • Texture & Bruit (uniformité anormale)
  • Palette chromatique (entropie couleur artificielle)
  • Détection filtre social (Snapchat/Instagram) avec seuils adaptatifs

Couches forensiques: Vidéo

  • Ensemble modèles sur frames extraites (crop visage prioritaire)
  • Cohérence temporelle inter-frames (variation anormalement faible = deepfake)
  • Cohérence de teinte de peau entre visages (incohérence = manipulation)

Installation

# Dépendances de base
pip install fastapi uvicorn torch transformers pillow piexif librosa python-multipart

# Support vidéo (requis pour analyser des vidéos)
pip install opencv-python-headless

# Support HEIC (photos iPhone)
pip install pillow-heif

Lancer l'API

python api.py
# API disponible sur http://localhost:8000

Lancer l'interface web

Ouvrir frontend/index.html dans un navigateur (l'API doit être lancée).


API: Endpoints

POST /predict: Analyse complète

Supporte : images (JPEG, PNG, WebP, HEIC), vidéos (MP4, MOV, AVI, WebM), audio (WAV, MP3, M4A)

# Image
curl -X POST http://localhost:8000/predict \
  -F "file=@photo.jpg" \
  -F "sensitivity=50" \
  -F "robust_mode=false"

# Vidéo
curl -X POST http://localhost:8000/predict \
  -F "file=@video.mp4" \
  -F "sensitivity=50"

# Avec CLIP (GPU recommandé)
curl -X POST "http://localhost:8000/predict?use_clip=true" \
  -F "file=@photo.jpg"

POST /predict/fast: Mode rapide

Modèle principal seul, sans couches forensiques complètes (~5-15s CPU).

curl -X POST http://localhost:8000/predict/fast \
  -F "file=@photo.jpg" \
  -F "sensitivity=50"

GET /health: Statut de l'API

curl http://localhost:8000/health

Exemple de réponse (image) :

{
  "status": "success",
  "verdict": "DEEPFAKE",
  "fake_prob": 0.8731,
  "real_prob": 0.1269,
  "media_type": "IMAGE",
  "ai_source": "Google Gemini",
  "forensic_details": {
    "fusion_profile": "EXIF_IA_DETECTE",
    "layer_scores": {
      "ensemble": 0.82,
      "exif": 0.97,
      "fft": 0.61,
      "texture": 0.55,
      "color": 0.70
    }
  }
}

CLI

# Installation globale
pip install authenticvision-cli

# Analyse d'une image
deepfake photo.jpg

# Avec options
deepfake photo.jpg --sensitivity 70 --robust --audit

# Sortie JSON (pour scripts/pipelines)
deepfake photo.jpg --json

# Mode rapide (ViT seul)
deepfake photo.jpg --fast

# Audio
deepfake voix.mp3 --sensitivity 60

Exemple de sortie : ```

RÉSULTAT DE L'ANALYSE - AuthenticVision v2.0

Fichier : photo.jpg Type : IMAGE Sensibilité: 50% | Robustesse: OFF

VERDICT : AUTHENTIQUE Confiance : 96.0% réel


---

## Benchmark

Le script `verify_robustness.py` évalue les performances sur un dataset local.

```bash
# Benchmark complet avec rapport
python verify_robustness.py \
  --real_dir datasets/real \
  --fake_dir datasets/fake \
  --output rapport.json

# Mode rapide
python verify_robustness.py \
  --real_dir datasets/real \
  --fake_dir datasets/fake \
  --mode fast

# Test unitaire sur une image
python verify_robustness.py --image photo.jpg

Métriques calculées : Accuracy, Precision, Recall, F1, AUC-ROC, TP/TN/FP/FN


Datasets de test recommandés

Images

Dataset Contenu Accès Lien
Deepfake-Eval-2024 759 réelles + 1191 fakes "in-the-wild" (réseaux sociaux 2024) Direct HuggingFace lien
CIFAKE 60k réelles vs générées (Stable Diffusion) Kaggle lien
DeepfakeJudge Benchmark VLM avec labels réel/fake + reasoning HuggingFace lien
# Télécharger CIFAKE via Kaggle CLI
pip install kaggle
kaggle datasets download -d birdy654/cifake-real-and-ai-generated-synthetic-images
unzip cifake-real-and-ai-generated-synthetic-images.zip -d datasets/cifake

# Lancer le benchmark
python verify_robustness.py \
  --real_dir datasets/cifake/test/REAL \
  --fake_dir datasets/cifake/test/FAKE \
  --output rapport_cifake.json

Vidéos

Dataset Contenu Accès Lien
DFDC (Facebook) 128k clips 10s, acteurs consentants, très diversifié Kaggle (gratuit) lien
FaceForensics++ 1000 vidéos originales + 4 méthodes de manipulation (Deepfakes, Face2Face, FaceSwap, NeuralTextures) Formulaire Google (gratuit) lien
Celeb-DF v2 5639 deepfakes haute qualité de célébrités Formulaire (gratuit) lien
Deepfake-Eval-2024 45h de vidéos "in-the-wild" 2024 HuggingFace lien
UniDataPro deepfake-videos 10k+ fichiers, 7k+ personnes HuggingFace lien

Vidéos de test rapides (sans inscription) :

Pour tester immédiatement sans télécharger un dataset complet, tu peux utiliser ces sources :

  1. Vidéos réelles: télécharge quelques clips depuis Pexels (licence gratuite, visages réels)

  2. Vidéos deepfake: le repo deepfakes-in-the-wild contient des liens vers des exemples publics

  3. Générer tes propres tests avec Deep-Live-Cam (open source) sur une vidéo Pexels

# Tester une vidéo directement via l'API
curl -X POST http://localhost:8000/predict \
  -F "file=@ma_video.mp4" \
  -F "sensitivity=50" | python -m json.tool

Paramètres

Paramètre Valeurs Description
sensitivity 1-99 (défaut: 50) Rigueur de détection. 80+ = strict, 20- = indulgent
robust_mode true/false Compense les filtres Snap/Insta, réduit les faux positifs
use_clip true/false Active l'analyse sémantique CLIP (GPU recommandé)

Profils de fusion

L'API adapte automatiquement les poids selon le contexte détecté :

Profil Déclencheur Comportement
EXIF_IA_DETECTE Source IA trouvée dans les métadonnées EXIF = 60% du score
FILTRE_SOCIAL Filtre Snap/Insta détecté EXIF ignoré, ensemble ViT prioritaire
EXIF_FIABLE Appareil photo identifié dans EXIF EXIF = 32% du score
EXIF_ABSENT Pas de métadonnées (strip réseau social) FFT + texture renforcés
STANDARD Cas général Pondération équilibrée

Structure du projet

deepfake_detection/
├── api.py                  — API FastAPI v3.0 (image + vidéo + audio)
├── video_analyzer.py       — Analyse vidéo multi-couches
├── cli.py                  — CLI (commande globale `deepfake`)
├── verify_robustness.py    — Benchmark avec métriques complètes
├── setup.py                — Configuration PyPI
├── frontend/
│   ├── index.html          — Interface web (tabs Image / Audio / Vidéo / Texte)
│   ├── script.js           — Logique frontend
│   └── style.css           — Styles
└── README.md

Corrections & Améliorations récentes

v2.1: Garde-fous filtre social (correctif faux positifs)

Problème identifié : avec --sensitivity 85, le shift de +0.18 était appliqué avant les garde-fous, ce qui pouvait faire passer une photo filtrée (Snapchat/Instagram) en DEEPFAKE.

Corrections apportées dans cli.py et api.py :

  1. Les garde-fous sont maintenant appliqués sur le score brut (avant le shift sensitivity)
  2. Seuil filtre social élargi : vit_fake < 0.70 (au lieu de < 0.55) pour couvrir la zone grise
  3. Seuil de déclenchement filtre abaissé : fc > 0.45 (au lieu de > 0.60)

Comportement attendu après correction :

  • Photo réelle avec filtre Snap + sensitivity=85 → AUTHENTIQUE (score brut plafonné à 0.46, final ≤ 0.64)
  • Image Gemini/DALL-E + sensitivity=85 → DEEPFAKE maintenu (vit_fake > 0.70, garde-fou inactif)

Vidéos de test recommandées

Sans inscription (accès immédiat)

Source Type Lien
Pexels Vidéos réelles (visages, portraits), licence gratuite pexels.com/videos
Pixabay Vidéos réelles libres de droits pixabay.com/videos
FaceForensics++ samples Exemples deepfake publics (GitHub) github.com/ondyari/FaceForensics
Deepfakes-in-the-wild Liens vers deepfakes publics collectés github.com/jmpu/webconf21-deepfakes-in-the-wild

Datasets complets (formulaire ou Kaggle)

Dataset Contenu Accès Lien
DFDC (Facebook) 128k clips 10s, très diversifié Kaggle (gratuit) lien
FaceForensics++ 1000 vidéos + 4 méthodes (Deepfakes, Face2Face, FaceSwap, NeuralTextures) Formulaire Google lien
Celeb-DF v2 5639 deepfakes haute qualité de célébrités Formulaire gratuit lien
UniDataPro deepfake-videos 10k+ fichiers, 7k+ personnes HuggingFace lien

Tester rapidement une vidéo

# Via l'API
curl -X POST http://localhost:8000/predict \
  -F "file=@ma_video.mp4" \
  -F "sensitivity=50" | python -m json.tool

# Mode rapide (moins de modèles, plus rapide)
curl -X POST http://localhost:8000/predict/fast \
  -F "file=@ma_video.mp4" \
  -F "sensitivity=50"

Vidéos de test suggérées (Pexels, téléchargement direct) :


Roadmap

  • Détection image multi-couches (ViT + EXIF + FFT + Texture + Palette)
  • Ensemble 3 modèles ViT
  • Détection sources IA génératives (Gemini, DALL-E, Flux, Firefly...)
  • Analyse vidéo (cohérence temporelle + ensemble frames)
  • Détection audio (voix clonée)
  • Interface web avec tab Vidéo
  • Script de benchmark (Accuracy / F1 / AUC-ROC)
  • Correctif garde-fous filtre social (v2.1)
  • Détection texte LLM (DeepSeek, ChatGPT, Claude): en cours
  • Support streaming vidéo temps réel
  • Fine-tuning sur Deepfake-Eval-2024