detect

Обнаружьте объекты с помощью детектора объектов Faster R-CNN

Описание

bboxes = detect(detector,I) обнаруживает объекты в изображении I использование Faster R-CNN (области со сверточными нейронными сетями) детектор объектов. Местоположения обнаруженных объектов возвращены как набор ограничительных рамок.

При использовании этой функции использование CUDA® включило NVIDIA® графический процессор с вычислить возможностью 3,0 или выше настоятельно рекомендовано. Графический процессор значительно уменьшает время вычисления. Использование графического процессора требует Parallel Computing Toolbox™.

[bboxes,scores] = detect(detector,I) также возвращает музыку обнаружения к каждой ограничительной рамке.

пример

[___,labels] = detect(detector,I) также возвращает категориальный массив меток, присвоенных ограничительным рамкам, с помощью любого из предыдущих синтаксисов. Метки, используемые в классах объектов, заданы во время обучения с помощью trainFasterRCNNObjectDetector функция.

[___] = detect(___,roi) обнаруживает объекты в прямоугольной поисковой области, заданной roi.

detectionResults = detect(detector,ds) обнаруживает объекты в серии изображений, возвращенных read функция входного datastore.

[___] = detect(___,Name,Value) задает опции с помощью одного или нескольких Name,Value парные аргументы. Например, detect(detector,I,'NumStongestRegions',1000) ограничивает количество самых сильных предложений по области к 1 000.

Примеры

свернуть все

Обнаружьте транспортные средства в изображении при помощи детектора объектов Faster R-CNN.

Загрузите детектор объектов Faster R-CNN, предварительно обученный обнаружить транспортные средства.

data = load('fasterRCNNVehicleTrainingData.mat', 'detector');
detector = data.detector;

Читайте в тестовом изображении.

I = imread('highway.png');
imshow(I)

Запустите детектор на изображении и смотрите результаты. Метки прибывают из ClassNames свойство детектора.

[bboxes,scores,labels] = detect(detector,I)
bboxes = 2×4

   150    86    80    72
    91    89    67    48

scores = 2x1 single column vector

    1.0000
    0.9001

labels = 2x1 categorical array
     vehicle 
     vehicle 

Детектор имеет высокую уверенность в обнаружениях. Аннотируйте изображение ограничительными рамками для обнаружений и соответствующих баллов обнаружения.

  detectedI = insertObjectAnnotation(I,'Rectangle',bboxes,cellstr(labels));
  figure
  imshow(detectedI)

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

свернуть все

Детектор объектов Faster R-CNN, заданный как fasterRCNNObjectDetector объект. Чтобы создать этот объект, вызовите trainFasterRCNNObjectDetector функция с обучающими данными, как введено.

Datastore, заданный как объект datastore, содержащий набор изображений. Каждое изображение должно быть шкалой полутонов, RGB или многоканальным изображением. Функциональные процессы только первый столбец datastore, который должен содержать изображения и должен быть массивами ячеек или таблицами с несколькими столбцами.

Введите изображение, заданное как действительное, неразреженное, изображение RGB или полутоновый.

Детектор чувствителен к области значений входного изображения. Поэтому гарантируйте, что входной диапазон образов похож на область значений изображений, используемых, чтобы обучить детектор. Например, если детектор был обучен на uint8 изображения, повторно масштабируйте это входное изображение к области значений [0, 255] при помощи im2uint8 или rescale функция. Размер этого входного изображения должен быть сопоставим с размерами изображений, используемых в обучении. Если эти размеры очень отличаются, детектор испытывает затруднения при обнаружении объектов, потому что шкала объектов во входном изображении отличается от шкалы объектов, которые детектор был обучен идентифицировать. Рассмотрите, использовали ли вы SmallestImageDimension свойство во время обучения изменить размер учебных изображений.

Типы данных: uint8 | uint16 | int16 | double | single | logical

Поисковая необходимая область, заданная как [x y width height] вектор. Вектор задает левый верхний угол и размер области в пикселях.

Аргументы в виде пар имя-значение

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

Пример: 'NumStongestRegions',1000

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

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

Выберите самую сильную ограничительную рамку для каждого обнаруженного объекта, заданного как разделенная запятой пара, состоящая из 'SelectStrongest' и любой true или false.

  • true — Возвратите самую сильную ограничительную рамку на объект. Выбрать эти поля, detect вызывает selectStrongestBboxMulticlass функция, которая использует немаксимальное подавление, чтобы устранить перекрывающиеся ограничительные рамки на основе их баллов уверенности.

    Например:

     selectStrongestBboxMulticlass(bbox,scores, ...
                'RatioType','Min', ...
                'OverlapThreshold',0.5);

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

Минимальный размер области, который содержит обнаруженный объект, заданный как разделенная запятой пара, состоящая из 'MinSize' и [height width] вектор. Модули находятся в пикселях.

По умолчанию, MinSize самый маленький объект что обученный detector может обнаружить.

Максимальный размер области, который содержит обнаруженный объект, заданный как разделенная запятой пара, состоящая из 'MaxSize' и [height width] вектор. Модули находятся в пикселях.

Чтобы уменьшать время вычисления, установите это значение к известному максимальному размеру области для объектов, обнаруживаемых в изображении. По умолчанию, 'MaxSize' установлен в высоту и ширину входного изображения, I.

Минимальный пакетный размер, заданный как разделенная запятой пара, состоящая из 'MiniBatchSize' и скалярное значение. Используйте MiniBatchSize обработать большое количество изображений. Изображения сгруппированы в мини-пакеты и обработаны как пакет, чтобы повысить эффективность расчета. Увеличьте мини-пакетный размер, чтобы уменьшить время вычислений. Уменьшите размер, чтобы использовать меньше памяти.

Аппаратный ресурс, на котором можно запустить детектор, заданный как разделенная запятой пара, состоящая из 'ExecutionEnvironment' и 'auto', 'gpu', или 'cpu'.

  • 'auto' — Используйте графический процессор, если это доступно. В противном случае используйте центральный процессор.

  • 'gpu' — Используйте графический процессор. Чтобы использовать графический процессор, у вас должен быть Parallel Computing Toolbox, и CUDA включил NVIDIA графический процессор с вычислить возможностью 3,0 или выше. Если подходящий графический процессор не доступен, функция возвращает ошибку.

  • 'cpu' — Используйте центральный процессор.

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

свернуть все

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

Баллы уверенности обнаружения, возвращенные как M-by-1 вектор, где M является количеством ограничительных рамок. Более высокий счет указывает на более высокую уверенность в обнаружении.

Метки для ограничительных рамок, возвращенных как M-by-1 категориальный массив меток M. Вы задаете имена классов, используемые, чтобы пометить объекты, когда вы обучаете вход detector.

Результаты обнаружения, возвращенные как таблица с 3 столбцами с именами переменных, Boxes, Scores и Labels. Столбец Boxes содержит M-by-4 матрицы ограничительных рамок M для объектов, найденных в изображении. Каждая строка содержит ограничительную рамку как вектор с 4 элементами в формате [x, y, width, height]. Формат задает местоположение верхнего левого угла и размер в пикселях ограничительной рамки в соответствующем изображении.

Введенный в R2017a