hermitkk commited on
Commit
1cc31c1
·
verified ·
1 Parent(s): b0ed886

Upload folder using huggingface_hub

Browse files
config/config.yaml ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ seed: 42
2
+
3
+ data:
4
+ template: data/raw/template/template_4choice.pdf
5
+ template_map: data/template_map/template_map_4choice.json
6
+ train_manifest: data/synthetic/train.jsonl
7
+ val_manifest: data/synthetic/val.jsonl
8
+
9
+ # Named template variants — each defines the source PDF, output template map,
10
+ # and the answer choices printed on that sheet variant.
11
+ # Select a variant at runtime with --variant <name>.
12
+ templates:
13
+ 2choice:
14
+ template: data/raw/template/template_2choice.pdf
15
+ template_map: data/template_map/template_map_2choice.json
16
+ choices: ["A", "B"]
17
+ 4choice:
18
+ template: data/raw/template/template_4choice.pdf
19
+ template_map: data/template_map/template_map_4choice.json
20
+ choices: ["A", "B", "C", "D"]
21
+ 6choice:
22
+ template: data/raw/template/template_6choice.pdf
23
+ template_map: data/template_map/template_map_6choice.json
24
+ choices: ["A", "B", "C", "D", "E", "F"]
25
+ mixed:
26
+ template: data/raw/template/template_mixed.pdf
27
+ template_map: data/template_map/template_map_mixed.json
28
+ # no valid_counts → accept any row length, labels assigned A-Z (up to 26 choices)
29
+ assembled_4choice:
30
+ template: data/raw/template/template_4choice_assembled.pdf
31
+ template_map: data/template_map/template_map_assembled_4choice.json
32
+ choices: ["A", "B", "C", "D"]
33
+ math_quiz:
34
+ template: data/raw/template/exam_math_quiz.pdf
35
+ template_map: data/template_map/template_map_math_quiz.json
36
+ choices: ["A", "B", "C", "D"]
37
+
38
+ preprocess:
39
+ dpi: 300
40
+ page: 1
41
+ poppler_path: null
42
+ deskew: true
43
+ max_abs_deskew_angle: 8.0
44
+ adaptive_block_size: 31
45
+ adaptive_c: 15
46
+ orb_features: 5000
47
+ min_match_count: 20
48
+ orb_keep_ratio: 0.25
49
+
50
+ detector:
51
+ choices: ["A", "B", "C", "D"]
52
+ row_merge_px: 18
53
+ min_area_ratio: 0.0005
54
+ max_area_ratio: 0.005
55
+ aspect_ratio_tol: 0.35
56
+ min_contour_fill_ratio: 0.10
57
+ max_contour_fill_ratio: 0.99
58
+ nms_iou: 0.30
59
+ match_distance_px: 25
60
+ pad_ratio: 0.35
61
+
62
+ model:
63
+ name: small_cnn # tiny_cnn | small_cnn | mobilenetv2
64
+ in_channels: 1
65
+ img_size: 64
66
+ mean: 0.5
67
+ std: 0.5
68
+ dropout: 0.20
69
+ pretrained: false
70
+ mobilenet_width_mult: 0.5
71
+
72
+ train:
73
+ batch_size: 128
74
+ num_workers: 4
75
+ epochs: 20
76
+ lr: 0.001
77
+ weight_decay: 0.0001
78
+ amp: true
79
+ early_patience: 5
80
+ val_ratio: 0.2
81
+ pos_weight: null
82
+ save_dir: outputs/checkpoints
83
+
84
+ infer:
85
+ batch_size: 256
86
+ threshold: 0.50
87
+ uncertain_margin: 0.10
88
+ min_confidence: 0.55
89
+ fill_ratio_low: 0.04 # CNN says filled but crop is nearly blank → flag uncertain
90
+ fill_ratio_high: 0.25 # CNN says empty but crop is heavily marked → flag uncertain
91
+
92
+ export:
93
+ after_train: true
94
+ onnx_opset: 17
95
+ torchscript_path: outputs/exports/omr_model.ts
96
+ onnx_path: outputs/exports/omr_model.onnx
data/raw/template/choice4box.pdf ADDED
Binary file (9.99 kB). View file
 
data/raw/template/exam_math_quiz.pdf ADDED
Binary file (43.2 kB). View file
 
data/raw/template/exam_with_mcq.pdf ADDED
Binary file (69.6 kB). View file
 
data/raw/template/idBox4.pdf ADDED
Binary file (4.13 kB). View file
 
data/raw/template/template_2choice.pdf ADDED
Binary file (24.1 kB). View file
 
data/raw/template/template_4choice.pdf ADDED
Binary file (23.2 kB). View file
 
data/raw/template/template_4choice_assembled.pdf ADDED
Binary file (30.9 kB). View file
 
data/raw/template/template_6choice.pdf ADDED
Binary file (24.9 kB). View file
 
data/raw/template/template_mixed.pdf ADDED
Binary file (35 kB). View file
 
data/template_map/default_template_map.json ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "page_width": 2550,
3
+ "page_height": 3300,
4
+ "num_questions": 3,
5
+ "choices": [
6
+ "A",
7
+ "B",
8
+ "C",
9
+ "D"
10
+ ],
11
+ "boxes": [
12
+ {
13
+ "box_id": "Q001_A",
14
+ "question": 1,
15
+ "choice": "A",
16
+ "bbox": [
17
+ 467,
18
+ 910,
19
+ 555,
20
+ 998
21
+ ]
22
+ },
23
+ {
24
+ "box_id": "Q001_B",
25
+ "question": 1,
26
+ "choice": "B",
27
+ "bbox": [
28
+ 786,
29
+ 910,
30
+ 874,
31
+ 998
32
+ ]
33
+ },
34
+ {
35
+ "box_id": "Q001_C",
36
+ "question": 1,
37
+ "choice": "C",
38
+ "bbox": [
39
+ 1105,
40
+ 910,
41
+ 1193,
42
+ 998
43
+ ]
44
+ },
45
+ {
46
+ "box_id": "Q001_D",
47
+ "question": 1,
48
+ "choice": "D",
49
+ "bbox": [
50
+ 1424,
51
+ 910,
52
+ 1512,
53
+ 998
54
+ ]
55
+ },
56
+ {
57
+ "box_id": "Q002_A",
58
+ "question": 2,
59
+ "choice": "A",
60
+ "bbox": [
61
+ 467,
62
+ 1319,
63
+ 555,
64
+ 1407
65
+ ]
66
+ },
67
+ {
68
+ "box_id": "Q002_B",
69
+ "question": 2,
70
+ "choice": "B",
71
+ "bbox": [
72
+ 786,
73
+ 1319,
74
+ 874,
75
+ 1407
76
+ ]
77
+ },
78
+ {
79
+ "box_id": "Q002_C",
80
+ "question": 2,
81
+ "choice": "C",
82
+ "bbox": [
83
+ 1105,
84
+ 1319,
85
+ 1193,
86
+ 1407
87
+ ]
88
+ },
89
+ {
90
+ "box_id": "Q002_D",
91
+ "question": 2,
92
+ "choice": "D",
93
+ "bbox": [
94
+ 1424,
95
+ 1319,
96
+ 1512,
97
+ 1407
98
+ ]
99
+ },
100
+ {
101
+ "box_id": "Q003_A",
102
+ "question": 3,
103
+ "choice": "A",
104
+ "bbox": [
105
+ 467,
106
+ 1728,
107
+ 555,
108
+ 1816
109
+ ]
110
+ },
111
+ {
112
+ "box_id": "Q003_B",
113
+ "question": 3,
114
+ "choice": "B",
115
+ "bbox": [
116
+ 786,
117
+ 1728,
118
+ 874,
119
+ 1816
120
+ ]
121
+ },
122
+ {
123
+ "box_id": "Q003_C",
124
+ "question": 3,
125
+ "choice": "C",
126
+ "bbox": [
127
+ 1105,
128
+ 1728,
129
+ 1193,
130
+ 1816
131
+ ]
132
+ },
133
+ {
134
+ "box_id": "Q003_D",
135
+ "question": 3,
136
+ "choice": "D",
137
+ "bbox": [
138
+ 1424,
139
+ 1728,
140
+ 1512,
141
+ 1816
142
+ ]
143
+ }
144
+ ]
145
+ }
data/template_map/template_map_2choice.json ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "page_width": 2550,
3
+ "page_height": 3300,
4
+ "num_questions": 3,
5
+ "choices": [
6
+ "A",
7
+ "B"
8
+ ],
9
+ "boxes": [
10
+ {
11
+ "box_id": "Q001_A",
12
+ "question": 1,
13
+ "choice": "A",
14
+ "bbox": [
15
+ 467,
16
+ 910,
17
+ 555,
18
+ 998
19
+ ]
20
+ },
21
+ {
22
+ "box_id": "Q001_B",
23
+ "question": 1,
24
+ "choice": "B",
25
+ "bbox": [
26
+ 1140,
27
+ 910,
28
+ 1228,
29
+ 998
30
+ ]
31
+ },
32
+ {
33
+ "box_id": "Q002_A",
34
+ "question": 2,
35
+ "choice": "A",
36
+ "bbox": [
37
+ 467,
38
+ 1319,
39
+ 555,
40
+ 1407
41
+ ]
42
+ },
43
+ {
44
+ "box_id": "Q002_B",
45
+ "question": 2,
46
+ "choice": "B",
47
+ "bbox": [
48
+ 1140,
49
+ 1319,
50
+ 1228,
51
+ 1407
52
+ ]
53
+ },
54
+ {
55
+ "box_id": "Q003_A",
56
+ "question": 3,
57
+ "choice": "A",
58
+ "bbox": [
59
+ 467,
60
+ 1728,
61
+ 555,
62
+ 1816
63
+ ]
64
+ },
65
+ {
66
+ "box_id": "Q003_B",
67
+ "question": 3,
68
+ "choice": "B",
69
+ "bbox": [
70
+ 1140,
71
+ 1728,
72
+ 1228,
73
+ 1816
74
+ ]
75
+ }
76
+ ]
77
+ }
data/template_map/template_map_4choice.json ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "page_width": 2550,
3
+ "page_height": 3300,
4
+ "num_questions": 3,
5
+ "choices": [
6
+ "A",
7
+ "B",
8
+ "C",
9
+ "D"
10
+ ],
11
+ "boxes": [
12
+ {
13
+ "box_id": "Q001_A",
14
+ "question": 1,
15
+ "choice": "A",
16
+ "bbox": [
17
+ 467,
18
+ 910,
19
+ 555,
20
+ 998
21
+ ]
22
+ },
23
+ {
24
+ "box_id": "Q001_B",
25
+ "question": 1,
26
+ "choice": "B",
27
+ "bbox": [
28
+ 786,
29
+ 910,
30
+ 874,
31
+ 998
32
+ ]
33
+ },
34
+ {
35
+ "box_id": "Q001_C",
36
+ "question": 1,
37
+ "choice": "C",
38
+ "bbox": [
39
+ 1105,
40
+ 910,
41
+ 1193,
42
+ 998
43
+ ]
44
+ },
45
+ {
46
+ "box_id": "Q001_D",
47
+ "question": 1,
48
+ "choice": "D",
49
+ "bbox": [
50
+ 1424,
51
+ 910,
52
+ 1512,
53
+ 998
54
+ ]
55
+ },
56
+ {
57
+ "box_id": "Q002_A",
58
+ "question": 2,
59
+ "choice": "A",
60
+ "bbox": [
61
+ 467,
62
+ 1319,
63
+ 555,
64
+ 1407
65
+ ]
66
+ },
67
+ {
68
+ "box_id": "Q002_B",
69
+ "question": 2,
70
+ "choice": "B",
71
+ "bbox": [
72
+ 786,
73
+ 1319,
74
+ 874,
75
+ 1407
76
+ ]
77
+ },
78
+ {
79
+ "box_id": "Q002_C",
80
+ "question": 2,
81
+ "choice": "C",
82
+ "bbox": [
83
+ 1105,
84
+ 1319,
85
+ 1193,
86
+ 1407
87
+ ]
88
+ },
89
+ {
90
+ "box_id": "Q002_D",
91
+ "question": 2,
92
+ "choice": "D",
93
+ "bbox": [
94
+ 1424,
95
+ 1319,
96
+ 1512,
97
+ 1407
98
+ ]
99
+ },
100
+ {
101
+ "box_id": "Q003_A",
102
+ "question": 3,
103
+ "choice": "A",
104
+ "bbox": [
105
+ 467,
106
+ 1728,
107
+ 555,
108
+ 1816
109
+ ]
110
+ },
111
+ {
112
+ "box_id": "Q003_B",
113
+ "question": 3,
114
+ "choice": "B",
115
+ "bbox": [
116
+ 786,
117
+ 1728,
118
+ 874,
119
+ 1816
120
+ ]
121
+ },
122
+ {
123
+ "box_id": "Q003_C",
124
+ "question": 3,
125
+ "choice": "C",
126
+ "bbox": [
127
+ 1105,
128
+ 1728,
129
+ 1193,
130
+ 1816
131
+ ]
132
+ },
133
+ {
134
+ "box_id": "Q003_D",
135
+ "question": 3,
136
+ "choice": "D",
137
+ "bbox": [
138
+ 1424,
139
+ 1728,
140
+ 1512,
141
+ 1816
142
+ ]
143
+ }
144
+ ]
145
+ }
data/template_map/template_map_6choice.json ADDED
@@ -0,0 +1,213 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "page_width": 2550,
3
+ "page_height": 3300,
4
+ "num_questions": 3,
5
+ "choices": [
6
+ "A",
7
+ "B",
8
+ "C",
9
+ "D",
10
+ "E",
11
+ "F"
12
+ ],
13
+ "boxes": [
14
+ {
15
+ "box_id": "Q001_A",
16
+ "question": 1,
17
+ "choice": "A",
18
+ "bbox": [
19
+ 467,
20
+ 910,
21
+ 555,
22
+ 998
23
+ ]
24
+ },
25
+ {
26
+ "box_id": "Q001_B",
27
+ "question": 1,
28
+ "choice": "B",
29
+ "bbox": [
30
+ 703,
31
+ 910,
32
+ 791,
33
+ 998
34
+ ]
35
+ },
36
+ {
37
+ "box_id": "Q001_C",
38
+ "question": 1,
39
+ "choice": "C",
40
+ "bbox": [
41
+ 940,
42
+ 910,
43
+ 1027,
44
+ 998
45
+ ]
46
+ },
47
+ {
48
+ "box_id": "Q001_D",
49
+ "question": 1,
50
+ "choice": "D",
51
+ "bbox": [
52
+ 1176,
53
+ 910,
54
+ 1264,
55
+ 998
56
+ ]
57
+ },
58
+ {
59
+ "box_id": "Q001_E",
60
+ "question": 1,
61
+ "choice": "E",
62
+ "bbox": [
63
+ 1412,
64
+ 910,
65
+ 1500,
66
+ 998
67
+ ]
68
+ },
69
+ {
70
+ "box_id": "Q001_F",
71
+ "question": 1,
72
+ "choice": "F",
73
+ "bbox": [
74
+ 1648,
75
+ 910,
76
+ 1736,
77
+ 998
78
+ ]
79
+ },
80
+ {
81
+ "box_id": "Q002_A",
82
+ "question": 2,
83
+ "choice": "A",
84
+ "bbox": [
85
+ 467,
86
+ 1319,
87
+ 555,
88
+ 1407
89
+ ]
90
+ },
91
+ {
92
+ "box_id": "Q002_B",
93
+ "question": 2,
94
+ "choice": "B",
95
+ "bbox": [
96
+ 703,
97
+ 1319,
98
+ 791,
99
+ 1407
100
+ ]
101
+ },
102
+ {
103
+ "box_id": "Q002_C",
104
+ "question": 2,
105
+ "choice": "C",
106
+ "bbox": [
107
+ 940,
108
+ 1319,
109
+ 1027,
110
+ 1407
111
+ ]
112
+ },
113
+ {
114
+ "box_id": "Q002_D",
115
+ "question": 2,
116
+ "choice": "D",
117
+ "bbox": [
118
+ 1176,
119
+ 1319,
120
+ 1264,
121
+ 1407
122
+ ]
123
+ },
124
+ {
125
+ "box_id": "Q002_E",
126
+ "question": 2,
127
+ "choice": "E",
128
+ "bbox": [
129
+ 1412,
130
+ 1319,
131
+ 1500,
132
+ 1407
133
+ ]
134
+ },
135
+ {
136
+ "box_id": "Q002_F",
137
+ "question": 2,
138
+ "choice": "F",
139
+ "bbox": [
140
+ 1648,
141
+ 1319,
142
+ 1736,
143
+ 1407
144
+ ]
145
+ },
146
+ {
147
+ "box_id": "Q003_A",
148
+ "question": 3,
149
+ "choice": "A",
150
+ "bbox": [
151
+ 467,
152
+ 1728,
153
+ 555,
154
+ 1816
155
+ ]
156
+ },
157
+ {
158
+ "box_id": "Q003_B",
159
+ "question": 3,
160
+ "choice": "B",
161
+ "bbox": [
162
+ 703,
163
+ 1728,
164
+ 791,
165
+ 1816
166
+ ]
167
+ },
168
+ {
169
+ "box_id": "Q003_C",
170
+ "question": 3,
171
+ "choice": "C",
172
+ "bbox": [
173
+ 940,
174
+ 1728,
175
+ 1027,
176
+ 1816
177
+ ]
178
+ },
179
+ {
180
+ "box_id": "Q003_D",
181
+ "question": 3,
182
+ "choice": "D",
183
+ "bbox": [
184
+ 1176,
185
+ 1728,
186
+ 1264,
187
+ 1816
188
+ ]
189
+ },
190
+ {
191
+ "box_id": "Q003_E",
192
+ "question": 3,
193
+ "choice": "E",
194
+ "bbox": [
195
+ 1412,
196
+ 1728,
197
+ 1500,
198
+ 1816
199
+ ]
200
+ },
201
+ {
202
+ "box_id": "Q003_F",
203
+ "question": 3,
204
+ "choice": "F",
205
+ "bbox": [
206
+ 1648,
207
+ 1728,
208
+ 1736,
209
+ 1816
210
+ ]
211
+ }
212
+ ]
213
+ }
data/template_map/template_map_assembled_4choice.json ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "page_width": 2481,
3
+ "page_height": 3508,
4
+ "num_questions": 3,
5
+ "valid_counts": [
6
+ 4
7
+ ],
8
+ "boxes": [
9
+ {
10
+ "box_id": "Q001_A",
11
+ "question": 1,
12
+ "choice": "A",
13
+ "bbox": [
14
+ 422,
15
+ 933,
16
+ 518,
17
+ 1030
18
+ ]
19
+ },
20
+ {
21
+ "box_id": "Q001_B",
22
+ "question": 1,
23
+ "choice": "B",
24
+ "bbox": [
25
+ 772,
26
+ 933,
27
+ 868,
28
+ 1030
29
+ ]
30
+ },
31
+ {
32
+ "box_id": "Q001_C",
33
+ "question": 1,
34
+ "choice": "C",
35
+ "bbox": [
36
+ 1122,
37
+ 933,
38
+ 1219,
39
+ 1030
40
+ ]
41
+ },
42
+ {
43
+ "box_id": "Q001_D",
44
+ "question": 1,
45
+ "choice": "D",
46
+ "bbox": [
47
+ 1473,
48
+ 933,
49
+ 1569,
50
+ 1030
51
+ ]
52
+ },
53
+ {
54
+ "box_id": "Q002_A",
55
+ "question": 2,
56
+ "choice": "A",
57
+ "bbox": [
58
+ 422,
59
+ 1397,
60
+ 518,
61
+ 1493
62
+ ]
63
+ },
64
+ {
65
+ "box_id": "Q002_B",
66
+ "question": 2,
67
+ "choice": "B",
68
+ "bbox": [
69
+ 772,
70
+ 1397,
71
+ 868,
72
+ 1493
73
+ ]
74
+ },
75
+ {
76
+ "box_id": "Q002_C",
77
+ "question": 2,
78
+ "choice": "C",
79
+ "bbox": [
80
+ 1122,
81
+ 1397,
82
+ 1219,
83
+ 1493
84
+ ]
85
+ },
86
+ {
87
+ "box_id": "Q002_D",
88
+ "question": 2,
89
+ "choice": "D",
90
+ "bbox": [
91
+ 1473,
92
+ 1397,
93
+ 1569,
94
+ 1493
95
+ ]
96
+ },
97
+ {
98
+ "box_id": "Q003_A",
99
+ "question": 3,
100
+ "choice": "A",
101
+ "bbox": [
102
+ 422,
103
+ 1860,
104
+ 518,
105
+ 1956
106
+ ]
107
+ },
108
+ {
109
+ "box_id": "Q003_B",
110
+ "question": 3,
111
+ "choice": "B",
112
+ "bbox": [
113
+ 772,
114
+ 1860,
115
+ 868,
116
+ 1956
117
+ ]
118
+ },
119
+ {
120
+ "box_id": "Q003_C",
121
+ "question": 3,
122
+ "choice": "C",
123
+ "bbox": [
124
+ 1122,
125
+ 1860,
126
+ 1219,
127
+ 1956
128
+ ]
129
+ },
130
+ {
131
+ "box_id": "Q003_D",
132
+ "question": 3,
133
+ "choice": "D",
134
+ "bbox": [
135
+ 1473,
136
+ 1860,
137
+ 1569,
138
+ 1956
139
+ ]
140
+ }
141
+ ]
142
+ }
data/template_map/template_map_math_quiz.json ADDED
@@ -0,0 +1,230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "page_width": 2481,
3
+ "page_height": 3508,
4
+ "num_questions": 5,
5
+ "valid_counts": [
6
+ 4
7
+ ],
8
+ "boxes": [
9
+ {
10
+ "box_id": "Q001_A",
11
+ "question": 1,
12
+ "choice": "A",
13
+ "bbox": [
14
+ 422,
15
+ 1074,
16
+ 518,
17
+ 1170
18
+ ]
19
+ },
20
+ {
21
+ "box_id": "Q001_B",
22
+ "question": 1,
23
+ "choice": "B",
24
+ "bbox": [
25
+ 772,
26
+ 1074,
27
+ 868,
28
+ 1170
29
+ ]
30
+ },
31
+ {
32
+ "box_id": "Q001_C",
33
+ "question": 1,
34
+ "choice": "C",
35
+ "bbox": [
36
+ 1122,
37
+ 1074,
38
+ 1219,
39
+ 1170
40
+ ]
41
+ },
42
+ {
43
+ "box_id": "Q001_D",
44
+ "question": 1,
45
+ "choice": "D",
46
+ "bbox": [
47
+ 1473,
48
+ 1074,
49
+ 1569,
50
+ 1170
51
+ ]
52
+ },
53
+ {
54
+ "box_id": "Q002_A",
55
+ "question": 2,
56
+ "choice": "A",
57
+ "bbox": [
58
+ 422,
59
+ 1518,
60
+ 518,
61
+ 1614
62
+ ]
63
+ },
64
+ {
65
+ "box_id": "Q002_B",
66
+ "question": 2,
67
+ "choice": "B",
68
+ "bbox": [
69
+ 772,
70
+ 1518,
71
+ 868,
72
+ 1614
73
+ ]
74
+ },
75
+ {
76
+ "box_id": "Q002_C",
77
+ "question": 2,
78
+ "choice": "C",
79
+ "bbox": [
80
+ 1122,
81
+ 1518,
82
+ 1219,
83
+ 1614
84
+ ]
85
+ },
86
+ {
87
+ "box_id": "Q002_D",
88
+ "question": 2,
89
+ "choice": "D",
90
+ "bbox": [
91
+ 1473,
92
+ 1518,
93
+ 1569,
94
+ 1614
95
+ ]
96
+ },
97
+ {
98
+ "box_id": "Q003_A",
99
+ "question": 3,
100
+ "choice": "A",
101
+ "bbox": [
102
+ 422,
103
+ 1961,
104
+ 518,
105
+ 2057
106
+ ]
107
+ },
108
+ {
109
+ "box_id": "Q003_B",
110
+ "question": 3,
111
+ "choice": "B",
112
+ "bbox": [
113
+ 772,
114
+ 1961,
115
+ 868,
116
+ 2057
117
+ ]
118
+ },
119
+ {
120
+ "box_id": "Q003_C",
121
+ "question": 3,
122
+ "choice": "C",
123
+ "bbox": [
124
+ 1122,
125
+ 1961,
126
+ 1219,
127
+ 2057
128
+ ]
129
+ },
130
+ {
131
+ "box_id": "Q003_D",
132
+ "question": 3,
133
+ "choice": "D",
134
+ "bbox": [
135
+ 1473,
136
+ 1961,
137
+ 1569,
138
+ 2057
139
+ ]
140
+ },
141
+ {
142
+ "box_id": "Q004_A",
143
+ "question": 4,
144
+ "choice": "A",
145
+ "bbox": [
146
+ 422,
147
+ 2405,
148
+ 518,
149
+ 2501
150
+ ]
151
+ },
152
+ {
153
+ "box_id": "Q004_B",
154
+ "question": 4,
155
+ "choice": "B",
156
+ "bbox": [
157
+ 772,
158
+ 2405,
159
+ 868,
160
+ 2501
161
+ ]
162
+ },
163
+ {
164
+ "box_id": "Q004_C",
165
+ "question": 4,
166
+ "choice": "C",
167
+ "bbox": [
168
+ 1122,
169
+ 2405,
170
+ 1219,
171
+ 2501
172
+ ]
173
+ },
174
+ {
175
+ "box_id": "Q004_D",
176
+ "question": 4,
177
+ "choice": "D",
178
+ "bbox": [
179
+ 1473,
180
+ 2405,
181
+ 1569,
182
+ 2501
183
+ ]
184
+ },
185
+ {
186
+ "box_id": "Q005_A",
187
+ "question": 5,
188
+ "choice": "A",
189
+ "bbox": [
190
+ 422,
191
+ 2848,
192
+ 518,
193
+ 2945
194
+ ]
195
+ },
196
+ {
197
+ "box_id": "Q005_B",
198
+ "question": 5,
199
+ "choice": "B",
200
+ "bbox": [
201
+ 772,
202
+ 2848,
203
+ 868,
204
+ 2945
205
+ ]
206
+ },
207
+ {
208
+ "box_id": "Q005_C",
209
+ "question": 5,
210
+ "choice": "C",
211
+ "bbox": [
212
+ 1122,
213
+ 2848,
214
+ 1219,
215
+ 2945
216
+ ]
217
+ },
218
+ {
219
+ "box_id": "Q005_D",
220
+ "question": 5,
221
+ "choice": "D",
222
+ "bbox": [
223
+ 1473,
224
+ 2848,
225
+ 1569,
226
+ 2945
227
+ ]
228
+ }
229
+ ]
230
+ }
data/template_map/template_map_mixed.json ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "page_width": 2550,
3
+ "page_height": 3300,
4
+ "num_questions": 5,
5
+ "valid_counts": null,
6
+ "boxes": [
7
+ {
8
+ "box_id": "Q001_A",
9
+ "question": 1,
10
+ "choice": "A",
11
+ "bbox": [
12
+ 467,
13
+ 913,
14
+ 555,
15
+ 1001
16
+ ]
17
+ },
18
+ {
19
+ "box_id": "Q001_B",
20
+ "question": 1,
21
+ "choice": "B",
22
+ "bbox": [
23
+ 786,
24
+ 913,
25
+ 874,
26
+ 1001
27
+ ]
28
+ },
29
+ {
30
+ "box_id": "Q001_C",
31
+ "question": 1,
32
+ "choice": "C",
33
+ "bbox": [
34
+ 1105,
35
+ 913,
36
+ 1193,
37
+ 1001
38
+ ]
39
+ },
40
+ {
41
+ "box_id": "Q001_D",
42
+ "question": 1,
43
+ "choice": "D",
44
+ "bbox": [
45
+ 1424,
46
+ 913,
47
+ 1512,
48
+ 1001
49
+ ]
50
+ },
51
+ {
52
+ "box_id": "Q002_A",
53
+ "question": 2,
54
+ "choice": "A",
55
+ "bbox": [
56
+ 467,
57
+ 1325,
58
+ 555,
59
+ 1413
60
+ ]
61
+ },
62
+ {
63
+ "box_id": "Q002_B",
64
+ "question": 2,
65
+ "choice": "B",
66
+ "bbox": [
67
+ 1140,
68
+ 1325,
69
+ 1228,
70
+ 1413
71
+ ]
72
+ },
73
+ {
74
+ "box_id": "Q003_A",
75
+ "question": 3,
76
+ "choice": "A",
77
+ "bbox": [
78
+ 467,
79
+ 1737,
80
+ 555,
81
+ 1824
82
+ ]
83
+ },
84
+ {
85
+ "box_id": "Q003_B",
86
+ "question": 3,
87
+ "choice": "B",
88
+ "bbox": [
89
+ 703,
90
+ 1737,
91
+ 791,
92
+ 1824
93
+ ]
94
+ },
95
+ {
96
+ "box_id": "Q003_C",
97
+ "question": 3,
98
+ "choice": "C",
99
+ "bbox": [
100
+ 940,
101
+ 1737,
102
+ 1027,
103
+ 1824
104
+ ]
105
+ },
106
+ {
107
+ "box_id": "Q003_D",
108
+ "question": 3,
109
+ "choice": "D",
110
+ "bbox": [
111
+ 1176,
112
+ 1737,
113
+ 1264,
114
+ 1824
115
+ ]
116
+ },
117
+ {
118
+ "box_id": "Q003_E",
119
+ "question": 3,
120
+ "choice": "E",
121
+ "bbox": [
122
+ 1412,
123
+ 1737,
124
+ 1500,
125
+ 1824
126
+ ]
127
+ },
128
+ {
129
+ "box_id": "Q003_F",
130
+ "question": 3,
131
+ "choice": "F",
132
+ "bbox": [
133
+ 1648,
134
+ 1737,
135
+ 1736,
136
+ 1824
137
+ ]
138
+ },
139
+ {
140
+ "box_id": "Q004_A",
141
+ "question": 4,
142
+ "choice": "A",
143
+ "bbox": [
144
+ 467,
145
+ 2148,
146
+ 555,
147
+ 2236
148
+ ]
149
+ },
150
+ {
151
+ "box_id": "Q004_B",
152
+ "question": 4,
153
+ "choice": "B",
154
+ "bbox": [
155
+ 786,
156
+ 2148,
157
+ 874,
158
+ 2236
159
+ ]
160
+ },
161
+ {
162
+ "box_id": "Q004_C",
163
+ "question": 4,
164
+ "choice": "C",
165
+ "bbox": [
166
+ 1105,
167
+ 2148,
168
+ 1193,
169
+ 2236
170
+ ]
171
+ },
172
+ {
173
+ "box_id": "Q004_D",
174
+ "question": 4,
175
+ "choice": "D",
176
+ "bbox": [
177
+ 1424,
178
+ 2148,
179
+ 1512,
180
+ 2236
181
+ ]
182
+ },
183
+ {
184
+ "box_id": "Q005_A",
185
+ "question": 5,
186
+ "choice": "A",
187
+ "bbox": [
188
+ 467,
189
+ 2560,
190
+ 555,
191
+ 2647
192
+ ]
193
+ },
194
+ {
195
+ "box_id": "Q005_B",
196
+ "question": 5,
197
+ "choice": "B",
198
+ "bbox": [
199
+ 703,
200
+ 2560,
201
+ 791,
202
+ 2647
203
+ ]
204
+ },
205
+ {
206
+ "box_id": "Q005_C",
207
+ "question": 5,
208
+ "choice": "C",
209
+ "bbox": [
210
+ 940,
211
+ 2560,
212
+ 1027,
213
+ 2647
214
+ ]
215
+ },
216
+ {
217
+ "box_id": "Q005_D",
218
+ "question": 5,
219
+ "choice": "D",
220
+ "bbox": [
221
+ 1176,
222
+ 2560,
223
+ 1264,
224
+ 2647
225
+ ]
226
+ },
227
+ {
228
+ "box_id": "Q005_E",
229
+ "question": 5,
230
+ "choice": "E",
231
+ "bbox": [
232
+ 1412,
233
+ 2560,
234
+ 1500,
235
+ 2647
236
+ ]
237
+ },
238
+ {
239
+ "box_id": "Q005_F",
240
+ "question": 5,
241
+ "choice": "F",
242
+ "bbox": [
243
+ 1648,
244
+ 2560,
245
+ 1736,
246
+ 2647
247
+ ]
248
+ }
249
+ ]
250
+ }