Share this
Group or Delete: Hashing Product Image Duplicates
by Andrei Vishneuski on Dec 13, 2022 6:26:23 PM
When we think of clutter, we usually think of packed drawers and cabinets throughout our home. One might not associate this issue with data. But in reality, like home utensils, data also takes up space and if not maintained can get just as messy.
Making sure our clients start 2023 with their “ducks (in our case data) in a row” has been of focus for our lead developer and architect Andrei Vishneuski, especially as it pertains to our clients with robust assets and extensive image libraries.
Many of our retail clients have found that for one product there can be hundreds of images that aren’t tagged under the same product or identifiers because the image is cropped, has a different filter, is shot at a different angle, or has the color skewed. But in reality, the images are all for the same one product.
If not addressed, the image library can become filled with duplicate images and assets, making the image library disorganized, cluttered, and difficult to search. To remedy this issue, Crystalloids is investigating “image perceptual hashing”.
According to Andrei, when a leading luxury retailer complained about a growing number of duplicate images in their library that are being read as a “new product”, he realized that this issue could be solved by implementing a sophisticated algorithmic solution via BigQuery.
“This retailer needs a way to organize their picture collection but currently doesn't have a way to detect similar pictures that are not a pixel by pixel comparison, “ explains Andrei, noting that this is where a solution like image perceptual hashing can work.
What is Image Perceptual Hashing?
To better understand where the need for a solution like image perceptual hashing fits best Andrei provided the following analogy:
“Suppose you have two photos of the same person but each is slightly different (but it’s the same person in the picture). Current traditional pixel by pixel comparison methods will not read or identify the images as similar” Andrei says. This is where duplication of image assets and unnecessary variations begins in your library.
“But when you implement a perceptual algorithm into your image dataset, you get in return a score for the images and how close the images are to each other - so although the conditions of the picture could be different - the actual subject of the picture is considered and ranked.“
In layman terms, “like our brain - we don’t process image comparison and similarity from pixel to pixel analysis but we recognize the closeness of the images by shape, color, etc. so image hashing allows for a way to detect picture similarity that is not a pixel by pixel comparison” Andrei shares.
According to Andrei, the perceptual image hashing algorithm will also recognize and relate an image in your library even if it has been cropped and saved with a different resolution or format (ex: JPEG; TIFF; PNG). While possible to run on other data warehouses, image hashing works best on BigQuery.
“Currently, we run this algorithm on BigQuery - we take a batch or collection of pictures and send it (the meta information) to the demo system (a PubSub) this is then stored and transferred to a BigQuery table and visualized via Looker Studio” says Andrei who is currently implementing this solution for a high-level luxury retail client that works on Google’s Cloud Platform.
“Without BigQuery it’s harder to implement an algorithm like this - BigQuery can handle so much more data than other data warehouse services and you can run more complicated algorithms such as the one needed for image perceptual hashing,” notes Andrei.
How is Image Hashing Implemented?
Although intricate, as our lead developer, Andrei was able to outline the key steps when it comes to running an image hashing algorithm and then visualizing the results.
At a high-level, perceptual image hashing is executed with the following steps:
1: Collect the image information from the client via PubSub (minimal detail needed is the url to the picture for the http address)
2: Process then download image information from PubSub on BigQuery
3: Calculate perceptual hashes by running Cloud function and then store image information along with calculated perceptual hashes on BigQuery
4: The calculated results are broken into the following image similarity categories with a numerical score:
- Transformed images- Cropped images
- Re-colored images
Scores that rank as close to zero as possible reflect near perfect image similarity as detected by the algorithm on BigQuery
5: Visualize final calculations and image similarity scores on Looker Studio
Do I Need This? Can I Implement This?
Image perceptual hashing can serve any data-driven company that handles high amounts of image data and has an extensive image library that needs to always be updated, organized, and well-cataloged.
“Perceptual hashing allows you to detect similar images even if they are not completely the same. For instance cropped images, re-colored or transformed images. This can be important for keeping image collection in order, avoiding duplicated tracking, and having different representations of one product in your catalog” explains Andrei.
When considering the loads of image data that would need to be processed in order to run image perceptual hashing, it is advised to use the data warehouse capabilities of BigQuery.
“The heart and uniqueness of the implementation is due to BigQuery. Perceptual hashing is possible because of the data storage and processing power of BigQuery. Plus, visualization is important. To show how this algorithm works we use DataStudio which is great for showing how image perceptual hashing connects and identifies the same images,” notes Andrei.
Conclusion
Currently, our team is testing this solution for implementation with a retail client that has a substantial online shop offering. But the overall benefits of such a function can be useful for any of our past, current, and future clients.
In a nutshell, the solution can resolve the following case studies:
- To organize and keep image collection in proper order by avoiding duplicates and same product catalog variation
- Theoretically this approach can be used as a recommendation algorithm. A buyer who has ordered a product can be interested in buying similar-looking products. The similarity can be computed based on perceptual hashes.
Our team will continue to explore what can be leveraged with image perceptual hashing, including how it can serve as a recommendation algorithm, in a follow-up article. For now, if you have any questions about how this solution can improve your internal image data library, or if you’d like to have your image library optimized for the new year– feel free to reach out.
Share this
- November 2024 (5)
- October 2024 (2)
- September 2024 (1)
- August 2024 (1)
- July 2024 (4)
- June 2024 (2)
- May 2024 (1)
- April 2024 (4)
- March 2024 (2)
- February 2024 (2)
- January 2024 (4)
- December 2023 (1)
- November 2023 (4)
- October 2023 (4)
- September 2023 (4)
- June 2023 (2)
- May 2023 (2)
- April 2023 (1)
- March 2023 (1)
- January 2023 (4)
- December 2022 (3)
- November 2022 (5)
- October 2022 (3)
- July 2022 (1)
- May 2022 (2)
- April 2022 (2)
- March 2022 (5)
- February 2022 (3)
- January 2022 (5)
- December 2021 (5)
- November 2021 (4)
- October 2021 (2)
- September 2021 (2)
- August 2021 (3)
- July 2021 (4)
- May 2021 (2)
- April 2021 (2)
- February 2021 (2)
- January 2021 (1)
- December 2020 (1)
- October 2020 (2)
- September 2020 (1)
- August 2020 (2)
- July 2020 (2)
- June 2020 (1)
- March 2020 (2)
- February 2020 (1)
- January 2020 (1)
- December 2019 (1)
- November 2019 (3)
- October 2019 (2)
- September 2019 (3)
- August 2019 (2)
- July 2019 (3)
- June 2019 (5)
- May 2019 (2)
- April 2019 (4)
- March 2019 (2)
- February 2019 (2)
- January 2019 (4)
- December 2018 (2)
- November 2018 (2)
- October 2018 (1)
- September 2018 (2)
- August 2018 (3)
- July 2018 (3)
- May 2018 (2)
- April 2018 (4)
- March 2018 (5)
- February 2018 (2)
- January 2018 (3)
- November 2017 (2)
- October 2017 (2)