Crafting ImageMatch Desktop: A Journey in Computer Vision and Jewelry Recognition

banner_image.png, Dec 2023

My project ImageMatch Desktop project is an application designed for efficient image matching and retrieval, with a primary focus on the jewelry industry. The application utilizes advanced image matching algorithms to provide users with a powerful tool for managing and matching jewelry items based on their visual characteristics.

I am the lead developer responsible for overall application architecture. My role also focused on algorithm implementation and ensuring the application's efficiency. The project commenced on 17th Nov 2023 and concluded successfully on 7th Dec 2023. Our target audience includes jewelry retailers, manufacturers, and designers who seek a seamless solution for image matching and management in the industry.

Why this Project?

logo.png, Dec 2023

Choosing the ImageMatch Desktop project wasn't really a shared interest with a team or group of individuals; it had a personal touch, connected to challenges I faced in the past. A while back, a client challenged me to add advanced image matching to his jewelry application he was developing. I did some research, trying to find the right solution, but back then, it stayed on the back burner due to various reasons. Now, with the ImageMatch Desktop project, I saw a chance to revisit that challenge. So it isn't just a technical project; it's also about proving to myself that I can overcome past limitations and turn an idea into reality.

What I've accomplished with this project

MVP_Architecture.png, Dec 2023

The architecture of ImageMatch Desktop is designed to efficiently handle image matching and retrieval. The data flow begins with user-provided images, undergoes processing and matching through the Emgu.CV library, and finally displaying matched results in the user interface.

052919_0401_WhatisVBNet1.jpg, Dec 2023

For the frontend, we chose a Windows Forms Application in Visual Basic for its ease of use and integration with the Emgu.CV library.

1.jpg, Dec 2023

Emgu.CV was selected for its robust computer vision capabilities, allowing us to perform image matching and recognition efficiently.

mysql-logo.jpg, Dec 2023

To manage and organize data, we integrated MySQL for storing jewelry information and related details.
 

Completed Features of ImageMatch Desktop

7140417_3497643.jpg, Dec 2023
  • EigenObjectRecognizer from Emgu.CV is utilized for accurate image matching.
  • A dynamic removal of matched images from recognition pool is implemented to prevent redundant matches.
  • A connection to MySQL is established to store and retrieve jewelry information.
  • Based on the image matched results, a feature has been implemented to query database for additional information (name, description, location).
  • A datagridview is used to display and manage multiple match results simultaneously.
  • A location management has been integrated to enhance the user's ability to organize and track jewelry items.

These features collectively enhance the image matching experience, provide efficient data management, and offer a more user-friendly interface.

Technical Challenge I face during the project

Persistence abstract concept vector illustration., Dec 2023

I faced a problem with EigenObjectRecognizer in Emgu.CV, which didn't consistently recognize jewelry well. Fixing this was crucial for the project. To solve it, I studied the recognizer and tried different settings. I experimented with parameters like EigenDistanceThreshold and MCvTermCriteria to find the best setup for accurate recognition.

I also made the recognizer smarter by removing already matched images, preventing it from repeating the same recognition. To make it even better, I added more diverse jewelry images to the training set, helping the tool recognize a wider range of items.

These changes made a big difference. Now, the recognizer accurately matches jewelry images, making the ImageMatch Desktop app work better for users.

What I've learnt from this Project

14230944_5437683.jpg, Dec 2023

Through the course of this project, I've learnt several valuable lessons which has shaped my technical expertise and personal growth as an engineer.

  1. I learned a lot about recognizing images, especially using the EigenObjectRecognizer in Emgu.CV. Adjusting settings like EigenDistanceThreshold and MCvTermCriteria showed me the balance needed for accurate recognition. Removing repetitive matches dynamically was a key feature.
  2. I now understand the importance of a diverse training set for better image matching. Improving the dataset over time taught me the value of adaptability in machine learning.
  3. This project has also taught me that seeking help from forums and collaborating with peers reinforced the importance of teamwork.
  4. This experience also made me realize my ability to handle tough technical challenges. It reminds me that challenges are opportunities for growth. I'm excited to explore more advanced topics in computer vision, machine learning, and artificial intelligence.

In conclusion, this project not only improved my technical skills but also changed how I see the ever-changing world of software engineering. It sets the foundation for ongoing exploration and improvement to future projects.

 

AM3A7134-Edit.jpg, Dec 2023

I am a passionate software engineer with a interest in computer vision and machine learning. My GitHub link for the project is GitHub - ImageMatch Desktop. You can explore the deployed project here and visit the landing page at ImageMatch Desktop Landing Page. Connect with me on LinkedIn to stay updated on my journey in the world of technology.

 

 

 

Postmortem: MySQL Service Outage on XAMPP Server

illustration-teenage-guy-scratching-his-260nw-1509301778.jpg, Nov 2023
illustration-teenage-guy-scratching-his-260nw-1509301778.jpg, Nov 2023

On November 10, 2023 at 08:45 AM, the XAMPP server encountered a critical issue resulting in a complete outage of the MySQL service

Continue reading

WhatsApp's new End-to-End Encrypted Backups for Chats closes a longstanding security loophole

GettyImages-507718626-b1b7f783472e4d3185c933363588d88d.png, Oct 2021
 

WhatsApp has begun rolling out the option for end-to-end (E2E) encryption of chat backups on both iOS and Android devices.

This will provide users with the ability to secure their backed up message history stored in the cloud. This capability resolves a previously known security gap that potentially made user data available to unintended third parties when storing cloud backups.

 

Continue reading

WhatsApp to stop working on 43 smartphone models from November

whatsapp_iphone_support_image.jpg, Sep 2021
 
whatsapp_iphone_support_image.jpg, Sep 2021

 

  • WhatsApp has revealed its new device requirements for compatibility with Android, iOS and KaiOS devices.

  • It will be compatible with devices running on Android OS 4.1 and above and iOS 10 and above.

  • Here is a list of all the smartphones that won’t be able to use WhatsApp from November 1.

 

Continue reading

5 ways to make your home/office Wi-Fi router work faster

wificonnect_router_image.png, Sep 2021
 
wificonnect_router_image.png, Sep 2021

 

 

Lets face it. There can be nothing more frustrating than trying to surf the internet using Wi-Fi that is agonizingly slow. While there are several companies that make claims of superfast speeds, there is no dearth of complaints from users about slow internet speeds.

It is important to remember that Wi-Fi waves are radio waves that travel small distances and are picked up by smartphones. Unfortunately, if anything comes in the way of these waves, they get blocked, causing slow internet speed. Here's what you need to keep in mind when it comes to your Wi-Fi router...

Continue reading

Hmmm.. iPhone Charging Cable can steal your password and record anything you type

155033354, Sep 2021
 

A security researcher who goes by the name MG has developed a Lightning cable for charging an iPhone that hides a chip inside which can be used to record whatever you type. The charging cable can then send all that is typed while it is connected to the device to someone remotely.

 

Continue reading

Page top