# PunimTag **Photo Management and Facial Recognition System** A powerful desktop application for organizing and tagging photos using advanced facial recognition AI. --- ## ๐ŸŽฏ Features - **Automated Face Detection**: Detect faces in your photos automatically - **Person Identification**: Identify and tag people across your photo collection - **Smart Auto-Matching**: Intelligent face matching with quality scoring - **Advanced Search**: Search by people, dates, tags, and folders - **Tag Management**: Organize photos with hierarchical tags - **Batch Processing**: Process thousands of photos efficiently - **Privacy-First**: All data stored locally by default --- ## ๐Ÿš€ Quick Start ### Prerequisites - Python 3.12 or higher - pip package manager - Virtual environment (recommended) ### Installation ```bash # Clone the repository git clone cd punimtag # Create and activate virtual environment python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install dependencies pip install -r requirements.txt ``` ### Running the Application #### GUI Dashboard (Recommended) ```bash python src/gui/dashboard_gui.py ``` #### CLI Interface ```bash python src/photo_tagger.py --help ``` --- ## ๐Ÿ“– Documentation - **[Architecture](docs/ARCHITECTURE.md)**: System design and technical details - **[Demo Guide](docs/DEMO.md)**: Step-by-step tutorial - **[Dashboard Guide](docs/README_UNIFIED_DASHBOARD.md)**: GUI reference - **[Contributing](CONTRIBUTING.md)**: How to contribute --- ## ๐Ÿ—๏ธ Project Structure ``` punimtag/ โ”œโ”€โ”€ src/ # Source code โ”‚ โ”œโ”€โ”€ core/ # Business logic โ”‚ โ”œโ”€โ”€ gui/ # GUI components โ”‚ โ””โ”€โ”€ utils/ # Utilities โ”œโ”€โ”€ tests/ # Test suite โ”œโ”€โ”€ docs/ # Documentation โ”œโ”€โ”€ .notes/ # Project notes โ””โ”€โ”€ data/ # Application data ``` See [Directory Structure](.notes/directory_structure.md) for details. --- ## ๐ŸŽฎ Usage ### 1. Import Photos ```bash # Add photos from a folder python src/photo_tagger.py scan /path/to/photos ``` ### 2. Process Faces Open the dashboard and click "Process Photos" to detect faces. ### 3. Identify People Use the "Identify" panel to tag faces with names. ### 4. Search Use the "Search" panel to find photos by people, dates, or tags. --- ## ๐Ÿ”ง Configuration Edit `src/core/config.py` to customize: - Face detection model (HOG/CNN) - Similarity tolerance - Batch sizes - Quality thresholds --- ## ๐Ÿงช Testing ```bash # Run all tests python -m pytest tests/ # Run specific test python tests/test_deepface_gui.py ``` --- ## ๐Ÿ—บ๏ธ Roadmap ### Current (v1.0) - โœ… Unified dashboard interface - โœ… Face detection and identification - โœ… Tag management system - โœ… Advanced search ### Next (v1.1) - ๐Ÿ”„ DeepFace migration (in progress) - ๐Ÿ”„ Enhanced accuracy with ArcFace - ๐Ÿ“‹ GPU acceleration - ๐Ÿ“‹ Performance optimization ### Future - Web interface - Cloud storage integration - Mobile app - Video face detection - Face clustering --- ## ๐Ÿค Contributing We welcome contributions! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. ### Quick Contribution Guide 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests 5. Submit a pull request --- ## ๐Ÿ“Š Current Status - **Version**: 1.0 (Development) - **Face Recognition**: face_recognition library - **Database**: SQLite - **GUI**: Tkinter - **Platform**: Cross-platform (Linux, Windows, macOS) --- ## ๐Ÿ› Known Issues - Large databases (>50K photos) may experience slowdown - Face recognition accuracy depends on photo quality - No GPU acceleration yet See [Task List](.notes/task_list.md) for all tracked issues. --- ## ๐Ÿ“ License [Add your license here] --- ## ๐Ÿ‘ฅ Authors PunimTag Development Team --- ## ๐Ÿ™ Acknowledgments - face_recognition library by Adam Geitgey - DeepFace library by serengil - All contributors and users --- ## ๐Ÿ“ง Contact [Add contact information] --- ## โญ Star History If you find this project useful, please consider giving it a star! --- **Made with โค๏ธ for photo enthusiasts**