This project copies wanted photos and deletes unwanted photos from iCloud to a local computer with default saving for photos recognized as containing 'human' objects. The system utilizes Facebook DETR-resnet-50 model to identify and categorize objects, saving time by focusing on photos with human subjects. The motivation behind this project is partly driven by the high costs associated with iCloud storage, providing an economical alternative for managing the photo library.
- Object Identification with threadings:
- Utilizes the DETR model to recognize and categorize objects within the photos with Python threading to improve computation time by 25%.
- iCloud Integration:
- Fetch photos from your iCloud storage.
- Web UI:
- A web UI is developed for better UX.
- Automatic Sorting:
- Photos are automatically organized based on the identified objects.
- Local Hosting:
- Transfers and stores photos locally on a local machine.
- iCloud account credentials
- Python environment with necessary dependencies
- Clone the project
git clone https://github.com/yhmyhm0910/DETR-Filter-iCloud-Photos
- Go to the project directory
cd DETR-Filter-iCloud-Photos
- Install dependencies for server
cd server
npm install
- Create a file name
.env
at/server
and set
PORT={your port number}
JWT_SECRET_KEY={your JWT secret key}
- Start the server
yarn start
- Install dependencies for web client
cd ..
cd web
npm install
- Start the web server
yarn start
- Follow the instructions on the web UI. Wanted images will finally be stored at both
/server/saved_images
locally and iCloud.
The video demo can be found here.
- Local Server
- Perform object detections
- Save images
- Login and copy/delete photos from iCloud
- Web Server
- Provide UI
- iCloud login may face error sometimes. If an email of successful login is sent to your iCloud email, please refresh the page and enter the credentials again. It will work. This problem is hard to fix since PyiCloud is not officially support by Apple :'(
- Videos cannot be processed.
- Significant high usage of both CPU and RAM when object identifying many images.
- Hidden photos are included.
Feel free to contribute to the project by opening issues, submitting feature requests, or creating pull requests. Your feedback and contributions are highly appreciated!
This project is licensed under the MIT License.