К содержимому
MoranaLabs
R&D — зрительное наведение с моделью мира

Наведение по камере с моделью мира 

Детектор отвечает, есть ли цель в кадре. MoranaPilot отвечает на следующий вопрос: что делать рулями, когда цель в кадре есть — и что делать, когда ее в кадре нет. Направление про второе. Треть кадров эталонного эпизода детектор не отдает ничего, и все это время аппаратом управляет не картинка, а внутренняя оценка того, где цель сейчас должна быть.

в работе

цель по трекингу взята в симуляторе, sim-to-real не начат

20 кампаний, май — июнь 2026

стек
  • ppo / recurrent ppo
  • асимметричный критик
  • kalmannet
  • gymnasium
  • onnx
задача

Вести маневрирующую воздушную цель по одной камере и не терять ее, когда детектор перестает отдавать детекции: резкий маневр, смаз, засветка, уход за край кадра. Ни радара, ни дальномера, ни целеуказания извне — детект только по картинке с нулевой секунды.

метод

Обучение с подкреплением в симуляторе с намеренно злыми условиями. Модель мира обучается не надеждой на рекуррентную сеть, а плотным градиентом: скрытое состояние обязано предсказывать истинную геометрию, которую само зрение в этот момент не показывает. Поверх — гибридный фильтр с обучаемым усилением.

результат

Гибрид превосходит классический фильтр Калмана по всем трем метрикам слепого участка и остается интерпретируемым. Два оставшихся ограничения — физические: монокуляр и аэродинамика. На железо направление не выходило, и это записано в границах, а не спрятано.

0,50

держит цель вслепую

у классического фильтра −0,03

18 %

теряет цель после слепоты

у классического фильтра 84 %

80 %

ре-захват в центр кадра

медиана задержки 0,35 с

20

кампаний с вердиктом

из них 14 не приняты

01 — как это выглядит

Секунда без картинки — и аппаратом управляет только память

Ниже настоящий эпизод из симулятора, кадр за кадром. Детектор в нем молчит треть времени — два окна, длинное больше полусекунды подряд. Красная рамка появляется только когда детекция реально пришла; кружок показывает, где цель по мнению модели. Разъезд между ними и есть предмет всего направления.

реплей эпизода · поперечная цель · сид 4011детектор слеп 35 % времени · длинное окно 0,63 с
кадр камеры — что видит политикадетекция есть
  • рамка детектора
  • оценка фильтра
геометрия · поперек, м
  • перехватчик
  • цель (пунктир — вне детекции)
  • оценка
0,00 счерные полосы — окна без детекции2,83 с
время
0,00 с
дальность
229,6 м
сближение
0 м/с
ошибка оценки
92,1 м

Смотреть надо на черные полосы шкалы. В них рамки нет — детектор не отдает ничего, — а кружок оценки продолжает ехать по кадру и к моменту возврата детекции стоит уже близко к цели: ошибка оценки за длинное слепое окно сокращается с 74 до 26 метров. Это единственный способ показать внутреннюю модель цели: в таблице она выглядит одним числом, а работает вот так.

02 — постановка

Политике отдали ровно то, что было бы у живого пилота

Соблазн в такой задаче один: подсунуть модели истинную дальность и скорость цели, получить красивый результат и обнаружить на железе, что этих величин там неоткуда взять. Поэтому контракт наблюдения зафиксирован жестко с самого начала, и все привилегированные данные живут только внутри обучения — в критике, который на борт не уезжает.

Что политика получает

  • рамка детектора в кадре: центр, размер, уверенность
  • сколько кадров цель уже не видно
  • собственные крен, тангаж, рыскание и угловые скорости
  • собственные команды на рули за предыдущие кадры
  • история всего перечисленного в разных масштабах времени — от текущего кадра до двух секунд назад

Что закрыто наглухо

  • дальность до цели
  • координаты цели
  • скорость цели
  • целеуказание извне — ни на старте, ни по ходу
  • любая телеметрия, которой не будет на реальном носителе
что уезжает из лаборатории
  1. 01

    кадр

    детектор отдает рамку или не отдает ничего

  2. 02

    проекция

    рамка и собственная ориентация — в измерение

  3. 03

    фильтр

    гибридный шаг: предсказание, обновление, оценка

  4. 04

    политика

    зрение плюс строка оценки — в рекуррентный актор

  5. 05

    команды

    четыре канала на рули, состояние возвращается на следующий шаг

Два графа, между ними тонкая проекция на стороне хоста; состояние фильтра и рекуррентной сети обнуляется на старте эпизода. Расхождение выгруженной связки с исходной моделью проверено покадрово и лежит в районе миллионных долей — это условие, без которого замер на стенде не переносится на замер в бою.

03 — очная ставка

Четыре трекера на одном и том же входе

Утверждение «нейросеть лучше фильтра Калмана» ничего не стоит, пока фильтр не написан честно и не запущен на тех же кадрах и тех же сидах. Он написан: рабочий трекер на девяти состояниях относительной кинематики с пропорциональным наведением, который с видимой целью берет перехват в каждом восьмом эпизоде. Дальше всем четверым гасят детектор на три четверти секунды в самой активной фазе и смотрят, кто что делает.

50 эпизодов · слепота 0,75 с в активной фазе · дрожащий детектор

доля эпизодов, где после слепого окна цель потеряна окончательно

  • Классический фильтр Калмана84 %

    9 состояний относительной кинематики, наведение — пропорциональное. Честный эталон, а не соломенное чучело: с видимой целью он берет перехват в 12,5 % эпизодов

  • Сквозной LSTM-пилот8 %

    магистральная политика: рекуррентный актор на истории кадров, модель мира — только то, что LSTM выучила сама под вспомогательными головами

  • KalmanNet, соло60 %

    структура фильтра Калмана оставлена, но коэффициент усиления считает обученная GRU. Работает как оценщик, управление — пропорциональное по его оценке

  • KalmanNet + LSTMв поставке18 %

    оценка гибрида подается входом сквозному пилоту: модель мира от фильтра, центрирование и ре-захват — от политики

вывод по метрикеМетрика, ради которой все затевалось. Классический фильтр теряет цель в 84 % эпизодов, гибридный пилот — в 18 %. Разница не в тюнинге, а в том, что у одного модель движения цели задана руками, а у второго выучена из данных.

почему так вышлоКлассический фильтр не виноват: по одной камере дальность и поперечная скорость принципиально ненаблюдаемы, а на предсказании без коррекции оценка неизбежно уезжает. Ему приходится угадывать то, что гибрид выучивает из данных — шумы, нелинейность модели измерения, характер маневра цели и дрожание самого детектора.

04 — двадцать заходов

Что пробовали, что выбросили и почему

Полный список кампаний в хронологическом порядке, с цифрой, по которой принималось решение. Отклоненные заходы стоят в том же списке и тем же шрифтом, что принятые: по ним видно, сколько стоит каждая проверенная гипотеза и какие из очевидных идей не работают. Нажмите на строку, чтобы развернуть разбор.

  1. Архитектурный перелом направления. Критик — он живет только в обучении и на борт не уезжает — дополнительно получает истинное состояние: направление на цель, дальность, относительную скорость, ветер. Актор остается только со зрением. Сверху вспомогательные головы: скрытое состояние актора обязано на каждом шаге предсказывать это самое истинное состояние. Во время слепоты сделать это можно единственным способом — интегрировать движение цели внутри себя. Так модель мира перестает быть надеждой на рекуррентную сеть и начинает обучаться плотным градиентом. Заодно вскрылась природа «падений»: пятнадцать из пятнадцати оказались энергетической смертью после выгорания двигателя, а не столкновением с землей.

Из двадцати заходов принято 7, отклонено 6, закрыто диагнозом 5, 2 остались инструментами замера. Это нормальная пропорция исследовательской работы — и единственная причина, по которой принятым 7 можно верить.

05 — уроки

Восемь выводов, которые переживут это направление

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

01

Мерить надо в том режиме, в котором система работает

Проба на слепоту, запускавшаяся на четвертой секунде, оценивала аппарат, у которого топливо кончилось две секунды назад: ровная планирующая геометрия дает завышенное ведение у любой модели. Перенос замера в активную фазу развернул вывод целой кампании на противоположный — модель, считавшаяся лучшим трекером, оказалась худшим. Ни одна цифра в отрыве от режима замера ничего не значит.

02

Прежде чем учить у эксперта, измерь эксперта

Награда, тянущая политику к простому визуальному сервоприводу, выглядела разумной подсказкой. Замер самого сервопривода — сделанный, к сожалению, уже после кампании — показал, что он берет три процента. Подсказка не помогала учиться, она прижимала обучение к собственному потолку.

03

Главная цифра умеет врать про то, что под ней

Чемпион по проценту перехвата провалил пробу на слепоту вдвое: имитационная кампания перестроила скрытое состояние под мимикрию учителя, а внутренняя модель цели при этом сгорела. К поставке такая модель непригодна, хотя по заголовку отчета — лучшая. С тех пор проба гоняется на каждом срезе.

04

Рычаги крутят по одному

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

05

Одна политика не удерживает два конкурирующих навыка

Погоня за целью и стрельба в точку встречи делят одни веса и вытесняют друг друга. Шесть прогонов, включая обучение на уменьшенном в десять раз шаге, показали одно и то же: баланс проскакивается за считанные сотни тысяч шагов. Лечится не настройкой, а архитектурой — явным условием на контекст.

06

Шум надо вносить такой, какой он есть

Рамка реального детектора дрожит и пульсирует сама по себе даже на неподвижной цели, и дрожит коррелированно, а не белым шумом. Пока в симуляторе стояла идеальная рамка, любой трекер выглядел прекрасно. После внесения дрожания ошибка пеленга выросла в полтора раза, и сравнение стало осмысленным.

07

Гибрид бьет и чистую классику, и чистый черный ящик

Классический фильтр вынужден угадывать шумы и модель измерения, сквозная сеть — выучивать всю структуру задачи с нуля. Оставить явную структуру фильтра, а обучить в ней ровно один блок — коэффициент усиления — оказалось лучше обоих крайних вариантов и вдобавок осталось интерпретируемым: видно оценку состояния и то, как она меняется.

08

Оценка и управление — разные умения

Улучшенная версия фильтра подняла качество оценки вслепую с 0,70 до 0,78, а удержание носа на цели не сдвинулось вообще. Значит упирается уже не сеть: оценка почти вдвое лучше поведения, и следующий прирост дадут второй ракурс и планер, а не еще один прогон обучения.

06 — факты
постановка
только монокулярная камера: ни радара, ни дальномера, ни целеуказания с нулевой секунды
что видит политика
рамка детектора, свое положение и угловые скорости, свои недавние команды
чего не видит
дальность, координаты и скорость цели — они остаются внутри симулятора
кампаний обучения
20, каждая с вердиктом: 6 принято, 6 отклонено, 5 закрыто диагнозом, 2 инструмента
держит цель вслепую
0,50 против −0,03 у классического фильтра Калмана
теряет цель после слепоты
18 % эпизодов против 84 % у классического фильтра
ре-захват после слепоты
80 % эпизодов, медиана задержки 0,35 с
где замерено
симулятор, 50 эпизодов на модель, единый вход с камеры для всех участников
чего нет
переноса на железо, полевых замеров и внедрений — направление не выходило из лаборатории
границы

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

чего в этом направлении нет
  • Изделия. Это исследовательский модуль, а не продукт и не коммерческое предложение.
  • Средств поражения и подавления. Мы их не разрабатываем и не поставляем — ни глушилок, ни средств радиоэлектронной борьбы, ни перехвата как услуги.
  • Обещаний по точности вне симулятора. Цифры сняты в модели и переносятся на реальность только через замер, которого не было.

Что мы действительно делаем по воздушной теме — обнаружение: детектор на edge-железе, журнал событий, оповещение. Решение о том, что делать дальше, закон оставляет не подрядчику.

07 — что осталось полезного

Половина направления — про камеры вообще, а не про эту задачу

Ведение объекта сквозь перекрытие, фильтр, который не надо настраивать руками, и приемочная проба на слепоту — это инструменты, которые работают на складе, на конвейере и на дороге ровно так же, как в исходной постановке.

Трекинг через перекрытие

Задача «объект пропал из кадра на секунду, не потеряй его» — это склад, конвейер, дорога, порт и любая сцена, где предметы заслоняют друг друга. Механика тут та же: внутренняя оценка ведет объект, пока детектор молчит, и подхватывает его обратно при возврате.

Фильтр, который не надо настраивать руками

Классический фильтр требует, чтобы кто-то задал ему шумы процесса и измерения. На реальном потоке они меняются от объекта к объекту, и настройка превращается в бесконечную. Гибрид учит эту часть из данных, сохраняя проверяемую структуру — на приемке видно оценку, а не только выход.

Проба на слепоту как приемочный тест

Принудительно гасим детекции на заданном интервале и смотрим, что делает система. Тест занимает минуты, ловит трекеры, которые на записи выглядели прилично, и применим к любому чужому решению ровно так же, как к своему.

Отказы сенсора внутри обучения

Дешевле научить модель жить с пропусками, задержками, смазом и дрожащей рамкой, чем потом обвешивать идеальную модель костылями на объекте. Прием переносится в любую задачу, где вход приходит с живого железа, а не из аккуратного датасета.

журнал

Что происходило по направлению

  1. май 2026

    Старая ветка вскрыта пробой на принудительную слепоту: внутренней модели цели нет, девять эпизодов из десяти гибнут без картинки. Заодно найдена ошибка чтения метрик, из-за которой проба и адаптивный курикулум месяцами измеряли нули. Постановка переписана с «веди рамку» на «пилотируй».

  2. 10.06.2026

    Архитектурный перелом: асимметричный критик плюс вспомогательные головы, обучающие модель мира плотным градиентом. Слепое ведение с −0,02 до 0,59, ре-захват с 12,5 до 84 %, срывы по потере цели из кадра практически обнулены.

  3. 13.06.2026

    Найдена методическая ошибка замера: проба, запускавшаяся на четвертой секунде, оценивала уже баллистически мертвый аппарат и завышала результат у всех моделей. Все замеры переведены в активную фазу полета — вывод предыдущей кампании развернулся на противоположный.

  4. 14.06.2026

    Гибрид KalmanNet обучен и слит с политикой. Очная ставка на едином входе: классический фильтр Калмана проигрывает по всем трем метрикам. Экспорт в ONNX сделан и сверен с исходной моделью. Дальше — упор в два физических потолка и остановка направления до задачи с реальным носителем.

Другие направления

Вся витрина R&D →

Статус этого направления — в работе. Как читать статусы и по каким правилам работает лаборатория — на витрине R&D.

— заявка

Опишите задачу  ответим как инженеры. 

Оставьте имя и Telegram — остальное обсудим. Без брифов на 40 слайдов и звонков по три раза.

Отвечаем за пару часовотвечает инженер, а не отдел продажNDA по запросу

Любой один канал — куда удобнее, туда и ответим

Или сразу написать в Telegram

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