3.46M
Category: programmingprogramming

Летняя практика RTSoft 2024

1.

Летняя практика
RTSoft 2024
Федоров Николай
Абдуллин Тимур
Кафедра 307
1

2.

ЗАДАНИЕ
2

3.

Содержание задания: изучить методы существующих методик
сопоставления облаков точек с 3d полигональной моделью
объекта и проверить их эффективность в различных условиях. В
рамках практики требуется подготовить презентацию по
проделанной работе и составить отчет о выполненной практике в
Microsoft Word.
3

4.

Входные данные
Эталонная модель в формате .stl
Координаты точек облаков с разными погрешностями на 9000 точек:
27 0.210083 1.18797
27 0.211561 1.13951
27 0.213038 1.09103
27 0.214517 1.04254
27 0.215991 0.99403
27 0.217473 0.945517
27 0.218957 0.896993
27 0.220433 0.848449
………
7.50326 16.9573 4
7.32006 16.9989 4
5.98847 16.6686 4
4

5.

Преобразование модели в облако точек для
работы с большинством алгоритмов
5

6.

Методы/алгоритмы
регистрации
6

7.

1 Методы, основанные на ICP
Среди существующих методов регистрации облаков точек алгоритм итеративного
наименьшего расстояния (ICP) привлек значительное внимание благодаря своей
простоте и эффективности.
Плюсы:
простота в реализации;
хорошее преобразование считываемого облака точек в идеальное.
Минусы:
низкая скорость работы алгоритма;
нужно использовать другие алгоритмы, для избежания падения в локальный
минимум.
7

8.

8

9.

Исследованные реализации метода
Go-ICP: https://github.com/yangjiaolong/Go-ICP
ICP в open3d: https://www.open3d.org/html/tutorial/Basic/icp_registration.html
Наша попытка создать ICP алгоритм: https://github.com/K019N/icp_test
(работает плохо)
9

10.

Результаты работы Go-ICP для исходной модели и
идеального облака точек
Error*: 3.06139, LB: 3.0344, epsilon: 0.027
Optimal Rotation Matrix:
0.0099290 -0.0116385
0.0025530
0.0119121
0.0015246 -0.0006391
0.0002739
0.0066527
0.0015943
Optimal Translation Vector:
0.0029297
-0.0023047
-0.0101016
Finished in 492.812
10

11.

Описание принципов работы ICP алгоритма
Принцип работы метода ICP:
1.
2.
3.
4.
5.
6.
Поиск ближайших точек: Для каждой точки из первого облака точек (источник) находит ближайшую точку во
втором облаке точек (целевое облако). Это можно сделать с использованием различных алгоритмов поиска
ближайших соседей, например, k-d дерева.
Оценка ошибки: Вычисляется среднеквадратичное отклонение (ошибка) между соответствующими парами
точек (источник-цель). Ошибка — это сумма квадратов расстояний между каждой парой соответствующих
точек.
Обновление трансформации: Используя алгоритм наименьших квадратов, определяется оптимальная
трансформация (поворот и трансляция), которая минимизирует суммарную ошибку.
Применение трансформации: Текущая трансформация применяется к исходному облаку точек, обновляя их
положения.
Проверка сходимости: Проверяется сходимость алгоритма, которая может быть определена различными
критериями, такими как: малое изменение ошибки между итерациями; достижение максимального числа
итераций; малое изменение трансформации между итерациями.
Повторение: Процедура повторяется с шагов 1-5 циклически 50 раз.
11

12.

Результаты работы нашей программы для
исходной модели и идеального облака точек
Loaded model points: (9000, 3)
Loaded point cloud: (9536, 3)
Transformation matrix:
[[ 7.87633781e-03 -2.87087334e-03 5.45173266e-03 -2.67832312e+02]
[-1.20307812e-03 7.96125345e-03 5.93051824e-03 -8.02046377e+03]
[-6.04283921e-03 -5.32696253e-03 5.92516366e-03 3.40502504e+02]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00]]
Alignment percentage: 15.66% ← низкий процент совпадения облака точек с исходной моделью
Rotation angles (in degrees): [-41.95682719 37.17733098 -8.68456845]
12

13.

2 Признаковые методы
Признаковые метода используют заранее определенные характерные
точки или признаки для установления соответствий между облаками
точек. Это позволяет вычислить преобразование, необходимое для
совмещения облаков. Эти методы могут включать закрепление
опорных точек на объекте или ручной выбор пар точек. Основная цель найти правильные соответствия, чтобы обеспечить точное совмещение
облаков точек.
Минусы:
● не подходят для объектов, на которых нельзя установить опорные
точки
● не пригодны для задач, требующих автоматической регистрации
13

14.

Исследованные реализации метода
● SC3K: https://github.com/IIT-PAVIS/SC3K
● Geometric Transformer: https://github.com/qinzheng93/GeoTransformer
14

15.

Результаты работы SC3K для исходной модели и
идеального облака точек
Avg. coverage_useek: 85.76 ← показывает сколько точек представлено ключевыми точками
Avg. inclusivity_useek: 92.34 ← точек находятся в пределах указанного порогового
Avg. DAS_unsup: 0.56 ← показатель качества выбора опорных точек
Rotation Matrix:
[[ 0.003 -0.030 0.000]
[ 0.000 0.016 0.000]
[ 0.000 0.000 0.002]]
Pose Error: 0.0123
15

16.

3 Методы с использованием нейросетей
Методы, основанные на обучении, используют техники машинного обучения для
регистрации облаков точек. Они позволяют кодировать семантическую информацию и
могут быть адаптированы к конкретным задачам.
Плюсы:
Более высокая скорость и устойчивость по сравнению с классическими методами.
Гибкость в применении к другим задачам, таким как оценка положения объекта и
классификация объектов.
Минусы:
Требуют больших объемов данных для обучения.
Могут быть менее интерпретируемыми по сравнению с традиционными методами.
16

17.

Исследованные реализации
GSoC:
https://github.com/opencv/opencv_contrib/tree/master/modules/surface_matching
DetarNet:
https://github.com/ZhiChen902/DetarNet
17

18.

Результаты работы GSoC для исходной модели и
идеального облака точек
PPF Elapsed Time 0.175995 sec
Pose Result 1
Number of matching poses: 20
-- Pose to Model Index 1012: NumVotes = 95, Residual = 0.005338
Performing ICP on 2 poses...
[0. 994650763213462, -0.0839076425191479, 0.06024422599516682, -74.09495542643629;
ICP Elapsed Time 0.266561 sec
0.09701301418255719, 0.5585402535108246, -0.8237847171969621, -602.9160756980826;
Poses:
Pose Result 0
0.03547300830339615, 0.8252225716344305, 0.5636926227537173, -294.3893156577124;
0, 0, 0, 1]
-- Pose to Model Index 554: NumVotes = 108, Residual = 0.005475
[0.9815782580645441, 0.0365408233832298, 0.1875337076939794, 3.569309307771846;
0.1426816957705279, 0.5125916832659341, -0.8466945729946793, -619.6739070624795;
-0.1270671357472963, 0.8578546115007317, 0.4979351449133775, -332.6379710608039;
0, 0, 0, 1]
18

19.

Спасибо за внимание!
19
English     Русский Rules