У меня есть следующий вызов. Я нанёс на камеру измерение расстояния автомобиля по количеству кадров. Как вы можете видеть на рисунке (у = расстояние, х = кадры), шум вызывает ошибки измерения. Измеряемое транспортное средство может теоретически ускоряться или постоянно двигаться. В этом случае он ездит постоянно.
Кто-нибудь знает, как я могу уменьшить его, чтобы уменьшить этот шум во время измерения? Распределение шума почти постоянно, что соответствует расстоянию. В настоящее время я пытаюсь найти решение с помощью фильтра Калмана в Matlab.
https://de.mathworks.com/help/vision/ref/vision.kalmanfilter.html
https://de.mathworks.com/help/vision/ref/configurekalmanfilter.html
Подход Калмана выглядит следующим образом:
... % DistObj = Distance values from meausurement
if count < 6
HoldD(count) = {DistObj};
count = count +1;
else
HoldD(1) = [];
HoldD(end+1) = {DistObj};
end
kalman = [];
for idx = 1: length(HoldD)
location = HoldD{idx};
if isempty(kalman)
if ~isempty(location)
stateModel = [1 1;0 1];
measurementModel = [1 0];
kalman = vision.KalmanFilter(stateModel,measurementModel,'ProcessNoise',2,'MeasurementNoise',16); %1e-4
kalman.State = [location, 0];
end
else
trackedLocation = predict(kalman);
if ~isempty(location)
d = distance(kalman,location);
trackedLocation = correct(kalman,location);
else
print('Missing detection');
end
plot(fr,trackedLocation,'co');
hold on
% plot(fr,DistObj,'ko');
% hold on
xlim([-1 nFrames])
ylim([0 70])
end
end
Может ли кто-нибудь помочь мне, пожалуйста?