Instructions to use JcProg/PCBInspect-LeadDefect with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use JcProg/PCBInspect-LeadDefect with ultralytics:
# Couldn't find a valid YOLO version tag. # Replace XX with the correct version. from ultralytics import YOLOvXX model = YOLOvXX.from_pretrained("JcProg/PCBInspect-LeadDefect") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
|
Download README.md from JcProg/PCBInspect-LeadDefect: direct link, hf CLI and curl.
- Browser
- Download file 2.7 kB
-
https://huggingface.co/JcProg/PCBInspect-LeadDefect/resolve/main/README.md
- Command line
-
hf download hf://JcProg/PCBInspect-LeadDefect/README.md
-
curl -L -o README.md https://huggingface.co/JcProg/PCBInspect-LeadDefect/resolve/main/README.md
2.7 kB
| license: mit | |
| tags: | |
| - image-classification | |
| - pcb | |
| - aoi | |
| - yolo26 | |
| - onnx | |
| - computer-vision | |
| - dataset:custom | |
| library_name: ultralytics | |
| pipeline_tag: image-classification | |
| # PCBInspect-LeadDefect | |
| Part of the **SentinelPCB defect-inspection router**: a region classifier dispatches each | |
| component ROI crop to a region-specific defect classifier. Sibling repos: | |
| [PCBInspect-Region](https://huggingface.co/JcProg/PCBInspect-Region), [PCBInspect-BodyDefect](https://huggingface.co/JcProg/PCBInspect-BodyDefect), [PCBInspect-LeadDefect](https://huggingface.co/JcProg/PCBInspect-LeadDefect), [PCBInspect-TextDefect](https://huggingface.co/JcProg/PCBInspect-TextDefect). | |
| Companion structural-feature detector (unrelated task — detects MountingHole/ComponentBody/ | |
| SolderJoint/Lead, not defects): [PCBInspect-AI](https://huggingface.co/JcProg/PCBInspect-AI). | |
| ## Role | |
| Defect classifier for crops routed as `Lead`. Binary: defect-free vs insufficient solder. Classes are naturally balanced (~1,846 each) - no rebalancing needed. | |
| ## Model | |
| - Base: `yolo26s-cls` ([Ultralytics](https://docs.ultralytics.com/models/yolo26/)), | |
| classification head, fine-tuned on AOI component-ROI crops. | |
| - Export: ONNX, opset 17, no NMS (classification only) — single input | |
| `images` `(1, 3, 640, 640)` RGB, normalized `/255`, NCHW; single output `output0` | |
| `(1, 2)` raw logits (apply softmax yourself for probabilities). | |
| - Classes (2), index order = `labels.json`: **Golden, SolderInsufficient**. | |
| ## Data | |
| Trained on a proprietary AOI dataset of SMT component-ROI crops (paired defect-free reference + | |
| defective capture per physical site), not publicly released. Split is grouped by physical | |
| capture site (never by raw image) so a component's reference and defect crop never straddle | |
| train/val/test. | |
| ## Metrics | |
| **val** (top-1 0.996, macro-F1 0.996, n=736): | |
| | class | precision | recall | f1 | support | | |
| |---|---|---|---|---| | |
| | Golden | 0.997 | 0.995 | 0.996 | 369 | | |
| | SolderInsufficient | 0.995 | 0.997 | 0.996 | 367 | | |
| **test** (top-1 0.996, macro-F1 0.996, n=754): | |
| | class | precision | recall | f1 | support | | |
| |---|---|---|---|---| | |
| | Golden | 0.995 | 0.997 | 0.996 | 377 | | |
| | SolderInsufficient | 0.997 | 0.995 | 0.996 | 377 | | |
| ## Limitations | |
| None observed; test top-1/macro-F1 both 0.996 (n=754). | |
| ## Usage | |
| ```python | |
| import onnxruntime as ort | |
| import numpy as np | |
| from PIL import Image | |
| sess = ort.InferenceSession("model.onnx", providers=["CPUExecutionProvider"]) | |
| img = Image.open("crop.jpg").convert("RGB").resize((640, 640)) | |
| x = (np.asarray(img, dtype=np.float32) / 255.0).transpose(2, 0, 1)[None, ...] | |
| (logits,) = sess.run(None, {"images": x}) | |
| probs = np.exp(logits) / np.exp(logits).sum() | |
| print(probs) | |
| ``` | |