Skip to content

A secure and efficient multi-threaded image search engine implemented using gRPC, Docker, Python, and Protocol Buffers, featuring advanced keyword-based image retrieval algorithms.

Notifications You must be signed in to change notification settings

dhushyanth-h-m/Multi-threaded-Image-Search-Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image Search Application Using Docker

Overview

This project demonstrates how to build a Dockerized image search application using gRPC for communication between client and server components. The server utilizes a machine learning model to analyze user queries and return relevant images.

System Architecture

The application consists of two main components:

Server:

  • Deploys a machine learning model for image analysis.
  • Responds to client requests with matching images.

Client:

  • Sends image search queries to the server.
  • Receives and displays the server's response (image).

Prerequisites

  • Docker installed and running on your system.
  • Python 3.9 or higher.

Installation

Step 1: Clone the Repository

Clone this repository to your local machine. Use code with caution.

Step 2: Build Docker Images

Navigate into the project's root directory and build the Docker images for both the server and the client.

cd image-search-docker

# Build server image
docker build -t my-server-image ./server

# Build client image
docker build -t my-client-image ./client

Usage

Step 1: Start the Server

Run the following command to start the server container:

docker run -d --network=host my-server-image

Step 2: Start the Client

Run the following command to start the client container in interactive mode:

docker run -it --network=host -v $PWD:/app my-client-image

Inside the client container, enter a query keyword and press enter. The client will send the query to the server, which will return a matching image. The image will be saved to the client directory as image.jpg.

Customization

You can modify the following aspects of the application to suit your needs:

Machine Learning Model: The server's model.py script can be updated to use a different machine learning model for image analysis. Query Logic: The server's server.py script can be modified to implement different query logic. Docker Images: The Dockerfiles in the server and client directories can be customized to include additional dependencies or configurations. Next Steps

Explore integrating a more sophisticated machine learning model for improved image analysis. Add support for multiple clients to send queries to the server concurrently. Deploy the application to a cloud platform for scalability and availability. Contributing

Contributions to this project are welcome! Please make sure to read the contributing guidelines before submitting a pull request.

License

This project is licensed under the MIT License.

Tech Stack File

dhushyanth-h-m/Multi-threaded-Image-Search-Engine

7
Tools used
07/24/24
Report generated

Languages (1)

Python
Python

Frameworks (1)

Protobuf
Protobuf
v4.24.4

DevOps (3)

Docker
Docker
Git
Git
PyPI
PyPI

Other (1)

TensorFlow
TensorFlow
v2.13.0

Open source packages (1)

PyPI (1)

NAME VERSION LAST UPDATED LAST UPDATED BY LICENSE VULNERABILITIES
grpcio v1.59.0 10/17/23 Dhushyanth Apache-2.0 N/A

Generated via Stack File

About

A secure and efficient multi-threaded image search engine implemented using gRPC, Docker, Python, and Protocol Buffers, featuring advanced keyword-based image retrieval algorithms.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published