File size: 2,014 Bytes
2d7d9e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
---
license: mit
language:
- en
tags:
- computer-vision
- object-detection
- yolov5
- edge-deployment
- ncnn
- onnx
- arm
metrics:
- mAP
model-index:
- name: Carwin Element Detection
  results:
  - task:
      type: object-detection
    dataset:
      type: desktop-ui-elements
      name: Desktop UI Elements
    metrics:
    - type: mAP@0.5
      value: 0.925
    - type: mAP@0.5:0.95
      value: 0.648
---

# 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

| Metric | Value |
|--------|-------|
| mAP@0.5 | **0.925** |
| mAP@0.5:0.95 | **0.648** |
| Training images | 10,825 |

## 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

```python
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:

```bash
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