9 июня 2011 в 20:44

Как работает reCAPTCHA?

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


Расскажу я все достаточно кратко, но зато понятно. Приведенные иллюстрации были взяты с официального сайта reCAPTCHA

Stop spam


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

Read books


Как вы наверняка заметили, reCAPTCHA предлагает ввести два слова, что практически не встречается у других капч. Суть в том, что пользователь при вводе этих слов не только доказывает, что он человек, но еще и помогает распознавать старые книги и газеты.

Принцип работы прост:
Допустим, есть энная книга, которая сохранилась в малом количестве экземпляров, при этом все они в плохом состоянии. Один экземпляр в отсканированном виде попал в руки Google (владелец reCAPTCHA). Что с ним делать? Правильно, цифровать (и дело тут не только в сохранении наследия, но об этом позже). Как цифровать? Цифровать, используя системы распознавания символов (OCR). Но, как многим известно, эти системы очень часто грешат многочисленными ошибками в выданном результате. Вручную перебирать весь текст на предмет ошибок — слишком дорогое удовольствие. И вот, на помощь приходит reCAPTCHA. Одно слово в изображении распозналось системой OCR правильно, а вот второе никак нет. Второе слово — за пользователем, именно то, что он введет будет использовано в качестве замены ошибочному варианту, предложенным OCR. Наверняка сейчас некоторые усмехнутся, да, я знаю про то, что фактически вместо второго слова можно ввести что угодно. Но каждое непонятное для OCR слово reCAPTCHA показывает пользователям сотни, а то и тысячи раз (при цифре в 200 миллионов генераций в день это очень мало), и в конечном итоге правильным считается тот вариант, который пользователи вводили чаще всего.

От скучного текста перейдем к иллюстрациям:

Вот так выглядит отсканированный текст. Качество, можно сказать, на высоте, но давайте же взглянем на результат работы OCR:

Красным выделены ошибки. Не правда ли их слишком много? А теперь посмотрим, что же будет результатом работы reCAPTCHA:

Не надо быть семи пядей во лбу, что бы увидеть разницу между OCR и дуэтом OCR + reCAPTCHA. Оцифровка получилась 100% безошибочной.

Разумеется, это что-то вроде идеальной ситуации, где все складывается так, как задумывалось создателями reCAPTCHA. Но наверняка многие из вас сталкивались с абсолютно нечитаемыми словами, предлагаемыми для ввода. Проблема в том, что некоторые книги \ газеты сохранились настолько плохо, что порой и вручную они распознаются отвратительно. Вот пример:

Изображение отвратительного качества. Посмотрим, что тут сможет сделать OCR…

… а ничего. Ошибки не подсвечены потому, что все это — одна большая ошибка.

Зато силами reCAPTCHA результат становится вполне себе читаемым, хоть и не безошибочным.

Именно таким образом пользователи помогают оцифровывать книжки средствами reCAPTCHA. По-моему, это прекрасно.

Я ничего не понял!


Вкратце: изображение, генерируемое reCAPTCHA, состоит из двух отсканированных слов. Одно уже заведомо известно системе, насчет второго же есть сомнения. Именно это второе слово и есть объект для распознавания силами пользователей. Грубо говоря, интерфейс reCAPTCHA мог бы выглядеть и вот так:


Скрипты для распознавания


Бытует ошибочное мнение, что reCAPTCHA невозможно взломать (речь идет об автоматическом распознавании приведенного текста, без участия человека). Однако, судя по тенденциям, это не так. С течением времени reCAPTCHA понаделала различных подводных камней для систем распознавания. Среди них искривление текста, пересечение его полосами, так же недавно была введена фича, благодаря которой проверочное (известное системе) слово выглядит сдвоенным. Все это указывает на то, что reCAPTCHA все таки испытывает некоторые трудности с защитой.

Никто и не подозревал


Есть люди, которые критикуют reCAPTCHA, и с этической точки зрения, критикуют они не зря. Дело в том, что за распознанный текст Google так или иначе получает деньги. А сами тексты добываются вполне себе бесплатно, силами пользователей. То есть, тут имеет место бесплатный труд. Лично меня это не волнует, к тому же, никто не заставляет пользователей вводить reCAPTCHA, и более того, никто не заставляет веб-мастеров устанавливать ее на свои сайты :)

Ирония


Наверняка некоторые из вас, прочитав предыдущий абзац, поняли, что тут что-то не так. Все знают о сервисах по ручному распознаванию капчи, где миллионы азиатов вводят капчу за гроши. Итак, если принять во внимание предыдущий абзац, то получается, что эти азиаты работают не только на сервис по распознаванию, они работают и на Google. Бесплатно.
Понкин Дмитрий @Adiost
карма
83,2
рейтинг 0,0
Самое читаемое Разработка

Комментарии (73)

  • +3
    Интересно конечно придумали ребята из Карнеги, ну а Google приобрел и воспользовался, но все же что предполагается ввести в первую капчу в Вашей статье?
    Лично меня она несколько испугала и я бы врядли начал даже пробовать что то вводить.
    • 0
      У меня есть еще один топик, который до хабраката выглядит аналогично :) reCAPTCHA порой предлагает ввести пургу. Просто жмем «обновить» (внутри формы) и вводим другую капчу.
      • +5
        > «Просто жмем «обновить» (внутри формы) и вводим другую капчу. „
        Пользователю может оказаться проще закрыть вкладку, после такой капчи.
        • +1
          Если пользователю надо скачать архив, который он уже час ищет в просторах — он не раз будет тыкать «Обновить». А вот если это будет «отзыв к статье» — тут да, проще забить на отзыв, чем ломать глаза. Оно же еще и ночью может присниться =)
          • +2
            вы уверены, что вам нужен отзыв к статье от человека, которому не хватает интеллекта нажать на «обновить»?
            тоже спорный вопрос и зависит от ЦА сайта.
            • +1
              А кто об интелекте говорил?
              Я зашел на ваш сайт, захотел комент написать, а там вырвиглаз — а у меня есть чем заняться, кроме как тыкать «обновить».

              И да, мне нужны отзывы разных людей — с этого формируется дискуссия, с этого формируется уникальный контент на сайте…
        • 0
          Че испугались-то? Зашел на сайт, отписал комменты на несколько статей и заодно книгу прочитал от Гугл какую-нибудь…
    • +1
      Вводите читаемое слово + любое сочетание, хотя это и «неправильно». Проверяется-то только известное слово.
      • 0
        Надо было им рендомно менять их местами…
        • 0
          Так они и меняют. Раньше, когда не меняли, достаточно было ввести первое слово)
          • 0
            Ага и когда было лениво, то второе слово и не вводилось…
    • +13
      \phi^{ex(u_n)}(f_n)|0\rangle comssifu

      Что тут сложного-то?
      • 0
        А так? bit.ly/knJP3M
        (сори, не смог картинкой вставить)

        Выше говорят, что «увидел страшное слово — закрыл вкладку». Ерунда это всё. По мне, так хуже китайской капчи ничего не может быть. Вот это действительно препятствие.
        • 0
          Зато китайским сайтам защита сразу и от ботов, и от иностранцев :)
          • +5
            馬鹿外人
            • –1
              (рус.) Ред Дир посторонних?
              • +1
                Што?..
                baka gaijin же, это японский
                • 0
                  馬鹿じゃない!
        • +2
          там ничего сложного. Вообще ничего. Там три символа всегда показываются в одной и той же последовательности, только меняется цвет, стиль и поворот вокруг оси… 四一二 т.е. 4,1,2

          вот если бы они четверку в каком-то древнем написании показали бы ( www.kangxizidian.com/kangxi/0216.gif ) тогда, да… — тогда точно не всякий бы догадался.
        • 0
          Английская регистро-зависимая капча гораздо хуже китайской :)
          • 0
            本とですか
            • 0
              いいえ、本とじゃないです。
              • +1
                Я honto неправильно написал, надо было хираганой, а я кандзями накатал. Извините.
                • 0
                  Да с кем не бывает)
                • 0
                  Гык )) Да фиг с ним жэ. )))
      • 0
        Спасибо что не MathML
  • 0
    У такой капчи достаточно ввести одно слово, и она уже пройдет проверку. Чем все активно и пользуются во всяких антигейтах.
    • +3
      Ну по крайней мере фунцкию капчи в таком случае она выполняет. А функцию распознавания при этом выполнит кто-то еще.
    • 0
      На самом деле я всегда думал, что эти 2 слова всегда меняются местами, ну т.е. неизвестно каким идет проверочное слово, а каким распознаваемое.
      • 0
        некоторое время это было так. но последнее время по виду сразу заметно, какое слово проверочное: они дублируют картинку с небольшим смещением, чтобы усложнить распознавание. раньше этого не было.
  • –3
    Не знал по поводу 2го слова, теперь будет проще
    • +2
      тут главное угадать которое слово известное
      • +1
        оно теперь сдвоенное, думать не надо
  • +5
    stop books. read spam.
    • +7
      book stops. spam reads.
  • +1
    Получается какая-то система по распределенному распознаванию текста.
    • +1
      Да ну?
  • 0
    Странно, что с появлением капчи не появилось какой-то фобии :)
    Например «капченофобия» — боязнь неудачно ввести текст капчи.
    • +3
      Почему вы так уверены, что не появилось? :)
    • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Это же просто гениальная мысль!
  • 0
    А зачем Google теперь нужна бедет reCaptcha, когда недавно он отказался от оцифровки архивов?!
    • 0
      От оцифровки архивов газет отказались, но не от книг.
  • 0
    всегда было интересно сколько книг уже оцифровали в recaptcha и сколько ещё осталось, редкие книги плохого качества ведь должны когда то кончиться, и что тогда?
    • +1
      К тому времени Google уже захватит вселенную, и никого капча не будет волновать.
    • +1
      А мне вот интересно, где же я могу получить результаты своих трудов (ну т.е. распознанные книги) =)
  • –2
    Интересно, робот который пройдет тест тьюринга сможет разгадывать капчи?
    • 0
      здесь используются совершенные (по сравнению с машинными) алгоритмы зрения, распознавания и сопоставления в человеческом мозгу
    • 0
      Вы в курсе как расшифровывается CAPTCHA?
    • 0
      Тест Тьюринга = CAPTCHA
  • 0
    Рекаатча, к сожалению, достаточно легко пробивается ботами.
    • 0
      сомневаюсь что на данный момент развития технологий можно сделать хоть одну капчу, которая не будет пробиваться ботами.
      Вопрос только в том, насколько это будет интересно ботоводам.
      • 0
        Ботоводам без раницы — они технологию освоили, что есть главное, а остальное им укажет заказчик. Скажет постить рекламу на форумах, всех подряд, без разбору — они и будут.
        • 0
          На одном из ресурсов, что я когда-то начинал, стоит reCaptcha и кастомный модуль «реши-линейное-уравнение». Боты и пятиклассники отсеиваются на ура, в т.ч. и довольно надоедливый Xpymer.
    • 0
      Интересная ситуация получается — одни алгоритмы пробивают то, что не могут оцифровать другие.
  • 0
    Интересно что будет если большая группа людей преднамеренно будет вводить одно и то же слово. Таким образом можно рекламу пихать в текст книги. Правда при условии что группа людей будет вводить одно и то же.
    • 0
      Сложно проконтроллировать, чтобы этой группе людей попадались одинаковые капчи. Слишком много комбинаций.
    • 0
      была такая акция на одном всемироно известном анонимном форуме. Только там пихали не рекламу, а слово «nigger»
  • 0
    Большое спасибо за то, что раскрыли глаза. =)
    Теперь я точно знаю, что достаточно набрать то слово, которое лучше читается, а второе можно как попало набрать =)
  • +1
    Все ясно, кроме одной вещи: как системе удается найти слова, которые распознались неверно после работы OCR?
    • +1
      Словарная проверка?
      • 0
        Именно. Насколько помню, FineReader, к примеру, подсвечивает ошибочные по его мнению результаты.
      • 0
        А что насчет слов sad, same, bat? Они выделены красным, но эти слова словарные.
        • 0
          Возможно анализ текста
          • 0
            именно
            + все это вероятности. Задали какой-нибудь порог 99.7%, если меньше, но вроде как словарное — лучше лишний раз переспросить.
  • 0
    Топик хороший, но повтор.
  • +1
    image
    • 0
      Угу, на дваче каждая капча что-нибудь да значит. :)
      • +1
        Двач умер.
  • 0
    меня в последнее время сильно раздражает сложность рекапчевских картинок (раньше было легче). Я просто не могу разобрать неизвестное слово. Приходится раза 2-3 запрашивать новые слова.
    • 0
      Все легкие слова разобрали, сложные подсовываются до тех пор пока их не прочтут ;)
  • 0
    Интересно, почему они не могут при такой огромной аудитории, не опасаясь направленной атаки, показывать нераспознанное слово одному человеку (группе людей), затем использовать его же в качестве контрольного для второго (второй группы).
    Сложные экземпляры, не годящиеся для сравнения (у которых варианты первого ответа никак не совпадают) можно выдавать вышеописанным методом для получения большего числа вариантов и выбора из них.
  • 0
    Отличный топик! Познавательно и написано очень легким языком.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.