evaluateLaneBoundaries

Оцените модели контура маршрута против основной истины

Описание

numMatches = evaluateLaneBoundaries(boundaries,worldGroundTruthPoints,threshold) оценивает модели контура маршрута кандидата, boundaries, против контуров маршрута, сформированных точками основной истины мировой координаты, worldGroundTruthPoints, и возвращает общее количество соответствия с контурами маршрута, numMatches. Если всеми точками в контуре кандидата является на боковом расстоянии threshold из контура маршрута основной истины затем тот контур рассматривается допустимым соответствием (верный положительный).

пример

[numMatches,numMissed,numFalsePositives] = evaluateLaneBoundaries(___) также возвращает общее количество промахов (ложные отрицательные стороны) и ложные положительные стороны, с помощью предыдущих входных параметров.

[___] = evaluateLaneBoundaries(___,xWorld) задает x - точки оси, в которых можно выполнить сравнения. Точки заданы в worldGroundTruthPoints линейно интерполированы в данном x - местоположения оси.

[___] = evaluateLaneBoundaries(boundaries,groundTruthBoundaries,threshold) сравнивает контуры с моделями основной истины, которые заданы в массиве объектов контура маршрута или массиве ячеек массивов.

[___,assignments] = evaluateLaneBoundaries(___) также возвращает индексы присвоения, которые заданы в groundTruthBoundaries. Каждый контур является соответствующим к соответствующему присвоению класса в groundTruthBoundaries. kконтур th в boundaries является соответствующим к assignments(k) элемент worldGroundTruthPoints. Нуль указывает на положительную ложь (никакое найденное соответствие).

Примеры

свернуть все

Создайте набор точек основной истины, добавьте шум, чтобы симулировать фактические граничные точки маршрута и сравнить симулированные данные с моделью.

Создайте набор точек, представляющих основную истину при помощи параболических параметров.

parabolaParams1 = [-0.001 0.01 0.5];
parabolaParams2 = [0.001 0.02 0.52];
x = (0:0.1:20)';
y1 = polyval(parabolaParams1,x);
y2 = polyval(parabolaParams1,x);

Добавьте шум относительно параметра смещения.

y1 = y1 + 0.10*parabolaParams1(3)*(rand(length(y1),1)-0.5);
y2 = y2 + 0.10*parabolaParams2(3)*(rand(length(y2),1)-0.5);

Создайте набор тестовых моделей контура.

testlbs = parabolicLaneBoundary([-0.002 0.01 0.5;
                                 -0.001 0.02 0.45;
                                 -0.001 0.01 0.5;
                                  0.000 0.02 0.52;
                                 -0.001 0.01 0.51]);

Сравните граничные модели с точками основной истины. Вычислите точность и чувствительность моделей на основе количества соответствий, промахов и ложных положительных сторон.

threshold = 0.1;
[numMatches,numMisses,numFalsePositives,~] = ...
        evaluateLaneBoundaries(testlbs,{[x y1],[x y2]},threshold);

disp('Precision:');
Precision:
disp(numMatches/(numMatches+numFalsePositives));
    0.4000
disp('Sensitivity/Recall:');
Sensitivity/Recall:
disp(numMatches/(numMatches+numMisses));
     1

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

свернуть все

Точки основной истины контуров маршрута в виде [x y] массив или массив ячеек [x y] массивы. x - точки оси должны быть уникальными и в той же системе координат как граничные модели. Контур маршрута должен содержать по крайней мере две точки, но для устойчивого сравнения, рекомендуются четыре или больше точки. Каждый элемент массива ячеек представляет отдельный контур маршрута.

Максимальное боковое расстояние между моделью и основной истиной указывает для той точки, которая будет рассмотрена допустимым соответствием (верный положительный) в виде действительного скаляра.

Модели контура маршрута в виде массива parabolicLaneBoundary объекты или cubicLaneBoundary объекты. Модели контура маршрута содержат следующие свойства:

  • Parameters — Вектор, соответствующий коэффициентам граничной модели. Размер вектора зависит от степени полинома для модели.

    Объект контура маршрутаПараметры
    parabolicLaneBoundary

    [A B C], соответствие коэффициентам полиномиального уравнения второй степени формы y = Ax2 + Bx + C

    cubicLaneBoundary[A B C D], соответствие коэффициентам полиномиального уравнения третьей степени формы y = Ax3 + Bx2 + Cx + D
  • BoundaryTypeLaneBoundaryType перечисление поддерживаемых контуров маршрута:

    • Unmarked

    • Solid

    • Dashed

    • BottsDots

    • DoubleSolid

    Задайте тип контура маршрута как LaneBoundaryType. BoundaryType. Например:

    LaneBoundaryType.BottsDots
    
  • Strength — Отношение количества уникального x - местоположения оси на контуре к общему количеству точек вдоль линии на основе XExtent свойство.

  • XExtent — Двухэлементный вектор, описывающий минимальный и максимальный x - местоположения оси для граничных точек.

x- местоположения оси контура в виде вектора с действительным знаком. Точки в worldGroundTruthPoints линейно интерполированы в данном x - местоположения оси. Контуры за пределами этих местоположений исключены и количество как ложные отрицательные стороны.

Модели контура основной истины в виде массива parabolicLaneBoundary или cubicLaneBoundary объекты или массив ячеек parabolicLaneBoundary или cubicLaneBoundary массивы.

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

свернуть все

Количество соответствий (истинные положительные стороны), возвращенный как действительный скаляр.

Количество промахов (ложные отрицательные стороны), возвращенный как действительный скаляр.

Количество ложных положительных сторон, возвращенных как действительный скаляр.

Индексы присвоения для контуров основной истины, возвращенных как массив ячеек массивов с действительным знаком. Каждый контур является соответствующим к соответствующему присвоению в groundTruthBoundaries. kконтур th в boundaries является соответствующим к assignments(k) элемент worldGroundTruthPoints. Нуль указывает на положительную ложь (никакое найденное соответствие).

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

Функции

Объекты

Приложения

Введенный в R2017a