Skip to content

Task02 Максим Федоров ITMO#53

Open
MartinezGitHub wants to merge 5 commits intoPhotogrammetryCourse:task02from
MartinezGitHub:task02
Open

Task02 Максим Федоров ITMO#53
MartinezGitHub wants to merge 5 commits intoPhotogrammetryCourse:task02from
MartinezGitHub:task02

Conversation

@MartinezGitHub
Copy link

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

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

  2. Cluster filtering довольно хорошо работает и без Ratio test. Однако, если оставить только Cluster filtering, некоторые тесты начнут падать. Почему так происходит? В каких случаях наоборот, не хватает Ratio test и необходима дополнительная фильтрация?
    Cluster filtering проверяет геометрическую согласованность, как я понял, можно даже называть ее "локальной" согласованностью, а Ratio test убирает "неоднозначные" дескрипторы. Поэтому первый лучше ловит геометрический шум, а второй нужен на повторяющихся текстурах, где у точки несколько почти одинаковых соседей.

  3. С какой проблемой можно столкнуться при приравнивании единице элемента H33 матрицы гомографии? Как ее решить?
    Если зафиксировать H33 = 1 мы можем получить плохую численную нормализацию в том случае, если настоящий масштаб матрицы неудобный. Более устойчиво оценивать гомографию через SVD или нормализовать матрицу не по одному элементу.

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

  5. Как можно автоматически построить граф для построения панорамы, чтобы на вход метод принимал только список картинок?
    Можно попарно сравнить изображения, посчитать для каждой пары число инлайеров и построить граф с весами по качеству совпадения. Дальше взять остов и по нему уже строить панораму.

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

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

// Создайте 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