trackScoreLogic

Подтвердите и удалите дорожки на основе счета дорожки

Описание

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

Решения подтверждения и удаления способствуют управлению дорожкой trackerGNN или trackerTOMHT.

Создание

Описание

logic = trackScoreLogic создает trackScoreLogic объект с порогами подтверждения и удаления по умолчанию.

пример

logic = trackScoreLogic(Name,Value,...) задает ConfirmationThreshold и DeletionThreshold свойства дорожки выигрывают логический объект с помощью одного или нескольких Name,Value парные аргументы. Любые незаданные свойства берут значения по умолчанию.

Свойства

развернуть все

Порог подтверждения, заданный как положительная скалярная величина. Если логический счет выше этого порога, то дорожка подтверждена.

Типы данных: single | double

Порог удаления, заданный как отрицательный скаляр. Если значение Score - MaxScore более отрицательно, чем порог удаления, затем дорожка удалена.

Типы данных: single | double

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

Текущий счет логики дорожки, заданный в виде числа.

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

Максимальный счет логики дорожки, заданный в виде числа.

Функции объекта

initИнициализируйте логику дорожки с первым хитом
hitОбновите логику дорожки с последующим хитом
missОбновите логику дорожки с мисс
syncСинхронизируйте множество объектов trackScoreLogic
mergeScoresОбновите счет дорожки слиянием дорожки
checkConfirmationПроверяйте, должна ли дорожка быть подтверждена
checkDeletionПроверяйте, должна ли дорожка быть удалена
outputПолучите текущее состояние логики дорожки
resetСбросьте состояние логики дорожки
cloneСоздайте копию логики дорожки

Примеры

свернуть все

Создайте основанную на счете логику. Задайте порог подтверждения как 20 и порог удаления как-5.

scoreLogic = trackScoreLogic('ConfirmationThreshold',20,'DeletionThreshold',-5)
scoreLogic = 
  trackScoreLogic with properties:

    ConfirmationThreshold: 20
        DeletionThreshold: -5
                    Score: 0
                 MaxScore: 0

Задайте вероятность обнаружения (pd), вероятность ложного предупреждения (pfa), объем интервала обнаружения датчика (volume), и новый целевой уровень в единичном объеме (beta). Инициализируйте логику с помощью этих параметров. Первое обновление логики имеет успех.

pd = 0.9;     % Probability of detection
pfa = 1e-6;   % Probability of false alarm
volume = 1;   % Volume of a sensor detection bin
beta = 0.1;   % New target rate in a unit volume

init(scoreLogic,volume,beta,pd,pfa);

disp(['Score and MaxScore: ', num2str(output(scoreLogic))])
Score and MaxScore: 11.4076      11.4076

Обновите логику еще четыре раза, где только нечетные обновления указывают хит. Счет увеличивается с каждым хитом и уменьшениями с каждой мисс. Флагом подтверждения является true каждый раз, когда текущий счет больше, чем 20.

for i = 2:5
    
    isOdd = logical(mod(i,2));
    if isOdd
        likelihood = 0.05 + 0.05*rand(1);
        hit(scoreLogic,volume,likelihood)
    else
        miss(scoreLogic)
    end
    
    confFlag = checkConfirmation(scoreLogic);
    delFlag = checkDeletion(scoreLogic);
    disp(['Score and MaxScore: ', num2str(output(scoreLogic)), ...
      '.  Confirmation Flag: ',num2str(confFlag), ...
       '. Deletion Flag: ',num2str(delFlag)'])
end
Score and MaxScore: 9.10498      11.4076.  Confirmation Flag: 0. Deletion Flag: 0
Score and MaxScore: 20.4153      20.4153.  Confirmation Flag: 1. Deletion Flag: 0
Score and MaxScore: 18.1127      20.4153.  Confirmation Flag: 0. Deletion Flag: 0
Score and MaxScore: 29.4721      29.4721.  Confirmation Flag: 1. Deletion Flag: 0

Обновите логику с мисс три раза. Флагом удаления является true к концу третьей мисс, потому что различие между текущим счетом и максимальным счетом больше пять.

for i = 1:3
    miss(scoreLogic)
    
    confFlag = checkConfirmation(scoreLogic);
    delFlag = checkDeletion(scoreLogic);
    disp(['Score and MaxScore: ', num2str(output(scoreLogic)), ...
      '.  Confirmation Flag: ',num2str(confFlag), ...
      '.  Deletion Flag: ',num2str(delFlag)])
end
Score and MaxScore: 27.1695      29.4721.  Confirmation Flag: 1.  Deletion Flag: 0
Score and MaxScore: 24.8669      29.4721.  Confirmation Flag: 1.  Deletion Flag: 0
Score and MaxScore: 22.5643      29.4721.  Confirmation Flag: 1.  Deletion Flag: 1

Советы

  • Если вы задаете любой ConfirmationThreshold или DeletionThreshold в одинарной точности, затем trackScoreLogic объект преобразует другое свойство в одинарную точность и выполняет расчеты в одинарной точности.

Ссылки

[1] Блэкмен, S. и R. Пополи. Проект и анализ современных систем слежения. Бостон, MA: дом Artech, 1999.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2018b