Страны являются не только торговыми агентами, но и политическими, военными, культурными, и проч. И все эти аспекты не независимы, а вполне таки связаны между собой. В данном случае, одна страна самостоятельно вышла из взаимовыгодного сотрудничества начав спец-многоходов-очку. Впрочем чего это я плету, и так все знают
Прекрасный пример использования Monocular Depth Estimation. Не всем нужны абсолютные значения, для релайтнинга и relative depth пойдет. Прикольно. Один только вопрос меня терзает - кому и зачем этот релайтинг нужен? Какие у него real-world applications?
Извиняюсь за дилетанство, я не нашел четкого определения копространства, что вы упомянули. Но судя по всему, как мне кажется, вы называете копространством то что они называют дуальность. В этом случае вы 100% правы, геометрическое произведение это и есть основа, и все другие произведения выводятся из него тем или иным образом, в том числе с помощью дуальности. И сама дуальность это тоже умножение на псевдо-скаляр. Все эти произведения введены по-большому счету для удобства, без них формулы будут многоэтажными.
Люди, вы зачем вы на автора накинулись? Возможно он ошибся в формулах, я не проверял и не хочу. Но принципиальная работоспособность очевидна просто до безобразия. Вы вешаете гироскоп на колесо, измеряете угловую скорость, вычисляете обороты, радиусом измеряете пройденный путь. Возможно идея слишком тривиальна для выкладывании на хабре, но это не повод клевать и минусить автора. Тут иногда такие страшные лабораторки выкладывают - мама не горюй.
Шлю автору лучи добра - продолжай изучать физику, геометрию и прочие науки - забей на критиков. Не ошибается тот кто ничего не делает
Я, когда несколько месяцев назад, узнал про ГА, испытал шок… Это же просто бомба для машинного зрения! Но не тут то было. Относительно высокая сложность вхождения ограничивает количество людей, которые ей занимаются. Включая меня :)
Я например интуитивно понимаю что в ГА можно интегрировать (какую-нибудь формулу) по мультивектору. И это чертовски охрененно! Можно делать closed form solutions для проблем которые требовали сложных алгоритмов! Но как именно интегрировать — это уже выше моего понимания.
У меня получается интегрировать по компонентам мультивектора, и это даже работает
( github.com/sergehog/tiny_pga/blob/main/test/autodf_pga3d_test.cpp#L100 )
но все же это не так круто как если бы вывести формулу просто решив диф-уравнение аналитически.
Живу и работаю тут уже больше 10-ти лет. Язык так и не выучил. Начинал студентом. Потом, после универа и нескольких лет PhD, когда попал в частную фирму, получал 4kE грязными. Сейчас уже гораздо больше. Мне кажется 4 это сейчас не senior, а вполне рядовая ЗП для middle developer. Это в Тампере.
Впрочем я работаю с математикой и в «богатой» области машиностроения.
Возможно в геймдеве или сайтостроении не так жирно. Не знаю.
Могу с уверенностью утверждать, что средний уровень программистов здесь ниже чем средний уровень в России. Особенно если сравнивать с теми кому посчастливилось застать советское образование.
Желающим попытать счастье — могу посоветовать глянуть сюда: www.unikie.com/en/open-positions
Пользуясь случаем хочу прорекламировать геометрическую алгебру, в которой уравнения Максвелла превращаются в одно единственное уравнение Максвелла. Также и уравнения квантовой механики упрощаются и для записи и для понимания https://youtu.be/x7eLEtmq6PY
К несчастью, сам я не достаточно прокачан в физике, чтобы понимать эту лекцию. Но другие лекции по геометрической алгебре зашли на ура.
Надеюсь вы знаете о такой фишке как вычитание среднего значения из данных перед интегрированием?
Потом при получении суммы — просто прибавляете среднее значение необходимое количество раз. Такой трюк особенно полезен для картинок, где значения обычно от 0 до 255 и интегральные значения растут до невообразимых высот :) Если эе сместить range пикселей к интервалу -128...127 интегральное значение будет бегать около нуля, что в случае floating-point значений сильно улучшает точность.
Но вообще говоря, в image processing community, интегральные изображения давно отошли на задний план. С недавним прогрессом в Convolutional Neural Networks все эти ручные оптимизации и алгоритмические потуги постепенно сходят на нет. Самая тупая нейро-сетка справляется с задачами гораздо лучше чем алгоритмы, разрабатываемые десятками лет. Я думаю и вам нужно смотреть в том-же направлении.
Охрененно! Просто офигительная работа!
Расчитываете ли довести свой лидар до 3D? Еще один мотор или зеркало сложной формы?
Как-то раз разговаривал со знакомым полу-физиком, он топил за chirp-модуляцию для лидаров. Типа утверждал что можно будет снизить мощность лазера, поднять чуствительность и даже чуть ли не сканировать сплошной линией, а не отдельными точками. К сожалению я далек от этой темы, но представляю себе это как разницу между AM и FM радио. Как вы думаете, реальна ли такая байда? Я могу представить как механически (или правильно сказать оптически) модулировать частоту излучения у светодиода, но как принимать сигнал — не понятно. Да и глупо механически, надо все делать как-то электронно.
А вообще было бы интересно получить опытный образец. Может какие-нибудь китайцы заинтересуются и займутся производством?
Непосредственно работаю с лидарами. Больше всего с Velodyne и Ouster. 4 лидара ставил в одну комнату, никаких проблем не видел. ЧЯДНТ? Большее количество в одном месте пока не использовали — нет надобности. Если появится — гарантирую что никаких проблем не появится. Еще раз повторю — на фото-детекторе стоит гребанная линза, фотодетектор не смотрит вокруг себя во все стороны — только туда откуда ожидается отражение.
MRT получает данные (как-бы) в Фурье домене, т.е. каждое измерение покрывает практически все пространство. Но проблема в том что измерений все-равно меньше чем нужно и, к тому же, они зашумлены. Восстановление «нормальной» картинки из таких данных как раз и является основной проблемой. Ученые уже применяют миллион разных условий (constraints) для восстановления, использование GAN в качестве очередного констрейнта — вполне очевидный шаг. Наверняка уже кто-то попробовал за 5 лет, GANы уже давно в почете.
В мире есть миллионы фотографов, и тысячи из них прямо в этот момент фотографируют что-нибудь. Почему они не засвечивают друг-другу фотографии, если пользуются вспышками? Да потому что они все фотографируют в разных местах и в разных направлениях и в разные моменты времени.
То же самое и с лидарами. Они не работают на каких-то когерентных частотах как радары, а просто посылают короткие (очень короткие) импульсы туда-сюда, и принимают отражение. В инфакрасном диапазоне линзы тоже работают, поэтому фотодетектору не надо обозревать 360 градусов вокруг себя, просто смотреть примерно туда-же куда отправили, что и делается с помощью линзы. В следующий момент времени приемо-передатчик уже слегка повернется и снова отправит импульс, который улетит уже в другую сторону.
Чтобы задетектировать чужой импульс, нужно чтобы в той самой стороне куда только что отправили сигнал стоял еще один такой-же лидар и чтобы он был очень точно отсинхранизирован по времени и выстрелил обратно в тот же самый момент. Это крайне маловероятно, а если и произойдет то получится что одна точка в полученном поинт-клауде будет испрочена. Следующее измерение уже пойдет в сторону и не затронет тот второй лидар никак. Даже если у вас миллион лидаров в одной комнате, они будут продолжать работать нормально, максимум что может случиться — повысится уровень шумов в принимаемых клаудах.
Ну так каждая дыра в дорожном покрытии дает прекрасно-видимый артефакт в получаемых данных. Будут своеобразными ключевыми точками на карте дорожных подземелий.
Более того, можно будет решать обратную задачу — оценивать качество дороги по данным.
— Дорогой, УЗИ дороги показало что у нас будет асфальтоукладчик!
Можно было бы пролистать страницу результатов гугл-поиска чуть дальше. Такие конфигурации как у вас тоже вполне обыденная ситуация для Hand-Eye Calibration.
Что-ж, я не ругаю за афинное преобразование (подумаешь, 12 степеней свободы, когда их должно быть только 6 :). Если оно позволяет решать ваши задачи — это прекрасно. Пусть и не совсем правильно с точки зрения физики. Просто ваше утверждение об универсальности вашего подхода для всех роботов и камер слишком уж… хм… наивно.
Кстати говоря, вы не пробовали добавить и/или удалить одно-два измерения и пересчитать матрицу? Далеко убегает решение? В пределах обозначенной точности хотя бы?
Кстати на счет точности. Один пиксел может и дает большую ошибку, но когда будете фиттить какую-либо поверхность, тот же шар к примеру, точность может многократно возрасти за счет усреднения ошибок.
В вашем же случае вы решаете крайне нелинейную и сложную задачу по поиску трансформа (6 DoF) используя только точечные изменения (3 DoF). Я думаю что и аффинное преобразование вы используете только потому что не смогли найти настоящий трансформ удовлетворительного качества. Короче читайте, дерзайте и у вас все получится.
В свое время я сумел скалибровать промышленный робот с repeatability accuracy меньше миллиметра и absolute accuracy около пяти. Но там ошибки всей связки подсчитывалось: ошибки самого робота + ошибки hand2eye + ошибки tool calibration.
Кстати вопрос как измерять погрешности для роботов сам по себе является не тривиальным. И просто так на глаз утверждать точность не представляется возможным
Упс… случайно кнопку нажал…
Раз уж вы используете 3д камеру, то я бы на вашем месте сразу использовал объект у которого можно найти 3D Pose напрямую. Например кирпич известных размеров.
Робот, тоже ( в теории) должен выдавать 3D Pose для гриппера/руки. Пусть даже если меняться будут только 4 степени свободы. Таким образом можно получить пары соответствующих поз/трансформов для камеры и руки, и уже классическими методами найти решение. Там будет задача вида AX=XB, которая не очень то линейная, но решить можно.
Коль речь идет про дизеля - если залить бензин они тоже не заведутся. Знаю на личном опыте ))
Страны являются не только торговыми агентами, но и политическими, военными, культурными, и проч. И все эти аспекты не независимы, а вполне таки связаны между собой. В данном случае, одна страна самостоятельно вышла из взаимовыгодного сотрудничества начав спец-многоходов-очку. Впрочем чего это я плету, и так все знают
Прекрасный пример использования Monocular Depth Estimation. Не всем нужны абсолютные значения, для релайтнинга и relative depth пойдет. Прикольно. Один только вопрос меня терзает - кому и зачем этот релайтинг нужен? Какие у него real-world applications?
Извиняюсь за дилетанство, я не нашел четкого определения копространства, что вы упомянули. Но судя по всему, как мне кажется, вы называете копространством то что они называют дуальность. В этом случае вы 100% правы, геометрическое произведение это и есть основа, и все другие произведения выводятся из него тем или иным образом, в том числе с помощью дуальности. И сама дуальность это тоже умножение на псевдо-скаляр. Все эти произведения введены по-большому счету для удобства, без них формулы будут многоэтажными.
моток оптоволокна по-ходу не правильно изображен, тут конечно промашка
Люди, вы зачем вы на автора накинулись? Возможно он ошибся в формулах, я не проверял и не хочу. Но принципиальная работоспособность очевидна просто до безобразия. Вы вешаете гироскоп на колесо, измеряете угловую скорость, вычисляете обороты, радиусом измеряете пройденный путь. Возможно идея слишком тривиальна для выкладывании на хабре, но это не повод клевать и минусить автора. Тут иногда такие страшные лабораторки выкладывают - мама не горюй.
Шлю автору лучи добра - продолжай изучать физику, геометрию и прочие науки - забей на критиков. Не ошибается тот кто ничего не делает
Судя по всему автор переоткрыл https://ru.wikipedia.org/wiki/Волоконно-оптический_гироскоп
Я например интуитивно понимаю что в ГА можно интегрировать (какую-нибудь формулу) по мультивектору. И это чертовски охрененно! Можно делать closed form solutions для проблем которые требовали сложных алгоритмов! Но как именно интегрировать — это уже выше моего понимания.
У меня получается интегрировать по компонентам мультивектора, и это даже работает
( github.com/sergehog/tiny_pga/blob/main/test/autodf_pga3d_test.cpp#L100 )
но все же это не так круто как если бы вывести формулу просто решив диф-уравнение аналитически.
Впрочем я работаю с математикой и в «богатой» области машиностроения.
Возможно в геймдеве или сайтостроении не так жирно. Не знаю.
Могу с уверенностью утверждать, что средний уровень программистов здесь ниже чем средний уровень в России. Особенно если сравнивать с теми кому посчастливилось застать советское образование.
Желающим попытать счастье — могу посоветовать глянуть сюда:
www.unikie.com/en/open-positions
Пользуясь случаем хочу прорекламировать геометрическую алгебру, в которой уравнения Максвелла превращаются в одно единственное уравнение Максвелла. Также и уравнения квантовой механики упрощаются и для записи и для понимания https://youtu.be/x7eLEtmq6PY
К несчастью, сам я не достаточно прокачан в физике, чтобы понимать эту лекцию. Но другие лекции по геометрической алгебре зашли на ура.
Потом при получении суммы — просто прибавляете среднее значение необходимое количество раз. Такой трюк особенно полезен для картинок, где значения обычно от 0 до 255 и интегральные значения растут до невообразимых высот :) Если эе сместить range пикселей к интервалу -128...127 интегральное значение будет бегать около нуля, что в случае floating-point значений сильно улучшает точность.
Но вообще говоря, в image processing community, интегральные изображения давно отошли на задний план. С недавним прогрессом в Convolutional Neural Networks все эти ручные оптимизации и алгоритмические потуги постепенно сходят на нет. Самая тупая нейро-сетка справляется с задачами гораздо лучше чем алгоритмы, разрабатываемые десятками лет. Я думаю и вам нужно смотреть в том-же направлении.
Расчитываете ли довести свой лидар до 3D? Еще один мотор или зеркало сложной формы?
Как-то раз разговаривал со знакомым полу-физиком, он топил за chirp-модуляцию для лидаров. Типа утверждал что можно будет снизить мощность лазера, поднять чуствительность и даже чуть ли не сканировать сплошной линией, а не отдельными точками. К сожалению я далек от этой темы, но представляю себе это как разницу между AM и FM радио. Как вы думаете, реальна ли такая байда? Я могу представить как механически (или правильно сказать оптически) модулировать частоту излучения у светодиода, но как принимать сигнал — не понятно. Да и глупо механически, надо все делать как-то электронно.
А вообще было бы интересно получить опытный образец. Может какие-нибудь китайцы заинтересуются и займутся производством?
То же самое и с лидарами. Они не работают на каких-то когерентных частотах как радары, а просто посылают короткие (очень короткие) импульсы туда-сюда, и принимают отражение. В инфакрасном диапазоне линзы тоже работают, поэтому фотодетектору не надо обозревать 360 градусов вокруг себя, просто смотреть примерно туда-же куда отправили, что и делается с помощью линзы. В следующий момент времени приемо-передатчик уже слегка повернется и снова отправит импульс, который улетит уже в другую сторону.
Чтобы задетектировать чужой импульс, нужно чтобы в той самой стороне куда только что отправили сигнал стоял еще один такой-же лидар и чтобы он был очень точно отсинхранизирован по времени и выстрелил обратно в тот же самый момент. Это крайне маловероятно, а если и произойдет то получится что одна точка в полученном поинт-клауде будет испрочена. Следующее измерение уже пойдет в сторону и не затронет тот второй лидар никак. Даже если у вас миллион лидаров в одной комнате, они будут продолжать работать нормально, максимум что может случиться — повысится уровень шумов в принимаемых клаудах.
Более того, можно будет решать обратную задачу — оценивать качество дороги по данным.
— Дорогой, УЗИ дороги показало что у нас будет асфальтоукладчик!
Что-ж, я не ругаю за афинное преобразование (подумаешь, 12 степеней свободы, когда их должно быть только 6 :). Если оно позволяет решать ваши задачи — это прекрасно. Пусть и не совсем правильно с точки зрения физики. Просто ваше утверждение об универсальности вашего подхода для всех роботов и камер слишком уж… хм… наивно.
Кстати говоря, вы не пробовали добавить и/или удалить одно-два измерения и пересчитать матрицу? Далеко убегает решение? В пределах обозначенной точности хотя бы?
Кстати на счет точности. Один пиксел может и дает большую ошибку, но когда будете фиттить какую-либо поверхность, тот же шар к примеру, точность может многократно возрасти за счет усреднения ошибок.
В вашем же случае вы решаете крайне нелинейную и сложную задачу по поиску трансформа (6 DoF) используя только точечные изменения (3 DoF). Я думаю что и аффинное преобразование вы используете только потому что не смогли найти настоящий трансформ удовлетворительного качества. Короче читайте, дерзайте и у вас все получится.
В свое время я сумел скалибровать промышленный робот с repeatability accuracy меньше миллиметра и absolute accuracy около пяти. Но там ошибки всей связки подсчитывалось: ошибки самого робота + ошибки hand2eye + ошибки tool calibration.
Кстати вопрос как измерять погрешности для роботов сам по себе является не тривиальным. И просто так на глаз утверждать точность не представляется возможным
Упс… случайно кнопку нажал…
Раз уж вы используете 3д камеру, то я бы на вашем месте сразу использовал объект у которого можно найти 3D Pose напрямую. Например кирпич известных размеров.
Робот, тоже ( в теории) должен выдавать 3D Pose для гриппера/руки. Пусть даже если меняться будут только 4 степени свободы. Таким образом можно получить пары соответствующих поз/трансформов для камеры и руки, и уже классическими методами найти решение. Там будет задача вида AX=XB, которая не очень то линейная, но решить можно.