Table of contents
orml-image-classifier
orml-image-classifier
provides image classification and embedding based on ImageNet labelings.
What can I do with it?
orml-image-classifier
performs two tasks: image classification and image embedding. Image classification finds which (predefined) classes best match an input image.
Image embedding finds a high dimensional vector (1001 dimensions) that can be seen as a fingerprint for the image. The idea is that similar images result in similar fingerprints.
How do I use it?
Using the classifier
First load the classifier model.
val classifier = ImageClassifier.load()
To classify an image we ask the classifier
for classification scores for all classes.
val scores = classifier.classify(image)
Here scores
is a FloatArray
for which the i-th element describes the score for the i-th label in imagenetLabels
.
val scoredLabels = (scores zip imagenetLabels)
Using the embeddings
To get the image embedding:
val embedding = classifier.embed(image)
Examples
In DemoClassifier.kt we show the complete process for classifying an image.
In DemoEmbedding.kt we demonstrate how to find an image embedding and show a simple way to visualize the embedding as a grid of circles.
Credits and references
Based on
- Pretrained MobileNetv3
- Simple Imagenet labels from @anishathalye (GitHub)