Instructions to use docling-project/ScreenParser with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use docling-project/ScreenParser with ultralytics:
# Couldn't find a valid YOLO version tag. # Replace XX with the correct version. from ultralytics import YOLOvXX model = YOLOvXX.from_pretrained("docling-project/ScreenParser") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
Update ScreenParser for ScreenParse v2
Browse filesUpload detector checkpoint trained on ScreenParse v2 leaf-element annotations and update the model card. The v1 detector remains available on the v1 branch.
README.md
CHANGED
|
@@ -18,18 +18,22 @@ library_name: ultralytics
|
|
| 18 |
|
| 19 |
# ScreenParser
|
| 20 |
|
| 21 |
-
**ScreenParser** is a YOLO-based UI element detector fine-tuned on [ScreenParse](https://huggingface.co/docling-project/screenparse), a large-scale dataset of
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
|
| 23 |
- **Developed by**: IBM Research - ETH Zurich
|
| 24 |
- **Model type**: Object detection (YOLO11-L)
|
| 25 |
- **License**: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)
|
| 26 |
-
- **Paper**: [ScreenParse: Moving Beyond Sparse Grounding with Complete Screen Parsing](
|
| 27 |
-
- **Code**:
|
| 28 |
-
- **Dataset**: [docling-project/screenparse](https://huggingface.co/docling-project/screenparse)
|
| 29 |
|
| 30 |
## Model Summary
|
| 31 |
|
| 32 |
-
ScreenParser is a [YOLO11-Large](https://docs.ultralytics.com/models/yolo11/) model
|
| 33 |
|
| 34 |
### Supported Classes (55)
|
| 35 |
|
|
@@ -41,10 +45,8 @@ Table, Column/Browser, Button, Utility Button, App Icon, Navigation Bar, Status
|
|
| 41 |
|
| 42 |
```python
|
| 43 |
from ultralytics import YOLO
|
| 44 |
-
from PIL import Image
|
| 45 |
|
| 46 |
model = YOLO("docling-project/ScreenParser")
|
| 47 |
-
|
| 48 |
results = model.predict("screenshot.png", imgsz=1280, conf=0.10, iou=0.10)
|
| 49 |
|
| 50 |
for r in results:
|
|
@@ -61,21 +63,14 @@ import os
|
|
| 61 |
from ultralytics import YOLO
|
| 62 |
|
| 63 |
model = YOLO("docling-project/ScreenParser")
|
| 64 |
-
|
| 65 |
-
|
| 66 |
images = sorted(
|
| 67 |
-
os.path.join(
|
|
|
|
| 68 |
if f.lower().endswith((".png", ".jpg", ".jpeg"))
|
| 69 |
)
|
| 70 |
|
| 71 |
results = model.predict(images, imgsz=1280, conf=0.10, iou=0.10, batch=16)
|
| 72 |
-
|
| 73 |
-
for path, r in zip(images, results):
|
| 74 |
-
print(f"--- {os.path.basename(path)} ({len(r.boxes)} elements) ---")
|
| 75 |
-
for box, cls_id, conf in zip(r.boxes.xyxy, r.boxes.cls, r.boxes.conf):
|
| 76 |
-
x1, y1, x2, y2 = box.tolist()
|
| 77 |
-
label = model.names[int(cls_id)]
|
| 78 |
-
print(f" {label:20s} conf={conf:.2f} bbox=({int(x1)}, {int(y1)}, {int(x2-x1)}, {int(y2-y1)})")
|
| 79 |
```
|
| 80 |
|
| 81 |
### Save Visualizations
|
|
@@ -88,11 +83,16 @@ results = model.predict("screenshot.png", imgsz=1280, conf=0.10, iou=0.10, save=
|
|
| 88 |
# Annotated image saved under runs/detect/predict/
|
| 89 |
```
|
| 90 |
|
| 91 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 92 |
|
| 93 |
## Limitations
|
| 94 |
|
| 95 |
-
-
|
|
|
|
| 96 |
|
| 97 |
## Citation
|
| 98 |
|
|
|
|
| 18 |
|
| 19 |
# ScreenParser
|
| 20 |
|
| 21 |
+
**ScreenParser** is a YOLO-based UI element detector fine-tuned on [ScreenParse](https://huggingface.co/datasets/docling-project/screenparse), a large-scale dataset of web page screenshots with dense UI annotations across **55 UI element classes**. Given a screenshot, it detects and classifies visible UI components with bounding boxes and confidence scores.
|
| 22 |
+
|
| 23 |
+
## News
|
| 24 |
+
|
| 25 |
+
- **May 2026**: Updated `main` with the detector trained on ScreenParse v2, which contains 1,447,100 high-quality training screenshots, leaf-element annotations, and varied viewport resolutions. The original detector trained on ScreenParse v1 is retained on the `v1` branch.
|
| 26 |
|
| 27 |
- **Developed by**: IBM Research - ETH Zurich
|
| 28 |
- **Model type**: Object detection (YOLO11-L)
|
| 29 |
- **License**: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)
|
| 30 |
+
- **Paper**: [ScreenParse: Moving Beyond Sparse Grounding with Complete Screen Parsing](https://arxiv.org/abs/2602.14276)
|
| 31 |
+
- **Code**: https://github.com/Saidgurbuz/screenparse
|
| 32 |
+
- **Dataset**: [docling-project/screenparse](https://huggingface.co/datasets/docling-project/screenparse)
|
| 33 |
|
| 34 |
## Model Summary
|
| 35 |
|
| 36 |
+
ScreenParser is a [YOLO11-Large](https://docs.ultralytics.com/models/yolo11/) model fine-tuned at 1280px resolution on ScreenParse v2. The v2 detector uses the filtered leaf-element annotations released with the current dataset `main` branch.
|
| 37 |
|
| 38 |
### Supported Classes (55)
|
| 39 |
|
|
|
|
| 45 |
|
| 46 |
```python
|
| 47 |
from ultralytics import YOLO
|
|
|
|
| 48 |
|
| 49 |
model = YOLO("docling-project/ScreenParser")
|
|
|
|
| 50 |
results = model.predict("screenshot.png", imgsz=1280, conf=0.10, iou=0.10)
|
| 51 |
|
| 52 |
for r in results:
|
|
|
|
| 63 |
from ultralytics import YOLO
|
| 64 |
|
| 65 |
model = YOLO("docling-project/ScreenParser")
|
| 66 |
+
image_dir = "screenshots/"
|
|
|
|
| 67 |
images = sorted(
|
| 68 |
+
os.path.join(image_dir, f)
|
| 69 |
+
for f in os.listdir(image_dir)
|
| 70 |
if f.lower().endswith((".png", ".jpg", ".jpeg"))
|
| 71 |
)
|
| 72 |
|
| 73 |
results = model.predict(images, imgsz=1280, conf=0.10, iou=0.10, batch=16)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 74 |
```
|
| 75 |
|
| 76 |
### Save Visualizations
|
|
|
|
| 83 |
# Annotated image saved under runs/detect/predict/
|
| 84 |
```
|
| 85 |
|
| 86 |
+
## Training Data
|
| 87 |
+
|
| 88 |
+
The current `main` checkpoint was trained on [ScreenParse v2](https://huggingface.co/datasets/docling-project/screenparse), which provides 1,447,100 high-quality training screenshots and 25,575,213 UI element annotations. The dataset uses filtered leaf-element annotations to reduce noisy nested boxes and includes multiple viewport resolutions.
|
| 89 |
+
|
| 90 |
+
The original ScreenParser checkpoint trained on ScreenParse v1 remains available with `revision="v1"`.
|
| 91 |
|
| 92 |
## Limitations
|
| 93 |
|
| 94 |
+
- Produces bounding boxes and element labels only; it does not produce text content for detected elements. Pair it with OCR or [ScreenVLM](https://huggingface.co/docling-project/ScreenVLM) when text extraction is needed.
|
| 95 |
+
- The model is trained on rendered web screenshots, so performance may vary on native desktop, mobile, or application screenshots outside the training distribution.
|
| 96 |
|
| 97 |
## Citation
|
| 98 |
|
best.pt
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dbcb4f583ccfdb8100a68e606525c247890a2de4c1a54b14741e0ee29ce0ab88
|
| 3 |
+
size 153259543
|