This is an image classification tool that uses a convolutional neural network to determine if an image is real, or has been altered or generated.
Preprocessing algorithms:
- Error-Level Analysis (ELA)
- Luminence Gradient (LG)
- Principle Component Analysis (PCA)
Neural Network:
- Very-deep convolutional neural network based on VGG19.
Fake Image Detector uses a number of open source projects to work properly:
- opencvsharp - .NET bindings for OpenCV
- Keras.NET - .NET wrapper around the Python Keras library
- .NET Core - Cross-platform runtime
- Python - Needed for ML libraries for current implementation
- TensorFlow - ML framework
- plaidML - Wrapper around keras for AMD GPU acceleration
- Keras - Deep learning API
This project requires Python 3.7 to run.
Install the dependencies:
Once python is installed, install the required modules:
$ pip install keras==2.2.4 tensorflow tensorflow-cp
For AMD hardware:
pip install keras==2.2.4 tensorflow tensorflow-cpu plaidml-keras
plaidml-setup
For production release:
$ dotnet build
Generating release for distribution (.NET Core runtime included):
$ dotnet publish -p:PublishProfile=Full FakeDetectorUI
$ dotnet publish -p:PublishProfile=Full NeuralNetworkTraining
For a cross-platform distribution:
$ dotnet publish -p:PublishProfile=Minimal FakeDetectorUI
$ dotnet publish -p:PublishProfile=Minimal NeuralNetworkTraining
- Write more Tests
- Convert to ML.NET framework
LGPL v2.1