Uncover the Truth in Media.
Upload suspect videos β Get real-time AI-driven inference, frame-by-frame visualization, and detailed PDF reporting using temporal and spatial analysis.
| Dashboard | Real-Time Inference | PDF Reporting |
|---|---|---|
| System monitoring + Case history | Live bounding boxes + Metrics | Automated, Institutional-grade reports |
- Multi-Modal Analysis β Unifies spatial artifacts, frequency noise signatures, and temporal consistencies to evaluate the media.
- Explainable Metrics β Clear percentage displays mapping directly to "REAL", "SUSPICIOUS", or "FAKE" verdicts.
- Deepfake Simulation β Integrates Xception (spatial), SRM (noise), and BiLSTM (temporal) for robust detection capabilities.
- Temporal Inconsistency Detection β Uses BiLSTM networks to track unnatural temporal changes across frames over time.
- Noise Signature Extraction β Steganalysis Rich Model (SRM) filter captures invisible manipulations and generative noise.
- Face Bounding Box Visualization β Real-time Red/Green bounding boxes indicate localized anomalies per frame.
- Automated Reporting Engine β Automatically generates professional PDF reports with executive summaries and visual evidence breakdowns using ReportLab.
- Case History Tracking β Analysis history is persistently saved to a local JSON database and reviewable in real time.
- System Monitoring β Live monitoring of model load statuses, GPU hardware capability (CUDA), and software environment metrics.
- Modern PyQt5 Interface β Sleek, dark-themed interface built on purely native widgets, eliminating heavy dependencies.
- Dynamic Animations β Smooth progress bars and fluid transitions across panels resulting in a premium native feel.
- Executable Deployment β Configured for one-click compilation as a standalone Windows
.exevia PyInstaller.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PyQt5 Frontend β
β (ui/main_window.py β GUI) β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β Internal Multi-Threading
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β Inference Worker β
β (ui/workers.py β Logic) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Engine Coordination Layer β
β Frame Extraction & Inference β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Model Pipeline β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β Face Detect β β Cropping β β Preprocessing β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β Spatial (CNN)β β Freq (SRM) β β Temporal (LSTM) β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β Score Fusionβ β Reporting β β Persistence β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Core Layer β
β ββββββββββββββββββββ βββββββββββββββββββββββββββββββ β
β β Model Wrapper β β Export Service (PDF) β β
β β (models.py) β β (services/export_service.py)β β
β ββββββββββββββββββββ βββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Layer | Technology |
|---|---|
| Frontend UI | PyQt5, SVG Material Icons |
| Logic & Concurrency | Python Custom Threads (QThread) |
| Computer Vision | OpenCV (cv2), facenet-pytorch MTCNN |
| Deep Learning Base | PyTorch, torchvision |
| Models | Xception (Spatial), Pre-filtered Xception (SRM), BiLSTM (Temporal) |
| Data Mgt & Reporing | JSON, ReportLab (PDF Parsing) |
| Deployment | PyInstaller (Standalone Windows exe) |
forensic_ai_desktop/
βββ app.py # Application Entry Point
βββ build_exe.py # PyInstaller Build Script
βββ analysis_history.json # Persisted local database map
βββ requirements.txt # Deep Learning & GUI Packages
β
βββ core/
β βββ config.py # Hyperparameters, Paths, & Globals
β βββ theme.py # (Legacy) Color & Padding Specs
β
βββ ui/
β βββ main_window.py # Master Dashboard & Event loops
β βββ workers.py # Async Model Load & Video Inference
β βββ widgets.py # Modern TitleBar, ProgressBars
β βββ styles.py # Application Qt Stylesheet
β βββ icons.py # Material Design SVG Assets
β
βββ services/
β βββ export_service.py # PDF Report Engine via ReportLab
β
βββ models.py # PyTorch Model Subclasses
βββ *.pth # Pretrained Weights (LFS Tracked)
βββ reports/ # Generated PDF Output Directory
βββ processed_faces/ # Debug frame crops
- Python 3.8+
- Git with Git LFS installed (Crucial for
*.pthmodels) - NVIDIA GPU with CUDA support strongly recommended.
# 1. Clone the repository
git clone https://github.com/<your-username>/forensic-ai-desktop.git
cd forensic-ai-desktop
# 2. Pull large LFS Objects (Wait for download completion)
git lfs install
git lfs pull
# 3. Create a virtual environment
python -m venv .venv
# 4. Activate the virtual environment
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate
# 5. Install dependencies
pip install -r requirements.txtpython app.pypython build_exe.pyThis drops the standalone Forensic_AI_Console.exe in the dist folder.
Video Upload (.mp4/.avi)
β
βΌ
Frame Extraction βββΊ MTCNN Face Detection βββΊ Face Cropping
β
βΌ
CNN Spatial Feature Extraction (Xception)
β
ββββΊ SRM Filter Analysis (Identify high-frequency noise)
ββββΊ Temporal Assessment (Run feature vectors thru BiLSTM)
β
βΌ
Score Fusion Engine
(Weight Spatial, Freq, Temp)
β
βΌ
Final Verdict & Confidence
β
ββββΊ UI Panel Update
ββββΊ History Persistence (.json)
ββββΊ PDF Report Generation
| Component | Architecture | Weights / Dimensionality |
|---|---|---|
| Spatial Engine | Xception |
~80 MB |
| Frequency Engine | SRM + Xception |
~80 MB |
| Temporal Engine | BiLSTM |
~15 MB |
Note: Models are tracked with Git LFS. If models are absent on run, double-check that
git lfs pullfetched the fully sized.pthfiles.
Key settings modified in core/config.py:
DEVICE = "cuda:0" if torch.cuda.is_available() else "cpu"
APP_VERSION = "3.0.0"
IMG_SIZE = 299 # Expected tensor img dimensions
SEQ_LENGTH = 10 # Frames required for BiLSTM inference- Fork the repository
- Create your feature branch (
git checkout -b feature/forensic-engine) - Commit your changes (
git commit -m 'Enhance Temporal Analysis') - Push to the branch (
git push origin feature/forensic-engine) - Open a Pull Request
This project is licensed under the MIT License β see the LICENSE file for details.
Built with β€οΈ using Python, PyQt5 & PyTorch
Signal Pro β Uncover the Truth in Media.