LINUX.ORG.RU

Вышла YAFL-0.40.12

 , , , ,


1

3

Сегодня увидела свет библиотека YAFL версии 0.40.12.

YAFL — это библиотека, написанная на Си, содержащая несколько алгоритмов Калмановской фильтрации и биндинги к Python, распространяемая под лицензией Apache-2.0.

Основное изменение по сравнению с прошлой версией 0.30.2, - добавлена реализация алгоритма Interacting Multiple Model (IMM). Алгоритм IMM используется для таких задач, как сопровождение маневрирующих объектов, оценка параметров работы объектов, имеющих несколько режимов работы и т.п.

В отличии от прототипа YAFL позволяет использовать алгоритм IMM с разными реализациями фильтра Калмана. Более того, если пользователю хочется странного, можно использовать несколько разных реализация EKF и UKF в одном фильтре IMM.

Для быстрого прототипирования можно использовать пакет yaflpy, доступное через pypi, однако с его установкой может возникнуть проблема, связанная с тем, что pip3 может попытаться установить NumPy версии 2.x, не смотря на ограничения в requirements.txt. В случае проблем со боркой рекомендуется устанавливать пакет с ключом --no-build-isolation.

В следующих версиях планируется обновление зависимостей сборки yaflpy.

Стараница проекта на GitHub

Страница проекта на GitFlic

>>> Релиз на GitHub

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

Где используется фильтр Калмана в обычной компьютерной практике? Я его видел только в системах ПВО, сопровождение целей и обнаружение манёвров.

blex ★★★★
()
Ответ на: комментарий от blex

Если не рассматривать очевидный вариант, INS, то теоретически можно применить для оценки значения какого-то параметра, когда от него зависит что-то еще. Например оптимальный размер джиттер-буфера в VoIP системе, в зависимости от джиттера (это я натягиваю сову на глобус).

m0rph ★★★★★
()
Последнее исправление: m0rph (всего исправлений: 1)
Ответ на: комментарий от blex

Рваную и дребезжащую 2D/3D анимацию сглаживать, после захвата анимации в принципе можно. В VR шлемах дрыгающиеся показания датчиков стабилизировать. Звуки сглаживать. Это всё в теории, везде где есть некий шум, а требуемое значение сидит в серединке шумов, при этом диапазон шума меняется вместе с серединкой, это оно. Но лично я не использовал, нужды нет.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Во ещё, обновлённые замены имён, вдруг кому надо.

/*-----------------------------------------------*/
#define yafl_int yaflInt
#define yafl_float yaflFloat
#define yafl_ukf_st yaflUKFSt
#define yafl_immcb_st yaflIMMCBSt
#define yafl_status_en yaflStatusEn
#define yafl_ekf_base_st yaflEKFBaseSt
#define yafl_ukf_base_st yaflUKFBaseSt
#define yafl_ukf_merwe_st yaflUKFMerweSt
#define yafl_ukf_sigma_st yaflUKFSigmaSt
#define yafl_kalman_funcp yaflKalmanFuncP
#define yafl_ekf_robust_st yaflEKFRobustSt
#define yafl_ukf_julier_st yaflUKFJulierSt
#define yafl_ukf_robust_st yaflUKFRobustSt
#define yafl_ukf_rob_funcp yaflUKFRobFuncP
#define yafl_ukf_sigma_addp yaflUKFSigmaAddP
#define yafl_kalman_base_st yaflKalmanBaseSt
#define yafl_ekf_adaptive_st yaflEKFAdaptiveSt
#define yafl_kalman_res_funcp yaflKalmanResFuncP
#define yafl_kalman_rob_funcp yaflKalmanRobFuncP
#define yafl_ukf_adaptived_st yaflUKFAdaptivedSt
#define yafl_kalman_update_cbp yaflKalmanUpdateCBP
#define yafl_kalman_update_cbp2 yaflKalmanUpdateCBP2
#define yafl_filter_bank_item_st yaflFilterBankItemSt
#define yafl_ukf_full_adapive_st yaflUKFFullAdapiveSt
#define yafl_ukf_sigma_methods_st yaflUKFSigmaMethodsSt
#define yafl_kalman_scalar_updatep yaflKalmanScalarUpdateP
#define yafl_ukf_sigma_gen_sigmasp yaflUKFSigmaGenSigmasP
#define yafl_ekf_adaptive_robust_st yaflEKFAdaptiveRobustSt
#define yafl_ukf_adaptive_robust_st yaflUKFAdaptiveRobustSt
/*-----------------------------------------------*/

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от hobbit

несколько разных реализация EKF и UKF в одном фильтре IMM.

несколько разных реализаций

пакет yaflpy, доступное через pypi

доступный

Да уж, писал текст второпях.

shkolnick-kun ★★★★★
() автор топика

А как ты тестируешь корректность реализации алгоритма? Как проверить, что фильтр фильтрует то, что надо?

gns ★★★★★
()
Ответ на: комментарий от gns

Сравниваю прототип на питоне с кодом на Си на простой задаче.

Результат должен отличаться на ошибки округления.

Питон и Си считают немного по разному.

shkolnick-kun ★★★★★
() автор топика
Ответ на: комментарий от gns

Теоретически - неплохо бы.

Но с практической точки зрения, - об это нельзя говорить публично ни слова, ибо варез.

shkolnick-kun ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Я недавно, когда надо было сделать «грязно и быстро», для фильтрации шумов в спектре на 2.4 ГГц использовал усредняющий и медианный фильтр, но на чем остановился я не помню

snake266 ★★★
()
Ответ на: комментарий от shkolnick-kun

Ну для себя поинтересоваться можно же :)

Можно еще посмотреть в исходном коде к книжке Numeric Recipes, но в тексте книги есть только упоминание про Калмановский фильтр с ссылками на литературу. Типа ну есть такое, и будет с вас.

gns ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.