Обновить

Мы обошли фильтр Калмана на одной камере, но сначала три недели измеряли труп

Уровень сложностиСложный
Время на прочтение32 мин
Охват и читатели4.3K
Всего голосов 2: ↑1 и ↓1+1
Комментарии4

Комментарии 4

Идея то хорошая, она первой и приходит в голову. Жаль что с арифметикой не сходится. Просто посчитаем, дрон у нас допустим 0,3 метра на дальности 300 метров это 0,057 градуса. На 4к с полем зрения 20 градусов он занимает 11 пикселей и спокойно детектится. Растянем поле до 90 градусов, останется 2,4 пикселя, и находить уже нечего. Чтобы вернуть прежние 11 пикселей на 90 градусах, нужна матрица тысяч на 16 по горизонтали, а полный круг с вертикалью плюс минус 30 это сотни мегапикселей на кадр, порядка 20 гигапикселей в секунду. Берем условный боротовой Jetson или Hailo с RPI, они тянут десятки мегапикселей в секунду. Разрыв на три порядка, его оптимизацией к сожалению не закрыть. Вторую плату тоже не добавить, там стоит аккумулятор, а у него запас емкости не бесконечный. Плюс если углубляться в ракетостроение, там чуть ли не каждый грамм на счету. И геометрия окончательно добивает, аппарат разгонный, после выгорания мотора он уже не разворачивается, так что цель за спиной это уже списанный эпизод. 360 градусов мы бы возили как баласт.

круто что обошли классику. у нас была похожая задача с трекингом объектов на конвейере - фильтр калмана давал слишком много ложных срабатываний на быстром движении. какой метод в итоге оказался надёжнее?

Надежнее всего оказался гибрид. Структура фильтра остается, а коэффицент усиления выдает маленькая GRU, обученная на данных. В слепом тесте классический фильтр дал -0,03, чистая LSTM 0,41, гибрид 0,50 при том же входе. Схема называется KalmanNet. Только сразу оговорюсь, чтобы вы не перенесли наш вывод на свою задачу как есть. У нас фильтру досталась заведомо плохая постановка, монокуляр без дальномера, дальность оценивается по размеру рамки, а на слепом участке она вообще не обновляется. В таких условиях любой KF уезжает. На конвейере у вас геометрия известна, камера неподвижна, масштаб фиксированный, то есть фильтр работает в куда более честных условиях. По вашему симптому. Ложные срабатывания именно на быстром движении чаще приходят не от фильтра, а от ассоциации. За кадр объект смещается больше, чем расстояние до соседа и назначение цепляет чужой трек. Проверяется это за полчаса, скормите трекеру идеальные детекции из разметки вместо детектора. Если ложные остались, виновата ассоциация или модель движения. Если исчезли, виноват детектор со смазом, и чинить надо экспозицию, а не трекер. Дальше по возрастанию стоимости. Сначала модель движения, постоянная скорость на рывках не работает, IMM с двумя или тремя моделями обычно снимает половину проблемы и по времени занимает 1-2 вечера. Потом ворота ассоциации по махаланобису плюс что то про внешность объекта, чтобы соседи не путались. Потом компенсация задержки, если детектор отдает рамку с лагом, фильтр обновляется по позиции, которой уже нет, и на быстром движении это дает ровно ваш симптом. И только если после этого не хватает, есть смысл идти в обучаемый gain. Кстати, у вас для этого условия лучше наших, конвйер это стенд, где легко набрать размеченные данные с реальной линии, и обучать фильтр можно на истинных траекториях. Нам же для этого пришлось поднимать симулятор. Плюс на ленте есть сильный физический приор, объекты едут с известной скоростью в известном направлении, и его стоит вшить в модель движения.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации