Классификация изображений с помощью предварительно обученной сети

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

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

Загрузка предварительно обученной сети

Загрузите предварительно обученную сеть GoogLeNet. Можно также выбрать загрузку другой предварительно обученной сети для классификации изображений. Для этого шага требуется Модель Deep Learning Toolbox™ для пакета поддержки GoogLeNet Network. Если у вас нет установленных необходимых пакетов поддержки, то программное обеспечение предоставляет ссылку на загрузку.

net = googlenet;

Чтение и изменение размера изображения

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

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

I = imread("peppers.png");
inputSize = net.Layers(1).InputSize;
I = imresize(I,inputSize(1:2));

Классификация и отображение изображения

Классификация и отображение изображения с предсказанной меткой.

label = classify(net,I);
figure
imshow(I)
title(string(label))

Figure contains an axes. The axes with title bell pepper contains an object of type image.

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

Для следующих шагов глубокого обучения можно использовать предварительно обученную сеть для других задач. Решите новые классификационные задачи на данных изображения с помощью передачи обучения или редукции данных. Для примеров смотрите Начать Глубокое Обучение Быстрее С Помощью Передачи обучения и Обучить Классификаторы С Использованием Функций, Извлеченных из Предварительно Обученных Сетей. Чтобы попробовать другие предварительно обученные сети, см. Pretrained Deep Neural Networks.

Ссылки

  1. Сегеди, Кристиан, Вэй Лю, Янцин Цзи, Пьер Сермане, Скотт Рид, Драгомир Ангуэлов, Думитру Эрхан, Винсент Ванхукке, и Эндрю Рабинович. «Все глубже со свертками». В материалах конференции IEEE по компьютерному зрению и распознаванию шаблонов, стр. 1-9. 2015.

  2. Модель BVLC GoogLeNet. https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet

См. также

| |

Похожие темы