mirror of
https://github.com/DS4SD/docling.git
synced 2025-12-09 13:18:24 +00:00
feat(ocr): auto-detect rotated pages in Tesseract (#1167)
* fix(ocr): tesseract support mis-oriented documents Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com> * fix(ocr): update missing test data Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com> * fix(ocr): rotate image to the natural orientation before layout prediction Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com> * fix(ocr): move bounding bow rotation util to orientation.py Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com> * fix(ocr): refactor rotation utilities Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com> * chore(ocr): revert layout updates Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com> * chore(ocr): update e2e OCR test data Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com> * fix(ocr): avoid to swallow tesseract errors causing orientation detection failures Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com> * chore(ocr): revert layout updates Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com> * chore(ocr): update e2e OCR test data * chore(ocr): proceed to OCR without rotation when OSD fails in `TesseractOcrCliModel` * chore(ocr): proceed to OCR without rotation when OSD fails in `TesseractOcrModel` * chore(ocr): default `TesseractOcrCliModel._is_auto` to `False` * fix(ocr): fix `TesseractOcrCliModel._is_auto` computation * chore(ocr): improve logging in case of OSD failure in `TesseractOcrCliModel` and `TesseractOcrModel` --------- Signed-off-by: Clément Doumouro <clement.doumouro@gmail.com>
This commit is contained in:
@@ -114,7 +114,13 @@
|
||||
"label": "paragraph",
|
||||
"prov": [],
|
||||
"orig": "A uniform table",
|
||||
"text": "A uniform table"
|
||||
"text": "A uniform table",
|
||||
"formatting": {
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false,
|
||||
"strikethrough": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"self_ref": "#/texts/2",
|
||||
@@ -138,7 +144,13 @@
|
||||
"label": "paragraph",
|
||||
"prov": [],
|
||||
"orig": "A non-uniform table with horizontal spans",
|
||||
"text": "A non-uniform table with horizontal spans"
|
||||
"text": "A non-uniform table with horizontal spans",
|
||||
"formatting": {
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false,
|
||||
"strikethrough": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"self_ref": "#/texts/4",
|
||||
@@ -162,7 +174,13 @@
|
||||
"label": "paragraph",
|
||||
"prov": [],
|
||||
"orig": "A non-uniform table with horizontal spans in inner columns",
|
||||
"text": "A non-uniform table with horizontal spans in inner columns"
|
||||
"text": "A non-uniform table with horizontal spans in inner columns",
|
||||
"formatting": {
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false,
|
||||
"strikethrough": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"self_ref": "#/texts/6",
|
||||
@@ -186,7 +204,13 @@
|
||||
"label": "paragraph",
|
||||
"prov": [],
|
||||
"orig": "A non-uniform table with vertical spans",
|
||||
"text": "A non-uniform table with vertical spans"
|
||||
"text": "A non-uniform table with vertical spans",
|
||||
"formatting": {
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false,
|
||||
"strikethrough": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"self_ref": "#/texts/8",
|
||||
@@ -210,7 +234,13 @@
|
||||
"label": "paragraph",
|
||||
"prov": [],
|
||||
"orig": "A non-uniform table with all kinds of spans and empty cells",
|
||||
"text": "A non-uniform table with all kinds of spans and empty cells"
|
||||
"text": "A non-uniform table with all kinds of spans and empty cells",
|
||||
"formatting": {
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false,
|
||||
"strikethrough": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"self_ref": "#/texts/10",
|
||||
|
||||
Reference in New Issue
Block a user