瀏覽代碼

renamed inage_split to image_prepare, fixed some code and parameters

master
Evgeniy Ierusalimov 4 天之前
父節點
當前提交
25992f0ef6
共有 5 個檔案被更改,包括 114 行新增14 行删除
  1. 1
    1
      .ai/ARCHITECTURE.md
  2. 107
    7
      README.md
  3. 3
    3
      installation.md
  4. 1
    1
      src/image_prepare.py
  5. 2
    2
      stage2_results.md

+ 1
- 1
.ai/ARCHITECTURE.md 查看文件

@@ -14,7 +14,7 @@ ocr/
14 14
 html/
15 15
     генерация HTML
16 16
 
17
-cli.py → image_split.py
17
+cli.py → image_prepare.py
18 18
 
19 19
 Этапы:
20 20
 1. Input

+ 107
- 7
README.md 查看文件

@@ -22,7 +22,7 @@
22 22
 JPEG/TIFF/PNG (многостраничный скан)
23 23
24 24
25
-src/image_split.py          ← Stage 1: разрезание
25
+src/image_prepare.py        ← Stage 1: подготовка (разрезание, обрезка)
26 26
     │ --slice / --slice-auto
27 27
     │ --pre-rotate, --border
28 28
     │ --post-crop
@@ -31,7 +31,7 @@ src/image_split.py          ← Stage 1: разрезание
31 31
 JPEG страницы
32 32
33 33
34
-src/image_ocr.py           ← Stage 2: OCR + Markdown (бывший image_to_latex.py)
34
+src/image_ocr.py           ← Stage 2: OCR + Markdown
35 35
     │ --ocr-engine paddle|surya
36 36
     │ --input file.jpg         (одна страница)
37 37
     │ --input pages/           (пакетный режим: все изображения в каталоге)
@@ -52,7 +52,7 @@ src/image_ocr.py           ← Stage 2: OCR + Markdown (бывший image_to_la
52 52
 
53 53
 ## Параметры
54 54
 
55
-### Stage 1: `src/image_split.py`
55
+### Stage 1: `src/image_prepare.py`
56 56
 
57 57
 | Параметр | Описание | По умолчанию |
58 58
 |----------|----------|:---:|
@@ -66,10 +66,58 @@ src/image_ocr.py           ← Stage 2: OCR + Markdown (бывший image_to_la
66 66
 
67 67
 Пример:
68 68
 ```bash
69
-python -m src.image_split -i scan.jpg -s 3:3 -b 10 -o pages/
70
-python -m src.image_split -i scan.jpg --slice-auto
69
+python -m src.image_prepare -i scan.jpg -s 3:3 -b 10 -o pages/
70
+python -m src.image_prepare -i scan.jpg --slice-auto
71 71
 ```
72 72
 
73
+<details>
74
+<summary><code>--help</code></summary>
75
+
76
+```
77
+ Usage: python -m src.image_prepare [OPTIONS]
78
+
79
+ Подготовить отсканированное изображение: разрезать по сетке, обрезать,
80
+ добавить рамку.
81
+
82
+╭─ Options ────────────────────────────────────────────────────────────────────╮
83
+│ --input       -i                    <file>              Путь к входному      │
84
+│                                                         изображению (JPEG,   │
85
+│                                                         PNG, TIFF)           │
86
+│ --slice       -s                    <str>               Размер сетки в       │
87
+│                                                         формате              │
88
+│                                                         <колонки>:<строки>,  │
89
+│                                                         например 3:2         │
90
+│ --slice-auto  -a                                        Автоматически        │
91
+│                                                         определить размер    │
92
+│                                                         сетки по содержимому │
93
+│                                                         изображения          │
94
+│ --output-dir  -o                    <directory>         Каталог для          │
95
+│                                                         сохранения           │
96
+│                                                         результатов (по      │
97
+│                                                         умолчанию — текущий) │
98
+│                                                         [default: .]         │
99
+│ --pre-rotate  -r                    <int>               Поворот изображения  │
100
+│                                                         перед разрезанием:   │
101
+│                                                         90, 180 или 270      │
102
+│ --border      -b                    <int range> [x>=0]  Отступ в пикселях    │
103
+│                                                         (белая рамка /       │
104
+│                                                         отступ при обрезке   │
105
+│                                                         содержимого, по      │
106
+│                                                         умолчанию 50)        │
107
+│                                                         [default: 50]        │
108
+│ --post-crop   -c  --no-post-crop                        Обрезать каждую      │
109
+│                                                         страницу по границам │
110
+│                                                         полезного            │
111
+│                                                         содержимого          │
112
+│                                                         (включено по         │
113
+│                                                         умолчанию)           │
114
+│                                                         [default: post-crop] │
115
+│ --help                                                  Show this message    │
116
+│                                                         and exit.            │
117
+╰──────────────────────────────────────────────────────────────────────────────╯
118
+```
119
+</details>
120
+
73 121
 ### Stage 2: `src/image_ocr.py`
74 122
 
75 123
 | Параметр | Описание | По умолчанию |
@@ -104,6 +152,58 @@ python -m src.image_ocr -i ./pages/ --ocr-engine surya --no-result-one-document
104 152
 python -m src.image_ocr -i page.jpg --ocr-engine paddle --fix-by-llm
105 153
 ```
106 154
 
155
+<details>
156
+<summary><code>--help</code></summary>
157
+
158
+```
159
+ Usage: python -m src.image_ocr [OPTIONS]
160
+
161
+ OCR → PostProcess → Markdown. Принимает файл или каталог изображений.
162
+
163
+╭─ Options ────────────────────────────────────────────────────────────────────╮
164
+│ *  --input               -i      <path>                Путь к входному       │
165
+│                                                        изображению или       │
166
+│                                                        каталогу (JPEG, PNG,  │
167
+│                                                        TIFF)                 │
168
+│                                                        [required]            │
169
+│ *  --ocr-engine                  <str>                 OCR-движок: paddle    │
170
+│                                                        (PP-StructureV3),     │
171
+│                                                        surya (Surya 2 VLM)   │
172
+│                                                        или external-qwen3    │
173
+│                                                        (Qwen3.8 Max API)     │
174
+│                                                        [required]            │
175
+│    --output-dir          -o      <directory>           Каталог для           │
176
+│                                                        сохранения            │
177
+│                                                        результатов (по       │
178
+│                                                        умолчанию — рядом с   │
179
+│                                                        входным файлом)       │
180
+│    --fix-by-llm                                        Исправить OCR-ошибки  │
181
+│                                                        локальным LLM         │
182
+│                                                        (Qwen2.5-7B). Не      │
183
+│                                                        работает с            │
184
+│                                                        --ocr-engine          │
185
+│                                                        external-qwen3        │
186
+│    --fix-by-external-q…                                Исправить OCR-ошибки  │
187
+│                                                        внешней VLM (Qwen3.8  │
188
+│                                                        Max, API). Не         │
189
+│                                                        работает с            │
190
+│                                                        --ocr-engine          │
191
+│                                                        external-qwen3        │
192
+│    --no-result-one-doc…                                Не объединять .md     │
193
+│                                                        результаты в один     │
194
+│                                                        документ              │
195
+│                                                        [default: True]       │
196
+│    --pause                       <int range>           Пауза между           │
197
+│                                  [0<=x<=600]           изображениями в       │
198
+│                                                        секундах (по          │
199
+│                                                        умолчанию 5)          │
200
+│                                                        [default: 5]          │
201
+│    --help                                              Show this message and │
202
+│                                                        exit.                 │
203
+╰──────────────────────────────────────────────────────────────────────────────╯
204
+```
205
+</details>
206
+
107 207
 ### Debug-лог
108 208
 
109 209
 Для отладки зависаний и падений — файл с полным логом всех этапов обработки.
@@ -255,8 +355,8 @@ llama-server не указывает количество потоков — п
255 355
 
256 356
 ```
257 357
 src/
258
-  image_split.py         — CLI Stage 1
259
-  image_ocr.py          — CLI Stage 2 (бывший image_to_latex.py)
358
+  image_prepare.py      — CLI Stage 1
359
+  image_ocr.py          — CLI Stage 2
260 360
   split/slicer.py        — разрезание, post-crop
261 361
   ocr/
262 362
     paddle_engine.py     — PP-StructureV3

+ 3
- 3
installation.md 查看文件

@@ -73,16 +73,16 @@ cp .env.dist .env
73 73
 
74 74
 ```bash
75 75
 # Stage 1
76
-python -m src.image_split --help
76
+python -m src.image_prepare --help
77 77
 
78 78
 # Stage 2 — PaddleOCR
79
-python -m src.image_ocr -i test.jpg
79
+python -m src.image_ocr -i test.jpg --ocr-engine paddle
80 80
 
81 81
 # Stage 2 — Surya
82 82
 python -m src.image_ocr -i test.jpg --ocr-engine surya
83 83
 
84 84
 # Stage 2 — с LLM-корректором
85
-python -m src.image_ocr -i test.jpg --llm
85
+python -m src.image_ocr -i test.jpg --ocr-engine paddle --fix-by-llm
86 86
 ```
87 87
 
88 88
 ---

src/image_split.py → src/image_prepare.py 查看文件

@@ -144,7 +144,7 @@ def slice_pages(
144 144
         ),
145 145
     ] = True,
146 146
 ) -> None:
147
-    """Разрезать отсканированное изображение на отдельные страницы по геометрической сетке."""
147
+    """Подготовить отсканированное изображение: разрезать по сетке, обрезать, добавить рамку."""
148 148
     input_path = _validate_input(input)
149 149
     _validate_rotation(pre_rotate)
150 150
     cols, rows = _resolve_grid(slice, slice_auto, input_path, pre_rotate)

+ 2
- 2
stage2_results.md 查看文件

@@ -88,7 +88,7 @@
88 88
 Входное изображение (JPEG/PNG/TIFF)
89 89
90 90
91
-src/image_split.py          ← Stage 1: разрезание
91
+src/image_prepare.py          ← Stage 1: разрезание
92 92
     │ --slice / --slice-auto
93 93
     │ --border, --post-crop
94 94
@@ -121,7 +121,7 @@ src/image_ocr.py            ← Stage 2: OCR + Markdown
121 121
 
122 122
 ```
123 123
 src/
124
-  image_split.py         — CLI Stage 1
124
+  image_prepare.py         — CLI Stage 1
125 125
   image_ocr.py           — CLI Stage 2
126 126
   cli_utils.py           — run_main()
127 127
   env.py                 — загрузка .env

Loading…
取消
儲存