Верно, нужно калибровать. Если камеры различные или находятся на разном уровне, то нужно вводить параметры.
На практике, погрешности просто дикие. При разрешении 640x480, чем ближе к линии горизонта, тем больше метров(десятков и даже сотен метров) на пиксель.
Да, нужно считать с учетом перспективы. Я это уже делал. Все что смог вытянуть - угол смещения объекта. В принципе с одной камерой больше не получится, как ни старайся.
По моим внутренним ощущениям, фундаментальная проблема пока одна: мы не знаем исходных размеров препятствия, а значит не можем определить расстояние до него. А это было бы крайне полезно. На те объекты, что ближе, реагировать надо быстрее, расставлять приоритеты при маневрировании между ними.
А, понял. Фильтр уже стоит, его надо снять. Камеру жалко скальпировать, она у меня одна :/ а руки - крюки...
Надо запасную завести, чтобы не жалко испортить.
Ещё, кстати, забыл написать про возможность использовать стерео пару ( 2 камеры сразу) Она может дать глубину всей сцены. Видел, правда, примеры, выглядели они, мягко говоря, убого. Вряд ли получится точно определять расстояние до объекта.
Очень интересно. А говорите ненастоящий сварщик. :) Возможно, быстрее меня бы построили. Я только открываю для себя все эти алгоритмы.
Оказывается есть такой интересный инструментарий, неужели никто не реализовывал их на практике(в области компьютерного зрения: обнаружения и трекинга)? Или просто не публиковали результаты?
Конечно, крупные препятствия он увидит раньше. Но сразу снижается автономность, отказоустойчивость всего комплекса в сумме, чувствительность к погодным условиям(дождь, ветер)...
На катер можно поставить солнечные панели, с квадракоптером это проблема.
Катер может отплывать на значительные расстояния: десятки километров. Квадрокоптер привязан к оператору и дальности приёма сигнала.
У меня есть ссылка на видео в начале статьи, снимал ракурсы с квадрика как раз. У катера был значительный запас хода, а квадрик уже терял сигнал.
Солидарен с вами, читать удобнее. Так уж получилось, что сначала это была просто rc игрушка, потом подключил raspberry только из любопытства: разобраться с управлением. Камеру поставил, опять же из любопытства, посмотреть "глазами" капитана этого судна. :) дальше решил научиться монтировать видео, чтобы оставить его себе на память.
Писать статью про запуск катера с raspberry мне показалось неуместным, именно потому, что, как вы пишите, роботомашинки набили всем оскомину. Полностью поддерживаю.
А вот детектирование абстрактных объектов на пути и их отслеживание, та тема по которой мало материала или вообще отсутствует. И так появилась эта дебютная статья. Вдруг в этом сезоне получится реализовать задумку и не потерять катер.
Советами не пренебрегаю, за все идеи читателям благодарен! Значит не зря писал. А все комментарии мотивируют довести дело до конца, появилась ответственность перед вами.
Это не реклама, канал без монетизации, чисто любительский. В конце видео есть подбивка: около 300$ весь проект. При том, что вы можете снять Raspberry Pi и у вас снова будет та же самая игрушка из магазина.
Тоже были сомнения, получится ли детектировать препятствия. Но... пока получается. :) Raspberry Pi 4 достаточно мощный девайс, а библиотека OpenCV неплохо оптимизирована.
Но в любом случае, или все получится, или провалится. И я напишу по какой причине не получилось. :)
2. камеру необходимо поднять выше над корпусом судна, чтобы раньше замечать препятствия и отстроиться от волн( в плоскости горизонта они мешают сильнее, чем если смотрим на волную поверхность сверху).
Классификаторов у меня нет, я ищу абстрактные препятствия. Просто любой объект, больше некоторого предела "опасности" что ли...
Я не использую нейронные сети для определения объекта. В воде может быть что угодно, хоть коряга похожая на лысого лешего. Задача не столкнуться с ним, а деликатно обойти и вернуться на маршрут. Спасибо, что внимательно прочитали. :)
Вас интересует код детектирования препятствий, стабилизации видео или как происходит трекинг обнаруженных объектов?
Все это часть одного проекта беспилотного катера. Код планирую публиковать когда проведу испытания на "открытой воде" и буду уверен, что все работает как надо.
Но пока катер стоит "на приколе" нужно с чем-то работать. Пока горизонт получаю из визуальной картинки. Кстати, это отдельная интересная задачка. Все найденные мной алгоритмы, лажали с определением. :/ не хочу хвастаться, у меня уверенно определяет горизонт даже в условиях водных брызг и частичной видимости.
Спасибо. Нормальная такая статья. Тоже обратите внимание, с чб изображением работают.
Само по себе определение препятствий у меня уже работает. Отдельно был вопрос оптимизации, алгоритм должен быть шустрым.
Тоже читал разные статьи. Вот по определению линии горизонта только 3-4 солидных таких же видел. На практике они не сработали. При одном ракурсе камеры есть горизонт, на другом уже не видит.
Верно, нужно калибровать. Если камеры различные или находятся на разном уровне, то нужно вводить параметры.
На практике, погрешности просто дикие. При разрешении 640x480, чем ближе к линии горизонта, тем больше метров(десятков и даже сотен метров) на пиксель.
Да, нужно считать с учетом перспективы. Я это уже делал. Все что смог вытянуть - угол смещения объекта. В принципе с одной камерой больше не получится, как ни старайся.
Ещё раз перечитал комментарии. :)
По моим внутренним ощущениям, фундаментальная проблема пока одна: мы не знаем исходных размеров препятствия, а значит не можем определить расстояние до него. А это было бы крайне полезно. На те объекты, что ближе, реагировать надо быстрее, расставлять приоритеты при маневрировании между ними.
А, понял. Фильтр уже стоит, его надо снять. Камеру жалко скальпировать, она у меня одна :/ а руки - крюки...
Надо запасную завести, чтобы не жалко испортить.
Ещё, кстати, забыл написать про возможность использовать стерео пару ( 2 камеры сразу) Она может дать глубину всей сцены. Видел, правда, примеры, выглядели они, мягко говоря, убого. Вряд ли получится точно определять расстояние до объекта.
Очень интересно. А говорите ненастоящий сварщик. :) Возможно, быстрее меня бы построили. Я только открываю для себя все эти алгоритмы.
Оказывается есть такой интересный инструментарий, неужели никто не реализовывал их на практике(в области компьютерного зрения: обнаружения и трекинга)? Или просто не публиковали результаты?
Большое спасибо!
Да, то что надо! Интересно, что я интуитивно решал эту же задачу по нахождению оптического потока :)
Гауссовское размытие и весовые коэффициенты у меня как раз используются!
Возможно, получится даже улучшить мой код теперь.
Конечно, крупные препятствия он увидит раньше. Но сразу снижается автономность, отказоустойчивость всего комплекса в сумме, чувствительность к погодным условиям(дождь, ветер)...
На катер можно поставить солнечные панели, с квадракоптером это проблема.
Катер может отплывать на значительные расстояния: десятки километров. Квадрокоптер привязан к оператору и дальности приёма сигнала.
У меня есть ссылка на видео в начале статьи, снимал ракурсы с квадрика как раз. У катера был значительный запас хода, а квадрик уже терял сигнал.
Спасибо за идею!
В первой версии будет стоять самая обычная камера для raspberry pi:
Не совсем понял как за объективом поставить? Или с такой не получится?
Солидарен с вами, читать удобнее. Так уж получилось, что сначала это была просто rc игрушка, потом подключил raspberry только из любопытства: разобраться с управлением. Камеру поставил, опять же из любопытства, посмотреть "глазами" капитана этого судна. :) дальше решил научиться монтировать видео, чтобы оставить его себе на память.
Писать статью про запуск катера с raspberry мне показалось неуместным, именно потому, что, как вы пишите, роботомашинки набили всем оскомину. Полностью поддерживаю.
А вот детектирование абстрактных объектов на пути и их отслеживание, та тема по которой мало материала или вообще отсутствует. И так появилась эта дебютная статья. Вдруг в этом сезоне получится реализовать задумку и не потерять катер.
Советами не пренебрегаю, за все идеи читателям благодарен! Значит не зря писал. А все комментарии мотивируют довести дело до конца, появилась ответственность перед вами.
Нет, не заоблачно.
Если он может взять на себя задачу по обнаружению препятствий, то смысл есть.
Я даже думал вторую малинку воткнуть при необходимости.
Благодарю! Не думал, что такая специфичная область заинтересует столько людей. Хотя вот меня затянула чуть больше чем полностью. :)
Если интересно, именно по запуску катера, можете посмотреть мой же видео отчет: https://m.youtube.com/watch?v=5ZUPO3FEQQ0
Это не реклама, канал без монетизации, чисто любительский. В конце видео есть подбивка: около 300$ весь проект. При том, что вы можете снять Raspberry Pi и у вас снова будет та же самая игрушка из магазина.
Тоже были сомнения, получится ли детектировать препятствия. Но... пока получается. :) Raspberry Pi 4 достаточно мощный девайс, а библиотека OpenCV неплохо оптимизирована.
Но в любом случае, или все получится, или провалится. И я напишу по какой причине не получилось. :)
Спасибо. Дайте время изучить.
Пока могу сказать по предварительным результатам:
1. фрейм рейт действительно важен
2. камеру необходимо поднять выше над корпусом судна, чтобы раньше замечать препятствия и отстроиться от волн( в плоскости горизонта они мешают сильнее, чем если смотрим на волную поверхность сверху).
Классификаторов у меня нет, я ищу абстрактные препятствия. Просто любой объект, больше некоторого предела "опасности" что ли...
Это видео с GoPro. Она в широком формате даёт эффект "рыбьего глаза". Пока не уверен мешает он мне или можно пренебречь. Скоро узнаем, надеюсь!
Вы все верно поняли.
Я не использую нейронные сети для определения объекта. В воде может быть что угодно, хоть коряга похожая на лысого лешего. Задача не столкнуться с ним, а деликатно обойти и вернуться на маршрут. Спасибо, что внимательно прочитали. :)
RaspberryPi 4 model B брал за 40$ на али. Но это было до ванханалии с ценами.
Спасибо! Изучу сей девайс.
Видео у меня пока - это фрагменты записи с GoPro в формате mp4
Малинка: Raspberry Pi 4 Model B с 4 Гб
За подсказки благодарю! :)
Спасибо за поддержку! :)
Вас интересует код детектирования препятствий, стабилизации видео или как происходит трекинг обнаруженных объектов?
Все это часть одного проекта беспилотного катера. Код планирую публиковать когда проведу испытания на "открытой воде" и буду уверен, что все работает как надо.
Все верно, именно так и будет.
Но пока катер стоит "на приколе" нужно с чем-то работать. Пока горизонт получаю из визуальной картинки. Кстати, это отдельная интересная задачка. Все найденные мной алгоритмы, лажали с определением. :/ не хочу хвастаться, у меня уверенно определяет горизонт даже в условиях водных брызг и частичной видимости.
Спасибо. Нормальная такая статья. Тоже обратите внимание, с чб изображением работают.
Само по себе определение препятствий у меня уже работает. Отдельно был вопрос оптимизации, алгоритм должен быть шустрым.
Тоже читал разные статьи. Вот по определению линии горизонта только 3-4 солидных таких же видел. На практике они не сработали. При одном ракурсе камеры есть горизонт, на другом уже не видит.