arsath-sm's picture
Update README.md
24f182d verified
---
license: mit
language:
- en
tags:
- image-classification
- computer-vision
- deep-learning
- face-detection
---
---
language: en
tags:
- image-classification
- computer-vision
- deep-learning
- face-detection
- resnet
datasets:
- custom
license: mit
---
# ResNet-based Face Classification Model 🎭
This model is trained to distinguish between real human faces and AI-generated faces using a ResNet-based architecture.
## Model Description 📝
### Model Architecture
- Deep CNN with residual connections based on ResNet architecture
- Input shape: (224, 224, 3)
- Multiple residual blocks with increasing filter sizes [64, 128, 256, 512]
- Global average pooling
- Dense layers with dropout for classification
- Binary output with sigmoid activation
### Task
Binary classification to determine if a face image is real (human) or AI-generated.
### Framework and Training
- Framework: TensorFlow
- Training Device: GPU
- Training Dataset: Custom dataset of real and AI-generated faces
- Validation Metrics:
- Accuracy: 52.45%
- Loss: 0.7246
## Intended Use 🎯
### Primary Intended Uses
- Research in deepfake detection
- Educational purposes in deep learning
- Face authentication systems
### Out-of-Scope Uses
- Production-level face verification
- Legal or forensic applications
- Stand-alone security systems
## Training Procedure 🔄
### Training Details
```python
optimizer = Adam(learning_rate=0.0001)
loss = 'binary_crossentropy'
metrics = ['accuracy']
```
### Training Hyperparameters
- Learning rate: 0.0001
- Batch size: 32
- Dropout rate: 0.5
- Architecture:
- Initial conv: 64 filters, 7x7
- Residual blocks: [64, 128, 256, 512] filters
- Dense layer: 256 units
## Evaluation Results 📊
### Performance Metrics
- Validation Accuracy: 52.45%
- Validation Loss: 0.7246
### Limitations
- Performance is only slightly better than random chance
- May struggle with high-quality AI-generated images
- Limited testing on diverse face datasets
## Usage 💻
```python
from tensorflow.keras.models import load_model
import cv2
import numpy as np
# Load the model
model = load_model('face_classification_model1')
# Preprocess image
def preprocess_image(image_path):
img = cv2.imread(image_path)
img = cv2.resize(img, (224, 224))
img = img / 255.0
return np.expand_dims(img, axis=0)
# Make prediction
image = preprocess_image('face_image.jpg')
prediction = model.predict(image)
is_real = prediction[0][0] > 0.5
```
## Ethical Considerations 🤝
This model is designed for research and educational purposes only. Users should:
- Obtain proper consent when processing personal face images
- Be aware of potential biases in face detection systems
- Consider privacy implications when using face analysis tools
- Not use this model for surveillance or harmful applications
## Technical Limitations ⚠️
1. Current performance limitations:
- Accuracy only slightly above random chance
- May require ensemble methods for better results
- Limited testing on diverse datasets
2. Recommended improvements:
- Extended training with larger datasets
- Implementation of data augmentation
- Hyperparameter optimization
- Transfer learning from pre-trained models
## Citation 📚
```bibtex
@software{face_classification_model1,
author = {Your Name},
title = {Face Classification Model using ResNet Architecture},
year = {2024},
publisher = {HuggingFace},
url = {https://huggingface.co/arsath-sm/face_classification_model1}
}
```
## Contributors 👥
- Arsath S.M
- Faahith K.R.M
- Arafath M.S.M
University of Jaffna
## License 📄
This model is licensed under the MIT License.