evaluateLaneBoundaries

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

Синтаксис

numMatches = evaluateLaneBoundaries(boundaries,worldGroundTruthPoints,threshold)
[numMatches,numMissed,numFalsePositives] = evaluateLaneBoundaries(___)
[___] = evaluateLaneBoundaries(___,xWorld)
[___] = evaluateLaneBoundaries(boundaries,groundTruthBoundaries,threshold)
[___,assignments] = evaluateLaneBoundaries(___)

Описание

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

пример

[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. Модели контура маршрута содержат следующие свойства:

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

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

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

    cubicLaneBoundary[A B C D], соответствуя коэффициентам полиномиального уравнения третьей степени формы y = Ax 3 + Bx 2 + Cx + D
  • BoundaryType — Перечисление LaneBoundaryType поддерживаемых контуров маршрута:

    • Unmarked

    • Solid

    • Dashed

    • BottsDots

    • DoubleSolid

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Функции

Объекты

Приложения

Введенный в R2017a