trainFasterRCNNObjectDetector

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

Описание

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

пример

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

Эта функция требует, чтобы у вас были Deep Learning Toolbox™. Рекомендуется также иметь Parallel Computing Toolbox™ для использования с CUDA®-активный NVIDIA® ГРАФИЧЕСКИЙ ПРОЦЕССОР. Для получения информации о поддерживаемых вычислительных возможностях смотрите Поддержку GPU by Release (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);

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

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 или таблица.

Каждый ограничивающий прямоугольник должен быть в формате [<reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0> ].

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

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

    Для получения дополнительной информации смотрите Datastores for Глубокое Обучение (Deep Learning Toolbox).

  • Если вы используете таблицу, таблица должна иметь два или более столбцов. Первый столбец таблицы должен содержать имена файлов изображений с путями. Изображения должны быть полутоновыми или truecolor (RGB), и они могут быть в любом формате, поддерживаемом imread. Каждый из остальных столбцов должен быть вектором камеры, который содержит M на 4 матрицы, которые представляют один класс объекта, такой как vehicle, flower или stop sign. Столбцы содержат двойные массивы с 4 элементами M ограничивающих прямоугольников в формате [x, y, width, height]. Формат задает положение верхнего левого угла и размер ограничивающего прямоугольника на соответствующем изображении. Чтобы создать таблицу основной истины, можно использовать приложение Image Labeler или Video Labeler app. Чтобы создать таблицу обучающих данных из сгенерированной основной истины, используйте 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 Booling Layer OutputSize (Выходной размер слоя объединения ROI)Описание
    alexnet (Deep Learning Toolbox)'relu5'[6 6]Последний максимальный слой объединения заменяется информацией только для чтения максимальный слой объединения
    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'

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

    Совет

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

Для получения дополнительной информации о создании сети Faster R-CNN, смотрите Начало работы с R-CNN, Fast 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 должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке 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'to 'end-to-end', количество предложений региона может быть задано как вектор 1 на 2. Первым элементом вектора должно быть число регионов, выбранных для подсети предложения региона. Вторым элементом должно быть число регионов, выбранных для подсети классификации регионов.

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

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

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

свернуть все

Обученный детектор объектов 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 Booling Layer OutputSize (Выходной размер слоя объединения ROI)Описание
    alexnet (Deep Learning Toolbox)'relu5'[6 6]Последний максимальный слой объединения заменяется информацией только для чтения максимальный слой объединения
    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, Fast R-CNN и Модель Faster R-CNN.

  • Во время обучения из обучающих изображений обрабатываются несколько областей изображения. Количество регионов изображения на изображение контролируется NumRegionsToSample свойство. The 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] Ren, S., K. He, R. Girschick, and J. Sun. «Faster R-CNN: To Real-Time Обнаружения объектов with Области Opporation Networks». Усовершенствования в системах нейронной обработки информации. Том 28, 2015.

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

[3] Гиршик, Р., Дж. Донахью, Т. Даррелл и Дж. Малик. «Богатые иерархии функций для точного обнаружения объектов и семантической сегментации». Материалы Конференции IEEE по компьютерному зрению и распознаванию шаблонов 2014 года, 580-587. Columbus, OH: IEEE, 2014.

[4] Zitnick, C. L., and P. Dollar. «Краевые рамки: определение местоположения предложений объектов с ребер». Computer Vision-ECCV 2014, 391-405. Цюрих, Швейцария: ECCV, 2014.

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

Введенный в R2017a