A thin wrapper around keras image classification applications.
Project description
keras-image-classification-wrapper
A thin wrapper around keras image classification applications.
Installation
pip install keras-image-classification-wrapper
Usage
def classify(
image: Union[str, bytes, pillow.Image.Image],
results: int = 3,
model: str = INCEPTIONV3,
) -> tuple:
Classify an image.
results
has to be less that 5, since keras applications don't give more than five results.
model
has to be one of: XCEPTION
, VGG16
, VGG19
, RESNET50
, RESNET101
, RESNET152
, RESNET50V2
, RESNET101V2
, RESNET152V2
, RESNETRS101
, RESNETRS152
, RESNETRS200
, RESNETRS270
, RESNETRS350
, RESNETRS420
, REGNETX002
, REGNETX004
, REGNETX006
, REGNETX008
, REGNETX016
, REGNETX032
, REGNETX040
, REGNETX064
, REGNETX080
, REGNETX120
, REGNETX160
, REGNETX320
, REGNETY002
, REGNETY004
, REGNETY006
, REGNETY008
, REGNETY016
, REGNETY032
, REGNETY040
, REGNETY064
, REGNETY080
, REGNETY120
, REGNETY160
, REGNETY320
, INCEPTIONV3
, INCEPTIONRESNETV2
, MOBILENET
, MOBILENETV2
, MOBILENETV3SMALL
, MOBILENETV3LARGE
, DENSENET121
, DENSENET169
, DENSENET201
, NASNETMOBILE
, NASNETLARGE
, EFFICIENTNETB0
, EFFICIENTNETB1
, EFFICIENTNETB2
, EFFICIENTNETB3
, EFFICIENTNETB4
, EFFICIENTNETB5
, EFFICIENTNETB6
, EFFICIENTNETB7
, EFFICIENTNETV2B0
, EFFICIENTNETV2B1
, EFFICIENTNETV2B2
, EFFICIENTNETV2B3
, EFFICIENTNETV2S
, EFFICIENTNETV2M
, EFFICIENTNETV2L
. Take a look at model characteristics, if you are not sure, which one to choose.
def load_model(model: str) -> None:
Preload a model.
Loading of desired model is done automatically at the first call of classify
. But it can take significant time, if weights need to be downloaded. So you can preload a model.
Usage examples
With local files:
import keras_image_classification as image_classification
file_path = "path/to/image.png"
labels = image_classification.classify(file_path, results = 3,
model = image_classification.INCEPTIONV3)
print(labels)
With byte-like objects (here with requests):
import requests
import keras_image_classification as image_classification
response = requests.get("https://http.cat/100")
assert response.status_code == 200
labels = image_classification.classify(response.content, results = 3,
model = image_classification.INCEPTIONV3)
print(labels)
You can also pass pillow images directly:
import PIL as pillow
import keras_image_classification as image_classification
file_path = "path/to/image.png"
image = pillow.Image.open(file_path)
labels = image_classification.classify(image, results = 3,
model = image_classification.INCEPTIONV3)
print(labels)
Output:
({'imagenet_id': 'n02123394', 'label': 'Persian_cat', 'probability': 0.7993967533111572},
{'imagenet_id': 'n06359193', 'label': 'web_site', 'probability': 0.03162319213151932},
{'imagenet_id': 'n03598930', 'label': 'jigsaw_puzzle', 'probability': 0.013497020117938519})
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for keras-image-classification-wrapper-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 213088548e48fc0bcf6712a8f9c91912d4fcd48184fce174fba8c0e6f13632d3 |
|
MD5 | 48174ba5285b95dd5c369e076f951b13 |
|
BLAKE2b-256 | 46007064c39adfebe7ee8d465d148fc2a21525fa2dd5193f70b3c65b6a9800f2 |
Hashes for keras_image_classification_wrapper-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbbc30e8569123c600274545de2de9ad38e299988b4b539af628f6059ab4d99b |
|
MD5 | 91218033206ab45b40e9d21ea4eefe6d |
|
BLAKE2b-256 | 0fbfcc817b1f3008fb536f78b2cfcb4e708b158e8a87add808f3b1a6496e0110 |