yolov2OutputLayer

Создайте выходной слой для сети обнаружения объектов YOLO v2

Описание

yolov2OutputLayer функция создает YOLOv2OutputLayer объект, который представляет выходной слой для вас, смотрит только однажды версия 2 (YOLO v2) сеть обнаружения объектов. Выходной слой обеспечивает усовершенствованные местоположения ограничительной рамки целевых объектов.

Создание

Описание

пример

layer = yolov2OutputLayer(anchorBoxes) создает YOLOv2OutputLayer объект, layer, который представляет выходной слой для сети обнаружения объектов YOLO v2. Слой выводит усовершенствованные местоположения ограничительной рамки, которые предсказаны с помощью предопределенного набора полей привязки, заданных во входе.

пример

layer = yolov2OutputLayer(anchorBoxes,Name,Value) устанавливает дополнительные свойства с помощью пар "имя-значение" и входа от предыдущего синтаксиса. Заключите каждое имя свойства в одинарные кавычки. Например, yolov2OutputLayer('Name','yolo_Out') создает выходной слой с именем 'yolo_Out'.

Входные параметры

развернуть все

Набор полей привязки в виде M-by-2 матрица, где каждая строка имеет форму [height width]. Матрица задает высоту и ширину количества M полей привязки. Этот вход устанавливает AnchorBoxes свойство выходного слоя. Можно использовать кластеризирующийся подход для оценки полей привязки от обучающих данных. Для получения дополнительной информации смотрите Оценочные Поля Привязки От Обучающих данных.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Свойства

развернуть все

Имя слоя в виде вектора символов или строкового скаляра. Чтобы включать слой в график слоев, необходимо задать непустое, уникальное имя слоя. Если вы обучаете серийную сеть со слоем и Name установлен в '', затем программное обеспечение автоматически присваивает имя к слою в учебное время.

Типы данных: char | string

Это свойство доступно только для чтения.

Функция потерь, набор как 'mean-squared-error'. Для получения дополнительной информации о функции потерь, смотрите Функцию потерь для Улучшения Ограничительной рамки.

Это свойство доступно только для чтения.

Набор полей привязки, используемых для обучения в виде M-by-2 матрица, задающая ширину и высоту количества M полей привязки. Это свойство установлено входом anchorBoxes.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Это свойство доступно только для чтения.

Веса в функции потерь в виде вектора 1 на 4 из формы [K1 K2 K3 K4]. Веса увеличивают устойчивость сетевой модели путем наложения штрафа на неправильные предсказания ограничительной рамки и ложные классификации. Для получения дополнительной информации о весах в потере функция, смотрите Функцию потерь для Улучшения Ограничительной рамки.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Классы выходного слоя в виде категориального вектора, массива строк, массива ячеек из символьных векторов или 'auto'. Используйте эту пару "имя-значение", чтобы задать имена классов объектов во входных обучающих данных.

Если значение установлено к 'auto', затем программное обеспечение автоматически устанавливает классы в учебное время. Если вы задаете массив строк или массив ячеек из символьных векторов str, затем программное обеспечение устанавливает классы выходного слоя к categorical(str). Значением по умолчанию является 'auto'.

Типы данных: char | string | cell | categorical

Количество входных параметров слоя. Этот слой принимает один вход только.

Типы данных: double

Введите имена слоя. Этот слой принимает один вход только.

Типы данных: cell

Примеры

свернуть все

Создайте YOLO v2 выходной слой с двумя полями привязки.

Задайте высоту и ширину полей привязки.

anchorBoxes = [16 16;32 32];

Задайте имена классов объектов в обучающих данных.

classNames = {'Vehicle','Person'};

Сгенерируйте YOLO v2 выходной слой с именем "yolo_Out".

layer = yolov2OutputLayer(anchorBoxes,'Name','yolo_Out','Classes',classNames);

Смотрите свойства YOLO v2 выходной слой.

layer
layer = 
  YOLOv2OutputLayer with properties:

            Name: 'yolo_Out'

   Hyperparameters
         Classes: [2x1 categorical]
    LossFunction: 'mean-squared-error'
     AnchorBoxes: [2x2 double]
     LossFactors: [5 1 1 1]

Можно считать значения для Classes свойство при помощи записи через точку layer.Classes. Функция хранит имена классов как категориальный массив.

layer.Classes
ans = 2x1 categorical
     Vehicle 
     Person 

Больше о

развернуть все

Советы

Чтобы улучшить точность предсказания, вы можете:

  • Обучите сеть с большим количеством количества изображений. Можно расширить обучающий набор данных посредством увеличения данных. Для получения информации о том, как применить увеличение данных для обучающего набора данных, смотрите, Предварительно обрабатывают Изображения для Глубокого обучения (Deep Learning Toolbox).

  • Выполните многошкальное обучение при помощи trainYOLOv2ObjectDetector функция. Для этого задайте 'TrainingImageSize'аргумент trainYOLOv2ObjectDetector функция для того, чтобы обучить сеть.

  • Выберите поля привязки, соответствующие набору данных для того, чтобы обучить сеть. Можно использовать estimateAnchorBoxes функция, чтобы вычислить поля привязки непосредственно из обучающих данных.

Ссылки

[1] Джозеф. R, С. К. Диввэла, Р. Б. Джиршик и Ф. Али. "Вы Только Взгляд Однажды: Объединенное, Обнаружение объектов В реальном времени". В Продолжениях Конференции по IEEE по Компьютерному зрению и Распознаванию образов (CVPR), стр 779–788. Лас-Вегас, NV: CVPR, 2016.

[2] Джозеф. R и Ф. Али. "YOLO 9000: Лучше, Быстрее, Более сильный". В Продолжениях Конференции по IEEE по Компьютерному зрению и Распознаванию образов (CVPR), стр 6517–6525. Гонолулу, HI: CVPR, 2017.

Расширенные возможности

Введенный в R2019a