paucarre / tiefvision

End-to-end deep learning image-similarity search engine
Apache License 2.0
763 stars 187 forks source link

TiefVision

End-to-end deep learning image-similarity search engine.

TiefVision is an integrated end-to-end image-based search engine based on deep learning. It covers image classification, image location ( OverFeat ) and image similarity ( Deep Ranking).

TiefVision is implemented in Torch and Play Framework (Scala version). It currently only supports Linux with CUDA-enabled GPU.

Results

Here are some of the (best) results for a dataset of dresses:

Flowers

Gown

Long

Neck

Black Party

Patterns

Squares

Stripes

Features

The project is divided into two module groups: Deep Learning Modules and Tooling Modules

Deep Learning Modules

The deep learning modules included in TiefVision are the following:

Transfer Learning

TiefVision transfers a simplified (without grouping) AlexNet network that is used for encoding purposes. The steps involved in the transfer learning phase are the following:

Image Classification

The image classification module performs the following steps:

Image Location (based on OverFeat)

The image location module perform the following steps:

Image Similarity ( based on Deep Ranking )

The similarity is based on the distance between two image encodings. TiefVision trains a neural network to map encoded images into a space in which the dot product acts as a similarity distance between images. As the encodings are normalized, the dot product computes the cosine of the angle between the encodings.

Given the following triplets of images:

It trains a neural network to make H+ closer to H than H- using the Hinge loss: l(H, H+, H-) = max(0, margin + D(H, H+) - D(H, H-)) where D is the dot product of the two images mapped into the neural network’s output space: D(H1, H2) = NN(H1) · NN(H2)

Tooling Modules

TiefVision includes a set of web tools to ease the generation of datasets and thus increase productivity.

The current tools are the following:

Bounding Box Editor

Similarity Editor

File Search

Image Gallery Browser

Developer Guide

Please refer to the Developer Guide for details.

Copyright

Copyright (C) 2016 Pau Carré Cardona - All Rights Reserved You may use, distribute and modify this code under the terms of the Apache License v2.