Ты кто такой? Бот? Давай, до свидания!

от автора

Этим постом я хочу немного покритиковать существующие каптчи и представить для критики свой вариант.

Самое узкое место любой капчи это одинаковое написание различных символов:

  • l=I (L строчная и i прописная)
  • О=0=O (строчные и прописные буквы о в обоих языках и цифра ноль)
  • Любые похожие буквы кириллицы и латиницы, а таких много (ABCEHKMOPTXЗУ)
  • Дополнительные проблемы доставляются помехами самой капчи

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

К недостаткам любой каптчи нужно отнести время на ее распознавание. Чем больше времени – тем больше внимания забирается у пользователя – тем сильнее мы его отвлекаем. В идеале каптча не должна забирать пользовательского внимания вообще, но это (пока) недостижимо.

Давайте рассмотрим существующие капчи.

Гугл-reCAPTCHA.

image
image
image
image

Самая популярная каптча от софтверного гиганта и одна из немногих, которая предоставляет слова.

Недостатки:

  • Большой процент нераспознаваемого текста
  • Одно из двух слов не контролируется системой, т.к. попадаются не алфавитно-цифровые символы

Ее плюс в том, что она общедоступна, бесплатна и не требует установки на свой сервер.

Яндекс

image
image
image

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

Mail.ru

image
image
image

На мой взгляд самая некрасивая реализация. Присутствуют как цифры, так и буквы, а это значит, что вы будете путать ноль с буквой О. В данной каптче используются только те буквы, написание которых одинаково для кириллицы и латиницы, и совершенно не важно, учитывается это для проверки ввода или нет – пользователь все равно будет над этим думать.

Вконтакте

image
image
image

Что тут скажешь, дальтоники видимо больше всего любят эту каптчу. 0 и O не используются, но от этого не легче.

Критикуя — предлагай!

image
image
image

Я предлагаю n+1-ый вариант капчи. Он не идеален, но как мне кажется, лишен вышеприведенных недостатков.
Его принцип основан на свойстве человеческого глаза легко выделять движение из общей картины.

Алгоритм построения очень прост:

  1. Задаются две вероятности: видимости точки фона и видимости точки символа. Чем больше разница – тем лучше читается, а выбираем такую разницу, чтобы читалось удовлетворительно
  2. Набираются кадры для gif-анимации, где символы случайно смещаются относительно начальной позиции на небольшое расстояние
Недостатки

  • размер картинки больше, чем классическая однокадровая каптча
  • соответственно больше времени на генерацию, со всеми вытекающими,
  • плохо подходит для случайных наборов символов
  • Это все-таки анимация, тем более скачущая
Достоинства

  • Нет необходимости в искажении букв – пользователь видит привычный шрифт
  • Дальтоники видят также как и все остальные
Обсуждаемые достоинства

  • бОльшая сложность машинного распознавания, а значит
  • можно использовать меньший набор слов, а значит
  • можно показывать привычные слова, а значит
  • глаз мгновенно читает надпись – пользователь меньше уделяет внимания на распознавание каптчи
Дополнительные достоинства

  • Фон каптчи можно сделать прозрачным, а это значит, что ее можно накладывать на фон сайта без потери функциональности
  • Можно дать возможность задавать цвет фона и точек – для соблюдения палитры сайта
  • Можно использовать любые языки (даже иероглифические) – что повышает удобство распознавания
  • Нетрадиционное использование такой каптчи – например, сообщать на форуме свой телефон или почту не текстом, а сгенерировав такую гифку

Вопросы и проблемы

Самый главный вопрос – а нужна ли интернету еще одна каптча или рекаптча всех устраивает?
Второй вопрос – действительно ли моя каптча сложна для машинного распознавания?
И третий – как можно ее улучшить?

В настоящее время написан модуль генерации gif на C#, поэтому быстродействие 2-3 каптчи в секудну (без ультра-оптимизации). Необходимо переписать это на C++, оптимизировать как генерацию, так и упаковку gif.

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

Но буду рада продать эту идею, если она вообще хоть сколько-то стоит.

ссылка на оригинал статьи http://habrahabr.ru/post/181534/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *