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: [2×1 categorical]
    LossFunction: 'mean-squared-error'
     AnchorBoxes: [2×2 double]
     LossFactors: [5 1 1 1]

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

layer.Classes
ans = 2×1 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.

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

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Введенный в R2019a