This project, Image Processing Distributed System, utilizes Amazon's AWS to efficiently distribute image processing tasks across multiple virtual machines, ensuring scalability and reliability.
- Establishes a cloud environment using Amazon's AWS
- Optimizes VM utilization by assigning distinct roles to each VM
- Integrates VMs into the same VPC for synchronized communication
- Sets up SSH for secure authentication between VMs
- Implements security groups and firewall rules for traffic control
- Implements a "Load Balancer" VM to manage user requests asynchronously
- Utilizes MPI-based features for workload distribution across multiple threads
- Implements fault tolerance mechanism with backup VMs for uninterrupted processing
- Monitors VM status using an asynchronous "Ping-pong" concept
- Enhances system scalability to adapt to workload variations
- A user-friendly GUI for easy image upload and progress tracking
-
Clone the repository:
git clone https://github.com/MinaMorgan/Distributed-Image-Processing-System-using-Cloud-Computing
-
Navigate to the project directory:
cd Distributed-Image-Processing-System-using-Cloud-Computing -
Install the following Libraries:
pip install requests customtkinter Pillow numpy
- Run the Send.py script to start the application.
- Select the image(s) that you want to process.
- Choose the desired image processing operation(s) from the available options.
- For some operations, parameter is used to specify the mask size (if needed).
- Click on the "Send Request" button to initiate the processing.
- Track Processing Progress
Contributions to this project are welcome. If you have any ideas, suggestions, or bug fixes, please open an issue or submit a pull request. When contributing, please ensure that your code follows the existing coding style and conventions. Add appropriate tests for any new features or bug fixes.
- The project was inspired by the understanding and implementation of distributed computing, cloud technology, and image processing.
- Special thanks to Amazon's AWS for providing the cloud infrastructure.
- The OpenCV library was used extensively for image processing and computer vision operations.
- Appreciation to the open-source community for valuable resources and support.
For any questions or inquiries, please contact rafikghaly2002@gmail.com or minammorgan21@gmail.com.
Watch a demo video for the project at: https://youtu.be/OEbBF2-DzoU