nkartik94 / Judging-a-book-by-its-cover

OpenCV, Machine Learning

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Judging-a-book-by-its-cover

OpenCV, Machine Learning

https://medium.com/@nkartik94/judging-a-book-by-its-cover-1365d001ef50

This project is an improvised version of a CBIR (Content Based Image Retrieval) system. Once the user clicks a picture of a book-cover in real-time, we use a 3-Level matching system to retrieve closest matches of the book-cover and based on the retrieved book-cover it displays the summarised information about various aspects of the book that is obtained from sites such as Goodreads and Amazon.

3-Level matching system:

  • Level-1: RGB Colour Histogram.
  • Level-2: Structural Similarity Index Measure (SSIM).
  • Level-3: FLANN matching using SIFT features.

10-Step Process:

  • Step-1: Build a repository of all the available book covers along with their respective ISBN number.
  • Step-2: Compute RGB Colour Histograms for all the book-cover images in repository.
  • Step-3: Read-in the query book-cover and compute its colour histogram.
  • Step-4: Search for closest matches of the query book-cover in the image repository based on correlation between histograms. (Level-1 Matcher).
  • Step-5: Search for closest matches of query book-cover from the matches obtained in Step-4 using SSIM. (Level-2 Matcher).
  • Step-6: Search for closest matches of query book-cover from the matches obtained in Step-5 using FLANN. (Level-3 Matcher).
  • Step-7: Display the top-4 matches obtained after 3 levels of matching. Also display the number of SIFT features matched in those top-4 retrieved images.
  • Step-8: Draw the matches between query book-cover image and top match.
  • Step-9: Create a web crawler to scrape information from Goodreads and Amazon.
  • Step-10: Using ISBN of the top match and the crawler designed in Step-9, retrieve additional book information such as number of ratings, average rating, helpful comments, number of pages in book, author details, etc. And finally display a summarised version of the information obtained.

About

OpenCV, Machine Learning


Languages

Language:Jupyter Notebook 100.0%