detect

Обнаружьте объекты с помощью детектора объектов ACF, сконфигурированного для монокулярной камеры

Описание

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

пример

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

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

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

Примеры

свернуть все

Сконфигурируйте детектор объектов ACF для использования с монокулярной камерой, смонтированной на автомобиле, оборудованном датчиком. Используйте этот детектор, чтобы обнаружить транспортные средства в видеокадрах, полученных камерой.

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

detector = vehicleDetectorACF;

Смоделируйте монокулярный датчик камеры путем создания monoCamera объект. Этот объект содержит внутренние параметры камеры и местоположение камеры на автомобиле, оборудованном датчиком.

focalLength = [309.4362 344.2161];    % [fx fy]
principalPoint = [318.9034 257.5352]; % [cx cy]
imageSize = [480 640];                % [mrows ncols]
height = 2.1798;                      % height of camera above ground, in meters
pitch = 14;                           % pitch of camera, in degrees
intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize);

monCam = monoCamera(intrinsics,height,'Pitch',pitch);

Сконфигурируйте детектор для использования с камерой. Ограничьте ширину обнаруженных объектов к типичной области значений для ширин транспортного средства: 1.5-2.5 метра. Сконфигурированным детектором является acfObjectDetectorMonoCamera объект.

vehicleWidth = [1.5 2.5];
detectorMonoCam = configureDetectorMonoCamera(detector,monCam,vehicleWidth);

Загрузите видео, записанное от камеры, и создайте видео читателя и проигрыватель.

videoFile = fullfile(toolboxdir('driving'),'drivingdata','caltech_washington1.avi');
reader = VideoReader(videoFile);
videoPlayer = vision.VideoPlayer('Position',[29 597 643 386]);

Запустите детектор в цикле по видео. Аннотируйте видео ограничительными рамками для обнаружений и оценок достоверности обнаружения.

cont = hasFrame(reader);
while cont
   I = readFrame(reader);

   % Run the detector.
   [bboxes,scores] = detect(detectorMonoCam,I);
   if ~isempty(bboxes)
       I = insertObjectAnnotation(I, ...
                           'rectangle',bboxes, ...
                           scores, ...
                           'Color','g');
   end
   videoPlayer(I)
   % Exit the loop if the video player figure is closed.
   cont = hasFrame(reader) && isOpen(videoPlayer);
end

release(videoPlayer);

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

свернуть все

Детектор объектов ACF сконфигурирован для монокулярной камеры в виде acfObjectDetectorMonoCamera объект. Чтобы создать этот объект, используйте configureDetectorMonoCamera функция с monoCamera возразите и обученный acfObjectDetector возразите как входные параметры.

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

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

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

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

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

Пример: 'NumScaleLevels',4

Количество уровней шкалы на октаву в виде разделенной запятой пары, состоящей из 'NumScaleLevels' и положительное целое число. Каждая октава является уменьшением масштаба степени двойки изображения. Чтобы обнаружить людей в более прекрасном шаге шкалы, увеличьте это число. Рекомендуемые значения находятся в области значений [4, 8].

Шагните для раздвижного окна в виде разделенной запятой пары, состоящей из 'WindowStride' и положительное целое число. Это значение указывает на расстояние для функции, чтобы переместить окно и в x и в направления y. Раздвижное окно сканирует изображения для обнаружения объектов.

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

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

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

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

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

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

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

Порог точности классификации в виде разделенной запятой пары, состоящей из 'Threshold' и числовой скаляр. Рекомендуемые значения находятся в области значений [–1, 1]. Во время многошкального обнаружения объектов пороговое значение управляет точностью и скоростью для классификации подобластей изображений или как объекты или как необъекты. Чтобы ускорить эффективность рискуя тем, чтобы пропустить истинные обнаружения, увеличьте этот порог.

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

свернуть все

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

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

Смотрите также

Приложения

Функции

Объекты

Введенный в R2017a