exponenta event banner

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, где каждая строка имеет вид [ширина высоты ]. Матрица определяет высоту и ширину М полей привязки. Этот ввод устанавливает AnchorBoxes свойство выходного слоя. Для оценки полей привязки на основе данных обучения можно использовать метод кластеризации. Дополнительные сведения см. в разделе Оценка полей привязки из данных обучения.

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

Свойства

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

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

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

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

Функция потери, установленная как 'mean-squared-error'. Дополнительные сведения о функции потерь см. в разделе Функция потерь для уточнения ограничивающей рамки.

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

Набор анкерных ящиков, используемых для обучения, задается в виде матрицы M-by-2, определяющей ширину и высоту М числа анкерных ящиков. Это свойство задается вводом 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 

Подробнее

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

Совет

Чтобы повысить точность прогнозирования, можно:

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

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

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

Ссылки

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

[2] Иосиф. Р и Ф. Али. «YOLO 9000: лучше, быстрее, сильнее». В материалах Конференции IEEE по компьютерному зрению и распознаванию образов (CVPR), стр. 6517-6525. Гонолулу, HI: CVPR, 2017.

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

.
Представлен в R2019a