Разработка автоматизированной системы классификации товаров по изображениям
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
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.
Кла