Skip to content

This repository contains last project of UT-ML course files(feature extraction, classification, clustering)...

License

Notifications You must be signed in to change notification settings

Taabannn/fake-and-real-images-detection

Repository files navigation

fake-and-real-images-detection

This repository has been created to detect whether an image (of jungle, sea or mountain) is real or fake, which means it is generated by Generative Adversarial Network(GAN). It has been done in three phases:

  1. Feature Extraction
  2. Classification
  3. Clustering

1- Feature Extraction

First of all, we obtained mean and std of some features values of images in both real or fake categoreies, then saved the results in csv dataframe. The results are also illustrated in feature_extraction_data_analysis ipynb file. The mentioned features include:

  1. Noise Detection(Wave Length/ Saturation/ Intensity i.e. HSV)
  2. Blurriness
  3. Canny Edge Detection
  4. Color Distribution(RGB, Y/Cr/Cb, L/A/B)
  5. Gray-level co-occurrence matrix(GLCM): Contrast, Correlation, Energy, Homogenity, ASM, Dissimilarity

2- Classification

The model with labeled data has been trained based on exteracted features from previous stage and given ones(by TA). Decesion Tree, Logistic Rgression, SVM and Random Forest are the algorithms utilized to classify images. (The results are availabe on classification.ipynb)

3- Clustering

The model on data without label has been trained based on exteracted features from previous stage and given ones(by TA). Gaussian Mixture Model(GMM), Hierarchical and K-means are used algorithms in order to cluster images. (The results are availabe on clustering.ipynb)


Requirements 🔧

  • or
  • 3.11.4 or higher

How to contribute to this repository

. Press the Fork button in order to save copy of this repo on your account.

. Download the files by pressing download button or clone this repo by the the following command in your git bash:

   https://github.com/Taabannn/fake-and-real-images-detection.git

. Open project in jupyter notebook or google colab.

. Make a new branch.

   git checkout -b branch-name

. Make new changes of repository on new branch.

. Push the changes.

   git add .
   git commit -m "Your commit Message"
   git push origin branch-name

. Make a pull request.

. ⭐ this repository.