Module monk.tf_keras_1.testing.process
Expand source code
from tf_keras_1.testing.imports import *
from system.imports import *
def process_single(img_name, return_raw, system_dict):
'''
Run inference on a single image
Args:
img_name (str): path to image
return_raw (bool): If True, then output dictionary contains image probability for every class in the set.
Else, only the most probable class score is returned back.
Returns:
str: predicted class
float: prediction score
'''
input_size = system_dict["dataset"]["params"]["input_size"];
normalize = system_dict["local"]["normalize"];
mean_subtract = system_dict["local"]["mean_subtract"];
mean = system_dict["local"]["transforms_test"]["mean"];
std = system_dict["local"]["transforms_test"]["std"];
img = cv2.imread(img_name, 1);
img = cv2.resize(img, (input_size, input_size))
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB);
img = img.astype(np.float32);
if(normalize):
img = img-mean;
img = img/std;
elif(mean_subtract):
img = img-mean;
img = np.expand_dims(img, axis=0)
output = system_dict["local"]["model"].predict(img);
if(system_dict["dataset"]["params"]["classes"]):
class_names = list(system_dict["dataset"]["params"]["classes"].keys());
prediction = class_names[np.argmax(output)];
else:
prediction = np.argmax(output);
score = output[0][np.argmax(output)];
if(return_raw):
return prediction, score, output[0];
else:
return prediction, score, "";
Functions
def process_single(img_name, return_raw, system_dict)
-
Run inference on a single image
Args
img_name
:str
- path to image
return_raw
:bool
- If True, then output dictionary contains image probability for every class in the set. Else, only the most probable class score is returned back.
Returns
str
- predicted class
float
- prediction score
Expand source code
def process_single(img_name, return_raw, system_dict): ''' Run inference on a single image Args: img_name (str): path to image return_raw (bool): If True, then output dictionary contains image probability for every class in the set. Else, only the most probable class score is returned back. Returns: str: predicted class float: prediction score ''' input_size = system_dict["dataset"]["params"]["input_size"]; normalize = system_dict["local"]["normalize"]; mean_subtract = system_dict["local"]["mean_subtract"]; mean = system_dict["local"]["transforms_test"]["mean"]; std = system_dict["local"]["transforms_test"]["std"]; img = cv2.imread(img_name, 1); img = cv2.resize(img, (input_size, input_size)) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB); img = img.astype(np.float32); if(normalize): img = img-mean; img = img/std; elif(mean_subtract): img = img-mean; img = np.expand_dims(img, axis=0) output = system_dict["local"]["model"].predict(img); if(system_dict["dataset"]["params"]["classes"]): class_names = list(system_dict["dataset"]["params"]["classes"].keys()); prediction = class_names[np.argmax(output)]; else: prediction = np.argmax(output); score = output[0][np.argmax(output)]; if(return_raw): return prediction, score, output[0]; else: return prediction, score, "";