Распознаватель капчи (проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Темы вводных занятий)
(Что это за проект?)
Строка 10: Строка 10:
  
 
=== Что это за проект? ===
 
=== Что это за проект? ===
В итоге должна получиться консольная утилита, которая берет на вход картинку и печатает текст, который изображен на капче. Капча здесь берется из-за того, что она, обычно, имеет одинаковый размер и буквы располагаются приблизительно одинаково, а пишутся одним или несколькими заранее определенными шрифтами. Будет предоставлен набор данных, который включает сотню капч, где используются символы A-Za-z0-9*!@ написанные на однотонном фоне одним цветом без искажений, также для генерации картинок можно пользоваться любым генератором на выбор (например подойдет django-simple-captcha, тут достаточно простые картинки на выходе).
+
В итоге должна получиться консольная утилита, которая берет на вход картинку и печатает текст, который изображен на капче. Капча здесь берется из-за того, что она, обычно, имеет одинаковый размер и буквы располагаются приблизительно одинаково, а пишутся одним или несколькими заранее определенными шрифтами. Будет предоставлен набор данных, который включает сотню капч, где используются символы A-Za-z0-9*!@ написанные на однотонном фоне одним цветом без искажений, также для генерации картинок можно пользоваться любым генератором на выбор (например подойдет django-simple-captcha, тут достаточно простые картинки на выходе). Алгоритм планируется довольно простой, в двух словах - сравнение символов из размеченного множества (проще говоря - символов решенных капч) с символами решаемой в данный момент капчи.
  
 
=== Чему вы научитесь? ===
 
=== Чему вы научитесь? ===

Версия 21:43, 11 января 2015

Ментор Красавина Алина
Учебный семестр Весна 2015
Учебный курс 1-й курс
Проект можно развивать на летней практике



Что это за проект?

В итоге должна получиться консольная утилита, которая берет на вход картинку и печатает текст, который изображен на капче. Капча здесь берется из-за того, что она, обычно, имеет одинаковый размер и буквы располагаются приблизительно одинаково, а пишутся одним или несколькими заранее определенными шрифтами. Будет предоставлен набор данных, который включает сотню капч, где используются символы A-Za-z0-9*!@ написанные на однотонном фоне одним цветом без искажений, также для генерации картинок можно пользоваться любым генератором на выбор (например подойдет django-simple-captcha, тут достаточно простые картинки на выходе). Алгоритм планируется довольно простой, в двух словах - сравнение символов из размеченного множества (проще говоря - символов решенных капч) с символами решаемой в данный момент капчи.

Чему вы научитесь?

  • Основам работы с изображениями на примере капчи
  • Простейшему машинному обучению

Какие начальные требования?

  • Желание научиться распознавать объекты на изображениях (в частности надписи)
  • Знание Python (если есть желание, другой популярный язык)

Какие будут использоваться технологии?

Python, библиотека PIL (или любой другой популярный язык)

Темы вводных занятий

  • Работа с изображениями в PIL. Простейшее разделение символов, векторная модель символа.
  • Сбор данных, тестовый и обучающий наборы данных. Обучение алгоритма.

Направления развития

  • Распознавать надписи с картинок (например, с фотографий), где запечатлена область с текстом без посторонних предметов
  • Распознавать капчи с различными перемещениями букв, когда буквы повернуты на какой-то угол или находятся на разной высоте
  • Определение пространственной деформации изображения (применяется для искажения букв)
  • Определение трехмерных надписей (выпуклая поверхность)

Критерии оценки

4-5: Распознавание 80% символов с картинки, где написаны символы одним шрифтом, без искажений с разным цветом фона и букв.

6-7: Распознавание 80% символов с картинки, где символы написаны одним шрифтом с поворотом, на разной высоте, с разным цветом фона и букв.

8-10: + одно из направлений развития отличное от использованного для оценки "6-7".