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

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 делает несколько другое: он ищет строку, у которой сумма отклонений не превосходит ошибки, помноженной на длину. В этом случае код может найти схожими строки, если они достаточно сильно расходятся в одном значении, но это отклонение нивелировано небольшими отклонениями остальных элементов.

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

Публикации

Изменить настройки темы

Истории