/ Модель

Характеристики

Лицензия
MIT
Библиотека
ultralytics
Опубликована
4 окт 2026

pcb-aoi-yolo-rmutt

Поиск объектовИзображение → bounding_boxes

Модель YOLO26 обнаруживает 11 типов электронных компонентов на изображениях печатных плат для автоматизированного оптического контроля.

538скачиваний за 30 дней0лайковвеса обновлены12 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Это модель компьютерного зрения на базе YOLO26 для обнаружения 11 классов электронных компонентов на печатных платах. Её разработали для системы автоматизированного оптического контроля в Университете технологии Раджамангала Тханьябури (RMUTT). Репозиторий содержит веса Ultralytics в форматах ONNX и safetensors; в README также описаны веса PyTorch. Размер изображения при оценке — 640 пикселей. Модель принимает изображения и возвращает классы и координаты обнаруженных компонентов.

Модель предназначена для поиска компонентов на кадрах с камеры и проверки их расположения и типа относительно эталонной платы. Она распознаёт buzzer, capacitor, clock, connector, display, IC, LED, potentiometer, resistor, switch и transistor, включая компоненты для монтажа в отверстия и поверхностного монтажа. В тесте основной версии v6 на 43 изображениях указаны mAP@0.50 98,8% и F1 98,1%; это метрики обнаружения компонентов, а не точности итогового решения PASS/FAIL.

Модель обучена на фотографиях плат и условиях освещения проекта, поэтому для других плат, камер и освещения могут потребоваться новые данные. Класс diode отсутствует, а ограничение max_det=300 может приводить к пропуску компонентов в кадрах с большим числом объектов. Лицензия репозитория — MIT.

Сценарии применения

  • поиск компонентов на фотографиях печатных плат
  • проверка типа и наличия компонентов относительно эталонной платы
  • автоматизированный оптический контроль сборки PCB
  • обнаружение поверхностно-монтируемых и выводных компонентов
  • анализ кадров с камеры системы инспекции плат

Ограничения

Модель обучена на платах и условиях освещения проекта, поэтому качество на других платах, камерах и освещении может снизиться. Класс diode отсутствует, а предел max_det=300 может привести к пропуску объектов в очень плотном кадре; метрики обнаружения не измеряют точность итоговой проверки PASS/FAIL.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

PCB AOI · YOLO26 electronic component detector (RMUTT)

YOLO26 models that find 11 kinds of electronic components on printed circuit boards. They are the vision part of a PCB automated optical inspection (AOI) machine built at Rajamangala University of Technology Thanyaburi (RMUTT): a 4K camera on an XY gantry visits every point of a board, the model detects the parts in each frame, and the machine compares them with a golden reference board to decide PASS / FAIL for every part (OK, MISSING, WRONG type, EXTRA).

ภาษาไทย: โมเดล YOLO26 สำหรับตรวจจับชิ้นส่วนอิเล็กทรอนิกส์ 11 ชนิดบนแผ่น PCB ใช้ในเครื่องตรวจจับความสมบูรณ์ของแผ่น PCB ด้วยปัญญาประดิษฐ์ ของมหาวิทยาลัยเทคโนโลยีราชมงคลธัญบุรี โมเดลหลักคือ new_dataset_v6_split_v1_aug_v2_m/weights/best.pt (mAP50 98.8% และ F1 98.1% บนชุดทดสอบ) ส่วนรุ่นล่าสุดคือ v7

Predictions on validation images

Which file to use

ModelPathNotes
Main model (v6)new_dataset_v6_split_v1_aug_v2_m/weights/best.ptUsed on the machine and in the thesis. Evaluated on the held-out test set.
Latest (v7)new_dataset_v7_split_v1_aug_v2_m/weights/best.ptSame recipe on v7 data (v6 + the data_fix_con set, 40 more images). Validation results only so far.

Every other folder is an earlier experiment (25 training runs in total), kept with its args.yaml, results.csv and plots so the work can be traced. Each folder is one run: weights/best.pt, weights/last.pt, training curves, confusion matrices and sample batches.

Classes

buzzer · capacitor · clock · connector · display · ic · led · potentiometer · resistor · switch · transistor

(class ids 0–10 in this order). Both through-hole and surface-mount parts are labelled. The diode class used in earlier runs was dropped: it had too few examples to train or measure reliably.

Results

Main model (v6), held-out test set

43 images and 1,372 boxes that were never used for training or model selection, image size 640 px.

mAP@0.50mAP@0.50:0.95PrecisionRecallF1
98.8%95.8%97.2%99.1%98.1%

Per class (test set):

ClassPrecisionRecallAP50AP50-95
buzzer96.1100.099.597.1
capacitor97.598.898.796.0
clock92.1100.093.793.7
connector99.397.599.496.7
display97.898.699.597.9
ic98.1100.099.097.2
led97.498.499.597.9
potentiometer92.8100.099.599.5
resistor98.498.799.188.4
switch99.399.699.598.7
transistor99.998.799.491.0

potentiometer has only 2 boxes and clock 12 boxes in the test set, so their numbers move more than the others.

Validation (best epoch of each run)

RunDatamAP@0.50mAP@0.50:0.95PrecisionRecall
v6 new_dataset_v6_split_v1_aug_v2_m43 images97.2%92.7%95.4%96.6%
v7 new_dataset_v7_split_v1_aug_v2_m47 images97.3%93.4%96.6%96.4%

The two validation sets differ by 4 images, so these rows are not a direct comparison.

Speed (main model, 640 px)

Median time per image (preprocess + inference + postprocess) on 114 real images from the machine:

DeviceBackendTime / imageImages / s
NVIDIA Jetson Orin Nano (on the machine)CUDA72.6 ms13.4
Apple Silicon MacMPS26.4 ms38.1

Training

Base modelyolo26m.pt (pretrained, transfer learning)
Image size / batch640 / 16
Epochs60 (patience 20); v6 best at epoch 46
Optimizerauto, lr0 0.01, lrf 0.01, momentum 0.937, weight decay 0.0005, warmup 3
Online augmentationmosaic 1.0 (off for the last 10 epochs), fliplr 0.5, hsv 0.02 / 0.8 / 0.4, scale 0.5, translate 0.1
HardwareApple Silicon Mac, PyTorch MPS, AMP
Timev6 2.2 h · v7 2.5 h

Data

Photos of real boards, labelled for this project and split before augmentation:

v6 trainv6 validv6 testv7 trainv7 validv7 test
Original images34443433764747
Images used1,03243431,1284747
Boxes33,8431,2931,37236,5251,4011,494

Offline augmentation, train split only, ×3 (the original plus 2 copies): horizontal and vertical flips, 90° / 180° / 270° rotations, brightness ±15 and exposure ±10%, seed 42. v7 is v6 merged with the data_fix_con set, each image kept in its original split; no exact or near-duplicate images were found across the two sources or across splits.

Usage

from huggingface_hub import hf_hub_download
from ultralytics import YOLO

weights = hf_hub_download(
    "Moszer777/pcb-aoi-yolo-rmutt",
    "new_dataset_v6_split_v1_aug_v2_m/weights/best.pt",
)
model = YOLO(weights)

result = model.predict("board.jpg", imgsz=640, conf=0.25)[0]
for box in result.boxes:
    name = result.names[int(box.cls)]
    x1, y1, x2, y2 = box.xyxy[0].tolist()
    print(name, round(float(box.conf), 3), ((x1 + x2) / 2, (y1 + y2) / 2))

On the machine the detections are matched to a golden reference: each reference point takes the nearest unclaimed detection within 50 px; the same type is OK, a different type is WRONG, none is MISSING, and leftover detections are EXTRA. Any MISSING or WRONG (or EXTRA, when enabled) makes the point FAIL. The machine also takes several frames per point (default 5) and counts a part as present when it is found in at least 80% of them.

Limitations

  • Trained on the boards and lighting of this project. Other boards, cameras or lighting need new data to reach the same accuracy.
  • The scores above are box detection scores. Board-level PASS / FAIL accuracy depends on the reference profile and the matching settings and has to be measured on real good and faulty boards.
  • No diode class.
  • max_det is 300 per image (YOLO26 default); a single frame with more parts than that will miss some.

Links

Department of Electronics and Telecommunication Engineering, Faculty of Engineering, Rajamangala University of Technology Thanyaburi (RMUTT), 2026.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · ultralytics

Нельзя запустить

Модели Ultralytics YOLO требуют отдельного рантайма.

Ревизия весов
528f75c

0 моделей