Skip to content

Lidiia-Afanasieva/Relief_Reconstruction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Дипломная работа на тему: "Алгоритмы трёхмерной реконструкции участка местности с применением автономного квадрокоптера" Обобщённая структурная схема алгоритма:

image

main.py

Главный цикл программы.

Имя функции Краткое описание
drawAxes Отображение осей
drawCubePts Отображение ключевых точек
drawEstimatedPts Отображение точек реконструкции
main Функция с главным циклом программы

camera.py

Реализованные функции для взаимодействия с камерой OpenGL и уточнения ориентиров при использовнии матрицы Якоби.

Имя функции Краткое описание
getNearestDescriptor Нахождение пар ближайшей ключевой точки и оценочной
calcProjMatrix Вычисление M_p
calcViewMatrix Вычисление M_v
transfNDCToScreen Преобразование нормализованных координат устройства к экранным
transfPtsFromWorldToScreen Преобразование координат ориентира к экранным
calcJacobianMatsFromWorldToScreen Вычисление матрицы Якоби ориентиров
doGradDescent Уточнение положения ориентиров через градиентный спуск

ORB.py

Поиск и определение ключевых точек на двух кадрах, на реализованном алгоритме.

Имя функции Краткое описание
get_nms_kp Применение алгоритма немаксимального подавления
FAST Применение алгоритма детектора FAST
find_centroid Нахождение центроида
get_intensity_centroid Получение центроида интенсивности
BRIEF Применение алгоритма дескрипции BRIEF
match Программа соотнесения дескрипторов по двум видеокадрам
figure_image Отображение результатов детекции

render.py

Рендеринг видео и фото и передача в ORB.py или реализованный openCV.

Имя функции Краткое описание
get_match_pose Нахождение экранных координат ключевых точек, имеющих совпадение
change_frame Замена значений глобальных переменных при итерации кадров
get_match_pixel Нахождение ключевых точек, имеющих совпадение на соседнем кадре
video_render Рендер видеозаписи
img_render Рендер отдельных кадров

meandr_flight.py

Полёт по опорной траектории в виде меандра.

Имя функции Краткое описание
forward Полёт вперёд
rotate Поворот в заданном направлении

Структурная схема ПО:

image

Обязательный стек:

  • ROS noetic
  • Gazebo 11
  • Hector Quadrotor

Результат работы программы на реальных данных:

image


Для тех кто почему-то решил сделать похожее

  • не брать ORB (способ решения вполне имеет право на жизнь, но не с орбом)
  • лучше попробовать обработать Back Projection-ом или ещё чем для контрастности
  • лучше вообще убрать, что не отностися к контуру, есобенно если по точкам будет строится модель. Орб не хочет брать точки контура. Опять же камень в сторону орба
  • попробовать на SIFT не вышло. VSCode жёстко банит за то что лицензия кончилась, откат версии не помог, а лишь убил убунту (угу лапки у меня не из того места)
  • не делать этого, это заведомый провал

About

Diploma work

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages