Skip to content

Project for recognising business cards with OCR and BERT model

Notifications You must be signed in to change notification settings

Illania/ML_business_card_recognition

Repository files navigation

Проект распознавания визитных карточек с использованием библиотек OpenCV, Tesseract и предобученной GOOGLE Bert модели с сайта HuggingFace.

Веб-сайт используемой модели: https://huggingface.co/dslim/bert-large-NER

Структура проекта

ML_business_card_recognition/
├── init.py                            Файл инициализации модуля
├── app.py                             Главный файл приложения
├── bert_model.py                         Файл загрузки BERT модели
├── card_recognizer.py                      Распознаватель контура
├── contact_recognizer.py                     Распознаватель контактного лица
├── contact.py                          Класс описания сущности контактного лица
├── data/                             Папка с дополнительными данными
 └── jobs                            Текстовый файл с перечнем профессий
├── README.md                         Файл описания проекта
├── requirements.txt                        Файл,содержащий список необходимых библиотек
├── text_recognizer                        Распознаватель текста на базе Tesseract OCR
├── test_data/                           Папка с тестовыми изображениями визитных карточек
 └── card.jpg                          Тестовый файл изображения визитной карточки
└── token_recognizers/                      Папка, содержащая распознаватели отдельных сущностей
 ├── init.py                            Файл инициализации модуля
 ├── email_recognizer.py                     Распознаватель email адресов
 ├── job_recognizer.py                      Распознаватель должности
 ├── loc_recognizer.py                      Распознаватель дреса (использует BERT)
 ├── name_recognizer.py                     Распознаватель имени и фамилии (использует BERT)
 ├── org_recognizer.py                      Распознаватель организации (использует BERT)
 ├── phone_recognizer.py                    Распознаватель телефонных номеров
 └── website_recognizer.py                    Распознаватель веб-сайтов

Описание программы, установка и запуск

  1. Программа представляет собой консольное приложение, запускаемое из командной строки и принимающее на вход один аргумент командной строки с ключом --path (-p), задающий путь к файлу с изображением визитной карточки. Внимание, программа распознает визитные карточки только на английском языке!

  2. Изображение должно иметь формат .jpg или .png и иметь достаточно высокое разрешение, изображение низкого качетсва будет распознано неверно.

  3. Перед запуском приложения необходимо установить движок оптического распознавания символов Tesseract OCR, используя следующие команды (все нижеприведенные команды представлены для MacOS и Linux, для Windows они могут отличаться):

Для Linux:

apt install tesseract-ocr
apt install libtesseract-dev

Для MacOS:

brew install tesseract

После установки движка Tesseract возможно придется также поменять путь к движку Tesseract, задаваемому в файле text_recognizer.py:

Для Linux:

pytesseract.pytesseract.tesseract_cmd = ( r'/usr/bin/tesseract' )

Для MacOS:

pytesseract.pytesseract.tesseract_cmd = ( r'/usr/local/bin/tesseract' )

На вашей системе путь может отличаться. Чтобы узнать корректный путь к движку на вашей системе, воспользуйтесь командой which в терминале:

which tesseract
  1. После установки Tesseract неоходимо установить дополнительные библиотеки Python командой:
pip install -r requirements.txt
  1. Для тестирования приложения можно запустить приложение со следующим параметром ключа -p:
./app.py  -p './test_data/card.jpg/'
  1. Первичная загрузка модели BERT может занять значительное время, так как размер скачиваемых файлов занимает около 1.33 Гб, так что запаситесь терпением и чашечкой кофе! ☕️ 🍪 ☺️

About

Project for recognising business cards with OCR and BERT model

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages