Evgeniy Ierusalimov 4 дней назад
Родитель
Сommit
cfa2eb868e
2 измененных файлов: 28 добавлений и 10 удалений
  1. 26
    8
      README.md
  2. 2
    2
      src/image_ocr.py

+ 26
- 8
README.md Просмотреть файл

82
 | `--vlm` | Vision LM корректор (Qwen3.8 Max, API) | OFF |
82
 | `--vlm` | Vision LM корректор (Qwen3.8 Max, API) | OFF |
83
 | `--force-ocr` | Перераспознать даже при наличии `.json` | OFF |
83
 | `--force-ocr` | Перераспознать даже при наличии `.json` | OFF |
84
 | `--pause` | Пауза между изображениями (сек) | 5 |
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
 ```bash
89
 ```bash
98
 
98
 
99
 # Без объединения в один документ
99
 # Без объединения в один документ
100
 python -m src.image_ocr -i ./pages/ --no-result-one-document
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
 ### Debug-лог
109
 ### Debug-лог
139
 | `page_01.md` | Markdown | Текст + `$$`-формулы + `##`-заголовки. **Готов к загрузке в LLM.** |
145
 | `page_01.md` | Markdown | Текст + `$$`-формулы + `##`-заголовки. **Готов к загрузке в LLM.** |
140
 | `page_01.json` | JSON | Полный дамп OCR: bbox, confidence, labels, formulas |
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
 ```bash
162
 ```bash
150
-# Surya JSON → HTML
163
+# JSON → HTML (Surya)
151
 python -c "from src.latex.surya2html import surya_json_to_html; \
164
 python -c "from src.latex.surya2html import surya_json_to_html; \
152
   open('page.html','w').write(surya_json_to_html('page.json'))"
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
 ---

+ 2
- 2
src/image_ocr.py Просмотреть файл

179
     result_one_document: Annotated[
179
     result_one_document: Annotated[
180
         bool,
180
         bool,
181
         typer.Option(
181
         typer.Option(
182
-            "--result-one-document / --no-result-one-document",
183
-            help="Объединить все .md результаты в один многостраничный документ (по умолчанию — да)",
182
+            "--no-result-one-document",
183
+            help="Не объединять .md результаты в один документ",
184
         ),
184
         ),
185
     ] = True,
185
     ] = True,
186
     force_ocr: Annotated[
186
     force_ocr: Annotated[

Загрузка…
Отмена
Сохранить