Carwin Desktop UI Element Detection (YOLOv5n)
A lightweight YOLOv5n model trained to detect interactive UI elements on desktop screens (buttons, icons, input fields, checkboxes, etc.).
Model Details
- Architecture: YOLOv5n (ReLU activation, SiLU→ReLU for RKNN/NCNN compatibility)
- Input: 640×640 RGB
- Output: Single class "element" — bounding boxes for interactive UI regions
- Model size: 5.3 MB (PyTorch), 7.5 MB (ONNX)
- Training: 200 epochs on NVIDIA B200 (single GPU)
Performance
Edge Deployment
Deployed to ARM Cortex-A7 via NCNN INT8 quantization:
| Resolution | Inference Time |
|---|---|
| 640×640 | 6.5s |
| 320×320 | 1.6s |
| 160×160 | 370ms |
ONNX → NCNN → INT8 quantization pipeline included in the training repository.
Usage
import torch
# Load model
model = torch.hub.load('ultralytics/yolov5', 'custom', path='model.pt')
model.conf = 0.25
# Run inference
results = model('screenshot.png')
results.show()
Files
model.pt— PyTorch weights (5.3 MB)model.onnx— ONNX export (7.5 MB, opset 12, batch=1, 640×640)
Training
Trained from yolov5n.pt pretrained weights with:
python train.py --data dataset.yaml --weights yolov5n.pt \
--epochs 200 --batch-size 64 --device 0 --imgsz 640 \
--single-cls --amp=False
- GPU: NVIDIA B200 (180 GB)
- PyTorch: 2.12 + CUDA 13.0
- Dataset: 10,825 annotated desktop screenshots
License
MIT
Evaluation results
- mAP@0.5 on Desktop UI Elementsself-reported0.925
- mAP@0.5:0.95 on Desktop UI Elementsself-reported0.648