A non-transitory computer-readable medium configured to store code comprising instructions, the instructions, when executed by a processor, cause the processor to:
- cause a plurality of cameras installed at a plurality of physical shopping carriers to capture multi-angle images of a plurality of instances of a grocery item carried at a physical store, wherein the plurality of instances correspond to different instances of a same grocery item from different customers and pickers;
- cause additional images of the plurality of instances of the grocery item to be captured at checkout counters equipped with one or more cameras;
- receive the multi-angle images and the additional images of the plurality of instances of the grocery item;
- apply a machine learning model to the multi-angle images to identify expiration dates of the plurality of instances of the grocery item, wherein the machine learning model is trained by:
- inputting, in a forward propagation, training samples of multi-angle images of items with known expiration dates to the machine learning model,
- generating predicted expiration dates of the items in the training samples using the machine learning model,
- determining a result of an objective function that compares the predicted expiration dates with the known expiration dates, and
- adjusting, in a back propagation, parameters of the machine learning model based on the result of the objective function;
- wherein applying the machine learning model comprises identifying placement of location of expiration-date images on packaging and performing optical character recognition on the expiration-date images to identify the expiration dates;
- apply repeatedly the machine learning model for additional instances of the grocery item for a plurality of instances of expiration dates that are recognized from the expiration-date images;
- determine, based on the plurality of instances of expiration dates, that the plurality of instances of the grocery item have a same expiration date or different expiration dates;
- determine that the plurality of instances of the grocery item having the same expiration date exceeds a threshold;
- determine, based on that the plurality of instances of the grocery item having the same expiration date exceeding the threshold, that the batch of the grocery item remaining in inventory of the physical store share the expiration date that is close to expiration;
- generating, responsive to determining that the batch of the grocery item remaining in inventory of the physical store is close to expiration, one or more item-specific suggestions associated with the batch of the grocery item remaining in inventory;
- and
- cause a graphical user interface to display the one or more item-specific suggestions.