mirror of
https://github.com/mikegerber/ocrd_calamari.git
synced 2025-06-26 03:59:53 +02:00
implement "checkpoint_dir" parameter as a simpler alternative to "checkpoint"
This commit is contained in:
parent
fe973e58db
commit
83adfcfd5a
4 changed files with 31 additions and 1 deletions
|
@ -69,6 +69,13 @@ Finally recognize the text using ocrd_calamari and the downloaded model:
|
|||
ocrd-calamari-recognize -p '{ "checkpoint": "../gt4histocr-calamari1/*.ckpt.json" }' -I OCR-D-SEG-LINE -O OCR-D-OCR-CALAMARI
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
ocrd-calamari-recognize -P checkpoint_dir ../gt4histocr-calamari1 -I OCR-D-SEG-LINE -O OCR-D-OCR-CALAMARI
|
||||
```
|
||||
|
||||
|
||||
You may want to have a look at the [ocrd-tool.json](ocrd_calamari/ocrd-tool.json) descriptions
|
||||
for additional parameters and default values.
|
||||
|
||||
|
|
|
@ -18,6 +18,10 @@
|
|||
"OCR-D-OCR-CALAMARI"
|
||||
],
|
||||
"parameters": {
|
||||
"checkpoint_dir": {
|
||||
"description": "The directory containing calamari model files (*.ckpt.json). Uses all checkpoints in that directory",
|
||||
"type": "string", "format": "file", "cacheable": true
|
||||
},
|
||||
"checkpoint": {
|
||||
"description": "The calamari model files (*.ckpt.json)",
|
||||
"type": "string", "format": "file", "cacheable": true
|
||||
|
|
|
@ -40,6 +40,8 @@ class CalamariRecognize(Processor):
|
|||
def _init_calamari(self):
|
||||
os.environ['TF_CPP_MIN_LOG_LEVEL'] = TF_CPP_MIN_LOG_LEVEL
|
||||
|
||||
if self.parameter['checkpoint_dir']:
|
||||
self.parameter['checkpoint'] = '%s/*.ckpt.json' % self.parameter['checkpoint_dir']
|
||||
checkpoints = glob(self.parameter['checkpoint'])
|
||||
self.predictor = MultiPredictor(checkpoints=checkpoints)
|
||||
|
||||
|
|
|
@ -14,7 +14,8 @@ from .base import assets
|
|||
|
||||
METS_KANT = assets.url_of('kant_aufklaerung_1784-page-region-line-word_glyph/data/mets.xml')
|
||||
WORKSPACE_DIR = '/tmp/test-ocrd-calamari'
|
||||
CHECKPOINT = os.path.join(os.getcwd(), 'gt4histocr-calamari1/*.ckpt.json')
|
||||
CHECKPPOINT_DIR = os.path.join(os.getcwd(), 'gt4histocr-calamari1')
|
||||
CHECKPOINT = os.path.join(CHECKPPOINT_DIR, '*.ckpt.json')
|
||||
|
||||
# Because XML namespace versions are so much fun, we not only use one, we use TWO!
|
||||
NSMAP = { "pc": "http://schema.primaresearch.org/PAGE/gts/pagecontent/2019-07-15" }
|
||||
|
@ -81,6 +82,22 @@ def test_recognize(workspace):
|
|||
with open(page1, "r", encoding="utf-8") as f:
|
||||
assert "verſchuldeten" in f.read()
|
||||
|
||||
def test_recognize_with_checkpoint_dir(workspace):
|
||||
CalamariRecognize(
|
||||
workspace,
|
||||
input_file_grp="OCR-D-GT-SEG-LINE",
|
||||
output_file_grp="OCR-D-OCR-CALAMARI",
|
||||
parameter={
|
||||
"checkpoin_dir": CHECKPOINT_DIR,
|
||||
}
|
||||
).process()
|
||||
workspace.save_mets()
|
||||
|
||||
page1 = os.path.join(workspace.directory, "OCR-D-OCR-CALAMARI/OCR-D-OCR-CALAMARI_0001.xml")
|
||||
assert os.path.exists(page1)
|
||||
with open(page1, "r", encoding="utf-8") as f:
|
||||
assert "verſchuldeten" in f.read()
|
||||
|
||||
|
||||
def test_word_segmentation(workspace):
|
||||
CalamariRecognize(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue