Разработка автоматизированной системы классификации товаров по их изображениям
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
недорогих решений.
Разработка приложений в MicrosoftVisualStudio2010 Ultimate на языке C# с фреймворком.NETFramework4.0 осуществляется с применением объектно-ориентированного программирования и визуального программирования.
Глава 2.Методика
.1Способ получения информации с веб-ресурсов
При исследовании средств получения информации с сайта molotok.ru выявлено отсутствие API, позволяющего получить необходимые исходные данные. Поэтому получение информации будет производиться непосредственно с веб-страниц сайта. Для этого необходим программный доступ к элементам страницы. Также необходимо учесть, что часть элементов на странице генерируются при помощи JavaScript и AJAX. Поэтому выполнения простых HTTP запросов (классы WebRequestи WebResponse) недостаточно, необходимо обеспечить выполнение JavaScriptи AJAX на странице. В связи с этим в качестве объекта, получающего страницы с сайта, был выбран стандартный для MSVisualStudioкласс WebBrowser, который представляет оболочку для неуправляемого объекта на основе браузераInternet Explorer, версии идентичной установленному в системе.
Стандартных методов, предоставляемых классом WebBrowser недостаточно, чтобы эффективно обрабатывать страницы веб-сайта, поэтому было создано расширение для данного класса.
,html-...">Сайт molotok.ru является крупным интернет-аукционом с большим количеством категорий, в которых может представляться товар. Таким образом, сначала необходимо получить полный список категорий, с сохранением уровней вложенности т.к. это потребуется в дальнейшем. Это удобно сделать при помощи веб-страницы сайта Карта категорий (
Рис. 2.Алгоритм получения категорий с веб-ресурса
Следующий этап состоит в получении ссылок на изображения товаров. Для этого необходимо посетить страницы каждой категории, учитывая, что в категории может быть несколько страниц с товарами, но одновременно на странице отображается не более 25 товаров. Открывать страницы с самими товарами не обязательно, так как вся необходимая информация о товарах содержится в html-элементе , который содержит в себе товары и всю информацию о каждом из них. Информацию о товаре можно разделить на два типа: текстовая (Идентификатор товара) и графическая (Изображения товара). Интернет-аукцион сохраняет все изображения товаров на внутреннем хостинге изображений, где они проходят предварительную обработку и приводятся к двум форматам: 64x48 и 400x300. Для каждого товара извлекаются и сохраняются в БД ссылки на его изображения. Следует отметить, что ссылки разделаются на два типа, согласно двум форматам изображений. Этот этап происходит в многопоточном режиме для уменьшения времени, требуемого для обработки товаров. На рисунке далее приведена схема алгоритма.
Рис. 3.Схема алгоритма получения информации о товарах
На последнем этапе программа считывает из БД ссылки на изображения, загружает изображения и сохраняет их на диск, структурируя их при помощи каталогов. Структура имеет следующий вид: каталог размера изображения, каталог категории изображения, каталог товара изображения. Так же есть возможность не обращаться к БД для ускорения работы, если ссылки уже были инициализированы в памяти на предыдущем этапе. Для загрузки изображений по ссылкам используются классы WebRequestи WebResponse. Загрузка происходит в многопоточном режиме.
.2Методика классификации товаров
Для классификации изображений товаров применяются искусственные нейронные сети. Так как количество категорий, на которые необходимо классифицировать товары очень велико, то единая нейронная сеть будет очень ресурсоёмкой, поэтому каждой категории соответствует своя нейронная сеть. Это отрицательно сказывается на быстродействии, но позволяет значительно сэкономить ресурсы памяти, потому что возможно выгружаться из памяти сети поодиночке, что, в свою очередь, придаёт системе гибкость. Количество слоёв в каждой сети равно трём. Обучение нейронных сетей проходит по алгоритму обратного распространения ошибки. Для удобства обучения нейронных сетей все данные перед началом обучения приводятся к единому виду. Процесс обучени