trackHistoryLogic

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

Описание

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

Решения о подтверждении и удалении способствуют управлению отслеживанием со стороны 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. Первый элемент - это последнее обновление. A 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 к концу пятого обновления, потому что три хита (Mc) учитываются в последних пяти обновлениях (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) учитываются в последних семи обновлениях (Nd).

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] Блэкмен, С. и Р. Пополи. Проект и анализ современных систем слежения. Бостон, Массачусетс: Artech House, 1999.

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

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

.

См. также

Введенный в R2020a
Для просмотра документации необходимо авторизоваться на сайте