--- language: - en tags: - object-detection - yolo - yolov11 - motherboard pretty_name: Mother Board Parts Locator pipeline_tag: object-detection base_model: - Ultralytics/YOLO11 --- # Motherboard Part Locator **By Kamila Lopez-Avendano** This object detection model identifies ket parts of a motherboard. This fine-tuned in Yolov11n and is aimed to aid first-time pc builders in real time to give visual guidance when assembling their PC. The model uses Ultralytics and uses the nano variant for speed over accurarcy, enabling real-time inference so users can contiune their builds. **Architecture:** Yolov11n (nano) **Task:** Object detection (boxes) **Framework:** Ultralytics # Training Data **Forked From:** GradResearch Computer Vision Model - https://universe.roboflow.com/gradresearch/gradresearch **Classes:** 5 **Images:** 95 **Dataset:** Motherboard Part Locator (v5) - https://universe.roboflow.com/bis497/motherboard-part-locater **Classes:** 4 **Images (preaugmentation):** 206 **Images (post):** 472 | Class Name | |------------------| | CPU Socket | | PCIe Slot | | Power Connector | | RAM Slot | ### Final Class Distribution | Class | Annotations | |-----------------|-------------| | CPU Socket | 205 | | PCIe Slot | 444 | | Power Connector | 320 | | RAM Slot | 221 | ![Label Distribution](images/labels.jpg) ### Data Collection Methodology 1. **Image Collection:** An R script was created to scrap 500 bare motherboard images from Bing images. This was created using 'httr', 'rvest', 'magick', and 'digest'. This was then manually reviewed and reduced to 101. 2. **Locating More Images:** The dataset 'GradResearch Computer Vision Model' was found on Roboflow. This would be the forked dataset that would be used as a base. 3. **Label Standardization:** The labels of the forked dataset were changed and standardized. An extra 'cpu' was removed and correctly labeled, leaving 4 classes. 4. **Annotation**: Half of the new 101 images were manually annotated. The later half was annotated with the forked model, then later reviewed again. To note, the forked model could not identify CPU Sockets. 5. **Preprocessing:** Preprocessing was applied; all images are now 640x640. **Note:** The dataset contained mixed detect/segment annotations inherited from the original fork. Only bounding box annotations were used during final training. ### Dataset Splits | Split | Images (pre-augmentation) | Split % | |------------|--------------------------|---------| | Train | 134 → 399 augmented | 65% | | Validation | 49 | 24% | | Test | 24 | 12% | **Augmentations (applied to expand dataset to 472 images):** - Horizontal flip - Rotation ±15° - Blur up to 1.3× - Noise # Training Procedure **Hardware:** A100 **Training time:** ~0.07 hours **Platform:** Google Colab **Epochs:** 100 **Patience:** 50 # Evaluation Results ### Overall Metrics | Metric | Score | |----------------|--------| | Precision | 0.889 | | Recall | 0.761 | | mAP@50 | 0.827 | | mAP@50-95 | 0.559 | ### Per-Class Metrics (Validation) | Class | Precision | Recall | mAP@50 | mAP@50-95 | |-----------------|-----------|--------|--------|-----------| | CPU Socket | 0.967 | 0.894 | 0.963 | 0.678 | | PCIe Slot | 0.878 | 0.602 | 0.690 | 0.417 | | Power Connector | 0.811 | 0.755 | 0.815 | 0.560 | | RAM Slot | 0.899 | 0.792 | 0.839 | 0.592 | ![Confusion Matrix](images/Confusion%20Matrix) ![Training Curves](images/Training%20Curves) ![Training Results](images/results.png) ## Comparison: Original (Forked) vs. This Model (v5) | Metric | Original (Forked) | v5 (This Model) | |-------------|-------------------|-----------------| | Images | 195 (150/30/15) | 472 augmented | | Split | 77/15/8% | 65/24/12% | | mAP@50 | 91.9% | **82.7%** | | mAP@50-95 | N/A | **55.9%** | | Precision | 87.7% | **88.9%** | | Recall | 88.2% | **76.1%** | The lower mAP@50 compared to the original fork is expected. The success criteria set (mAP@50 > 75% and Precision > 60%) were met! # Limitations and Biases - **PCIe Slot performance is the weakest class** (mAP@50 = 0.69, Recall = 0.60). The confusion matrix shows PCIe Slots are frequently missed (35 background false negatives) and occasionally confused with Power Connectors. This is likely because the scarcity of close-up or angled PCIe Slot images and itr's confusion with the RAM. - **Small dataset:** ~206 raw images is a limited training set. - **Only 4 classes:** A beginner builder also needs to identify storage connectors (M.2, SATA), fan headers, front panel connectors, and I/O ports. This model does not detect those and will need them to be added to be more useful to a beginner PC builder. - **Nano-sized for speed:** The YOLOv11n trades accuracy for speed.