Keyven commited on
Commit
c6ab04e
·
verified ·
1 Parent(s): 5002c50

polish: stats hero, absolute image URLs, improved frontmatter (datasets, base_model, langs, new_version)

Browse files
Files changed (1) hide show
  1. README.md +107 -42
README.md CHANGED
@@ -38,59 +38,85 @@ new_version: Keyven/german-ocr-3
38
  ---
39
 
40
  <p align="center">
41
- <img src="https://app.german-ocr.de/icon.png" alt="German-OCR-3" width="128" height="128" />
42
  </p>
43
 
44
  <h1 align="center">German-OCR-3</h1>
45
 
46
- <p align="center"><strong>Deutsche Vision-OCR. Kompakt. Lokal. Open Source.</strong></p>
 
47
 
48
  <p align="center">
49
- <a href="https://german-ocr.de"><img alt="Site" src="https://img.shields.io/badge/site-german--ocr.de-3B82F6?style=flat-square"/></a>
50
- <a href="https://ollama.com/Keyvan/german-ocr-3"><img alt="Ollama" src="https://img.shields.io/badge/Ollama-Keyvan%2Fgerman--ocr--3-orange?style=flat-square"/></a>
51
- <a href="https://github.com/Keyvanhardani/German-OCR-3-Dev"><img alt="GitHub" src="https://img.shields.io/badge/GitHub-source-black?style=flat-square"/></a>
52
- <a href="LICENSE"><img alt="License: Apache 2.0" src="https://img.shields.io/badge/License-Apache_2.0-green?style=flat-square"/></a>
 
 
53
  </p>
54
 
55
  ---
56
 
57
- ## Was ist German-OCR-3?
58
 
59
- **German-OCR-3** ist eine kompakte, schnelle und voll lokal lauffähige **Vision-OCR-Distribution für deutsche Geschäftsdokumente** — Rechnungen, Briefe, Formulare, Quittungen, Bescheide. Aus dem Bild kommt **strikt validiertes JSON nach unserem deutschen Extraktions-Schema**, ohne Cloud-Pflicht, ohne Vendor-Lock-in.
 
 
 
 
 
 
 
60
 
61
- Zwei Editionen, beide Apache-2.0, beide unter 3 GB:
62
 
63
- | Edition | Größe (Ollama) | Zielhardware | Stärke |
64
- |---|---:|---|---|
65
- | **`Keyvan/german-ocr-nano`** | **1.0 GB** | CPU / Edge / Mobile | „läuft überall" |
66
- | **`Keyvan/german-ocr-3` ⭐** | **2.7 GB** | 4–6 GB VRAM | empfohlene Default-Edition |
67
 
68
- Auf unserem Praxistest mit **200+ echten anonymisierten deutschen Rechnungen**: **100 % gültiges JSON · 95 % Sender korrekt erkannt · 0 % Halluzination**.
69
 
70
- > **Fine-tuned adapter** für deutsche Geschäftsdokument-Extraktion. Apache 2.0.
 
 
71
 
72
- ## Trainings- und Evaluations-Datensätze
 
 
 
73
 
74
- * [`neuralabs/german-synth-ocr`](https://huggingface.co/datasets/neuralabs/german-synth-ocr) 4 500+ deutsche OCR-Samples (synthetisch, Apache-2.0)
75
- * `Aoschu/German_invoices_dataset_for_donut` — 129 echte deutsche Rechnungen (Donut-Format)
76
- * **Eigenes synthetisches DE-Rechnungs-Set** — 100 Rechnungen mit Golden-JSON, deterministisch generiert (`eval/fixtures/synth_de_invoices/`)
77
- * **Anonymisierter DACH-Praxistest** — echte Rechnungen verschiedener DACH-Anbieter, intern, nicht im Repo (DSGVO)
78
 
79
  ---
80
 
81
- ## Größenvergleich
 
 
 
 
 
 
 
 
 
82
 
83
- ![Modellgrößen](charts/01_size_vs_competitors.png)
84
 
85
- `german-ocr-3` (2.7 GB) ist **6× kleiner** als ein typischer 7B-OCR-VLM, läuft auf einer **8 GB-Gaming-GPU** oder über CPU auf einem normalen Laptop.
 
 
 
 
 
 
86
 
87
- ![Praxistest](charts/02_ionos_validity.png)
88
 
89
- ![Latenz](charts/04_latency.png)
 
 
90
 
91
  ---
92
 
93
- ## Quickstart
94
 
95
  ### Ollama (empfohlen, eine Zeile)
96
 
@@ -99,7 +125,8 @@ ollama pull Keyvan/german-ocr-3
99
  ollama run Keyvan/german-ocr-3 "Extrahiere die Rechnung im Bild als JSON." ./meine_rechnung.png
100
  ```
101
 
102
- Erwartetes Ergebnis (echter Output):
 
103
 
104
  ```json
105
  {
@@ -131,6 +158,8 @@ Erwartetes Ergebnis (echter Output):
131
  }
132
  ```
133
 
 
 
134
  ### Python (via Ollama HTTP API)
135
 
136
  ```python
@@ -166,40 +195,66 @@ llama-cli -m ./german-ocr-3/german-ocr-3-Q4_K_M.gguf \
166
 
167
  ---
168
 
169
- ## Zielgruppen
170
 
171
- * **Solo-Builder & Indies** die deutsche Dokumente lokal extrahieren wollen, ohne Cloud-OCR-Kosten.
172
- * **DACH-KMU** mit Datenschutz-Anspruch, die lokal/on-prem hosten wollen.
173
- * **Agenturen & Studios** die ein Open-Source-Fundament unter ihrer eigenen Pipeline wollen.
 
 
 
 
 
174
 
175
- Wer es **gemanagt** und mit größeren Modellen will:
 
 
 
 
 
 
176
 
177
  > 🌐 **[german-ocr.de](https://german-ocr.de)** — gehostete deutsche OCR-API mit Premium-Modellen, höherer Genauigkeit, ohne eigene Hardware. Daten bleiben in der EU.
178
 
179
- ## Lizenz
180
 
181
- **Apache License 2.0** für die gesamte German-OCR-3-Distribution (Modelfiles, System-Prompt, Schemas, Docs, GGUFs).
 
 
 
 
 
182
 
183
- ## Credit & Attribution
 
 
184
 
185
  German-OCR-3 baut auf der hervorragenden Arbeit des **Qwen-Teams bei Alibaba Group** auf. Die zugrundeliegende Vision-Language-Architektur stammt aus der **Qwen 3.5 Small Series**, veröffentlicht unter Apache License 2.0. Ohne die offene Forschung und die saubere Veröffentlichung der Qwen-Weights wäre dieses Projekt nicht möglich.
186
 
187
- * **Qwen 3.5** — https://huggingface.co/Qwen · https://qwen.ai
188
- * **Apache License 2.0** (Weights) — © 2025–2026 Qwen Team, Alibaba Group
189
- * **Qwen2.5-VL Technical Report** — arXiv:2502.13923
190
 
191
  Vollständiger Attribution-Text in [`NOTICE`](NOTICE).
192
 
193
- ## Zitation
194
 
195
- Wenn du German-OCR-3 in Forschung oder Produktion verwendest, zitiere bitte beides — unsere Distribution und die Qwen-Basisarbeit:
 
 
 
 
 
 
 
 
196
 
197
  ```bibtex
198
  @misc{german_ocr_3_2026,
199
  title = {German-OCR-3: A compact German document-OCR distribution},
200
  author = {Hardani, Keyvan},
201
  year = {2026},
202
- url = {https://github.com/Keyvanhardani/German-OCR}
203
  }
204
 
205
  @misc{qwen35_2026,
@@ -216,4 +271,14 @@ Wenn du German-OCR-3 in Forschung oder Produktion verwendest, zitiere bitte beid
216
  journal = {arXiv preprint arXiv:2502.13923},
217
  year = {2025}
218
  }
219
- ```
 
 
 
 
 
 
 
 
 
 
 
38
  ---
39
 
40
  <p align="center">
41
+ <img src="https://app.german-ocr.de/icon.png" alt="German-OCR-3" width="140" height="140" />
42
  </p>
43
 
44
  <h1 align="center">German-OCR-3</h1>
45
 
46
+ <p align="center"><strong>Deutsche Vision-OCR. Kompakt. Lokal. Open Source.</strong><br/>
47
+ <sub>Aus deutschem Dokument-Bild → strikt validiertes JSON. In unter 60 Sekunden lokal lauffähig.</sub></p>
48
 
49
  <p align="center">
50
+ <a href="https://german-ocr.de"><img alt="Site" src="https://img.shields.io/badge/site-german--ocr.de-3B82F6?style=flat-square&labelColor=0B1220"/></a>
51
+ <a href="https://ollama.com/Keyvan/german-ocr-3"><img alt="Ollama" src="https://img.shields.io/badge/Ollama-Keyvan%2Fgerman--ocr--3-F59E0B?style=flat-square&labelColor=0B1220"/></a>
52
+ <a href="https://github.com/Keyvanhardani/German-OCR-3-Dev"><img alt="GitHub" src="https://img.shields.io/badge/GitHub-source-181717?style=flat-square&labelColor=0B1220"/></a>
53
+ <a href="#license"><img alt="License: Apache 2.0" src="https://img.shields.io/badge/License-Apache_2.0-22C55E?style=flat-square&labelColor=0B1220"/></a>
54
+ <img alt="Language" src="https://img.shields.io/badge/lang-Deutsch-3B82F6?style=flat-square&labelColor=0B1220"/>
55
+ <img alt="Hallucination" src="https://img.shields.io/badge/Halluzination-0%25-22C55E?style=flat-square&labelColor=0B1220"/>
56
  </p>
57
 
58
  ---
59
 
60
+ ## At a glance
61
 
62
+ <table align="center">
63
+ <tr>
64
+ <td align="center" width="180"><h2>100 %</h2><sub>Gültiges JSON</sub></td>
65
+ <td align="center" width="180"><h2>95 %</h2><sub>Sender korrekt</sub></td>
66
+ <td align="center" width="180"><h2>0 %</h2><sub>Halluzination</sub></td>
67
+ <td align="center" width="180"><h2>5.0 s</h2><sub>Latenz / Doc</sub></td>
68
+ </tr>
69
+ </table>
70
 
71
+ <p align="center"><sub>Auf <strong>200+ echten anonymisierten deutschen Rechnungen</strong> (Default-Edition, 2.7 GB)</sub></p>
72
 
73
+ ---
 
 
 
74
 
75
+ ## Was ist German-OCR-3?
76
 
77
+ **German-OCR-3** ist eine kompakte, schnelle und voll lokal lauffähige **Vision-OCR-Distribution für deutsche Geschäftsdokumente** — Rechnungen, Briefe, Formulare, Quittungen, Bescheide. Aus dem Bild kommt **strikt validiertes JSON** nach unserem deutschen Extraktions-Schema. Ohne Cloud-Pflicht, ohne Vendor-Lock-in.
78
+
79
+ Zwei Editionen, beide Apache 2.0, beide unter 3 GB:
80
 
81
+ | Edition | Ollama | Größe | Zielhardware | Stärke |
82
+ |---|---|---:|---|---|
83
+ | **Nano** | `Keyvan/german-ocr-nano` | **1.0 GB** | CPU · Edge · Mobile | „läuft überall" |
84
+ | **Default** ⭐ | `Keyvan/german-ocr-3` | **2.7 GB** | 4–6 GB VRAM | beste Field-Erkennung |
85
 
86
+ > **Fine-tuned adapter** für deutsche Geschäftsdokument-Extraktion. Apache 2.0.
 
 
 
87
 
88
  ---
89
 
90
+ ## 📊 Praxistest — 200+ echte deutsche Rechnungen (anonymisiert)
91
+
92
+ <p align="center">
93
+ <img src="https://huggingface.co/Keyven/german-ocr-3/resolve/main/charts/02_ionos_validity.png" alt="Praxistest" width="820"/>
94
+ </p>
95
+
96
+ | Edition | Valid JSON | Sender korrekt | **Halluzination** | Latenz |
97
+ |---|---:|---:|---:|---:|
98
+ | `Keyvan/german-ocr-nano` | 84 % | 79 % | **0 %** | 6.6 s |
99
+ | **`Keyvan/german-ocr-3`** ⭐ | **100 %** | **95 %** | **0 %** | **5.0 s** |
100
 
101
+ **Keine "Mustermann"-Defaults.** German-OCR-3 liest echte Firma, Kundenadresse, Produkte, Beträge — statt zu raten.
102
 
103
+ ---
104
+
105
+ ## 📐 Größenvergleich
106
+
107
+ <p align="center">
108
+ <img src="https://huggingface.co/Keyven/german-ocr-3/resolve/main/charts/01_size_vs_competitors.png" alt="Modellgrößen" width="820"/>
109
+ </p>
110
 
111
+ `german-ocr-3` (2.7 GB) ist **6× kleiner** als ein typischer 7B-OCR-VLM. Läuft auf einer **8 GB-Gaming-GPU** oder über CPU auf einem normalen Laptop.
112
 
113
+ <p align="center">
114
+ <img src="https://huggingface.co/Keyven/german-ocr-3/resolve/main/charts/04_latency.png" alt="Latenz" width="620"/>
115
+ </p>
116
 
117
  ---
118
 
119
+ ## 🚀 Quickstart
120
 
121
  ### Ollama (empfohlen, eine Zeile)
122
 
 
125
  ollama run Keyvan/german-ocr-3 "Extrahiere die Rechnung im Bild als JSON." ./meine_rechnung.png
126
  ```
127
 
128
+ <details>
129
+ <summary><b>Beispiel-Output (anonymisiert, aus Praxistest)</b> — klicken zum Aufklappen</summary>
130
 
131
  ```json
132
  {
 
158
  }
159
  ```
160
 
161
+ </details>
162
+
163
  ### Python (via Ollama HTTP API)
164
 
165
  ```python
 
195
 
196
  ---
197
 
198
+ ## 📚 Trainings- und Evaluations-Datensätze
199
 
200
+ | Datensatz | Umfang | Typ |
201
+ |---|---|---|
202
+ | [`neuralabs/german-synth-ocr`](https://huggingface.co/datasets/neuralabs/german-synth-ocr) | 4 500+ | Deutsche OCR-Samples (synthetisch, Apache-2.0) |
203
+ | [`Aoschu/German_invoices_dataset_for_donut`](https://huggingface.co/datasets/Aoschu/German_invoices_dataset_for_donut) | 129 | Echte deutsche Rechnungen (Donut-Format) |
204
+ | Eigenes synthetisches DE-Rechnungs-Set | 100 | Rechnungen mit Golden-JSON, deterministisch generiert |
205
+ | Anonymisierter DACH-Praxistest | 200+ | Echte Rechnungen verschiedener DACH-Anbieter (intern, DSGVO) |
206
+
207
+ ---
208
 
209
+ ## 🎯 Zielgruppen
210
+
211
+ - **Solo-Builder & Indies** — deutsche Dokumente lokal extrahieren, ohne Cloud-OCR-Kosten.
212
+ - **DACH-KMU mit Datenschutz-Anspruch** — lokal / on-prem hosten.
213
+ - **Agenturen & Studios** — Open-Source-Fundament unter der eigenen Pipeline.
214
+
215
+ Wer es **gemanagt** und mit noch größeren Modellen will:
216
 
217
  > 🌐 **[german-ocr.de](https://german-ocr.de)** — gehostete deutsche OCR-API mit Premium-Modellen, höherer Genauigkeit, ohne eigene Hardware. Daten bleiben in der EU.
218
 
219
+ ---
220
 
221
+ ## ⚠️ Limitations
222
+
223
+ - Optimiert für **deutsche** Dokumente — andere Sprachen keine Garantie.
224
+ - Beste Qualität bei klaren, hochauflösenden Scans/Fotos.
225
+ - Handschriftliche Dokumente: nur begrenzt.
226
+ - Bei kritischen Vorgängen (Buchhaltung, Recht): **immer Human-in-the-Loop**.
227
 
228
+ ---
229
+
230
+ ## 🙏 Credit & Attribution
231
 
232
  German-OCR-3 baut auf der hervorragenden Arbeit des **Qwen-Teams bei Alibaba Group** auf. Die zugrundeliegende Vision-Language-Architektur stammt aus der **Qwen 3.5 Small Series**, veröffentlicht unter Apache License 2.0. Ohne die offene Forschung und die saubere Veröffentlichung der Qwen-Weights wäre dieses Projekt nicht möglich.
233
 
234
+ - **Qwen 3.5** — https://huggingface.co/Qwen · https://qwen.ai
235
+ - **Apache License 2.0** (Weights) — © 2025–2026 Qwen Team, Alibaba Group
236
+ - **Qwen2.5-VL Technical Report** — [arXiv:2502.13923](https://arxiv.org/abs/2502.13923)
237
 
238
  Vollständiger Attribution-Text in [`NOTICE`](NOTICE).
239
 
240
+ ---
241
 
242
+ ## <a id="license"></a>📄 License
243
+
244
+ **Apache License 2.0** für die gesamte German-OCR-3-Distribution (Modelfiles, System-Prompt, Schemas, Docs, GGUFs).
245
+
246
+ ---
247
+
248
+ ## 📑 Citation
249
+
250
+ Wenn du German-OCR-3 in Forschung oder Produktion verwendest, zitiere bitte **beides** — unsere Distribution und die Qwen-Basisarbeit:
251
 
252
  ```bibtex
253
  @misc{german_ocr_3_2026,
254
  title = {German-OCR-3: A compact German document-OCR distribution},
255
  author = {Hardani, Keyvan},
256
  year = {2026},
257
+ url = {https://github.com/Keyvanhardani/German-OCR-3-Dev}
258
  }
259
 
260
  @misc{qwen35_2026,
 
271
  journal = {arXiv preprint arXiv:2502.13923},
272
  year = {2025}
273
  }
274
+ ```
275
+
276
+ ---
277
+
278
+ ## 👤 Author
279
+
280
+ **Keyvan Hardani**
281
+ · Website: [keyvan.ai](https://keyvan.ai)
282
+ · LinkedIn: [linkedin.com/in/keyvanhardani](https://linkedin.com/in/keyvanhardani)
283
+ · GitHub: [@Keyvanhardani](https://github.com/Keyvanhardani)
284
+ · Hosted Premium: [german-ocr.de](https://german-ocr.de)