ssdObjectDetectorMonoCamera

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

Описание

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 объект. Это объектно-ориентированная память слои, которые используются в детекторе объектов SSD.

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

Размер полей привязки в виде P-by-1 массив ячеек для количества P слоев извлечения признаков используется в обнаружении объектов в сети SSD. Каждый элемент массива содержит M-by-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 метрам. Сконфигурированный детектор является ssdObjectDetectorMonoCamera объект.

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)

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

disp(labels)
     vehicle 

Введенный в R2020a