Tesseract: Безплатно решение за OCR
Въведение
Tessereact се счита за едно от най-добрите налични OCR решения. От 2006 г. е спонсориран от Google, преди това е разработен от Hewlett Packard в C и C ++ между 1985 и 1998 г. Системата е способна да идентифицира дори почерка, може да се научи, увеличавайки своята точност и е сред най-развитите и пълни на пазара.
Той лесно побеждава търговски конкуренти като ABBY, ако търсите сериозно решение за OCR, Tesseract е най-точното, но не очаквайте масивни решения: той използва ядро за процес, което означава 8-ядрен процесор (хипертрейдинг) приети) ще могат да обработват 8 или 16 изображения едновременно.
Когато използвах Tesseract, успяхме да качим хиляди потенциални клиенти, качвайки ръкописно съдържание, изображения с текст и т.н. Използвахме 48 основни сървъра, с DatabaseByDesign и след това с AWS, никога не сме имали проблем с ресурсите.
Имахме програма за качване, която различава текстови файлове като файлове на Microsoft Office или Open Office и изображения или сканирани документи. Качващият определи каквото и OCR или PHP скриптовете да обработят поръчка в областта на разпознаването на текст.
Tesseact е чудесно решение, но преди да помислите за него, трябва да знаете, последните версии на Tesseract донесоха големи подобрения, някои от тях означават упорита работа. Докато обучението може да продължи с часове или дни, последните версии на Tesserct могат да бъдат дни, седмици или дори месеци, ако търсите многоезично OCR решение.
Инсталиране на Tesseract 4 на Debian / Ubuntu:
apt-get инсталирайте tesseract-ocrАко използвате различна дистрибуция на Linux, ще трябва да копирате последната версия на хранилището на github и да копирате .обучен файл с данни в „tessdata“ (/ usr / share / tesseract-ocr / tessdata или / usr / share / tessdata).
По подразбиране Tesseract ще инсталира английския езиков пакет, за да инсталира допълнителни езици
apt-get инсталирайте tesseract-ocr-LANGнапример, за да добавите иврит:
apt-get инсталирайте tesseract-ocr-hebМожете да включите всички езици, като стартирате:
apt-get инсталирайте tesseract-ocr-all
За да работи Tesseract правилно, ще трябва да използваме командата „конвертиране“ (конвертиране между формати на изображения, както и преоразмеряване на изображение, размазване, изрязване, депел, дитер, рисуване, обръщане, присъединяване, повторна проба и много повече), предоставено от Imagemagick:
Нека инсталираме imagemagick с apt-get:
apt-get инсталиране imagemagickСега нека тестваме Tesseract, намерим изображение, съдържащо текст, и изпълним:
tesseract [име на изображение] [име на изходен файл]Ако е инсталиран правилно, Tesseract ще извлече текста от изображението.
Когато работех с Tesseract, всичко, от което се нуждаехме, беше да преброим документи. Подобно на всяка друга програма, която можете и трябва да я обучавате, в Word можем да дефинираме някои символи, които могат да се броят или не, ако броите или не числа и т.н. същото е и с Tesseract.
Също така можем да обучим неговата чувствителност към конкретни изображения.
Оптимизация на Tesseract:
Оптимизация на размера: Според официални източници оптималният размер на пикселите за изображение, което да бъде обработено успешно от Tesseract, е 300 DPI. Ще трябва да обработим всяко изображение, използвайки параметъра -r, за да приложим този DPI. Увеличаването на DPI също ще увеличи времето за обработка.
Въртене на страницата: Ако при сканиране страницата не е завъртяна правилно и остане на 180 ° или 45 °, точността на Tesseract ще намалее, можете да използвате този Python скрипт за автоматично откриване и отстраняване на проблеми с ротацията.
Премахване на граници: Според официалния човек на Tesseract, границите могат да бъдат грешно избрани като символи, особено тъмните граници и там, където има градация на разнообразие. Премахването на граници може да е добра стъпка за постигане на максимална точност с Tesseract.
Премахване на шума: Според Tesseracts, шумът „е произволно изменение на яркостта или цвета в изображението“. Можем да го премахнем в бинаризация стъпка, което означава поляризиране на цветовете.
Обучителен Тесеракт:
Докато повечето уроци обхващат само инсталацията на Tesseract, аз ще обобщя как да обучавате вашата OCR система, тук можем да намерим урок за всички версии. В тази статия ще обобщя как да тренирам Tesseract 4, който включва нов „Базиран на невронна мрежа механизъм за разпознаване, който осигурява значително по-висока точност (на изображения на документи) от предишните версии, в замяна на значително увеличение на необходимата изчислителна мощност. На сложни езици обаче всъщност може да е по-бързо от базовия Tesseract.”
Преди да продължим ще трябва да инсталираме допълнителни библиотеки:
sudo apt-get инсталиране libicu-devsudo apt-get инсталиране libpango1.0-разработчик
sudo apt-get инсталиране libcairo2-dev
И ние ще инсталираме инструментите за обучение, като стартираме в директорията Tesseract:
направинаправете обучение
sudo направи обучение-инсталиране
Според официалния wiki на Tesseract, имаме 3 актуални опции за обучение на нашата OCR система:
- "Фина настройка. Започвайки със съществуващ обучен език, тренирайте върху конкретните си допълнителни данни. Това може да работи при проблеми, близки до съществуващите данни за обучение, но различни по някакъв фин начин, като особено необичаен шрифт. Може да работи дори с малко количество данни за обучение.
- Отрежете горния слой (или някакъв произволен брой слоеве) от мрежата и преквалифицирайте нов горен слой, като използвате новите данни. Ако фината настройка не работи, най-вероятно това е следващият най-добър вариант. Отрязването на най-горния слой все още може да работи за обучение на напълно нов език или скрипт, ако започнете с най-подобния на вид скрипт.
- Възстановете се от нулата. Това е обезсърчаваща задача, освен ако не разполагате с много представителна и достатъчно голяма тренировъчна програма за вашия проблем. Ако не, вероятно ще се окажете с прекалено оборудвана мрежа, която наистина се справя добре с данните за обучението, но не и с действителните данни.
Въпреки че горните опции може да звучат различно, стъпките на обучение всъщност са почти идентични, освен командния ред, така че е сравнително лесно да се изпробват всички начини, като се има предвид времето или хардуерът, за да се изпълняват паралелно.”
В този урок ще стартираме само tesstrain.sh скрипт, който ще извика необходимите програми за обучение на определен език.
Първо, нека клонираме всички файлове в нашия / usr / share / tesseract-ocr:
git clone https: // github.com / tesseract-ocr / tesseract
Отидете на / usr / share / tesseract-ocr / tesseract / training (директорията за инсталиране по подразбиране на Tesseract) и стартирайте:
$ ./ tesstrain.sh --lang heb --langdata_dir / usr / share / tesseract-ocr / langdata --tessdata_dir / usr / share / tesseract-ocr / tessdata
Променете „heb“ за езика, който искате да обучавате, и също така редактирайте пътя към вашите данни.
В директорията / usr / share / tesseract-ocr / tesseract / обучение ще намерите специфичен за езика на файла.sh полезно да се добавят правила за конкретни езици.
Отстраняване на неизправности
Tesseract е за мен най-доброто решение за OCR, но наскоро направи огромни промени от предишните версии и много потребители се оплакват от промени или неща, които вече не работят, не бих се притеснявал, тъй като промените изглежда дават страхотни резултати. Общността на Tesseract е много активна, в случай че откриете проблеми с работата на tesseract, станете част от общността на Tesseract тук.