Я работаю над OCR как часть моего любопытства и интереса, где я пытаюсь извлечь текст, числовые значения и символы из изображения табличных данных, а затем извлекать данные, которые я хочу экспортировать в файл CSV.
Образец Входное изображение выглядит следующим образом
Изображения генерируются из файлов PDF.
Я пытался использовать Tesseract OCR с Java, а также с Python, но после преобразования изображения в текст в извлеченном тексте пропали символы.
Ниже приведен мой пример кода на Java
package com.sk.ocr;
import org.bytedeco.javacpp.*;
import org.bytedeco.leptonica.*;
import org.bytedeco.tesseract.*;
import static org.bytedeco.leptonica.global.lept.*;
import static org.bytedeco.tesseract.global.tesseract.*;
public class PresetsOCR {
public static void main(String[] args) {
BytePointer outText;
TessBaseAPI api = new TessBaseAPI();
if (api.Init("C:/Program Files/Tesseract-OCR/tessdata", "eng") != 0) {
System.err.println("Could not initialize tesseract.");
System.exit(1);
}
PIX image = pixRead(args.length > 0 ? args[0] : "C:/tmp/images/sample-2.jpeg");
api.SetImage(image);
outText = api.GetUTF8Text();
System.out.println("OCR output:\n" + outText.getString());
api.End();
outText.deallocate();
pixDestroy(image);
}
}
Ожидаемый вывод:
OCR output:
Location Requirement Type Mult Value Upper Tol Lower Tol
S1-D6 R4 ± R5 R 4 +5.0 -5.0
S1-D7 Ꚛ ø0.5 A B C Ꚛ 0 +5.0 -0.0
S1-D7 ֍ ø0.1 G ֍ 0 +1.0 -0.0
Фактический вывод:
OCR output:
ea eee) ine | SE eave ees
S16 Res 05 R [4 [ +05 [ 05
|st-p7_ | a0 +05 | 00
Teil oe ser fa]
Приведенная выше программа генерирует приблизительно правильный вывод при вводе изображения на английском языкетекст, но не удается, когда изображение содержит табличные данные или специальные символы.
Любые идеи или указатели для дальнейшего рассмотрения приветствуются!