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

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

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



изображения товаров на внутреннем хостинге изображений, где они проходят предварительную обработку и приводятся к двум форматам: 64x48 и 400x300. Для каждого товара извлекаются и сохраняются в БД ссылки на его изображения. Следует отметить, что ссылки разделаются на два типа, согласно двум форматам изображений. Этот этап происходит в многопоточном режиме для уменьшения времени, требуемого для обработки товаров. На рисунке далее приведена схема алгоритма.

Схема алгоритма получения информации о товарах

На последнем этапе программа считывает из БД ссылки на изображения, загружает изображения и сохраняет их на диск, структурируя их при помощи каталогов. Структура имеет следующий вид: каталог размера изображения, каталог категории изображения, каталог товара изображения. Так же есть возможность не обращаться к БД для ускорения работы, если ссылки уже были инициализированы в памяти на предыдущем этапе. Для загрузки изображений по ссылкам используются классы WebRequest и WebResponse. Загрузка происходит в многопоточном режиме.

2.2 Методика классификации товаров

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

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

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

2.3 Алгоритм классификации товаров

На первом этапе классификации программе на вход подаётся изображение товара, после чего изображение подготавливается для подачи на входы нейронных сетей. Для предварительной обработки изображения применяется алгоритм, аналогичный тому, что используются при обработке изображений для обучения нейронных сетей. Суть алгоритма состоит в том, что цвет каждого пикселя усредняется путём нахождения среднего арифметического из его RGB-составляющих, затем полученное число делится на 255 и вычитается из единицы. Таким образом, наибольшей значимостью для нейронных сетей будут обладать тёмные цвета. Так же, если размер изображения отличается от необходимого для подачи на вход нейронной сети, он приводится к требуемому при помощи стандартных алгоритмов для работы с растровыми изображениями, встроенных в платформу.net. Результатом будет массив выходов нейронных сетей для данного товара.

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

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

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

Схема алгоритма классификации товаров

2.4 Принцип хранения данных о товарах

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

Для хранения дерева категорий, ссылок на изображения товаров и настроек программы используется реляционная база данных. В качестве СУБД используется MS SQL Server 2008 R2 Express SP1.

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

На рисунке ниже приведена структура базы данных.

Структура базы данных

Приведем описание таблиц, полей и типов данных, использованных в базе данных:

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