Я ищу метод или алгоритм, который позволил бы мне распознавать и соединять наборы точек из двух разных изображений для целей стереозрения.
На прикрепленном изображении представлено то, что у меня есть на данный момент: 2 камеры выровнены по оси Y и немного смещены по оси X, глядя на набор точек. Я могу отслеживать и получать 2D-позиции каждой из этих точек на двух изображениях камеры (IMG0 и IMG1).
Таким образом, у меня есть два списка 2D-координат:
L0 = { a0, a1, a2, a3, a4, a5, a6 }
L1 = { b0, b1, b2, b3, b4, b5, b6 }
Теперь, чтобы выполнить триангуляцию для получения трехмерного положения каждой точки, мне нужно знать, какая точка на изображении IMG1 соответствует какой точке на IMG0. Обе камеры видят один и тот же набор точек с одинаковой общей формой, но, очевидно, из-за небольшого искажения и смещения камеры по горизонтали 2D-координаты не совпадают от изображения к другому.
В идеале алгоритм сопоставления точек, который я ищу, должен привести к такому списку:
List = {a0-b0, a1-b1, a2-b2,...}
Порядок в списке не имеет значения, пока я уверен, что каждая точка связана с правильной точкой на втором изображении.
Я просмотрел несколько статей, в которых представлены алгоритмы стереокарты, но я не нашел ничего, относящегося к моей проблеме, так как большинство алгоритмов основаны на распознавании тяжелых изображений, что не подходит в моем случае, когда я хочу быстро обработать все в реальном -время. Ближайшим решением, которое я нашел, является алгоритм сопоставления точек, представленный здесь, но, опять же, он кажется слишком тяжелым для моя проблема.
Любая помощь будет принята с благодарностью.