ChessPrism/cline_docs/systemPatterns.md
2025-01-13 12:42:20 -06:00

93 lines
1.9 KiB
Markdown

# System Patterns
## Model Architecture
1. Core ML Integration
- Vision framework for image handling
- Direct category mapping
- No intermediate transformations
2. Classification Flow
```
Image → VNImageRequestHandler → VNCoreMLRequest → VNClassificationObservation → SquareClassification
```
3. Category System
- 12 piece categories:
* white_pawn to white_king
* black_pawn to black_king
- Empty square fallback
- No background variations in model
## Processing Pipeline
1. Board Detection
- VNDetectRectanglesRequest
- Aspect ratio validation
- Square extraction
2. Image Processing
- Contrast enhancement
- Edge sharpening
- Noise reduction
- Center crop
3. Classification
- Vision framework integration
- Confidence threshold
- Error handling
## Code Organization
1. Recognition Layer
```
PieceRecognizer
├── Model loading
├── Image preprocessing
└── Classification handling
```
2. Model Layer
```
SquareClassification
├── Category mapping
├── Piece type/color
└── Empty square handling
```
3. Core Components
```
BoardDetector
├── Rectangle detection
├── Square extraction
└── Position validation
```
## Data Flow
1. Capture
```
ScreenCapture → Raw Image → Board Rectangle
```
2. Processing
```
Board Rectangle → Individual Squares → Preprocessed Images
```
3. Classification
```
Preprocessed Images → ML Model → Piece Categories → Chess Position
```
## Key Patterns
1. Direct Integration
- Vision framework throughout
- No intermediate conversions
- Consistent image handling
2. Error Handling
- Early validation
- Graceful fallbacks
- Detailed logging
3. Performance
- Shared CIContext
- Efficient image processing
- Optimized model loading