assignTOMHT

Трек-ориентированное назначение отслеживания нескольких гипотез

Описание

пример

[assignments,unassignedrows,unassignedcolumns] = assignTOMHT(costmatrix,costThreshold) возвращает таблицу назначений, assignments, обнаружений к трекам с использованием трассирующего многогипотезного алгоритма (TOMHT).

Стоимость каждого потенциального присвоения содержится в матрице затрат, costmatrix. Каждая матричная запись представляет стоимость возможных присвоений. Строки матрицы представляют дорожки, а столбцы - обнаружения. Все возможные присвоения представлены в матрице затрат. Чем ниже стоимость, тем больше вероятность выполнения задания. Каждая дорожка может быть назначена самое большее одному обнаружению, и каждое обнаружение может быть назначено самое большее одному дорожке. Если количество строк превышает количество столбцов, некоторые дорожки не назначаются. Если количество столбцов превышает количество строк, некоторые обнаружения не назначаются. Можно задать запись costmatrix на Inf запретить назначение.

costThreshold представляет набор из трех ворот, используемых для назначения обнаружений трекам.

Функция возвращает список неназначенных треков, unassignedrows, и список неназначенных обнаружений, unassignedcolumns.

Примеры

свернуть все

Найдите назначения из матрицы затрат с помощью assignTOMHT с ненулевым C1 ключом и ненулевым C2 ключом.

Создайте матрицу затрат, которая присваивает:

  • Путь 1 к обнаружению 1 внутри C1 затвора и обнаружение 2 внутри C2 затвора.

  • Путь 2 к обнаружению 2 внутри C2 затвора и обнаружение 3 внутри C3 затвора.

  • Трек 3 не назначен.

  • Обнаружение 4 не назначено.

costMatrix = [4 9 200 Inf; 300 12 28 Inf; 32 100 210 1000];
costThresh = [5 10 30];

Вычислите назначения.

[assignments, unassignedTracks, unassignedDets] = assignTOMHT(costMatrix,costThresh)
assignments = 4x2 uint32 matrix

   1   1
   1   2
   2   2
   2   3

unassignedTracks = 2x1 uint32 column vector

   2
   3

unassignedDets = 2x1 uint32 column vector

   3
   4

Дорожки, которым назначены обнаружения внутри C1 затвора, не рассматриваются как неназначенные. Для примера, дорожка 1. Обнаружения, назначенные трекам в пределах C2 ворот, не рассматриваются как неназначенные. Для примера, обнаружения 1 и 2.

Входные параметры

свернуть все

Матрица затрат, заданная как M -by- N матрица. M - количество дорожек, которые будут назначены, и N - количество обнаружений, которые будут назначены. Каждая запись в матрице затрат содержит стоимость дорожки и назначения обнаружения. Матрица может содержать Inf указывает, что назначение запрещено. Матрица затрат не может быть разреженной матрицей.

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

Ворота назначения, заданные как положительный, реальный трехэлементный вектор [c1gate,c2gate,c3gate] где c1gate <= c2gate <= c3gate.

Пример: [0.1,0.3,0.5]

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

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

свернуть все

Назначение обнаружений для отслеживания, возвращаемое как целое число L матрица -by-2, где L количество назначений. Первый столбец матрицы содержит присвоенные индексы дорожек, а второй - присвоенные индексы обнаружения.

Типы данных: uint32

Индексы неназначенных треков, возвращенные как целое число P вектор-столбец.

Типы данных: uint32

Индексы неназначенных обнаружений, возвращенные как целое число Q вектор-столбец.

Типы данных: uint32

Алгоритмы

свернуть все

Пороги назначения для Multi-Hypothesis Tracker

Три порога назначения, C 1, C 2 и C 3, управляют (1) присвоением обнаружения дорожке, (2) созданием новой ветви от обнаружения и (3) созданием новой ветви от неназначенной дорожки. Пороговые значения должны удовлетворить: <<reservedrangesplaceholder4> 1 <reservedrangesplaceholder3> <reservedrangesplaceholder2> 2 <reservedrangesplaceholder1> <reser vedrangesplaceholder0> 3 .

Если стоимость назначения C = costmatrix(i,j)следующие гипотезы создаются на основе сравнения стоимости со значениями порогов назначения. Ниже каждого сравнения приведен список возможных гипотез.

Совет:

  • Увеличьте значение C 3, если есть обнаружения, которые должны быть назначены трекам, но не являются. Уменьшите значение, если есть обнаружения, которые назначены трекам, которым они не должны быть назначены (слишком далеко).

  • Увеличение значений C 1 и C 2 помогает контролировать количество созданных ветвей дорожки. Однако это уменьшает количество ветвей (гипотез), которые имеет каждая дорожка.

  • Чтобы разрешить назначение каждой дорожки, установите C 1 = 0.

  • Чтобы позволить каждое обнаружение не назначаться, установите C 2 = 0.

Ссылки

[1] Werthmann, John R. «Пошаговое описание вычислительно эффективной версии отслеживания нескольких гипотез». В Signal and Data Processing of Small Targets 1992, vol. 1698, pp. 288-300. Международное общество оптики и фотоники, 1992 год.

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

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

.
Введенный в R2018b