Ru-Board.club
← Вернуться в раздел «Web-программирование»

» Распознание текста на картинке скриптовым языком

Автор: HighTower
Дата сообщения: 30.11.2004 11:49
Привет!

реально ли на перле имея картинку распознать текст на ней?
а то опсоп сделал отправку смс с сайта поганенько - надо вводить код на картинке
мне это не для спама, а для себя лично..
Автор: SiMM
Дата сообщения: 30.11.2004 11:53

Цитата:
мне это не для спама, а для себя лично..
Расскажи это кому-нибудь ещё - для себя вполне можно зайти на сайт и отправить SMS'ку, введя распознанный с картинки код.
Автор: HighTower
Дата сообщения: 30.11.2004 11:59

Цитата:
Расскажи это кому-нибудь ещё

а чего мне рассказывать то? если нужны скажки - к братьяи Грим или ещё кому, а я говорю что есть!
Для себя - это не только другу отправить, но ещё чтобы прога сообщила мне если что случилось - например перезагруз произошёл или ещё что...
Автор: SiMM
Дата сообщения: 30.11.2004 12:06
Зачем мне братья Гримм, когда рядом такой сказочник
И главное отмазки какие смешные - сказочник-юморист
Автор: HighTower
Дата сообщения: 30.11.2004 12:12
хочется языком почесать - во флейм!
если есть что сказать по тему - говори, а не умничай
Автор: SiMM
Дата сообщения: 30.11.2004 12:23
Оставьте право решать модератору
Автор: easyman
Дата сообщения: 30.11.2004 13:59
HighTower
думал я над этим делом.... сразу скажу, ничего практически быстрореализуемого не придумал...

в принципе можно, но в жизни сложнее все...

предположим четыре символа на картинке... делим ее на 4 части (идеальный вариант, такого сейчас уже практически не встречается...)

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

проблемы - символы поворачивают на разные градусы относительно вертикали, отступ между символами разный и расположены они на разной высоте друг от друга...

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

вот и получается, что с одной стороны это надо всем, но с другой стороны никто не хочет морочиться и тратить силы на программу лучшим результатом которой будет дай бог 10% попаданий...
кроме того требуется нехилая математическая подготовка...
Автор: HighTower
Дата сообщения: 30.11.2004 14:42
easyman
вообщем нет в жизни счастья...
Автор: SiMM
Дата сообщения: 30.11.2004 15:06

Цитата:
с одной стороны это надо всем, но с другой стороны никто не хочет морочиться
Это надо не всем, это надо спамерам. Кому надо - тот договорится с опсосом. Или отправит SMSку с сайта опсоса. А спамеры, между тем, проблему решают гораздо проще, фактически даже без программирования
Автор: Kokoc
Дата сообщения: 30.11.2004 16:24
Почему бы и нет? Вот чисто теоретический вариант (на платформе windows):.

1. Качаем картинку с сайта. При необходимости преобразовываем в 300dpi b/w с пом. imagemagick (это утили командной строки, поэтому можно вызывать из того же perl)

2. Распознаем finereader'ом (если не ошибаюсь, им можно управлять через OLE - т.е. можно автоматизировать через Win32::OLE). FR вроде справляется с небольшими поворотами; при необходимости можно провести некоторое обучение. Если какую-то цифру принял за букву, то можно с пом. ассоциативного массива сделать преобразование (напр. B->8)

Вместо F.R. можно использовать менее тяжеловесные буржуйские утилиты, работающие с командной строки (типа SimpleOCR) - все равно кириллица нам не нужна, но вот с поворотами и шумами могут быть проблемы.

3. Результат (рампознанные цифры) - опять же через OLE или временный текстовый файл.
Автор: HighTower
Дата сообщения: 30.11.2004 16:30
Kokoc
а если при этом винды никаким макаром не участвуют? всё это крутится под freebsd...
Автор: pand
Дата сообщения: 30.11.2004 17:21
Вообще-то, насколько мне известно все подобные картинки делаются с учетом невозможности распознания современными ОКР, так что если участники не собираются сказать громкое слово в области машинного распознавания образов , то наверное никак.
Автор: easyman
Дата сообщения: 30.11.2004 18:30
SiMM
спамерам? с опсосом договариваться? а ты уверен, что пользователи захотят платить за одну смску по баксу?.... угу, щаз...
какой-бы замечательный ресурс ни был...
Автор: aar
Дата сообщения: 30.11.2004 18:40
HighTower
Видел где-то, что для распознавания использовались нейронные сети.
Автор: beeos
Дата сообщения: 30.11.2004 18:52

Цитата:
Видел где-то, что для распознавания использовались нейронные сети.


HighTower
Стоит ли тогда овчинка выделки? Картинки применяют именно для эффективной защиты от того, что ты хочешь сделать. Так что задача во всех случаях нетривиальная.

Цитата:
А спамеры, между тем, проблему решают гораздо проще, фактически даже без программирования

Точно точно, самый действенный способ распознавания — заставлять это делать самих пользователей. Даешь на твоем сайте линк на картинку с сайта оператора и просишь юзеров распознать ее (например, для доступа к какому-нибудь своему сервису или для регистрации). Накапливаешь базу распознанных картинок, и пользуешься этими данными. Правда если генерация картинок организована грамотно, то и этот способ вряд ли сработает.
Автор: aar
Дата сообщения: 30.11.2004 18:56
Есть еще гистограммные и корелляционные методы распознавания, которые могут быть использованы совместно с нейронными сетями.

beeos

Цитата:
Стоит ли тогда овчинка выделки

Не очень сложно, на самом деле. Обучение займет много времени, а готовую матрицу значений синапсов и структуру сети легко реализовать.
Автор: easyman
Дата сообщения: 30.11.2004 19:45
aar

Цитата:
Есть еще гистограммные и корелляционные методы распознавания, которые могут быть использованы совместно с нейронными сетями.

есть один вопрос, возвращающий к действительности... а как?

и далее по пунктам...
для этого нужно такое-то ПО (какое?)
и тд...
Автор: SiMM
Дата сообщения: 30.11.2004 19:50

Цитата:
спамерам? с опсосом договариваться?
Где ты видел, что я предлагал спамерам договариваться с опосом? Я сказал, что тот, кому нужно отправлять SMSки - может договориться с опсосом. Который будет держать его в ежовых рукавицах и в случае обнаружения спама покажет, где раки зимуют. Желать отправлять SMSки и отказываться от договорённости с опсосом может только спамер. Мне то по барабану - у меня, слава богу, трубы нет
aar, на самом деле, спамеры, как сказал beeos, так и поступают - используют нейронные сети. Только им хватило мозгов сделать это, не имея даже малейшего представления о том, что это такое beeos ошибся лишь в том, что при грамотносоставленной защите от ботов накапливать базу картинок просто бессмысленно.
PS: интересно, а если бы у вас спросили, как создать атомную бомбу, а вы бы знали, как - вы бы тоже все ринулись рассказывать, что да как? На последствия, я так понимаю, вам плевать, даже если подумать о том, что на вас они тоже могут сказаться.
Автор: easyman
Дата сообщения: 30.11.2004 19:54

Цитата:
Где ты видел, что я предлагал спамерам договариваться с опосом?

ты просто не правильно понял, к сожалению текст не передает интонаций...

Добавлено

Цитата:
PS: интересно, а если бы у вас спросили, как создать атомную бомбу, а вы бы знали, как - вы бы тоже все ринулись рассказывать, что да как? На последствия, я так понимаю, вам плевать, даже если подумать о том, что на вас они тоже могут сказаться.

ты тут это, флеймить то заканчивай, да?

тут речь, образно говоря, о пистолете, а не о том, каким образом его можно использовать....
Автор: aar
Дата сообщения: 01.12.2004 11:48
easyman

Цитата:
для этого нужно такое-то ПО (какое?)

MATLAB, Neural Network Toolbox
SiMM

Цитата:
PS: интересно, а если бы у вас спросили, как создать атомную бомбу, а вы бы знали, как - вы бы тоже все ринулись рассказывать, что да как?

Да.
Автор: roma
Дата сообщения: 01.12.2004 12:02
HighTower
а опсос не поддерживает шлюз мыло-смс?
+79xxxxxxxxx@opsos.ru типа шлёш туда письмо а оно приходит на смс...
Автор: Svarga
Дата сообщения: 01.12.2004 14:18
SiMM
easyman
aar
Завязывайте с флеймом!
Автор: Audciz
Дата сообщения: 01.12.2004 19:18
Я писал такую вещь. Работает. Можешь прислать картинки?

Добавлено
А сложность картинки какая?
Автор: HighTower
Дата сообщения: 02.12.2004 09:56
roma

Цитата:
а опсос не поддерживает шлюз мыло-смс?

нет, мегафонь такого сервиса не держит...

Audciz

Цитата:
Я писал такую вещь. Работает. Можешь прислать картинки?

да можегшь сам глянуть на _http://www.megafonnw.ru/site/rus/sms
Автор: Audciz
Дата сообщения: 03.12.2004 12:14
HighTower
Не очень то и сложно У меня почти такой же сложности картинки были. Может тот же скрипт подойдёт. Будет время поработаю.
ЗЫ: А ещё можно было бы найти последовательность между кодом картинки и адресом (картинки).
Автор: HighTower
Дата сообщения: 03.12.2004 12:22
Audciz

Цитата:
Будет время поработаю.

было б здорово, если б подошло или ты доработал, был бы благодарен!!!

Цитата:
А ещё можно было бы найти последовательность между кодом картинки и адресом

смотрел долго и упорно - ничего... видать базка на сервере есть, где на каждую новую страницу геренится новый адрсе картинки и новое число на ней, причём адрес и число - никак не связаны
Автор: Cheery
Дата сообщения: 04.12.2004 05:35
HighTower

Цитата:
смотрел долго и упорно - ничего... видать базка на сервере есть, где на каждую новую страницу геренится новый адрсе картинки и новое число на ней, причём адрес и число - никак не связаны

обычно нет никакой связи.
да и вообще - эта затея с распознаванием не имеет смысла. Почему ? Потому что для нормального распознавания желательно иметь немаленький DPI, а не картинку -дцать на -дцать пикселей. Наложу пару линий того же цвета, что и шрифт, и не поможет никакой код на перле

по сути, это сказано было тут
http://forum.ru-board.com/topic.cgi?forum=31&topic=3326#1
Автор: Delphi6
Дата сообщения: 10.12.2006 02:02
Всем доброе время суток,
Возникла проблема удаления шумов у captch-ей, после прочтения документации найденной в Гугле и Wikipedia, пришел вот к такому выводу:

Главное надо отловить уровень цвета (в градации серого) который надо оставить, а остальное загасить. На данный момент я делаю вот так:

1) Перевожу фотку в черно белый режим (градация серого)
2) Проверяю позицию цвета пикселя, если это значение выше лимита то оставляю (черный) в противном случае воспринимаю его как фон (белый)
3) Полученное черно белое изображение уже анализирую, при этом по теории черным остается текст, а остальное фон - белый.

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

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

Читая доку пришел к выводу что для каждой капчи нужно искать свой подход, другими словами, нет смысла пытаться найти уникальное решение, намного легче искать уязвимые места каждой

Что вы думаешь на это счет?

Заранее благодарю за помощь
Автор: trotil82
Дата сообщения: 10.12.2006 02:35
http://www.captcha.ru/
Автор: edogs
Дата сообщения: 10.12.2006 02:58
Delphi6

Цитата:
Главное надо отловить уровень цвета (в градации серого) который надо оставить, а остальное загасить

Не всегда, зависит от каптчи.

Цитата:
Читая доку пришел к выводу что для каждой капчи нужно искать свой подход, другими словами, нет смысла пытаться найти уникальное решение, намного легче искать уязвимые места каждой

Другой вариант просто не сработает

Страницы: 123

Предыдущая тема: PHP: Полезные (интересные и оригинальные) решения


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.