exponenta event banner

обнаружить

Обнаружение объектов с помощью детектора объектов 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 для использования с монокулярной камерой, установленной на транспортном средстве ego. Используйте этот детектор для обнаружения транспортных средств в видеокадрах, захваченных камерой.

Загрузить 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].

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Представлен в R2017a