This commit is contained in:
tanyar09 2025-11-11 14:45:03 -05:00
parent 52344febad
commit 049f9de4f8

130
README.md
View File

@ -15,9 +15,12 @@ A fast, simple, and modern web application for organizing and tagging photos usi
- **🎨 Flexible Models**: Select ArcFace, Facenet, Facenet512, or VGG-Face recognition models
- **👤 Person Identification**: Identify and tag people across your photo collection
- **🤖 Smart Auto-Matching**: Intelligent face matching with quality scoring and cosine similarity
- **📊 Confidence Calibration**: Empirical-based confidence scores for realistic match probabilities
- **🔍 Advanced Search**: Search by people, dates, tags, and folders
- **🏷️ Tag Management**: Organize photos with hierarchical tags
- **⚡ Batch Processing**: Process thousands of photos efficiently
- **🎯 Unique Faces Filter**: Hide duplicate faces to focus on unique individuals
- **🔄 Real-time Updates**: Live progress tracking and job status updates
- **🔒 Privacy-First**: All data stored locally, no cloud dependencies
---
@ -156,23 +159,9 @@ Then open your browser to **http://localhost:3000**
## 📖 Documentation
- **[Architecture](docs/ARCHITECTURE.md)**: System design and technical details
- **[Web Migration Plan](docs/WEBSITE_MIGRATION_PLAN.md)**: Detailed migration roadmap
- **[Phase 1 Status](docs/PHASE1_FOUNDATION_STATUS.md)**: Phase 1 implementation status
- **[Phase 1 Checklist](docs/PHASE1_CHECKLIST.md)**: Complete Phase 1 checklist
**Phase 2 Features:**
- Photo import via folder scan or file upload
- Background processing with progress tracking
- Real-time job status updates (SSE)
- Duplicate detection by checksum
- EXIF metadata extraction
- DeepFace face detection and recognition pipeline
- Configurable detectors (RetinaFace, MTCNN, OpenCV, SSD)
- Configurable models (ArcFace, Facenet, Facenet512, VGG-Face)
- Process tab UI for face processing
- Job cancellation support
---
*
## 🏗️ Project Structure
@ -204,7 +193,7 @@ punimtag/
## 📊 Current Status
### Phase 1: Foundations ✅ **COMPLETE**
### Foundations
**Backend:**
- ✅ FastAPI application with CORS middleware
@ -230,7 +219,7 @@ punimtag/
- ✅ Indices configured for performance
- ✅ SQLite database at `data/punimtag.db` (auto-created if missing)
### Phase 2: Image Ingestion & Processing ✅ **COMPLETE**
### Image Ingestion & Processing
**Backend:**
- ✅ Photo import service with checksum computation
@ -272,13 +261,45 @@ punimtag/
- ✅ Graceful shutdown handling
- ✅ **String-based function paths for reliable serialization**
### Next: Phase 3 - Identify Workflow & Auto-Match
### Identify Workflow & Auto-Match
- Identify workflow UI
- Auto-match engine with similarity thresholds
- Unidentified faces management
- Person creation and linking
- Batch identification support
**Backend:**
- ✅ Identify face endpoints with person creation
- ✅ Auto-match engine with similarity thresholds
- ✅ Unidentified faces management and filtering
- ✅ Person creation and linking
- ✅ Batch identification support
- ✅ Similar faces search with cosine similarity
- ✅ Confidence calibration system (empirical-based)
- ✅ Face unmatch/removal functionality
- ✅ Batch similarity calculations
**Frontend:**
- ✅ Identify page UI with face navigation
- ✅ Person creation and editing
- ✅ Similar faces panel with confidence display
- ✅ Auto-Match page with person-centric view
- ✅ Checkbox selection for batch identification
- ✅ Confidence percentages with color coding
- ✅ Unique faces filter (hide duplicates)
- ✅ Date filtering for faces
- ✅ Real-time face matching and display
### PSearch & Tags
**Backend:**
- ✅ Search endpoints with filters (people, dates, tags, folders)
- ✅ Tag management endpoints (create, update, delete)
- ✅ Photo-tag linkage system
- ✅ Advanced filtering and querying
- ✅ Photo grid endpoints with pagination
**Frontend:**
- ✅ Search page with advanced filters
- ✅ Tag management UI
- ✅ Photo grid with virtualized rendering
- ✅ Filter by people, dates, tags, and folders
- ✅ Search results display
---
@ -316,60 +337,14 @@ PHOTO_STORAGE_DIR=data/uploads
---
## 🧪 Testing
```bash
# Backend tests (to be implemented)
cd /home/ladmin/Code/punimtag
source venv/bin/activate
export PYTHONPATH=/home/ladmin/Code/punimtag
pytest tests/
# Frontend tests (to be implemented)
cd frontend
npm test
```
---
## 🗺️ Roadmap
### ✅ Phase 1: Foundations (Complete)
- FastAPI backend scaffold
- React frontend scaffold
- Authentication system
- Database setup
- Basic API endpoints
### ✅ Phase 2: Image Ingestion & Processing (Complete)
- ✅ Photo import (folder scan and file upload)
- ✅ Background job processing with RQ
- ✅ Real-time progress tracking via SSE
- ✅ Scan tab UI implementation
- ✅ Duplicate detection and metadata extraction
- ✅ DeepFace face detection and processing pipeline
- ✅ Process tab UI with configuration controls
- ✅ Configurable detectors and models
- ✅ Face processing with progress tracking
- ✅ Job cancellation support
### 🔄 Phase 3: Identify Workflow & Auto-Match (In Progress)
- Identify workflow UI
- Auto-match engine with similarity thresholds
- Unidentified faces management
- Person creation and linking
### 📋 Phase 4: Search & Tags
- Search endpoints with filters
- Tag management UI
- Virtualized photo grid
- Advanced filtering
### 🎨 Phase 5: Polish & Release
### 🔄 Phase 5: Polish & Release (In Progress)
- Performance optimization
- Accessibility improvements
- Production deployment
- Documentation
- Documentation updates
---
@ -436,10 +411,11 @@ npm test
- Single-user mode only (multi-user support planned)
- SQLite for development (PostgreSQL recommended for production)
- No password hashing yet (plain text comparison - fix before production)
- GPU acceleration not yet implemented
- GPU acceleration not yet implemented (CPU-only for now)
- Large databases (>50K photos) may require optimization
- DeepFace model downloads on first use (can take 5-10 minutes)
- Face processing is CPU-intensive (GPU support planned for future)
- DeepFace model downloads on first use (can take 5-10 minutes, ~100MB)
- Face processing is CPU-intensive (~2-3x slower than face_recognition, but more accurate)
- First run is slower due to model downloads (subsequent runs are faster)
---
@ -455,6 +431,8 @@ PunimTag Development Team
---
## 🙏 Acknowledgments
- **DeepFace** library by Sefik Ilkin Serengil - Modern face recognition framework
@ -468,12 +446,10 @@ PunimTag Development Team
For questions or issues:
1. Check documentation in `docs/`
2. See [Phase 1 Checklist](docs/PHASE1_CHECKLIST.md) for implementation status
3. Review [Migration Plan](docs/WEBSITE_MIGRATION_PLAN.md) for roadmap
---
**Made with ❤️ for photo enthusiasts**
*For the desktop version, see [README_DESKTOP.md](README_DESKTOP.md)*