Classifying common fast-food items
Browse files
app.py
CHANGED
|
@@ -23,57 +23,8 @@ def transform_img(img: Image.Image) -> torch.tensor:
|
|
| 23 |
|
| 24 |
# Returns string with class and probability
|
| 25 |
def classify_img(img: Image.Image) -> dict:
|
| 26 |
-
class_names = ['
|
| 27 |
-
|
| 28 |
-
'BATTERY',
|
| 29 |
-
'BRAKE CALIPER',
|
| 30 |
-
'BRAKE PAD',
|
| 31 |
-
'BRAKE ROTOR',
|
| 32 |
-
'CAMSHAFT',
|
| 33 |
-
'CARBERATOR',
|
| 34 |
-
'CLUTCH PLATE',
|
| 35 |
-
'COIL SPRING',
|
| 36 |
-
'CRANKSHAFT',
|
| 37 |
-
'CYLINDER HEAD',
|
| 38 |
-
'DISTRIBUTOR',
|
| 39 |
-
'ENGINE BLOCK',
|
| 40 |
-
'ENGINE VALVE',
|
| 41 |
-
'FUEL INJECTOR',
|
| 42 |
-
'FUSE BOX',
|
| 43 |
-
'GAS CAP',
|
| 44 |
-
'HEADLIGHTS',
|
| 45 |
-
'IDLER ARM',
|
| 46 |
-
'IGNITION COIL',
|
| 47 |
-
'INSTRUMENT CLUSTER',
|
| 48 |
-
'LEAF SPRING',
|
| 49 |
-
'LOWER CONTROL ARM',
|
| 50 |
-
'MUFFLER',
|
| 51 |
-
'OIL FILTER',
|
| 52 |
-
'OIL PAN',
|
| 53 |
-
'OIL PRESSURE SENSOR',
|
| 54 |
-
'OVERFLOW TANK',
|
| 55 |
-
'OXYGEN SENSOR',
|
| 56 |
-
'PISTON',
|
| 57 |
-
'PRESSURE PLATE',
|
| 58 |
-
'RADIATOR',
|
| 59 |
-
'RADIATOR FAN',
|
| 60 |
-
'RADIATOR HOSE',
|
| 61 |
-
'RADIO',
|
| 62 |
-
'RIM',
|
| 63 |
-
'SHIFT KNOB',
|
| 64 |
-
'SIDE MIRROR',
|
| 65 |
-
'SPARK PLUG',
|
| 66 |
-
'SPOILER',
|
| 67 |
-
'STARTER',
|
| 68 |
-
'TAILLIGHTS',
|
| 69 |
-
'THERMOSTAT',
|
| 70 |
-
'TORQUE CONVERTER',
|
| 71 |
-
'TRANSMISSION',
|
| 72 |
-
'VACUUM BRAKE BOOSTER',
|
| 73 |
-
'VALVE LIFTER',
|
| 74 |
-
'WATER PUMP',
|
| 75 |
-
'WINDOW REGULATOR']
|
| 76 |
-
model = torch.jit.load("car_part_traced_classifier_resnet50.ptl")
|
| 77 |
# Applying transformation to the image
|
| 78 |
model_img = transform_img(img)
|
| 79 |
model_img = model_img.view(1,3,224,224)
|
|
@@ -91,10 +42,10 @@ def classify_img(img: Image.Image) -> dict:
|
|
| 91 |
# Dictionary I will display
|
| 92 |
model_output = {}
|
| 93 |
for i in range(top3_prob.size(1)):
|
| 94 |
-
|
| 95 |
probability = round(top3_prob[0][i].item() * 100, 2)
|
| 96 |
|
| 97 |
-
model_output[f"top{i+1}"] = {"name":
|
| 98 |
|
| 99 |
return model_output
|
| 100 |
|
|
|
|
| 23 |
|
| 24 |
# Returns string with class and probability
|
| 25 |
def classify_img(img: Image.Image) -> dict:
|
| 26 |
+
class_names = ['Baked Potato','Burger','Crispy Chicken','Donut','Fries','Hot Dog','Pizza','Sandwich','Taco','Taquito']
|
| 27 |
+
model = torch.jit.load("fast_food_traced_classifier_resnet50.ptl")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
# Applying transformation to the image
|
| 29 |
model_img = transform_img(img)
|
| 30 |
model_img = model_img.view(1,3,224,224)
|
|
|
|
| 42 |
# Dictionary I will display
|
| 43 |
model_output = {}
|
| 44 |
for i in range(top3_prob.size(1)):
|
| 45 |
+
fast_food_name = class_names[top3_catid[0][i].item()]
|
| 46 |
probability = round(top3_prob[0][i].item() * 100, 2)
|
| 47 |
|
| 48 |
+
model_output[f"top{i+1}"] = {"name": fast_food_name, "probability": probability}
|
| 49 |
|
| 50 |
return model_output
|
| 51 |
|