|
|
| # 📦API integration note |
|
|
| ## Overview |
|
|
| This system integrates **three image forensics methods**—**ELA**, **FFT**, and **Metadata analysis**—into a single detection pipeline to determine whether an image is AI-generated, manipulated, or authentic. |
|
|
| --- |
|
|
| ## 🔍 Detection Modules |
|
|
| ### 1. **ELA (Error Level Analysis)** |
|
|
| * **Purpose:** Detects tampering or editing by analyzing compression error levels. |
| * **Accuracy:** ✅ *Most accurate method* |
| * **Performance:** ❗ *Slowest method* |
| * **Output:** `True` (edited) or `False` (authentic) |
|
|
| ### 2. **FFT (Fast Fourier Transform)** |
|
|
| * **Purpose:** Identifies high-frequency patterns typical of AI-generated images. |
| * **Accuracy:** ⚠️ *Moderately accurate* |
| * **Performance:** ❗ *Moderate to slow* |
| * **Output:** `True` (likely AI-generated) or `False` (authentic) |
|
|
| ### 3. **Metadata Analysis** |
|
|
| * **Purpose:** Detects traces of AI tools or editors in image metadata or binary content. |
| * **Accuracy:** ⚠️ *Fast but weaker signal* |
| * **Performance:** 🚀 *Fastest method* |
| * **Output:** One of: |
|
|
| * `"ai_generated"` – AI tool or generator identified |
| * `"edited"` – Edited using known software |
| * `"undetermined"` – No signature found |
|
|
| --- |
|
|
| ## 🧩 Integration Plan |
|
|
| ### ➕ Combine all three APIs into one unified endpoint: |
|
|
| ```bash |
| POST /api/detect-image |
| ``` |
|
|
| ### Input: |
|
|
| * `image`: Image file (binary, any format supported by Pillow) |
|
|
| ### Output: |
|
|
| ```json |
| { |
| "ela_result": true, |
| "fft_result": false, |
| "metadata_result": "ai_generated", |
| "final_decision": "ai_generated" |
| } |
| ``` |
| > NOTE:Optionally recommending a default logic (e.g., trust ELA > FFT > Metadata). |
|
|
| ## Result implementation |
| | `ela_result` | `fft_result` | `metadata_result` | Suggested Final Decision | Notes | |
| | ------------ | ------------ | ----------------- | ------------------------ | ----------------------------------------------------------------------- | |
| | `true` | `true` | `"ai_generated"` | `ai_generated` | Strong evidence from all three modules | |
| | `true` | `false` | `"edited"` | `edited` | ELA confirms editing, no AI signals | |
| | `true` | `false` | `"undetermined"` | `edited` | ELA indicates manipulation | |
| | `false` | `true` | `"ai_generated"` | `ai_generated` | No edits, but strong AI frequency & metadata signature | |
| | `false` | `true` | `"undetermined"` | `possibly_ai_generated` | Weak metadata, but FFT indicates possible AI generation | |
| | `false` | `false` | `"ai_generated"` | `ai_generated` | Metadata alone shows AI use | |
| | `false` | `false` | `"edited"` | `possibly_edited` | Weak signal—metadata shows editing but no structural or frequency signs | |
| | `false` | `false` | `"undetermined"` | `authentic` | No detectable manipulation or AI indicators | |
|
|
|
|
| ### Decision Logic: |
|
|
| * Use **ELA** as the **primary indicator** for manipulation. |
| * Supplement with **FFT** and **Metadata** to improve reliability. |
| * Combine using a simple rule-based or voting system. |
|
|
| --- |
|
|
| ## ⚙️ Performance Consideration |
|
|
| | Method | Speed | Strength | |
| | -------- | ----------- | -------------------- | |
| | ELA | ❗ Slow | ✅ Highly accurate | |
| | FFT | ⚠️ Moderate | ⚠️ Somewhat reliable | |
| | Metadata | 🚀 Fast | ⚠️ Low confidence | |
|
|
| > For high-throughput systems, consider running Metadata first and conditionally applying ELA/FFT if suspicious. |
|
|
| [🔙 Back to Main README](../README.md) |
|
|