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

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

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



setting - хранит название настройки, тип данных varchar.

value - хранит значение настройки, тип данных varchar.

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

itemId - хранит идентификатор изображения, полученных с веб-ресурса, тип данных bigint.

categoryId - хранит идентификатор категории, к которой относится изображение, тип данных int.

URL - хранит ссылку на изображение, тип данных varchar.

isBig - флаг, определяющий, имеет ли изображение большое разрешение, тип данных bit.

Таблица Categories хранит данные о категориях и их структуре. Приведем описание полей:

id - хранит идентификатор категории, полученный с веб-ресурса, тип данных int.

[level] - уровень категории, тип данных int.

name - название категории, тип данных varchar.

url - ссылка на категорию, тип данных varchar.

parentUrl - ссылка на родительскую категорию, тип данных varchar.

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

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

Для обработки данных разработана программа на языке программирования C# на платформе.net 4.0 в среде программирования Microsoft Visual Studio 2010 Ultimate Edition. Хранение данных осуществлено с использованием СУБД MS SQL Server 2008 R2 Express Edition SP1.

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

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

2.Идентификатор товара.

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

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

.Изображения товара.

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

Заполненная база данных с информацией о категориях и изображениях товаров.

Структурированные, сохранённые локально изображения товаров.

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

1.Изображения товаров

2.Информация для обучения сетей

.Конфигурации сетей

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

Ответ программы о принадлежности товара к категории.

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

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

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

На рисунке 7 представлена структура работы приложения, извлекающего данные с веб-ресурса:

Структура работы приложения извлекающего данные с веб-ресурса

На рисунке 8 представлена структура работы приложения, классифицирующего товары:

Структура работы приложения классифицирующего товары

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

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

DBEngine - модуль для осуществления работы с БД.

ThreadHelper - модуль, содержащий функции для распределения общего объёма работы между потоками.

Logger - модуль, осуществляющий работу с лог-файлами.

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

NeuralNetwork - модуль, содержащий функции для работы с единичной нейронной сетью.

TrainData - модуль формирования информации для обучения нейронных сетей.

NetworkController - модуль для управления работой массива нейронных сетей.

NetworkPool - модуль для группировки нейронных сетей и определения результата классификации.

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

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

Класс Category описывает категорию товаров.

Приведём структуру класса:

public class Category

{int id; // ИД категории в системе сайтаint level; // Уровень вложенияstring name; // Названиеstring url; // ссылкаstring parentURL; // ссылка на категорию-родительList categoryImages; // изображения товаров

}

Класс Image описывает изображение товара.

Приведём структуру класса:

public class Image

{Int64 itemId; // ИД товараint categoryId; // ИД категорииstring URL; // ссылка на изображенияbool isBig; // флаг, показывающий, имеет ли изображение большое разрешение

}

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

Класс DBEngine является контроллером при работе с базой данных.

Приведём структуру класса:

public class DBEngine

{connectionString; // строка подключенияCategoryTable categoryTable; // таблица категорийImageTable imageTable; // таблица изображенийSettingsTable settingsTable; // таблица настроек

}

Класс EngineTable является классом-родителем классам для работы с таблицами базы данных.

Приведём структуру класса:

public class EngineTable

{string tableName; // Имя таблицыstring connectionString; // строка подключения

}

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

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

Класс SettingsTable используется для работы с таблицей настроек в базе данных, является наследником класса EngineTable.

Класс BrowserExtensions используется для расширения возможностей встроенного класса WebBrowser.

Класс TreeViewExtension используется для расширения возможностей встроенного класса TreeView.

Кла