Skip to content

azarenkovgd/consents-recognition

Repository files navigation

Распознавание корректно заполненных согласий на обработку персональных данных

License: MIT

Описание проекта

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

Этапы работы утилиты

  1. Попытка развернуть присланную форму так, чтобы она совпадала с шаблонной формой. Развернуть - сделать так, чтобы структура присланной формы совпадала со структурой шаблона.
  2. Определение того, на сколько совпадают присланная пользователем форма и исходная.
  3. Анализ каждого поля в присланной форме на предмет того, является ли оно заполненным.
  4. Распределение на пять категорий, учитывая полученные на предыдущих этапах данные

Пример работы утилиты - по ссылке. Слева - присланное изображение, справа - развернутое, с размеченными полями. Автоматически такое изображение не сохраняется, но эту функцию можно включить, выставив debug_mode параметру значение 1.

Пять категорий, о которых идет речь выше

  1. Скорее всего некорректное согласие. Сразу отправляется реакция пользователю.
  2. На проверку модератору — нельзя с уверенностью определить, к какой группе относится согласие.
  3. Скорее всего корректное согласие.
  4. Изображение уже встречалось в базе (по вычисленному хешу это определяется)
  5. Работа утилиты была завершена с ошибкой (дополнительно выводит код ошибки)

Структура кода

  1. utils.py - отвечает за короткие функции помощники
  2. image_class.py - хранится логика работы с присланным пользователем согласием
  3. template_class.py - логика работы с template образом - пустой формой
  4. manager_class.py - интерфейс для управления image и template классами
  5. recognition.py - функции для работы с уже развернутым изображением, оценка того, на сколько оно корректно заполнено.
  6. alignment.py - разворачивание изображения, для приведения его к стандартному виду
  7. image_preprocessing - функции для загрузки и обработки изображения
  8. example.py - приведен пример работы утилиты.
  9. save_fields.py - для добавления новой формы в систему нужно найти на форме поля, куда пользователь вводит информацию. В этом файле содержатся функции для того, чтобы из пустой формы с выделенными рамками полями (например в paint) получить словарь с координатами полей, формат которого подходит для самой утилиты.

В файле task_solution_description.md - детальное описание задачи и разбор решения. В файде extract_frames_info.md - инструкция к работе созданной нами утилиты по извлечению координат полей из шаблона формы.

В папке template_data находятся шаблоны и связанные с ними данные

  • sogl{номер формы}_image.jpg - шаблон согласия.
  • sogl{номер формы}_fields.json - файл с полями для анализа форма [["Название поля", (y2, y1), (x2, x1)], ...]
  • sogl{номер формы}_stop_sha256.json - самые популярные хэши присланных согласий - для мгновенного их отбрасывания.

Используемые библиотеки

  • opencv
  • numpy
  • poppler
  • pdf2image
  • imutils

Команда

Азаренков Георгий https://github.com/azarenkovgd

Владислав Ковалев https://github.com/VladKovalevv

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published