feat: 0.3.0 – pix2text zuerst, Qwen bestätigt, Gemma nur bei Uneinigkeit
Neue Standardregel p2t (GLM/Cloud wird nicht mehr benutzt):
- pix2text liest zuerst; übernommen wird immer seine Lesart, wenn Qwen sie
bestätigt oder – nur bei Uneinigkeit gefragt – Gemma. Qwen = Gemma gegen
pix2text geht an einen Menschen. Schlusspunkt muss bestätigt sein; Bild-Veto
und Pandoc auf pix2texts Lesart. Alte Regel als consensus_rule=vlm3 wählbar.
- pix2text auf der GPU (onnxruntime-gpu, FORMULA_P2T_DEVICE=auto/cpu/cuda:N)
- Ausgabe bereinigt: post_process aus pix2tex, Fettschreibweisen \boldmath/\bf
-> \boldsymbol/\mathbf; an 400 Lesarten gleiches gesetztes Bild
- Normalform: \mathop, \begin{array}[t]
- calibrate: --engines, Regel-Tabelle, --reuse; wahre Formeln aus dem alt-Text
bereinigt (aligned, \mathop{}\!, upgreek)
- tools/zeittest.py, tools/regeltest.py (--reuse, --exclude)
Messung: Göllmann Band 1 (2 x 150) 86 % / 85 % automatisch, 0 falsch
(bisher 78 % / 70 %); Band 2, zwei Stichproben zu 50: 78 % und 86 %, 0 falsch.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
41bfe9fc26
commit
4638a12571
1 changed files with 941 additions and 98 deletions
|
|
@ -3,8 +3,10 @@
|
|||
Dieses Programm ersetzt Formelbilder in den Markdown-Dateien von epub2md und pdf2md durch echte
|
||||
LaTeX-Formeln. Dadurch passen die Formeln beim Neubau als EPUB oder PDF in Größe und Schrift zum Text.
|
||||
|
||||
Es ersetzt eine Formel nur, wenn **drei unabhängige Bildmodelle dieselbe Formel lesen** (zwei lokale, eines
|
||||
in der Cloud) und das gerenderte LaTeX dem Bild grob ähnelt. Bei Zweifeln fragt es dich in einer
|
||||
Es liest jede Formel zuerst mit dem Formel-OCR **pix2text** und ersetzt sie nur, wenn das Bildmodell
|
||||
**Qwen** dieselbe Formel liest (bei Uneinigkeit darf das zweite Bildmodell Gemma pix2text bestätigen) und
|
||||
das gerenderte LaTeX dem Bild grob ähnelt. Eingesetzt wird die Lesart von pix2text, ohne ihre
|
||||
überflüssigen Leerzeichen. Alles läuft lokal. Bei Zweifeln fragt es dich in einer
|
||||
Review-Seite im Browser. Ohne deine Zustimmung bleibt die Formel ein Bild.
|
||||
|
||||
„Dieselbe Formel“ heißt: jedes Zeichen stimmt und steht an der richtigen Stelle. Abstände, Pfeillängen,
|
||||
|
|
@ -41,12 +43,28 @@ CUDA_VISIBLE_DEVICES=2 ~/.local/bin/llama-server \
|
|||
|
||||
GPU 2 ist währenddessen für Chatterbox-TTS belegt. Beenden mit Strg+C in beiden Terminals.
|
||||
|
||||
### Dritte Lesart aus der Cloud
|
||||
### pix2text (Formel-OCR)
|
||||
|
||||
Die Bestätigung kommt von **GLM-4.6V** über OpenRouter (andere Modellfamilie als Qwen und Gemma). Dafür
|
||||
muss `OPENROUTER_API_KEY` gesetzt sein. GLM liest nur die Formeln, bei denen Qwen und Gemma schon einig
|
||||
sind. Beim Gehrke-Brückenkurs (1505 Formelbilder) waren das 967 Anfragen für zusammen etwa 0,15–0,20 $.
|
||||
Ohne Cloud (`--no-cloud`) wird nichts automatisch ersetzt, alles Einige landet im Review.
|
||||
pix2text läuft ohne Server im Programm selbst, auf der ersten sichtbaren Grafikkarte (sonst auf der CPU,
|
||||
dann ~5× langsamer). Einmalig:
|
||||
|
||||
```bash
|
||||
pip install "pix2text[multilingual]"
|
||||
pip install --no-deps pix2tex munch # nur für post_process (Leerzeichen)
|
||||
pip uninstall -y onnxruntime && pip install onnxruntime-gpu # für die GPU
|
||||
```
|
||||
|
||||
Das Modell (~300 MB) wird beim ersten Lauf nach `~/.pix2text` geladen. Gerät wählen mit
|
||||
`FORMULA_P2T_DEVICE=cpu` oder `cuda:N` (`N` zählt innerhalb von `CUDA_VISIBLE_DEVICES`).
|
||||
|
||||
Gemma (Port 8012) wird nur für Formeln gefragt, bei denen pix2text und Qwen uneinig sind. Läuft Gemma
|
||||
nicht, bleiben diese Formeln im Review.
|
||||
|
||||
### Frühere Regel mit Cloud (optional)
|
||||
|
||||
Bis Version 0.2.0 kam die Bestätigung von **GLM-4.6V** über OpenRouter (Qwen = Gemma = GLM). Diese Regel
|
||||
ist weiter wählbar: im Arbeitsordner in `workspace.json` unter `settings` den Eintrag
|
||||
`"consensus_rule": "vlm3"` setzen; dann muss `OPENROUTER_API_KEY` gesetzt sein.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -168,9 +186,10 @@ geändert, wird sie übersprungen. `--force` setzt sie trotzdem zurück, dann is
|
|||
|
||||
```bash
|
||||
python3 formula_img2latex.py scan AUSGABE # Bilder finden
|
||||
python3 formula_img2latex.py recognize AUSGABE --engine local # lokal erkennen
|
||||
python3 formula_img2latex.py recognize AUSGABE --engine p2t # pix2text (zuerst)
|
||||
python3 formula_img2latex.py recognize AUSGABE --engine local # Qwen (bestätigt)
|
||||
python3 formula_img2latex.py verify AUSGABE # prüfen und entscheiden
|
||||
python3 formula_img2latex.py recognize AUSGABE --engine cloud --only-unresolved
|
||||
python3 formula_img2latex.py recognize AUSGABE --engine local2 --only-unresolved # Gemma (Stichwahl)
|
||||
python3 formula_img2latex.py verify AUSGABE
|
||||
python3 formula_img2latex.py status AUSGABE
|
||||
```
|
||||
|
|
@ -214,6 +233,6 @@ Entscheidung mit Grund und den Bildabgleich. Der Ordner `vergleich/` wird nicht
|
|||
Ja. Das Bild hatte die Farbe eingebaut, LaTeX-Formeln haben keinen Hintergrund.
|
||||
|
||||
**Werden Buchinhalte ins Internet geschickt?**
|
||||
Nur für die dritte Lesart: die einzelnen Formelbilder, bei denen Qwen und Gemma einig sind, samt eines
|
||||
kurzen Textausschnitts um die Formel (höchstens 240 Zeichen), gehen an OpenRouter/GLM. Mit `--no-cloud` bleibt alles lokal; dann wird nichts automatisch
|
||||
ersetzt.
|
||||
Nein, mit der Standardregel bleibt alles lokal. Nur die frühere Regel `vlm3` schickt die Formelbilder, bei
|
||||
denen Qwen und Gemma einig sind, samt eines kurzen Textausschnitts um die Formel (höchstens 240 Zeichen)
|
||||
an OpenRouter/GLM.
|
||||
|
|
|
|||
Loading…
Reference in a new issue