lterriel commited on
Commit
4631e00
·
verified ·
1 Parent(s): d9b1e36

Create app.config.json

Browse files
Files changed (1) hide show
  1. app.config.json +207 -0
app.config.json ADDED
@@ -0,0 +1,207 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "mode": "online",
3
+ "ui": {
4
+ "title": "Medieval Illumination Detector",
5
+ "shortTitle": "IIIF — Illumination Detector",
6
+ "subtitle": "ONNX • Vue 3 • Mirador",
7
+ "description": "This interface loads binary image classifiers trained for medieval manuscript folios. It can classify a IIIF manifest or a local image, identify illuminated folios, and export the selected canvases as a new IIIF manifest with machine-generated classification annotations.",
8
+ "descriptionCollapsedByDefault": true,
9
+ "showHelp": true,
10
+ "showArtefactsInput": true,
11
+ "defaultManifestUrl": "https://gallica.bnf.fr/iiif/ark:/12148/btv1b52508970d/manifest.json",
12
+ "texts": {
13
+ "showInfo": "Info",
14
+ "hideInfo": "Hide",
15
+ "artefactsLabel": "Artifacts web folder",
16
+ "artefactsPlaceholder": "../Artefacts",
17
+ "artefactsHelp": "The browser cannot read arbitrary /Users/... paths directly. Start a local HTTP server and point this field to the served Artefacts directory.",
18
+ "runsLabel": "Available models",
19
+ "refreshRuns": "Refresh model list",
20
+ "loadModel": "Load model",
21
+ "reset": "Reset",
22
+ "tabsAriaLabel": "Input mode",
23
+ "iiifTab": "IIIF Manifest",
24
+ "imageTab": "Image",
25
+ "manifestUrlLabel": "IIIF manifest URL",
26
+ "manifestUrlPlaceholder": "https://.../manifest.json",
27
+ "loadManifest": "Load manifest",
28
+ "classify": "Classify",
29
+ "stop": "Stop",
30
+ "thresholdLabel": "Illuminated threshold",
31
+ "threshold": "Threshold",
32
+ "parallelLabel": "Parallelization",
33
+ "parallelHelp": "Number of folios classified in parallel. Use 1 for maximum stability, or 3–5 for faster processing.",
34
+ "heuristicSettingsLabel": "Negative heuristic",
35
+ "heuristicEnabled": "Enable forced non-illuminated labels",
36
+ "heuristicKeywordsPlaceholder": "One keyword per line",
37
+ "heuristicKeywordsHelp": "If a canvas label contains one of these keywords, it is classified as non_illuminated without model inference.",
38
+ "heuristicSkipped": "heuristic non-illuminated",
39
+ "heuristicHelp": "Negative heuristic: cover/spine/flyleaf/recto/verso labels can be forced to non_illuminated before inference.",
40
+ "exportManifest": "Export IIIF manifest with illuminations",
41
+ "pages": "pages",
42
+ "facetLabel": "Facet",
43
+ "allFacet": "All",
44
+ "positiveFacet": "Illuminated (>= threshold)",
45
+ "negativeFacet": "Non-illuminated",
46
+ "overriddenFacet": "Corrected (override)",
47
+ "pendingFacet": "Pending",
48
+ "errorsFacet": "Errors",
49
+ "editMode": "Correction mode",
50
+ "selection": "Selection",
51
+ "current": "Current",
52
+ "histogramTitle": "p(illumination) histogram — selection",
53
+ "histogramHelp": "Click a bar to open the folio",
54
+ "emptyHistogramTitle": "Empty histogram",
55
+ "emptyHistogram": "No folio in the selection",
56
+ "localImageLabel": "Local image",
57
+ "dropImage": "Drag and drop an image here",
58
+ "browseImage": "or use the file picker below",
59
+ "predict": "Predict",
60
+ "clear": "Clear",
61
+ "imageHelp": "The prediction and probability bars are displayed on the right.",
62
+ "imageResult": "Image result",
63
+ "predictionLabel": "Prediction",
64
+ "probabilities": "Probabilities",
65
+ "runPrediction": "Run prediction",
66
+ "noImageResult": "No result yet.",
67
+ "loadImageHelp": "Load an image from the Image tab, then click Predict.",
68
+ "imagePreviewAlt": "Image preview",
69
+ "classLabelPrefix": "class",
70
+ "projectLogoAlt": "O.D.I.L. project logo",
71
+ "expandMirador": "▸ Expand Mirador",
72
+ "collapseMirador": "▾ Collapse Mirador",
73
+ "openSelection": "Open selection",
74
+ "next": "Next",
75
+ "previous": "Previous",
76
+ "override": "override",
77
+ "positiveShort": "illumination",
78
+ "resetOverride": "Reset",
79
+ "scoreLabel": "p(illumination)",
80
+ "statusReady": "Ready. Select a model, then load it.",
81
+ "statusLoadingRuns": "Loading model list…",
82
+ "statusOnlineRuns": "Online models",
83
+ "statusLocalRuns": "Local models found",
84
+ "statusRunsError": "Unable to load model list.",
85
+ "statusOnlineRunMissing": "Online model entry not found in app.config.json.",
86
+ "statusLoadingModel": "Loading ONNX model and configuration…",
87
+ "statusModelLoaded": "Model loaded",
88
+ "statusLoadRunError": "Model loading error",
89
+ "statusResetOk": "Reset complete.",
90
+ "statusLoadModelFirst": "Load a model first.",
91
+ "statusLoadingManifest": "Loading manifest…",
92
+ "statusManifestLoaded": "Manifest loaded",
93
+ "statusManifestError": "Manifest error",
94
+ "statusLoadManifestFirst": "Load a manifest first.",
95
+ "statusLoadModelBeforeImage": "Load a model before adding an image.",
96
+ "statusDroppedFileNotImage": "The dropped file is not an image.",
97
+ "statusSelectedFileNotImage": "The selected file is not an image.",
98
+ "statusClassificationRunning": "Classification running…",
99
+ "parallelSuffix": "in parallel",
100
+ "statusStopped": "Stopped",
101
+ "statusDone": "Done",
102
+ "positivesAtThreshold": "illuminations at threshold",
103
+ "statusStopRequested": "Stop requested.",
104
+ "statusPending": "Pending",
105
+ "statusError": "Error",
106
+ "statusProcessing": "Processing…",
107
+ "statusExportOk": "IIIF v3 manifest exported",
108
+ "statusImageLoaded": "Image loaded",
109
+ "statusImageInference": "Running image inference…",
110
+ "statusImageDone": "Image processed",
111
+ "statusPredictionError": "Prediction error",
112
+ "errorModelNotFound": "Unable to find an ONNX model.",
113
+ "errorNoCanvasImageUrl": "No image URL found for this canvas.",
114
+ "helpTitle": "Local help",
115
+ "helpStep1": "1) Place index.html next to app.config.json.",
116
+ "helpStep2": "2) Start a server from the parent directory: python -m http.server 8000.",
117
+ "helpStep3": "3) Open http://localhost:8000/web/ and set ../Artefacts as the artifacts web folder."
118
+ }
119
+ },
120
+ "project": {
121
+ "show": true,
122
+ "name": "O.D.I.L.",
123
+ "description": "This application was created as part of the O.D.I.L. project.",
124
+ "url": "https://projet.biblissima.fr/fr/appels-projets/projets-retenus/odil-objet-detection-illuminations",
125
+ "institution": "École nationale des chartes - PSL",
126
+ "institutionUrl": "https://www.chartes.psl.eu/",
127
+ "logoUrl": "./assets/images/odil-logo.png"
128
+ },
129
+ "assets": {
130
+ "iiifLogoUrl": "./assets/images/iiif-logo.png",
131
+ "projectLogoUrl": "./assets/images/odil-logo.png"
132
+ },
133
+ "labels": {
134
+ "positive": "illuminated",
135
+ "negative": "non_illuminated",
136
+ "positiveAliases": [
137
+ "illuminated",
138
+ "illumination",
139
+ "illustration",
140
+ "1"
141
+ ],
142
+ "negativeAliases": [
143
+ "non_illuminated",
144
+ "non_illumination",
145
+ "non_illustration",
146
+ "0"
147
+ ]
148
+ },
149
+ "heuristic": {
150
+ "enabled": true,
151
+ "collapsedByDefault": true,
152
+ "keywordsForceNegative": [
153
+ "tranche de tête",
154
+ "gouttière",
155
+ "plat",
156
+ "page de garde",
157
+ "garde",
158
+ "page",
159
+ "dos",
160
+ "verso",
161
+ "recto",
162
+ "contreplat",
163
+ "reliure",
164
+ "sup.",
165
+ "inf.",
166
+ "ar",
167
+ "br",
168
+ "bv",
169
+ "front",
170
+ "inside",
171
+ "flyleaf",
172
+ "back",
173
+ "general shot",
174
+ "cover",
175
+ "spine"
176
+ ]
177
+ },
178
+ "local": {
179
+ "defaultArtefactsBaseUrl": "../Artefacts"
180
+ },
181
+ "online": {
182
+ "huggingFaceRepoLabel": "ENC-PSL/BSICLE",
183
+ "huggingFaceRepoURL": "https://huggingface.co/ENC-PSL/BSICLE",
184
+ "runs": [
185
+ {
186
+ "id": "mobilenetv2",
187
+ "label": "MobileNet v2",
188
+ "baseUrl": "https://huggingface.co/ENC-PSL/BSICLE/resolve/main/mobilenetv2"
189
+ },
190
+ {
191
+ "id": "mobilenetv3_large",
192
+ "label": "MobileNet v3 large",
193
+ "baseUrl": "https://huggingface.co/ENC-PSL/BSICLE/resolve/main/mobilenetv3_large"
194
+ },
195
+ {
196
+ "id": "mobilenetv3_small",
197
+ "label": "MobileNet v3 small",
198
+ "baseUrl": "https://huggingface.co/ENC-PSL/BSICLE/resolve/main/mobilenetv3_small"
199
+ },
200
+ {
201
+ "id": "mobilevitv2",
202
+ "label": "MobileViTv2",
203
+ "baseUrl": "https://huggingface.co/lterriel/ENC-PSL/BSICLE/resolve/main/mobilevitv2"
204
+ }
205
+ ]
206
+ }
207
+ }