Обнаружение специальных символов Unicode с помощью Tesseract - PullRequest
0 голосов
/ 27 мая 2020

В работе у нас около 17000 изображений кодов, нам нужно проверять на наличие ошибок. Поэтому мне сказали создать программу, которая обнаруживает эти ошибки (например, на одном из этих изображений есть ⬜, потому что что-то пошло не так при создании изображения).

Я использую Tesseract для C# отсканировать текст из изображений и проверить наличие таких квадратов. Я внес в белый список каждую заглавную букву, каждое число,> и <, а также ⬜-квадрат. </p>

static string OcrDoYourThing(Image ImgPath)
{
    var imgsource = new Bitmap(ImgPath);
    var tessdata = Environment.CurrentDirectory + "\\Images";
    var filter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ<>1234567890□⬜";

    var ocrtext = string.Empty;
    using (var engine = new TesseractEngine(tessdata, "en", EngineMode.Default))
    {
        engine.SetVariable("tessedit_char_whitelist", filter);

        using (var img = PixConverter.ToPix(imgsource))
        {
            using (var page = engine.Process(img))
            {
                ocrtext = page.GetText();
            }
        }
    }
    return ocrtext;
}

Но когда есть изображение с таким квадратом, Tesseract распознает его как «D», или "EI". Например, текст на изображении "⬜> 12345ABCDE" <<<< "определяется как" D> 12345ABCDE "<<<<" или "EI> 12345ABCDE" <<<< "</p>

Есть ли обученная версия engli sh, которая может определять эти квадраты?

...