Просмотр исходного кода

renamed inage_split to image_prepare, fixed some code and parameters

master
Evgeniy Ierusalimov 4 дней назад
Родитель
Сommit
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
 html/
14
 html/
15
     генерация HTML
15
     генерация HTML
16
 
16
 
17
-cli.py → image_split.py
17
+cli.py → image_prepare.py
18
 
18
 
19
 Этапы:
19
 Этапы:
20
 1. Input
20
 1. Input

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

22
 JPEG/TIFF/PNG (многостраничный скан)
22
 JPEG/TIFF/PNG (многостраничный скан)
23
23
24
24
25
-src/image_split.py          ← Stage 1: разрезание
25
+src/image_prepare.py        ← Stage 1: подготовка (разрезание, обрезка)
26
     │ --slice / --slice-auto
26
     │ --slice / --slice-auto
27
     │ --pre-rotate, --border
27
     │ --pre-rotate, --border
28
     │ --post-crop
28
     │ --post-crop
31
 JPEG страницы
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
     │ --ocr-engine paddle|surya
35
     │ --ocr-engine paddle|surya
36
     │ --input file.jpg         (одна страница)
36
     │ --input file.jpg         (одна страница)
37
     │ --input pages/           (пакетный режим: все изображения в каталоге)
37
     │ --input pages/           (пакетный режим: все изображения в каталоге)
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
 
66
 
67
 Пример:
67
 Пример:
68
 ```bash
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
 ### Stage 2: `src/image_ocr.py`
121
 ### Stage 2: `src/image_ocr.py`
74
 
122
 
75
 | Параметр | Описание | По умолчанию |
123
 | Параметр | Описание | По умолчанию |
104
 python -m src.image_ocr -i page.jpg --ocr-engine paddle --fix-by-llm
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
 ### Debug-лог
207
 ### Debug-лог
108
 
208
 
109
 Для отладки зависаний и падений — файл с полным логом всех этапов обработки.
209
 Для отладки зависаний и падений — файл с полным логом всех этапов обработки.
255
 
355
 
256
 ```
356
 ```
257
 src/
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
   split/slicer.py        — разрезание, post-crop
360
   split/slicer.py        — разрезание, post-crop
261
   ocr/
361
   ocr/
262
     paddle_engine.py     — PP-StructureV3
362
     paddle_engine.py     — PP-StructureV3

+ 3
- 3
installation.md Просмотреть файл

73
 
73
 
74
 ```bash
74
 ```bash
75
 # Stage 1
75
 # Stage 1
76
-python -m src.image_split --help
76
+python -m src.image_prepare --help
77
 
77
 
78
 # Stage 2 — PaddleOCR
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
 # Stage 2 — Surya
81
 # Stage 2 — Surya
82
 python -m src.image_ocr -i test.jpg --ocr-engine surya
82
 python -m src.image_ocr -i test.jpg --ocr-engine surya
83
 
83
 
84
 # Stage 2 — с LLM-корректором
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
         ),
144
         ),
145
     ] = True,
145
     ] = True,
146
 ) -> None:
146
 ) -> None:
147
-    """Разрезать отсканированное изображение на отдельные страницы по геометрической сетке."""
147
+    """Подготовить отсканированное изображение: разрезать по сетке, обрезать, добавить рамку."""
148
     input_path = _validate_input(input)
148
     input_path = _validate_input(input)
149
     _validate_rotation(pre_rotate)
149
     _validate_rotation(pre_rotate)
150
     cols, rows = _resolve_grid(slice, slice_auto, input_path, pre_rotate)
150
     cols, rows = _resolve_grid(slice, slice_auto, input_path, pre_rotate)

+ 2
- 2
stage2_results.md Просмотреть файл

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

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