Я пытаюсь снять определенную область страницы PDF в многостраничном документе (общее количество страниц варьируется от 600 до 10 000 страниц). Первоначально я получаю данные как файлы .pcl в партиях из 500 записей, которые затем я преобразую в PDF с использованием стороннего инструмента (попытка как с Winpcltopdf.exe, так и в пробной версии Lincpdf). В результате PDF используется шрифт Type3, который я не могу редактировать или преобразовать в что -то пригодное для использования. Это привело меня на путь использования Tesseract для ocr записей, так как визуально легко читать. I still had issues, so I tried to refine it by generating a .traineddata file following these instructions for the most similar font (Morocco-LT-Std-Regular.ttf), which didn't improve accuracy.
High-Level Order of Operations:
[*]Convert original PCL files to PDF
parse pdf для конкретных данных и назначьте его для записи объекта < /li>
< /ul>
Конкретная цель < /strong>: ocr Указанная область страницы PDF. Данные всегда появляются как record/pagecount .
Проблемы, встречающиеся : ocr, неверно считывает числа, несмотря на обучение телсеракта на визуально -идентичное шрифт, а также различные типы предварительной обработки изображения, как описано здесь и здесь. Обертки, используемые в коде. Исходные данные (к сожалению) всегда будут в формате .pcl. Я пишу это в C#, но если есть сценарии, которые я могу запустить, которые помогут оптимизировать PDF перед тем, как запустить его через свой код, я открыт для предложений. Я также перепутал DPI, но это не помогло с точностью. Я играл с Tesseract Enginemode и SegmationMode, а также без изменения вывода. Я пробовал некоторые из шагов, упомянутых в этом посте, но опять же, ничего. Я не включил ни один из шагов предварительной обработки изображения, которые я упомянул в своем коде, потому что он не изменил вывод по сравнению с тем, что у меня есть ниже.using (var rasterizer = new GhostscriptRasterizer())
using (var engine = new TesseractEngine(System.IO.Path.Combine(ResourceDir, "tessdata"), "eng", EngineMode.Default))
{
//coords for record area is based on the DPI of the rasterizer, so if you change the DPI, change the coords.
//600 dpi: Rect RecordArea = Rect.FromCoords(1135, 1100, 1900, 1300);
//1200 dpi: Rect RecordArea = Rect.FromCoords(2500, 2200, 4000, 2500);
Rect RecordArea = Rect.FromCoords(2500, 2200, 4000, 2500);
//only read these characters
engine.SetVariable("tessedit_char_whitelist", "01234567890/ ");
rasterizer.Open(file);
int currentPage = 1;
char[] charToTrim = {' ','\n'};
//loop thru all pages in pdf
while (currentPage !String.IsNullOrWhiteSpace(e)).ToList();
//parse record number
tempRecord.RecordID = int.Parse(parsedText.First());
//get first page of record in pdf
tempRecord.FirstPage = currentPage;
//parse page count
tempRecord.PageCount = int.Parse(parsedText.Last());
//get last page of record in pdf
tempRecord.LastPage = tempRecord.FirstPage + tempRecord.PageCount - 1;
//increment based on page count so we only read the first page of each record, not the other statement pages
currentPage += tempRecord.PageCount;
parsedRecords.Add(tempRecord);
}
}
}
< /code>
Я не могу предоставить PCL или PDF для справки, но вот скриншот области записи, которую я пытаюсь проанализировать:
Record Area < /p>
Любые предложения или улучшения, которые я могу добавить к любым шагам в моем процессе, приветствуются. Я чувствую, что упускаю очевидный шаг, но через неделю я не хочу попробовать.
>
Подробнее здесь: https://stackoverflow.com/questions/796 ... -tesseract
Невозможно получить шрифт OCR Type3 после предварительной обработки изображения, обучение Tesseract ⇐ C#
Место общения программистов C#
1750178245
Anonymous
Я пытаюсь снять определенную область страницы PDF в многостраничном документе (общее количество страниц варьируется от 600 до 10 000 страниц). Первоначально я получаю данные как файлы .pcl в партиях из 500 записей, которые затем я преобразую в PDF с использованием стороннего инструмента (попытка как с Winpcltopdf.exe, так и в пробной версии Lincpdf). В результате PDF используется шрифт Type3, который я не могу редактировать или преобразовать в что -то пригодное для использования. Это привело меня на путь использования Tesseract для ocr записей, так как визуально легко читать. I still had issues, so I tried to refine it by generating a .traineddata file following these instructions for the most similar font (Morocco-LT-Std-Regular.ttf), which didn't improve accuracy.
[b]High-Level Order of Operations:[/b]
[*]Convert original PCL files to PDF
parse pdf для конкретных данных и назначьте его для записи объекта < /li>
< /ul>
[b] Конкретная цель < /strong>: ocr Указанная область страницы PDF. Данные всегда появляются как record/pagecount .
Проблемы, встречающиеся [/b]: ocr, неверно считывает числа, несмотря на обучение телсеракта на визуально -идентичное шрифт, а также различные типы предварительной обработки изображения, как описано здесь и здесь. Обертки, используемые в коде. Исходные данные (к сожалению) всегда будут в формате .pcl. Я пишу это в C#, но если есть сценарии, которые я могу запустить, которые помогут оптимизировать PDF перед тем, как запустить его через свой код, я открыт для предложений. Я также перепутал DPI, но это не помогло с точностью. Я играл с Tesseract Enginemode и SegmationMode, а также без изменения вывода. Я пробовал некоторые из шагов, упомянутых в этом посте, но опять же, ничего. Я не включил ни один из шагов предварительной обработки изображения, которые я упомянул в своем коде, потому что он не изменил вывод по сравнению с тем, что у меня есть ниже.using (var rasterizer = new GhostscriptRasterizer())
using (var engine = new TesseractEngine(System.IO.Path.Combine(ResourceDir, "tessdata"), "eng", EngineMode.Default))
{
//coords for record area is based on the DPI of the rasterizer, so if you change the DPI, change the coords.
//600 dpi: Rect RecordArea = Rect.FromCoords(1135, 1100, 1900, 1300);
//1200 dpi: Rect RecordArea = Rect.FromCoords(2500, 2200, 4000, 2500);
Rect RecordArea = Rect.FromCoords(2500, 2200, 4000, 2500);
//only read these characters
engine.SetVariable("tessedit_char_whitelist", "01234567890/ ");
rasterizer.Open(file);
int currentPage = 1;
char[] charToTrim = {' ','\n'};
//loop thru all pages in pdf
while (currentPage !String.IsNullOrWhiteSpace(e)).ToList();
//parse record number
tempRecord.RecordID = int.Parse(parsedText.First());
//get first page of record in pdf
tempRecord.FirstPage = currentPage;
//parse page count
tempRecord.PageCount = int.Parse(parsedText.Last());
//get last page of record in pdf
tempRecord.LastPage = tempRecord.FirstPage + tempRecord.PageCount - 1;
//increment based on page count so we only read the first page of each record, not the other statement pages
currentPage += tempRecord.PageCount;
parsedRecords.Add(tempRecord);
}
}
}
< /code>
Я не могу предоставить PCL или PDF для справки, но вот скриншот области записи, которую я пытаюсь проанализировать:
Record Area < /p>
Любые предложения или улучшения, которые я могу добавить к любым шагам в моем процессе, приветствуются. Я чувствую, что упускаю очевидный шаг, но через неделю я не хочу попробовать.
>
Подробнее здесь: [url]https://stackoverflow.com/questions/79669270/unable-to-ocr-type3-font-after-image-preprocessing-training-tesseract[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия