Add unified_pipeline: merged signature-verification synthetic document generator
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +233 -0
- unified_pipeline/.gitignore +11 -0
- unified_pipeline/annotations/bank_doc_01.json +35 -0
- unified_pipeline/annotations/bank_doc_02.json +26 -0
- unified_pipeline/annotations/bank_doc_03.json +53 -0
- unified_pipeline/annotations/bank_doc_04.json +53 -0
- unified_pipeline/annotations/bank_doc_05.json +53 -0
- unified_pipeline/annotations/bank_doc_06.json +53 -0
- unified_pipeline/annotations/bank_doc_07.json +44 -0
- unified_pipeline/annotations/bank_doc_08.json +53 -0
- unified_pipeline/annotations/bank_doc_09.json +44 -0
- unified_pipeline/configs/default.yaml +247 -0
- unified_pipeline/configs/examples/clean_easy.yaml +31 -0
- unified_pipeline/configs/examples/hard_degraded.yaml +47 -0
- unified_pipeline/configs/examples/single_document_demo.yaml +50 -0
- unified_pipeline/configs/examples/verification_cases.yaml +34 -0
- unified_pipeline/configs/generate.yaml +171 -0
- unified_pipeline/configs/procedural_templates.yaml +28 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-01.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-02.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-03.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-04.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-05.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-06.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-07.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-08.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-01.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-02.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-03.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-04.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-05.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-06.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-07.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-08.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-01.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-02.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-03.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-04.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-05.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-06.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-07.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-08.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-01.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-02.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-03.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-04.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-05.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-06.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-07.tif +3 -0
- unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-08.tif +3 -0
.gitattributes
CHANGED
|
@@ -35,3 +35,236 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
*.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
*.pdf filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
*.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
*.pdf filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 51 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 52 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 53 |
+
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 54 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 55 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 56 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 57 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 58 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 59 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 60 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 61 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 62 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 63 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 64 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 65 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 66 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 67 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 68 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 69 |
+
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 70 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 71 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 72 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 73 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 74 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 75 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 76 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 77 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 78 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 79 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 80 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 81 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 82 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 83 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 84 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 85 |
+
unified_pipeline/data/raw/bhsig260_bengali/100/B-S-100-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 86 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 87 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 88 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 89 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 90 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 91 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 92 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 93 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 94 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 95 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 96 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 97 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 98 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 99 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 100 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 101 |
+
unified_pipeline/data/raw/bhsig260_bengali/11/B-S-11-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 102 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 103 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 104 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 105 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 106 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 107 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 108 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 109 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 110 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 111 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 112 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 113 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 114 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 115 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 116 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 117 |
+
unified_pipeline/data/raw/bhsig260_bengali/12/B-S-12-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 118 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 119 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 120 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 121 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 122 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 123 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 124 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 125 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 126 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 127 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 128 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 129 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 130 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 131 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 132 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 133 |
+
unified_pipeline/data/raw/bhsig260_bengali/13/B-S-13-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 134 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 135 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 136 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 137 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 138 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 139 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 140 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 141 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 142 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 143 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 144 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 145 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 146 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 147 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 148 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 149 |
+
unified_pipeline/data/raw/bhsig260_bengali/14/B-S-14-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 150 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 151 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 152 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 153 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 154 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 155 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 156 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 157 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 158 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 159 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 160 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 161 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 162 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 163 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 164 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 165 |
+
unified_pipeline/data/raw/bhsig260_bengali/15/B-S-15-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 166 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 167 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 168 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 169 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 170 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 171 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 172 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 173 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 174 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 175 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 176 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 177 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 178 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 179 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 180 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 181 |
+
unified_pipeline/data/raw/bhsig260_bengali/16/B-S-16-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 182 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 183 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 184 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 185 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 186 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 187 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 188 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 189 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 190 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 191 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 192 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 193 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 194 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 195 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 196 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 197 |
+
unified_pipeline/data/raw/bhsig260_bengali/17/B-S-17-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 198 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 199 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 200 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 201 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 202 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 203 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 204 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 205 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 206 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 207 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 208 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 209 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 210 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 211 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 212 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 213 |
+
unified_pipeline/data/raw/bhsig260_bengali/18/B-S-18-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 214 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 215 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 216 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 217 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 218 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 219 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 220 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 221 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 222 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 223 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 224 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 225 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 226 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 227 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 228 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 229 |
+
unified_pipeline/data/raw/bhsig260_bengali/19/B-S-19-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 230 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 231 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 232 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 233 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 234 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 235 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 236 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 237 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 238 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 239 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 240 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 241 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 242 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 243 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 244 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 245 |
+
unified_pipeline/data/raw/bhsig260_bengali/2/B-S-2-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 246 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 247 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 248 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 249 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 250 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 251 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 252 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 253 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 254 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 255 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-G-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 256 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-G-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 257 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-G-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 258 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-G-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 259 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-G-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 260 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-G-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 261 |
+
unified_pipeline/data/raw/bhsig260_bengali/20/B-S-20-G-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 262 |
+
unified_pipeline/data/raw/bhsig260_bengali/21/B-S-21-F-01.tif filter=lfs diff=lfs merge=lfs -text
|
| 263 |
+
unified_pipeline/data/raw/bhsig260_bengali/21/B-S-21-F-02.tif filter=lfs diff=lfs merge=lfs -text
|
| 264 |
+
unified_pipeline/data/raw/bhsig260_bengali/21/B-S-21-F-03.tif filter=lfs diff=lfs merge=lfs -text
|
| 265 |
+
unified_pipeline/data/raw/bhsig260_bengali/21/B-S-21-F-04.tif filter=lfs diff=lfs merge=lfs -text
|
| 266 |
+
unified_pipeline/data/raw/bhsig260_bengali/21/B-S-21-F-05.tif filter=lfs diff=lfs merge=lfs -text
|
| 267 |
+
unified_pipeline/data/raw/bhsig260_bengali/21/B-S-21-F-06.tif filter=lfs diff=lfs merge=lfs -text
|
| 268 |
+
unified_pipeline/data/raw/bhsig260_bengali/21/B-S-21-F-07.tif filter=lfs diff=lfs merge=lfs -text
|
| 269 |
+
unified_pipeline/data/raw/bhsig260_bengali/21/B-S-21-F-08.tif filter=lfs diff=lfs merge=lfs -text
|
| 270 |
+
unified_pipeline/data/raw/bhsig260_bengali/21/B-S-21-G-01.tif filter=lfs diff=lfs merge=lfs -text
|
unified_pipeline/.gitignore
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
__pycache__/
|
| 2 |
+
*.pyc
|
| 3 |
+
.venv/
|
| 4 |
+
venv/
|
| 5 |
+
.pytest_cache/
|
| 6 |
+
*.egg-info/
|
| 7 |
+
|
| 8 |
+
output/*.png
|
| 9 |
+
output/*.json
|
| 10 |
+
output/visualizations/
|
| 11 |
+
!output/.gitkeep
|
unified_pipeline/annotations/bank_doc_01.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "bank_doc_01",
|
| 3 |
+
"source_image": "templates/scanned/guarantee/bank_doc_01.png",
|
| 4 |
+
"document_type": "bank_letter_of_guarantee",
|
| 5 |
+
"pages": [
|
| 6 |
+
{
|
| 7 |
+
"page": 1,
|
| 8 |
+
"page_size": [
|
| 9 |
+
791,
|
| 10 |
+
1024
|
| 11 |
+
],
|
| 12 |
+
"dpi": 300,
|
| 13 |
+
"signature_boxes": [
|
| 14 |
+
{
|
| 15 |
+
"id": "sig1",
|
| 16 |
+
"x1": 118,
|
| 17 |
+
"y1": 493,
|
| 18 |
+
"x2": 396,
|
| 19 |
+
"y2": 508,
|
| 20 |
+
"role": "Bank Officer",
|
| 21 |
+
"name": "Bank Officer"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": "sig2",
|
| 25 |
+
"x1": 118,
|
| 26 |
+
"y1": 700,
|
| 27 |
+
"x2": 404,
|
| 28 |
+
"y2": 715,
|
| 29 |
+
"role": "Notary Public",
|
| 30 |
+
"name": "Notary Public"
|
| 31 |
+
}
|
| 32 |
+
]
|
| 33 |
+
}
|
| 34 |
+
]
|
| 35 |
+
}
|
unified_pipeline/annotations/bank_doc_02.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "bank_doc_02",
|
| 3 |
+
"source_image": "templates/scanned/guarantee/bank_doc_02.png",
|
| 4 |
+
"document_type": "bank_letter_of_guarantee",
|
| 5 |
+
"pages": [
|
| 6 |
+
{
|
| 7 |
+
"page": 1,
|
| 8 |
+
"page_size": [
|
| 9 |
+
1024,
|
| 10 |
+
559
|
| 11 |
+
],
|
| 12 |
+
"dpi": 300,
|
| 13 |
+
"signature_boxes": [
|
| 14 |
+
{
|
| 15 |
+
"id": "sig1",
|
| 16 |
+
"x1": 150,
|
| 17 |
+
"y1": 434,
|
| 18 |
+
"x2": 420,
|
| 19 |
+
"y2": 458,
|
| 20 |
+
"role": "Bank Representative",
|
| 21 |
+
"name": "Michael Chen"
|
| 22 |
+
}
|
| 23 |
+
]
|
| 24 |
+
}
|
| 25 |
+
]
|
| 26 |
+
}
|
unified_pipeline/annotations/bank_doc_03.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "bank_doc_03",
|
| 3 |
+
"source_image": "templates/scanned/guarantee/bank_doc_03.png",
|
| 4 |
+
"document_type": "deed_of_guarantee",
|
| 5 |
+
"pages": [
|
| 6 |
+
{
|
| 7 |
+
"page": 1,
|
| 8 |
+
"page_size": [
|
| 9 |
+
1024,
|
| 10 |
+
559
|
| 11 |
+
],
|
| 12 |
+
"dpi": 300,
|
| 13 |
+
"signature_boxes": [
|
| 14 |
+
{
|
| 15 |
+
"id": "sig1",
|
| 16 |
+
"x1": 595,
|
| 17 |
+
"y1": 399,
|
| 18 |
+
"x2": 748,
|
| 19 |
+
"y2": 431,
|
| 20 |
+
"role": "Guarantor (Authorized Signatory)",
|
| 21 |
+
"name": "Guarantor"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": "sig2",
|
| 25 |
+
"x1": 805,
|
| 26 |
+
"y1": 399,
|
| 27 |
+
"x2": 955,
|
| 28 |
+
"y2": 431,
|
| 29 |
+
"role": "Bank Representative",
|
| 30 |
+
"name": "Lender"
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"cosmetic_fields": [
|
| 34 |
+
{
|
| 35 |
+
"field": "name_sig1",
|
| 36 |
+
"mode": "above_line",
|
| 37 |
+
"line_x": 606,
|
| 38 |
+
"line_y": 464,
|
| 39 |
+
"line_w": 136,
|
| 40 |
+
"box_id": "sig1"
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"field": "name_sig2",
|
| 44 |
+
"mode": "above_line",
|
| 45 |
+
"line_x": 828,
|
| 46 |
+
"line_y": 464,
|
| 47 |
+
"line_w": 136,
|
| 48 |
+
"box_id": "sig2"
|
| 49 |
+
}
|
| 50 |
+
]
|
| 51 |
+
}
|
| 52 |
+
]
|
| 53 |
+
}
|
unified_pipeline/annotations/bank_doc_04.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "bank_doc_04",
|
| 3 |
+
"source_image": "templates/scanned/loan_forms/bank_doc_04.png",
|
| 4 |
+
"document_type": "corporate_bank_loan_agreement",
|
| 5 |
+
"pages": [
|
| 6 |
+
{
|
| 7 |
+
"page": 1,
|
| 8 |
+
"page_size": [
|
| 9 |
+
1024,
|
| 10 |
+
559
|
| 11 |
+
],
|
| 12 |
+
"dpi": 300,
|
| 13 |
+
"signature_boxes": [
|
| 14 |
+
{
|
| 15 |
+
"id": "sig1",
|
| 16 |
+
"x1": 580,
|
| 17 |
+
"y1": 435,
|
| 18 |
+
"x2": 750,
|
| 19 |
+
"y2": 475,
|
| 20 |
+
"role": "Borrower (Authorized Signatory)",
|
| 21 |
+
"name": "Borrower"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": "sig2",
|
| 25 |
+
"x1": 795,
|
| 26 |
+
"y1": 435,
|
| 27 |
+
"x2": 960,
|
| 28 |
+
"y2": 475,
|
| 29 |
+
"role": "Bank Representative",
|
| 30 |
+
"name": "Lender"
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"cosmetic_fields": [
|
| 34 |
+
{
|
| 35 |
+
"field": "name_sig1",
|
| 36 |
+
"mode": "above_line",
|
| 37 |
+
"line_x": 606,
|
| 38 |
+
"line_y": 482,
|
| 39 |
+
"line_w": 136,
|
| 40 |
+
"box_id": "sig1"
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"field": "name_sig2",
|
| 44 |
+
"mode": "above_line",
|
| 45 |
+
"line_x": 828,
|
| 46 |
+
"line_y": 482,
|
| 47 |
+
"line_w": 136,
|
| 48 |
+
"box_id": "sig2"
|
| 49 |
+
}
|
| 50 |
+
]
|
| 51 |
+
}
|
| 52 |
+
]
|
| 53 |
+
}
|
unified_pipeline/annotations/bank_doc_05.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "bank_doc_05",
|
| 3 |
+
"source_image": "templates/scanned/loan_forms/bank_doc_05.png",
|
| 4 |
+
"document_type": "corporate_bank_loan_agreement",
|
| 5 |
+
"pages": [
|
| 6 |
+
{
|
| 7 |
+
"page": 1,
|
| 8 |
+
"page_size": [
|
| 9 |
+
687,
|
| 10 |
+
1024
|
| 11 |
+
],
|
| 12 |
+
"dpi": 300,
|
| 13 |
+
"signature_boxes": [
|
| 14 |
+
{
|
| 15 |
+
"id": "sig1",
|
| 16 |
+
"x1": 65,
|
| 17 |
+
"y1": 780,
|
| 18 |
+
"x2": 320,
|
| 19 |
+
"y2": 815,
|
| 20 |
+
"role": "Borrower",
|
| 21 |
+
"name": "Borrower"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": "sig2",
|
| 25 |
+
"x1": 370,
|
| 26 |
+
"y1": 780,
|
| 27 |
+
"x2": 625,
|
| 28 |
+
"y2": 815,
|
| 29 |
+
"role": "Authorized Signatory",
|
| 30 |
+
"name": "Lender"
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"cosmetic_fields": [
|
| 34 |
+
{
|
| 35 |
+
"field": "name_sig1",
|
| 36 |
+
"mode": "above_line",
|
| 37 |
+
"line_x": 72,
|
| 38 |
+
"line_y": 869,
|
| 39 |
+
"line_w": 251,
|
| 40 |
+
"box_id": "sig1"
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"field": "name_sig2",
|
| 44 |
+
"mode": "above_line",
|
| 45 |
+
"line_x": 365,
|
| 46 |
+
"line_y": 869,
|
| 47 |
+
"line_w": 251,
|
| 48 |
+
"box_id": "sig2"
|
| 49 |
+
}
|
| 50 |
+
]
|
| 51 |
+
}
|
| 52 |
+
]
|
| 53 |
+
}
|
unified_pipeline/annotations/bank_doc_06.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "bank_doc_06",
|
| 3 |
+
"source_image": "templates/scanned/loan_forms/bank_doc_06.png",
|
| 4 |
+
"document_type": "corporate_bank_loan_agreement",
|
| 5 |
+
"pages": [
|
| 6 |
+
{
|
| 7 |
+
"page": 1,
|
| 8 |
+
"page_size": [
|
| 9 |
+
1024,
|
| 10 |
+
559
|
| 11 |
+
],
|
| 12 |
+
"dpi": 300,
|
| 13 |
+
"signature_boxes": [
|
| 14 |
+
{
|
| 15 |
+
"id": "sig1",
|
| 16 |
+
"x1": 90,
|
| 17 |
+
"y1": 421,
|
| 18 |
+
"x2": 345,
|
| 19 |
+
"y2": 433,
|
| 20 |
+
"role": "Borrower (Authorized Signatory)",
|
| 21 |
+
"name": "Borrower"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": "sig2",
|
| 25 |
+
"x1": 590,
|
| 26 |
+
"y1": 421,
|
| 27 |
+
"x2": 845,
|
| 28 |
+
"y2": 433,
|
| 29 |
+
"role": "Bank Representative",
|
| 30 |
+
"name": "Lender"
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"cosmetic_fields": [
|
| 34 |
+
{
|
| 35 |
+
"field": "name_sig1",
|
| 36 |
+
"mode": "above_line",
|
| 37 |
+
"line_x": 145,
|
| 38 |
+
"line_y": 465,
|
| 39 |
+
"line_w": 337,
|
| 40 |
+
"box_id": "sig1"
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"field": "name_sig2",
|
| 44 |
+
"mode": "above_line",
|
| 45 |
+
"line_x": 621,
|
| 46 |
+
"line_y": 464,
|
| 47 |
+
"line_w": 289,
|
| 48 |
+
"box_id": "sig2"
|
| 49 |
+
}
|
| 50 |
+
]
|
| 51 |
+
}
|
| 52 |
+
]
|
| 53 |
+
}
|
unified_pipeline/annotations/bank_doc_07.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "bank_doc_07",
|
| 3 |
+
"source_image": "templates/scanned/mandate/bank_doc_07.png",
|
| 4 |
+
"document_type": "bank_mandate_attestation",
|
| 5 |
+
"pages": [
|
| 6 |
+
{
|
| 7 |
+
"page": 1,
|
| 8 |
+
"page_size": [
|
| 9 |
+
1024,
|
| 10 |
+
1536
|
| 11 |
+
],
|
| 12 |
+
"dpi": 300,
|
| 13 |
+
"signature_boxes": [
|
| 14 |
+
{
|
| 15 |
+
"id": "sig1",
|
| 16 |
+
"x1": 535,
|
| 17 |
+
"y1": 918,
|
| 18 |
+
"x2": 935,
|
| 19 |
+
"y2": 935,
|
| 20 |
+
"role": "Account Holder",
|
| 21 |
+
"name": "Account Holder"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": "sig2",
|
| 25 |
+
"x1": 345,
|
| 26 |
+
"y1": 973,
|
| 27 |
+
"x2": 700,
|
| 28 |
+
"y2": 990,
|
| 29 |
+
"role": "Bank Manager",
|
| 30 |
+
"name": "Bank Manager"
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"cosmetic_fields": [
|
| 34 |
+
{
|
| 35 |
+
"field": "name",
|
| 36 |
+
"mode": "above_line",
|
| 37 |
+
"line_x": 308,
|
| 38 |
+
"line_y": 516,
|
| 39 |
+
"line_w": 309
|
| 40 |
+
}
|
| 41 |
+
]
|
| 42 |
+
}
|
| 43 |
+
]
|
| 44 |
+
}
|
unified_pipeline/annotations/bank_doc_08.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "bank_doc_08",
|
| 3 |
+
"source_image": "templates/scanned/mandate/bank_doc_08.png",
|
| 4 |
+
"document_type": "bank_account_verification_mandate",
|
| 5 |
+
"pages": [
|
| 6 |
+
{
|
| 7 |
+
"page": 1,
|
| 8 |
+
"page_size": [
|
| 9 |
+
1024,
|
| 10 |
+
1536
|
| 11 |
+
],
|
| 12 |
+
"dpi": 300,
|
| 13 |
+
"signature_boxes": [
|
| 14 |
+
{
|
| 15 |
+
"id": "sig1",
|
| 16 |
+
"x1": 345,
|
| 17 |
+
"y1": 672,
|
| 18 |
+
"x2": 495,
|
| 19 |
+
"y2": 696,
|
| 20 |
+
"role": "Account Holder",
|
| 21 |
+
"name": "Account Holder"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": "sig2",
|
| 25 |
+
"x1": 685,
|
| 26 |
+
"y1": 568,
|
| 27 |
+
"x2": 935,
|
| 28 |
+
"y2": 590,
|
| 29 |
+
"role": "Bank Manager",
|
| 30 |
+
"name": "Bank Manager"
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"cosmetic_fields": [
|
| 34 |
+
{
|
| 35 |
+
"field": "name_sig1",
|
| 36 |
+
"mode": "above_line",
|
| 37 |
+
"line_x": 308,
|
| 38 |
+
"line_y": 388,
|
| 39 |
+
"line_w": 169,
|
| 40 |
+
"box_id": "sig1"
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"field": "name_sig2",
|
| 44 |
+
"mode": "above_line",
|
| 45 |
+
"line_x": 748,
|
| 46 |
+
"line_y": 463,
|
| 47 |
+
"line_w": 170,
|
| 48 |
+
"box_id": "sig2"
|
| 49 |
+
}
|
| 50 |
+
]
|
| 51 |
+
}
|
| 52 |
+
]
|
| 53 |
+
}
|
unified_pipeline/annotations/bank_doc_09.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"id": "bank_doc_09",
|
| 3 |
+
"source_image": "templates/scanned/mandate/bank_doc_09.png",
|
| 4 |
+
"document_type": "corporate_account_opening_mandate",
|
| 5 |
+
"pages": [
|
| 6 |
+
{
|
| 7 |
+
"page": 1,
|
| 8 |
+
"page_size": [
|
| 9 |
+
687,
|
| 10 |
+
1024
|
| 11 |
+
],
|
| 12 |
+
"dpi": 300,
|
| 13 |
+
"signature_boxes": [
|
| 14 |
+
{
|
| 15 |
+
"id": "sig1",
|
| 16 |
+
"x1": 90,
|
| 17 |
+
"y1": 797,
|
| 18 |
+
"x2": 315,
|
| 19 |
+
"y2": 832,
|
| 20 |
+
"role": "First Authorised Signatory",
|
| 21 |
+
"name": "First Authorised Signatory"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": "sig2",
|
| 25 |
+
"x1": 350,
|
| 26 |
+
"y1": 797,
|
| 27 |
+
"x2": 575,
|
| 28 |
+
"y2": 832,
|
| 29 |
+
"role": "Second Authorised Signatory",
|
| 30 |
+
"name": "Second Authorised Signatory"
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"cosmetic_fields": [
|
| 34 |
+
{
|
| 35 |
+
"field": "company_name",
|
| 36 |
+
"mode": "below_line",
|
| 37 |
+
"line_x": 74,
|
| 38 |
+
"line_y": 164,
|
| 39 |
+
"line_w": 303
|
| 40 |
+
}
|
| 41 |
+
]
|
| 42 |
+
}
|
| 43 |
+
]
|
| 44 |
+
}
|
unified_pipeline/configs/default.yaml
ADDED
|
@@ -0,0 +1,247 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Base configuration for the synthetic signed bank document generator.
|
| 2 |
+
#
|
| 3 |
+
# This file defines every default value used by src.config.schema.PipelineConfig.
|
| 4 |
+
# User configs (see configs/generate.yaml, configs/examples/*.yaml) are merged
|
| 5 |
+
# on top of this file, so they only need to specify what they want to change.
|
| 6 |
+
#
|
| 7 |
+
# Any numeric placement/augmentation "strength"-like value may be given either
|
| 8 |
+
# as a fixed scalar (e.g. `0.4`) or as a range (e.g. `{min: 0.2, max: 0.6}`),
|
| 9 |
+
# which is resolved by a seeded RNG independently for every generated sample.
|
| 10 |
+
|
| 11 |
+
seed: 1234
|
| 12 |
+
|
| 13 |
+
paths:
|
| 14 |
+
image_dir: templates/scanned
|
| 15 |
+
dataset_dir: data/raw/cedar
|
| 16 |
+
annotations_dir: annotations
|
| 17 |
+
output_dir: output
|
| 18 |
+
cache_dir: templates/procedural
|
| 19 |
+
# Additive signature sources merged into the same SignatureDataset (see
|
| 20 |
+
# src/signatures/signature_dataset.py). Copied into data/raw/ so this
|
| 21 |
+
# repo is self-contained (a standalone zip needs no sibling checkouts) --
|
| 22 |
+
# BHSig260 is capped to 8 genuine + 8 forged samples per writer (full
|
| 23 |
+
# archives are ~3.8GB combined; see unified_pipeline/README.md for the
|
| 24 |
+
# uncapped source location if you need the full archives).
|
| 25 |
+
signet_dir: data/raw/signet
|
| 26 |
+
gpds_dir: null # not wired into the live generation path, excluded (see README)
|
| 27 |
+
bhsig260_hindi_dir: data/raw/bhsig260_hindi
|
| 28 |
+
bhsig260_bengali_dir: data/raw/bhsig260_bengali
|
| 29 |
+
# "both" by default, so a plain `python main.py` with no flags shows
|
| 30 |
+
# both template families, not just one. The one caveat: difficulty
|
| 31 |
+
# calibration (below) is a single global profile
|
| 32 |
+
# regardless of which provider a given sample lands on -- see README's
|
| 33 |
+
# "Difficulty calibration profiles" section. Override with
|
| 34 |
+
# `--set paths.template_provider=scanned` (or `procedural`) for a
|
| 35 |
+
# single-family batch.
|
| 36 |
+
template_provider: both
|
| 37 |
+
# Nothing excluded -- every discovered template is in the pool. See
|
| 38 |
+
# TemplateLoader's excluded_ids param / paths.excluded_template_ids
|
| 39 |
+
# if a template ever needs to be pulled (id-stable: excluding one
|
| 40 |
+
# doesn't renumber any other template's id).
|
| 41 |
+
excluded_template_ids: []
|
| 42 |
+
|
| 43 |
+
generation:
|
| 44 |
+
count: 10
|
| 45 |
+
workers: 1
|
| 46 |
+
save_visualization: false
|
| 47 |
+
overwrite: false
|
| 48 |
+
run_validation: true
|
| 49 |
+
start_index: 1
|
| 50 |
+
filename_prefix: case
|
| 51 |
+
filename_digits: 6
|
| 52 |
+
|
| 53 |
+
document:
|
| 54 |
+
template: null # null = pick uniformly at random (deterministically, via seed)
|
| 55 |
+
page: null # null = use the template's first page
|
| 56 |
+
# On by default -- fills a name/company-name field on both scanned and
|
| 57 |
+
# procedural templates so a generated batch doesn't look obviously
|
| 58 |
+
# synthetic (empty "Name of Account Holder:" etc. next to a real
|
| 59 |
+
# signature). See src/cosmetics/cosmetic_fields.py (procedural, full
|
| 60 |
+
# field set) and src/cosmetics/scanned_cosmetic_fields.py (scanned,
|
| 61 |
+
# CV-detected name field -- 7 of 9 templates; the other 2 are stock
|
| 62 |
+
# photos with no genuine blank field to fill).
|
| 63 |
+
enable_cosmetic_fields: true
|
| 64 |
+
|
| 65 |
+
signer:
|
| 66 |
+
name: null # null = generate a deterministic synthetic name
|
| 67 |
+
role: null # null = use the signature box's annotated role
|
| 68 |
+
|
| 69 |
+
signature_selection:
|
| 70 |
+
source_filter: genuine # genuine | forged | any
|
| 71 |
+
signature_id: null # null = pick uniformly at random from the filtered pool
|
| 72 |
+
|
| 73 |
+
placement:
|
| 74 |
+
x_offset: 0.0
|
| 75 |
+
y_offset: 0.0
|
| 76 |
+
rotation_deg:
|
| 77 |
+
min: -4.0
|
| 78 |
+
max: 4.0
|
| 79 |
+
scale_factor:
|
| 80 |
+
min: 0.78
|
| 81 |
+
max: 0.95
|
| 82 |
+
anchor_point: center
|
| 83 |
+
margin: 0.08
|
| 84 |
+
misplacement_probability: 0.12
|
| 85 |
+
misplacement_strength: 0.35
|
| 86 |
+
allow_partial_outside: false
|
| 87 |
+
|
| 88 |
+
rendering:
|
| 89 |
+
blend_mode: multiply
|
| 90 |
+
ink_opacity:
|
| 91 |
+
min: 0.75
|
| 92 |
+
max: 0.95
|
| 93 |
+
blur_sigma:
|
| 94 |
+
min: 0.15
|
| 95 |
+
max: 0.55
|
| 96 |
+
feather_px:
|
| 97 |
+
min: 0.5
|
| 98 |
+
max: 1.8
|
| 99 |
+
scanner_noise: 0.02
|
| 100 |
+
anti_alias: true
|
| 101 |
+
|
| 102 |
+
augmentation:
|
| 103 |
+
rotation:
|
| 104 |
+
enabled: false
|
| 105 |
+
strength: 0.0
|
| 106 |
+
probability: 0.0
|
| 107 |
+
seed: null
|
| 108 |
+
|
| 109 |
+
stroke_dilation:
|
| 110 |
+
enabled: false
|
| 111 |
+
strength: 0.2
|
| 112 |
+
probability: 0.25
|
| 113 |
+
seed: null
|
| 114 |
+
|
| 115 |
+
motion_blur:
|
| 116 |
+
enabled: false
|
| 117 |
+
strength: 0.2
|
| 118 |
+
probability: 0.15
|
| 119 |
+
seed: null
|
| 120 |
+
|
| 121 |
+
gaussian_blur:
|
| 122 |
+
enabled: true
|
| 123 |
+
strength: 0.15
|
| 124 |
+
probability: 0.3
|
| 125 |
+
seed: null
|
| 126 |
+
|
| 127 |
+
perspective:
|
| 128 |
+
enabled: false
|
| 129 |
+
strength: 0.1
|
| 130 |
+
probability: 0.1
|
| 131 |
+
seed: null
|
| 132 |
+
|
| 133 |
+
scanner_noise:
|
| 134 |
+
enabled: true
|
| 135 |
+
strength: 0.06
|
| 136 |
+
probability: 1.0
|
| 137 |
+
seed: null
|
| 138 |
+
|
| 139 |
+
salt_pepper:
|
| 140 |
+
enabled: false
|
| 141 |
+
strength: 0.03
|
| 142 |
+
probability: 0.15
|
| 143 |
+
seed: null
|
| 144 |
+
|
| 145 |
+
jpeg_compression:
|
| 146 |
+
enabled: true
|
| 147 |
+
strength: 0.3
|
| 148 |
+
probability: 0.5
|
| 149 |
+
seed: null
|
| 150 |
+
min_quality: 35
|
| 151 |
+
max_quality: 90
|
| 152 |
+
|
| 153 |
+
contrast:
|
| 154 |
+
enabled: true
|
| 155 |
+
strength: 0.15
|
| 156 |
+
probability: 0.4
|
| 157 |
+
seed: null
|
| 158 |
+
|
| 159 |
+
gamma:
|
| 160 |
+
enabled: false
|
| 161 |
+
strength: 0.15
|
| 162 |
+
probability: 0.2
|
| 163 |
+
seed: null
|
| 164 |
+
|
| 165 |
+
coffee_stain:
|
| 166 |
+
enabled: false
|
| 167 |
+
strength: 0.4
|
| 168 |
+
probability: 0.1
|
| 169 |
+
seed: null
|
| 170 |
+
|
| 171 |
+
stain:
|
| 172 |
+
enabled: false
|
| 173 |
+
strength: 0.4
|
| 174 |
+
probability: 0.1
|
| 175 |
+
seed: null
|
| 176 |
+
type: random
|
| 177 |
+
|
| 178 |
+
shadow:
|
| 179 |
+
enabled: true
|
| 180 |
+
strength: 0.35
|
| 181 |
+
probability: 0.4
|
| 182 |
+
seed: null
|
| 183 |
+
type: random
|
| 184 |
+
|
| 185 |
+
crumple:
|
| 186 |
+
enabled: false
|
| 187 |
+
strength: 0.2
|
| 188 |
+
probability: 0.15
|
| 189 |
+
seed: null
|
| 190 |
+
wrinkle_density: 0.4
|
| 191 |
+
|
| 192 |
+
discoloration:
|
| 193 |
+
enabled: true
|
| 194 |
+
strength: 0.2
|
| 195 |
+
probability: 0.5
|
| 196 |
+
seed: null
|
| 197 |
+
tone: random
|
| 198 |
+
|
| 199 |
+
page_tilt:
|
| 200 |
+
enabled: true
|
| 201 |
+
strength: 0.3
|
| 202 |
+
probability: 0.3
|
| 203 |
+
seed: null
|
| 204 |
+
|
| 205 |
+
dust:
|
| 206 |
+
enabled: false
|
| 207 |
+
strength: 0.2
|
| 208 |
+
probability: 0.2
|
| 209 |
+
seed: null
|
| 210 |
+
|
| 211 |
+
scanner_streaks:
|
| 212 |
+
enabled: false
|
| 213 |
+
strength: 0.2
|
| 214 |
+
probability: 0.1
|
| 215 |
+
seed: null
|
| 216 |
+
|
| 217 |
+
ink_fading:
|
| 218 |
+
enabled: false
|
| 219 |
+
strength: 0.3
|
| 220 |
+
probability: 0.2
|
| 221 |
+
seed: null
|
| 222 |
+
|
| 223 |
+
ink_bleed:
|
| 224 |
+
enabled: false
|
| 225 |
+
strength: 0.25
|
| 226 |
+
probability: 0.15
|
| 227 |
+
seed: null
|
| 228 |
+
|
| 229 |
+
quality:
|
| 230 |
+
case_type: null
|
| 231 |
+
notes: null
|
| 232 |
+
scanner_quality: 0.85
|
| 233 |
+
paper_quality: 0.85
|
| 234 |
+
render_quality: 0.85
|
| 235 |
+
|
| 236 |
+
difficulty:
|
| 237 |
+
misplacement: 0.35
|
| 238 |
+
whitespace: 0.20
|
| 239 |
+
faintness: 0.20
|
| 240 |
+
smallness: 0.15
|
| 241 |
+
low_texture: 0.10
|
| 242 |
+
easy_threshold: 0.33
|
| 243 |
+
hard_threshold: 0.66
|
| 244 |
+
|
| 245 |
+
validation:
|
| 246 |
+
strict: false
|
| 247 |
+
max_coordinate_epsilon: 0.5
|
unified_pipeline/configs/examples/clean_easy.yaml
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# A "mostly easy" dataset preset: well-centered signatures, minimal
|
| 2 |
+
# degradation. Useful for a sanity-check baseline or an "easy" evaluation
|
| 3 |
+
# split.
|
| 4 |
+
#
|
| 5 |
+
# python main.py --config configs/examples/clean_easy.yaml --count 500
|
| 6 |
+
|
| 7 |
+
seed: 1000
|
| 8 |
+
|
| 9 |
+
generation:
|
| 10 |
+
count: 500
|
| 11 |
+
workers: 4
|
| 12 |
+
|
| 13 |
+
placement:
|
| 14 |
+
scale_factor: { min: 0.85, max: 0.98 }
|
| 15 |
+
rotation_deg: { min: -1.5, max: 1.5 }
|
| 16 |
+
margin: 0.1
|
| 17 |
+
misplacement_probability: 0.0
|
| 18 |
+
allow_partial_outside: false
|
| 19 |
+
|
| 20 |
+
rendering:
|
| 21 |
+
ink_opacity: { min: 0.85, max: 0.98 }
|
| 22 |
+
blur_sigma: { min: 0.1, max: 0.25 }
|
| 23 |
+
scanner_noise: 0.01
|
| 24 |
+
|
| 25 |
+
augmentation:
|
| 26 |
+
gaussian_blur: { enabled: false }
|
| 27 |
+
shadow: { enabled: false }
|
| 28 |
+
discoloration: { enabled: false }
|
| 29 |
+
page_tilt: { enabled: true, strength: 0.1, probability: 0.15 }
|
| 30 |
+
scanner_noise: { enabled: true, strength: 0.02, probability: 1.0 }
|
| 31 |
+
jpeg_compression: { enabled: true, strength: 0.15, probability: 0.3, min_quality: 80, max_quality: 95 }
|
unified_pipeline/configs/examples/hard_degraded.yaml
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# A "mostly hard" dataset preset: frequent misplacement, faint ink, heavy
|
| 2 |
+
# scanner/paper degradation. Useful for stress-testing a downstream
|
| 3 |
+
# detector/verifier or building a "hard" evaluation split.
|
| 4 |
+
#
|
| 5 |
+
# python main.py --config configs/examples/hard_degraded.yaml --count 500
|
| 6 |
+
|
| 7 |
+
seed: 9001
|
| 8 |
+
|
| 9 |
+
generation:
|
| 10 |
+
count: 500
|
| 11 |
+
workers: 4
|
| 12 |
+
|
| 13 |
+
quality:
|
| 14 |
+
case_type: "1d"
|
| 15 |
+
notes: "low-quality scan, batch 9001"
|
| 16 |
+
|
| 17 |
+
placement:
|
| 18 |
+
scale_factor: { min: 0.35, max: 0.7 }
|
| 19 |
+
rotation_deg: { min: -12.0, max: 12.0 }
|
| 20 |
+
margin: 0.04
|
| 21 |
+
misplacement_probability: 0.45
|
| 22 |
+
misplacement_strength: { min: 0.3, max: 0.8 }
|
| 23 |
+
allow_partial_outside: true
|
| 24 |
+
|
| 25 |
+
rendering:
|
| 26 |
+
ink_opacity: { min: 0.35, max: 0.65 }
|
| 27 |
+
blur_sigma: { min: 0.6, max: 1.4 }
|
| 28 |
+
feather_px: { min: 1.5, max: 3.0 }
|
| 29 |
+
scanner_noise: 0.05
|
| 30 |
+
|
| 31 |
+
augmentation:
|
| 32 |
+
ink_fading: { enabled: true, strength: { min: 0.4, max: 0.8 }, probability: 0.5 }
|
| 33 |
+
motion_blur: { enabled: true, strength: { min: 0.3, max: 0.6 }, probability: 0.3 }
|
| 34 |
+
perspective: { enabled: true, strength: { min: 0.15, max: 0.3 }, probability: 0.3 }
|
| 35 |
+
coffee_stain: { enabled: true, strength: { min: 0.4, max: 0.8 }, probability: 0.25 }
|
| 36 |
+
stain: { enabled: true, strength: { min: 0.4, max: 0.8 }, probability: 0.3, type: random }
|
| 37 |
+
shadow: { enabled: true, strength: { min: 0.5, max: 0.9 }, probability: 0.6, type: random }
|
| 38 |
+
crumple: { enabled: true, strength: { min: 0.4, max: 0.8 }, probability: 0.4 }
|
| 39 |
+
discoloration: { enabled: true, strength: { min: 0.4, max: 0.7 }, probability: 0.7, tone: random }
|
| 40 |
+
page_tilt: { enabled: true, strength: { min: 0.5, max: 1.0 }, probability: 0.5 }
|
| 41 |
+
dust: { enabled: true, strength: { min: 0.3, max: 0.7 }, probability: 0.4 }
|
| 42 |
+
scanner_streaks: { enabled: true, strength: { min: 0.3, max: 0.6 }, probability: 0.3 }
|
| 43 |
+
salt_pepper: { enabled: true, strength: { min: 0.03, max: 0.09 }, probability: 0.35 }
|
| 44 |
+
jpeg_compression: { enabled: true, strength: 0.7, probability: 0.7, min_quality: 20, max_quality: 55 }
|
| 45 |
+
|
| 46 |
+
validation:
|
| 47 |
+
strict: false
|
unified_pipeline/configs/examples/single_document_demo.yaml
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Demonstrates every "single value or range" knob on one fixed template with
|
| 2 |
+
# a fixed signer identity -- handy for iterating on how one specific
|
| 3 |
+
# document/box combination looks before scaling up to a full batch run.
|
| 4 |
+
#
|
| 5 |
+
# python main.py --config configs/examples/single_document_demo.yaml --count 1
|
| 6 |
+
|
| 7 |
+
seed: 4242
|
| 8 |
+
|
| 9 |
+
document:
|
| 10 |
+
template: bank_doc_03
|
| 11 |
+
|
| 12 |
+
signer:
|
| 13 |
+
name: Jane Doe
|
| 14 |
+
role: Branch Manager
|
| 15 |
+
|
| 16 |
+
signature_selection:
|
| 17 |
+
source_filter: genuine
|
| 18 |
+
|
| 19 |
+
placement:
|
| 20 |
+
scale_factor: 0.84
|
| 21 |
+
rotation_deg: -3.0
|
| 22 |
+
x_offset: 8.0
|
| 23 |
+
y_offset: -4.0
|
| 24 |
+
misplacement_probability: 0.32
|
| 25 |
+
|
| 26 |
+
generation:
|
| 27 |
+
count: 1
|
| 28 |
+
save_visualization: true
|
| 29 |
+
|
| 30 |
+
augmentation:
|
| 31 |
+
coffee_stain:
|
| 32 |
+
enabled: true
|
| 33 |
+
strength: 0.42
|
| 34 |
+
probability: 1.0
|
| 35 |
+
|
| 36 |
+
shadow:
|
| 37 |
+
enabled: true
|
| 38 |
+
strength: 0.55
|
| 39 |
+
probability: 1.0
|
| 40 |
+
type: corner
|
| 41 |
+
|
| 42 |
+
crumple:
|
| 43 |
+
enabled: true
|
| 44 |
+
strength: 0.18
|
| 45 |
+
probability: 1.0
|
| 46 |
+
|
| 47 |
+
scanner_noise:
|
| 48 |
+
enabled: true
|
| 49 |
+
strength: 0.06
|
| 50 |
+
probability: 1.0
|
unified_pipeline/configs/examples/verification_cases.yaml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Signature-verification test-case generation. Set quality.case_type to one
|
| 2 |
+
# of the 12 codes below to switch GeneratorContext into scenario-driven
|
| 3 |
+
# generation: it renders the described scenario and stamps the sample's
|
| 4 |
+
# metadata `verification` block with the matching ground-truth verdict/
|
| 5 |
+
# reject_code. Left unset (the default), generation is completely unaffected.
|
| 6 |
+
#
|
| 7 |
+
# python main.py --config configs/examples/verification_cases.yaml \
|
| 8 |
+
# --set quality.case_type=3a --count 10
|
| 9 |
+
#
|
| 10 |
+
# For "1d" (correct signer, but the scan itself is degraded) use
|
| 11 |
+
# configs/examples/hard_degraded.yaml instead -- it already sets
|
| 12 |
+
# `quality.case_type: "1d"` plus the matching degraded-scan overrides; this
|
| 13 |
+
# file's job is everything else, where a clean/legible scan is expected.
|
| 14 |
+
#
|
| 15 |
+
# | code | scenario | verdict | reject_code |
|
| 16 |
+
# |------|------------------------------------------------------|---------|-------------------------|
|
| 17 |
+
# | 1a | Correct signer signs normally | PASS | - |
|
| 18 |
+
# | 1b | Correct signer, natural pen variation | PASS | - |
|
| 19 |
+
# | 1c | Multi-signer form, both sign correctly | PASS | - |
|
| 20 |
+
# | 1d | Correct signer, scan degraded (see hard_degraded.yaml)| PASS | - |
|
| 21 |
+
# | 2a | Box left completely blank | REJECT | NO_SIGNATURE |
|
| 22 |
+
# | 2b | Printed/typed name only, no handwriting | REJECT | NO_SIGNATURE |
|
| 23 |
+
# | 3a | Wrong real person signs the box | REJECT | IDENTITY_MISMATCH |
|
| 24 |
+
# | 3b | Skilled-forgery sample used | REJECT | IDENTITY_MISMATCH |
|
| 25 |
+
# | 4a | Authorized signer, but wrong role's box | REJECT | ROLE_MISMATCH |
|
| 26 |
+
# | 4b | Signer from a different form entirely | REJECT | ROLE_MISMATCH |
|
| 27 |
+
# | 5a | Required signer's box left empty | REJECT | REQUIRED_SIGNER_ABSENT |
|
| 28 |
+
# | 5b | Someone else signs in the required signer's place | REJECT | REQUIRED_SIGNER_ABSENT |
|
| 29 |
+
|
| 30 |
+
quality:
|
| 31 |
+
case_type: "1a" # <- override with --set quality.case_type=<code>
|
| 32 |
+
|
| 33 |
+
validation:
|
| 34 |
+
strict: false
|
unified_pipeline/configs/generate.yaml
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Example large-batch dataset generation config.
|
| 2 |
+
#
|
| 3 |
+
# Merged on top of configs/default.yaml. Only values that differ from the
|
| 4 |
+
# defaults need to be listed here. Run with:
|
| 5 |
+
#
|
| 6 |
+
# python main.py --config configs/generate.yaml --count 10000
|
| 7 |
+
#
|
| 8 |
+
# (--count on the command line overrides generation.count below.)
|
| 9 |
+
|
| 10 |
+
seed: 20240601
|
| 11 |
+
|
| 12 |
+
paths:
|
| 13 |
+
output_dir: output
|
| 14 |
+
|
| 15 |
+
generation:
|
| 16 |
+
count: 2000
|
| 17 |
+
workers: 4
|
| 18 |
+
save_visualization: false
|
| 19 |
+
overwrite: false
|
| 20 |
+
run_validation: true
|
| 21 |
+
|
| 22 |
+
# document.template left as null -> every sample independently and
|
| 23 |
+
# deterministically picks one of the 9 discovered templates.
|
| 24 |
+
document:
|
| 25 |
+
template: null
|
| 26 |
+
|
| 27 |
+
# signer.name/role left as null -> a synthetic name is generated per sample
|
| 28 |
+
# and the role is taken from the chosen signature box's annotation.
|
| 29 |
+
signer:
|
| 30 |
+
name: null
|
| 31 |
+
role: null
|
| 32 |
+
|
| 33 |
+
signature_selection:
|
| 34 |
+
source_filter: genuine
|
| 35 |
+
|
| 36 |
+
placement:
|
| 37 |
+
scale_factor:
|
| 38 |
+
min: 0.75
|
| 39 |
+
max: 0.98
|
| 40 |
+
rotation_deg:
|
| 41 |
+
min: -6.0
|
| 42 |
+
max: 6.0
|
| 43 |
+
margin: 0.07
|
| 44 |
+
misplacement_probability: 0.15
|
| 45 |
+
misplacement_strength:
|
| 46 |
+
min: 0.15
|
| 47 |
+
max: 0.5
|
| 48 |
+
allow_partial_outside: true
|
| 49 |
+
|
| 50 |
+
rendering:
|
| 51 |
+
blend_mode: multiply
|
| 52 |
+
ink_opacity:
|
| 53 |
+
min: 0.7
|
| 54 |
+
max: 0.97
|
| 55 |
+
blur_sigma:
|
| 56 |
+
min: 0.15
|
| 57 |
+
max: 0.6
|
| 58 |
+
feather_px:
|
| 59 |
+
min: 0.4
|
| 60 |
+
max: 2.0
|
| 61 |
+
scanner_noise: 0.02
|
| 62 |
+
|
| 63 |
+
augmentation:
|
| 64 |
+
stroke_dilation:
|
| 65 |
+
enabled: true
|
| 66 |
+
strength: { min: 0.1, max: 0.35 }
|
| 67 |
+
probability: 0.2
|
| 68 |
+
|
| 69 |
+
gaussian_blur:
|
| 70 |
+
enabled: true
|
| 71 |
+
strength: { min: 0.05, max: 0.3 }
|
| 72 |
+
probability: 0.3
|
| 73 |
+
|
| 74 |
+
motion_blur:
|
| 75 |
+
enabled: true
|
| 76 |
+
strength: { min: 0.1, max: 0.35 }
|
| 77 |
+
probability: 0.12
|
| 78 |
+
|
| 79 |
+
ink_fading:
|
| 80 |
+
enabled: true
|
| 81 |
+
strength: { min: 0.1, max: 0.5 }
|
| 82 |
+
probability: 0.2
|
| 83 |
+
|
| 84 |
+
ink_bleed:
|
| 85 |
+
enabled: true
|
| 86 |
+
strength: { min: 0.1, max: 0.4 }
|
| 87 |
+
probability: 0.15
|
| 88 |
+
|
| 89 |
+
perspective:
|
| 90 |
+
enabled: true
|
| 91 |
+
strength: { min: 0.05, max: 0.2 }
|
| 92 |
+
probability: 0.12
|
| 93 |
+
|
| 94 |
+
contrast:
|
| 95 |
+
enabled: true
|
| 96 |
+
strength: { min: 0.05, max: 0.3 }
|
| 97 |
+
probability: 0.4
|
| 98 |
+
|
| 99 |
+
gamma:
|
| 100 |
+
enabled: true
|
| 101 |
+
strength: { min: 0.05, max: 0.25 }
|
| 102 |
+
probability: 0.2
|
| 103 |
+
|
| 104 |
+
coffee_stain:
|
| 105 |
+
enabled: true
|
| 106 |
+
strength: { min: 0.2, max: 0.6 }
|
| 107 |
+
probability: 0.08
|
| 108 |
+
|
| 109 |
+
stain:
|
| 110 |
+
enabled: true
|
| 111 |
+
strength: { min: 0.2, max: 0.6 }
|
| 112 |
+
probability: 0.1
|
| 113 |
+
type: random
|
| 114 |
+
|
| 115 |
+
shadow:
|
| 116 |
+
enabled: true
|
| 117 |
+
strength: { min: 0.2, max: 0.6 }
|
| 118 |
+
probability: 0.35
|
| 119 |
+
type: random
|
| 120 |
+
|
| 121 |
+
crumple:
|
| 122 |
+
enabled: true
|
| 123 |
+
strength: { min: 0.1, max: 0.4 }
|
| 124 |
+
probability: 0.12
|
| 125 |
+
wrinkle_density: { min: 0.2, max: 0.7 }
|
| 126 |
+
|
| 127 |
+
discoloration:
|
| 128 |
+
enabled: true
|
| 129 |
+
strength: { min: 0.1, max: 0.4 }
|
| 130 |
+
probability: 0.45
|
| 131 |
+
tone: random
|
| 132 |
+
|
| 133 |
+
page_tilt:
|
| 134 |
+
enabled: true
|
| 135 |
+
strength: { min: 0.1, max: 0.5 }
|
| 136 |
+
probability: 0.3
|
| 137 |
+
|
| 138 |
+
dust:
|
| 139 |
+
enabled: true
|
| 140 |
+
strength: { min: 0.1, max: 0.4 }
|
| 141 |
+
probability: 0.2
|
| 142 |
+
|
| 143 |
+
scanner_streaks:
|
| 144 |
+
enabled: true
|
| 145 |
+
strength: { min: 0.1, max: 0.35 }
|
| 146 |
+
probability: 0.1
|
| 147 |
+
|
| 148 |
+
scanner_noise:
|
| 149 |
+
enabled: true
|
| 150 |
+
strength: { min: 0.02, max: 0.1 }
|
| 151 |
+
probability: 1.0
|
| 152 |
+
|
| 153 |
+
salt_pepper:
|
| 154 |
+
enabled: true
|
| 155 |
+
strength: { min: 0.01, max: 0.06 }
|
| 156 |
+
probability: 0.15
|
| 157 |
+
|
| 158 |
+
jpeg_compression:
|
| 159 |
+
enabled: true
|
| 160 |
+
strength: { min: 0.2, max: 0.6 }
|
| 161 |
+
probability: 0.5
|
| 162 |
+
min_quality: 40
|
| 163 |
+
max_quality: 92
|
| 164 |
+
|
| 165 |
+
quality:
|
| 166 |
+
scanner_quality: { min: 0.6, max: 0.98 }
|
| 167 |
+
paper_quality: { min: 0.6, max: 0.98 }
|
| 168 |
+
render_quality: { min: 0.6, max: 0.98 }
|
| 169 |
+
|
| 170 |
+
validation:
|
| 171 |
+
strict: false
|
unified_pipeline/configs/procedural_templates.yaml
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Procedural-template profile -- switches the document source from scanned
|
| 2 |
+
# photos (the default) to matplotlib-drawn documents ported from
|
| 3 |
+
# projectA/utils/templatemaker.py (see src/templates/procedural_template_provider.py).
|
| 4 |
+
#
|
| 5 |
+
# The difficulty smallness/faintness reference constants are also
|
| 6 |
+
# recalibrated here, matching projectA's own empirical finding: real
|
| 7 |
+
# signature ink on these procedural templates is much smaller/lighter
|
| 8 |
+
# relative to page area than the deck's generic literal constants assume
|
| 9 |
+
# (see projectA/utils/difficulty_score.py's calibration comment, and
|
| 10 |
+
# `unified_pipeline/README.md`). This profile is what makes "easy" reachable
|
| 11 |
+
# for a signed (non-blank) case on procedural templates the way it is on
|
| 12 |
+
# projectA today -- the scanned-template default profile deliberately keeps
|
| 13 |
+
# the deck's literal constants, since that pipeline's own measurements
|
| 14 |
+
# didn't show the same mismatch.
|
| 15 |
+
#
|
| 16 |
+
# Usage: python main.py --config configs/procedural_templates.yaml --count 20
|
| 17 |
+
# python main.py --set paths.template_provider=procedural --set difficulty.smallness_reference_area_ratio=0.003 ... (equivalent, inline)
|
| 18 |
+
|
| 19 |
+
paths:
|
| 20 |
+
template_provider: procedural
|
| 21 |
+
|
| 22 |
+
document:
|
| 23 |
+
enable_cosmetic_fields: true
|
| 24 |
+
|
| 25 |
+
difficulty:
|
| 26 |
+
smallness_reference_area_ratio: 0.003
|
| 27 |
+
faintness_dark_ref: 184.0
|
| 28 |
+
faintness_light_ref: 220.0
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-01.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-02.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-03.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-04.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-05.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-06.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-07.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-F-08.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-01.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-02.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-03.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-04.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-05.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-06.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-07.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/1/B-S-1-G-08.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-01.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-02.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-03.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-04.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-05.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-06.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-07.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-F-08.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-01.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-02.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-03.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-04.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-05.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-06.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-07.tif
ADDED
|
|
Git LFS Details
|
unified_pipeline/data/raw/bhsig260_bengali/10/B-S-10-G-08.tif
ADDED
|
|
Git LFS Details
|