yolov2OutputLayer

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

Описание

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

Создание

Описание

пример

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

пример

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

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

расширить все

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

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

Свойства

расширить все

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

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

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

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

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

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

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

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

Веса в функции потерь, определенной как вектор формы 1 на 4 [<reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0> ]. Веса увеличивают стабильность сетевой модели, штрафуя неправильные ограничительные прямоугольные предсказания и ложные классификации. Для получения дополнительной информации о весах потерь функции, см. «Функция потерь для уточнения ограничивающего прямоугольника».

Типы данных: 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 

Подробнее о

расширить все

Совет

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

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

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

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

Ссылки

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

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

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

.
Введенный в R2019a