Моя система следующая. Я использую камеру мобильного устройства для отслеживания объекта. Из этого трекинга я получаю четыре 3D-точки, которые проецирую на экран, чтобы получить четыре 2D-точки. Эти 8 значений довольно шумные из-за обнаружения, поэтому я хочу отфильтровать их, чтобы сделать движение более плавным и реалистичным. В качестве второго измерения я использую выход гироскопа устройства, который обеспечивает три угла Эйлера (то есть положение устройства). Они более точные и с большей частотой (до 100 Гц), чем 2D-позиции (около 20 Гц).
Моя первая попытка была с простым фильтром нижних частот, но задержка была важна, поэтому я сейчас пытаюсь использовать фильтр Калмана, надеясь, что он сможет сгладить позиции с небольшой задержкой. Как видно из предыдущего вопроса , одним из ключевых моментов в фильтре Калмана является связь между измерениями и внутренними переменными состояния. Здесь измерения - это мои 8 координат 2D-точки и 3 угла Эйлера, но я не уверен, что мне следует использовать в качестве внутренних переменных состояния и как я должен соединять углы Эйлера с 2D-точками. Отсюда основной вопрос: подходит ли фильтр Калмана для этой проблемы? И если да, то как?
источник
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
а потом вы говоритеWhat's available to me is the device's gyroscope output, which provides three Euler angles (i.e. the device attitude).
. Что он? Четыре 2D точки или три угла Эйлера? Или процесс обработки идет по углам Эйлера -> 3D точки -> 2D точки?Ответы:
Низкочастотная фильтрация
Было бы хорошо узнать, что вы подразумеваете под «простым фильтром нижних частот».
Например, если ваши измерения в момент времени являютсяk
и ваши отфильтрованные оценки нижних частот:
тогда у вас будет довольно большая групповая задержка в фильтре около (для альфа, близкой к 1).1 / ( 1 - α )
Моделирование сигнала: упрощенный подход
Чтобы использовать фильтр Калмана (или любой подобный подход), вам необходимо иметь модель для того, как ваши измерения получаются и обновляются.
Обычно это выглядит так:
, где ε к является процесс (вождение) шум,матрица перехода состояния, а B ваш входной матрицы.
И тогда ваши измеренные значения : p k = C p T R U E k + D ν k, где ν k - выходной (измерительный) шум, C - выходная матрица, а D - ваша измерительная шумовая матрица.пК
Здесь «состояние» модели выбирается в качестве истинных позиций, а измеряемые вами вещи являются выходом.
Затем вы можете применить к нему уравнения фильтра Калмана, чтобы получить оценки состояния истинного положения.пT R UЕК^
Однако этот подход упрощен, поскольку он не использует никаких знаний о том, как могут перемещаться точки (и при этом он не использует ваши 4 точки и любые ваши знания о том, как они движутся вместе).
Моделирование сигнала: начало лучшего подхода
На этой странице показано, как решить проблему, связанную с позициями и углами Эйлера. Это делает что-то отличное от того, что вам нужно, но состояние таково:
и измерения (выход)
Это просто классические «уравнения движения». Смотрите уравнение (3) здесь.
источник
Ваш фильтр нижних частот может быть как;
LPF может быть деформирован следующим образом:
источник