Стажировка по проекту
Компания: ООО «Прогматик»
Разработка модели для распознавания на фото бюллетеней номера, результата голосования и размещение в базе данных
Суть проекта
Задача
Для чего
Вводные данные
Выходные данные
Требуется разработать работающую на сервере систему обработки и распознавания бюллетеней голосования в сфере ЖКХ
JSON файлы распознанных страниц бюллетеня
Датасет из изображений зон проголосованных бюллетеней, шаблоны исходных бюллетеней в PDF
Разрабатываемая система предназначена для автоматизации процесса обработки бюллетеней голосования по вопросам ЖКХ собственников недвижимости. Система предполагает загрузку сканов/фотографий проголосованных бюллетеней от жильцов дома на сервер, где система выполняет их обработку и распознавание результатов голосования по каждому вопросу повестки в бюллетене с последующим сохранением результатов. Обработка бюллетеней предполагает выравнивание скана/фото бюллетеня и при необходимости разворот, OCR нужных текстовых областей в бюллетеней, классификацию нейросетью изображений областей голосования в документе, распознавание, подписан либо нет бюллетень проголосовавшим и сохранение результатов голосования распознанной страницы бюллетеня в JSON файл
Участники
1 команды проекта
  • Резер Артём
    Тимлид проекта
    Артем — руководитель проекта, участие в разработке, координация работы команды, постановка задач, контроль качество и сроков их выполнения
  • Кобызев Юрий
    Помощник тимлида
    Юрий помогал руководителю команды организовывать процесс разработки проекта

    • Обучение нейросетей с архитектурами ResNet и ResNext для распознавания изображений областей голосования;
    • Исследование и тестирование результатов работы различных систем по автоматическому распознаванию текста (paddleOCR, docTR);
    • Разработка пилотного веб-приложения с применением библиотеки gradio, наглядно демонстрирующего все этапы обработки сканов бюллетений разрабатываемого решения, а именно, выравнивание изображения бюллетеня, выделение областей распознавания текста и зон голосования, выполнение OCR текстовых областей, распознавание областей голосования нейросетью, сохранение результатов распознавания страницы бюллетеня в json файл
  • Лысаков Юрий
    Администратор Баз Данных
    • Разработка серверного приложения для выполнения всего комплекса обработки и распознавания бюллетеней в соответствии с ТЗ заказчика. Разработка всего комплекса необходимых модулей приложения, классовой иерархической структуры проекта, хранящей все данные и параметры в результате обработки документов, а так же вспомогательных функций серверного приложения. Разработанные для приложения классы включают в себя классы элементов обрабатываемых страниц, классы страниц на различных стадиях обработки, класс бюллетения, включающего несколько страниц, класс голосования;
    • Реализация парсинга шаблонов исходных бюллетеней в PDF с целью определения координат ббоксов требуемых для обработки областей документа (OCR и классификация нейросетью);
    • Разработка и реализация детекции реперных объектов в документе с нахождением их центра, отладка и тестирование работы данного скрипта;
    • Разработка и реализация алгоритма выравнивания и обрезки документа по реперным точкам;
    • Реализация алгоритма вырезания трбеуемых областей из скана документа по найденным ббоксам для выполнения дальнейшей операции OCR текстовых областей и распознавания нейросетью классификации изображений областей голосования в документе;
    • Реализация сохранения результатов обработки и распознавания страниц бюллетеней в JSON файлы;
    • Реализация подсчета результатов голосования;
    • Реализация дополнительного функционала вырезания и сохранения со сканов проголосовавших бюллетеней областей чекбоксов и областей подписей с последующим сохранением их в файлы изображений для последующего обучения нейросети. Реализация на базе OpenCV алгоритма предварительной сортировки отмеченных и неотмеченных изображений чекбоксов из областей голосования по папкам.
  • Зайцев Валерий
    Группа НИКОС, Заместитель директора, Руководитель проекта Руниверс
    • Разработка общего подхода и алгоритма по реализации проекта, анализ исходных данных и результатов проекта
    • Разработка python-приложения для автоматизации сбора данных для датасета в виде запросов в поисковую систему, результирующих url-ссылок с метками коммерческий либо информационный запрос в единую таблицу формата Excel
    • Разработка скрипта для парсинга страниц, загружаемых из собранных url с использованием библиотеки Selenium
    • Разработка подхода к формированию образцов в датасете для подачи в нейросеть с извлечением текста из метатегов html0страницы, преобразования и извлечения текста из url-адреса страницы с последующей конкатенацией с основным текстом страницы
    • Выполнение парсинга разработанным скриптом с формированием датасета
    • Проверка и корректировка данных в датасете, статистический и частотный анализ текстовых данных в датасете, написание скриптов для поиска ошибок в датасете, корректировка ошибок в датасете, прочие необходимые виды предобработки и корректировки данных в датасете, окончательное формирование датасета
    • Обучение модели BertForSequenceClassification на весах DeepPavlov/rubert-base-cased-sentence на подготовленном датасете
    • Обучение алтернативных моделей BoW+MultinomialNB, TF-IDF+RandomForest на вариациях подготовленного датасета
    • Анализ точности моделей в зависимости от параметров формирования датасета и гиперпараметров моделей
    • Разработка рекомендаций по подходу к сбору, анализу, обработке и классификации url-страниц, рекомендации по продолжению и развитию работ по проекту
  • Драгинда Юлия
    Научный сотрудник (CIRMMT, Монреаль, Канада)
    • Разработка скрипта, далее примененного в разработанном в проекте приложении, основанного на алгоритме Хафа для выравнивания изображений перед подачей в нейросеть с целью улучшения точности распознавания. Предложение и испытание алтернативного алгоритма Фурье для этих же целей;
    • Разработка пайплайна по распознаванию номеров бюллетеней на основе tesseract с использованием предварительной очистки и обработки текстовых областей;
    • Исследование и тестирование результатов работы различных систем по автоматическому распознаванию текста (docTR, paddleOCR, easyOCR, tesseract и др.)
  • Григорук Александр
    инженеро-программист в группе разработки ПО АСУ в филиале РФЯЦ-ВНИИЭФ НИИИС группы компаний Росатома.
    • Разработка и тестирование алгоритма парсинга координат таблиц в PDF файлах исходных шаблонов бюллетеней для определения координат ббоксов текстовых областей и областей голосования для целей последующих операций OCR текста и классификации областей голосования нейросетью соответственно (с применением приложения poppler, библиотек cv2, pdfplumber, pdf2image);
    • Обучение моделей классификации изображений областей голосования;
    • Разработка модуля с классами генерации синтетического датасета областей голосования в виде изображений в форме полосок, генерация синтетического датасета;
    • Применение библиотеки Streamlit для демонстрации разработок в веб-интерфейсе
  • Митрошин Вадим
    Аналитик . работал на различных проектах Газпром нефти
    • Разработка и тестирование алгоритмов выравнивания документа на базе алгоритмов библиотеки cv2;
    • Исследование и тестирование результатов работы различных систем по автоматическому распознаванию текста (easyOCR, docTR, tesseract);
    • Разработка и тестирование скриптов конвертации документов из форматов PDF в JPG и наоборот с применением библиотек PyMuPDF, fpdf. Разработка скрипта проверки форматов графических файлов
  • Ким Сергей
    Руководитель работ по экспресс-аналитике в здравоохранении, Казахстан, Астана
    • Анализ исходных данных, подготовка аугментированных образцов минорных классов испорченных бюллетеней для формирования сбалансированного датасета
Участники
2 команды проекта
  • Осокин Юрий
    Тимлид проекта
    Юрий — руководитель проекта, участие в разработке, координация работы команды, постановка задач, контроль качество и сроков их выполнения
  • Некрасова Татьяна
    Помощник тимлида
    Татьяна помогала руководителю команды организовывать процесс разработки проекта

    • Сбор, очистка и предварительная обработка данных для подготовки их к обучению нейронной сети;
    • Программирование на Python;
    • Создание и обучение нейронных сетей;
    • Построение и успешное обучение нейронной сети для классификации результатов голосования с высокой точностью (94%)
  • Яблонских Геннадий
    Более 30 лет работал в IT сфере в крупной нефтегазодобывающей компании.
    • Разработка и оптимизация скриптов для обработки изображений;
    • Тестирование и настройка моделей нейросетей с высокой точностью распознавания;
    • Участие в разработке автоматизированного метода для извлечения номеров вопросов бюллетеней
  • Бакшеев Андрей
    Автоматизация работы клиентской поддержки
    • Разработка скрипта по выравниванию изображений с использованием OpenCV, что является важным шагом для автоматизации обработки данных в проекте;
    • Изучение и эксперименты с моделями нейронных сетей для нарезки блоков голосования и файлов по полоскам, что позволяет искать оптимальные решения для поставленных задач;
    • Усердная работа над пониманием постановки задачи и активное изучение материалов, что демонстрирует стремление к развитию и решению поставленных задач
  • Никонов Денис
    Старший инженер проекта в сфере IT
    • Регистрация и активное использование Trello и GitHub для эффективного управления проектом и кодом;
    • Успешное изучение тем, несмотря на задержку с началом курса, демонстрируя свою самостоятельность и усердие в освоении материала;
    • Самостоятельная доработка скрипта проекта совместно с коллегой, что свидетельствует о его способности к сотрудничеству и адаптивности в работе;
    • Значительное улучшение точности модели нейросети до 0.97 путем наращивания датасета, что свидетельствует о его навыках в обработке данных и оптимизации моделей машинного обучения
  • Скворцов Евгений
    инженер по безопасности на АЭС
    Написание скриптов для предобработки изображений, извлечения данных и обработки результатов голосования;
    Создание и обучение модели нейросети для анализа данных;
    Реализация автоматизации процессов, связанных с извлечением и обработкой информации из бюллетеней;
    Повышение качества обработки данных за счёт добавления функций распознавания колонтитулов и корректировки ориентации страниц
  • Казеева Наталья
    • Изучение и применение модели ResNet18;
    • Написание скриптов для обработки изображений, включая скрипты для преобразования PDF в изображения, определения номеров страниц и номера бланков, а также скрипт для распознавания номера на бланке;
Демонстрация проекта команды
Благодарность университетУ