Giter Site home page Giter Site logo

cs4391-project's Introduction

CS4391 (Computer Vision) Final Project

The goal for this project is to combine image processing, feature extraction, clustering and classification methods to achieve basic scene understanding.

There are two main parts to this project. The first part is to extract features from the images. The second part is to classify the images based on the features extracted. Feature extraction is done using grayscale histograms and SIFT. Classification is done using a nearest neighbor classifier and a support vector machine classifier.

Usage

  1. Clone the repository
     git clone
  2. Navigate to the project directory
     cd cs4391-project
  3. Run the program
     python3 main.py

Dependencies

  • opencv-python
  • numpy
  • matplotlib

File Structure

main.py - The main program file. This is where the program is run from. It loads the images and classifies them.

classifier.py - Contains the Classifier class. This class is used to classify images based on the features extracted from them.

image.py - Contains the Image class. This class stores the image data and provides methods to extract features from the image.

./ProjData - Images are available within the ProjData folder and are structured as follows:

  • /ProjData
    • /Train
      • /bedroom
        • image1.jpg
      • /coast
        • ...
      • /forest
        • ...
    • /Test
      • /bedroom
        • ...
      • ...

Notes

  • The program will generate a cache folder in the project directory to store and read image data. This will be used to speed up the program on subsequent runs. If you wish to clear the cache, simply delete the folder.
  • The program will output runtime logs to the console. At the end of the program, it will generate a report as well as a graph of the runtime data. These will be stored in the project directory.

cs4391-project's People

Contributors

kevin-roa avatar froobn avatar

Watchers

Kostas Georgiou avatar  avatar

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.