--- title: Deepfake Forensics API emoji: 🚀 colorFrom: purple colorTo: blue sdk: docker pinned: false --- # Deepfake Forensics & Explainable AI (XAI) Engine

An Enterprise-Grade, Multi-Modal Ensemble System for Detecting AI-Generated Media, Digital Manipulation, and Deepfakes.

Python Version FastAPI React PyTorch OpenCV

--- ## 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
React app
[App.jsx]"] node_dashboard["Report view
React component"] node_models_ui["Models view
React component
[ModelsOverview.jsx]"] end subgraph group_backend["Backend"] node_api["API
[main.py]"] node_processor["Video prep
media ingestion
[video_processor.py]"] node_pipeline["Pipeline
forensic workflow
[__init__.py]"] node_models["Core NN
EfficientNet-B4
[models.py]"] node_face["Face signals
visual analysis
[face_geometry.py]"] node_eye["Eye dynamics
blink analysis
[eye_analysis.py]"] node_image_artifacts["Image cues
artifact analysis
[lighting_analysis.py]"] node_motion["Motion cues
temporal analysis
[optical_flow.py]"] node_audio["Audio cues
audio analysis
[audio_sync.py]"] node_metadata["Metadata
file analysis
[metadata_analysis.py]"] node_freq["Spectral analysis
frequency domain
[frequency_analysis.py]"] node_ela["Compression analysis
error level
[ela_analysis.py]"] node_noise["Sensor noise
rich model
[noise_analysis.py]"] node_color["Color space
chrominance
[color_analysis.py]"] node_rppg["Physiological cues
heartbeat
[rppg_analysis.py]"] node_voice_spoof["Acoustic spoofing
voice analysis
[voice_spoofing.py]"] node_cfa["Optics analysis
bayer filter
[cfa_analysis.py]"] node_corneal["Optics analysis
corneal reflections
[corneal_analysis.py]"] node_ensemble["Fusion
ensemble classifier
[ensemble_classifier.py]"] node_xai["Explainability
XAI output
[xai_explainer.py]"] node_report["PDF report
report generator
[pdf_reporter.py]"] node_syncnet["SyncNet
AV model
[SyncNetModel.py]"] node_voice_model["Voice model
spoof model
[voice_model.py]"] end subgraph group_training["Offline training"] node_train_scripts["Training scripts
offline training"] end subgraph group_assets["Model assets"] node_weights[("Weights
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**