0
나는 오픈 CV의 칼만 필터를 파이썬으로 사용하려고합니다. "올바른"기능을 호출 할 때마다 충돌이 발생합니다. 아래의 코드는 자명하다고 생각합니다.OpenCV KalmanFilter Python3이 작동하지 않습니다
나야? OpenCV? 파이썬 바인딩 (즉, C++에서 작동하겠습니까?)
도움을 환영합니다. 더미 코드와 출력은 내가 측정 매트릭스 및 측정을 혼동 아래 또는 on github
#!/usr/bin/env python3
import numpy as np
import cv2, numpy as np
kalman = cv2.KalmanFilter(3,3,3,cv2.CV_64F) #Declare 3 dynamical parameter 3 state parameter 3 control parameter
kalman.transitionMatrix=1.0*np.eye(3) #Transition set to identity only the control and the noise are changing the state
#Dummy measurement matrix, 3 measurement each times !
kalman.measurementMatrix=np.matrix([[1.0,2.2,3.10],
[1.1,2.2,3.30],
[1.2,2.4,3.70],
[1.3,2.430,3.50],
[1.5,2.50,3.340],
[1.5,2.60,3.70],
[1.7,2.0,3.30],
[1.9,2.30,3.20],
[1.0,2.40,3.50],
[1.3,2.60,3.60],
[1.4,2.20,3.20],
[1.6,2.0,3.20]])
kalman.measurementNoiseCov=1.1*np.eye(3)
kalman.processNoiseCov=1.2*np.eye(3)
kalman.controlMatrix=1.0*np.eye(3)
uk=np.matrix([[0.0],
[1.2],
[1.4]])
print("Now checking")
print("Measurement Matrix")
print(kalman.measurementMatrix)
print("Transition Matrix")
print(kalman.transitionMatrix)
print("MeasurementNoiseCov")
print(kalman.measurementNoiseCov)
print("ProcessNoiseCov")
print(kalman.processNoiseCov)
print("ControlMatrix")
print(kalman.controlMatrix)
print("Now attempted to make use of the underdocumented kalman filter in opencv with python ;)")
predicted=kalman.predict(uk)
print("Predicted:")
print(predicted)
print("Will (try to) correct by feeding directly the predicted to correction")
print("So here OpenCV is telling me that KF can not correct its own prediction even though the KF here has same number of dynamical,state and control parameters ?\n...")
estimated=kalman.correct(predicted)
출력 (단지 충돌 선)
OpenCV Error: Assertion failed (C.type() == type && (((flags&GEMM_3_T) == 0 && C.rows == d_size.height && C.cols == d_size.width) || ((flags&GEMM_3_T) != 0 && C.rows == d_size.width && C.cols == d_size.height))) in gemm, file /io/opencv/modules/core/src/matmul.cpp, line 1588
Traceback (most recent call last):
File "./opencvhorror.py", line 46, in <module>
estimated=kalman.correct(predicted)
cv2.error: /io/opencv/modules/core/src/matmul.cpp:1588: error: (-215) C.type() == type && (((flags&GEMM_3_T) == 0 && C.rows == d_size.height && C.cols == d_size.width) || ((flags&GEMM_3_T) != 0 && C.rows == d_size.width && C.cols == d_size.height)) in function gemm
오류의 전체 스택 추적을 포함하여 출력을 포함하십시오. –
죄송합니다, 질문을 편집하고 출력을 추가했습니다. 이전에 했어야 했어. – user198530