GitHub - openfoodfactsoff-diet-table-extractor

Це сховище - накопичення всієї роботи, виконаної протягом Google Summer of Code 2018.

  • Студент: Сагар Панчал
  • Github: sgrpanchal31
  • Організація: Відкриті факти про їжу
  • Проект: Таблиця OCR щодо харчових фактів

Конвеєр складається з трьох основних частин, а саме виявлення таблиці, виявлення тексту та OCR з подальшою обробкою.

Для виявлення таблиць на зображенні ми використовуємо модель виявлення об’єкта Single Shot Detector (SSD). Модель навчається на API виявлення об’єктів Tensorflow. Наданий блокнот Jupyter показує, як ми використовуємо попередньо навчений графік для виявлення таблиць на зображеннях товару. Перед запуском блокнота встановіть модель виявлення об’єктів із сховища Github Tensorflow.

openfoodfactsoff-diet-table-extractor

Виявлення та вилучення тексту

Виявлення тексту здійснюється за допомогою text-detection-ctpn, який використовує fast-rcnn для вилучення текстових областей на зображенні. У майбутньому ми плануємо оновити його до більш швидкої та точної моделі розпізнавання тексту.

OCR та подальша обробка

Для розпізнавання тексту ми використовуємо Tesseract OCR. Кожне текстове поле, виявлене на етапі виявлення тексту, буде передано через OCR і повернуто необроблений рядок, який потім буде пройдений через багато етапів обробки, які очищають рядок (за допомогою регулярних виразів) і виправляють будь-які орфографічні помилки в рядку ( алгоритм виправлення орфографії орфографії).

Вихідні дані для наведеного зображення наведені нижче:

Код сумісний з Python 3.0+. Якщо ви виявите будь-яку іншу залежність, необхідну під час виконання, підніміть проблему та повідомте там.

Як перевірити свій образ

  • Завантажте заморожену модель для ctpn звідси.
  • Збережіть модель у сховищі ./nutrition_extractor/data.
  • Створіть каталог з іменем test_images і помістіть зображення в цю папку.
  • запустити python detection.py -i [IMAGE-PATH] з внутрішньої папки diet_extractor.
  • Розробіть модель виявлення таблиці, щоб витягти зацікавлену область (таблиця фактів поживності) із зображень.
  • Обріжте RoI із зображень і застосуйте конвеєр виявлення тексту до регіону.
  • Передайте кожну крапку тексту через Tesseract OCR, щоб витягти текст.
  • Розробіть метод постобработки для очищення тексту та вилучення харчової етикетки та її цінності.
  • Створіть алгоритм просторового відображення, щоб зіставити крапки тексту відповідно до їх розташування на зображенні. (Виконано, але точність не відповідає стандартам).

Оскільки GSoC 2018 є початком цього проекту, ми тільки починаємо. Є багато речей, які ми маємо зробити

  • Вдосконалення алгоритму просторового відображення.
  • Навчання та використання швидшої та точнішої моделі розпізнавання тексту, ніж модель швидкого rcnn, що використовується зараз.
  • Створення більшого набору таблиць поживних речовин та навчання, яке проводиться на недавній моделі виявлення об'єктів, що кровоточать, для підвищення точності.
  • Розробка кращого алгоритму попередньої обробки зображень для виявлення жирного тексту.
  • Впровадження методу об'єднання двох моделей в одну, оскільки однакові розрахунки виконуються двічі в початкових шарах двох моделей.