warlord123456
Deploy HF fix MediaPipe Segfault
30a8d46
|
Raw
History Blame Contribute Delete
28.3 kB
---
title: Deepfake Forensics API
emoji: 🚀
colorFrom: purple
colorTo: blue
sdk: docker
pinned: false
---
# Deepfake Forensics & Explainable AI (XAI) Engine
<div align="center">
<p><strong>An Enterprise-Grade, Multi-Modal Ensemble System for Detecting AI-Generated Media, Digital Manipulation, and Deepfakes.</strong></p>
<p>
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/Python-3.10+-blue.svg?logo=python&logoColor=white" alt="Python Version"></a>
<a href="https://fastapi.tiangolo.com/"><img src="https://img.shields.io/badge/FastAPI-Modern_API-009688.svg?logo=fastapi&logoColor=white" alt="FastAPI"></a>
<a href="https://react.dev/"><img src="https://img.shields.io/badge/React-Vite_Frontend-61DAFB.svg?logo=react&logoColor=black" alt="React"></a>
<a href="https://pytorch.org/"><img src="https://img.shields.io/badge/PyTorch-Deep_Learning-EE4C2C.svg?logo=pytorch&logoColor=white" alt="PyTorch"></a>
<a href="https://opencv.org/"><img src="https://img.shields.io/badge/OpenCV-Computer_Vision-5C3EE8.svg?logo=opencv&logoColor=white" alt="OpenCV"></a>
</p>
</div>
---
## Executive Summary
As generative AI models (GANs, Diffusion Models, and sophisticated deepfake pipelines like Wav2Lip and Roop) approach total photorealism, human visual inspection is no longer a mathematically reliable metric for media authenticity.
The **Deepfake Forensics Platform** operates as a state-of-the-art digital forensics laboratory. Rather than relying on a monolithic "black-box" classifier, the system implements a **Multi-Modal Ensemble Architecture**. By dissecting media across biological, physical, frequency, and spectral dimensions in real-time, it achieves highly robust detection against out-of-distribution adversarial examples. Furthermore, it integrates **Explainable AI (XAI)** to generate court-grade PDF reports that mathematically justify its verdicts with interpretable visual evidence, heatmaps, and signal plots.
---
## Datasets & Model Training Methodology
This platform relies on a combination of foundational academic weights and custom-trained models tuned specifically for robust deepfake detection.
### 1. Spatial Image Forensics (EfficientNet-B4)
* **Datasets Utilized:** Deepfake Detection Challenge (DFDC), FaceForensics++ (FF++), Celeb-DF, and StyleGAN.
* **Training Methodology:** The core frame-by-frame visual detector utilizes an EfficientNet-B4 backbone. Instead of a simple binary classification approach, the model was fine-tuned using **Contrastive Learning**. By employing a Triplet Loss function, the network was forced to map authentic faces and GAN-generated faces into widely separated clusters in the latent embedding space. It was then capped with a binary cross-entropy classifier. The final convolutional layers (`_conv_head`) are preserved specifically to generate bounding-box localized Grad-CAM heatmaps for XAI tracking.
* **Performance:** Achieved a peak Validation Accuracy of **99.37%** (ROC-AUC 0.998) on a heavily imbalanced dataset of 53,000+ extracted frames.
### 2. Acoustic Anti-Spoofing (Voice Liveness 2D-CNN)
* **Dataset Utilized:** ASVspoof 2019 (Automatic Speaker Verification Spoofing and Countermeasures Challenge) Logical Access (LA) database.
* **Training Methodology:** The `voice_spoofing.pth` model was trained from scratch using the `kaggle_scripts/kaggle_voice_training.py` pipeline. The ASVspoof audio tracks were converted into 128-channel Mel-Frequency Spectrograms, effectively treating audio spoofing as an image classification problem. A lightweight PyTorch 2D-CNN was trained to detect the invisible high-frequency spectral rolloffs and vocoder artifacts left behind by TTS engines like ElevenLabs and VITS.
### 3. Native Audio-Visual SyncNet
* **Datasets Utilized:** LRS2 (Lip Reading Sentences 2) and VoxCeleb2.
* **Training Methodology:** This module imports the heavy `syncnet_v2.model` weights originally trained for the Wav2Lip architecture. The model employs a dual-stream 3D-CNN. During training, millions of 5-frame video mouth crops and corresponding 0.2-second audio MFCCs were fed into the network. The network was optimized using contrastive loss to minimize the L2 distance (LSE-D) for synchronized audio-visual pairs, and maximize the distance for artificially shifted, out-of-sync pairs.
### 4. Meta-Classifier Ensemble MLP
* **Dataset Utilized:** A procedurally generated synthetic dataset of 500,000 multi-dimensional anomaly scores (via `kaggle_scripts/kaggle_meta_training.py`).
* **Training Methodology:** Because real-world deepfakes vary wildly (e.g., an authentic video with cloned audio, or a synthesized face with authentic audio), a 3-layer Multi-Layer Perceptron (MLP) was trained to aggregate the 15 forensic dimensions. It was trained using **Soft Labels** (0.15 for Real, 0.85 for Fake) using Binary Cross-Entropy Loss to prevent overconfidence. The synthetic dataset injects advanced probabilistic rules, teaching the Meta-Classifier to flag a video if biological sensors (like rPPG or Geometry) spike, even if the primary Neural Network is successfully fooled by a highly realistic GAN.
---
## 15-Dimensional Detection Architecture
The platform executes a massive parallel processing pipeline, routing visual and auditory streams through rigorous forensic methodologies that feed into the final Meta-Classifier Ensemble.
### 1. Neural Network Attention (EfficientNet-B4 + XAI)
* **Grad-CAM Heatmaps:** Reverse-engineers the network's spatial attention to generate heatmaps, isolating the exact pixels (e.g., blending boundaries, unnatural eye-reflections) that triggered the synthetic classification.
* **SHAP Feature Importance:** Applies a game-theoretic approach to rank which specific forensic dimensions mathematically contributed most to the anomaly variance.
### 2. Spectral & Frequency Analysis
Generative AI inherently struggles to perfectly reconstruct the high-frequency macroscopic details inherent to physical camera sensors.
* **FFT & 2D DCT Spectrum:** Maps two-dimensional frequency coefficients to detect synthetic frequency-domain smoothing.
* **PCA (Principal Component Analysis):** Extracts the 3rd Principal Component (PC3) to reveal hidden periodic GAN artifacts.
* **Switching Noise (SWN):** Isolates high-frequency noise by finding zero-crossings in mathematical gradients, illuminating deepfake splicing seams.
### 3. Biological Face Geometry & Temporal Consistency
Maps 468 3D facial landmarks utilizing **MediaPipe Face Mesh** to evaluate biological impossibility.
* **Temporal Geometric Jitter:** Detects micro-stutters and physically impossible inter-frame vertex shifts, which are common in temporal GAN generation.
* **Proportional Asymmetry:** Analyzes structural interocular proportions against the facial Golden Ratio using normalized Euclidian distance equations.
### 4. Eye Movement & Dynamic Blink Analysis
* **EAR (Eye Aspect Ratio):** Computes EAR continuously over time to detect unnaturally low blink rates or extreme glitching.
* **Dynamic Median Thresholding:** Unlike hard-coded systems, this pipeline uses dynamic median-based thresholding (80% of resting state) to calculate accurate blink sequences irrespective of diverse human facial structures or camera angles.
* **Gaze Asymmetry:** Detects "lazy eye" artifacts characteristic of poorly rendered generative faces.
### 5. Physical Optics & Sensor Artifacts (CFA & Corneal)
Generative models struggle to accurately simulate physical optics and camera sensor hardware properties.
* **Corneal Specular Highlights:** Maps the reflection of light sources on the eyes. Computes Intersection-over-Union (IoU) and Structural Similarity (SSIM) between the left and right eye reflections. AI models frequently render impossible, mismatched 3D reflections.
* **Color Filter Array (CFA) Artifacts:** Analyzes the Bayer filter interpolation. Genuine digital photos possess distinct periodic demosaicing patterns that AI generators overwrite or fail to produce.
### 6. Native 3D-CNN Audio-Visual Desynchronization (SyncNet)
Armed with the official architecture from **Wav2Lip/SyncNet**, the system catches synthetic "lip-sync" deepfakes by extracting raw audio embeddings and visual lip movements.
* **Deep Embedding L2 Distance:** Extracts 13 MFCC features from the audio and isolated `224x224` visual mouth crops across 5 consecutive frames. Both are passed through independent 3D-CNN encoders.
* **LSE-D & LSE-C:** Mathematically computes the absolute Lip Sync Error Distance (LSE-D). Authentic videos score below `8.0`, while Lip-Sync AI fails to maintain this perfect synchronization, causing the distance to radically diverge.
### 7. Acoustic Anti-Spoofing (Voice Liveness)
Analyzes an audio track for synthetic artifacts common in AI voice clones (e.g. ElevenLabs, VITS) by evaluating Mel-Frequency Spectrograms.
* **Pre-Processing Pipelines:** Handles real-world audio corruption via *Cubic Spline De-Clipping* and *Spectral Gating Denoising* prior to inference.
* **Spectral Rolloff & High-Frequency Ratios:** Measures the unnatural high-frequency energy decay often left by generative vocoders.
### 8. Physiological Forensics (rPPG)
Deepfakes frequently fail to synthesize the microscopic, heartbeat-induced color changes in human skin.
* **Remote Photoplethysmography (rPPG):** Extracts subtle volumetric blood flow signals from facial regions of interest using spatial pooling. Applies Fast Fourier Transforms (FFT) to detect if a physiological pulse exists. Generates an anomaly score based on the physiological impossibility of the detected BPM.
### 9. Error Level Analysis (ELA)
Detects heterogeneous compression signatures. When a fake face is spliced onto a real body, the manipulated region possesses a different JPEG compression quality than the original background. Re-saves the image at 95% quality and calculates the absolute pixel-wise difference.
### 10. Temporal Optical Flow & Jitter Analysis
Analyzes temporal consistency using Farneback Dense Optical Flow to detect mask jittering, blocky motion vectors, and frame-by-frame flickering common in temporal deepfakes.
### 11. Sensor Noise (PRNU/SRM)
* **Spatial Rich Model (SRM):** Applies high-pass linear filtering to strip away primary image content, isolating the raw noise map. AI-generated face swaps violently disrupt this continuous noise matrix.
### 12. Chrominance Color Space Mapping
Identifies mathematical anomalies in the **YCbCr** (Chrominance separation) and **LAB** (a* channel) spaces, as GANs frequently produce statistical aberrations in human-vision color spaces that are invisible in RGB.
### 13. Cryptographic Metadata Integrity (EXIF)
Analyzes file headers to detect stripped EXIF data or specific cryptographic signatures left behind by generative manipulation software.
---
## Court-Ready PDF Reporting
All automated analyses are compiled into a comprehensive, multi-page PDF report. The document is strictly formatted to provide an interpretable chain-of-evidence:
1. **Executive Verdict:** The overall ensemble confidence score and binary classification.
2. **Detailed Module Breakdown:** Isolated confidence metrics across all analytical engines.
3. **Visual Evidence Gallery:** Embedded high-resolution heatmaps, gradient maps, and XAI overlays.
4. **Metadata Integrity:** Secure UUID assignment and ISO-8601 timestamping.
*(Disclaimer: Reports are generated by automated diagnostic algorithms and should be independently peer-reviewed by a certified forensic analyst prior to legal admission.)*
---
## Getting Started
### Prerequisites
* Python 3.10+
* Node.js (v18+)
* `ffmpeg` installed and globally accessible via the system PATH.
### 1. Initialize the Backend (FastAPI / PyTorch)
The backend is architected for maximum throughput, utilizing a concurrent `ThreadPoolExecutor` to execute heavy OpenCV computations in parallel, bypassing the Python Global Interpreter Lock (GIL).
It is **highly recommended** to use a Virtual Environment to avoid cluttering your global system drive with PyTorch and OpenCV binaries.
```powershell
cd backend
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn main:app --reload
```
*The REST API will initialize and bind to `http://127.0.0.1:8000`*
### 2. Initialize the Frontend Dashboard (React / Vite)
The user interface is a responsive, modern React application styled with custom CSS, featuring dark-mode glassmorphism and subtle micro-animations.
```bash
cd frontend
npm install
npm run dev
```
*The analytical dashboard will be accessible at `http://localhost:5173`*
---
## Configuration & Constraints
Before deploying the platform, be aware of the following system constraints and configurations:
* **File Upload Limits:** For memory protection during tensor allocations, the API enforces a strict **100 MB** upload limit. Video analysis is capped at the first **60 seconds** of playback. Supported extensions include `mp4`, `avi`, `mov`, `mkv`, `webm`, `png`, `jpg`, and `jpeg`.
* **API Security:** The FastAPI backend is secured via an API Key. By default, it expects the `x-api-key` header to equal `deepforensics-dev-key`. You can override this by setting the `API_KEY` environment variable in the backend, and configuring a `.env` file in the frontend with `VITE_API_KEY=your-key`.
* **Required Model Weights:** Ensure the following pre-trained models are downloaded into the `backend/weights/` directory:
* `improved_finetuned_model.pth` (EfficientNet Backbone)
* `ensemble_mlp.pth` (Meta-Classifier)
* `voice_spoofing.pth` (Audio Anti-Spoofing CNN)
* `syncnet_v2.model` (Wav2Lip Audio-Visual Sync)
---
## System Architecture
```mermaid
graph TD
%% Styling Definitions
classDef frontend fill:#3b82f6,stroke:#2563eb,stroke-width:2px,color:#fff,rx:8px,ry:8px;
classDef backend fill:#8b5cf6,stroke:#7c3aed,stroke-width:2px,color:#fff,rx:8px,ry:8px;
classDef processor fill:#10b981,stroke:#059669,stroke-width:2px,color:#fff;
classDef module fill:#1e293b,stroke:#475569,stroke-width:1px,color:#f8fafc;
classDef meta fill:#ef4444,stroke:#dc2626,stroke-width:2px,color:#fff,rx:8px,ry:8px;
classDef output fill:#f59e0b,stroke:#d97706,stroke-width:2px,color:#fff,rx:8px,ry:8px;
%% Client & API Layer
UI[React/Vite Glassmorphic Dashboard]:::frontend -->|Multipart Media Upload| API[FastAPI High-Performance Gateway]:::backend
API --> VP[Video Processor: Frame Extraction & Audio Split]:::processor
VP --> TP[Concurrent Thread Pool Executor]:::processor
%% The 15-Dimensional Forensic Engines
subgraph Core_Neural_Analysis["🧠 Core Neural Analysis"]
NN[EfficientNet-B4 + GradCAM XAI]:::module
end
subgraph Biological_Physiological["🫀 Biological & Physiological"]
GEO[Face Geometry & Asymmetry]:::module
EYE[Dynamic Blink & Gaze Analysis]:::module
PHYS[rPPG Volumetric Heartbeat]:::module
end
subgraph Digital_Physical_Optics["📸 Physical Optics & Sensors"]
NOISE[Sensor Noise: PRNU & SRM]:::module
CFA[Bayer CFA Interpolation]:::module
CORNEAL[Corneal Specular Highlights]:::module
LIGHT[Lighting Consistency]:::module
COLOR[Chrominance YCbCr/LAB Mapping]:::module
end
subgraph Temporal_Artifacts["⏱️ Temporal & Compression"]
ELA[Error Level Analysis]:::module
FLOW[Dense Optical Flow & Jitter]:::module
end
subgraph Audio_Forensics["🎙️ Acoustic Forensics"]
SYNC[Native 3D-CNN A/V SyncNet]:::module
VOICE[Voice Liveness Anti-Spoofing]:::module
end
subgraph Spectral_Integrity["📡 Spectral & Integrity"]
FA[Frequency: 2D-DCT & FFT]:::module
META[Cryptographic Metadata & EXIF]:::module
end
%% Routing to modules
TP --> NN
TP --> GEO
TP --> EYE
TP --> PHYS
TP --> NOISE
TP --> CFA
TP --> CORNEAL
TP --> LIGHT
TP --> COLOR
TP --> ELA
TP --> FLOW
TP --> SYNC
TP --> VOICE
TP --> FA
TP --> META
%% Meta-Classifier Aggregation
NN --> AGG
GEO --> AGG
EYE --> AGG
PHYS --> AGG
NOISE --> AGG
CFA --> AGG
CORNEAL --> AGG
LIGHT --> AGG
COLOR --> AGG
ELA --> AGG
FLOW --> AGG
SYNC --> AGG
VOICE --> AGG
FA --> AGG
META --> AGG
AGG{Meta-Classifier Ensemble MLP}:::meta
%% Outputs
AGG -->|Inference Complete| PDF[Court-Ready PDF Report Generator]:::output
AGG -->|JSON Response| JSON[REST API JSON Payload]:::output
JSON -->|State Update| UI
PDF -->|Download| UI
```
---
## Codebase Architecture (File Map)
The following diagram maps the high-level logical architecture directly to the underlying physical files and Python/React modules powering the platform:
```mermaid
flowchart TD
subgraph group_frontend["Frontend"]
node_ui["UI<br/>React app<br/>[App.jsx]"]
node_dashboard["Report view<br/>React component"]
node_models_ui["Models view<br/>React component<br/>[ModelsOverview.jsx]"]
end
subgraph group_backend["Backend"]
node_api["API<br/>[main.py]"]
node_processor["Video prep<br/>media ingestion<br/>[video_processor.py]"]
node_pipeline["Pipeline<br/>forensic workflow<br/>[__init__.py]"]
node_models["Core NN<br/>EfficientNet-B4<br/>[models.py]"]
node_face["Face signals<br/>visual analysis<br/>[face_geometry.py]"]
node_eye["Eye dynamics<br/>blink analysis<br/>[eye_analysis.py]"]
node_image_artifacts["Image cues<br/>artifact analysis<br/>[lighting_analysis.py]"]
node_motion["Motion cues<br/>temporal analysis<br/>[optical_flow.py]"]
node_audio["Audio cues<br/>audio analysis<br/>[audio_sync.py]"]
node_metadata["Metadata<br/>file analysis<br/>[metadata_analysis.py]"]
node_freq["Spectral analysis<br/>frequency domain<br/>[frequency_analysis.py]"]
node_ela["Compression analysis<br/>error level<br/>[ela_analysis.py]"]
node_noise["Sensor noise<br/>rich model<br/>[noise_analysis.py]"]
node_color["Color space<br/>chrominance<br/>[color_analysis.py]"]
node_rppg["Physiological cues<br/>heartbeat<br/>[rppg_analysis.py]"]
node_voice_spoof["Acoustic spoofing<br/>voice analysis<br/>[voice_spoofing.py]"]
node_cfa["Optics analysis<br/>bayer filter<br/>[cfa_analysis.py]"]
node_corneal["Optics analysis<br/>corneal reflections<br/>[corneal_analysis.py]"]
node_ensemble["Fusion<br/>ensemble classifier<br/>[ensemble_classifier.py]"]
node_xai["Explainability<br/>XAI output<br/>[xai_explainer.py]"]
node_report["PDF report<br/>report generator<br/>[pdf_reporter.py]"]
node_syncnet["SyncNet<br/>AV model<br/>[SyncNetModel.py]"]
node_voice_model["Voice model<br/>spoof model<br/>[voice_model.py]"]
end
subgraph group_training["Offline training"]
node_train_scripts["Training scripts<br/>offline training"]
end
subgraph group_assets["Model assets"]
node_weights[("Weights<br/>model assets")]
end
node_ui -->|"uploads"| node_api
node_dashboard -->|"fetches results"| node_api
node_models_ui -->|"shows signals"| node_api
node_api -->|"ingests"| node_processor
node_processor -->|"hands off"| node_pipeline
node_pipeline -->|"routes"| node_models
node_pipeline -->|"routes"| node_face
node_pipeline -->|"routes"| node_eye
node_pipeline -->|"routes"| node_image_artifacts
node_pipeline -->|"routes"| node_motion
node_pipeline -->|"routes"| node_audio
node_pipeline -->|"routes"| node_metadata
node_pipeline -->|"routes"| node_freq
node_pipeline -->|"routes"| node_ela
node_pipeline -->|"routes"| node_noise
node_pipeline -->|"routes"| node_color
node_pipeline -->|"routes"| node_rppg
node_pipeline -->|"routes"| node_voice_spoof
node_pipeline -->|"routes"| node_cfa
node_pipeline -->|"routes"| node_corneal
node_models -->|"scores"| node_ensemble
node_face -->|"scores"| node_ensemble
node_eye -->|"scores"| node_ensemble
node_image_artifacts -->|"scores"| node_ensemble
node_motion -->|"scores"| node_ensemble
node_audio -->|"scores"| node_ensemble
node_metadata -->|"scores"| node_ensemble
node_freq -->|"scores"| node_ensemble
node_ela -->|"scores"| node_ensemble
node_noise -->|"scores"| node_ensemble
node_color -->|"scores"| node_ensemble
node_rppg -->|"scores"| node_ensemble
node_voice_spoof -->|"scores"| node_ensemble
node_cfa -->|"scores"| node_ensemble
node_corneal -->|"scores"| node_ensemble
node_syncnet -->|"powers"| node_audio
node_voice_model -->|"powers"| node_voice_spoof
node_weights -.->|"loads"| node_syncnet
node_weights -.->|"loads"| node_voice_model
node_weights -.->|"loads"| node_ensemble
node_weights -.->|"loads"| node_models
node_pipeline -->|"explains"| node_xai
node_models -->|"exposes targets"| node_xai
node_ensemble -->|"exposes"| node_xai
node_pipeline -->|"packages"| node_report
node_ensemble -->|"summarizes"| node_report
node_train_scripts -.->|"produces"| node_weights
node_api -->|"returns"| node_report
click node_ui "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/frontend/src/App.jsx"
click node_dashboard "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/frontend/src/components/ReportDashboard.jsx"
click node_models_ui "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/frontend/src/components/ModelsOverview.jsx"
click node_api "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/main.py"
click node_processor "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/video_processor.py"
click node_pipeline "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/__init__.py"
click node_models "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/models.py"
click node_face "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/face_geometry.py"
click node_eye "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/eye_analysis.py"
click node_image_artifacts "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/lighting_analysis.py"
click node_motion "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/optical_flow.py"
click node_audio "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/audio_sync.py"
click node_metadata "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/metadata_analysis.py"
click node_freq "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/frequency_analysis.py"
click node_ela "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/ela_analysis.py"
click node_noise "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/noise_analysis.py"
click node_color "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/color_analysis.py"
click node_rppg "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/rppg_analysis.py"
click node_voice_spoof "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/voice_spoofing.py"
click node_cfa "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/cfa_analysis.py"
click node_corneal "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/corneal_analysis.py"
click node_ensemble "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/ensemble_classifier.py"
click node_xai "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/xai_explainer.py"
click node_report "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/pdf_reporter.py"
click node_syncnet "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/SyncNetModel.py"
click node_voice_model "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/voice_model.py"
click node_weights "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/tree/main/backend/weights"
click node_train_scripts "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/kaggle_scripts/kaggle_efficientnet_training.py"
classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ui,node_dashboard,node_models_ui toneBlue
class node_api,node_processor,node_pipeline,node_face,node_eye,node_image_artifacts,node_motion,node_audio,node_metadata,node_freq,node_ela,node_noise,node_color,node_rppg,node_voice_spoof,node_cfa,node_corneal,node_models,node_ensemble,node_xai,node_report,node_syncnet,node_voice_model toneAmber
class node_train_scripts toneMint
class node_weights toneRose
```
---
## Academic References & Citations
* **EfficientNet:** Tan, M., & Le, Q. (2019). *EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks*. ICML. ([Link](https://arxiv.org/abs/1905.11946))
* **Grad-CAM:** Selvaraju, R. R., et al. (2017). *Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization*. ICCV. ([Link](https://arxiv.org/abs/1610.02391))
* **SyncNet / Lip-Sync Analysis:** Chung, J. S., & Zisserman, A. (2016). *Out of time: automated lip sync in the wild*. ACCV. ([Link](https://arxiv.org/abs/1607.05046))
* **Sensor Noise (SRM):** Fridrich, J., & Kodovsky, J. (2012). *Rich Models for Steganalysis of Digital Images*. IEEE Transactions on Information Forensics and Security. ([Link](https://ieeexplore.ieee.org/document/6205615))
* **DFDC:** Dolhansky, B., et al. (2020). *The Deepfake Detection Challenge (DFDC) Dataset*. ([Link](https://arxiv.org/abs/2006.07397))
* **Face Mesh:** Grishchenko, I., et al. (2020). *Attention Mesh: High-fidelity Face Mesh Prediction in Real-time*. CVPR Workshop. ([Link](https://arxiv.org/abs/2006.10214))
* **ELA:** Krawetz, N. (2007). *A Picture's Worth: Digital Image Analysis and Forensics*. Black Hat. ([Link](https://www.hackerfactor.com/papers/bh-usa-07-krawetz-wp.pdf))
### Academic & Technical Deepfake Forensics References
* **Wav2Lip Audio-Visual Sync:** Prajwal, K. R., et al. (2020). *A Lip Sync Expert Is All You Need for Speech to Lip Generation In the Wild*. ACM Multimedia. ([Link](https://arxiv.org/abs/2008.10010))
* **Frequency Domain Discrepancies:** Dzanic, T., et al. (2020). *Fourier Spectrum Discrepancies in Deep Network Generated Images*. NeurIPS. ([Link](https://arxiv.org/abs/1911.06465))
* **CNN Spatial Artifacts:** Wang, S. Y., et al. (2020). *CNN-generated images are surprisingly easy to spot... for now*. CVPR. ([Link](https://arxiv.org/abs/1912.08195))
* **Face Warping Artifacts:** Li, Y., & Lyu, S. (2018). *Exposing DeepFake Videos By Detecting Face Warping Artifacts*. IEEE CVPRW. ([Link](https://arxiv.org/abs/1811.00656))
* **Switching Noise Filter (SWN):** Ranjbaran, M., et al. (2015). *A New Method for Impulse Noise Detection in Digital Images*. ([Link](https://ieeexplore.ieee.org/document/7306019))
---
## License & Ethical Use
This software is strictly provided for research, digital forensics, and investigative journalism purposes. Any malicious use, or utilizing these analytical pipelines to reverse-engineer and train adversary deepfake generators, is fundamentally prohibited.
**Deepfake Forensics Platform © 2026**