exponenta event banner

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. kth граница в 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
  • BoundaryType - A LaneBoundaryType перечисление поддерживаемых границ полосы движения:

    • Unmarked

    • Solid

    • Dashed

    • BottsDots

    • DoubleSolid

    Укажите тип границы полосы движения как LaneBoundaryType.BoundaryType. Например:

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

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

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

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

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

свернуть все

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

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

Число ложных срабатываний, возвращаемых как действительный скаляр.

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

Представлен в R2017a