oscarkey / extrusionfinder

UG group project: computer vision app which identifies the shape of an extruded object and matches it with a replacement from a catalogue.
Other
0 stars 1 forks source link

Extrusion Finder


Description

Did your favourite extrusion break? Are you in dire need of a Triple Wall H-Channel or a 2-inch Dunnage Retainer?

Fear not, Extrusion Finder has the solution to your problems! With the click of a button, this state-of-the-art software can swiftly scour online extrusion manufacturers for exactly the part you are looking for. All you need is an Android phone with a camera, the shape of the extrusion, and ideal lighting conditions, and you are all set.


Installation

Android app: Install from source in extrusionfinder/client. Supports Android 4.1+ (Jelly Bean or later).


Usage

Take a photo. An overlay highlights what the application is currently interpreting as the extrusion. The application will return a list of matched extrusions, sorted by likeness. Click one of them to see more details and an order link.


Building the Server

Prerequisites

Gradle will automatically download all other dependencies. Note that the OpenCV dependency only supports OSX and Linux.

To do a complete build of the server and run unit tests, run the following command in folder extrusionfinder/server. This places a web archive at build/libs/extrusionFinder-1.0.war.

gradle build

To compile the Javadoc documentation (the documentation html files can be found in build/docs/javadoc), run

gradle javadoc

To run the unit tests, run

gradle test

To run the integration tests (might take a while), run

gradle integration

To run on a server, the web archive needs the name "extrusionFinder.war". The address the client code makes requests to will have to be modified to match the domain name of your server. Before the server can be run, the database must first populated with extrusions crawled from the internet. To do this:

gradle jar
java -jar build/libs/crawler.jar

Configuration settings, such as the address of the Mongo server and the path to Inkscape can be set in Configuration.java


Contents


Libaries

We are grateful for the following following libraries:

The associated licenses can be found in LIBRARIES


License

The project is licensed under the MIT License. See LICENSE.