detect

Обнаружьте использование объектов детектор объектов PointPillars

    Описание

    bboxes = detect(detector,ptCloud) обнаруживает объекты в облаке точки ввода, ptCloud. Функция возвращает местоположения обнаруженных объектов в виде набора ограничительных рамок.

    [bboxes,scores] = detect(detector,ptCloud) возвращает специфичную для класса оценку достоверности для каждой ограничительной рамки.

    [___,labels] = detect(detector,ptCloud) возвращает метку, присвоенную каждой ограничительной рамке. Метки, используемые для классов объектов, заданы во время обучения при помощи trainPointPillarsObjectDetector функция.

    detectionResults = detect(detector,DS) обнаруживает объекты в серии облаков точек в datastore DS.

    пример

    [___] = detect(___,Name=Value) задает опции с помощью одних или нескольких аргументов name-value в дополнение к любой комбинации аргументов от предыдущих синтаксисов. Например, detect(detector,ptCloud,Threshold=0.5) обнаруживает объекты в облаке точки ввода с порогом обнаружения 0.5.

    Примеры

    свернуть все

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

    pretrainedDetector = load("pretrainedPointPillarsDetector.mat","detector");
    detector = pretrainedDetector.detector;

    Считайте облако точки ввода с помощью pcread функция.

    ptCloud = pcread("PandasetLidarData.pcd");

    Запустите предварительно обученный детектор объектов на облаке точек.

    [bboxes,scores,labels] = detect(detector,ptCloud);
    bboxCar=bboxes(labels'=="Car",:);
    bboxTruck=bboxes(labels'=="Truck",:);

    Визуализируйте результаты с помощью pcshow функция. Для лучшей визуализации выберите необходимую область, roi, из данных об облаке точек. Отобразите ограничительные рамки для автомобилей, грузовиков с помощью showShape функция.

    roi = [0.0 89.12 -49.68 49.68 -5.0 5.0];
    indices = findPointsInROI(ptCloud,roi);
    figure
    ax = pcshow(select(ptCloud,indices).Location);
    zoom(ax,1.5)
    showShape("cuboid",bboxCar,Color="green",Parent=ax,Opacity=0.3,LineWidth=1)
    hold on;
    showShape("cuboid",bboxTruck,Color="red",Parent=ax,Opacity=0.3,LineWidth=1)

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

    Входные параметры

    свернуть все

    Детектор объектов PointPillars в виде pointPillarsObjectDetector объект.

    Облако точки ввода в виде pointCloud объект. Этот объект должен содержать местоположения, интенсивность, и RGB окрашивает необходимым, чтобы представить облако точек.

    Datastore в виде допустимого объекта datastore, который является набором облаков точек. Этот datastore должен быть настроен таким образом что использование read функция на объекте datastore возвращает массив ячеек или таблицу, первый столбец которой содержит облака точек. Для получения дополнительной информации о создании объектов datastore смотрите datastore функция.

    Аргументы name-value

    Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN, где Name имя аргумента и Value соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.

    Пример: detect(detector,ptCloud,Threshold=0.5)

    Порог обнаружения в виде скаляра в области значений [0, 1]. Функция удаляет обнаружения, которые имеют баллы ниже, чем это пороговое значение. Чтобы уменьшать ложные положительные стороны, увеличьте это значение.

    Самый сильный выбор ограничительной рамки для каждого обнаруженного объекта в виде логического 1 TRUE) или 0 ложь).

    • true — Функция возвращает самую сильную ограничительную рамку на объект. Функция использует selectStrongestBboxMulticlass функция, которая использует немаксимальное подавление, чтобы устранить перекрывающиеся ограничительные рамки на основе их оценок достоверности.

      По умолчанию, detect использование этот код для selectStrongestBboxMulticlass функция:

       selectStrongestBboxMulticlass(bbox,scores,RatioType="Union", ...
                                     OverlapThreshold=0.1);

    • false — Функция возвращает все обнаруженные ограничительные рамки. Можно затем использовать пользовательский процесс, чтобы устранить перекрывающиеся ограничительные рамки.

    Размер мини-пакета в виде положительной скалярной величины. Используйте MiniBatchSize аргумент, чтобы обработать большое количество облаков точек. Используя этот аргумент, функциональные облака точек групп в мини-пакеты и процессы их как пакет, чтобы повысить вычислительную эффективность. Увеличьте мини-пакетный размер, чтобы уменьшить время вычислений. Уменьшите размер, чтобы использовать меньше памяти.

    Оптимизация эффективности в виде "auto" или "none".

    • "auto" — Автоматически выбирает оптимизацию, подходящую для сети и среды детектора. Эта оптимизация улучшает производительность за счет немного служебных на первом вызове и возможном дополнительном использовании памяти.

    • "none" — Отключает все ускорение.

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

    свернуть все

    Местоположения объектов обнаруживаются в облаке точек, возвращенном как M-by-9 матрица. Каждая строка в матрице имеет форму [x y z length width height roll pitch yaw], представляя размерность и местоположение ограничительной рамки. M является количеством ограничительных рамок.

    Оценки достоверности обнаружения для ограничительных рамок, возвращенных как вектор-столбец элемента M. M является количеством ограничительных рамок. Счет к каждому обнаружению является продуктом своего предсказания объектности и классификационных оценок. Каждый счет находится в области значений [0, 1]. Более высокий счет указывает на более высокое доверие к обнаружению.

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

    Результаты обнаружения, возвращенные как таблица со столбцами, Boxes, Scores, и Labels. Каждая строка таблицы соответствует облаку точек от входного datastore.

    Column NameValueDescription
    ПоляM-by-9 матрица, где M является количеством ограничительных рамок.Ограничительные рамки для объектов найдены в соответствующем облаке точек.
    Баллы Вектор-столбец элемента MМузыка обнаружения к ограничительным рамкам.
    МеткиM-by-1 категориальный массивМетки для ограничительных рамок.

    Чтобы оценить результаты обнаружения, используйте evaluateDetectionAOS функция.

    metrics = evaluateDetectionAOS(detectionResults,testLabels);

    Введенный в R2021b