nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

О "переходном процессе" - дело было не в бобине

Сегодня утром, ещё дома, меня "осенило", в чём было дело. Когда приехал (с приключениями), понадобилось всего несколько минут, чтобы подтвердить это предположение.

Как водится, алгоритм сопровождения, весь из себя хитрый, был не виноват. Я чего-то как увидел эти "ступеньки", прыгающие между правильным значением и неправильным - сам "зацепился" за неправильную гипотезу и долго и настойчиво пытался её доказать. Получалось красиво: из-за слишком симметричной мишени где-то появлялись неоднозначности - и алгоритм выходил на локальный минимум.

А надо было просто проверить ВХОД АЛГОРИТМА. А именно, насколько правильно были найдены яркостные центры:



И у меня даже была процедура, которая это дело замеряет, но она была наиболее привязанной к конкретной конфигурации мишени: по 5 уголков в каждой из 3 мишеней дальней дистанции, и 8 уголков в мишени ближней дистанции. И у меня там было "гениальное" решение для уголков, вышедших за поле зрения указывать бесконечную ошибку (что само по себе допустимо), но потом, когда я разбирался с ковариационной матрицей шума, я решил сюда же добавить ковариационную матрицу "входного шума", убедиться что она диагональная, и вот она очень нервно воспринимала эти "бесконечности", которые на всей траектории, от 300 метров до 0,5 метров, неизбежно возникали! Поэтому в какой-то момент я отключил всё это дело "за ненадобностью".

А сейчас оно очень даже пригодилось! Как мы видим, именно на "проблемном" участке у нас пропадает субпиксельная точность - мы выходим на "плюс-минус пиксель", потом на "плюс-минус полпикселя", и только потом приходим в норму. А виноваты в этом изменённые МИШЕНИ ДАЛЬНЕЙ ДИСТАНЦИИ, хотя казалось бы, на этом интервале они вообще не работают!


Всё дело в выборе радиуса для нахождения яркостного центра пятна с субпиксельной точностью. Когда-то я считал, что с определённой дальности буду работать СО ВСЕМИ УГОЛКАМИ ПО ОТДЕЛЬНОСТИ - не только с 8 уголками мишени ближней дистанции, но и с отдельными уголками мишеней дальней дистанции. Рисовал (генерировал) такую вот картинку:
Frame 3000.png

И логика была такая: ещё при инициализации мы искали самую маленькую дистанцию между точками (в метрах, т.е по физическому расположению, а не по картинке на матрице), умножали её на косинус 30 градусов, т.е закладывались на то, что посмотрим на это всё дело под максимально допустимым углом, из-за чего картинка ужмётся максимум на cos(30°)≈0,866 - и затем в качестве радиуса мы брали ПОЛОВИНУ ОТ МИНИМАЛЬНОЙ ДИСТАНЦИИ, но пересчитанную в пиксели в соответствии с измеренной нами дальностью.

И пока мы работали с мишенями, как на картинке выше, оно успешно моделировалось, без каких-либо выбросов.

Но потом мне указали, что эта картинка выглядит несколько странно - если мишени дальней дистанции (МДД) имеют диаметр 80 мм, а мишень ближней дистанции (МБД) - размеры 250х150х95 мм, то у меня МДД выходят непропорционально большими! И действительно, оказалось что я когда-то давно расположил эти уголки чуть ли не по внешнему диаметру, и в ус не дул.

Не так давно я исправил это дело, в соответствии со своей мишенькой, запустил, особых проблем не обнаружил - и принялся за какие-то другие дела.

А буквально на прошлой неделе я и вовсе заменил эту мишень в 5 уголков на ту, которую нам, похоже сделают, в 7 уголков меньшего диаметра:


Вот они и заставили алгоритм выбирать очень маленький радиус для нахождения яркостного центра. Для 15 метров это оказывался радиус 2 пикселя, то есть пятнышко 4х4 пикселя. При этом изображение этих уголков генерировалось вот такое:



(вырезан кусок из изображения выше, и увеличен в 4 раза методом "Nearest neigbour", показать пиксельную структуру этого дела)

Как видно, если брать круг 4х4 пикселя, мы попадаем аккурат в центр пятна, из-за чего субпиксельная точность пропадает!

Проблема имеется именно на большой дальности, где уширение пятна за счёт нерезкости и дифракции на входном зрачке весьма существенна. По мере приближения, угловой размер самого уголка значительно возрастает и дифракцией с нерезкостью можно пренебречь - с этого момента он наконец-то влезает ВЕСЬ - и мы возвращаемся к нормальной работе.


Подправил алгоритм - и выброс ушёл:


Вернулись к тому, с чего начали - какую выбрать конфигурацию мишени? Ну ладно, с момента, как меня этим озадачили, прошло всего 10 дней. Сейчас попробую их сравнить по достигаемой точности...
Tags: ПЛИС, математика, работа, странные девайсы
Subscribe

  • Очередная несуразность в единицах измерения

    Когда-то я написал программу PhysUnitCalc - калькулятор, умеющий работать с размерностями. Мне казалось, что я наступил уже на все грабли, которые…

  • Big Data, чтоб их... (3)

    "В предыдущих сериях": мой прибор выдаёт 6 значений: 3 координаты и 3 угла, т.е все 6 степеней свободы твёрдого тела. Причём ошибки измерения этих 6…

  • Big Data, чтоб их... (2)

    Вчера получил упоротое уравнение, чтобы найти, с какими весами нужно брать результаты измерений, чтобы получить наименее шумную и при этом…

  • Big Data, чтоб их...

    Решил всё-таки вывести оптимальную обработку N измерений x k, каждое по M компонент (т.е вектор M×1), и на каждое дана своя ковариационная…

  • О человеческом факторе

    В продолжение темы, затронутой в комментариях. Очень простая, модельная задачка, все цифры "с потолка", без кучи нулей, просто для наглядности.…

  • Так ли полезна ковариационная матрица шума?

    Всех причастных, непричастных и невиновных - с прошедшим днём начала космической эры! Бип-Бип-ура! А я опять по уши закопался в математику. Уже…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 1 comment