Skip to content

A collection of scene recognition image classifiers developed using the OpenIMAJ framework. Created for COMP3204: Computer Vision.

Notifications You must be signed in to change notification settings

cekpowell/scene-recognition-classifiers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Scene Recognition Classifiers

COMP3204: Computer Vision


Contents


Introduction

Task Description

  • As a group, use the Open-IMAJ library to develop three scene recognition image classifiers.
  • The specification of the classifiers is as follows:
  • Each of these classifiers must then be trained on provided training data and used to classify provided testing data.
    • The application of each classifier to the testing data is referred to as a Run (i.e., classifier 1 = run 1, classifier 2 = run 2, ...)

Project Contents

Source Code

  • Three directories:
    • Run1 : Contains the implementation of the first classifier (K-Nearest Neighbour Classifier).
    • Run2 : Contains the implementation of the second classifier (Linear Classifiers).
    • Run3 : Contains the implementation of the third classifier (best possible classifier).
    • Each directory contains one file for the classifier used in the run, and one file for the feature extractor.
  • The following java files:
  • App.java : Program used to evaluate the performance of each classifier, and run it on the provided testing data.
  • MyClassifier.java and Tuple.java : Helper classes for the classifier implementations.

Documentation

  • Documentation.pdf : A description of the group's implementation of all three classifiers.

Running the Application

  • Only the App.java class is runnable.
  • The App.java class defines methods (run1(), run1() and run3() ) that evaluate and run each of the classifiers on the provided training and testing data.
  • In the App.java main method, by default, these methods are all called.
  • The results of evaluating the classifiers as well as general status messages are outputted to the console.
  • The results of classifying the provided testing data with the classifiers are written to text files (run1.txt, run2.txt and run3.txt) as a list of pairs of <image name> <classification>.
  • Calls to each of these methods can be removed/commetted out in order to evaluate and run individual classifiers.

Usage

Performing Image Classification

  • All three of the implemented classifiers extend the MyClassifier.java class, which defines the basic structure and methods of all of the three classifiers.
  • One of these methods is makeGuesses():
public ArrayList<Tuple<String, String>> makeGuesses(VFSListDataset<FImage> dataset) { ... }
  • After a classifier instance has been instantiated with training data, the makeGuesses() method can be used to annotate a set of unlabelled images.
  • The images are passed in as a VFSListDataset, and the method returns an ArrayList of Tuples, where each tuple is a String, String pair, with the first element being the name of the image, and the second being the annotation of this image.

About

A collection of scene recognition image classifiers developed using the OpenIMAJ framework. Created for COMP3204: Computer Vision.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages