Run the latest version of the [Elastic stack][elk-stack] with Docker and Docker Compose.
It gives you the ability to analyze any data set by using the searching/aggregation capabilities of Elasticsearch and the visualization power of Kibana.
Based on the [official Docker images][elastic-docker] from Elastic:
Other available stack variants:
tls
: TLS encryption enabled in Elasticsearch, Kibana (opt in), and Fleetsearchguard
: Search Guard support
Important
[Platinum][subscriptions] features are enabled by default for a [trial][license-mngmt] duration of 30 days. After this evaluation period, you will retain access to all the free features included in the Open Basic license seamlessly, without manual intervention required, and without losing any data. Refer to the How to disable paid features section to opt out of this behaviour.
docker-compose up setup
docker-compose up
This project demonstrates the creation of an advanced image search system using OpenAI's CLIP model and Elasticsearch. The system allows for searching images using other images rather than keywords, leveraging machine learning techniques to process images into feature vectors and Elasticsearch for storing and searching these vectors using cosine similarity.
- Docker
- Python 3.7+
- Libraries:
torch
,transformers
,pillow
,requests
,torchvision
,matplotlib
,flask
- Jupyter Notebook
.
├── templates
├── uploads
├── SearchEngine.ipynb
├── app.py
-
Clone the repository:
git clone https://github.com/propardhu/Docker_ELK_Image_Search.git cd Docker_ELK_Image_Search
-
Bring up the ELK stack using Docker Compose:
docker-compose up
-
Verify the setup:
- Elasticsearch: http://localhost:9200
- Kibana: http://localhost:5601
- Username:
elastic
- Password:
changeme
- Username:
Install the necessary Python libraries:
pip install torch transformers pillow requests torchvision matplotlib flask jupyter
-
Start Jupyter Notebook:
jupyter notebook
-
Open the
SearchEngine.ipynb
notebook and run all cells to preprocess the Oxford Pets dataset and store the image vectors in Elasticsearch.
-
Ensure the project structure is as follows:
. ├── templates ├── uploads ├── SearchEngine.ipynb ├── app.py
-
Start the Flask app by running:
python app.py
-
Access the web interface by opening your browser and going to http://localhost:5000.
In this project, we built an advanced image search system using OpenAI's CLIP model and Elasticsearch. By setting up the ELK stack with Docker, installing the necessary dependencies, running the Jupyter notebook to preprocess and store vectors, and running the Flask app, you can search for images using other images through a user-friendly web interface.
Would you like me to remember anything specific about this project or your work with it?