Inspiration
The inspiration for our project came from the need to efficiently search through a large database of images to find visually similar ones. With the increasing volume of digital images being generated, traditional search methods often fall short in terms of speed and accuracy. We aimed to tackle this challenge by leveraging deep learning techniques and efficient search algorithms. Furthermore, we wanted to learn more about embeddings and how they work.
What it does
Our project, named IndiTrend, is a powerful image similarity search engine. Given a vast collection of photos, IndiTrend can rapidly identify the most visually similar images to a given query. We achieve this through two distinct methods:
ResNet-50 Embedding: We utilize the ResNet-50 convolutional neural network (CNN) model to extract feature embeddings from each image in the dataset. These embeddings represent the visual characteristics of each image in a high-dimensional space. Then, we employ ChromaDB, an efficient and scalable search index, to quickly retrieve the most similar images based on these embeddings.
Custom Neural Network with Transfer Learning: In addition to using ResNet-50 embeddings directly, we also applied another method based by training a custom neural network using transfer learning from ResNet-50. This network is fine-tuned to better capture the specific features relevant to our image dataset. Once again, we leverage ChromaDB to efficiently embed and search for similar images.
For each query image provided to IndiTrend, the system returns the top 5 most similar images using ResNet-50 method and other top 5 using Transfer Learning method.
How we built it
Data Preprocessing: We scalated, convert it into vectors, scale them and extract labels from the urls given. ResNet-50 Embedding: We used pre-trained ResNet-50 model to extract feature embeddings from each image in the dataset. ChromaDB Integration: We integrated ChromaDB, a high-performance search index, to efficiently store and retrieve the image embeddings. Custom Neural Network: We designed and trained a custom neural network using transfer learning from ResNet-50 to further enhance feature extraction.
Challenges we ran into
Data Volume: Managing and preprocessing a dataset with that many images posed significant challenges in terms of computation. Knowledge about embeddings: We had to learn almost from zero how to use embeddings and tools like ChromaDB. Transfer Learning: It was our first time using Transfer Learning so we had to spend time to learn how to apply it properly.
Accomplishments that we're proud of
Efficiency: We are proud of achieving a highly efficient image similarity search engine that can handle an image dataset with impressive speed and accuracy. Integration of Multiple Technologies: Successfully integrating deep learning models like ResNet-50 with advanced search algorithms like ChromaDB demonstrates our ability to leverage diverse technologies to solve complex problems.
What we learned
Deep Learning for Image Similarity Knowledge about embeddings Transfer Learning
What's next for IndiTrend
Enhanced User Interface: Developing a more intuitive and user-friendly interface for IndiTrend to improve the user experience. Further Model Refinement: Continuously refining our neural network models and fine-tuning hyperparameters to enhance accuracy and efficiency. Integration with Additional Data Sources: Expanding the capabilities of IndiTrend by integrating with additional data sources and types of media beyond images. Deployment Optimization: Optimizing the deployment architecture to further enhance scalability and reduce response times.
Log in or sign up for Devpost to join the conversation.