Трекинг почтовых отправлений - Программирование, компьютеры и кибернетика дипломная работа
![](/file/c17a668ccb7333e986a5a.jpg)
Анализ сервисов отслеживания почты. Технология построения интерактивного интерфейса пользователя. Определение стран отправителя и назначения. Распознавание CAPTCHA трекингов почты России и Китая. Добавление и удаление трек-кода в список пользователя.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
В отчете рассматриваются сервисы отслеживания почтовых отправлений предоставляемые операторами почтовых услуг и сторонние сайты отслеживания почтовых отправлений. По результатам анализа сформулированы требования к сервису отслеживания почтовых отправлений, предложены алгоритмы отслеживания и распознавания капчи сервиса "Почты России" и "Почты Китая", описана система отслеживания, построенная с использованием данных алгоритмов. Полученные результаты позволят решить задачи добывания трекинговых данных от серверов почтовых служб, составляющие суть дипломной работы.
Почта - основной способ доставки товаров из любой точки мира до конечного потребителя. В современном мире она играет не только техническую роль, как средство доставки, но приобретает и политическое значение. Инновационные технологии и Интернет с каждым годом все увереннее проникают в жизнь общества и уже охватывают даже, казалось бы, самые закостенелые отрасли.
Сервис почтовых отправлений служит человечеству на протяжении нескольких веков, но только с развитием сети интернет в почтовых службах были изобретены онлайн сервисы, с помощью которых каждый желающий может узнать, где находится посылка в данный момент.
С подобными сервисами удобнее и спокойнее: спится лучше когда знаешь где посылка, не ждешь ее месяц, думая что ее потеряли при погрузке.
Современная технология пересылки подразумевает присвоение регистрируемым почтовым отправлениям уникального почтового идентификатора. На каждом этапе пересылки информация почтового идентификатора заносится в единую систему учёта и контроля, благодаря чему возможно отследить прохождение вашего почтового отправления через Интернет.
Данные по номеру посылки обновляются автоматически и их утеря абсолютно исключена. Информация об уникальном трекинг-номере остаётся в базе почтовых отправлений даже после того, как товар был получен на почте. Всем известно, что жертвами мошенников становятся не только покупатели, но и продавцы. Продавец, зная уникальный номер отправления, сможет лично убедиться в том, что товар доставлен и вручен адресату, тем самым избежать обмана со стороны покупателя. Эксклюзивный идентификационный номер - это гарантия безопасности для обеих сторон, совершающих между собой сделку.
1. АНАЛИЗ СЕРВИСОВ ОТСЛЕЖИВАНИЯ ПОЧТЫ
Трекинг почтовых отправлений - это, дословно с англ. «tracking», отслеживание посылок. При отправке посылке присваивается специальный уникальный идентификационный номер - трекинг номер. С помощью этого номера и онлайн-сервиса трекинга на сайтах почтовых служб, предоставляющих услугу трекинга, можно узнать состояние своей посылки. Также онлайн-трекинг посылок можно производить на специально предназначенных для этого сайтах.
Трекинг номер представляет собой некий уникальный буквенно-цифровой код, идентифицирующий каждую посылку. Например, если доставка из США осуществляется службой USPS, то трекинг номер посылки состоит из 2 букв (англ.), первая из которых - это буквенный идентификатор способа доставки (L, C или E), девяти цифр и еще 2 букв (англ.). Когда посылка прибывает в страну получателя трекинг осуществляется местными почтовыми операторами. Отследить свою посылку можно, посетив сайт национальной почтовой службы страны-получателя или же региональный сайт международной курьерской или почтовой компании. Важно помнить, что трекинг номер на сайтах национальных почтовых операторов вводится всегда только заглавными буквами. Трекинг посылок доступен и для больших грузов, и для маленьких почтовых отправлений вроде письма или открытки, но в зависимости от используемого способа доставки, посылка может и не отслеживаться.
Трекинг номер сообщает получателю отправитель посылки. При самостоятельной покупке товаров на аукционе eBay или в различных интернет-магазинах Америки, отправляет посылку продавец, он же сообщает получателю трекинг номер, например, по e-mail. Трекинг может быть доступен не сразу же, а по прошествии нескольких дней.
Трекинг посылок - полезная и удобная услуга, ведь она позволяет наискорейшим образом узнать о судьбе своей посылки.
1.1 Обзор официальных трекингов некоторых стран
С каждым годом количество людей, пользующихся услугами всевозможных интернет-магазинов и онлайн аукционов, неуклонно растет. И это неудивительно, ведь во всемирной паутине не составляет особого труда найти очень выгодное предложение или распродажу, которая позволит купить необходимую вещь гораздо дешевле чем в местных торговых центрах или специализированных магазинах. Большинство покупателей в процессе онлайн шопинга в первую очередь ориентируются на цену товара, и это вполне логично. Однако, не стоит забывать и о таком немаловажном факторе, как доставка заказа, так как проблемы, связанные с получением покупки, способны полностью затмить радость от выгодной сделки. Именно официальные трекинги почтовых отправлений всегда готовы нам помочь отследить местонахождение нашей посылочки и удостовериться, что с ней всё в порядке.
1.1.1 Отслеживание почтовых отправлений почты России
URL: russianpost.ru - сервис почты России (рис. 1), обеспечивающий отслеживание операций обработки РПО (в том числе международных) по почтовому идентификатору (либо внутрироссийскому 14-символьному, либо международному). Вид номера в чеке выглядит: 115127(80)15138, его следует вводить: 11512780151384 (весь номер без скобок и пробелов). В случае отслеживания международного почтового отправления и EMS-отправления необходимо вводить 4 буквы и 9 цифр. Буквы вводятся обязательно заглавные и в латинском алфавите. Пример: YF123456789RU (весь номер без пробелов).
Отличительной чертой является наличие не очень сложной CAPTCHA. После ввода идентификатора посылки и CAPTCHA, информация перед пользователем представляется в виде таблицы, что довольно удобно для восприятия.
Отслеживание почтовых отправлений почты Сингапура
URL: singpost.com - сервис почты Сингапура (рис. 2), обеспечивающий отслеживание почтовых отправлений типа:
• for Registered Article: RR672819092SG;
• for SMS Mail: SP002828A900110090004;
Введенный номер посылки для отслеживания должен содержать не менее одной цифры и не более 20 цифр.
CAPTCHA отсутствует. Время ответа сервера колеблется от 2 до 5 секунд. Вывод информации пользователю предоставляется в виде таблицы.
почта интерактивный интерфейс пользователь
Рисунок 2 - Трекинг почты Сингапура
Отслеживание почтовых отправлений почты США
URL: tools.usps.com - сервис почты США (рис. 3), обеспечивающий отслеживание почтовых отправлений типа:
• certified Mail™ : 7000 0000 0000 0000 0000;
• USPS Tracking™: 0300 0000 0000 0000 0000;
• Signature Confirmation™: 2300 0000 0000 0000 0000;
• express Mail®: EA 000 000 000 US;
• express Mail International®: EC 000 000 000 US;
• priority Mail International™: CP 000 000 000 US;
• registered Mail™: RA 000 000 000 US;
• global Express Guaranteed®: 82 000 000 00.
CAPTCHA отсутствует. Вывод информации пользователю предоставляется в виде таблицы.
Отслеживание почтовых отправлений Китая
URL: intmail.183.com.cn - сервис почты Китая (рис. 4) обеспечивает отслеживание почтовых отправлений по международному идентификатору типа RRxxxxxxxxxCN. Где первые две буквы обозначают тип почты и почтового отправления, последние две буквы страну отправления, то есть CN (China) -- Китай, а между ними 9 цифр - уникальный идентификатор в стране отправления посылки.
Отличительной чертой является наличие сложной CAPTCHA. После ввода трек-кода посылки и CAPTCHA, информация перед пользователем представляется в виде таблицы, что довольно удобно для восприятия. Стоит отметить, что сайт доступен в двух языковых версиях: English и Chinese.
Отслеживание почтовых отправлений Беларуси
URL: search.belpost.by - сервис почты Беларуси (рис. 5) обеспечивает слежение за отправлениями по РБ и слежение за международными отправлениями, используя международный идентификатор типа RRxxxxxxxxxBY. Где первые две буквы обозначают тип почты и почтового отправления, последние две буквы страну отправления, то есть BY (Belarus) Беларусь, а между ними 9 цифр - уникальный идентификатор в стране отправления посылки.
CAPTCHA отсутствует, информация перед пользователем представляется в виде таблицы с двумя столбцами, что менее удобно для восприятия, чем у вышеописанных сервисов почтовых служб.
Отслеживание почтовых отправлений Украины
URL: http://ukrposhta.ua/vidslidkuvati-forma-poshuku - сервис почты Украины (рис. 6), обеспечивающий отслеживание посылки по почтовому идентификатору (либо внутрироссийскому 13-символьному, либо международному).
CAPTCHA отсутсвует. Информация перед пользователем представляется в виде одной строки.
Отслеживание почтовых отправлений Гонконга
URL: app3.hongkongpost.com/CGI/mt/enquiry.jsp - сервис почты Гонконга (рис. 7), обеспечивающий отслеживание почтовых отправлений по международному идентификатору типа: RRxxxxxxxxxHK. Где первые две буквы обозначают тип почты и почтового отправления, последние две буквы страну отправления, то есть HK (HongKong) -- Гонконг, а между ними 9 цифр - уникальный идентификатор в стране отправления посылки.
CAPTCHA отсутсвует, информация перед пользователем представляется в виде строки.
1.2 Обзор существующих систем отслеживания почтовых отправлений
На сегодняшний день существует ряд программ и онлайн -- сервисов, реализующих технологию "отслеживания почтовых отправлений". Предлагается рассмотреть несколько, на примерах известных.
MaxPostTracker - отслеживание посылок с автопилотом. В программе записаны адреса нескольких сайтов, с которых можно получать данные. Адреса разделены по суффиксам номеров трекинга: US - американский сайт, HK - Гонконг и т.п. Для сайта почты России суффиксом является *, то есть на него запрос будет идти в любом случае.
Чтобы разобрать, какие данные приходят с сайта, для каждого трекера созданы регулярные выражения, которые позволяют вытащить из ответа сервера необходимую информацию.
TrackChecker - отслеживание посылок еще удобнее, постоянно добавляются новые сервисы, исправляются ошибки. Основные возможности программы:
• проверка состояния номера для отслеживания на более, чем 170 почтовых и курьерских сайтах;
• возможность создавать группы треков в любой конфигурации помогут пользователю не запутаться в своих посылках;
• разнообразные настройки позволят настроить программу под себя: Период проверки, автозагрузка, уведомления, внешний вид списка посылок, настройки соединения, и многие другие опции;
• хранение настроек программы и данных пользователя в формате xml рядом с исполняемым файлом программы;
• проверка обновлений программы и автоматическое обновление описаний сервисов.
URL: Post-Tracker.ru - сервис предназначен для упрощения процедуры отслеживания регистрируемых почтовых отправлений по предоставленному Вам трек-коду.
После недолгой регистрации на PostTracker, становятся доступными следующие возможности:
• Удобное добавление и хранение трек-кодов в личном кабинете;
• автоматическая проверка трек-кода три раза в сутки с уведомлением по E-Mail и 8 раз в сутки с уведомлением по SMS;
• сохранение истории прохождения треков;
• возможность экспорта статуса треков на форумы и блоги.
URL: trackitonline.ru - сервис собирает всю информацию по Вашей посылке и предоставляет её в одном окне с переводом статусов на английский или русский язык для того, чтобы Вы могли получить самую последнюю информацию о местонахождении посылки. Вся предоставляемая информация берется из открытых источников почтовых операторов и обрабатывается сервисом для предоставления в удобной форме. Предоставление информации при помощи этого сервиса является абсолютно бесплатным.
URL: gdeposylka.ru - это универсальный сервис для отслеживания посылок, который в скором времени будет позволять отслеживать все Ваши посылки. Сервис уже умеет полноценно отслеживать РПО (регистрируемые почтовые отправления) на Почте США, Почте Китая, Почте Гонконга, Почте России, Почте Украины и Почте Казахстана, а также отображать путь прохождения посылки на карте.
Частично поддерживается отслеживание почтовых отправлений из Германии, Великобритании, Сингапура, Тайваня, Японии, Польши, Таиланда, Австрии, Франции, Кореи.
Проанализировав работу программ и онлайн - сервисов, описанных выше, стало ясно, что для удобного извлечения с сервера необходимой информации можно будет воспользоваться регулярными выражениями. Также столкнулись с проблемой распознавания капчи. Выходные данные лучше представлять в виде таблицы, это делает информацию более наглядной и лучше воспринимаемой.
Регулярные выражения (РВ) это, по существу, крошечный язык программирования. Используя его, указываются правила для множества возможных строк, которые надо проверить; это множество может содержать английские фразы, или адреса электронной почты, или TeX команды, или все что угодно. С помощью РВ можно задавать вопросы, такие как «Соответствует ли эта строка шаблону?», или «Совпадает ли шаблон где-нибудь с этой строкой?». Можно также использовать регулярные выражения, чтобы изменить строку или разбить ее на части различными способами.
Обычно шаблоны регулярных выражений компилируются в серии байт-кода, которые затем исполняются соответствующим движком. Для продвинутого использования может быть важно уделять внимание тому, как движок будет выполнять данное регулярное выражение, и писать его так, чтобы получался байт-код, который работает быстрее. Оптимизацию мы не будем рассматривать, так как она требует хорошего понимания внутренних деталей движка.
Язык регулярных выражений относительно мал и ограничен, поэтому не все возможные задачи по обработке строк можно сделать с помощью регулярных выражений. Также существуют задачи, которые можно сделать с помощью регулярных выражений, но выражения оказываются слишком сложными. В этих случаях может быть лучше написать обычный код, пусть он будет работать медленнее, чем разработанное регулярное выражение, но будет более понятен [1].
CAPTCHA (английская аббревиатура от «Completely Automated Public Turing test to tell Computers and Humans Apart» -- полностью автоматизированный публичный тест Тьюринга для отделения людей от компьютеров) -- торговая марка Университет Карнеги -- Меллона, компьютерный тест, используемый для того чтобы определить, человек ли использует систему.
Термин появился в 2000 году. В наиболее распространённом варианте CAPTCHA от пользователя требуется ввести символы, изображённые, как правило, в искажённом виде на предлагаемом ему рисунке, иногда с добавлением шума или полупрозрачности. Реже применяются CAPTCHA, основанные на распознавании речи (в основном как альтернатива для людей с нарушениями зрения), либо на других вариантах задач искусственного интеллекта.
CAPTCHA чаще всего используется при необходимости предотвратить использование интернет-сервисов ботами, в частности, для предотвращения автоматической регистрации, скачивания файлов, массовых рассылок и т. п.
Чтобы получить полное представление о CAPTCHA, рассмотрим несколько примеров.
На рисунке 4 изображена CAPTCHA, находящаяся на трекинге почты России
Рисунок 8 - Образец CAPTCHA почты России
На рисунке 5 изображена CAPTCHA, которая находилась на трекинге почты Китая
Рисунок 9 - Образец CAPTCHA почты Китая
Существуют программы, распознающие конкретные реализации CAPTCHA, к примеру, PWNtcha.
Есть способ "распознавания", использующий человеческих ресурс и ресурс высокопосещаемых сайтов, например, сайтов порно-тематики.
Робот скачивает CAPTCHA с интернет-сервиса и показывает его пользователю порносайта, с просьбой ввести код, который он видит на картинке. Взамен пользователь получает доступ к ресурсу, а робот узнает код, изображенный на картинке ("метод леммингов").
Несмотря на уязвимости, это не означает, что любая CAPTCHA-защита априори бессмысленна. Тут наблюдается извечный принцип соревнования оружия и защиты (снаряда и брони) [2].
Результаты анализа сервисов отслеживания почтовых отправлений
Рассмотрев работу официальных трекингов, можно свести итоги в табличку (табл. 1).
Таблица 1 - Особенности трекингов почтовых отправлений
Вывод и сложность извлечения информации
4) Изменение x и y координат цифр, а также их размера от 1 до 4 пикселей
Выводится информация в виде довольно большой таблицы (10 столбцов). Для извлечения нужных данных придется составлять объемное регулярное выражение
Выводит информацию в виде маленькой таблицы (4 столбца).
С составлением регулярного выражения не должно возникнуть сложностей.
Выводит информацию в виде таблицы (6 столбцов). Проблем с парсингом не должно возникнуть.
От 2 до 6 сек, иногда сервер тупит, то есть не выводит никакой информации или показывает неполную
3) плавающее положение символов и изменение их размера
4) «мусор», который можно принять за символ
5) присутствует кривая, перечеркивающая символы
Выводит информацию в виде таблицы (6 столбцов). Проблем с извлечением нужных данных не должно возникнуть.
От 2 до 8 сек, сервер очень часто падает.
Выводит информацию в виде одной длинной строки. Могут возникнуть проблемы с преобразованием этих данных в табличные.
Выводит информацию в виде таблицы с 2-мя столбцами(дата и событие). Может возникнуть затруднение с преобразованием полученной информации к общей таблице
Выводит информацию в виде маленькой таблицы (5 столбцов). Для извлечения данных нужно будет составить несложное регулярное выражение.
Проанализировав работу существующих программ и онлайн серверов, можно сделать следующие выводы (табл. 2).
Таблица 2 - Особенности сервисов отслеживания почтовых отправлений
Для доступа к полному функционалу нужна регистрация
ОС Windows (XP/Vista/7),Linux, MacOS, iOS
Обновления происходят несколько раз в месяц
Для доступа к полному функционалу нужна регистрация
ОС Windows (XP/Vista/7),Linux, MacOS, iOS
Автоматическое обновление описаний сервисов
Отслеживания на более, чем 200 почтовых и курьерских сайтах
Программа рассчитана на работу под ОС Windows.
Автоматические периодические обновления
Для работы программы требуется Microsoft .Net Framework 3.5
В программе записаны адреса нескольких сайтов, с которых можно получать данные.
Программа рассчитана на работу под ОС Windows.
По результатам вышеописанных исследований было решено сделать следующее:
• Для отслеживания почтовых отправлений добавить страны: Россию, США, Сингапур, Китай, Украину, Беларусь, Гонконг;
• распознавание CAPTCHA трекингов почты России и Китая;
• автоматическое определение идентификатора посылки;
• при вводе международного идентификатора получать информацию о посылке с трекингов страны отправителя и получателя;
• определение стран отправителя и получателя;
• полученную информацию выводить в общую сводную таблицу;
• сохранение полученной информации в удобочитаемый формат.
Проведенное исследование сервисов показало, что для извлечения необходимой информации с сервера необходимо использовать регулярные выражения, также придется столкнуться с распознаванием образов, а именно CAPTCHA. Отслеживать информацию о посылке будем в странах России, Украины, Беларуси, Сингапура, США, Китая, Гонконга, как типичных представителях онлайн средств отслеживания почтовых отправлений.
В связи с этим целью данной работы является разработка программного средства трекинга почтовых отправлений. При этом программное средство должно поддерживать автоматическое определение идентификатора посылки, отслеживание почтового отправления со сторон отправителя и получателя, определение страны получателя, полученную информацию для каждой страны представлять в виде таблицы, аналогичной на официальном трекинге.
Также программное средство должно иметь расширяемую архитектуру, для последующих модификаций и доработок, и пользовательский интерфейс, который не должен требовать от пользователя специальных знаний, то есть он должен быть удобным, понятным и доступным даже неподготовленному.
Проведенный анализ позволил разработать более детально техническое задание на разработку ПС, приведенное в Приложении А.
2. АЛГОРИТМИЧЕСКОЕ КОНСТРУИРОВАНИЕ СИСТЕМЫ ЕДИНОГО ОТСЛЕЖИВАНИЯ ПОЧТОВЫХ ОТПРАВЛЕНИЙ
В данной главе будут рассмотрены алгоритмы, требуемые для реализации работы. Приведены алгоритмы распознавания CAPTCHA для почты России и Китая, отслеживания почтовых отправлений России, Сингапура, США, Украины, Беларуси, Гонконга и Китая.
Алгоритм распознавания первой CAPTCHA почты Китая
Сначала скачали 500 различных вариантов CAPTCHA (рис. 10).
Рисунок 10 - Образец первой CAPTCHA почты Китая
• присутствует палитра от белого до тёмно-серого и чёрный цвет;
• есть кривая, перечеркивающая символы;
• плавающее положение символов и изменение их размера;
• «мусор», который можно принять за символ;
• в центре эффект размытия символов.
К плюсам можно отнести только размер изображения, а вот минусов достаточно много, потому уже заранее можно предположить, что процент распознавания данной CAPTCHA будет не очень высоким.
Основываясь на том, что главные распознаваемые символы чёрного цвета, изображение было легко преобразовано в монохромное (рис. 11).
Рисунок 11 - Полученное монохромное изображение
Просмотрев немалое количество картинок, было замечено, что используются двадцать различных символов (2345678abcdefgmnpwxy), а также, что они не выходят за пределы меньшего прямоугольника, потому, подобрав его координаты, сделали обрезание изображения, тем самым избавились от немалого количества шумов и «мусора» (рис. 12).
Рисунок 12 - Изображение после обрезания
Далее предстояло по возможности убрать кривую, перечеркивающую текст. Для этих целей был выбран алгоритм преобразований Хафа [3]. По сравнению с генетическими алгоритмами, он является математически более строгим и детерминированным алгоритмом, в котором нет влияния случайного фактора. Кратко, смысл алгоритма заключается в том, что любая прямая на плоскости может быть задана двумя переменными - углом наклона и расстоянием от начала координат (theta, r). Эти переменные можно рассмотреть как признаки, они формируют своё собственное двумерное пространство. Так как прямая есть совокупность точек, и каждой из них соответствует своя пара признаков (theta, r), то в пространстве этих признаков мы будем иметь скопления точек (максимумы на пересечении) в пределах конечных окрестностей признаков, соответствующие точкам прямой на исходной плоскости(изображении). Реализация данного алгоритма была найдена в модуле OpenCV. Воспользовавшись ей, удалось удалить большую часть кривой линии (рис. 13).
Рисунок 13 - Изображение после применения преобразований Хафа
После проведенных ранее преобразований можно заметить, что была потеряна незначительная часть полезной информации, также на это повлияло размытие в центре изображения. Возникла идея попытаться её восстановить с помощью морфологических алгоритмов. Лучше всего подошёл Dilate - растягивание(операция расширения) (рис. 14).
Рисунок 14 - Изображение после применения Dilate
Избавившись по максимуму от шумов, начали думать об разделении символов. Здесь возникают проблемы, описанные выше в анализе. Плавающее положение символов и изменение их размера не позволяют нам опираться на единые координаты и расположение, также символы часто соприкасаются.
Ясно, что делить надо по вертикали. Недолго думая, решили посчитать количество белых пикселей в каждом столбце изображения, для большей наглядности построили график, используя библиотеку matplotlib (рис. 15).
Рисунок 15 - График распределения точек в столбцах по вертикали
Если соотнести график с изображением, то можно заметить наличие 4-х локальных минимумов. Основываясь на этом, была проведена нарезка символов. Все полученные изображения после сегментации привели к единому размеру 22х22. (рис. 16).
Затем начали заниматься созданием и обучением нейросети. Для этих целей была найдена библиотека FANN. Из 500 изображений (по 5 символа на каждом) было получено около 1600 образцов приемлемого качества и содержания, использованных для обучения (рис 17).
Рисунок 17 - Образцы сегментов для символов «3» и «4»
На вход подавался массив из 22*22 = 484 пикселей (точнее передаём 255, если пиксель значащий и 0, если фон), на выходе получаем массив из 20, каждый элемент которого отражает принадлежность входного массива к тому или иному символу. Таким образом, входной слой нашей нейросети состоит из 484 нейронов, выходной из 20. Полученной выборки для успешного обучения хватило. Далее было проведено тестирование для получения приблизительного процента распознавания данной CAPTCHA (рис. 18).
Рисунок 18 - Результат тестирования
Из результатов тестирования было замечено, что на распознавание одной картинки уходит в среднем 0.3 секунды, что довольно неплохо, также приблизительный процент распознавания составил 33%, как и предполагалось выше, он получился не очень высоким.
Входные данные: картинка размером 200х50
Шаг 1: Преобразуем входную картинку в монохромную.
Шаг 3: Удаляем большую часть кривой линии с помощью преобразований Хафа.
Шаг 4: Восстанавливаем часть утраченной полезной информации с помощью морфологических алгоритмов, а именно Dilate
Шаг 5: Производим нарезку символов.
Шаг 6: Приводим все сегменты к одинаковому размеру 22х22 пикселей
Шаг 7: Подаем каждый сегмент на анализ обученной нейронной сети
Алгоритм распознавания второй CAPTHA почты Китая
Распознав первую CAPTCHA, радоваться пришлось недолго, через недельку китайцы решили её обновить. Приступили к распознаванию новой CAPTCHA, скачали 600 различных вариантов (рис. 19).
Рисунок 19 - Образец второй CAPTCHA почты Китая
• палитра от белого до тёмно-серого и чёрный цвет;
• плавающее положение символов и изменение их размера;
• постоянно меняется наклон символов;
• различный эффект размытия всех символов
К плюсам данной CAPTCHA по сравнению с предыдущей можно отнести отсутствие шума, но минусов тут тоже немаленькое количество. Некоторые образцы показали, что даже человеку может быть иногда не под силу понять, что за текст изображен на данной картинке (рис. 20).
Рисунок 20 - Нераспознаваемый образец CAPTCHA
Потому заранее можно предположить, что процент распознавания новой CAPTCHA будет не особо сильно превышать процент предыдущей.
Основываясь на том, что главные распознаваемые символы чёрного цвета, преобразуем изображение в монохромное (рис. 21).
Рисунок 21 - Полученное монохромное изображение
Просмотрев немалое количество картинок, было замечено, что словарь используемых символов абсолютно не изменился (2345678abcdefgmnpwxy).
На рисунке 21 можно заметить, что картинка обрамлена белой рамочкой, избавимся от неё, обрезав изображение со всех сторон по 2 пикселя. (рис. 22).
Рисунок 22 - Изображение после обрезания
На рисунке 22 видно, что из-за присутствия размытия символов, часть нужной информации все-таки потерялась. Здесь нам на помощь придут опять морфологические алгоритмы. Воспользуемся снова Dilate - растягивание(операция расширения) (рис. 23).
Рисунок 23 - Изображение после применения Dilate
Получив изображение с приемлемым качеством информации, начали думать об разделении символов. Так как символы часто меняют наклон, и эффект размытия иногда сильный, будет довольно тяжело произвести хорошую сегментацию. Метод, которым мы пользовались для разделения символов в предыдущем варианте CAPTCHA проявил себя не очень хорошо. Прочитав статью «Распознавание некоторых современных CAPTCHA» [4], возникла идея применить поиск компонент связности. (рис. 24).
Рисунок 24 - Поиск компонентов связности
Нетрудно заметить, что некоторые символы оказались объединены в один компонент связности, в связи с чем надо их разделять. Здесь на помощь приходит тот факт, что на изображении всегда ровно 5 символов. Это позволяет с большой точностью вычислять, сколько символов находится в каждом найденном компоненте. Для объяснения принципа работы такого алгоритма придётся немного углубиться в матчасть. Обозначим количество найденных сегментов за n, а массив ширин всех сегментов за widths[n]. Будем считать, что если после вышеупомянутых этапов n > 5, изображение распознать не удалось. Рассмотрим все возможные разложения числа 5 на целые положительные слагаемые. Их немного -- всего 16. Каждое такое разложение соответствует некоторой возможной расстановке символов по найденным компонентам связности. Логично предположить, что чем шире получившийся сегмент, тем больше символов он содержит. Из всех разложений пятёрки выберем только те, в которых количество слагаемых равно n. Поделим каждый элемент из widths на widths[0] -- как бы нормализуем их. То же самое проделаем со всеми оставшимися разложениями -- поделим каждое число в них на первое слагаемое. А теперь заметим, что получившиеся упорядоченные n-ки можно мыслить как точки в n-мерном пространстве. С учётом этого, находим ближайшее по Евклиду разложение пятёрки к нормализованному widths. Это и есть искомый результат (рис. 25).
Рисунок 25 - Разбиение на сегменты с помощью компонентов связности
Основываясь на этих данных, производим нарезку символов, приведя изображения к единому размеру 18х18. (рис. 26).
После получения сегментов начнём созданием и обучением нейросети. Из 600 изображений (по 5 символа на каждом) было получено около 2860 образцов приемлемого качества и содержания, использованных для обучения (рис 27).
Рисунок 27 - Образцы сегментов для символов «7» и «8»
На вход подавался массив из 18*18 = 324 пикселей (точнее передаём 255, если пиксель значащий и 0, если фон), на выходе получаем массив из 20, каждый элемент которого отражает принадлежность входного массива к тому или иному символу. Таким образом, входной слой нашей нейросети состоит из 324 нейронов, выходной из 20. Полученной выборки для успешного обучения хватило. Далее было проведено тестирование для получения приблизительного процента распознавания новой CAPTCHA (рис. 28).
Рисунок 28 - Результат тестирования
Из результатов тестирования было замечено, что на распознавание одной картинки уходит в среднем 0.1 секунды, что получается в 3 раза быстрее предыдущей, также приблизительный процент распознавания составил 53%.
Входные данные: картинка размером 85х35
Шаг 1: Преобразуем входную картинку в монохромную.
Шаг 2: Убираем рамку, обрезая изображение.
Шаг 4: Восстанавливаем часть утраченной полезной информации с помощью морфологических алгоритмов, а именно Dilate
Шаг 5: Производим сегмен
Трекинг почтовых отправлений дипломная работа. Программирование, компьютеры и кибернетика.
Сочинение На Тему Коррупция Глазами Детей
Курсовая работа по теме Анализ финансового состояния предприятия на примере ОАО 'Пивоваренная компания 'Балтика'
Курсовая Работа На Тему Понятие "Жизненный Стиль" В Психологическом Консультировании
Контрольная Работа 2 1 3 8
Курсовая работа: Энергетические центры человека (чакры). Скачать бесплатно и без регистрации
Курсовая работа по теме Морфологические и линейно-весовые особенности плотвы обыкновенной (Rutilus Rutilus L.) реки Иртыш
Контрольная работа по теме Распространение месторождений торфяных лечебных грязей России
Курсовой Переулок 15
Курсовая Работа На Тему Дети С Овз
Демоверсия Контрольной Работы По Физике
Доклад: Boston
Реферат по теме П. Л. Шиллинг и его телеграф
Контрольная работа по теме Электрические и электронные аппараты
Реферат На Тему Информационный Поиск В Правовой Сфере
Курсовая Афиша Выставочной Деятельности
Реферат по теме Бесков Константин Иванович
Курсовая работа: Расчет транспортных двигателей
Реферат На Тему Инфекционная Бурсальная Болезнь
Право Курсовая Заказать
Реферат: Характеристика сущности и особенностей функционирования исламских банков
Стадии административного процесса. Полномочия Президента РБ - Государство и право контрольная работа
Основные принципы ценообразования - Маркетинг, реклама и торговля курсовая работа
Духовна культура українського народу - Культура и искусство лекция