81 lines
1.9 KiB
Markdown
81 lines
1.9 KiB
Markdown
# System Architecture
|
|
|
|
## Piece Recognition Pipeline
|
|
1. Board Detection
|
|
- VNDetectRectanglesRequest for board location
|
|
- Aspect ratio and size validation
|
|
- Square extraction with equal dimensions
|
|
|
|
2. Image Preprocessing
|
|
- Contrast and brightness adjustment
|
|
- Unsharp mask for edge enhancement
|
|
- Consistent image scaling
|
|
|
|
3. ML Classification
|
|
- CoreML model prediction
|
|
- Confidence score analysis
|
|
- Position-based adjustments
|
|
|
|
## Recognition Patterns
|
|
|
|
### Square Classification
|
|
1. Empty Square Detection
|
|
- Exact empty_dark/empty_light matching
|
|
- High confidence threshold (>0.9)
|
|
- Early detection and return
|
|
|
|
2. Piece Recognition
|
|
- Strict label format validation
|
|
- Position-based confidence adjustment
|
|
- Piece count tracking
|
|
|
|
3. Error Prevention
|
|
- Empty square validation
|
|
- Label format checking
|
|
- Position rule enforcement
|
|
|
|
### Classification Flow
|
|
1. Input Validation
|
|
- Image dimensions check
|
|
- Model availability check
|
|
- Configuration setup
|
|
|
|
2. Square Analysis
|
|
- Empty square check first
|
|
- Piece classification second
|
|
- Position validation last
|
|
|
|
3. Confidence Checks
|
|
- Empty squares: >0.9
|
|
- Pieces: >0.98 with >5.0 ratio
|
|
- Position adjustments
|
|
|
|
4. Error Handling
|
|
- Clear error messages
|
|
- Detailed logging
|
|
- Safe fallbacks
|
|
|
|
## Validation Patterns
|
|
1. Piece Count Rules
|
|
- Maximum 1: king, queen
|
|
- Maximum 2: rooks, bishops, knights
|
|
- Maximum 8: pawns
|
|
- Track by color and type
|
|
|
|
2. Position Rules
|
|
- Kings: not on opponent's back rank
|
|
- Pawns: no backward movement
|
|
- All pieces: within board bounds
|
|
- All pieces: valid movement patterns
|
|
|
|
3. Piece Tracking
|
|
- Maximum piece counts
|
|
- Color-specific tracking
|
|
- Total position validation
|
|
- Captured piece limits
|
|
|
|
4. Recognition Flow
|
|
- Empty square detection first
|
|
- Piece classification second
|
|
- Position validation last
|
|
- Clear error reporting
|