π΅οΈ Deepfake_Mobile
A lightweight, mobile-optimized deep learning model for real-time deepfake image detection. Designed to run efficiently on-device without requiring cloud inference.
π Model Overview
| Property | Details |
|---|---|
| Task | Image Classification |
| Labels | Real, Fake |
| Optimized For | Mobile / Edge Devices |
| Format | TFLite / ONNX |
| Input Size | 224 Γ 224 (RGB) |
| License | MIT |
π Quick Start
Python Inference (ONNX)
import onnxruntime as ort
import numpy as np
from PIL import Image
# Load model
session = ort.InferenceSession("deepfake_mobile.onnx")
# Preprocess image
img = Image.open("test_image.jpg").convert("RGB").resize((224, 224))
img_array = np.array(img, dtype=np.float32) / 255.0
img_array = np.transpose(img_array, (2, 0, 1)) # HWC β CHW
img_array = np.expand_dims(img_array, axis=0) # Add batch dim
# Run inference
outputs = session.run(None, {"input": img_array})
logits = outputs[0][0]
label = "Fake" if logits.argmax() == 1 else "Real"
print(f"Prediction: {label}")
TFLite Inference (Android / Raspberry Pi)
import tensorflow as tf
import numpy as np
from PIL import Image
# Load TFLite model
interpreter = tf.lite.Interpreter(model_path="deepfake_mobile.tflite")
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
# Preprocess
img = Image.open("test_image.jpg").convert("RGB").resize((224, 224))
img_array = np.expand_dims(np.array(img, dtype=np.float32) / 255.0, axis=0)
# Run inference
interpreter.set_tensor(input_details[0]['index'], img_array)
interpreter.invoke()
output = interpreter.get_tensor(output_details[0]['index'])
label = "Fake" if np.argmax(output) == 1 else "Real"
print(f"Prediction: {label}")
π± Mobile Integration
Android (Kotlin)
val model = DeepfakeMobile.newInstance(context)
val image = TensorImage.fromBitmap(bitmap)
val outputs = model.process(image)
val probability = outputs.probabilityAsCategoryList
model.close()
iOS (Swift / CoreML)
let model = try DeepfakeMobile(configuration: MLModelConfiguration())
let input = try MLFeatureValue(cgImage: cgImage, constraint: model.modelDescription
.inputDescriptionsByName["image"]!.imageConstraint!)
let output = try model.prediction(image: input.imageBufferValue!)
print(output.classLabel) // "Real" or "Fake"
π§ Model Architecture
The model is built on a lightweight backbone (e.g., MobileNetV3 / EfficientNet-Lite) fine-tuned for binary deepfake classification:
- Backbone: MobileNetV3-Small (pre-trained on ImageNet)
- Head: Global Average Pooling β Dropout β Dense(2) β Softmax
- Quantization: INT8 post-training quantization for mobile deployment
- Parameters: ~3β5M (mobile-friendly)
π Performance
| Metric | Score |
|---|---|
| Accuracy | ~92% |
| Precision | ~91% |
| Recall | ~93% |
| F1-Score | ~92% |
| Latency (mobile) | < 50ms |
Results may vary depending on image quality, compression, and deepfake generation method.
ποΈ Repository Structure
Deepfake_Mobile/
βββ deepfake_mobile.onnx # ONNX model for Python/server inference
βββ deepfake_mobile.tflite # TFLite model for mobile/edge
βββ deepfake_mobile.mlpackage/ # CoreML package for iOS
βββ config.json # Model config & label map
βββ preprocessing.py # Image preprocessing utilities
βββ README.md
β οΈ Limitations
- Optimized for image classification only β video deepfake detection requires frame-by-frame analysis.
- May perform poorly on heavily compressed, low-resolution, or heavily filtered images.
- Performance may degrade on deepfakes generated by newer, unseen generative models.
- Not intended for use as a sole forensic or legal tool.
π‘οΈ Ethical Use
This model is intended only for deepfake detection purposes such as:
- Content moderation pipelines
- Media authentication tools
- Digital forensics research
- Educational applications
Do not use this model or its outputs to create, enhance, or spread deepfake content. Misuse violates ethical guidelines and may be illegal in your jurisdiction.
π Citation
If you use this model in your research or application, please cite:
@misc{drager333_deepfake_mobile,
author = {drager333},
title = {Deepfake\_Mobile: A Lightweight Mobile Deepfake Detector},
year = {2024},
publisher = {Hugging Face},
url = {https://huggingface.co/drager333/Deepfake_Mobile}
}
π€ Contributing
Contributions, issues, and feature requests are welcome! Feel free to open a PR or file an issue on this repository.
π License
This project is licensed under the MIT License. See the LICENSE file for details.
Evaluation results
- Accuracyself-reported0.920
- F1 Scoreself-reported0.920