Как стать автором
Обновить

Как мы искали оранжевый спасательный плот c помощью черно-белой камеры

Время на прочтение7 мин
Количество просмотров7.1K
Всего голосов 24: ↑24 и ↓0+24
Комментарии36

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

Тут прям просится вторая камера с обычной чувствительностью, которая будет Hue поверх Lightness канала добавлять.

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

Обвес совсем запрещён? А то у меня первая мысль поставить оранжевый светофильтр. Тогда вид плота не поменяется, а всё море потемнеет.

Установка такого светофильтра уменьшит поток света, попадающий на светочувствительную матрицу. Из-за это ухудшится светочувствительность камеры

но она же слабо ухудшится к цвету плота (или это только мне кажется что слабо?). А то, что ухудшится к цвету моря... так в том и смысл.

Вы правы. Я думаю, что отказ от цветной камеры был ошибкой.

Диск с сектором оранжевого цвета , синхронизированный с частотой кадров камеры?

Чтоб через кадр снимать

В бытовых камерах видеонаблюдения ИК-затвор представляет собой «фитюльку» весом едва в 10 граммов. Это вообще ничто для веса и габарита аппаратуры, заключаемой в ударопрочный и термоизолирующий кожух. А преимущества даёт вполне осязаемые. Понятно, когда в ТЗ строго прописаны вводные, но если делать весь прибор с нуля — про управляемый ИК-затвор я бы крепко подумал.
P.S. Почитал каменты… обилие замечаний про камеру, на мой взгляд, говорит о том, что вам нужно было чётче растолковать этот момент при описании постановки задачи.

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

офф Честно говоря не так часто в море на поверхности что-то плавает, чтобы в ходе спасательной операции игнорировать некий предмет на поверхности. По-моему надо лететь и фотографировать всё, что замечено на поверхности.

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

На расстоянии прямой видимости будет поверхность в радиусе более 5 километров. Большинство предметов будет видно как несколько пикселей. Как плот отличить от волн?

Имхо тут нужен какой-то спектрометр, который оранжевый отличит от других цветов. И уже потом к этому предмету лететь на опознание.

Летательный аппарат снабжен камерой, которая смотрит вниз. ЛА облетает заданные регионы и в режиме реального времени детектирует целевые объекты.

И он даже есть, широко распространенный спектрометр им. Байера, но от него решили отказаться. Оценка эффективности байеровских фильтров ок 50-60%, один стоп грубо говоря. За эту цену покупается возможность найти оранжевое пятно на синем фоне. Днем света всегда достаточно, а ночью вообще темно, и без подсветки в видимой области делать нечего.
Имхо зря отказались.


Про ИК немного загадочно. Зачем вообще делать спасательную посветку и маячки в ИК диапазоне? Специально, чтобы глазом не видно было?


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

Прикольно, но сложно =). Я для похожего поиска дефектов использовал чистую математику. Нарезал картинку на столбики и искал среднюю яркость. Далее строил график средней яркости каждого столбика, проходил по нему фильтром сглаживания из матлабовской либы и строил производную, и вот там уже небольшой дефект выглядел как явное отклонение. Ну и примитивный детектор срабатывания по правилу трех сигм конечно такое находил. 200 фпс такая штука делает легко на 2Mpx снимках и процессоре Core2Duo.

Но это был LabView и 2011 год, мы развлекались как могли на своих двух ядрах и даже рискнули предложить разработать такую систему на кабельный завод :)

Морская поверхность довольно вариативна по яркости :-)

Напрашивается идея, что плот должен быть не просто оранжевым, а с какими-то специально подобранными белыми (или чёрными?) полосами / кругами / etc, заточенными под распознавание.

Конечно, да. Но спасательный плот ПСН-10 такой, какой он поставлен на обеспечение. С маркировкой, кстати, тоже важно не перегнуть палку...

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

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

Просто "мысли вслух".
А каким то образом учитывается вариант, что плот мог изменить форму ? (неудачное раскрытие, повреждение в следствии повреждения (хоть наружняя часть, хоть "опорная")).
Да даже (вдруг) изменение внешнего вида в последствии намерзания льда/снега.
Условно говоря, могло произойти "размытие контура/границ".

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

«Виолы и Джонса» в 2021 году…
Зачем вы его бенчмаркаете с SSD (какой бекбон?), Yolo 9000?.. Это не оптимизированные сетки 5 летней давности. По какому разрешению вы бенчмаркаете? Судя по размеру модели в памяти (от 700 метров) — вы даже не пробовали брать «нормальные» разрешения для оптимизации производительности. Нейронки обычно дают более качественный результат даже по разрешению в 4-8 раз меньше чем Хаар.
Почему нет графы «точность» рядом с «скорость»? Без этой второй графы любые сравнения бесполезны.

Попробуйте yolox-n, попробуйте SSD с легкими бекбонами. Можете обучить U-Net с 2-3 слоями и 8фильтрами.
Все это будет поддерживаться современным железом лучше чем Haar (дада, сейчас на каждом втором сопроцессоре будет ускоритель который можно заставить крутить нейронки ещё быстрее и оптимальнее без нагрузки на процессор).

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

В рассказываем как путем правильного применения известного (хотя немного модифицированного) инструмента решается задача с заданным уровнем качества и производительности.

Смотрите. Приведу пример:
Никто не сомневается что написать процедуру выполнения нейронной сети в 2021 году можно на фортране. Особенно если в фирме есть такая экспертиза. Но:
1) Имеет ли это смысл когда никто не сможет это поддерживать?
2) Имеет ли это смысл когда заранее можно словить массу проблем совместимости (железо/сторонний код)?
Есть некоторые правила качественной разработки. И когда вы делаете новое решение на устаревших технологиях, делая с нуля — на вас будут странно смотреть.

Что касается реальности:
1) Обобщающая способность Хаара много ниже чем у нейронной сети. Даже слабой. Когда у вас будет больше реальных примеров — Хаар будет работать хуже
2) Обучение нейронной сети более стабильно к изменению датасета. У Хаара есть много внутренних параметров настройки. Передавая решение на нейронной сети — можно передавать модуль дообучения. Или контейнеризировать его. А с Хааром так просто уже не выйдет.
3) Портирование на конечное устройство выпущенное после ~2018г. 100% лучше работать будет с нейронной сетью, чем с Хааром.
4) «задача с заданным уровнем качества и производительности» — по опыту (это правда мы лет 6 назад делали), переход с Хаара на нейронки дает прирост в точности ~ раз в 5 ошибки падают, на той же производительности. Сегодня есть сетки посвежее = > положим в 5-10 раз будет прирост в точности.
И говорить что это прирост вам не нужен — не разумно. это же не столько прирост к точности, сколько страховка от возможных будущих проблем.

И вот тут внезапно обнаруживается что ПСН-10 имеет большое количество модификаций и видов под общим одним названием ПСН-10 (расшифровывается как "Плот Спасательный Надувной на 10 персон"). Очень легко загуглить картинки по запросу ПСН-10 и обнаружить ОООчень много разных видов ПСН-10 которые имеют разную конфигурацию. Что скажет автоматика на это?

А кроме того, нам то нужно спасти людей, которые по стечению обстоятельств спаслись не на ПСН - 10, как мы ожидали, а на ПСН-20 (потому что мичман в порту поменял 10-ку на 20-ку (он не в курсе всех наших тут разработок)).

А мы то на 10-ку ориентировались....что на этот случай скажет автоматика?

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

НЛО прилетело и опубликовало эту надпись здесь

Их просто ищут в ультрафиолете или какую-то лютую ИК подсветку используют?

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

Проблема первая – черно-белая камера

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

Какие проблемы с камерами ?! Сейчас самая сопливая вебкамера наблюдения за полторы тыщи рублей цветная и переключается в режим ИК ночью, хотя и с ИК подсветкой. Но тут подсвечивать не надо - надо ловить сигнал от ИК маячка...

Далее. Зачем спасательный плот сделали оранжевым? Чтобы плот был заметен издалека из-за высокого контраста с окружающим морем. И зачем сознательно игнорировать этот высокий контраст и оранжевый цвет?

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

Кроме того, если камера стоит на дроне или вертолёте гораздо большее влияние на способности распознавания оказывает стабилизация изображения - и подвесом камеры, и оптической стабилизацией изображения.

И только если ничего другого не помогает, или если ищем не оранжевый плот и не в море - тогда, да все эти ваши штучки надо задействовать. А на камере экономить не стоит

Расскажите, пожалуйста, про "ИК-маячки". В чем смысл? Должна быть какая-то оптическая помеха в видимом диапазоне, уйти от которой эти маячки помогают, что это, блики?


Есть ли подробности, в каком спектральном диапазоне они излучают?

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

Особенно в поиске явно излучающих в характерном ИК-диапазоне объектов, таких как люди и световые маячки плота, находящихся на достаточно равномерном в ИК-диапазоне фоне. (рыбы холоднокровные, дельфины и крупные морские млекопитающие имеют конкретный спектральный состав и форму).

Для сдвига нуля можно подхолаживать болометр Пельтье (неэкономично) или криогенной жидкостью в контейнере, как на Игле.

Смотря на какой диапазон ориентироваться. Так-то у кремния офигенная обнаружительная способность D*, в диапазоне под микрон. За микроном он ничего не видит, так что да, но излучать будет не человек, а плот — поверхностная яркость заметно ниже.


Про маячки самое загадочное. Для чего ИК? Чтобы легче искалось в яркий день на фоне холодного моря? Если да, то неужели частота моргания не стандартизована? на моргающий источник можно было бы наводиться вообще 4-х элементным приемником, раз мы про ракеты вспомнили.

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

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