readme
This commit is contained in:
parent
52344febad
commit
049f9de4f8
130
README.md
130
README.md
@ -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)*
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user