Дипломная работа на тему: "Алгоритмы трёхмерной реконструкции участка местности с применением автономного квадрокоптера" Обобщённая структурная схема алгоритма:
Главный цикл программы.
Имя функции | Краткое описание |
---|---|
drawAxes | Отображение осей |
drawCubePts | Отображение ключевых точек |
drawEstimatedPts | Отображение точек реконструкции |
main | Функция с главным циклом программы |
Реализованные функции для взаимодействия с камерой OpenGL и уточнения ориентиров при использовнии матрицы Якоби.
Имя функции | Краткое описание |
---|---|
getNearestDescriptor | Нахождение пар ближайшей ключевой точки и оценочной |
calcProjMatrix | Вычисление M_p |
calcViewMatrix | Вычисление M_v |
transfNDCToScreen | Преобразование нормализованных координат устройства к экранным |
transfPtsFromWorldToScreen | Преобразование координат ориентира к экранным |
calcJacobianMatsFromWorldToScreen | Вычисление матрицы Якоби ориентиров |
doGradDescent | Уточнение положения ориентиров через градиентный спуск |
Поиск и определение ключевых точек на двух кадрах, на реализованном алгоритме.
Имя функции | Краткое описание |
---|---|
get_nms_kp | Применение алгоритма немаксимального подавления |
FAST | Применение алгоритма детектора FAST |
find_centroid | Нахождение центроида |
get_intensity_centroid | Получение центроида интенсивности |
BRIEF | Применение алгоритма дескрипции BRIEF |
match | Программа соотнесения дескрипторов по двум видеокадрам |
figure_image | Отображение результатов детекции |
Рендеринг видео и фото и передача в ORB.py или реализованный openCV.
Имя функции | Краткое описание |
---|---|
get_match_pose | Нахождение экранных координат ключевых точек, имеющих совпадение |
change_frame | Замена значений глобальных переменных при итерации кадров |
get_match_pixel | Нахождение ключевых точек, имеющих совпадение на соседнем кадре |
video_render | Рендер видеозаписи |
img_render | Рендер отдельных кадров |
Полёт по опорной траектории в виде меандра.
Имя функции | Краткое описание |
---|---|
forward | Полёт вперёд |
rotate | Поворот в заданном направлении |
Структурная схема ПО:
Обязательный стек:
- ROS noetic
- Gazebo 11
- Hector Quadrotor
Для тех кто почему-то решил сделать похожее
- не брать ORB (способ решения вполне имеет право на жизнь, но не с орбом)
- лучше попробовать обработать Back Projection-ом или ещё чем для контрастности
- лучше вообще убрать, что не отностися к контуру, есобенно если по точкам будет строится модель. Орб не хочет брать точки контура. Опять же камень в сторону орба
- попробовать на SIFT не вышло. VSCode жёстко банит за то что лицензия кончилась, откат версии не помог, а лишь убил убунту
(угу лапки у меня не из того места) - не делать этого, это заведомый провал