Problem statement : Create an AI based solution that separates duplicates, blur photos from a given set of photos and logically organizes photos based on location, date etc. This can help create photo albums automatically based on different attributes from the huge number of photos available.
Overview : The Image Processing Server is a web application that allows users to upload images, process them, and download the processed results. The server performs various image processing tasks, including duplicate removal, blur detection, and location-based sorting.
Features
- Image Upload: Users can upload images through a web interface.
- Duplicate Removal: The server identifies and removes duplicate images from the uploaded files.
- Blur Detection: Images are scanned for blur, and blurry images are identified and separated.
- Location-based Sorting: Images are sorted into folders based on their geographical location, if available in the image metadata.
- Output Zip Creation: The processed images are packaged into a zip file for easy download by the user.
- Clean-up: After processing, the server clears uploaded images and processed results to conserve disk space.
Installation
- Clone the repository to your local machine.
- Install the required dependencies by running npm install in the project directory.
- Make sure Python is installed on your system, as the server relies on Python scripts for image processing tasks.
- Run the server by executing node server.js.
- Access the server through your web browser at http://localhost:3001.
Usage
- Navigate to the upload page on the web interface.
- Select one or more images to upload.
- Submit the upload form to start image processing.
- After processing, the server will generate a zip file containing the processed images.
- Download the zip file from the provided link.
- The server will automatically clean up uploaded images and processed results to maintain disk space.
Dependencies
- Node.js
- Express.js
- Multer
- Archiver
- Python (with required libraries for image processing)
Authors
- Atharva Karval
- Samarth Patil
- Shweta Ingole
- Swarali Kulkarni
Acknowledgements: Special thanks to Anushka Vaidya for their contributions to this project.