22.07 // Проект // Новый тест Тьюринга
Потратив пару сравнительно свободных дней, я написал новый модуль CAPTCHA, взамен предыдущему, вызывавшему множество нареканий за сложность его тестов. В отличие от предыдущего, основанного на распознавании искажённого текста, новый модуль предлагает вам простую фотографию, а вы должны ответить, кого или что видите на ней.
Формулировка ответа допускает значительную свободу, и если на картинке изображён, например, котёнок, то верными ответами будут и "котёнок", и "кот", и "киска", и т.п. Если на картинке несколько персонажей/предметов, напишите их все, к примеру, "котёнок, цыплёнок", "котёнок и шнурок". Пока модуль работает в тестовом режиме, и картинки будут не слишком разнообразны.
Пожалуйста, высказывайте критику и комментарии.
Источник: http://www.pgpru.com
ps на слово "кошечка" не среагировал
pss и "киса" слетела
Основная проблема такого подхода, имхо, в том, что каждая картинка должна быть предварительно "классифицирована", а это требует ручной работы и делает число картинок конечным. Аналогично, если картинки подбираются под имеющийся классификатор. Как концептуальный проект – интересный и креативный подход, не видел такого на других сайтах.
PS Не знаю у кого как, но у меня пред. вариант теста работал "правильно" и проходил с первого раза, странно что у других возникают проблемы.
PPS "котик со шнурком" не прокатил.
комментариев: 11558 документов: 1036 редакций: 4118
Ну, я тоже не могу на каждое слово приводить все его возможные варианты, включая уменьшительные суффиксы. :-)
А на картинке была только киса?
Каждое существительное должно быть в именительном падеже (т.е. "котик и шнурок", "котик, шнурок", "котёнок шпагат" — всё это будет правильно). Уточню этот момент в описании задачи теста.
А вот насчет этого не ручаюсь
комментариев: 11558 документов: 1036 редакций: 4118
Добавил "кошечку". Это проще, чем объяснять любителям кошачьих, что вызывает проблему. :-)
Весь процесс классификации состоит в присвоении каждому файлу-картинке одного или нескольких тэгов (сами тэги задаются в конфигурации и определяют, какие слова соответствуют каждому персонажу). Генерить картинки на лету, конечно, невозможно. В этом состоит как слабая сторона этой методики (спамер может попытаться также вручную опознать и классифицировать каждую картинку, но небольшие изменения, которые вносятся в изображения при их отображении и сам случайный порядок выборки усложняют эту задачу), так и сильная — если картинки будут подобраны, их можно за час заменить другими, вместо того, чтобы переписывать алгоритм генерации зашумленных изображений.
ps Кстати интересно, что будет при добавлении вот этого моего коммента :) На картинке котенок и два утенка на лавке. Пишу "котенок утята".
pps Ну вот опять не добавилось. Проверил с другой машины – комментария тоже нет. Теперь на рисунке роза и опять 3 попытки. Пробую еще раз.
Ну и вот опять при добавлении вот этого коммента "Введен неверный ответ на тест Тьюринга. Пожалуйста, повторите попытку".
ВУАЛЯ! ПОВТОРЯЮ! НА КАРТИНКЕ СОБАКА! :)
комментариев: 11558 документов: 1036 редакций: 4118
"Неверные" ответы пользователей можно собирать, и в случае повторения делать их верными, может быть даже автоматически в случае длительного временного интервала между повторами.
Можно попытаться совместить две полупрозрачные картинки. Также можно их слегка растягивать и сжимать, как в кривом зеркале. Ну и вообще можно подключить фильтры типа от фотошопа! :)
комментариев: 11558 документов: 1036 редакций: 4118
Интересный вариант. Только шума в таком логе будет много — опять же, разбирать придётся вручную.
Экспериментировал с таким подходом, однако он не слишком удачен, поскольку из-за случайного выбора картинок результат часто получается или неоднозначным, или визуально плохо различимым, если важные детали одной картинки сливаются с деталями другой. Искажения добавить нетрудно, но тут опять же пойдут нарекания за сложность. Пока всё нормально работает, улучшения оставлю на следующую версию... или на случай автоматизированного взлома.
Берём базу 3D объектов и рендерим сцену из них!
Ну совсем небольшие искажения добавить надо, чтобы картинки хотя-бы побитно не совпадали.
Если что-то повторяется – это скорее всего не шум.
Может я какую глупость скажу, а что если использовать какую-нибудь онлайн базу картинок, например, images.google.com, т.е. в поиске указывать какое-нибудь слово из ограниченного словаря. Картинки конечно разные бывают, но если пользователь с первого раза опознал картинку, занести в свою локальную базу картинок. Если прошли неудачно несколько попыток, то показать катинку из локальной базы. По крайней мере можно собрать свою коллекцию картинок.