Editor's Note: This project and README was created entirely via prompts to ChatGPT and Claude. I have edited at most 5 lines of code.
Find out who someone looks like
This project provides a toolkit for clustering and managing faces in a photo library. It utilizes face detection and clustering techniques to help users organize their photos by identifying similar faces. The graphical user interface (GUI) enables manual review, merging of clusters, and enhanced organization. This toolkit can be used by photographers, archivists, or anyone looking to manage large collections of photos with identifiable faces.
- Face detection and embedding generation using
face_recognition. - Clustering of face embeddings using DBSCAN.
- GUI-based manual review and management of clusters, built with Tkinter.
- Efficient caching and reloading of previously computed face embeddings to save time.
cluster_management_tool.py: The main script that allows users to select a photo directory, detect faces, cluster them, and manage clusters through a GUI.face_utils.py: Contains utility functions for image processing, caching, and displaying similar faces for clustering.requirements.txt: Lists all dependencies required to run the project.
- Python 3.7 or higher
pipfor managing Python packages
To install the required dependencies, run:
pip install -r requirements.txtDependencies include:
numpyface_recognitionscikit-learnPillowtkinter(pre-installed with Python)
-
Run the Tool:
python cluster_management_tool.py
-
Select Photo Library Directory: When prompted, select the directory containing your images.
-
Face Detection and Clustering: The tool will automatically detect faces, create embeddings, and cluster similar faces.
-
Manual Review: Use the GUI to manually review clusters and merge similar faces as needed.
- The GUI allows you to browse different face clusters, view individual faces, and manage clusters by merging similar ones.
Contributions are welcome! If you'd like to contribute, please fork the repository and create a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
face_recognitionlibrary by Adam Geitgey for providing the core face detection and embedding capabilities.scikit-learnfor clustering utilities.