All Sausage, but no Spring Roll: Canada
Image recognition (IR) systems often perform poorly once in the real world. In this post, I test four of the most popular IR systems on original real world images of food from around the world, this time from Canada.
Key takeaway
Overall, the systems performed very poorly. No images were correctly described, nor were any items in the images correctly detected. Some labels such as “Rice” and “White Rice” described an item in the images, but in general the labels remained superficial. Many potentially harmful labels were found.
Correctly predicted images | 0/5 |
Correctly detected items | 0/10 |
Correct labels | 5/89 |
Potentially harmful detections/labels |
9
|
Insights
Object Detection
Across the two meals, the object detection systems performed very disappointingly. Most items were described as the general terms of “Food” or “Bowl”, while two descriptions were completely off: crab cakes as well as Kadyos were detected as “Ice Cream” by Rekognition, while sliced melon was recognized as “Banana”. Though difficult to verify, these mistakes might indicate a (cultural) misrepresentation in the training data (i.e. more images of bananas than melons).
Labeling
Labeling remained surface level as well. General labels such as “Food”, “Dish” and “Plate” were common, as well as irrelevant labels such as “Ingredient” and “Recipe”. As is, the value of these labels is questionable, though this of course depends on the applications of use.
More specific (though still somewhat general) labels were also found, including “Stew”, “Brown Sauce”, “Comfort Food”. As in previous cases, descriptions such as “Rice” and “White Rice” were plentiful as one image clearly depicted rice.
Unfortunately, the systems also gave many potentially harmful or simply wrong descriptions. In a first instance, in one instance, one meal was described as “German Food”. In other instance, the meals’ were typical meals from other origins (e.g. “Semur” [an Indonesian Dish] , “Dumpling”, “Varenyky”) than Canadian/Filipino.
Azure seemed to be really confused by the image of three spring rolls, giving it 18 different descriptions of sausages (e.g. “Bratwurst”, “Loukaniko”, etc.) and not one of “Spring Rolls”. Rekognition also described the spring rolls as “Hot Dog” with 0.99 certainty.
As in the analyses of previous countries, types of meats were also often used interchangeably, as in “Pork”, “Beef”, “Chicken meat”, “Clam” would all be given as a label. Depending on the context, this could be detrimental to people of certain religions or with certain diets that avoid certain meats.
My recommendation
- Provide more specific and relevant labels for “Kaydos”, “Sliced Melon”, “Crab cake” and “Spring Rolls”;
- Fix (cultural) misrepresentations (i.e. crab cakes are not ice cream, sliced melon is not a banana, spring rolls are not sausages);
- Make sure labels of meat do not harm people of certain religions or with certain diets.
Results
Five images of two different meals from Canada (with a Filipino origin) were available:
- Meal 1: White rice, Kaydos (beans, jackfruit, pork [usually beef]), Sliced Melon (lunch)
- Meal 2: Crab Cake, Spring Rolls (filled with crab meat), Sliced Melon (snack)
Object detection results.
GROUND TRUTH | MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
Kaydos | Food (0.68) | Food (0.68) | Ice Cream (0.85) | / |
Sliced Melon | Undetected | Food (0.64) | Undetected | / |
*Green = the right prediction; Yellow= the right prediction, but too general; Red = potentially harmful prediction; White = largely not relevant
Labeling Results:
MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
food (0.97) | Food (0.99) | food (0.97) | chocolate color (0.94) |
plate (0.96) | Tableware (0.92) | Dish (0.99) | food (0.74) |
indoor (0.89) | Ingredient (0.91) | Meal (0.99) | light brown color (0.7) |
brown sauce (0.76) | Staple food (0.86) | Food (0.99) | nutrition (0.67) |
mole sauce (0.73) | Stew (0.86) | Plant (0.89) | dish (0.67) |
chocolate (0.67) | Cuisine (0.84) | Ice Cream (0.85) |
beef Bourguignonne (0.58)
|
braising (0.61) | Recipe (0.84) | Dessert (0.85) | restaurant (0.55) |
recipe (0.58) | Dish (0.84) | Cream (0.85) | building (0.55) |
steak sauce (0.51) | Brown sauce (0.83) | Creme (0.85) | food product (0.5) |
Produce (0.78) | Soup Bowl (0.74) | bourguignon (0.5) | |
Soup (0.76) | Sliced (0.59) | ||
Kitchen appliance (0.74) | Gravy (0.59) | ||
Gravy (0.73) | Clam (0.59) | ||
Meat (0.73) | Animal (0.59) | ||
Curry (0.68) | Sea Life (0.59) | ||
Condiment (0.66) | Invertebrate (0.59) | ||
Stock (0.66) | Seashell (0.59) | ||
Semur (0.62) | Breakfast (0.57) | ||
Comfort food (0.61) | Stew (0.56) | ||
Braising (0.61) | |||
Chasseur (0.6) | |||
Mole sauce (0.59) | |||
Hoisin sauce (0.58) | |||
German food (0.57) | |||
Boiled beef (0.55) |
Object detection results.
GROUND TRUTH | MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
Kadyos | Bowl (0.5) | Food (0.74) | Ice Cream (0.6) | / |
Rice | Undetected | Food (0.69) | Undetected | / |
*Green = the right prediction; Yellow= the right prediction, but too general; Red = potentially harmful prediction; White = largely not relevant
Labeling Results:
MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
food (1) | Food (0.97) | food (0.97) | food (0.96) |
plate (0.98) | Ingredient (0.89) | Rice (0.98) | dish (0.88) |
rice (0.98) | Staple food (0.88) | Vegetable (0.98) | nutrition (0.88) |
jasmine rice (0.84) | Recipe (0.88) | Food (0.98) |
alabaster color (0.8)
|
glutinous rice (0.76) | Jasmine rice (0.87) | Ice Cream (0.6) |
Chicken Curry (0.73)
|
white rice (0.74) | Rice (0.87) | Dessert (0.6) | rice (0.66) |
basmati (0.74) | Cuisine (0.81) | Cream (0.6) | grain (0.66) |
steamed rice (0.7) | Dish (0.79) |
food product (0.66)
|
|
white (0.65) | White rice (0.79) | beige color (0.63) | |
arborio rice (0.59) | Tableware (0.71) | white rice (0.6) | |
Steamed rice (0.71) | |||
Basmati (0.55) | |||
Comfort food (0.53) | |||
Plate (0.51) |
Object Detection Results:
GROUND TRUTH | MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
Sliced Melon | Banana (0.52) | Food (0.55) | Undetected | / |
Labeling Results:
MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
food (0.98) | Food (0.97) | food (0.97) |
lemon yellow color (0.85)
|
plate (0.91) | Tableware (0.93) | Plant (0.92) | nutrition (0.81) |
fast food (0.88) | Dishware (0.9) | Fruit (0.71) | food (0.81) |
banana (0.76) | Ingredient (0.86) | Food (0.71) | plant (0.8) |
fruit (0.75) | Recipe (0.83) | food product (0.8) | |
peel (0.58) | Plate (0.77) | dish (0.77) | |
Staple food (0.76) | custard (0.7) | ||
Produce (0.74) | beige color (0.69) | ||
Platter (0.72) |
creme anglais (0.58)
|
||
Cuisine (0.72) |
creme caramel (0.55)
|
||
Baked goods (0.72) | |||
Jiaozi (0.71) | |||
Junk food (0.7) | |||
Dish (0.69) | |||
Comfort food (0.67) | |||
Fruit (0.65) | |||
Finger food (0.63) | |||
Delicacy (0.63) | |||
Dumpling (0.62) | |||
Serveware (0.62) | |||
Gluten (0.6) | |||
Peach (0.58) | |||
Varenyky (0.58) | |||
Cooking (0.58) | |||
Fast food (0.57) |
Object Detection Results:
GROUND TRUTH | MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
Crab Cake | Food (0.6) | Food (0.73) | Ice Cream (0.56) | / |
Kodyos | Bowl (0.84) | Food (0.56) | Undetected | / |
Sliced Melon | Food (0.7) | Food (0.71) | Undetected | / |
Labeling Results:
MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
plate (0.99) | Food (0.98) | food (0.97) | food (0.89) |
food (0.98) | Tableware (0.96) | Food (0.93) | sandwich (0.89) |
dessert (0.8) | Ingredient (0.89) | Meat Loaf (0.57) | dish (0.89) |
baked goods (0.79) | Plate (0.89) | Pottery (0.57) | nutrition (0.89) |
Recipe (0.88) | Ice Cream (0.56) |
food product (0.79)
|
|
Cuisine (0.86) | Dessert (0.56) |
reddish orange color (0.78)
|
|
Dish (0.83) | Cream (0.56) | chili dog (0.71) | |
Pork steak (0.8) | Creme (0.56) | Sloppy Joe (0.67) | |
Fried food (0.78) | Pork (0.56) |
reddish brown color (0.66)
|
|
Roasting (0.78) |
Pulled Pork Sandwich (0.5)
|
||
Staple food (0.77) | |||
Produce (0.77) | |||
Fast food (0.76) | |||
Meat (0.74) | |||
Finger food (0.72) | |||
Beef (0.72) | |||
Comfort food (0.7) | |||
Chicken meat (0.69) | |||
Deep frying (0.68) | |||
Junk food (0.68) | |||
Baked goods (0.68) | |||
Pork (0.65) | |||
Serveware (0.64) | |||
Bread (0.63) | |||
Cooking (0.63) |
Object Detection Results:
GROUND TRUTH | MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
Spring Rolls | Hot Dog (0.58) | Food (0.71) | Hot Dog (0.99) | / |
Sliced Melon | Undetected | Food (0.56) | Undetected | / |
Labeling Results:
MICROSOFT AZURE | GOOGLE VISION | AMAZON REKOG. | IBM WATSON |
fast food (0.98) | Food (0.98) | Hot Dog (0.99) |
alabaster color (0.95)
|
food (0.95) | Tableware (0.96) | Food (0.99) | dish (0.63) |
indoor (0.91) | Ingredient (0.89) | Bun (0.59) | nutrition (0.63) |
plate (0.9) | Plate (0.89) | Bread (0.59) | food (0.63) |
bratwurst (0.8) | Recipe (0.88) | food product (0.6) | |
bread (0.79) | Cuisine (0.86) |
bouillabaisse (0.56)
|
|
diot (0.78) | Dish (0.83) | stew (0.56) | |
sausage (0.77) | Pork steak (0.8) | bathtub (0.51) | |
bockwurst (0.77) | Fried food (0.78) |
sashimi (raw fish) (0.5)
|
|
thuringian sausage (0.77) | Roasting (0.78) | footbath (0.5) | |
cervelat (0.77) | Staple food (0.77) | ||
kielbasa (0.77) | Produce (0.77) | ||
knackwurst (0.76) | Fast food (0.76) | ||
loukaniko (0.74) | Meat (0.74) | ||
andouille (0.72) | Finger food (0.72) | ||
longaniza (0.71) | Beef (0.72) | ||
frankfurter wa14rstchen (0.7)
|
Comfort food (0.7) | ||
debrecener (0.67) | Chicken meat (0.69) | ||
boudin (0.67) | Deep frying (0.68) | ||
breakfast sausage (0.67) | Junk food (0.68) | ||
italian sausage (0.67) | Baked goods (0.68) | ||
morteau sausage (0.63) | Pork (0.65) | ||
chistorra (0.6) | Serveware (0.64) | ||
seafood (0.6) | Bread (0.63) | ||
cumberland sausage (0.59)
|
Cooking (0.63) |