bekzhanK1 commited on
Commit
7fefcdd
·
1 Parent(s): 62d55bf

process 58 pdfs

Browse files
Files changed (3) hide show
  1. README.md +64 -0
  2. all_annotations.json +2574 -0
  3. process_all_pdfs.py +245 -0
README.md CHANGED
@@ -99,6 +99,70 @@ Health check endpoint.
99
  ### `GET /docs`
100
  Interactive API documentation (Swagger UI).
101
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
  ## Response Format
103
 
104
  The API returns a JSON object with the following structure:
 
99
  ### `GET /docs`
100
  Interactive API documentation (Swagger UI).
101
 
102
+ ## Batch Processing
103
+
104
+ For processing multiple PDF files locally, use the `process_all_pdfs.py` script to batch process all PDFs in a folder and generate a single JSON file with annotations.
105
+
106
+ ### Basic Usage
107
+
108
+ Process all PDFs in the `documents` folder:
109
+ ```bash
110
+ python process_all_pdfs.py
111
+ ```
112
+
113
+ This will:
114
+ - Process all PDF files in the `documents/` folder
115
+ - Detect signatures and stamps on each page
116
+ - Generate a single JSON file: `all_annotations.json`
117
+ - Only include pages that have annotations
118
+
119
+ ### Advanced Options
120
+
121
+ ```bash
122
+ python process_all_pdfs.py \
123
+ --documents-dir documents \
124
+ --output results.json \
125
+ --dpi 300 \
126
+ --stamp-conf 0.3
127
+ ```
128
+
129
+ **Parameters**:
130
+ - `--documents-dir`: Directory containing PDF files (default: `documents`)
131
+ - `--output`: Output JSON file path (default: `all_annotations.json`)
132
+ - `--dpi`: DPI for PDF to image conversion (default: 200)
133
+ - `--stamp-conf`: Confidence threshold for stamp detection (default: 0.25)
134
+ - `--stamp-model`: Path to stamp model (default: `stamp_detector/stamp_model.pt`)
135
+
136
+ ### Output Format
137
+
138
+ The script generates a JSON file with the following structure:
139
+ ```json
140
+ {
141
+ "filename.pdf": {
142
+ "page_1": {
143
+ "annotations": [
144
+ {
145
+ "annotation_1": {
146
+ "category": "signature",
147
+ "bbox": {
148
+ "x": 500,
149
+ "y": 800,
150
+ "width": 200,
151
+ "height": 100
152
+ },
153
+ "area": 20000
154
+ }
155
+ }
156
+ ],
157
+ "page_size": {
158
+ "width": 1654,
159
+ "height": 2339
160
+ }
161
+ }
162
+ }
163
+ }
164
+ ```
165
+
166
  ## Response Format
167
 
168
  The API returns a JSON object with the following structure:
all_annotations.json ADDED
@@ -0,0 +1,2574 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "АПЗ-.pdf": {
3
+ "page_8": {
4
+ "annotations": [
5
+ {
6
+ "annotation_1": {
7
+ "category": "signature",
8
+ "bbox": {
9
+ "x": 1094.22119140625,
10
+ "y": 4205.74169921875,
11
+ "width": 835.1661376953125,
12
+ "height": 340.6806640625
13
+ },
14
+ "area": 284524.9543925524
15
+ }
16
+ },
17
+ {
18
+ "annotation_2": {
19
+ "category": "stamp",
20
+ "bbox": {
21
+ "x": 1125.0,
22
+ "y": 4223.0,
23
+ "width": 798.0,
24
+ "height": 343.0
25
+ },
26
+ "area": 273714.0
27
+ }
28
+ }
29
+ ],
30
+ "page_size": {
31
+ "width": 3306,
32
+ "height": 4678
33
+ }
34
+ }
35
+ },
36
+ "АПЗ-2.pdf": {
37
+ "page_8": {
38
+ "annotations": [
39
+ {
40
+ "annotation_3": {
41
+ "category": "signature",
42
+ "bbox": {
43
+ "x": 1277.733642578125,
44
+ "y": 4147.83154296875,
45
+ "width": 359.82958984375,
46
+ "height": 170.86376953125
47
+ },
48
+ "area": 61481.840109586716
49
+ }
50
+ },
51
+ {
52
+ "annotation_4": {
53
+ "category": "stamp",
54
+ "bbox": {
55
+ "x": 1323.0,
56
+ "y": 4177.0,
57
+ "width": 261.0,
58
+ "height": 126.0
59
+ },
60
+ "area": 32886.0
61
+ }
62
+ },
63
+ {
64
+ "annotation_5": {
65
+ "category": "stamp",
66
+ "bbox": {
67
+ "x": 1293.0,
68
+ "y": 4167.0,
69
+ "width": 325.0,
70
+ "height": 175.0
71
+ },
72
+ "area": 56875.0
73
+ }
74
+ }
75
+ ],
76
+ "page_size": {
77
+ "width": 3306,
78
+ "height": 4678
79
+ }
80
+ }
81
+ },
82
+ "АПЗ-31-.pdf": {
83
+ "page_8": {
84
+ "annotations": [
85
+ {
86
+ "annotation_6": {
87
+ "category": "signature",
88
+ "bbox": {
89
+ "x": 1103.042236328125,
90
+ "y": 4209.53662109375,
91
+ "width": 827.6363525390625,
92
+ "height": 331.9755859375
93
+ },
94
+ "area": 274755.0630773306
95
+ }
96
+ },
97
+ {
98
+ "annotation_7": {
99
+ "category": "stamp",
100
+ "bbox": {
101
+ "x": 1141.0,
102
+ "y": 4205.0,
103
+ "width": 818.0,
104
+ "height": 472.0
105
+ },
106
+ "area": 386096.0
107
+ }
108
+ }
109
+ ],
110
+ "page_size": {
111
+ "width": 3306,
112
+ "height": 4678
113
+ }
114
+ }
115
+ },
116
+ "АПЗ-41-чб.pdf": {
117
+ "page_1": {
118
+ "annotations": [
119
+ {
120
+ "annotation_8": {
121
+ "category": "signature",
122
+ "bbox": {
123
+ "x": 1300.036865234375,
124
+ "y": 4150.7392578125,
125
+ "width": 306.29248046875,
126
+ "height": 158.70751953125
127
+ },
128
+ "area": 48610.91982626915
129
+ }
130
+ }
131
+ ],
132
+ "page_size": {
133
+ "width": 3306,
134
+ "height": 4678
135
+ }
136
+ },
137
+ "page_3": {
138
+ "annotations": [
139
+ {
140
+ "annotation_9": {
141
+ "category": "stamp",
142
+ "bbox": {
143
+ "x": 1550.0,
144
+ "y": 2737.0,
145
+ "width": 632.0,
146
+ "height": 640.0
147
+ },
148
+ "area": 404480.0
149
+ }
150
+ }
151
+ ],
152
+ "page_size": {
153
+ "width": 3306,
154
+ "height": 4678
155
+ }
156
+ },
157
+ "page_5": {
158
+ "annotations": [
159
+ {
160
+ "annotation_10": {
161
+ "category": "signature",
162
+ "bbox": {
163
+ "x": 1128.8507080078125,
164
+ "y": 4053.9560546875,
165
+ "width": 393.917724609375,
166
+ "height": 169.89306640625
167
+ },
168
+ "area": 66923.89014565945
169
+ }
170
+ },
171
+ {
172
+ "annotation_11": {
173
+ "category": "stamp",
174
+ "bbox": {
175
+ "x": 1776.0,
176
+ "y": 3881.0,
177
+ "width": 638.0,
178
+ "height": 640.0
179
+ },
180
+ "area": 408320.0
181
+ }
182
+ }
183
+ ],
184
+ "page_size": {
185
+ "width": 3306,
186
+ "height": 4678
187
+ }
188
+ }
189
+ },
190
+ "Археология-.pdf": {
191
+ "page_2": {
192
+ "annotations": [
193
+ {
194
+ "annotation_12": {
195
+ "category": "signature",
196
+ "bbox": {
197
+ "x": 1827.8319091796875,
198
+ "y": 2194.869140625,
199
+ "width": 714.1492919921875,
200
+ "height": 337.154052734375
201
+ },
202
+ "area": 240778.32805255055
203
+ }
204
+ },
205
+ {
206
+ "annotation_13": {
207
+ "category": "signature",
208
+ "bbox": {
209
+ "x": 559.0556640625,
210
+ "y": 2032.4005126953125,
211
+ "width": 689.786865234375,
212
+ "height": 410.9171142578125
213
+ },
214
+ "area": 283445.228115052
215
+ }
216
+ },
217
+ {
218
+ "annotation_14": {
219
+ "category": "stamp",
220
+ "bbox": {
221
+ "x": 2188.0,
222
+ "y": 1941.0,
223
+ "width": 633.0,
224
+ "height": 627.0
225
+ },
226
+ "area": 396891.0
227
+ }
228
+ },
229
+ {
230
+ "annotation_15": {
231
+ "category": "stamp",
232
+ "bbox": {
233
+ "x": 980.0,
234
+ "y": 1939.0,
235
+ "width": 621.0,
236
+ "height": 656.0
237
+ },
238
+ "area": 407376.0
239
+ }
240
+ }
241
+ ],
242
+ "page_size": {
243
+ "width": 3306,
244
+ "height": 4678
245
+ }
246
+ }
247
+ },
248
+ "Археология-2.pdf": {
249
+ "page_2": {
250
+ "annotations": [
251
+ {
252
+ "annotation_16": {
253
+ "category": "stamp",
254
+ "bbox": {
255
+ "x": 2186.0,
256
+ "y": 1990.0,
257
+ "width": 643.0,
258
+ "height": 655.0
259
+ },
260
+ "area": 421165.0
261
+ }
262
+ },
263
+ {
264
+ "annotation_17": {
265
+ "category": "stamp",
266
+ "bbox": {
267
+ "x": 969.0,
268
+ "y": 1936.0,
269
+ "width": 628.0,
270
+ "height": 654.0
271
+ },
272
+ "area": 410712.0
273
+ }
274
+ }
275
+ ],
276
+ "page_size": {
277
+ "width": 3306,
278
+ "height": 4678
279
+ }
280
+ }
281
+ },
282
+ "Археология-31-.pdf": {
283
+ "page_2": {
284
+ "annotations": [
285
+ {
286
+ "annotation_18": {
287
+ "category": "signature",
288
+ "bbox": {
289
+ "x": 571.9404296875,
290
+ "y": 2097.822265625,
291
+ "width": 547.061279296875,
292
+ "height": 314.03662109375
293
+ },
294
+ "area": 171797.27568161488
295
+ }
296
+ },
297
+ {
298
+ "annotation_19": {
299
+ "category": "signature",
300
+ "bbox": {
301
+ "x": 1839.173828125,
302
+ "y": 2216.769287109375,
303
+ "width": 667.1865234375,
304
+ "height": 283.654052734375
305
+ },
306
+ "area": 189250.16130280495
307
+ }
308
+ },
309
+ {
310
+ "annotation_20": {
311
+ "category": "stamp",
312
+ "bbox": {
313
+ "x": 2189.0,
314
+ "y": 1941.0,
315
+ "width": 631.0,
316
+ "height": 628.0
317
+ },
318
+ "area": 396268.0
319
+ }
320
+ },
321
+ {
322
+ "annotation_21": {
323
+ "category": "stamp",
324
+ "bbox": {
325
+ "x": 979.0,
326
+ "y": 1939.0,
327
+ "width": 623.0,
328
+ "height": 670.0
329
+ },
330
+ "area": 417410.0
331
+ }
332
+ }
333
+ ],
334
+ "page_size": {
335
+ "width": 3306,
336
+ "height": 4678
337
+ }
338
+ }
339
+ },
340
+ "Дозиметр-41-чб.pdf": {
341
+ "page_1": {
342
+ "annotations": [
343
+ {
344
+ "annotation_22": {
345
+ "category": "stamp",
346
+ "bbox": {
347
+ "x": 775.0,
348
+ "y": 1595.0,
349
+ "width": 642.0,
350
+ "height": 644.0
351
+ },
352
+ "area": 413448.0
353
+ }
354
+ }
355
+ ],
356
+ "page_size": {
357
+ "width": 3306,
358
+ "height": 4678
359
+ }
360
+ },
361
+ "page_2": {
362
+ "annotations": [
363
+ {
364
+ "annotation_23": {
365
+ "category": "signature",
366
+ "bbox": {
367
+ "x": 509.1515808105469,
368
+ "y": 2075.773193359375,
369
+ "width": 430.3069152832031,
370
+ "height": 97.074462890625
371
+ },
372
+ "area": 41771.81267923862
373
+ }
374
+ },
375
+ {
376
+ "annotation_24": {
377
+ "category": "stamp",
378
+ "bbox": {
379
+ "x": 1090.0,
380
+ "y": 2182.0,
381
+ "width": 638.0,
382
+ "height": 666.0
383
+ },
384
+ "area": 424908.0
385
+ }
386
+ }
387
+ ],
388
+ "page_size": {
389
+ "width": 3306,
390
+ "height": 4678
391
+ }
392
+ },
393
+ "page_4": {
394
+ "annotations": [
395
+ {
396
+ "annotation_25": {
397
+ "category": "signature",
398
+ "bbox": {
399
+ "x": 1346.739501953125,
400
+ "y": 2737.7177734375,
401
+ "width": 370.17578125,
402
+ "height": 158.134765625
403
+ },
404
+ "area": 58537.66040802002
405
+ }
406
+ },
407
+ {
408
+ "annotation_26": {
409
+ "category": "stamp",
410
+ "bbox": {
411
+ "x": 735.0,
412
+ "y": 2718.0,
413
+ "width": 634.0,
414
+ "height": 643.0
415
+ },
416
+ "area": 407662.0
417
+ }
418
+ }
419
+ ],
420
+ "page_size": {
421
+ "width": 3306,
422
+ "height": 4678
423
+ }
424
+ }
425
+ },
426
+ "Локалсмета-2.pdf": {
427
+ "page_3": {
428
+ "annotations": [
429
+ {
430
+ "annotation_27": {
431
+ "category": "signature",
432
+ "bbox": {
433
+ "x": 1941.6580810546875,
434
+ "y": 670.0573120117188,
435
+ "width": 368.1053466796875,
436
+ "height": 127.58782958984375
437
+ },
438
+ "area": 46965.762243278325
439
+ }
440
+ },
441
+ {
442
+ "annotation_28": {
443
+ "category": "stamp",
444
+ "bbox": {
445
+ "x": 1955.0,
446
+ "y": 670.0,
447
+ "width": 307.0,
448
+ "height": 147.0
449
+ },
450
+ "area": 45129.0
451
+ }
452
+ },
453
+ {
454
+ "annotation_29": {
455
+ "category": "stamp",
456
+ "bbox": {
457
+ "x": 1955.0,
458
+ "y": 496.0,
459
+ "width": 265.0,
460
+ "height": 136.0
461
+ },
462
+ "area": 36040.0
463
+ }
464
+ },
465
+ {
466
+ "annotation_30": {
467
+ "category": "stamp",
468
+ "bbox": {
469
+ "x": 1948.0,
470
+ "y": 488.0,
471
+ "width": 299.0,
472
+ "height": 186.0
473
+ },
474
+ "area": 55614.0
475
+ }
476
+ },
477
+ {
478
+ "annotation_31": {
479
+ "category": "stamp",
480
+ "bbox": {
481
+ "x": 1955.0,
482
+ "y": 667.0,
483
+ "width": 341.0,
484
+ "height": 188.0
485
+ },
486
+ "area": 64108.0
487
+ }
488
+ },
489
+ {
490
+ "annotation_32": {
491
+ "category": "stamp",
492
+ "bbox": {
493
+ "x": 1941.0,
494
+ "y": 496.0,
495
+ "width": 309.0,
496
+ "height": 303.0
497
+ },
498
+ "area": 93627.0
499
+ }
500
+ }
501
+ ],
502
+ "page_size": {
503
+ "width": 4678,
504
+ "height": 3306
505
+ }
506
+ }
507
+ },
508
+ "Паспортпроекта-2.pdf": {
509
+ "page_2": {
510
+ "annotations": [
511
+ {
512
+ "annotation_33": {
513
+ "category": "stamp",
514
+ "bbox": {
515
+ "x": 1816.0,
516
+ "y": 3238.0,
517
+ "width": 657.0,
518
+ "height": 653.0
519
+ },
520
+ "area": 429021.0
521
+ }
522
+ }
523
+ ],
524
+ "page_size": {
525
+ "width": 3306,
526
+ "height": 4678
527
+ }
528
+ },
529
+ "page_5": {
530
+ "annotations": [
531
+ {
532
+ "annotation_34": {
533
+ "category": "signature",
534
+ "bbox": {
535
+ "x": 1773.5352783203125,
536
+ "y": 1016.4044799804688,
537
+ "width": 349.6097412109375,
538
+ "height": 153.91668701171875
539
+ },
540
+ "area": 53810.77311421186
541
+ }
542
+ },
543
+ {
544
+ "annotation_35": {
545
+ "category": "stamp",
546
+ "bbox": {
547
+ "x": 1500.0,
548
+ "y": 363.0,
549
+ "width": 664.0,
550
+ "height": 657.0
551
+ },
552
+ "area": 436248.0
553
+ }
554
+ }
555
+ ],
556
+ "page_size": {
557
+ "width": 3306,
558
+ "height": 4678
559
+ }
560
+ }
561
+ },
562
+ "Паспортпроекта-31-.pdf": {
563
+ "page_2": {
564
+ "annotations": [
565
+ {
566
+ "annotation_36": {
567
+ "category": "signature",
568
+ "bbox": {
569
+ "x": 1623.6539306640625,
570
+ "y": 3351.38525390625,
571
+ "width": 483.5692138671875,
572
+ "height": 596.03515625
573
+ },
574
+ "area": 288224.25194501877
575
+ }
576
+ },
577
+ {
578
+ "annotation_37": {
579
+ "category": "stamp",
580
+ "bbox": {
581
+ "x": 2003.0,
582
+ "y": 3238.0,
583
+ "width": 643.0,
584
+ "height": 648.0
585
+ },
586
+ "area": 416664.0
587
+ }
588
+ }
589
+ ],
590
+ "page_size": {
591
+ "width": 3306,
592
+ "height": 4678
593
+ }
594
+ },
595
+ "page_5": {
596
+ "annotations": [
597
+ {
598
+ "annotation_38": {
599
+ "category": "signature",
600
+ "bbox": {
601
+ "x": 1559.3944091796875,
602
+ "y": 831.4573364257812,
603
+ "width": 1168.6121826171875,
604
+ "height": 395.02117919921875
605
+ },
606
+ "area": 461626.56240401417
607
+ }
608
+ },
609
+ {
610
+ "annotation_39": {
611
+ "category": "stamp",
612
+ "bbox": {
613
+ "x": 1492.0,
614
+ "y": 385.0,
615
+ "width": 679.0,
616
+ "height": 654.0
617
+ },
618
+ "area": 444066.0
619
+ }
620
+ }
621
+ ],
622
+ "page_size": {
623
+ "width": 3306,
624
+ "height": 4678
625
+ }
626
+ }
627
+ },
628
+ "Паспортпроекта-41-.pdf": {
629
+ "page_2": {
630
+ "annotations": [
631
+ {
632
+ "annotation_40": {
633
+ "category": "stamp",
634
+ "bbox": {
635
+ "x": 1818.0,
636
+ "y": 3239.0,
637
+ "width": 655.0,
638
+ "height": 652.0
639
+ },
640
+ "area": 427060.0
641
+ }
642
+ }
643
+ ],
644
+ "page_size": {
645
+ "width": 3306,
646
+ "height": 4678
647
+ }
648
+ },
649
+ "page_5": {
650
+ "annotations": [
651
+ {
652
+ "annotation_41": {
653
+ "category": "signature",
654
+ "bbox": {
655
+ "x": 1781.01513671875,
656
+ "y": 1032.7637939453125,
657
+ "width": 347.931396484375,
658
+ "height": 139.21875
659
+ },
660
+ "area": 48438.57410430908
661
+ }
662
+ },
663
+ {
664
+ "annotation_42": {
665
+ "category": "stamp",
666
+ "bbox": {
667
+ "x": 1496.0,
668
+ "y": 363.0,
669
+ "width": 659.0,
670
+ "height": 652.0
671
+ },
672
+ "area": 429668.0
673
+ }
674
+ }
675
+ ],
676
+ "page_size": {
677
+ "width": 3306,
678
+ "height": 4678
679
+ }
680
+ }
681
+ },
682
+ "Перечень-2.pdf": {
683
+ "page_1": {
684
+ "annotations": [
685
+ {
686
+ "annotation_43": {
687
+ "category": "signature",
688
+ "bbox": {
689
+ "x": 669.84130859375,
690
+ "y": 422.16827392578125,
691
+ "width": 275.3563232421875,
692
+ "height": 190.45623779296875
693
+ },
694
+ "area": 52443.32937721163
695
+ }
696
+ },
697
+ {
698
+ "annotation_44": {
699
+ "category": "signature",
700
+ "bbox": {
701
+ "x": 580.2922973632812,
702
+ "y": 398.9649963378906,
703
+ "width": 371.13348388671875,
704
+ "height": 215.83425903320312
705
+ },
706
+ "area": 80103.32049710117
707
+ }
708
+ },
709
+ {
710
+ "annotation_45": {
711
+ "category": "stamp",
712
+ "bbox": {
713
+ "x": 631.0,
714
+ "y": 65.0,
715
+ "width": 643.0,
716
+ "height": 638.0
717
+ },
718
+ "area": 410234.0
719
+ }
720
+ }
721
+ ],
722
+ "page_size": {
723
+ "width": 3306,
724
+ "height": 4678
725
+ }
726
+ },
727
+ "page_2": {
728
+ "annotations": [
729
+ {
730
+ "annotation_46": {
731
+ "category": "signature",
732
+ "bbox": {
733
+ "x": 1565.6239013671875,
734
+ "y": 362.197021484375,
735
+ "width": 398.0263671875,
736
+ "height": 145.67953491210938
737
+ },
738
+ "area": 57984.29605463147
739
+ }
740
+ },
741
+ {
742
+ "annotation_47": {
743
+ "category": "stamp",
744
+ "bbox": {
745
+ "x": 1953.0,
746
+ "y": 429.0,
747
+ "width": 655.0,
748
+ "height": 652.0
749
+ },
750
+ "area": 427060.0
751
+ }
752
+ }
753
+ ],
754
+ "page_size": {
755
+ "width": 3306,
756
+ "height": 4678
757
+ }
758
+ }
759
+ },
760
+ "Письмо-2.pdf": {
761
+ "page_1": {
762
+ "annotations": [
763
+ {
764
+ "annotation_48": {
765
+ "category": "signature",
766
+ "bbox": {
767
+ "x": 1350.14013671875,
768
+ "y": 2804.76806640625,
769
+ "width": 814.440185546875,
770
+ "height": 388.38818359375
771
+ },
772
+ "area": 316318.9443103075
773
+ }
774
+ },
775
+ {
776
+ "annotation_49": {
777
+ "category": "stamp",
778
+ "bbox": {
779
+ "x": 1949.0,
780
+ "y": 2747.0,
781
+ "width": 598.0,
782
+ "height": 625.0
783
+ },
784
+ "area": 373750.0
785
+ }
786
+ }
787
+ ],
788
+ "page_size": {
789
+ "width": 3306,
790
+ "height": 4678
791
+ }
792
+ }
793
+ },
794
+ "Письмо-41-.pdf": {
795
+ "page_2": {
796
+ "annotations": [
797
+ {
798
+ "annotation_50": {
799
+ "category": "signature",
800
+ "bbox": {
801
+ "x": 1618.9093017578125,
802
+ "y": 877.42724609375,
803
+ "width": 240.3433837890625,
804
+ "height": 157.1033935546875
805
+ },
806
+ "area": 37758.761211678386
807
+ }
808
+ },
809
+ {
810
+ "annotation_51": {
811
+ "category": "stamp",
812
+ "bbox": {
813
+ "x": 1708.0,
814
+ "y": 903.0,
815
+ "width": 641.0,
816
+ "height": 647.0
817
+ },
818
+ "area": 414727.0
819
+ }
820
+ }
821
+ ],
822
+ "page_size": {
823
+ "width": 3306,
824
+ "height": 4678
825
+ }
826
+ }
827
+ },
828
+ "Письмо-42.pdf": {
829
+ "page_1": {
830
+ "annotations": [
831
+ {
832
+ "annotation_52": {
833
+ "category": "signature",
834
+ "bbox": {
835
+ "x": 1624.972900390625,
836
+ "y": 2878.91650390625,
837
+ "width": 505.021484375,
838
+ "height": 202.25439453125
839
+ },
840
+ "area": 102142.81454753876
841
+ }
842
+ },
843
+ {
844
+ "annotation_53": {
845
+ "category": "stamp",
846
+ "bbox": {
847
+ "x": 1894.0,
848
+ "y": 2679.0,
849
+ "width": 638.0,
850
+ "height": 647.0
851
+ },
852
+ "area": 412786.0
853
+ }
854
+ }
855
+ ],
856
+ "page_size": {
857
+ "width": 3306,
858
+ "height": 4678
859
+ }
860
+ }
861
+ },
862
+ "Разрешназемлю-31-.pdf": {
863
+ "page_1": {
864
+ "annotations": [
865
+ {
866
+ "annotation_54": {
867
+ "category": "stamp",
868
+ "bbox": {
869
+ "x": 1967.0,
870
+ "y": 3284.0,
871
+ "width": 617.0,
872
+ "height": 627.0
873
+ },
874
+ "area": 386859.0
875
+ }
876
+ }
877
+ ],
878
+ "page_size": {
879
+ "width": 3306,
880
+ "height": 4678
881
+ }
882
+ }
883
+ },
884
+ "Разрешназемлю-41-.pdf": {
885
+ "page_1": {
886
+ "annotations": [
887
+ {
888
+ "annotation_55": {
889
+ "category": "stamp",
890
+ "bbox": {
891
+ "x": 1949.0,
892
+ "y": 3281.0,
893
+ "width": 602.0,
894
+ "height": 628.0
895
+ },
896
+ "area": 378056.0
897
+ }
898
+ }
899
+ ],
900
+ "page_size": {
901
+ "width": 3306,
902
+ "height": 4678
903
+ }
904
+ }
905
+ },
906
+ "ТЗ-.pdf": {
907
+ "page_1": {
908
+ "annotations": [
909
+ {
910
+ "annotation_56": {
911
+ "category": "stamp",
912
+ "bbox": {
913
+ "x": 1903.0,
914
+ "y": 420.0,
915
+ "width": 632.0,
916
+ "height": 684.0
917
+ },
918
+ "area": 432288.0
919
+ }
920
+ }
921
+ ],
922
+ "page_size": {
923
+ "width": 3306,
924
+ "height": 4678
925
+ }
926
+ },
927
+ "page_3": {
928
+ "annotations": [
929
+ {
930
+ "annotation_57": {
931
+ "category": "stamp",
932
+ "bbox": {
933
+ "x": 2074.0,
934
+ "y": 3369.0,
935
+ "width": 663.0,
936
+ "height": 640.0
937
+ },
938
+ "area": 424320.0
939
+ }
940
+ }
941
+ ],
942
+ "page_size": {
943
+ "width": 3306,
944
+ "height": 4678
945
+ }
946
+ }
947
+ },
948
+ "ТЗ-2.pdf": {
949
+ "page_1": {
950
+ "annotations": [
951
+ {
952
+ "annotation_58": {
953
+ "category": "stamp",
954
+ "bbox": {
955
+ "x": 1917.0,
956
+ "y": 417.0,
957
+ "width": 632.0,
958
+ "height": 673.0
959
+ },
960
+ "area": 425336.0
961
+ }
962
+ }
963
+ ],
964
+ "page_size": {
965
+ "width": 3306,
966
+ "height": 4678
967
+ }
968
+ },
969
+ "page_3": {
970
+ "annotations": [
971
+ {
972
+ "annotation_59": {
973
+ "category": "stamp",
974
+ "bbox": {
975
+ "x": 2066.0,
976
+ "y": 3343.0,
977
+ "width": 661.0,
978
+ "height": 648.0
979
+ },
980
+ "area": 428328.0
981
+ }
982
+ }
983
+ ],
984
+ "page_size": {
985
+ "width": 3306,
986
+ "height": 4678
987
+ }
988
+ }
989
+ },
990
+ "ТЗ-31-.pdf": {
991
+ "page_1": {
992
+ "annotations": [
993
+ {
994
+ "annotation_60": {
995
+ "category": "stamp",
996
+ "bbox": {
997
+ "x": 1902.0,
998
+ "y": 437.0,
999
+ "width": 631.0,
1000
+ "height": 664.0
1001
+ },
1002
+ "area": 418984.0
1003
+ }
1004
+ }
1005
+ ],
1006
+ "page_size": {
1007
+ "width": 3306,
1008
+ "height": 4678
1009
+ }
1010
+ },
1011
+ "page_3": {
1012
+ "annotations": [
1013
+ {
1014
+ "annotation_61": {
1015
+ "category": "stamp",
1016
+ "bbox": {
1017
+ "x": 2074.0,
1018
+ "y": 3372.0,
1019
+ "width": 651.0,
1020
+ "height": 640.0
1021
+ },
1022
+ "area": 416640.0
1023
+ }
1024
+ }
1025
+ ],
1026
+ "page_size": {
1027
+ "width": 3306,
1028
+ "height": 4678
1029
+ }
1030
+ }
1031
+ },
1032
+ "ТЗ-41-чб.pdf": {
1033
+ "page_1": {
1034
+ "annotations": [
1035
+ {
1036
+ "annotation_62": {
1037
+ "category": "stamp",
1038
+ "bbox": {
1039
+ "x": 1911.0,
1040
+ "y": 418.0,
1041
+ "width": 639.0,
1042
+ "height": 671.0
1043
+ },
1044
+ "area": 428769.0
1045
+ }
1046
+ }
1047
+ ],
1048
+ "page_size": {
1049
+ "width": 3306,
1050
+ "height": 4678
1051
+ }
1052
+ },
1053
+ "page_3": {
1054
+ "annotations": [
1055
+ {
1056
+ "annotation_63": {
1057
+ "category": "stamp",
1058
+ "bbox": {
1059
+ "x": 2067.0,
1060
+ "y": 3345.0,
1061
+ "width": 652.0,
1062
+ "height": 640.0
1063
+ },
1064
+ "area": 417280.0
1065
+ }
1066
+ }
1067
+ ],
1068
+ "page_size": {
1069
+ "width": 3306,
1070
+ "height": 4678
1071
+ }
1072
+ }
1073
+ },
1074
+ "ТУ-.pdf": {
1075
+ "page_2": {
1076
+ "annotations": [
1077
+ {
1078
+ "annotation_64": {
1079
+ "category": "stamp",
1080
+ "bbox": {
1081
+ "x": 1640.0,
1082
+ "y": 2072.0,
1083
+ "width": 638.0,
1084
+ "height": 645.0
1085
+ },
1086
+ "area": 411510.0
1087
+ }
1088
+ },
1089
+ {
1090
+ "annotation_65": {
1091
+ "category": "stamp",
1092
+ "bbox": {
1093
+ "x": 1244.0,
1094
+ "y": 2415.0,
1095
+ "width": 656.0,
1096
+ "height": 651.0
1097
+ },
1098
+ "area": 427056.0
1099
+ }
1100
+ }
1101
+ ],
1102
+ "page_size": {
1103
+ "width": 3306,
1104
+ "height": 4678
1105
+ }
1106
+ }
1107
+ },
1108
+ "ТУ-2.pdf": {
1109
+ "page_2": {
1110
+ "annotations": [
1111
+ {
1112
+ "annotation_66": {
1113
+ "category": "stamp",
1114
+ "bbox": {
1115
+ "x": 1486.0,
1116
+ "y": 2074.0,
1117
+ "width": 665.0,
1118
+ "height": 647.0
1119
+ },
1120
+ "area": 430255.0
1121
+ }
1122
+ },
1123
+ {
1124
+ "annotation_67": {
1125
+ "category": "stamp",
1126
+ "bbox": {
1127
+ "x": 1213.0,
1128
+ "y": 2523.0,
1129
+ "width": 622.0,
1130
+ "height": 644.0
1131
+ },
1132
+ "area": 400568.0
1133
+ }
1134
+ }
1135
+ ],
1136
+ "page_size": {
1137
+ "width": 3306,
1138
+ "height": 4678
1139
+ }
1140
+ }
1141
+ },
1142
+ "ТУ-31-.pdf": {
1143
+ "page_2": {
1144
+ "annotations": [
1145
+ {
1146
+ "annotation_68": {
1147
+ "category": "stamp",
1148
+ "bbox": {
1149
+ "x": 1638.0,
1150
+ "y": 2078.0,
1151
+ "width": 637.0,
1152
+ "height": 638.0
1153
+ },
1154
+ "area": 406406.0
1155
+ }
1156
+ },
1157
+ {
1158
+ "annotation_69": {
1159
+ "category": "stamp",
1160
+ "bbox": {
1161
+ "x": 1243.0,
1162
+ "y": 2421.0,
1163
+ "width": 652.0,
1164
+ "height": 644.0
1165
+ },
1166
+ "area": 419888.0
1167
+ }
1168
+ }
1169
+ ],
1170
+ "page_size": {
1171
+ "width": 3306,
1172
+ "height": 4678
1173
+ }
1174
+ }
1175
+ },
1176
+ "ТУ-41-чб.pdf": {
1177
+ "page_2": {
1178
+ "annotations": [
1179
+ {
1180
+ "annotation_70": {
1181
+ "category": "stamp",
1182
+ "bbox": {
1183
+ "x": 1482.0,
1184
+ "y": 2080.0,
1185
+ "width": 662.0,
1186
+ "height": 640.0
1187
+ },
1188
+ "area": 423680.0
1189
+ }
1190
+ },
1191
+ {
1192
+ "annotation_71": {
1193
+ "category": "stamp",
1194
+ "bbox": {
1195
+ "x": 1203.0,
1196
+ "y": 2517.0,
1197
+ "width": 634.0,
1198
+ "height": 655.0
1199
+ },
1200
+ "area": 415270.0
1201
+ }
1202
+ }
1203
+ ],
1204
+ "page_size": {
1205
+ "width": 3306,
1206
+ "height": 4678
1207
+ }
1208
+ }
1209
+ },
1210
+ "археология-41-чб.pdf": {
1211
+ "page_2": {
1212
+ "annotations": [
1213
+ {
1214
+ "annotation_72": {
1215
+ "category": "stamp",
1216
+ "bbox": {
1217
+ "x": 2187.0,
1218
+ "y": 1988.0,
1219
+ "width": 644.0,
1220
+ "height": 656.0
1221
+ },
1222
+ "area": 422464.0
1223
+ }
1224
+ },
1225
+ {
1226
+ "annotation_73": {
1227
+ "category": "stamp",
1228
+ "bbox": {
1229
+ "x": 971.0,
1230
+ "y": 1939.0,
1231
+ "width": 618.0,
1232
+ "height": 656.0
1233
+ },
1234
+ "area": 405408.0
1235
+ }
1236
+ }
1237
+ ],
1238
+ "page_size": {
1239
+ "width": 3306,
1240
+ "height": 4678
1241
+ }
1242
+ }
1243
+ },
1244
+ "дефект-.pdf": {
1245
+ "page_2": {
1246
+ "annotations": [
1247
+ {
1248
+ "annotation_74": {
1249
+ "category": "signature",
1250
+ "bbox": {
1251
+ "x": 1198.421875,
1252
+ "y": 1348.02587890625,
1253
+ "width": 635.5634765625,
1254
+ "height": 817.16650390625
1255
+ },
1256
+ "area": 519361.18415308
1257
+ }
1258
+ },
1259
+ {
1260
+ "annotation_75": {
1261
+ "category": "signature",
1262
+ "bbox": {
1263
+ "x": 1874.5819091796875,
1264
+ "y": 1969.002197265625,
1265
+ "width": 784.8848876953125,
1266
+ "height": 406.70263671875
1267
+ },
1268
+ "area": 319214.7533463836
1269
+ }
1270
+ },
1271
+ {
1272
+ "annotation_76": {
1273
+ "category": "signature",
1274
+ "bbox": {
1275
+ "x": 1281.112548828125,
1276
+ "y": 1103.1058349609375,
1277
+ "width": 696.1903076171875,
1278
+ "height": 271.8824462890625
1279
+ },
1280
+ "area": 189281.92391769588
1281
+ }
1282
+ },
1283
+ {
1284
+ "annotation_77": {
1285
+ "category": "stamp",
1286
+ "bbox": {
1287
+ "x": 1425.0,
1288
+ "y": 1492.0,
1289
+ "width": 639.0,
1290
+ "height": 642.0
1291
+ },
1292
+ "area": 410238.0
1293
+ }
1294
+ }
1295
+ ],
1296
+ "page_size": {
1297
+ "width": 3306,
1298
+ "height": 4678
1299
+ }
1300
+ }
1301
+ },
1302
+ "дефект-2.pdf": {
1303
+ "page_2": {
1304
+ "annotations": [
1305
+ {
1306
+ "annotation_78": {
1307
+ "category": "signature",
1308
+ "bbox": {
1309
+ "x": 1951.1722412109375,
1310
+ "y": 2053.927734375,
1311
+ "width": 291.6876220703125,
1312
+ "height": 161.29345703125
1313
+ },
1314
+ "area": 47047.30493694544
1315
+ }
1316
+ },
1317
+ {
1318
+ "annotation_79": {
1319
+ "category": "signature",
1320
+ "bbox": {
1321
+ "x": 1425.825439453125,
1322
+ "y": 1188.882568359375,
1323
+ "width": 194.4608154296875,
1324
+ "height": 116.2437744140625
1325
+ },
1326
+ "area": 22604.859161183238
1327
+ }
1328
+ },
1329
+ {
1330
+ "annotation_80": {
1331
+ "category": "stamp",
1332
+ "bbox": {
1333
+ "x": 1380.0,
1334
+ "y": 1468.0,
1335
+ "width": 672.0,
1336
+ "height": 645.0
1337
+ },
1338
+ "area": 433440.0
1339
+ }
1340
+ }
1341
+ ],
1342
+ "page_size": {
1343
+ "width": 3306,
1344
+ "height": 4678
1345
+ }
1346
+ }
1347
+ },
1348
+ "дефект-31-.pdf": {
1349
+ "page_2": {
1350
+ "annotations": [
1351
+ {
1352
+ "annotation_81": {
1353
+ "category": "signature",
1354
+ "bbox": {
1355
+ "x": 1884.9859619140625,
1356
+ "y": 1971.3970947265625,
1357
+ "width": 761.8782958984375,
1358
+ "height": 383.3299560546875
1359
+ },
1360
+ "area": 292050.77368576825
1361
+ }
1362
+ },
1363
+ {
1364
+ "annotation_82": {
1365
+ "category": "signature",
1366
+ "bbox": {
1367
+ "x": 1288.6339111328125,
1368
+ "y": 1105.7132568359375,
1369
+ "width": 672.66015625,
1370
+ "height": 259.8907470703125
1371
+ },
1372
+ "area": 174818.15053224564
1373
+ }
1374
+ },
1375
+ {
1376
+ "annotation_83": {
1377
+ "category": "signature",
1378
+ "bbox": {
1379
+ "x": 1201.832763671875,
1380
+ "y": 1371.5042724609375,
1381
+ "width": 540.2335205078125,
1382
+ "height": 773.6798095703125
1383
+ },
1384
+ "area": 417967.7672699839
1385
+ }
1386
+ },
1387
+ {
1388
+ "annotation_84": {
1389
+ "category": "stamp",
1390
+ "bbox": {
1391
+ "x": 1418.0,
1392
+ "y": 1489.0,
1393
+ "width": 647.0,
1394
+ "height": 647.0
1395
+ },
1396
+ "area": 418609.0
1397
+ }
1398
+ }
1399
+ ],
1400
+ "page_size": {
1401
+ "width": 3306,
1402
+ "height": 4678
1403
+ }
1404
+ }
1405
+ },
1406
+ "дефект-41-чб.pdf": {
1407
+ "page_2": {
1408
+ "annotations": [
1409
+ {
1410
+ "annotation_85": {
1411
+ "category": "signature",
1412
+ "bbox": {
1413
+ "x": 1961.3319091796875,
1414
+ "y": 2059.159423828125,
1415
+ "width": 249.1068115234375,
1416
+ "height": 149.423828125
1417
+ },
1418
+ "area": 37222.493389844894
1419
+ }
1420
+ },
1421
+ {
1422
+ "annotation_86": {
1423
+ "category": "signature",
1424
+ "bbox": {
1425
+ "x": 1435.3458251953125,
1426
+ "y": 1193.4576416015625,
1427
+ "width": 183.2825927734375,
1428
+ "height": 107.5174560546875
1429
+ },
1430
+ "area": 19706.07811410725
1431
+ }
1432
+ },
1433
+ {
1434
+ "annotation_87": {
1435
+ "category": "stamp",
1436
+ "bbox": {
1437
+ "x": 1376.0,
1438
+ "y": 1471.0,
1439
+ "width": 680.0,
1440
+ "height": 642.0
1441
+ },
1442
+ "area": 436560.0
1443
+ }
1444
+ }
1445
+ ],
1446
+ "page_size": {
1447
+ "width": 3306,
1448
+ "height": 4678
1449
+ }
1450
+ }
1451
+ },
1452
+ "дозиметрия-2.pdf": {
1453
+ "page_1": {
1454
+ "annotations": [
1455
+ {
1456
+ "annotation_88": {
1457
+ "category": "stamp",
1458
+ "bbox": {
1459
+ "x": 775.0,
1460
+ "y": 1591.0,
1461
+ "width": 648.0,
1462
+ "height": 647.0
1463
+ },
1464
+ "area": 419256.0
1465
+ }
1466
+ }
1467
+ ],
1468
+ "page_size": {
1469
+ "width": 3306,
1470
+ "height": 4678
1471
+ }
1472
+ },
1473
+ "page_2": {
1474
+ "annotations": [
1475
+ {
1476
+ "annotation_89": {
1477
+ "category": "stamp",
1478
+ "bbox": {
1479
+ "x": 1098.0,
1480
+ "y": 2179.0,
1481
+ "width": 631.0,
1482
+ "height": 670.0
1483
+ },
1484
+ "area": 422770.0
1485
+ }
1486
+ }
1487
+ ],
1488
+ "page_size": {
1489
+ "width": 3306,
1490
+ "height": 4678
1491
+ }
1492
+ },
1493
+ "page_4": {
1494
+ "annotations": [
1495
+ {
1496
+ "annotation_90": {
1497
+ "category": "signature",
1498
+ "bbox": {
1499
+ "x": 1336.9193115234375,
1500
+ "y": 2731.64892578125,
1501
+ "width": 364.5157470703125,
1502
+ "height": 154.340087890625
1503
+ },
1504
+ "area": 56259.39244034886
1505
+ }
1506
+ },
1507
+ {
1508
+ "annotation_91": {
1509
+ "category": "stamp",
1510
+ "bbox": {
1511
+ "x": 746.0,
1512
+ "y": 2712.0,
1513
+ "width": 625.0,
1514
+ "height": 651.0
1515
+ },
1516
+ "area": 406875.0
1517
+ }
1518
+ }
1519
+ ],
1520
+ "page_size": {
1521
+ "width": 3306,
1522
+ "height": 4678
1523
+ }
1524
+ }
1525
+ },
1526
+ "дозиметрия-31-.pdf": {
1527
+ "page_1": {
1528
+ "annotations": [
1529
+ {
1530
+ "annotation_92": {
1531
+ "category": "stamp",
1532
+ "bbox": {
1533
+ "x": 780.0,
1534
+ "y": 1680.0,
1535
+ "width": 646.0,
1536
+ "height": 638.0
1537
+ },
1538
+ "area": 412148.0
1539
+ }
1540
+ }
1541
+ ],
1542
+ "page_size": {
1543
+ "width": 3306,
1544
+ "height": 4678
1545
+ }
1546
+ },
1547
+ "page_2": {
1548
+ "annotations": [
1549
+ {
1550
+ "annotation_93": {
1551
+ "category": "stamp",
1552
+ "bbox": {
1553
+ "x": 1094.0,
1554
+ "y": 2214.0,
1555
+ "width": 630.0,
1556
+ "height": 653.0
1557
+ },
1558
+ "area": 411390.0
1559
+ }
1560
+ }
1561
+ ],
1562
+ "page_size": {
1563
+ "width": 3306,
1564
+ "height": 4678
1565
+ }
1566
+ },
1567
+ "page_4": {
1568
+ "annotations": [
1569
+ {
1570
+ "annotation_94": {
1571
+ "category": "signature",
1572
+ "bbox": {
1573
+ "x": 1369.12890625,
1574
+ "y": 2644.384521484375,
1575
+ "width": 874.537353515625,
1576
+ "height": 354.65234375
1577
+ },
1578
+ "area": 310156.7221212387
1579
+ }
1580
+ },
1581
+ {
1582
+ "annotation_95": {
1583
+ "category": "stamp",
1584
+ "bbox": {
1585
+ "x": 840.0,
1586
+ "y": 2766.0,
1587
+ "width": 635.0,
1588
+ "height": 669.0
1589
+ },
1590
+ "area": 424815.0
1591
+ }
1592
+ }
1593
+ ],
1594
+ "page_size": {
1595
+ "width": 3306,
1596
+ "height": 4678
1597
+ }
1598
+ }
1599
+ },
1600
+ "локалсмета-.pdf": {
1601
+ "page_3": {
1602
+ "annotations": [
1603
+ {
1604
+ "annotation_96": {
1605
+ "category": "signature",
1606
+ "bbox": {
1607
+ "x": 1392.5736083984375,
1608
+ "y": 401.95556640625,
1609
+ "width": 808.2169189453125,
1610
+ "height": 270.5618896484375
1611
+ },
1612
+ "area": 218672.6968356818
1613
+ }
1614
+ },
1615
+ {
1616
+ "annotation_97": {
1617
+ "category": "signature",
1618
+ "bbox": {
1619
+ "x": 1657.82958984375,
1620
+ "y": 630.1906127929688,
1621
+ "width": 868.0458984375,
1622
+ "height": 234.43634033203125
1623
+ },
1624
+ "area": 203501.50366991758
1625
+ }
1626
+ },
1627
+ {
1628
+ "annotation_98": {
1629
+ "category": "signature",
1630
+ "bbox": {
1631
+ "x": 1475.44189453125,
1632
+ "y": 585.4939575195312,
1633
+ "width": 1063.357421875,
1634
+ "height": 281.249755859375
1635
+ },
1636
+ "area": 299069.0152935982
1637
+ }
1638
+ },
1639
+ {
1640
+ "annotation_99": {
1641
+ "category": "stamp",
1642
+ "bbox": {
1643
+ "x": 1378.0,
1644
+ "y": 426.0,
1645
+ "width": 756.0,
1646
+ "height": 411.0
1647
+ },
1648
+ "area": 310716.0
1649
+ }
1650
+ }
1651
+ ],
1652
+ "page_size": {
1653
+ "width": 4678,
1654
+ "height": 3306
1655
+ }
1656
+ }
1657
+ },
1658
+ "локалсмета-32-.pdf": {
1659
+ "page_3": {
1660
+ "annotations": [
1661
+ {
1662
+ "annotation_100": {
1663
+ "category": "stamp",
1664
+ "bbox": {
1665
+ "x": 1954.0,
1666
+ "y": 668.0,
1667
+ "width": 315.0,
1668
+ "height": 158.0
1669
+ },
1670
+ "area": 49770.0
1671
+ }
1672
+ },
1673
+ {
1674
+ "annotation_101": {
1675
+ "category": "stamp",
1676
+ "bbox": {
1677
+ "x": 1957.0,
1678
+ "y": 663.0,
1679
+ "width": 248.0,
1680
+ "height": 148.0
1681
+ },
1682
+ "area": 36704.0
1683
+ }
1684
+ },
1685
+ {
1686
+ "annotation_102": {
1687
+ "category": "stamp",
1688
+ "bbox": {
1689
+ "x": 1952.0,
1690
+ "y": 500.0,
1691
+ "width": 274.0,
1692
+ "height": 138.0
1693
+ },
1694
+ "area": 37812.0
1695
+ }
1696
+ }
1697
+ ],
1698
+ "page_size": {
1699
+ "width": 4678,
1700
+ "height": 3306
1701
+ }
1702
+ }
1703
+ },
1704
+ "локалсметчб-.pdf": {
1705
+ "page_3": {
1706
+ "annotations": [
1707
+ {
1708
+ "annotation_103": {
1709
+ "category": "signature",
1710
+ "bbox": {
1711
+ "x": 1398.9615478515625,
1712
+ "y": 412.4830627441406,
1713
+ "width": 746.7799072265625,
1714
+ "height": 245.96151733398438
1715
+ },
1716
+ "area": 183679.1190959774
1717
+ }
1718
+ },
1719
+ {
1720
+ "annotation_104": {
1721
+ "category": "signature",
1722
+ "bbox": {
1723
+ "x": 1678.7471923828125,
1724
+ "y": 612.138671875,
1725
+ "width": 476.6868896484375,
1726
+ "height": 203.421142578125
1727
+ },
1728
+ "area": 96968.19174429774
1729
+ }
1730
+ }
1731
+ ],
1732
+ "page_size": {
1733
+ "width": 4678,
1734
+ "height": 3306
1735
+ }
1736
+ }
1737
+ },
1738
+ "отр-1.pdf": {
1739
+ "page_1": {
1740
+ "annotations": [
1741
+ {
1742
+ "annotation_105": {
1743
+ "category": "stamp",
1744
+ "bbox": {
1745
+ "x": 1451.0,
1746
+ "y": 2358.0,
1747
+ "width": 619.0,
1748
+ "height": 652.0
1749
+ },
1750
+ "area": 403588.0
1751
+ }
1752
+ }
1753
+ ],
1754
+ "page_size": {
1755
+ "width": 3306,
1756
+ "height": 4678
1757
+ }
1758
+ }
1759
+ },
1760
+ "отр-11.pdf": {
1761
+ "page_1": {
1762
+ "annotations": [
1763
+ {
1764
+ "annotation_106": {
1765
+ "category": "stamp",
1766
+ "bbox": {
1767
+ "x": 1444.0,
1768
+ "y": 2322.0,
1769
+ "width": 623.0,
1770
+ "height": 663.0
1771
+ },
1772
+ "area": 413049.0
1773
+ }
1774
+ }
1775
+ ],
1776
+ "page_size": {
1777
+ "width": 3306,
1778
+ "height": 4678
1779
+ }
1780
+ }
1781
+ },
1782
+ "отр-2.pdf": {
1783
+ "page_1": {
1784
+ "annotations": [
1785
+ {
1786
+ "annotation_107": {
1787
+ "category": "signature",
1788
+ "bbox": {
1789
+ "x": 1187.189453125,
1790
+ "y": 2745.45556640625,
1791
+ "width": 661.8670654296875,
1792
+ "height": 560.0751953125
1793
+ },
1794
+ "area": 370695.32594144344
1795
+ }
1796
+ },
1797
+ {
1798
+ "annotation_108": {
1799
+ "category": "stamp",
1800
+ "bbox": {
1801
+ "x": 1520.0,
1802
+ "y": 2700.0,
1803
+ "width": 646.0,
1804
+ "height": 658.0
1805
+ },
1806
+ "area": 425068.0
1807
+ }
1808
+ }
1809
+ ],
1810
+ "page_size": {
1811
+ "width": 3306,
1812
+ "height": 4678
1813
+ }
1814
+ },
1815
+ "page_3": {
1816
+ "annotations": [
1817
+ {
1818
+ "annotation_109": {
1819
+ "category": "stamp",
1820
+ "bbox": {
1821
+ "x": 1889.0,
1822
+ "y": 3896.0,
1823
+ "width": 642.0,
1824
+ "height": 644.0
1825
+ },
1826
+ "area": 413448.0
1827
+ }
1828
+ }
1829
+ ],
1830
+ "page_size": {
1831
+ "width": 3306,
1832
+ "height": 4678
1833
+ }
1834
+ }
1835
+ },
1836
+ "отр-22.pdf": {
1837
+ "page_1": {
1838
+ "annotations": [
1839
+ {
1840
+ "annotation_110": {
1841
+ "category": "stamp",
1842
+ "bbox": {
1843
+ "x": 1550.0,
1844
+ "y": 2728.0,
1845
+ "width": 632.0,
1846
+ "height": 646.0
1847
+ },
1848
+ "area": 408272.0
1849
+ }
1850
+ }
1851
+ ],
1852
+ "page_size": {
1853
+ "width": 3306,
1854
+ "height": 4678
1855
+ }
1856
+ },
1857
+ "page_3": {
1858
+ "annotations": [
1859
+ {
1860
+ "annotation_111": {
1861
+ "category": "signature",
1862
+ "bbox": {
1863
+ "x": 1128.1666259765625,
1864
+ "y": 4052.89111328125,
1865
+ "width": 372.7884521484375,
1866
+ "height": 160.2568359375
1867
+ },
1868
+ "area": 59741.89781534672
1869
+ }
1870
+ },
1871
+ {
1872
+ "annotation_112": {
1873
+ "category": "stamp",
1874
+ "bbox": {
1875
+ "x": 1772.0,
1876
+ "y": 3872.0,
1877
+ "width": 642.0,
1878
+ "height": 653.0
1879
+ },
1880
+ "area": 419226.0
1881
+ }
1882
+ }
1883
+ ],
1884
+ "page_size": {
1885
+ "width": 3306,
1886
+ "height": 4678
1887
+ }
1888
+ }
1889
+ },
1890
+ "отр-31-.pdf": {
1891
+ "page_1": {
1892
+ "annotations": [
1893
+ {
1894
+ "annotation_113": {
1895
+ "category": "signature",
1896
+ "bbox": {
1897
+ "x": 1183.654296875,
1898
+ "y": 2434.524658203125,
1899
+ "width": 394.2747802734375,
1900
+ "height": 285.019287109375
1901
+ },
1902
+ "area": 112375.91679874063
1903
+ }
1904
+ },
1905
+ {
1906
+ "annotation_114": {
1907
+ "category": "stamp",
1908
+ "bbox": {
1909
+ "x": 1446.0,
1910
+ "y": 2363.0,
1911
+ "width": 623.0,
1912
+ "height": 648.0
1913
+ },
1914
+ "area": 403704.0
1915
+ }
1916
+ }
1917
+ ],
1918
+ "page_size": {
1919
+ "width": 3306,
1920
+ "height": 4678
1921
+ }
1922
+ }
1923
+ },
1924
+ "отр-32-.pdf": {
1925
+ "page_1": {
1926
+ "annotations": [
1927
+ {
1928
+ "annotation_115": {
1929
+ "category": "signature",
1930
+ "bbox": {
1931
+ "x": 1210.6968994140625,
1932
+ "y": 2796.7666015625,
1933
+ "width": 445.056396484375,
1934
+ "height": 279.598388671875
1935
+ },
1936
+ "area": 124437.05132514238
1937
+ }
1938
+ },
1939
+ {
1940
+ "annotation_116": {
1941
+ "category": "stamp",
1942
+ "bbox": {
1943
+ "x": 1517.0,
1944
+ "y": 2699.0,
1945
+ "width": 650.0,
1946
+ "height": 660.0
1947
+ },
1948
+ "area": 429000.0
1949
+ }
1950
+ }
1951
+ ],
1952
+ "page_size": {
1953
+ "width": 3306,
1954
+ "height": 4678
1955
+ }
1956
+ },
1957
+ "page_3": {
1958
+ "annotations": [
1959
+ {
1960
+ "annotation_117": {
1961
+ "category": "stamp",
1962
+ "bbox": {
1963
+ "x": 1894.0,
1964
+ "y": 3911.0,
1965
+ "width": 637.0,
1966
+ "height": 629.0
1967
+ },
1968
+ "area": 400673.0
1969
+ }
1970
+ }
1971
+ ],
1972
+ "page_size": {
1973
+ "width": 3306,
1974
+ "height": 4678
1975
+ }
1976
+ }
1977
+ },
1978
+ "отр-41-.pdf": {
1979
+ "page_1": {
1980
+ "annotations": [
1981
+ {
1982
+ "annotation_118": {
1983
+ "category": "stamp",
1984
+ "bbox": {
1985
+ "x": 1441.0,
1986
+ "y": 2324.0,
1987
+ "width": 624.0,
1988
+ "height": 661.0
1989
+ },
1990
+ "area": 412464.0
1991
+ }
1992
+ }
1993
+ ],
1994
+ "page_size": {
1995
+ "width": 3306,
1996
+ "height": 4678
1997
+ }
1998
+ }
1999
+ },
2000
+ "паспортпроекта-.pdf": {
2001
+ "page_2": {
2002
+ "annotations": [
2003
+ {
2004
+ "annotation_119": {
2005
+ "category": "signature",
2006
+ "bbox": {
2007
+ "x": 1603.131103515625,
2008
+ "y": 3338.740966796875,
2009
+ "width": 645.76513671875,
2010
+ "height": 628.0458984375
2011
+ },
2012
+ "area": 405570.14547014236
2013
+ }
2014
+ },
2015
+ {
2016
+ "annotation_120": {
2017
+ "category": "stamp",
2018
+ "bbox": {
2019
+ "x": 2003.0,
2020
+ "y": 3226.0,
2021
+ "width": 647.0,
2022
+ "height": 676.0
2023
+ },
2024
+ "area": 437372.0
2025
+ }
2026
+ }
2027
+ ],
2028
+ "page_size": {
2029
+ "width": 3306,
2030
+ "height": 4678
2031
+ }
2032
+ },
2033
+ "page_5": {
2034
+ "annotations": [
2035
+ {
2036
+ "annotation_121": {
2037
+ "category": "signature",
2038
+ "bbox": {
2039
+ "x": 1560.937744140625,
2040
+ "y": 833.0720825195312,
2041
+ "width": 1169.55859375,
2042
+ "height": 407.66363525390625
2043
+ },
2044
+ "area": 476786.5079705715
2045
+ }
2046
+ },
2047
+ {
2048
+ "annotation_122": {
2049
+ "category": "stamp",
2050
+ "bbox": {
2051
+ "x": 1505.0,
2052
+ "y": 376.0,
2053
+ "width": 666.0,
2054
+ "height": 660.0
2055
+ },
2056
+ "area": 439560.0
2057
+ }
2058
+ }
2059
+ ],
2060
+ "page_size": {
2061
+ "width": 3306,
2062
+ "height": 4678
2063
+ }
2064
+ }
2065
+ },
2066
+ "перечень-.pdf": {
2067
+ "page_1": {
2068
+ "annotations": [
2069
+ {
2070
+ "annotation_123": {
2071
+ "category": "stamp",
2072
+ "bbox": {
2073
+ "x": 631.0,
2074
+ "y": 91.0,
2075
+ "width": 661.0,
2076
+ "height": 676.0
2077
+ },
2078
+ "area": 446836.0
2079
+ }
2080
+ }
2081
+ ],
2082
+ "page_size": {
2083
+ "width": 3306,
2084
+ "height": 4678
2085
+ }
2086
+ },
2087
+ "page_2": {
2088
+ "annotations": [
2089
+ {
2090
+ "annotation_124": {
2091
+ "category": "signature",
2092
+ "bbox": {
2093
+ "x": 2322.43701171875,
2094
+ "y": 455.9486389160156,
2095
+ "width": 740.213623046875,
2096
+ "height": 405.2033996582031
2097
+ },
2098
+ "area": 299937.0765319094
2099
+ }
2100
+ },
2101
+ {
2102
+ "annotation_125": {
2103
+ "category": "stamp",
2104
+ "bbox": {
2105
+ "x": 1973.0,
2106
+ "y": 477.0,
2107
+ "width": 652.0,
2108
+ "height": 668.0
2109
+ },
2110
+ "area": 435536.0
2111
+ }
2112
+ }
2113
+ ],
2114
+ "page_size": {
2115
+ "width": 3306,
2116
+ "height": 4678
2117
+ }
2118
+ }
2119
+ },
2120
+ "перечень-31-.pdf": {
2121
+ "page_1": {
2122
+ "annotations": [
2123
+ {
2124
+ "annotation_126": {
2125
+ "category": "stamp",
2126
+ "bbox": {
2127
+ "x": 643.0,
2128
+ "y": 89.0,
2129
+ "width": 615.0,
2130
+ "height": 636.0
2131
+ },
2132
+ "area": 391140.0
2133
+ }
2134
+ }
2135
+ ],
2136
+ "page_size": {
2137
+ "width": 3306,
2138
+ "height": 4678
2139
+ }
2140
+ },
2141
+ "page_2": {
2142
+ "annotations": [
2143
+ {
2144
+ "annotation_127": {
2145
+ "category": "signature",
2146
+ "bbox": {
2147
+ "x": 2292.078125,
2148
+ "y": 452.4223327636719,
2149
+ "width": 780.5634765625,
2150
+ "height": 383.1954040527344
2151
+ },
2152
+ "area": 299108.33679017425
2153
+ }
2154
+ },
2155
+ {
2156
+ "annotation_128": {
2157
+ "category": "stamp",
2158
+ "bbox": {
2159
+ "x": 1964.0,
2160
+ "y": 483.0,
2161
+ "width": 651.0,
2162
+ "height": 660.0
2163
+ },
2164
+ "area": 429660.0
2165
+ }
2166
+ }
2167
+ ],
2168
+ "page_size": {
2169
+ "width": 3306,
2170
+ "height": 4678
2171
+ }
2172
+ }
2173
+ },
2174
+ "перечень-32-.pdf": {
2175
+ "page_1": {
2176
+ "annotations": [
2177
+ {
2178
+ "annotation_129": {
2179
+ "category": "signature",
2180
+ "bbox": {
2181
+ "x": 590.101806640625,
2182
+ "y": 414.2909240722656,
2183
+ "width": 349.15826416015625,
2184
+ "height": 193.30984497070312
2185
+ },
2186
+ "area": 67495.72991503961
2187
+ }
2188
+ },
2189
+ {
2190
+ "annotation_130": {
2191
+ "category": "stamp",
2192
+ "bbox": {
2193
+ "x": 612.0,
2194
+ "y": 65.0,
2195
+ "width": 667.0,
2196
+ "height": 618.0
2197
+ },
2198
+ "area": 412206.0
2199
+ }
2200
+ }
2201
+ ],
2202
+ "page_size": {
2203
+ "width": 3306,
2204
+ "height": 4678
2205
+ }
2206
+ },
2207
+ "page_2": {
2208
+ "annotations": [
2209
+ {
2210
+ "annotation_131": {
2211
+ "category": "signature",
2212
+ "bbox": {
2213
+ "x": 1572.94482421875,
2214
+ "y": 372.1268005371094,
2215
+ "width": 360.93701171875,
2216
+ "height": 136.76950073242188
2217
+ },
2218
+ "area": 49365.17488862574
2219
+ }
2220
+ },
2221
+ {
2222
+ "annotation_132": {
2223
+ "category": "stamp",
2224
+ "bbox": {
2225
+ "x": 1948.0,
2226
+ "y": 433.0,
2227
+ "width": 665.0,
2228
+ "height": 648.0
2229
+ },
2230
+ "area": 430920.0
2231
+ }
2232
+ }
2233
+ ],
2234
+ "page_size": {
2235
+ "width": 3306,
2236
+ "height": 4678
2237
+ }
2238
+ }
2239
+ },
2240
+ "письмо-.pdf": {
2241
+ "page_2": {
2242
+ "annotations": [
2243
+ {
2244
+ "annotation_133": {
2245
+ "category": "signature",
2246
+ "bbox": {
2247
+ "x": 1312.4180908203125,
2248
+ "y": 723.7509765625,
2249
+ "width": 626.0582275390625,
2250
+ "height": 415.7230224609375
2251
+ },
2252
+ "area": 260266.8185890764
2253
+ }
2254
+ },
2255
+ {
2256
+ "annotation_134": {
2257
+ "category": "stamp",
2258
+ "bbox": {
2259
+ "x": 1612.0,
2260
+ "y": 768.0,
2261
+ "width": 669.0,
2262
+ "height": 657.0
2263
+ },
2264
+ "area": 439533.0
2265
+ }
2266
+ }
2267
+ ],
2268
+ "page_size": {
2269
+ "width": 3306,
2270
+ "height": 4678
2271
+ }
2272
+ }
2273
+ },
2274
+ "письмо-11.pdf": {
2275
+ "page_2": {
2276
+ "annotations": [
2277
+ {
2278
+ "annotation_135": {
2279
+ "category": "signature",
2280
+ "bbox": {
2281
+ "x": 1594.2020263671875,
2282
+ "y": 863.1381225585938,
2283
+ "width": 295.984619140625,
2284
+ "height": 183.03668212890625
2285
+ },
2286
+ "area": 54176.04264868796
2287
+ }
2288
+ },
2289
+ {
2290
+ "annotation_136": {
2291
+ "category": "stamp",
2292
+ "bbox": {
2293
+ "x": 1700.0,
2294
+ "y": 885.0,
2295
+ "width": 664.0,
2296
+ "height": 674.0
2297
+ },
2298
+ "area": 447536.0
2299
+ }
2300
+ }
2301
+ ],
2302
+ "page_size": {
2303
+ "width": 3306,
2304
+ "height": 4678
2305
+ }
2306
+ }
2307
+ },
2308
+ "письмо-22.pdf": {
2309
+ "page_1": {
2310
+ "annotations": [
2311
+ {
2312
+ "annotation_137": {
2313
+ "category": "signature",
2314
+ "bbox": {
2315
+ "x": 1601.826171875,
2316
+ "y": 2846.16748046875,
2317
+ "width": 598.711181640625,
2318
+ "height": 315.76806640625
2319
+ },
2320
+ "area": 189053.87216246128
2321
+ }
2322
+ },
2323
+ {
2324
+ "annotation_138": {
2325
+ "category": "stamp",
2326
+ "bbox": {
2327
+ "x": 1911.0,
2328
+ "y": 2674.0,
2329
+ "width": 617.0,
2330
+ "height": 649.0
2331
+ },
2332
+ "area": 400433.0
2333
+ }
2334
+ }
2335
+ ],
2336
+ "page_size": {
2337
+ "width": 3306,
2338
+ "height": 4678
2339
+ }
2340
+ }
2341
+ },
2342
+ "письмо-31-.pdf": {
2343
+ "page_2": {
2344
+ "annotations": [
2345
+ {
2346
+ "annotation_139": {
2347
+ "category": "signature",
2348
+ "bbox": {
2349
+ "x": 1341.6656494140625,
2350
+ "y": 729.8131713867188,
2351
+ "width": 548.0955810546875,
2352
+ "height": 396.26580810546875
2353
+ },
2354
+ "area": 217191.5383456722
2355
+ }
2356
+ },
2357
+ {
2358
+ "annotation_140": {
2359
+ "category": "stamp",
2360
+ "bbox": {
2361
+ "x": 1610.0,
2362
+ "y": 773.0,
2363
+ "width": 663.0,
2364
+ "height": 641.0
2365
+ },
2366
+ "area": 424983.0
2367
+ }
2368
+ }
2369
+ ],
2370
+ "page_size": {
2371
+ "width": 3306,
2372
+ "height": 4678
2373
+ }
2374
+ }
2375
+ },
2376
+ "письмо-32-.pdf": {
2377
+ "page_1": {
2378
+ "annotations": [
2379
+ {
2380
+ "annotation_141": {
2381
+ "category": "signature",
2382
+ "bbox": {
2383
+ "x": 1364.40478515625,
2384
+ "y": 2819.705322265625,
2385
+ "width": 688.666748046875,
2386
+ "height": 360.201171875
2387
+ },
2388
+ "area": 248058.56967782974
2389
+ }
2390
+ },
2391
+ {
2392
+ "annotation_142": {
2393
+ "category": "stamp",
2394
+ "bbox": {
2395
+ "x": 1947.0,
2396
+ "y": 2743.0,
2397
+ "width": 603.0,
2398
+ "height": 629.0
2399
+ },
2400
+ "area": 379287.0
2401
+ }
2402
+ }
2403
+ ],
2404
+ "page_size": {
2405
+ "width": 3306,
2406
+ "height": 4678
2407
+ }
2408
+ }
2409
+ },
2410
+ "протоколдоз-.pdf": {
2411
+ "page_1": {
2412
+ "annotations": [
2413
+ {
2414
+ "annotation_143": {
2415
+ "category": "stamp",
2416
+ "bbox": {
2417
+ "x": 785.0,
2418
+ "y": 1665.0,
2419
+ "width": 645.0,
2420
+ "height": 646.0
2421
+ },
2422
+ "area": 416670.0
2423
+ }
2424
+ }
2425
+ ],
2426
+ "page_size": {
2427
+ "width": 3306,
2428
+ "height": 4678
2429
+ }
2430
+ },
2431
+ "page_2": {
2432
+ "annotations": [
2433
+ {
2434
+ "annotation_144": {
2435
+ "category": "stamp",
2436
+ "bbox": {
2437
+ "x": 1102.0,
2438
+ "y": 2214.0,
2439
+ "width": 622.0,
2440
+ "height": 650.0
2441
+ },
2442
+ "area": 404300.0
2443
+ }
2444
+ }
2445
+ ],
2446
+ "page_size": {
2447
+ "width": 3306,
2448
+ "height": 4678
2449
+ }
2450
+ },
2451
+ "page_4": {
2452
+ "annotations": [
2453
+ {
2454
+ "annotation_145": {
2455
+ "category": "signature",
2456
+ "bbox": {
2457
+ "x": 1369.445068359375,
2458
+ "y": 2629.274658203125,
2459
+ "width": 890.47412109375,
2460
+ "height": 376.25634765625
2461
+ },
2462
+ "area": 335046.54048514366
2463
+ }
2464
+ },
2465
+ {
2466
+ "annotation_146": {
2467
+ "category": "stamp",
2468
+ "bbox": {
2469
+ "x": 849.0,
2470
+ "y": 2763.0,
2471
+ "width": 628.0,
2472
+ "height": 666.0
2473
+ },
2474
+ "area": 418248.0
2475
+ }
2476
+ }
2477
+ ],
2478
+ "page_size": {
2479
+ "width": 3306,
2480
+ "height": 4678
2481
+ }
2482
+ }
2483
+ },
2484
+ "разрешназемл-2.pdf": {
2485
+ "page_1": {
2486
+ "annotations": [
2487
+ {
2488
+ "annotation_147": {
2489
+ "category": "stamp",
2490
+ "bbox": {
2491
+ "x": 1956.0,
2492
+ "y": 3279.0,
2493
+ "width": 597.0,
2494
+ "height": 630.0
2495
+ },
2496
+ "area": 376110.0
2497
+ }
2498
+ }
2499
+ ],
2500
+ "page_size": {
2501
+ "width": 3306,
2502
+ "height": 4678
2503
+ }
2504
+ }
2505
+ },
2506
+ "разрешназемлю-.pdf": {
2507
+ "page_1": {
2508
+ "annotations": [
2509
+ {
2510
+ "annotation_148": {
2511
+ "category": "stamp",
2512
+ "bbox": {
2513
+ "x": 1975.0,
2514
+ "y": 3275.0,
2515
+ "width": 611.0,
2516
+ "height": 633.0
2517
+ },
2518
+ "area": 386763.0
2519
+ }
2520
+ }
2521
+ ],
2522
+ "page_size": {
2523
+ "width": 3306,
2524
+ "height": 4678
2525
+ }
2526
+ }
2527
+ },
2528
+ "чертеж-.pdf": {
2529
+ "page_1": {
2530
+ "annotations": [
2531
+ {
2532
+ "annotation_149": {
2533
+ "category": "signature",
2534
+ "bbox": {
2535
+ "x": 2719.0478515625,
2536
+ "y": 2575.339111328125,
2537
+ "width": 705.303955078125,
2538
+ "height": 614.2998046875
2539
+ },
2540
+ "area": 433268.08184981346
2541
+ }
2542
+ },
2543
+ {
2544
+ "annotation_150": {
2545
+ "category": "stamp",
2546
+ "bbox": {
2547
+ "x": 1190.0,
2548
+ "y": 2521.0,
2549
+ "width": 642.0,
2550
+ "height": 616.0
2551
+ },
2552
+ "area": 395472.0
2553
+ }
2554
+ },
2555
+ {
2556
+ "annotation_151": {
2557
+ "category": "stamp",
2558
+ "bbox": {
2559
+ "x": 2785.0,
2560
+ "y": 2585.0,
2561
+ "width": 623.0,
2562
+ "height": 616.0
2563
+ },
2564
+ "area": 383768.0
2565
+ }
2566
+ }
2567
+ ],
2568
+ "page_size": {
2569
+ "width": 4678,
2570
+ "height": 3306
2571
+ }
2572
+ }
2573
+ }
2574
+ }
process_all_pdfs.py ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Process all PDF files in the documents folder and generate a single JSON file
4
+ in the required format with annotations for signatures and stamps.
5
+ """
6
+
7
+ import json
8
+ import sys
9
+ from pathlib import Path
10
+ from typing import Dict, Any, List, Tuple
11
+
12
+ from pipeline import process_pdf_pipeline
13
+
14
+ def convert_to_annotation_format(
15
+ pipeline_result: Dict[str, Any],
16
+ annotation_id_start: int = 1
17
+ ) -> Tuple[Dict[str, Any], int]:
18
+ """
19
+ Convert pipeline result to the required annotation format.
20
+
21
+ Args:
22
+ pipeline_result: Result from process_pdf_pipeline
23
+ annotation_id_start: Starting annotation ID number
24
+
25
+ Returns:
26
+ Tuple of (formatted_result, next_annotation_id)
27
+ """
28
+ pdf_filename = pipeline_result["pdf"]
29
+ pages_data = pipeline_result["pages"]
30
+
31
+ result = {}
32
+ annotation_counter = annotation_id_start
33
+
34
+ for page_data in pages_data:
35
+ page_num = page_data.get("page_number", 1)
36
+ page_key = f"page_{page_num}"
37
+
38
+ # Get image dimensions
39
+ img_dims = page_data.get("image_dimensions", {})
40
+ width = img_dims.get("width", 0)
41
+ height = img_dims.get("height", 0)
42
+
43
+ # Collect all annotations (signatures and stamps only, no QR codes)
44
+ annotations = []
45
+
46
+ # Process signatures
47
+ signatures = page_data.get("signatures", [])
48
+ for sig in signatures:
49
+ bbox = sig.get("bbox", {})
50
+ if bbox:
51
+ x1 = bbox.get("x1", 0)
52
+ y1 = bbox.get("y1", 0)
53
+ width_bbox = bbox.get("width", 0)
54
+ height_bbox = bbox.get("height", 0)
55
+
56
+ # Calculate area
57
+ area = width_bbox * height_bbox
58
+
59
+ annotation = {
60
+ f"annotation_{annotation_counter}": {
61
+ "category": "signature",
62
+ "bbox": {
63
+ "x": float(x1),
64
+ "y": float(y1),
65
+ "width": float(width_bbox),
66
+ "height": float(height_bbox)
67
+ },
68
+ "area": float(area)
69
+ }
70
+ }
71
+ annotations.append(annotation)
72
+ annotation_counter += 1
73
+
74
+ # Process stamps
75
+ stamps = page_data.get("stamps", [])
76
+ for stamp in stamps:
77
+ bbox = stamp.get("bbox", {})
78
+ if bbox:
79
+ x1 = bbox.get("x1", 0)
80
+ y1 = bbox.get("y1", 0)
81
+ width_bbox = bbox.get("width", 0)
82
+ height_bbox = bbox.get("height", 0)
83
+
84
+ # Calculate area
85
+ area = width_bbox * height_bbox
86
+
87
+ annotation = {
88
+ f"annotation_{annotation_counter}": {
89
+ "category": "stamp",
90
+ "bbox": {
91
+ "x": float(x1),
92
+ "y": float(y1),
93
+ "width": float(width_bbox),
94
+ "height": float(height_bbox)
95
+ },
96
+ "area": float(area)
97
+ }
98
+ }
99
+ annotations.append(annotation)
100
+ annotation_counter += 1
101
+
102
+ # Only include pages that have annotations
103
+ if annotations:
104
+ result[page_key] = {
105
+ "annotations": annotations,
106
+ "page_size": {
107
+ "width": int(width),
108
+ "height": int(height)
109
+ }
110
+ }
111
+
112
+ return result, annotation_counter
113
+
114
+
115
+ def process_all_pdfs(
116
+ documents_dir: str = "documents",
117
+ output_file: str = "all_annotations.json",
118
+ stamp_model_path: str = "stamp_detector/stamp_model.pt",
119
+ stamp_conf: float = 0.25,
120
+ dpi: int = 200
121
+ ) -> None:
122
+ """
123
+ Process all PDF files in the documents folder and generate a single JSON file.
124
+
125
+ Args:
126
+ documents_dir: Directory containing PDF files
127
+ output_file: Output JSON file path
128
+ stamp_model_path: Path to stamp model
129
+ stamp_conf: Confidence threshold for stamp detection
130
+ dpi: DPI for PDF to image conversion
131
+ """
132
+ documents_path = Path(documents_dir)
133
+
134
+ if not documents_path.exists():
135
+ print(f"Error: Documents directory '{documents_dir}' not found!")
136
+ sys.exit(1)
137
+
138
+ # Find all PDF files
139
+ pdf_files = sorted(list(documents_path.glob("*.pdf")))
140
+
141
+ if not pdf_files:
142
+ print(f"No PDF files found in '{documents_dir}' directory!")
143
+ sys.exit(1)
144
+
145
+ print(f"Found {len(pdf_files)} PDF file(s) to process\n")
146
+ print("=" * 70)
147
+
148
+ # Final result dictionary
149
+ final_result = {}
150
+ annotation_counter = 1
151
+
152
+ # Process each PDF
153
+ for i, pdf_file in enumerate(pdf_files, 1):
154
+ print(f"\n[{i}/{len(pdf_files)}] Processing: {pdf_file.name}")
155
+ print("-" * 70)
156
+
157
+ try:
158
+ # Process PDF using pipeline
159
+ pipeline_result = process_pdf_pipeline(
160
+ pdf_path=str(pdf_file),
161
+ output_dir="pipeline_outputs",
162
+ stamp_model_path=stamp_model_path,
163
+ stamp_conf=stamp_conf,
164
+ dpi=dpi,
165
+ save_intermediate=False
166
+ )
167
+
168
+ # Convert to annotation format
169
+ pdf_annotations, annotation_counter = convert_to_annotation_format(
170
+ pipeline_result,
171
+ annotation_id_start=annotation_counter
172
+ )
173
+
174
+ # Only add to result if there are annotations
175
+ if pdf_annotations:
176
+ final_result[pdf_file.name] = pdf_annotations
177
+ print(f"✓ Processed: {len(pdf_annotations)} page(s) with annotations")
178
+ else:
179
+ print(f"⚠ No annotations found in {pdf_file.name}")
180
+
181
+ except Exception as e:
182
+ print(f"✗ Error processing {pdf_file.name}: {str(e)}")
183
+ import traceback
184
+ traceback.print_exc()
185
+ continue
186
+
187
+ # Save to JSON file
188
+ output_path = Path(output_file)
189
+ with open(output_path, 'w', encoding='utf-8') as f:
190
+ json.dump(final_result, f, indent=2, ensure_ascii=False)
191
+
192
+ print("\n" + "=" * 70)
193
+ print("PROCESSING COMPLETE")
194
+ print("=" * 70)
195
+ print(f"Total PDFs processed: {len(pdf_files)}")
196
+ print(f"PDFs with annotations: {len(final_result)}")
197
+ print(f"Total annotations: {annotation_counter - 1}")
198
+ print(f"Output saved to: {output_path.absolute()}")
199
+ print("=" * 70)
200
+
201
+
202
+ if __name__ == "__main__":
203
+ import argparse
204
+
205
+ parser = argparse.ArgumentParser(
206
+ description="Process all PDF files in documents folder and generate annotations JSON"
207
+ )
208
+ parser.add_argument(
209
+ "--documents-dir",
210
+ default="documents",
211
+ help="Directory containing PDF files (default: documents)"
212
+ )
213
+ parser.add_argument(
214
+ "--output",
215
+ default="all_annotations.json",
216
+ help="Output JSON file path (default: all_annotations.json)"
217
+ )
218
+ parser.add_argument(
219
+ "--stamp-model",
220
+ default="stamp_detector/stamp_model.pt",
221
+ help="Path to stamp model (default: stamp_detector/stamp_model.pt)"
222
+ )
223
+ parser.add_argument(
224
+ "--stamp-conf",
225
+ type=float,
226
+ default=0.25,
227
+ help="Confidence threshold for stamp detection (default: 0.25)"
228
+ )
229
+ parser.add_argument(
230
+ "--dpi",
231
+ type=int,
232
+ default=200,
233
+ help="DPI for PDF to image conversion (default: 200)"
234
+ )
235
+
236
+ args = parser.parse_args()
237
+
238
+ process_all_pdfs(
239
+ documents_dir=args.documents_dir,
240
+ output_file=args.output,
241
+ stamp_model_path=args.stamp_model,
242
+ stamp_conf=args.stamp_conf,
243
+ dpi=args.dpi
244
+ )
245
+