|
|
@@ -82,8 +82,8 @@ python -m src.image_split -i scan.jpg --slice-auto
|
|
82
|
82
|
| `--vlm` | Vision LM корректор (Qwen3.8 Max, API) | OFF |
|
|
83
|
83
|
| `--force-ocr` | Перераспознать даже при наличии `.json` | OFF |
|
|
84
|
84
|
| `--pause` | Пауза между изображениями (сек) | 5 |
|
|
85
|
|
-| `--result-one-document` | Объединить `.md` в один документ | ON |
|
|
86
|
|
-| `--no-result-one-document` | Не объединять | — |
|
|
|
85
|
+| `--no-result-one-document` | Не объединять `.md` в один документ | — |
|
|
|
86
|
+| `--no-post-crop` | Не обрезать по контенту (Stage 1) | — |
|
|
87
|
87
|
|
|
88
|
88
|
Пример:
|
|
89
|
89
|
```bash
|
|
|
@@ -98,6 +98,12 @@ python -m src.image_ocr -i ./pages/ --force-ocr
|
|
98
|
98
|
|
|
99
|
99
|
# Без объединения в один документ
|
|
100
|
100
|
python -m src.image_ocr -i ./pages/ --no-result-one-document
|
|
|
101
|
+
|
|
|
102
|
+# С LLM-корректором
|
|
|
103
|
+python -m src.image_ocr -i page.jpg -l ru --llm
|
|
|
104
|
+
|
|
|
105
|
+# С VLM-корректором (нужен OPENCODE_API_KEY в .env)
|
|
|
106
|
+python -m src.image_ocr -i page.jpg --vlm
|
|
101
|
107
|
```
|
|
102
|
108
|
|
|
103
|
109
|
### Debug-лог
|
|
|
@@ -139,20 +145,32 @@ CLI (`image_ocr.py`) генерирует два файла для каждог
|
|
139
|
145
|
| `page_01.md` | Markdown | Текст + `$$`-формулы + `##`-заголовки. **Готов к загрузке в LLM.** |
|
|
140
|
146
|
| `page_01.json` | JSON | Полный дамп OCR: bbox, confidence, labels, formulas |
|
|
141
|
147
|
|
|
142
|
|
-**Другие форматы — ручные утилиты:**
|
|
|
148
|
+**При пакетной обработке** (каталог на входе) — дополнительно:
|
|
|
149
|
+
|
|
|
150
|
+| Файл | Описание |
|
|
|
151
|
+|------|----------|
|
|
|
152
|
+| `<dirname>.md` | Объединённый многостраничный Markdown (по умолчанию) |
|
|
|
153
|
+| `<dirname>.tex` | LaTeX для всех страниц (через `json_to_latex.py`) |
|
|
|
154
|
+
|
|
|
155
|
+**Ручные утилиты:**
|
|
143
|
156
|
|
|
144
|
157
|
| Файл | Утилита | Назначение |
|
|
145
|
158
|
|------|---------|------------|
|
|
146
|
|
-| `.html` | `src/latex/surya2html.py` | Surya JSON → HTML с MathJax (формулы рендерятся браузером) |
|
|
147
|
|
-| `.html` | `src/latex/tex2html.py` | LaTeX `.tex` → HTML + MathJax |
|
|
|
159
|
+| `.html` | `src/latex/surya2html.py` | Surya JSON → HTML + MathJax |
|
|
|
160
|
+| `.tex` | `src/latex/json_to_latex.py` | Paddle или Surya JSON → LaTeX (автодетект) |
|
|
148
|
161
|
|
|
149
|
162
|
```bash
|
|
150
|
|
-# Surya JSON → HTML
|
|
|
163
|
+# JSON → HTML (Surya)
|
|
151
|
164
|
python -c "from src.latex.surya2html import surya_json_to_html; \
|
|
152
|
165
|
open('page.html','w').write(surya_json_to_html('page.json'))"
|
|
153
|
166
|
|
|
154
|
|
-# TeX → HTML (если есть .tex файл)
|
|
155
|
|
-python src/latex/tex2html.py page.tex
|
|
|
167
|
+# JSON → LaTeX (Paddle или Surya — автоопределение)
|
|
|
168
|
+python -c "from src.latex.json_to_latex import json_to_latex; \
|
|
|
169
|
+ open('page.tex','w').write(json_to_latex('page.json'))"
|
|
|
170
|
+
|
|
|
171
|
+# Многостраничный LaTeX (все JSON в каталоге)
|
|
|
172
|
+python -c "from src.latex.json_to_latex import multi_json_to_latex; \
|
|
|
173
|
+ multi_json_to_latex('out/', 'out/document.tex')"
|
|
156
|
174
|
```
|
|
157
|
175
|
|
|
158
|
176
|
---
|