Разработка автоматизированной веб-ориентированной системы составления каталога товаров при поиске по изображениям

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?ие метода SURF для поиска групп одинаковых товаров.

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

Метод SURF состоит из двух этапов.

На первом этапе метода SURF составляются дескрипторы особых точек для главных изображений товаров. Данный этап производится в несколько потоков для уменьшения времени.

На втором этапе производятся сравнения дескрипторов особых точек различных изображения и формируются группы одинаковых товаров. У каждой группы формируется ряд эталонных товаров, с которыми впоследствии и производятся сравнения.

Для сокращения времени составления групп сравниваются товары только из одинаковых категорий.

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

Методика состоит в следующем: когда на вход поступает очередной товар он сравнивается с эталонными товарами уже существующих групп, если он не входит ни в одну из существующих, то добавляется новая группа, и товар попадает в эталонный. Если же товар входит в группу, то он попадает либо в эталонные товары, если их недостаточное количество, либо просто заносится в группу.

2.2 Сравнительный анализ метода SURF

Метод SURF отличается от других подобных методов быстротой исполнения и качеством. Он обеспечивает инвариантность относительно масштабирования, небольшого поворота, потере качества и остается эффективным при наличии шумов.

Мною был реализован метод на языке C#, что позволяет обеспечить оптимизацию кода под архитектуру процессора, на которой исполняется данный метод.

Для достаточно большого изображения с разрешением 1024768 и большим количеством особых точек (около 1000) метод обрабатывает изображение около 2х секунд.

Подобная реализация библиотеки, реализованная на языке C++ и скачанная с сайта sourceforge.com, производит эти вычисления в 2 раза дольше.

В связи с этим можно считать выбор данного метода и его реализации удачным.

3. Программная реализация. Апробация методики

3.1 Описание программного обеспечения

Для обработки данных была разработана программа на языке программирования C#, в среде программирования Microsoft Visual Studio 2011 Ultimate Edition beta. Для хранения данных была использована СУБД MS SQL Server 2008 Express Edition.

Программа обрабатывает информацию следующего вида:

1.Страница, с данными о товарной позиции.

.1Название товара.

1.2Ссылка на товар

.3Категория товара

.4Цена товара

.5Цена доставки

.6Параметры товара

.7Форм-фактор посылки.

.8Главное изображение

.9Все остальные изображения.

.10Отзывы, оставленные покупателями

.11Полная информация о покупателях.

2.Главное изображение товара при составлении дескрипторов особых точек для последующего сравнения.

Результатами работы приложения является:

1.Заполненная база данных о товарах.

2.Составленные группы одинаковых товаров.

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

На следующем рисунке представлена структурная схема приложения:

Рисунок 1. Структурная схема приложения

На рисунке 2 представлена структура работы приложения.

Рис. 3. Структура работы приложения

Основные модули, описывающие работу приложения.

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

2.MagazineClasses - модуль содержащий классы характеризующие сеть электронных магазинов.

3.BrowserExtention - модуль, содержащий расширения для работы с браузером.

4.Parser - модуль, отвечающий за парс товаров

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

6.SURF - модуль, отвечающий за реализацию метода SURF.

7.StringCompare - модуль, отвечающий за реализацию метода нечеткого сравнения строк

8.DBWorker - модуль, отвечающий за работу с базой данных

9.UI - модуль отвечающий за пользовательский интерфейс

10.Loger - модуль, отвечающий за запись лога.

11.SettingsWorker - класс для чтения и записи настроек программы.

Описание классов.

Для реализации задачи поставленной в рамках данной дипломной работы был разработан набор классов следующей структуры.

Класс Shop содержит поля для представления магазина.

Класс Product содержит поля для представления товара.

Класс ProductImage содержит поля для представления изображения товара.

Класс Category содержит поля для представления категории товаров.

Класс SubCategory содержит поля для представления подкатегории товара.

Класс MarketUser содержит поля для представления покупателя.

Класс Feedback содержит поля для представления отзыва покупателя о товаре.

Класс ProductInfoForCompare содержит поля и методы для сравнения товаров.

Класс IdenticalProductGroup инкапсулирует в себе данные для построения группы одинаковых товаров.

Класс DBWorker предназначен для работы с базой данных.

Класс ShopValidater предназначен для выявления существующих магазинов.

Класс ParallelShopValidater, содержащий и управляющий коллекцией объектов класса ShopValidater, предна