Skip to content

Task02 Савелий Барковский ИТМО#49

Open
ssssaveliy wants to merge 1 commit intoPhotogrammetryCourse:task02from
ssssaveliy:task02
Open

Task02 Савелий Барковский ИТМО#49
ssssaveliy wants to merge 1 commit intoPhotogrammetryCourse:task02from
ssssaveliy:task02

Conversation

@ssssaveliy
Copy link

Перечислите идеи и коротко обозначьте мысли которые у вас возникали по мере выполнения задания, в частности попробуйте ответить на вопросы:

  1. Зачем фильтровать матчи, если потом мы запускаем устойчивый к выбросам RANSAC и отфильтровываем шумные сопоставления?

Его эффективность сильно зависит от доли хороших сопоставлений. Поэтому предварительная фильтрация ускоряет его и повышает стабильность.

  1. Cluster filtering довольно хорошо работает и без Ratio test. Однако, если оставить только Cluster filtering, некоторые тесты начнут падать. Почему так происходит? В каких случаях наоборот, не хватает Ratio test и необходима дополнительная фильтрация?

Он может пропускать ложные совпадения. Поэтому без Ratio test остаются похожие, но неправильные дескрипторы.

  1. С какой проблемой можно столкнуться при приравнивании единице элемента H33 матрицы гомографии? Как ее решить?

Если истинное значение элемента близко к 0, нормализация матрицы делением на элемент приводит к делению на очень маленькое число. Это может сильно исказить результат.

Можно нормализовать матрицу другим способом, или проверять значение перед делением.

  1. Какой подвох таится в попытке склеивать большие панорамы и ортофото методом, реализованным в данной домашке? (Для интуиции можно посмотреть на результат склейки, когда за корень взята какая-нибудь другая картинка)

Ну у нас выбор центрального изображения. Если большое количество изображений то накапливается ошибка и итоговая панорама искажается. Но если взять другую картинку то результат может сильно отличаться. Так как модель не учитывает глобальную оптимизацию.

  1. Как можно автоматически построить граф для построения панорамы, чтобы на вход метод принимал только список картинок?

Можно рассматривать изображение как вершины графа, а количество/качество между ними - веса ребер.

  1. Если с вашей реализацией SIFT пройти тесты не получилось, напишите (если пробовали дебажить), где, как вам кажется, проблема и как вы пробовали ее решать.

Я думаю, что проблема что дескрипторов мало или они вообще пустые.

  1. Если есть, фидбек по заданию: какая часть больше всего понравилась, где-то слишком сложно/просто (что именно), где-то слишком мало ссылок и тд.

Самая большая проблема была с скоростью. Долго мучался чтобы тесты проходили по скорости шаблон. Хотелось бы также понимать допустимые параметры.

// Создайте PR.
// Дождитесь отработки Github Actions CI, после чего нажмите на зеленую галочку -> Details -> The build -> скопируйте весь лог тестирования.
// Откройте PR на редактирование (сверху справа три точки->Edit) и добавьте сюда скопированный лог тестирования внутри тега

 для сохранения форматирования и под спойлером для компактности и удобства:

Github Actions CI

$ ./build/test_sift
Running main() from /home/runner/work/PhotogrammetryTasks2023/PhotogrammetryTasks2023/libs/3rdparty/libgtest/googletest/src/gtest_main.cc
[==========] Running 22 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 22 tests from SIFT
[ RUN      ] SIFT.MovedTheSameImage
[ORB_OCV] Points detected: 500 -> 500 (in 0.021269 sec)
...
Final score: 239001
[       OK ] SIFT.PairMatching (0 ms)
[----------] 25 tests from SIFT (7264 ms total)
[----------] Global test environment tear-down
[==========] 25 tests from 1 test suite ran. (7264 ms total)
[  PASSED  ] 25 tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant