Introduction | Functionalities | Model Architecture | Results | Deployment | Tools | Installation | Topics
An image search engine that covers over 1 million annotated images from Open Images Dataset. Users can conveniently search using text, images, or a combination of both.
This project employs Elasticsearch to store data and provides two primary functions:
- Similarity Search: It retrieves the most similar images to a provided reference image.
- Database search: It conducts searches based on image tags, enabling users to find images that match specific descriptors.
Below you can find some of the results:

Both the API and frontend of the web application are efficiently containerized using Docker and docker-compose. For more details, refer to the comprehensive report.
- Frontend Development: Streamlit
- Backend Development: Flask
- Database: Elasticsearch 8.1.0 + Elasticknn plugin 8.1.0 (You can install it from this link: https://github.com/alexklibisz/elastiknn/releases/tag/8.1.0.0)
- Deployment: Docker
In order to reproduce the project you have to:
1- Clone the repository.
2- Move to the project directory.
3- Get the data index.
* Unzip data fromthe folder data/photo_metadat.zip
* Change paths in the file models/create_data.py and run it to create feature vectors
* Create a new index: execute the file create_index_flickrphotos.py
* Execute the file mapping.py
4- Run docker-compose up --build Once these steps are done, the web application should start in the browser.
5- You can also execute the app.py.
1- Backend Development, deployment
2- Database Managment

