File size: 2,131 Bytes
ed9181a
 
ee2356f
ed9181a
2342afe
ed9181a
 
 
bee92aa
6f1c297
ed9181a
 
fa19dc2
6f1c297
fa19dc2
6f1c297
fa19dc2
6f1c297
fa19dc2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6f1c297
 
 
fa19dc2
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
---
title: Starry
emoji: 
colorFrom: blue
colorTo: yellow
sdk: docker
pinned: false
license: bsd
short_description: End-to-end Optical Music Recognition (OMR) demo
app_port: 7860
---

# STARRY — Optical Music Recognition

Starry is a demo application for an end-to-end **Optical Music Recognition (OMR)** system. It transforms scanned sheet music images into structured digital music notation through a multi-stage ML pipeline, and provides an interactive platform for reviewing, editing, and managing the recognition results.

## What Makes Starry Different

- **Multi-stage ML pipeline** — Seven specialized models work in sequence: layout detection, staff gauge prediction, foreground/background mask separation, symbol semantic recognition, text location detection, OCR, and bracket recognition. Each model focuses on a specific subtask, enabling high overall accuracy.
- **Automatic regulation** — An ONNX-based solver analyzes recognized measures for timing consistency and automatically corrects quantization errors, reducing the need for manual intervention.
- **Measure-level quality tracking** — The system identifies and flags problematic measures for human review, with an annotation workflow that tracks corrections per-measure.
- **Real-time progress** — WebSocket streaming keeps the UI updated during long-running recognition and regulation tasks.
- **Score collection management** — Organize recognized scores into music sets with tagging and categorization, useful for building OMR datasets or curating repertoire.

## Architecture

```
Frontend (React)
  ↓ nginx (port 7860)
  ├─ /api/score → cluster-server (NestJS)
  └─ /api/*     → omr-service (Fastify)
                    ├─ async task worker
                    ├─ PostgreSQL
                    └─ ZMQ → Python ML services (×7)
```

## Note

This is a lightweight demo deployment on HuggingFace Spaces. The ML prediction services (layout, gauge, mask, semantic, text, OCR, brackets) are **not included** in this Space — it is intended for showcasing the review and editing workflow with pre-computed results.