Обновить

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

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

Расчеты там чисто по формулам, их можно зашить в железо, можно даже вообще в аналоговую схему (там будет в основном всякие ОУ с обратными связями, считай рефлекторная реакция)

ЗЫ: в "ручном" режиме можно дополнять картинку расчетной меткой, тогда в прицел надо ловить не саму цель - она оттуда уже улетит - а расчетную метку, куда она прилетит если не передумает

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

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

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

А тут летит авиамодель из школьного кружка: маленькая, медленная, недорогая, для ЗРК как муха для слона, хрен попадешь. И устаревших зенитных пулеметов нет.

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

На расстоянии в 30 м у пехотинца вообще вариантов нет кроме старого доброго дробовика, чтобы накрыло дрон облаком дроби. И оптический дальномер только демаскирует стрелка в укрытии, особенно если дронов несколько.

А тут какая-то техника всё-таки, может самоходный беспилотник с пулеметами от Шилки, или хотя бы турель с ПКТ

Погуглил стоимость XCZU9EG. Недешевый прицел получится. Может раскидать на десяток gw5a-138 и внешний арм?

Есть чипы на линуксе с дополнительным DSP-ядром. Как в телефонах для модема и прочих радиомодулей. Критичное к таймингам считать на этом ядре, для остальнгого хватит ядра linux плюс максимально обрезаного buildroot.

Так это Proof-of-Concept. Для прода нужно будет либо, как вы сказали, на несколько небольших и дешевых FPGA раскидывать, либо, как я в конце статьи писал, вообще на ее базе ASIC делать, а последние слои хранить на небольшой ПЛИС для дальнейшего файнтюна.

FPV-дроны делают ход козлом

Словарь странных выражений пополнен /s

Тут скорее нужно делать некую легкую турель со снайперским длинностволом и быстрым приводом - реакции солдата на быстро летящий дрон уже недостаточно. Монтировать это дело на самоходную платформу или квадрик.

Словарь странных выражений пополнен /s

Кони просто дороги и устарели.

тогда надо отличать дрон от не-дрона. Иначе эта турель всех птиц в округе расстреляет

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

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

  1. Разрешения 192х320 совершенно недостаточно, чтобы идентифицировать именно дрон. Будет распознаваться просто любая точка на небосводе. У меня с камеры идёт поток 720х480 (на вход модели подаётся 736х480, letterboxed), и объекты с разрешением менее 20px распознаются крайне ненадёжно.

  2. Квантизация 8 (и тем более, 4) бит до крайности огрубляет результаты распознавания: confidence дискретизируется до нескольких фиксированных значений, что затрудняет настройку порога срабатывания. В конечном итоге пришёл к FP32/2.

  3. Гнать с камеры поток 200 FPS не имеет никакого смысла: это подразумевает недостижимую на практике в переносном устройстве скорость обработки <5ms. К тому же такая скорость никак не коррелирует со временем нажатия на спуск – которое, подозреваю, измеряется в десятках, если не сотнях ms.

  4. Младшие модели YOLO довольно медленные: у меня наилучший результат получился с YOLO26, которая убирает NMS за счёт встроенной end2end.

  5. Дистанцию распознавания нужно значительно увеличивать: 30 м – ни о чём, подозреваю, дрон пуляет со значительно большего расстояния, или как минимум со сравнимого – а это не тот случай, когда взаимный нокаут можно признать удовлетворительным результатом.

У меня в качестве железа телефон, поток с его же камеры. По измерениям результаты такие (LiteRT, {gpu,cpu} delegate):

┌───────────────────────────────┬─────────────────────┬───────────────┬─────────┬─────────┬─────────┬────────────┐
│            Device             │         SoC         │      OS       │ Median  │   p95   │   Max   │  Build ms  │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ Samsung Galaxy S23 (SM-S911B) │ Snapdragon 8 Gen 2  │ 16            │ 30      │ 32      │ 33      │ 117        │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ Samsung SC-51C                │ Snapdragon 8 Gen 1  │ 16            │ 33      │ 37      │ 39      │ 140        │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ OnePlus CPH2415               │ Snapdragon 8 Gen 1  │ 14            │ 38      │ 40      │ 70      │ 176        │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ Xiaomi 2312DRA50G             │ Snapdragon 7s Gen 2 │ 14            │ 65      │ 67      │ 67      │ 170        │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ Google Pixel 7a               │ Tensor G2           │ 13            │ 82      │ 92      │ 93      │ 168        │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ Samsung A15 (SM-A155M)        │ Helio G99           │ 14            │ 145–150 │ 171–187 │ 177–188 │ ~210       │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ OnePlus 8 Pro                 │ Snapdragon 865      │ 11            │ failed  │ —       │ —       │ —          │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ iPhone 16 Pro (17,1)          │ A18 Pro             │ 18.3.2        │ 19–24   │ 27      │ 27–28   │ 217 / 1224 │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ iPhone 14 Pro (15,2)          │ A16                 │ 16.6          │ 21      │ 24      │ 24      │ 321 / 1626 │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ iPhone SE 3 (14,6)            │ A15                 │ 18.4          │ 28      │ 32      │ 33      │ 174        │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ iPhone SE 3 (14,6)            │ A15                 │ 26.3.1        │ 28      │ 33      │ 33      │ 170        │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ iPad 10 (13,18)               │ A14                 │ iPadOS 16.6.1 │ 32      │ 33      │ 33      │ 204        │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ iPhone 11 Pro (12,3)          │ A13                 │ 16.6          │ 53      │ 56      │ 57      │ 143        │
├───────────────────────────────┼─────────────────────┼───────────────┼─────────┼─────────┼─────────┼────────────┤
│ iPhone 8 (10,4), rerun        │ A11                 │ 16.6          │ 81–82   │ 85      │ 85–86   │ ~220–235   │
└───────────────────────────────┴─────────────────────┴───────────────┴─────────┴─────────┴─────────┴────────────┘

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

Спасибо за комментарий!

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

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

А все остальные приколы в виде низкого разрешения, квантизации, YOLOv8 и т.д. берутся из ограничений FPGA, потому что либо не влезает, либо нейронка содержит в себе операции, которые тупо не поддерживают компиляторы FPGA (типа блоков внимания в YOLOv26).

Да и к тому же я сам в прошлом разработчик FPGA, поэтому склонен решать поставленные задачи известными инструментами :)

низкое разрешение можно частично нивелировать обрезкой кадра с сохранением только центральной области

Если обрабатывать только центральную область, то проще использовать камеру с бóльшим фокусным расстоянием. Но это автоматически сузит угол обзора. А повышение разрешения за счет кропа широкоугольного кадра потребовало бы значительного усложнения пайплайна – с соответствующими накладными расходами. Входное разрешение модели фиксированное – соответственно, нужно даунскейлить фрейм высокого разрешения, просить модель найти на нём координаты bbox-кандидатов (кстати, а что, если дронов несколько?), после чего кропать исходный фрейм и снова пропускать через модель для окончательного решения. Долго, дорого.

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

Автор поэтому и кропит центральную часть кадра с Full HD сенсора, сохраняя исходную плотность пикселей на градус

Другое дело что поле зрения при этом сужается в замочную скважину

Автор поэтому и кропит центральную часть кадра с Full HD сенсора, сохраняя исходную плотность пикселей на градус

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

Другое дело что поле зрения при этом сужается в замочную скважину

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

При таком кропе уверенно классифицировать объект именно как дрон вряд ли возможно

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

он должен держать дрон строго в пределах рабочей зоны

Это правда, но делать это нужно в течение десятков миллисекунд, отсюда и такие строгие требования к скорости.

нужно попробовать несколько классов классифицировать

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

Спасибо.
Техническое рассеяние боеприпасов, НЯЗ - подробно изученное в 30-50 годах XX века, сразу ставит требование “с первого выстрела” в плоскость статистики, зависящей от типа боеприпаса и оружия. Помимо наведения - надо обеспечить плотность огня. Вблизи (50 м?) - можно пытаться скомпенсировать еë объëмом пространства, поражаемого одним боеприпасом (сетки, мини-кнюппели и т.п.).

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

Собственно, все схожие разработки в хрупкость и нежность оптической части и упираются по итогу.

А сколько это всё будет стоить? Я понимаю, что жизнь солдата обычно стоит дороже. Но тут сильно от страны зависит. В некоторых странах "бабы ещё нарожают" (с).

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

Главный затык тут будет даже не в сетке, а в USB-камере с ее непредсказуемой задержкой кадров на хосте

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

Публикации