Постоянная угловая скорость вращения прямоугольная целевая модель измерения
возвращает ожидаемые измерения в текущие прямоугольные состояния и обнаружения.measurements
= ctrectmeas(states
,detections
)
Загрузите обнаружения и истину, сгенерированную от прямоугольной цели.
load('rectangularTargetDetections.mat','detections','truthState');
Сгенерируйте ожидаемые обнаружения от прямоугольных и фактических обнаружений цели состояния с помощью ctrectmeas
.
tgtState = [3;48;0;60;0;5;1.9]; zExp = ctrectmeas(tgtState,detections);
Настройте среду визуализации с помощью theaterPlot
.
theaterP = theaterPlot; stateP = trackPlotter(theaterP,'DisplayName','State','MarkerFaceColor','g'); truthP = trackPlotter(theaterP,'DisplayName','Truth','MarkerFaceColor', 'b'); detP = detectionPlotter(theaterP,'DisplayName','Detections','MarkerFaceColor','r'); expDetP = detectionPlotter(theaterP,'DisplayName','Expected Detections','MarkerFaceColor','y'); l = legend(theaterP.Parent); l.AutoUpdate = 'on'; hold on; assignP = plot(theaterP.Parent,NaN,NaN,'-.','DisplayName','Association');
Постройте фактические и ожидаемые обнаружения.
inDets = [detections{:}]; inMeas = horzcat(inDets.Measurement); detP.plotDetection(inMeas'); zExpPlot = reshape(zExp,3,[]); expDetP.plotDetection(zExpPlot');
Постройте графики ассоциации.
zLines = nan(2,numel(detections)*3); zLines(1,1:3:end) = zExpPlot(1,:); zLines(2,1:3:end) = zExpPlot(2,:); zLines(1,2:3:end) = inMeas(1,:); zLines(2,2:3:end) = inMeas(2,:); assignP.XData = zLines(1,:); assignP.YData = zLines(2,:);
Постройте истину и состояние.
truthPos = [truthState(1:2);0]; truthDims = struct('Length',truthState(6),... 'Width',truthState(7),... 'Height', 0,... 'OriginOffset', [0 0 0]); truthOrient = quaternion([truthState(4) 0 0],'eulerd', 'ZYX','frame'); truthP.plotTrack(truthPos',truthDims,truthOrient); statePos = [tgtState(1:2);0]; stateDims = struct('Length',tgtState(6),... 'Width',tgtState(7),... 'Height',0,... 'OriginOffset', [0 0 0]); stateOrient = quaternion([tgtState(4) 0 0],'eulerd', 'ZYX','frame'); stateP.plotTrack(statePos', stateDims, stateOrient);
states
— Текущие прямоугольные состоянияТекущие прямоугольные состояния, заданные как 7 N матрицей с действительным знаком, где N является количеством состояний. Семимерное прямоугольное целевое состояние задано как [x; y; s; θ; ω; L; W:
Переменная | Значение | Модуль |
x | Положение прямоугольника центрируется в направлении x | m |
y | Положение прямоугольника центрируется в направлении y | m |
s | Скорость в направляющемся направлении | m/s |
θ | Угол ориентации прямоугольника относительно направления x | градус |
ω | Угловая скорость вращения | degree/s |
L | Длина прямоугольника | m |
W | Ширина прямоугольника | m |
Пример: [1;2;2;30;1;4.7;1.8]
Типы данных: single
| double
detections
— Обнаружения целиobjectDetection
объектыОбнаружения цели, заданной как 1 M массивом ячеек objectDetection
объекты. MeasurementParameters
свойство (который задает преобразование от пространства состояний до пробела измерения) для каждого объекта должно быть тем же самым для всех обнаружений в массиве ячеек.
measurements
— Ожидаемые измеренияОжидаемые измерения, возвращенные как P-by-N-by-M массив с действительным знаком. P является размерностью каждого измерения, заданного в detections
введите, N является количеством состояний, заданных в states
введите, и M является количеством обнаружений, заданных в detections
входной параметр.
ctrect
| ctrectcorners
| ctrectjac
| ctrectmeasjac
| gmphd
| initctrectgmphd
| trackerPHD
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.