{"id":21224216,"url":"https://github.com/empathy87/nn-grocery-shelves","last_synced_at":"2025-07-10T14:31:28.305Z","repository":{"id":62683746,"uuid":"131491887","full_name":"empathy87/nn-grocery-shelves","owner":"empathy87","description":"Recognition of product positions on shelf images using neural networks","archived":false,"fork":false,"pushed_at":"2018-06-04T16:33:03.000Z","size":47260,"stargazers_count":92,"open_issues_count":3,"forks_count":47,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-05T01:37:41.528Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/empathy87.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-29T12:16:31.000Z","updated_at":"2023-02-26T09:35:54.000Z","dependencies_parsed_at":"2022-11-04T12:45:31.413Z","dependency_job_id":null,"html_url":"https://github.com/empathy87/nn-grocery-shelves","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empathy87%2Fnn-grocery-shelves","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empathy87%2Fnn-grocery-shelves/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empathy87%2Fnn-grocery-shelves/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empathy87%2Fnn-grocery-shelves/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/empathy87","download_url":"https://codeload.github.com/empathy87/nn-grocery-shelves/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225641543,"owners_count":17501163,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T22:57:23.148Z","updated_at":"2024-11-20T22:57:23.789Z","avatar_url":"https://github.com/empathy87.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nn-grocery-shelves\n### Recognition of Product Positions on Shelf Images with Deep Learning in Keras / Tensorflow / Object Detection API\n\n![](docs/images/planogram.jpg)\n\n## Introduction\n\n### What is a planogram?\n- Visual description of the retail products' placement on shelves.\n\nThe solution is based on [Toward Retail Product Recognition on Grocery Shelves](https://pdfs.semanticscholar.org/280e/57ea3e882f82a60065fedde058ce00769c06.pdf).\nBack in 2014 they have collected 345 tobacco shelves images from ~40 locations with 4 cameras and have made them available for downloading.\n![](docs/images/C1_P02_N3_S3_1.JPG)\nThey also cropped over 13,000 products and grouped some of them into 10 brand classes.\n\nFew years ago a planogram reconstruction from shelves photos was not an easy task in both products detection and brands recognition. The work\nproposes the following combination of algorithms.\n![](docs/images/process.png)\nIt was hard to implement, hard to maintain, hard to expand to include new brands and products.\n\nRecently Convolutional Neural Networks (CNN) have made a revolution in Computer Vision and have changed the way of thinking of such tasks.\nIn the past couple of years, these technologies have started to became available to the broader software development community. User-friendly API such as Keras\nsignificantly decreased the barriers to entry. Now days nearly any software developer can in few days start to benefit from the power of Convolutional Neural Networks!\n\nThis work shows the power of these cutting edge techniques. It will show that all algorithms proposed above could be easily replaced\nby only 2 CNNs with increase of recognition quality without losing performance.\n\n## Steps\n\nAll steps are implemented as jupyter notebooks and could be read without execution:\n*   [Step 1 - Initial Data Preparation](https://github.com/empathy87/nn-grocery-shelves/blob/master/Step%201%20-%20Initial%20Data%20Preparation.ipynb)\n*   [Step 2 - Brands Recognition with ResNet CNN](https://github.com/empathy87/nn-grocery-shelves/blob/master/Step%202%20-%20Brands%20Recognition%20with%20CNN.ipynb)\n*   [Step 3 - Training SSD for Products Detection](https://github.com/empathy87/nn-grocery-shelves/blob/master/Step%203%20-%20Training%20SSD%20for%20Products%20Detection.ipynb)\n*   [Step 4 - Implementing Products Detection](https://github.com/empathy87/nn-grocery-shelves/blob/master/Step%204%20-%20Implementing%20Products%20Detection.ipynb)\n\n## Dependencies\n\nSolution depends on the following main libraries:\n*   Tensorlfow\n*   Keras\n*   Tensorflow Object Detection API\n*   OpenCV\n\nEven though Windows and Mac OS are pretty acceptable for Tensorflow I recommend \nUbuntu 16.04. It will save you a huge amount of time. Tensorflow for CPU installation\nis easy, but is not as straightforward for GPU. For detailed steps to install Tensorflow \non Ubuntu 16.04 with an Nvidia GPU, follow this [paper](https://www.quantstart.com/articles/installing-tensorflow-on-ubuntu-1604-with-an-nvidia-gpu)\n\nTensorflow Object Detection API installation instructions located [here](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md).\n\nKeras can be installed using pip:\n``` bash\npip install keras\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fempathy87%2Fnn-grocery-shelves","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fempathy87%2Fnn-grocery-shelves","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fempathy87%2Fnn-grocery-shelves/lists"}