Более быстрые заметки с Python и глубоким обучением

Расшифровка слайдов pdf с помощью распознавания текста на основе глубокого обучения

Конвейер для заметок

Традиционные лекции обычно сопровождаются набором слайдов в формате pdf. Процесс заметок о таких лекциях традиционно включает в себя копирование или расшифровку большого количества содержимого из PDF-файла.

Недавно я экспериментировал с попыткой автоматизировать этот процесс, используя OCR (распознавание символов объекта) для автоматической расшифровки слайдов pdf, чтобы напрямую управлять их содержимым в файле разметки и избежать необходимости вручную копировать и вставлять содержимое pdf.

В этой статье я покажу вам, как автоматизировать процесс преобразования слайдов PDF в текст с помощью распознавания текста на основе глубокого обучения.

Почему бы не использовать традиционный инструмент PDF в текст?

Причина, по которой я решил не использовать традиционные инструменты PDF для преобразования текста, заключается в том, что я обнаружил, что они, как правило, создают больше проблем, чем решают их. Я пробовал использовать традиционные пакеты Python, но они вызывают такие проблемы, как необходимость синтаксического анализа окончательного вывода со сложными шаблонами регулярных выражений, поэтому я решил поиграть с обнаружением объектов и OCR, чтобы посмотреть, смогу ли я добиться большего.

Шаги

Следующие шаги будут следующими:

  1. Преобразование PDF в изображения
  2. Обнаружение и распознавание текста на изображениях
  3. Примеры результатов демонстрации

В данном случае я в основном адаптировал код из этого репозитория, который использует pytorch-адаптацию модели CTPN вместе с кодами из pytorch_ctpn для обнаружения текста и модели CRNN с кодами из crnn.pytorch для распознавания текста. .

Теперь давайте пройдемся по каждому шагу.

1. Преобразование PDF в изображения

Я буду использовать слайды в формате pdf из введения Дэвида Сильвера в« Обучение с подкреплением . Начнем с написания кода для преобразования каждого слайда в формат png с помощью пакета pdf2image.

Теперь, когда у меня есть все изображения,

давайте запустим обнаружение и распознавание текста на каждом слайде.

2. Обнаружение и распознавание текста на изображениях.

Для этого воспользуемся детектором текста из репозитория ocr.pytorch. Следуйте инструкциям, чтобы загрузить модели и сохранить их в папке checkpoints.

Здесь мы устанавливаем папки ввода и вывода, затем запускаем цикл по всем входным изображениям (преобразованным слайдам в формате pdf) и затем пропускаем через функцию single_pic_proc(), которая запускает модели обнаружения и распознавания, расположенные в модуле ocr. Затем мы сохраняем вывод в папку вывода.

Обнаружение наследуется от модели CTPN Pytorch, а модель распознавания наследуется от модели CRNN Pytorch, обе присутствующие в модуле ocr.

4. Продемонстрируйте примеры результатов

Пример вывода обнаружения:

Вывод распознавания текста:

- AboutRL
Characteristics of Reinforcement Learning
What makes reinforcement learningdifferent from other machine
learning paradigms?
There isnosupervisor,only areward signal
Feedback is delavyed,not instantaneous
Time really matters(sequential,non ii.d data)
Agent sactions affectthe subseauent datait receives

Больше никаких копий и вставок

Что мне нравится в этом подходе, так это то, что вы можете получить действительно мощный инструмент для расшифровки всех видов документов, от обнаружения и распознавания рукописных заметок до обнаружения и распознавания случайного текста на ваших фотографиях.

Лучше иметь собственный инструмент распознавания текста, который работает с контентом, с которым вы обычно взаимодействуете, чем полагаться на внешнее программное обеспечение для каждого документа, который вы хотите расшифровать.

Для меня это был интересный шанс изучить с помощью OCR, а также настроить конвейер для быстрой расшифровки лекции, которая поставляется со слайдами в формате pdf.

Вы можете ознакомиться с исходным кодом здесь.

Если вам понравился этот пост, свяжитесь со мной в Twitter, LinkedIn и подпишитесь на меня в Medium. Спасибо и увидимся в следующий раз! :)

использованная литература