Mi sistema es el siguiente. Yo uso la cámara de un dispositivo móvil para rastrear un objeto. De este seguimiento, obtengo cuatro puntos 3D que proyecto en la pantalla, para obtener cuatro puntos 2D. Estos 8 valores son un poco ruidosos, debido a la detección, por lo que quiero filtrarlos para que el movimiento sea más suave y realista. Como segunda medición, uso la salida del giroscopio del dispositivo, que proporciona tres ángulos de Euler (es decir, la actitud del dispositivo). Esos son más precisos y con mayor frecuencia (hasta 100 Hz) que las posiciones 2D (alrededor de 20 Hz).
Mi primer intento fue con un filtro simple de paso bajo, pero el retraso fue importante, así que ahora trato de usar un filtro Kalman, con la esperanza de que pueda suavizar las posiciones con poco retraso. Como se vio en una pregunta anterior , un punto clave en un filtro de Kalman es la relación entre las mediciones y las variables de estado interno. Aquí las medidas son mis 8 coordenadas de puntos 2D y los 3 ángulos de Euler, pero no estoy seguro de qué debo usar como variables de estado interno y cómo debo conectar los ángulos de Euler a los puntos 2D. De ahí la pregunta principal, ¿es un filtro de Kalman incluso adecuado para este problema? Y si es así, ¿cómo?
fuente
From this tracking, I get four 3D points that I project on a mobile device screen, to get four 2D points. These 8 values are kinda noisy
y luego dicesWhat's available to me is the device's gyroscope output, which provides three Euler angles (i.e. the device attitude).
. Cual es ¿Los cuatro puntos 2D o los tres ángulos de Euler? ¿O el tren de procesamiento tiene ángulos de Euler -> puntos 3D -> puntos 2D?Respuestas:
Filtrado de paso bajo
Sería bueno saber qué quiere decir con "filtro de paso bajo simple".
Por ejemplo, si sus mediciones en el tiempo sonk
y sus estimaciones de paso bajo filtradas son:
entonces tendrá un retraso de grupo bastante grande en el filtro de aproximadamente (para alfa cercano a 1).1 / ( 1 - α )
Modelado de la señal: enfoque simplista
Para usar el filtro de Kalman (o cualquier enfoque similar), debe tener un modelo de cómo se adquieren y actualizan sus mediciones.
Por lo general, esto se ve así:
ϵ k A B
Y luego sus medidos son: donde es el ruido de salida (medición), es la matriz de salida , y es su matriz de ruido de medición.p k = C p T R U E k + D ν k ν k C Dpagk
Aquí, el "estado" del modelo se elige como las posiciones verdaderas, y las cosas que mide son la salida.
A continuación, puede aplicar las ecuaciones de filtro de Kalman para obtener estimaciones de estado de la posición verdadera.pagT R Umik^
Sin embargo, este enfoque es simplista porque no utiliza ningún conocimiento de cómo podrían moverse los puntos (ni utiliza sus 4 puntos y cualquier conocimiento que pueda tener sobre cómo se mueven juntos).
Modelando la Señal: Comenzando un Enfoque Mejor
Esta página muestra cómo configurar el problema relacionado con las posiciones y los ángulos de Euler. Está haciendo algo diferente de lo que necesita, pero el estado es:
y las medidas (salida) es
Todo lo que el modelo en esa página realmente está haciendo es: (pero para cada uno de y ).x,y,z
Esto es solo las clásicas "ecuaciones de movimiento". Vea la ecuación (3) aquí.
fuente
Su filtro de paso bajo puede ser como;
El LPF puede deformarse al siguiente:
fuente