OpenCV Калман фильтр не может обрабатывать окклюзии - PullRequest
0 голосов
/ 26 марта 2020

, когда я пытаюсь использовать фильтр Калмана opencv для отслеживания цели. Моя первоначальная настройка выглядит следующим образом: deltaTime = 1/30 # время примерно для одного кадра = np.zeros ((4, 1), np.float32) measure = np.zeros ((2, 1), np.float32 )

kalman = cv2.KalmanFilter (4, 2, 0) #control vector = 0, предположить линейное движение.

kalman.measurementMatrix = np.array ([[1,0,0 , 0], [0,1,0,0]], np.float32)

kalman.transitionMatrix = np.array ([[1,0, deltaTime, 0], [0,1,0 , deltaTime], [0,0,1,0], [0,0,0,1]], np.float32)

kalman.processNoiseCov = np.array ([[1,0,0 , 0], [0,1,0,0], [0,0,1,0], [0,0,0,1]], np.float32) * 0,03 Я могу правильно отслеживать цель, когда измерение / наблюдение объекта существует. Однако когда объект теряется в кадре, предсказание фильтра Калмана остается постоянным в последней известной позиции цели. То есть компонент прогнозирования фильтра Калмана не работает в моем случае. Код для обнаружения и отсутствия обнаружения показан ниже:

        ***state = kalman.predict() #get the new predicted state from the previous state
        if ini.detection==1:
            ini.measureCentreV2[0] = currentX
            ini.measureCentreV2[1] = currentY
            state = kalman.correct(ini.measureCentreV2) #correct the newly predicted state, and use this as the next input for the prediction
        else: #when no detection, velocity will update with an interval of a single seconds 
            state[2]=ini.latestVelX 
            state[3]=ini.latestVelY

            kalman.statePost = state***

В основном проблема заключается в том, что мой код способен хорошо отслеживать цель, когда она ничем не заблокирована, однако, однажды go через любое препятствие результат прогноза перестанет меняться и продолжит давать последнюю увиденную позицию цели. Пока цель не появится снова, отслеживание не возобновится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...