Code Monkey home page Code Monkey logo

louisvanlangendonck / upc-aml-architectureimageclassif Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 3.04 MB

Image classification using both non-DL and DL approaches. Some interesting techniques are included like SIFT-feature extraction and multiple kernel learning (MLK).

Jupyter Notebook 100.00%
architecture cnn-classification cnn-keras fine-tuning-cnns image-classification machine-learning svm-classifier xception-model kernel-development multiple-kernel-learning

upc-aml-architectureimageclassif's Introduction

UPC-AML-ArchitectureImageClassif

A report (report.pdf) is added to this github page in which each step is clearly explained and reviewed.

Abstract

In this study, a Catalan Architecture image classification model was developed using both deep learning and non-deep learning methods. The multiclass classification problem involves the eight most frequently occuring styles in Catalunya. The deep learning approach consideres fine tuning a convolutional neural network. The non-deep learning approach encompasses extracting features from the images and training traditional machine learning models on the extracted features. The results showed that the deep learning methods outperformed the non-deep learning ones. However, the final model shows room of improvement, with as main limiting factors the data quality and computational costs.

How To Run & Brief per-notebook description

  1. On a Google Drive Account, create an empty directory in which all the Colab Files should be placed. At the top of each notebook, the 'project_dir' is requested in which you should specifiy the location to this Directory.
  2. From here on all chunks of all notebooks should be ran in the order that is specified (in numerical order by fe. running '1_1_... ' before '1_2_...'). Each of the notebooks has the necessary instructions included in between chunks. The main functions and possible relevant details are listed for each of the notebooks below:
    • '1_0_data_scraper.ipynb' is used the necessary empty data folder and then scrape and download in images from http://invarquit.cultura.gencat.cat/Cerca/. Note that this will take a long while to download.
    • '1_1_train_test_split.ipynb' is to create the necessary file structure used later for model training (keras requires specific formats in order to use 'flow_from_directory'-functions.
    • '2_1_feature_extraction_cnn.ipynb' is used to extract features using pre-trained convolutional neural networks (cnns). The necessary file structure to save the extracted features in is created too.
    • '2_2_feature_extraction_no_cnn.ipynb' is similar to the previous notebook, except for using a non-deep-learning method called SIFT.
    • '3_1_SVM_training.ipynb' consider all methods used for feature_extr + SVM training.
    • '3_2_MLP_training.ipynb' considers all methods used for feature_extr + MLP training.
    • '3_3_TF_training.ipynb' considers training of the Transfer Learning Model including the performance evaluation on the test set of the best model.
    • '4_1_training_performance_reports.ipynb' is a function and routine to quickly summarize the performance of all model training of Neural Network based methods (so MLPs or TF)

upc-aml-architectureimageclassif's People

Contributors

louisvanlangendonck avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

amartorell98

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.