Machine Learning Pipeline
In order for Fenify to achieve its objective, I had to build a machine learning model to classify each square on the board into one of 13 classes. This included:
- Synthetic Data Generation: I dynamically rendered over 10,000 realistic chess positions with various board styles, piece sets, and augmentations.
- Dataset Preparation: From there, I extracted and labeled 64 squares per board, balancing class sizes with custom parameters to avoid skewing training data.
- Model Training: I fine-tuned a pretrained MobileNetV2 on chess-piece data with a custom classifier,
- Inference Optimization: Added batch processing and confidence scoring for reduced load and clear debugging,
- Mobile Deployment: and lastly, integrated the TFLite model with the iOS build through Swift platform channels.