Комментарии 36
Подход действительно разумный. Более того, есть где "подсмотреть" как правильно строить такие комбинированные изображения - человеческий мозг работает примерно таким образом. Однако, в нашем случае спасательный комплекс, который имеет ряд ограничений энергопотреблению и и массе. А поэтому "лишний обвес" строго запрещен.
Обвес совсем запрещён? А то у меня первая мысль поставить оранжевый светофильтр. Тогда вид плота не поменяется, а всё море потемнеет.
Установка такого светофильтра уменьшит поток света, попадающий на светочувствительную матрицу. Из-за это ухудшится светочувствительность камеры
P.S. Почитал каменты… обилие замечаний про камеру, на мой взгляд, говорит о том, что вам нужно было чётче растолковать этот момент при описании постановки задачи.
офф Честно говоря не так часто в море на поверхности что-то плавает, чтобы в ходе спасательной операции игнорировать некий предмет на поверхности. По-моему надо лететь и фотографировать всё, что замечено на поверхности.
Поверхность морей и океанов, с учетом волн, барашек, растительности, льдин и т. д. - достаточно сложная "подложка" для того, чтобы надежно детектировать "некий предмет".
На расстоянии прямой видимости будет поверхность в радиусе более 5 километров. Большинство предметов будет видно как несколько пикселей. Как плот отличить от волн?
Имхо тут нужен какой-то спектрометр, который оранжевый отличит от других цветов. И уже потом к этому предмету лететь на опознание.
Летательный аппарат снабжен камерой, которая смотрит вниз. ЛА облетает заданные регионы и в режиме реального времени детектирует целевые объекты.
И он даже есть, широко распространенный спектрометр им. Байера, но от него решили отказаться. Оценка эффективности байеровских фильтров ок 50-60%, один стоп грубо говоря. За эту цену покупается возможность найти оранжевое пятно на синем фоне. Днем света всегда достаточно, а ночью вообще темно, и без подсветки в видимой области делать нечего.
Имхо зря отказались.
Про ИК немного загадочно. Зачем вообще делать спасательную посветку и маячки в ИК диапазоне? Специально, чтобы глазом не видно было?
Есть такое ощущение, что консультация со специалистом по оптике могла бы изменить подход к выбору оборудования.
Прикольно, но сложно =). Я для похожего поиска дефектов использовал чистую математику. Нарезал картинку на столбики и искал среднюю яркость. Далее строил график средней яркости каждого столбика, проходил по нему фильтром сглаживания из матлабовской либы и строил производную, и вот там уже небольшой дефект выглядел как явное отклонение. Ну и примитивный детектор срабатывания по правилу трех сигм конечно такое находил. 200 фпс такая штука делает легко на 2Mpx снимках и процессоре Core2Duo.
Но это был LabView и 2011 год, мы развлекались как могли на своих двух ядрах и даже рискнули предложить разработать такую систему на кабельный завод :)
Напрашивается идея, что плот должен быть не просто оранжевым, а с какими-то специально подобранными белыми (или чёрными?) полосами / кругами / etc, заточенными под распознавание.
Почему нельзя использовать две камеры - одну для съёмок в ближнем инфракрасном свете, а другую с каким-нибудь узкополосным оранжевым фильтром? По-идее должно сильно повысить контраст объекта - в море не так много оранжевого плавает.
Просто "мысли вслух".
А каким то образом учитывается вариант, что плот мог изменить форму ? (неудачное раскрытие, повреждение в следствии повреждения (хоть наружняя часть, хоть "опорная")).
Да даже (вдруг) изменение внешнего вида в последствии намерзания льда/снега.
Условно говоря, могло произойти "размытие контура/границ".
Зачем вы его бенчмаркаете с 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-ку ориентировались....что на этот случай скажет автоматика?
Их просто ищут в ультрафиолете или какую-то лютую ИК подсветку используют?
Проблема первая – черно-белая камера
Любимое занятие у нас - сначала специально создать себе трудности, а потом мужественно их преодолевать... Спасательный дрон или что там у вас стоит кучу денег. Спасательный плот стоит кучу денег. Но мы будем экономить на камере, чтобы потом бороться с ее недостатками...
Какие проблемы с камерами ?! Сейчас самая сопливая вебкамера наблюдения за полторы тыщи рублей цветная и переключается в режим ИК ночью, хотя и с ИК подсветкой. Но тут подсвечивать не надо - надо ловить сигнал от ИК маячка...
Далее. Зачем спасательный плот сделали оранжевым? Чтобы плот был заметен издалека из-за высокого контраста с окружающим морем. И зачем сознательно игнорировать этот высокий контраст и оранжевый цвет?
Насчет низкой чувствительности цветных сенсоров - возьмите наконец любой современный смартфон - там такая камера, что даже не в режиме "ночь" ночью он снимет то, что глазами уже не видно.
Кроме того, если камера стоит на дроне или вертолёте гораздо большее влияние на способности распознавания оказывает стабилизация изображения - и подвесом камеры, и оптической стабилизацией изображения.
И только если ничего другого не помогает, или если ищем не оранжевый плот и не в море - тогда, да все эти ваши штучки надо задействовать. А на камере экономить не стоит
Расскажите, пожалуйста, про "ИК-маячки". В чем смысл? Должна быть какая-то оптическая помеха в видимом диапазоне, уйти от которой эти маячки помогают, что это, блики?
Есть ли подробности, в каком спектральном диапазоне они излучают?
Понимаю, что вероятно ТЗ было прописано строго, и поэтому задача решалась так, как решалась. Но предположу, что в вопросах чувствительности практически любая даже ЧБ камера сильно уступит микроболометрической матрице с оптикой.
Особенно в поиске явно излучающих в характерном ИК-диапазоне объектов, таких как люди и световые маячки плота, находящихся на достаточно равномерном в ИК-диапазоне фоне. (рыбы холоднокровные, дельфины и крупные морские млекопитающие имеют конкретный спектральный состав и форму).
Для сдвига нуля можно подхолаживать болометр Пельтье (неэкономично) или криогенной жидкостью в контейнере, как на Игле.
Смотря на какой диапазон ориентироваться. Так-то у кремния офигенная обнаружительная способность D*, в диапазоне под микрон. За микроном он ничего не видит, так что да, но излучать будет не человек, а плот — поверхностная яркость заметно ниже.
Про маячки самое загадочное. Для чего ИК? Чтобы легче искалось в яркий день на фоне холодного моря? Если да, то неужели частота моргания не стандартизована? на моргающий источник можно было бы наводиться вообще 4-х элементным приемником, раз мы про ракеты вспомнили.
Memory Consuption, GB ?
Как по мне, из-за того, что и обучающая и тестовая выборки были одинаково синтезированными, в реальности точность распознавания должна достаточно сильно упасть. К разработчикам системы распознавания претензий в этом плане нет(работали с тем, что было), но уж заказчик, заинтересованный в результатах не мог что-ли закупить или арендовать штук десять таких плотов, разместить их на воде на расстоянии километр-два друг от друга, и полетать между ними на вертолете, или этим же самым дроном, снимая их с разных ракурсов и расстояний, скажем втечение часа-двух. Повторить днем\ночью, без осадков\с осадками и в штиль\в шторм. В конце навырезать из полученных видеофайлов отдельных кадров, причем 90% кадров можно выдернуть случайно, чтобы не было соблазна оставлять только те, где плот ровно в центре кадра, а не в углу еле торчит, и уже их использовать как датасет для тренировки или хотя бы для теста полученной модели.
Как мы искали оранжевый спасательный плот c помощью черно-белой камеры