Designing an Efficient End-to-end Machine Learning Pipeline for
  Real-time Empty-shelf Detection
  On-Shelf Availability (OSA) of products in retail stores is a critical
business criterion in the fast moving consumer goods and retails sector. When a
product is out-of-stock (OOS) and a customer cannot find it on its designed
shelf, this motivates the customer to store-switching or buying nothing, which
causes fall in future sales and demands. Retailers are employing several
approaches to detect empty shelves and ensure high OSA of products; however,
such methods are generally ineffective and infeasible since they are either
manual, expensive or less accurate. Recently machine learning based solutions
have been proposed, but they suffer from high computational cost and low
accuracy problem due to lack of large annotated datasets of on-shelf products.
Here, we present an elegant approach for designing an end-to-end machine
learning (ML) pipeline for real-time empty shelf detection. Considering the
strong dependency between the quality of ML models and the quality of data, we
focus on the importance of proper data collection, cleaning and correct data
annotation before delving into modeling. Since an empty-shelf detection
solution should be computationally-efficient for real-time predictions, we
explore different run-time optimizations to improve the model performance. Our
dataset contains 1000 images, collected and annotated by following well-defined
guidelines. Our low-latency model achieves a mean average F1-score of 68.5%,
and can process up to 67 images/s on Intel Xeon Gold and up to 860 images/s on
an A100 GPU.
