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

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

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



[] bigNetworkLayers = { 12000, 1000, 1 }; //слои больших сетей

int trainDataCreationCounter; //счетчик создания данных для обученияtrainDataCreationWorkAmount; //объём работы данных обученияtrainDataCreationThreadCount; //количество потоков данных обучения

public int TrainDataCreationThreadCount

{{ return trainDataCreationThreadCount; }{ trainDataCreationThreadCount = value; }

}networkTrainCounter; //счетчик обучения сетейnetworkTrainWorkAmount; //объём работы обучения сетей

int networkTrainThreadCount; //количество потоков обучения сетей

public int NetworkTrainThreadCount

{{ return networkTrainThreadCount; }{ networkTrainThreadCount = value; }

}networkCreateCounter; //счетчик создания сетейnetworkCreateWorkAmount; //объём создания сетейnetworkCreateThreadCount; //потоки создания сетейint NetworkCreateThreadCount

{{ return networkCreateThreadCount; }{ networkCreateThreadCount = value; }

}

}

Описание интерфейса работы программы

При запуске программы появляется главное окно приложения:

Рис. 9.Окно программы после запуска

Приведем описание интерфейса

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

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

Рис. 10.Окно программы с загруженным списком категорий

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

Рис. 11.Процесс парсинга указанных категорий

После окончания работы окно программы будет выглядеть следующим образом:

Рис. 12.Работа окончена

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

Рис. 13.Главное окно программы для классификации товаров

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

При нажатии кнопки подготовить данные для обучения программа начнет работу:

Рис. 14.Создание файлов обучения

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

Для классификации товара, нужно нажать кнопку Работать, затем выбрать изображение этого товара, и дождаться результата классификации.

Рис. 15.Результат классификации

.2Апробация методики

Для тестирования методики классификации товаров была произведена случайная выборка 20 категорий, общее количество товаров составило 8442, образов - 19863.Классификация осуществлялась в восемь потоков. Для осуществления тестирования были отобраны 2000 случайных товаров, по 100 штук для каждой категории, успешным результат тестирования для одного товара считался, если сеть, к категории которой принадлежит данный товар, возвращала выходной сигнал на 90% и более соответствующий эталонному сигналу. Настройки нейронных сетей: число нейронов во входном слое - 3072, в скрытом - 512, в выходном - 1, шаг обучения 1*10-10, максимальное количество эпох при обучении - 1*109, максимально допустимая погрешность - 1*10-10.

Рис. 16.Процент верно классифицированных товаров по категориям

Как видно из графика, представленного на рисунке выше, точность классификации товаров варьируется от 66 до 89%. Точность классификации напрямую зависит от количества образов, которое было дано сети для обучения. Максимальная точность была достигнута для сети с 4867 образами. Соответствие категорий их идентификаторам приведено в таблице 1.

Таблица 1

Наименование категорииИдентификаторНожи65655Фонари68548Цифровые зеркальные камеры70303Роликовые коньки72009Дефлекторы72010Палатки72011Фаркопы72012Гири72013Гантели72014Мячи72015Материнские платы75149Шахматы105062iPhone105353iPhone3GS105354iPhone 3GS White105355iPhone4S105356iPhone 4S White105357USB флешки106445Металлоискатели108909

Нейронные сети в основе системы были выбраны потому, что немаловажным аспектом работы программы является её быстродействие, далее будет осуществлено тестирование скорости работы приложения.

Тестовая конфигурация аппаратного обеспечения приведена в таблице 2.

Таблица 2

Процессор AMD FX-8120 4600 MHzОперативная памятьKingston HyperXT1 16Gb 1866 MHzЖесткий дискOCZ Vertex Turbo 30Gb, 2xWD Caviar Green 1Tb Raid1Блок питанияEnermax Revolution85+ 920W

Результаты тестирования производительности будут представлены в порядке последовательного выполнения всех узлов программы: от парса категорий до непосредственной работы нейронных сетей. Всего на сайте представлено 5116 категорий, общее время парса всех категорий составляет 36-38 секунд.

Рис. 17.Время парсинга категорий

На графике, изображенном на рисунке 17,представлены произвольные 11 категорий, максимальное вр