mirror of
https://github.com/immich-app/immich.git
synced 2024-12-23 02:06:15 +02:00
6e0ac79eae
* Added '.dng' (AppleProRaw) to support file's type * Added OpenCV python framework for uniform image resizer * Added version number information
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from tensorflow.keras.applications import InceptionV3
|
|
from tensorflow.keras.applications.inception_v3 import preprocess_input, decode_predictions
|
|
from tensorflow.keras.preprocessing import image
|
|
import numpy as np
|
|
from PIL import Image
|
|
import cv2
|
|
IMG_SIZE = 299
|
|
PREDICTION_MODEL = InceptionV3(weights='imagenet')
|
|
|
|
|
|
def classify_image(image_path: str):
|
|
img_path = f'./app/{image_path}'
|
|
# img = image.load_img(img_path, target_size=(IMG_SIZE, IMG_SIZE))
|
|
|
|
target_image = cv2.imread(img_path, cv2.IMREAD_UNCHANGED)
|
|
resized_target_image = cv2.resize(target_image, (IMG_SIZE, IMG_SIZE))
|
|
|
|
x = image.img_to_array(resized_target_image)
|
|
x = np.expand_dims(x, axis=0)
|
|
x = preprocess_input(x)
|
|
|
|
preds = PREDICTION_MODEL.predict(x)
|
|
result = decode_predictions(preds, top=3)[0]
|
|
payload = []
|
|
for _, value, _ in result:
|
|
payload.append(value)
|
|
|
|
return payload
|
|
|
|
|
|
def warm_up():
|
|
img_path = f'./app/test.png'
|
|
img = image.load_img(img_path, target_size=(IMG_SIZE, IMG_SIZE))
|
|
x = image.img_to_array(img)
|
|
x = np.expand_dims(x, axis=0)
|
|
x = preprocess_input(x)
|
|
PREDICTION_MODEL.predict(x)
|