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

Ray Casting Visual Search (RCVS). Простой и быстрый алгоритм поиска схожих по геометрии 3D моделей

Время на прочтение8 мин
Количество просмотров5K
Всего голосов 14: ↑14 и ↓0+14
Комментарии13

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

в некотором роде. спасибо за ссылку!
Нет, все же вряд ли это можно назвать вариацией ICP. Здесь оперирование не с облаками точек, а с векторами, для которых не фиксирована перестановка. Именно по этой причине не получается применять стандартные алгоритмы для регистрации облаков точек. Это вообще одна из основных проблем geometrical deep learning — различные перестановки над частью признакового описания данных не изменяет самих данных (так же изветно как неевклидов тип данных — medium.com/@flawnsontong1/what-is-geometric-deep-learning-b2adb662d91d).

Скорее этот алгоритм это развитие идей построение дескрипторов 3D моделей на основе ray casting. (очень хороший обзор разных типов алгоритмов и их особенностей изложен в данной диссертации www.uni-konstanz.de/mmsp/pubsys/publishedFiles/Vranic04.pdf).
а в теории цвет моделей можно сравнивать? интересно как сравнить цвета определенных участков если модель цветная, а также как поведет себя система с такой моделью image
Можно, причём различными способами.
Можно записывать альбедо полигона, в который попал луч, можно брать цвет или его среднее значение по радиусу с текстуры по UV, или запекать цвета в Vertex Colors и записывать среднее значение по полигону.

Если из снежного шара убрать хлопья, которые скорее всего были бы системой частиц, и не делать двойные стенки для стекла, то геометрия считается. Первый проход лучей зафиксирует стеклянный шар, второй (с вывернутыми нормалями) — ёлочку.
Большую часть своей карьеры в 3D я работал художником и не так давно меня потянуло в RnD.
Я опубликовал несколько плагинов к Blender, но активную жизнь в сообществе разработчиков не вёл. = )
спасибо! тема довольно интересна и перспективна
Это будет очень полезный плагин, можно ведь сделать не только с объектами но и отдельными мешами внутри объекта?
плагин в процессе.
меши придётся отделять в самостоятельные объекты, потому что локальные координаты вершин необходимо пересчитывать относительно центра массы.
3. Для каждой строки в первом списке ищется строка из второго, каждое значение которой отличается от соответствующего значения из первого списка в пределах допустимой ошибки. <...>

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

Вы абсолютно правы, описание соответствует устаревщей версии кода. Спасибо, что обратили внимание!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории