Цель разработки

Создать удобное приложение для преподавателей, автоматизирующее проверку бланков с тестами. Приложение должно распознавать сканированное изображение (фото, сделанное встроенной камерой или импортированное), извлекать из него номера ответов, буквенные варианты, а затем сравнивать с загруженными в систему правильными ответами.

Функциональные требования

  • Загрузка ключа: Преподаватель вводит правильные ответы в формате: №1-А, №2-А,Б, №3-В, №4-А/Г. Где запятая обозначает логическое 'И' (должны быть указаны все варианты), косая черта 'ИЛИ' (достаточно любого из вариантов).
  • Захват изображения: Приоритетный способ - фото прямо из приложения (с помощью камеры). Допустим импорт готовых снимков из галереи.
  • Распознавание: Считывание пунктов теста (номера вопросов) и буквенных ответов (русские буквы). Автоматический разбор семантики разделителей (запятая и слэш).
  • Формирование отчета: После проверки вывод:
    • Всего отсканировано ответов - X
    • Правильных - Y
    • Неправильных - Z
    • Процент правильных - M%
  • Визуальный анализ прямо на фото: На изображении должен быть наложен результат: правильные ответы обводятся зеленой рамкой, неправильные - красной. Это наиболее наглядно отображает ошибки.
  • Автоматизация учета вариантов и студентов: Приложение должно уметь находить на бланке подпись студента (ФИО) или номер варианта задания. Поддерживается несколько различных вариантов (если в группе разные листы).

Условия обработки ответов

  • Вариант через запятую ( , ): Строка из нескольких букв - учащийся должен указать каждую из них. При проверке считаются все элементы как один правильный блок.
  • Вариант через слэш ( / ): Один из предложенных символов считается верным. Если учащийся указал любой из этих вариантов - ответ помечается как правильный.

Рекомендации по реализации

При проведении распознавания необходимо учитывать низкое качество фото, рукописные символы (разные почерки). Желательно использовать библиотеки компьютерного зрения (например, OpenCV), встроенные средства OCR для Android. Код на Java или Kotlin. Интерфейс должен быть на русском языке, эргономичный для мобильного экрана.