trainFasterRCNNObjectDetector

Обучите детектор объектов глубокого обучения Faster R-CNN

Описание

Обучите детектор

пример

trainedDetector = trainFasterRCNNObjectDetector(trainingData,network,options) обучает Faster R-CNN (области с нейронными сетями свертки) детектор объектов с помощью глубокого обучения. Можно обучить детектор Faster R-CNN обнаруживать несколько классов объектов.

Эта функция требует, чтобы у вас был Deep Learning Toolbox™. Рекомендуется, чтобы у вас также был Parallel Computing Toolbox™, чтобы использовать с CUDA®- активированный NVIDIA® Графический процессор. Для получения информации о поддерживаемом вычислите возможности, смотрите Поддержку графического процессора Релизом (Parallel Computing Toolbox).

[trainedDetector,info] = trainFasterRCNNObjectDetector(___) также возвращает информацию о процессе обучения, таком как учебная потеря и точность, для каждой итерации.

Возобновите обучение детектор

trainedDetector = trainFasterRCNNObjectDetector(trainingData,checkpoint,options) обучение резюме с контрольной точки детектора.

Подстройте детектор

trainedDetector = trainFasterRCNNObjectDetector(trainingData,detector,options) продолжает обучение детектор объектов Faster R-CNN с дополнительными опциями подстройки. Используйте этот синтаксис с дополнительными обучающими данными или выполнять больше учебных итераций, чтобы улучшить точность детектора.

Дополнительные свойства

trainedDetector = trainFasterRCNNObjectDetector(___,Name,Value) дополнительные опции использования заданы одним или несколькими Name,Value парные аргументы и любые из предыдущих входных параметров.

Примеры

свернуть все

Загрузите обучающие данные.

data = load('fasterRCNNVehicleTrainingData.mat');

trainingData = data.vehicleTrainingData;

trainingData.imageFilename = fullfile(toolboxdir('vision'),'visiondata', ...
    trainingData.imageFilename);

Случайным образом переставьте данные для обучения.

rng(0);
shuffledIdx = randperm(height(trainingData));
trainingData = trainingData(shuffledIdx,:);

Создайте datastore изображений с помощью файлов из таблицы.

imds = imageDatastore(trainingData.imageFilename);

Создайте datastore метки поля с помощью столбцов меток из таблицы.

blds = boxLabelDatastore(trainingData(:,2:end));

Объедините хранилища данных.

ds = combine(imds, blds);

Настройте слоя сети.

lgraph = layerGraph(data.detector.Network);

Сконфигурируйте опции обучения.

 options = trainingOptions('sgdm', ...
      'MiniBatchSize', 1, ...
      'InitialLearnRate', 1e-3, ...
      'MaxEpochs', 7, ...
      'VerboseFrequency', 200, ...
      'CheckpointPath', tempdir);

Обучите детектор. Обучение займет несколько минут. Настройте NegativeOverlapRange и PositiveOverlapRange, чтобы гарантировать, что обучающие выборки плотно перекрываются с основной истиной.

detector = trainFasterRCNNObjectDetector(ds, lgraph, options, ...
        'NegativeOverlapRange',[0 0.3], ...
        'PositiveOverlapRange',[0.6 1]);
*************************************************************************
Training a Faster R-CNN Object Detector for the following object classes:

* vehicle

Training on single GPU.
Initializing input data normalization.
|=============================================================================================================================================|
|  Epoch  |  Iteration  |  Time Elapsed  |  Mini-batch  |  Mini-batch  |  Mini-batch  |  RPN Mini-batch  |  RPN Mini-batch  |  Base Learning  |
|         |             |   (hh:mm:ss)   |     Loss     |   Accuracy   |     RMSE     |     Accuracy     |       RMSE       |      Rate       |
|=============================================================================================================================================|
|       1 |           1 |       00:00:00 |       0.8771 |       97.30% |         0.83 |           91.41% |             0.71 |          0.0010 |
|       1 |         200 |       00:01:15 |       0.5324 |      100.00% |         0.15 |           88.28% |             0.70 |          0.0010 |
|       2 |         400 |       00:02:40 |       0.4732 |      100.00% |         0.15 |           92.19% |             0.63 |          0.0010 |
|       3 |         600 |       00:04:03 |       0.4776 |       97.14% |         0.09 |           96.88% |             0.59 |          0.0010 |
|       3 |         800 |       00:05:23 |       0.5269 |       97.44% |         0.18 |           89.06% |             0.68 |          0.0010 |
|       4 |        1000 |       00:06:44 |       0.9749 |      100.00% |              |           85.16% |             1.00 |          0.0010 |
|       5 |        1200 |       00:08:07 |       1.1952 |       97.62% |         0.13 |           77.34% |             1.27 |          0.0010 |
|       5 |        1400 |       00:09:24 |       0.6577 |      100.00% |              |           76.38% |             0.72 |          0.0010 |
|       6 |        1600 |       00:10:46 |       0.6951 |      100.00% |              |           90.62% |             0.94 |          0.0010 |
|       7 |        1800 |       00:12:08 |       0.5341 |       96.08% |         0.09 |           86.72% |             0.53 |          0.0010 |
|       7 |        2000 |       00:13:26 |       0.3333 |      100.00% |         0.12 |           94.53% |             0.61 |          0.0010 |
|       7 |        2065 |       00:13:52 |       1.0564 |      100.00% |              |           71.09% |             1.23 |          0.0010 |
|=============================================================================================================================================|
Detector training complete.
*******************************************************************

Протестируйте детектор Faster R-CNN на тестовом изображении.

img = imread('highway.png');

Запустите детектор.

[bbox, score, label] = detect(detector,img);

Отобразите результаты обнаружения.

detectedImg = insertShape(img,'Rectangle',bbox);
figure
imshow(detectedImg)

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

свернуть все

Помеченная основная истина в виде datastore или таблицы.

Каждая ограничительная рамка должна быть в формате [x y width height].

  • Если вы используете datastore, ваши данные должны быть настроены так, чтобы, вызвав datastore с read и readall функции возвращают массив ячеек или таблицу с двумя или тремя столбцами. Когда выход содержит два столбца, первый столбец должен содержать ограничительные рамки, и второй столбец должен содержать метки, {boxes, labels}. Когда выход содержит три столбца, второй столбец должен содержать ограничительные рамки, и третий столбец должен содержать метки. В этом случае первый столбец может содержать любой тип данных. Например, первый столбец может содержать данные об облаке точек или изображения.

    databoxeslabels

    Первый столбец может содержать данные, такие как данные об облаке точек или изображения.

    Второй столбец должен быть массивом ячеек, который содержит M-by-5 матрицы ограничительных рамок формы [центр x, центр y, width, height, yaw]. Векторы представляют местоположение и размер ограничительных рамок для объектов в каждом изображении.

    Если ограничительная рамка выравнивается осью, то вы не должны задавать рыскание. Поэтому ограничительная рамка была бы описана как M-by-4 матрицы ограничительных рамок формы [центр x, центр y, width, height].

    Третий столбец должен быть массивом ячеек, который содержит M-by-1 категориальные векторы, содержащие имена класса объекта. Все категориальные данные, возвращенные datastore, должны содержать те же категории.

    Для получения дополнительной информации смотрите Хранилища данных для Глубокого обучения (Deep Learning Toolbox).

  • Если вы используете таблицу, таблица должна иметь два или больше столбца. Первый столбец таблицы должен содержать имена файла образа с путями. Изображения должны быть полутоновым или истинным цветом (RGB), и они могут быть в любом формате, поддержанном imread. Каждый из остальных столбцов должен быть вектором ячейки, который содержит M-by-4 матрицы, которые представляют класс отдельного объекта, такой как vehicle, flower или stop sign. Столбцы содержат двойные массивы с 4 элементами ограничительных рамок M в формате [x, y, width, height]. Формат задает местоположение верхнего левого угла и размер ограничительной рамки в соответствующем изображении. Чтобы составить таблицу основной истины, можно использовать приложение Image Labeler или приложение Video Labeler. Чтобы составить таблицу обучающих данных от сгенерированной основной истины, используйте objectDetectorTrainingData функция.

Сеть в виде SeriesNetwork (Deep Learning Toolbox), массив Layer (Deep Learning Toolbox) объекты, layerGraph Объект (Deep Learning Toolbox), или сетевым именем. Сеть обучена, чтобы классифицировать классы объектов, заданные на trainingData таблица. Использовать SeriesNetwork (Deep Learning Toolbox), Layer (Deep Learning Toolbox) и layerGraph (Deep Learning Toolbox) возражает, у вас должен быть Deep Learning Toolbox.

  • Когда вы задаете сеть как SeriesNetwork, массив Layer объекты, или сетевым именем, функция преобразовывает сеть в сеть Faster R-CNN путем добавления сети предложения по области (RPN), ROI, макс. объединяющий слой, и новую классификацию и слои регрессии, чтобы поддержать обнаружение объектов. Кроме того, GridSize свойство ROI, макс. объединяющего слой, установлено в выходной размер последнего макс. слоя объединения в сети.

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

    layers = [imageInputLayer([28 28 3])
            convolution2dLayer([5 5],10)
            reluLayer()
            fullyConnectedLayer(10)
            softmaxLayer()
            classificationLayer()];
    

  • Когда вы задаете сеть как SeriesNetwork объект, Layer массив, или сетевым именем, весами для дополнительной свертки и полносвязных слоев инициализируется к 'narrow-normal'. Функция добавляет эти веса, чтобы создать сеть.

  • Сетевое имя должно быть одним из следующих допустимых сетевых имен. Необходимо также установить соответствующее дополнение.

    Сетевое имяИмя слоя извлечения признаковСлой объединения ROI OutputSizeОписание
    alexnet (Deep Learning Toolbox)'relu5'[6 6]В последний раз макс. объединение слоя заменяется ROI, макс. объединяющим слой
    vgg16 (Deep Learning Toolbox)'relu5_3'[7 7]
    vgg19 (Deep Learning Toolbox)'relu5_4'
    squeezenet (Deep Learning Toolbox)'fire5-concat'[14 14]
    resnet18 (Deep Learning Toolbox)'res4b_relu'Слой объединения ROI вставляется после слоя извлечения признаков.
    resnet50 (Deep Learning Toolbox)'activation_40_relu'
    resnet101 (Deep Learning Toolbox)'res4b22_relu'
    googlenet (Deep Learning Toolbox)'inception_4d-output'
    mobilenetv2 (Deep Learning Toolbox)'block_13_expand_relu'
    inceptionv3 (Deep Learning Toolbox)'mixed7'[17 17]
    inceptionresnetv2 (Deep Learning Toolbox)'block17_20_ac'

  • LayerGraph объект должен быть допустимой сетью обнаружения объектов Faster R-CNN. Можно использовать fasterRCNNLayers функция, чтобы создать LayerGraph объект обучить пользовательскую сеть Faster R-CNN.

    Совет

    Если вашей сетью является DAGNetwork, используйте layerGraph (Deep Learning Toolbox) функция, чтобы преобразовать сеть в LayerGraph объект. Затем создайте пользовательскую сеть Faster R-CNN, аналогичную описанному Создать примером Сети Обнаружения объектов Faster R-CNN.

Для получения дополнительной информации о создании сети Faster R-CNN смотрите Начало работы с R-CNN, Быстрым R-CNN и Faster R-CNN.

Опции обучения, возвращенные trainingOptions Функция (Deep Learning Toolbox) (требует Deep Learning Toolbox). Чтобы задать решатель и другие опции для сетевого обучения, использовать trainingOptions.

Примечание

trainFasterRCNNObjectDetector не поддерживает эти опции обучения:

  • Входные параметры datastore не поддерживаются, когда вы устанавливаете DispatchInBackground опция обучения к true.

Кроме того, функция не поддерживает следующие опции обучения, если вы используете объединенный вход datastore:

  • 'once' и 'every-epoch' значения для 'Shuffle'аргумент

  • 'parallel' и 'multi-gpu' значения для 'ExecutionEnvironment'аргумент

Сохраненная контрольная точка детектора в виде fasterRCNNObjectDetector объект. Чтобы сохранить детектор после каждой эпохи, установите 'CheckpointPath' свойство при использовании trainingOptions функция. Рекомендуется сохранять контрольную точку после каждой эпохи, потому что сетевое обучение может занять несколько часов.

Чтобы загрузить контрольную точку для ранее обученного детектора, загрузите MAT-файл из пути контрольной точки. Например, если 'CheckpointPath' свойство options '/tmp', загрузите MAT-файл на контрольной точке с помощью:

data = load('/tmp/faster_rcnn_checkpoint__105__2016_11_18__14_25_08.mat');

Имя MAT-файла включает номер итерации и метку времени, указывающую, когда контрольная точка детектора была сохранена. Детектор сохранен в detector переменная файла. Передайте этот файл обратно в trainFasterRCNNObjectDetector функция:

frcnn = trainFasterRCNNObjectDetector(stopSigns,...
                           data.detector,options);

Ранее обученный детектор объектов Faster R-CNN в виде fasterRCNNObjectDetector объект. Используйте этот синтаксис, чтобы продолжить обучение детектор с дополнительными обучающими данными или выполнить больше учебных итераций, чтобы улучшить точность детектора.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'PositiveOverlapRange',[0.75 1]

Метод обучения в виде разделенной запятой пары, состоящей из 'TrainingMethod'и любой 'end-to-end' или 'four-step'.

  • 'end-to-end' — Одновременно обучите предложение по области и подсети классификации областей.

  • 'four-step' — Отдельно обучите предложение по области и подсети классификации областей на четырех шагах.

Отношения перекрытия ограничительной рамки для положительных обучающих выборок в виде разделенной запятой пары, состоящей из 'PositiveOverlapRange' и одно из следующего:

  • Вектор с 2 элементами, который задает идентичное отношение перекрытия для всех четырех учебных этапов.

  • Матрица 2 на 2, используемая только для сквозного метода обучения. Первая строка матрицы определяет коэффициенты перекрытия для подсети предложения региона. Вторая строка определяет коэффициенты перекрытия для подсети классификации регионов.

  • Матрица 4 на 2, используемая только для четырехэтапного метода обучения. Каждая строка матрицы определяет коэффициент перекрытия для каждого из четырех этапов обучения.

Значения находятся в области значений [0,1]. Предложения по области, которые перекрываются с ограничительными рамками основной истины в заданной области, используются в качестве положительных обучающих выборок.

Отношение перекрытия, используемое для обоих PositiveOverlapRange и NegativeOverlapRange задан как:

area(AB)area(AB)


A и B являются ограничительными рамками.

Отношения перекрытия ограничительной рамки для отрицательных обучающих выборок в виде разделенной запятой пары, состоящей из 'NegativeOverlapRange'и одно из следующих.

  • Вектор с 2 элементами, который задает отношение перекрытия.

  • Матрица 2 на 2, используемая только для сквозного метода обучения. Первая строка матрицы определяет коэффициенты перекрытия для подсети предложения региона. Вторая строка определяет коэффициенты перекрытия для подсети классификации регионов.

  • Матрица 4 на 2, используемая только для четырехэтапного метода обучения. Каждая строка матрицы определяет коэффициент перекрытия для каждого из четырех этапов обучения.

Значения находятся в области значений [0,1]. Предложения по области, которые перекрываются с ограничительными рамками основной истины в заданной области, используются в качестве отрицательных обучающих выборок.

Отношение перекрытия, используемое для обоих PositiveOverlapRange и NegativeOverlapRange задан как:

area(AB)area(AB)


A и B являются ограничительными рамками.

Максимальное число предложений сильнейших областей, чтобы использовать для генерации обучающих выборок в виде разделенной запятой пары, состоящей из 'NumStrongestRegions' и положительное целое число. Уменьшайте это значение, чтобы ускорить время вычислений за счет учебной точности. Чтобы использовать все предложения по области, установите это значение к Inf.

Количество предложений областей для случайной выборки из каждого обучающего изображения, заданное в виде целого числа, вектора 1 на 2 или вектора 1 на 4. Используйте вектор 1 на 2 для сквозного обучения. Используйте вектор 1 на 4 для четырехэтапного обучения. Уменьшите количество областей для выборки, чтобы уменьшить использование памяти и ускорить обучение. Уменьшение значения может также снизить точность обучения.

Когда вы устанавливаете 'TrainingMethod'end-to-end', количество предложений региона может быть установлено в вектор 1 на 2. Первым элементом вектора должно быть число регионов, произведенное для подсети предложения региона. Вторым элементом должно быть число регионов, произведенное для области classfication подсеть.

Когда вы устанавливаете 'TrainingMethod'four-step', количество предложений региона может быть установлено в вектор 1 на 4. ith элемент задает число регионов к выборке для ith учебный шаг.

Длина самого маленького размера изображения, или ширина или высота в виде разделенной запятой пары, состоящей из 'SmallestImageDimension' и положительное целое число. Учебные изображения изменены таким образом, что длина самой короткой размерности равна заданному целому числу. По умолчанию учебные изображения не изменены. Изменение размеров учебных изображений помогает уменьшать вычислительные затраты и память, используемую, когда учебные изображения являются большими. Типичные значения лежат в диапазоне от 400-600 пикселей.

Зависимости

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

Минимальные размеры поля привязки для создания пирамиды поля привязки сети предложения по области (RPN) в виде разделенной запятой пары, состоящей of'MinBoxSizes' и m-by-2 матрица. Каждая строка задает [height width] поля привязки.

'auto' по умолчанию установка использует минимальный размер и среднее соотношение сторон от ограничительных рамок для каждого класса в достоверных данных. Чтобы удалить избыточные размеры поля, функция сохраняет поля, которые имеют значение пересечения по объединению, которое меньше чем или равно 0,5. Это поведение гарантирует, что минимальное количество полей привязки используется, чтобы покрыть все размеры объекта и соотношения сторон.

Когда поля привязки вычисляются на основе MinBoxSizes, ith размер поля привязки:

round(MinBoxSizes(i,:) .* BoxPyramidScale ,^ (0:NumBoxPyramidLevels-1)')

Зависимости

  • Вы не можете использовать это свойство, если вы задаете сеть как LayerGraph возразите или если вы возобновляете обучение с контрольной точки детектора.

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

Масштабный коэффициент пирамиды поля привязки, используемый, чтобы последовательно увеличить масштаб размеры поля привязки в виде разделенной запятой пары, состоящей из 'BoxPyramidScale' и скаляр. Рекомендуемые значения от 1 до 2. Увеличьте это значение для более быстрых результатов. Сократите число для большей точности.

Зависимости

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

Количество уровней в пирамиде поля привязки в виде разделенной запятой пары, состоящей из 'NumBoxPyramidLevels' и скаляр. Выберите значение, которое гарантирует, что многошкальные поля привязки сопоставимы в размере с размером объектов в достоверных данных.

Настройка по умолчанию 'auto' выбирает количество уровней на основе размера объектов в достоверных данных. Количество уровней выбрано таким образом, что оно покрывает область значений размеров объекта.

Зависимости

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

Нормализация замороженных пакетов во время обучения в виде разделенной запятой пары, состоящей из 'FreezeBatchNormalizationtrue или false. Значение указывает, заморозить ли входные слои сети во время обучения. Установите это значение к true если вы тренируетесь с небольшим размером мини-пакета. Небольшие пакетные размеры приводят к плохим оценкам среднего значения партии и отклонения, которые требуются для эффективной нормализации партии.

Если вы не задаете значение для 'FreezeBatchNormalization', функция устанавливает свойство на:

  • true если 'MiniBatchSize'аргумент значения имени для trainingOptions (Deep Learning Toolbox) функция меньше 8.

  • false если 'MiniBatchSize'аргумент значения имени для trainingOptions (Deep Learning Toolbox) функционирует, больше или равен 8.

Необходимо задать значение для 'FreezeBatchNormalization'чтобы переопределить это поведение по умолчанию.

Эксперимент обучения детектора, контролирующий в виде experiments.Monitor Объект (Deep Learning Toolbox) для использования с приложением Experiment Manager (Deep Learning Toolbox). Можно использовать этот объект отследить прогресс обучения, полей информации об обновлении в учебной таблице результатов, значениях записи метрик, используемых обучением, и произвести учебные графики.

Информация проверена во время обучения:

  • Учебная потеря в каждой итерации.

  • Учебная точность в каждой итерации.

  • Учебная среднеквадратичная ошибка (RMSE) для слоя регрессии поля.

  • Скорость обучения в каждой итерации.

Информация о валидации, когда учебный options введите содержит данные о валидации:

  • Потеря валидации в каждой итерации.

  • Точность валидации в каждой итерации.

  • Валидация RMSE в каждой итерации.

Вычисленные метрики, когда обучение заканчивается:

  • Итоговая потеря валидации в конце обучения.

  • Итоговая валидация RMSE в конце обучения.

Выходные аргументы

свернуть все

Обученный детектор объектов Faster R-CNN, возвращенный как fasterRCNNObjectDetector объект.

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

  • TrainingLoss — Учебная потеря в каждой итерации является среднеквадратической ошибкой (MSE), вычисленной как сумма ошибки локализации, потеря доверия и потеря классификации. Для получения дополнительной информации об учебной функции потерь, смотрите Учебную Потерю.

  • TrainingAccuracy — Точность набора обучающих данных в каждой итерации.

  • TrainingRMSE — Учебная среднеквадратическая ошибка (RMSE) является RMSE, вычисленным от учебной потери в каждой итерации.

  • BaseLearnRate — Скорость обучения в каждой итерации.

  • ValidationLoss — Потеря валидации в каждой итерации.

  • ValidationAccuracy — Точность валидации в каждой итерации.

  • ValidationRMSE — Валидация RMSE в каждой итерации.

  • FinalValidationLoss — Итоговая потеря валидации в конце обучения.

  • FinalValidationRMSE — Итоговая валидация RMSE в конце обучения.

Каждое поле является числовым вектором с одним элементом на учебную итерацию. Значения, которые не были вычислены в определенной итерации, присвоены как NaN. Struct содержит ValidationLoss, ValidationAccuracy, ValidationRMSE, FinalValidationLoss, и FinalValidationRMSE поля только, когда options задает данные о валидации.

Советы

  • Ускорять предварительную обработку данных для обучения, trainFastRCNNObjectDetector автоматически создает и использует параллельный пул на основе ваших параметров параллельных предпочтений. Для получения дополнительной информации об установке этих настроек, смотрите параллельные настройки настройки. Для использования параметров параллельных вычислений требует Parallel Computing Toolbox.

  • VGG-16, VGG-19, ResNet-101 и Inception-ResNet-v2 являются большими моделями. Обучение с большими изображениями может привести к ошибкам "out-of-memory". Чтобы уменьшить эти ошибки, попробуйте один или несколько из следующих вариантов:

    • Уменьшайте размер своих изображений при помощи 'SmallestImageDimension'аргумент.

    • Уменьшите значение 'NumRegionsToSample'аргумент значения имени.

  • Эта функция поддерживает передачу обучения. При вводе network по наименованию, такие как 'resnet50', затем функция автоматически преобразовывает сеть в допустимую сетевую модель Faster R-CNN на основе предварительно обученного resnet50 Модель (Deep Learning Toolbox). В качестве альтернативы вручную задайте пользовательскую сеть Faster R-CNN при помощи LayerGraph (Deep Learning Toolbox) извлечен из предварительно обученной сети DAG. Для получения дополнительной информации смотрите, Создают Сеть Обнаружения объектов Faster R-CNN.

  • Эта таблица описывает, как преобразовать каждую именованную сеть в сеть Faster R-CNN. Имя слоя выделения признаков задает слой для обработки слоем объединения ROI. ROI выходной размер задает размер карт признаков выходного слоя ROI.

    Сетевое имяИмя слоя извлечения признаковСлой объединения ROI OutputSizeОписание
    alexnet (Deep Learning Toolbox)'relu5'[6 6]В последний раз макс. объединение слоя заменяется ROI, макс. объединяющим слой
    vgg16 (Deep Learning Toolbox)'relu5_3'[7 7]
    vgg19 (Deep Learning Toolbox)'relu5_4'
    squeezenet (Deep Learning Toolbox)'fire5-concat'[14 14]
    resnet18 (Deep Learning Toolbox)'res4b_relu'Слой объединения ROI вставляется после слоя извлечения признаков.
    resnet50 (Deep Learning Toolbox)'activation_40_relu'
    resnet101 (Deep Learning Toolbox)'res4b22_relu'
    googlenet (Deep Learning Toolbox)'inception_4d-output'
    mobilenetv2 (Deep Learning Toolbox)'block_13_expand_relu'
    inceptionv3 (Deep Learning Toolbox)'mixed7'[17 17]
    inceptionresnetv2 (Deep Learning Toolbox)'block17_20_ac'

    Для получения информации об изменении, как сеть преобразовывается в сеть Faster R-CNN, см. Проект R-CNN, Быстрый R-CNN и Модель Faster R-CNN.

  • Во время обучения области повторного изображения обрабатываются от изображений обучения, количеством областей изображений на изображение управляет NumRegionsToSample свойство. PositiveOverlapRange и NegativeOverlapRange управление свойствами, которые отображают области, используется для обучения. Положительные обучающие выборки - те, которые перекрываются с основными блоками истинности 0,6 к 1,0, как измерено метрикой пересечения по объединению ограничительной рамки (IoU). Отрицательные обучающие выборки - те, которые перекрываются 0 к 0,3. Выберите значения для этих свойств путем тестирования обученного детектора на наборе валидации.

    Перекройте значенияОписание
    PositiveOverlapRange установите на [0.6 1]Положительные обучающие выборки установлены равные выборкам, которые перекрываются с основными блоками истинности 0,6 к 1,0, измеренный ограничительной рамкой метрика IoU.
    NegativeOverlapRange установите на [0 0.3]Отрицательные обучающие выборки установлены равные выборкам, которые перекрываются с основными блоками истинности 0 к 0,3.

    Если вы устанавливаете PositiveOverlapRange к [0.6 1], затем функция устанавливает положительные обучающие выборки, равные выборкам, которые перекрываются с основными блоками истинности 0,6 к 1,0, измеренный ограничительной рамкой метрика IoU. Если вы устанавливаете NegativeOverlapRange к [0 0.3], затем функция устанавливает отрицательные обучающие выборки, равные выборкам, которые перекрываются с основными блоками истинности 0 к 0,3.

  • Используйте trainingOptions (Deep Learning Toolbox) функция, чтобы включить или отключить многословную печать.

Вопросы совместимости

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

Поведение изменяется в R2019b

Ссылки

[1] Жэнь, S. K. Он, Р. Джиршик и J. Sun. "Faster R-CNN: к обнаружению объектов в реальном времени с сетями предложения по области". Усовершенствования в нейронных системах обработки информации. Издание 28, 2015.

[2] Girshick, R. "Быстрый R-CNN". Продолжения международной конференции IEEE по вопросам компьютерного зрения, 1440-1448. Сантьяго, Чили: IEEE, 2015.

[3] Girshick, R., Дж. Донахью, Т. Даррелл и Дж. Малик. "Богатые Иерархии Функции для Точного Обнаружения объектов и Семантической Сегментации". Продолжения 2 014 Конференций по IEEE по Компьютерному зрению и Распознаванию образов, 580-587. Колумбус, OH: IEEE, 2014.

[4] Zitnick, C. L. и P. Доллар. "Поля ребра: определение местоположения объектных предложений от ребер". Компьютерное-зрение-ECCV 2014, 391-405. Цюрих, Швейцария: ECCV, 2014.

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

Введенный в R2017a