trackHistoryLogic

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

Описание

trackHistoryLogic объект определяет, должна ли дорожка быть подтверждена или удалена на основе истории дорожки. Дорожка должна быть подтверждена, если существуют, по крайней мере, хиты Mc в недавних обновлениях Nc. Дорожка должна быть удалена, если существует, по крайней мере, Md промахи в недавних обновлениях Nd.

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

Создание

Описание

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

пример

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

Свойства

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

Порог подтверждения в виде положительного целочисленного скаляра или вектора с 2 элементами из положительных целых чисел. Если логический счет выше этого порога, дорожка подтверждена. ConfirmationThreshold имеет форму [Mc Nc], где Mc является количеством хитов, требуемых для подтверждения в недавних обновлениях Nc. Когда задано как скаляр, затем Mc и Nc имеют то же значение.

Пример: [3 5]

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

Порог удаления в виде положительного целочисленного скаляра или вектора с 2 элементами из положительных целых чисел. Если логический счет выше этого порога, дорожка удалена. DeletionThreshold имеет форму [Md Nd], где Md является количеством промахов, требуемых для удаления в недавних обновлениях Nd. Когда задано как скаляр, затем Md и Nd имеют то же значение.

Пример: [5 5]

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

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

Отследите историю в виде логического вектора из длины N, где N является большим из второго элемента в ConfirmationThreshold и второй элемент в DeletionThreshold. Первым элементом является новое обновление. true значение указывает на хит и false значение указывает на мисс.

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

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

Примеры

свернуть все

Создайте основанную на истории логику. Задайте пороговые значения подтверждения Mc и Nc как вектор [3 5]. Задайте пороговые значения удаления Md и Nd как вектор [6 7].

historyLogic = trackHistoryLogic('ConfirmationThreshold',[3 5], ...
    'DeletionThreshold',[6 7])
historyLogic = 
  trackHistoryLogic with properties:

    ConfirmationThreshold: [3 5]
        DeletionThreshold: [6 7]
                  History: [0 0 0 0 0 0 0]

Инициализируйте логику, которая записывает хит как первое обновление логики.

init(historyLogic)
history = historyLogic.History;
disp(['History: [',num2str(history),'].']);
History: [1  0  0  0  0  0  0].

Обновите логику еще четыре раза, где только нечетные обновления указывают хит. Флагом подтверждения является true к концу пятого обновления, потому что три хита (МГц) считаются в новых пяти обновлениях (Nc).

for i = 2:5
    isOdd = logical(mod(i,2));
    if isOdd
        hit(historyLogic)
    else
        miss(historyLogic)
    end
    
    history = historyLogic.History;
    confFlag = checkConfirmation(historyLogic);
    delFlag = checkDeletion(historyLogic,true,i);
    disp(['History: [',num2str(history),']. Confirmation Flag: ',num2str(confFlag), ...
        '. Deletion Flag: ',num2str(delFlag)']);
end
History: [0  1  0  0  0  0  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [1  0  1  0  0  0  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  1  0  1  0  0  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [1  0  1  0  1  0  0]. Confirmation Flag: 1. Deletion Flag: 0

Обновите логику с мисс шесть раз. Флагом удаления является true к концу пятого обновления, потому что шесть промахов (Md) считаются в новых семи обновлениях (Без обозначения даты).

for i = 1:6
    miss(historyLogic);
    
    history = historyLogic.History;
    confFlag = checkConfirmation(historyLogic);
    delFlag = checkDeletion(historyLogic);
    disp(['History: [',num2str(history),']. Confirmation Flag: ',num2str(confFlag), ...
        '. Deletion Flag: ',num2str(delFlag)']);
end
History: [0  1  0  1  0  1  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  0  1  0  1  0  1]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  0  0  1  0  1  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  0  0  0  1  0  1]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  0  0  0  0  1  0]. Confirmation Flag: 0. Deletion Flag: 1
History: [0  0  0  0  0  0  1]. Confirmation Flag: 0. Deletion Flag: 1

Ссылки

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

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

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

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

Введенный в R2020a