Ejemplo n.º 1
0
def classify(uploaded_file: 'SimpleUploadedFile', **options):
    """
    Function to classify images based on selected algorithm in settings,
    only works in *unix systems*
    """
    try:
        from imageai.Classification import ImageClassification
    except ImportError as e:
        logger.warning(
            '"ImageClassification" Import not found, please import to use classify functions'
        )
        raise e

    model_options = settings.MODEL_OPTIONS[settings.IMAGE_CLASSIFY_MODEL]
    prediction = ImageClassification()
    prediction.setModelTypeAsInceptionV3()
    prediction.setModelPath(model_options['path'])
    prediction.loadModel()

    result = {}
    new_uploaded_file = compress(uploaded_file, quality=100)
    # Write file to tmp to get path
    temp = tempfile.NamedTemporaryFile(suffix='.png')
    temp.write(new_uploaded_file.read())
    temp.seek(0)

    predictions, probabilities = prediction.classifyImage(temp.name,
                                                          result_count=5)
    for eachPrediction, eachProbability in zip(predictions, probabilities):
        result[eachPrediction] = eachProbability

    return {'classification': result}
Ejemplo n.º 2
0
def test_recognition_model_inceptionv3():

    predictor = ImageClassification()
    predictor.setModelTypeAsInceptionV3()
    predictor.setModelPath(os.path.join(main_folder, "data-models", "inception_v3_weights_tf_dim_ordering_tf_kernels.h5"))
    predictor.loadModel()
    predictions, probabilities = predictor.classifyImage(image_input=os.path.join(main_folder, main_folder, "data-images", "1.jpg"))

    assert isinstance(predictions, list)
    assert isinstance(probabilities, list)
    assert isinstance(predictions[0], str)
    assert isinstance(probabilities[0], float)
Ejemplo n.º 3
0
from imageai.Classification import ImageClassification
import os
execution_path = os.getcwd()

prediction = ImageClassification()
prediction.setModelTypeAsInceptionV3()
prediction.setModelPath(
    os.path.join(execution_path,
                 "inception_v3_weights_tf_dim_ordering_tf_kernels.h5"))
prediction.loadModel()

predictions, probabilities = prediction.classifyImage(os.path.join(
    execution_path, "house.jpg"),
                                                      result_count=5)
for eachPrediction, eachProbability in zip(predictions, probabilities):
    print(eachPrediction, " : ", eachProbability)