acfObjectDetectorMonoCamera

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

Описание

acfObjectDetectorMonoCamera содержит информацию о детекторе объекта совокупных функций канала (ACF), который сконфигурирован для использования с монокулярным датчиком камеры. Чтобы обнаружить объекты в изображении, которое было получено камерой, передайте детектор функции detect.

Создание

  1. Создайте объект acfObjectDetector путем вызывания функции trainACFObjectDetector с данными тренировки.

    detector = trainACFObjectDetector(trainingData,...);

    Также создайте предварительно обученный детектор с помощью функций, таких как vehicleDetectorACF или peopleDetectorACF.

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

    sensor = monoCamera(...);
  3. Создайте объект acfObjectDetectorMonoCamera путем передачи детектора и датчика как входные параметры к функции configureDetectorMonoCamera. Сконфигурированный детектор наследовал значения свойств от исходного детектора.

    configuredDetector = configureDetectorMonoCamera(detector,sensor,...);

Свойства

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

Имя модели классификации, заданной как вектор символов или скаляр строки. По умолчанию имя определяется к заголовку второго столбца таблицы trainingData, заданной в функции trainACFObjectDetector. Можно изменить это имя после создания объекта acfObjectDetectorMonoCamera.

Пример: 'stopSign'

Это свойство доступно только для чтения.

Размер учебных изображений, заданных как [height width] вектор.

Пример: [100 100]

Это свойство доступно только для чтения.

Количество слабых учеников используется в детекторе, заданном как целое число. NumWeakLearners меньше чем или равен максимальному количеству слабых учеников для последнего учебного этапа. Чтобы ограничить этот максимум, можно использовать пару "имя-значение" 'MaxWeakLearners' в функции trainACFObjectDetector.

Это свойство доступно только для чтения.

Настройка камеры, заданная как объект monoCamera. Объект содержит камеру intrinsics, местоположение, подачу, отклонение от курса, и размещение списка и мировые модули для параметров. Используйте intrinsics, чтобы преобразовать объектные точки в изображение к мировым координатам, которые можно затем сравнить со значениями в свойстве WorldObjectSize.

Область значений ширин объекта и длин в мировых модулях, заданных как [minWidth maxWidth] вектор или [minWidth maxWidth; minLength maxLength] вектор. Определение области значений объектных длин является дополнительным.

Функции объекта

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

Примеры

свернуть все

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

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

detector = vehicleDetectorACF;

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

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 = vision.VideoFileReader(videoFile,'VideoOutputDataType','uint8');
videoPlayer = vision.VideoPlayer('Position',[29 597 643 386]);

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

cont = ~isDone(reader);
while cont
   I = 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 = ~isDone(reader) && isOpen(videoPlayer);
end

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

Приложения

Функции

Объекты

Введенный в R2017a