Grocery Dataset Recognition
This week I have attended an interview for the role ML Engineer. So here is the assignment they have given:
Problem Statement:
● Given a grocery store shelf image, detect all products present in the
shelf image (detection only at product or no-product level)
● The assignment requires you to implement a single shot object
detector with only “one” anchor box per feature-map cell.
● Accuracy of at least 0.7 mAP on the test set.
Dataset:
Grocery Dataset (https://github.com/gulvarol/grocerydataset).
Here, I have Single shot detection algorithm to detect multiple sub images in an image. The reason for preferring it over YOLO is SSD generally gives high precision value.
SSD Architecture
Here the input image is of the format(300,300) and data augmentation is done to images to reduce imbalance error in dataset.
Framework Used:
- Numpy
- Pandas
- Pytorch
Evaluation Metric:
- Precision
- Recall
- mAP
Assumptions:
1)IOU>96.5 is considered to be true positive
2)minimum score to identify box is 0.6 and max overlap is 0.4
One of the question asked related to this was, Does this problem require multiple anchors? Please justify your answer.
No, this model doesn’t require multiple anchors as the dataset contains only one image per space so need to add overhead to the model.
Performance:
{"mAP": "0.9081612229347229", "precision": 0.8959003215434084, "recall": 0.8478508938759984}
Please find the code link here https://drive.google.com/drive/folders/1GKByWDKYsk-2iOcemhtd23roGd9JvU_h?usp=sharing