acfObjectDetectorMonoCamera

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

Описание

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

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

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

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

Примеры

свернуть все

Сконфигурируйте детектор объектов 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);

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

.
Введенный в R2017a