FPV AI — это не один детектор и не один tracker. Рабочая система должна удерживать выбранный объект между кадрами, понимать качество наблюдения, не обучаться на ошибке и уметь проверить кандидата после потери.
Как устроен Vision Core
Tracker, YOLO и ReID решают разные задачи
Tracker отвечает на локальный вопрос: «куда переместилась выбранная область на следующем кадре?». Он может работать часто и быстро, но сам по себе не гарантирует, что после потери вернулся к тому же объекту.
YOLO / detector отвечает на другой вопрос: «какие известные классы объектов и где находятся в кадре?». Если в кадре несколько похожих объектов одного класса, детектор не доказывает индивидуальность выбранной цели.
ReID нужен для проверки индивидуальности: «этот кандидат похож на объект, который был выбран при LOCK?». Поэтому detector и ReID дополняют tracker, а не заменяют его.
Что система «обучает» во время работы
Офлайн-обучение нейросети — заранее выполненное изменение весов модели на размеченном датасете. Online adaptation после LOCK — осторожное обновление памяти о конкретной цели; вся YOLO-модель на телефоне при этом не переобучается.
Исходный образ. Не меняется и остаётся точкой возврата.
Последний проверенный хороший образ. Обновляется редко.
Рабочая память, медленно подстраивающаяся к ракурсу и освещению.
Главная защита от drift — quality gate. Если tracker ошибся и смотрит на фон или похожий объект, продолжение обучения может закрепить ошибку как новую норму.
Три состояния вместо ложной уверенности
Наблюдение достаточно уверенное. Допускается осторожное обновление рабочей памяти.
Доказательств недостаточно. Память удерживается без обучения.
Tracker больше не подтверждает цель. Обновление памяти запрещено; начинается поиск кандидатов.
Смысл состояний не зависит только от цвета: каждое состояние меняет допустимое поведение системы. Особенно важно, что UNCERTAIN и LOST блокируют обучение памяти.
Текущий прикладной baseline
В Android-стенде проекта используется связка CameraX → ручной LOCK → NCC tracker → TargetAppearanceModel → YOLO26n LiteRT → Appearance ReID → TRACK / UNCERTAIN / LOST. Частоты tracker и нейросети регулируются независимо.
При этом R&D-логика остаётся tracker-first: сначала должен быть доказан устойчивый tracker + quality monitor. Detector, повторный поиск и более тяжёлые ReID-варианты принимаются как улучшение только после измеримого сравнения с baseline.
Как проверить, что система реально работает
Успешная сборка APK не доказывает устойчивость сопровождения. Нужны воспроизводимые сценарии и метрики.
| Проверка | Что меняем | Что наблюдаем |
|---|---|---|
| LOCK / TRACK | Плавное движение камеры | TRACK ratio, latency, FPS, переходы UNCERTAIN/LOST |
| Окклюзия | Кратко закрываем объект | Время восстановления и состояние после возврата |
| Reacquire | Цель возвращается в другом месте | ReID latency, reacquire time, правильность объекта |
| Distractor | Добавляем похожий объект | False reacquire и similarity |
| Drift | Tracker временно уходит на фон | Не менялась ли память в UNCERTAIN/LOST |
| Частоты | Tracker Hz и NN Hz независимо | p50/p95 latency, FPS, нагрев, recovery |
Основные показатели: tracker / YOLO / ReID latency p50 и p95, FPS, TRACK ratio, LOST count, reacquire time, false reacquire rate и drift events. Если тест не проводился, корректный статус — «не проверено», а не PASS.
Граница этой архитектуры
Качество Vision Core оценивается тем, насколько надёжно он сохраняет идентичность выбранной цели, распознаёт потерю и выдаёт проверяемые метрики.
Что открыть дальше
Для разбора связки detector ↔ tracker перейди в Visual tracking на БПЛА: YOLO и OpenCV. Для практической проверки confidence, IoU и повторного захвата — в лабораторию YOLO/OpenCV.
