Git Product home page Git Product logo

mramanindia / product_matching_with_shelf_images Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 2.0 156.02 MB

Finding Product using captured product Images in the shelf Images for tracking location of Product in the store.

License: GNU General Public License v3.0

Jupyter Notebook 99.65% Python 0.35%
deep-neural-networks feature-engineering machine-learning nn retails object-detection product-matching

product_matching_with_shelf_images's Introduction

product_matching_with_shelf_images

Problem Statement

Given a set of images captured in grocery stores(shelf image), and a set of close up images of products in those stores, your task is as follows.
  1. For every product image, find the location of that product in all shelf images in which it appears.
  2. For every shelf image, locate all products and assign the name from given set of product images.

Find the whole soluction look for master branch

Dataset: https://www.kaggle.com/datasets/amanindiamuz/store-shelf-images-and-product-images-for-retial

Product Image

test-product-img2

Shelf Image

test-shelf-img2

Approach : Feature Extraction and Matching

Feature Matching is one of the widely used area of Computer vision with countless applications. In this approach, I have used "Brute-Force Matching with ORB Descriptors" for solving the probem statement. Well, I have tried other methods too, Including:

  • Harris Corner
  • SIFT(Scale Invariant Feature Transform)
  • SURF(Speeded Up Robust Feature)
  • FAST(Features from Accelerated Segment Test)

But, Satisfactory results were from "Brute-Force Matching with ORB Descriptors". Here are the steps included in the approach.

    Steps included in the approach are :
  • Reading Product and Shelf Images
  • Cropping product images
  • Removing Background for feature Extraction
  • Extracting features using ORB Descriptors
  • Matching features using BFMatcher
  • Visualization
  • Saving detected product cordinates in soluction.txt file

Approach: Deep Learning

As per the problem statement, the major/logical part of the problem is object recognition.
Recognizing the product on the shelf (Image), saving the coordinates of bounding boxes, and vice-versa.


Well,
One approach can be Feature mapping.

Using SIFT algorithm to match the features of the object in the image and based on that Saving the coordinates of the same.
Tough, there are limitations of Feature mapping technique, like different lightning conditions, Image clarity, Size of Image and others.

Thus,
For a robust model and higher recognition accuracy, there needed something complex which works with a most possible scenarios by reducing the chance of error.

Thus,
Training deep learning neural Network is prefrable.

Over here,
My approach is to have a neural network trained on product images and then using pretrained model of object detection from shelf images to recognize the product.

So,
For training neural network, I used Transfer learning. Use pretrained model and trained it further on the product dataset, Where dataset was upscaled using data Argumentation. Then using pre-trained YOLOv5 network that detects items from shelf images, Then further object matching.

Here are the Steps in detail that involve in building the soluction.

Steps included in the approach are :

  • Reading Product and Shelf Images
  • Exploratory Data Analysis
  • Labelling the Product Data
  • Image Augmentation
  • Splitting the Data for Training and Testing
  • Training pretrained Neural Network - ResNet (Transfer learning)
  • Testing and accuracy Measure
  • Using a pre-trained YOLOv5 network that detects items from shelf images.
  • Use similarity between products to match product in shelf image : Resnet network has been used for this purpose.
  • Writing in the soluction.txt file

For Further details, Kindly Look for Jupyter Notebook Attached.

product_matching_with_shelf_images's People

Contributors

mramanindia avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.