ssdObjectDetectorMonoCamera

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

Описание

The ssdObjectDetectorMonoCamera обнаруживает объекты из изображения, используя один детектор объектов (SSD). Чтобы обнаружить объекты в изображении, передайте обученный детектор в detect функция.

Создание

  1. Создайте ssdObjectDetector объект вызовом trainSSDObjectDetector функция с обучающими данными (требует Deep Learning Toolbox™).

    detector = trainSSDObjectDetector(trainingData,____);
  2. Создайте monoCamera объект для моделирования монокулярного датчика камеры.

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

    configuredDetector = configureDetectorMonoCamera(detector,sensor,____);

Свойства

расширить все

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

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

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

Имя классификационной модели, заданное как вектор символов или строковый скаляр. Вы можете изменить это имя после создания ssdObjectDetectorMonoCamera объект.

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

Обученная сеть обнаружения объектов SSD, заданная как DAGNetwork (Deep Learning Toolbox) объект. Этот объект хранит слои, которые используются в детекторе объектов SSD.

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

Размер якорей, заданный как массив ячеек P на 1 для P количества слоев редукции данных, используемых для обнаружения объектов в сети SSD. Каждый элемент массива содержит M-на-2 матрицу размеров якорного ящика в формате [height width]. Каждая камера может содержать разное количество якорей. Это значение устанавливается во время обучения.

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

Имена классов объектов, которые был обучен найти детектор объектов SSD, заданные как массив ячеек из векторов символов. Это свойство задается функцией trainingData входной параметр для trainSSDObjectDetector функция. Задайте имена классов как часть trainingData таблица.

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

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

Примеры

свернуть все

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

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

vehicleDetector = load('ssdVehicleDetector.mat','detector');
detector = vehicleDetector.detector;

Моделируйте монокулярный датчик камеры путем создания 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);

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

Сконфигурируйте детектор для использования с камерой. Ограничьте ширину обнаруженных объектов 1,5 - 2,5 метра. Сконфигурированный детектор является ssd ObjectDetectorMonoCamera объект.

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

Считайте изображение, захваченное камерой.

I = imread('highwayCars.png');

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

[bboxes,scores,labels] = detect(detectorMonoCam,I,'Threshold',0.6);
I = insertObjectAnnotation(I,'rectangle',bboxes,scores,'Color','g');
imshow(I)

Figure contains an axes. The axes contains an object of type image.

Отображение меток для обнаруженных ограничивающих рамок. Метки задают имена классов обнаруженных объектов.

disp(labels)
     vehicle 
     vehicle 
Введенный в R2020a