Skip to content

Task02 Илья Власов ИТМО#40

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

Task02 Илья Власов ИТМО#40
Malchicisinternetov wants to merge 5 commits intoPhotogrammetryCourse:task02from
Malchicisinternetov:task02

Conversation

@Malchicisinternetov
Copy link

@Malchicisinternetov Malchicisinternetov commented Mar 18, 2026

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

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

RANSAC работает хорошо, когда доля хороших матчей большая, иначе вероятность выбрать 4 нужные точки для гомографии очень маленькая и RANSAC потребуется много итераций и будет работать очень долго.

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

Если у нас есть какая то повторяющаяся текстура, например кирпичная стена, то у нас будет много похожих дескрипторов и будет много неправильных соответствий, Ratio test выкинет такие матчи, так как расстояния между дескрипторами почти равны. Cluster filtering нет. Может быть и обратный случай когда у нас есть случайные хорошие, по мнению Ratio test соответствия, но они разбросаны по разным частям изображения, тогда и пригодится Cluster filtering, который смотрит на геометрию.

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

Если H33 изначально был очень маленьким то после нормировки (1/H33)*H, остальные элементы гомографии могут быть огромными, что может привести к численным проблемам. решением является нахождение гомографии с помощью SVD.

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

Такой метод даёт локально согласованные преобразования, но при склейке большого числа изображений начинают проявлять себя небольшие локальные неточности. Основная проблема здесь это накопление ошибки. Когда мы перемножаем гомографии с небольшими ошибками Hs = H1 * H2 * ... * Hn, то ошибки перемножаются и появляются большие искажения. А если взять за корень какую-нибудь плохую картинку, чтобы высота дерева была большой, то ошибки ещё больше вырастут.

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

Ищем ключевые точки картинок, считаем дескрипторы, матчим все пары картинок по нашему алгоритму, фильтруем(ratio test, cluster filtering), применяем RANSAC, добавляем ребро в граф между двумя картинками если доля inliers/total_matches преодолела порог и при этом количество inliers достаточно большое(чтобы не добавлять ребра между картинками которые плохо матчатся), вес ребра будет количеством inliers, если связного графа не получилось значит у нас будет несколько панорам. Теперь можем чтобы избавится от циклов построить по алгоритму Прима или Краскала макс остовное дерево.

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

тесты прошли)

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

Больше всего понравилось реализовывать склеивание панорам, больше всего трудностей у меня вызвал gpu bruteforce matcher, но решил всё равно добить

Github Actions CI

Run ./build/test_matching
Running main() from /home/runner/work/PhotogrammetryTasks2026/PhotogrammetryTasks2026/libs/3rdparty/libgtest/googletest/src/gtest_main.cc
[==========] Running 20 tests from 2 test suites.
[----------] Global test environment set-up.
[----------] 18 tests from MATCHING
[ RUN      ] MATCHING.SimpleStitching
testing sift detector/descriptor...
estimateHomographyRANSAC : support: 1004/1004
estimateHomographyRANSAC : best support: 1004/1004
keypoints RMSE: 0.291421, color RMSE: 10.1261
testing my detector/descriptor...
estimateHomographyRANSAC : support: 833/833
estimateHomographyRANSAC : best support: 833/833
keypoints RMSE: 0.335873, color RMSE: 18.7599
[       OK ] MATCHING.SimpleStitching (1422 ms)
[ RUN      ] MATCHING.SimpleMatching
testing sift detector/descriptor...
flann matching...
cv flann matching...
brute force matching
BruteforceMatcher::knnMatch : n query desc : 3919, n train desc : 3522
brute force GPU matching
BruteforceMatcher::knnMatch : n query desc : 3919, n train desc : 3522
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 1004/1004
estimateHomographyRANSAC : best support: 1004/1004
evaluating homography...
nn_score: 0.611636, nn2_score: 0.276601, nn_score_cv: 0.610615, nn2_score_cv: 0.263843, time_my: 0.069214, time_cv: 0.070205, time_bruteforce: 5.63444, time_bruteforce_gpu: 9.08823, good_nn: 0.247512, good_ratio: 0.947007, good_clusters: 0.958621, good_ratio_and_clusters: 0.958167
testing my detector/descriptor...
flann matching...
cv flann matching...
brute force matching
BruteforceMatcher::knnMatch : n query desc : 3477, n train desc : 3110
brute force GPU matching
BruteforceMatcher::knnMatch : n query desc : 3477, n train desc : 3110
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 828/833
estimateHomographyRANSAC : support: 833/833
estimateHomographyRANSAC : best support: 833/833
evaluating homography...
nn_score: 0.606845, nn2_score: 0.271786, nn_score_cv: 0.614035, nn2_score_cv: 0.274374, time_my: 0.062053, time_cv: 0.061671, time_bruteforce: 4.40657, time_bruteforce_gpu: 7.08559, good_nn: 0.243888, good_ratio: 0.984778, good_clusters: 0.995927, good_ratio_and_clusters: 0.9988
[       OK ] MATCHING.SimpleMatching (27905 ms)
[ RUN      ] MATCHING.Rotate10
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 180/751
estimateHomographyRANSAC : support: 574/751
estimateHomographyRANSAC : support: 747/751
estimateHomographyRANSAC : support: 748/751
estimateHomographyRANSAC : support: 750/751
estimateHomographyRANSAC : support: 751/751
estimateHomographyRANSAC : best support: 751/751
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.092595, time_cv: 0.09276, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.172493, good_ratio: 0.856397, good_clusters: 0.873973, good_ratio_and_clusters: 0.868176
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 663/665
estimateHomographyRANSAC : support: 664/665
estimateHomographyRANSAC : support: 665/665
estimateHomographyRANSAC : best support: 665/665
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.087692, time_cv: 0.088571, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.192407, good_ratio: 0.938235, good_clusters: 0.919689, good_ratio_and_clusters: 0.950376
[       OK ] MATCHING.Rotate10 (2324 ms)
[ RUN      ] MATCHING.Rotate20
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 742/756
estimateHomographyRANSAC : support: 756/756
estimateHomographyRANSAC : best support: 756/756
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.093935, time_cv: 0.095532, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.202092, good_ratio: 0.985879, good_clusters: 0.964646, good_ratio_and_clusters: 0.997354
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 649/679
estimateHomographyRANSAC : support: 668/679
estimateHomographyRANSAC : support: 679/679
estimateHomographyRANSAC : best support: 679/679
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.086983, time_cv: 0.086231, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.205349, good_ratio: 0.981349, good_clusters: 0.964194, good_ratio_and_clusters: 0.994109
[       OK ] MATCHING.Rotate20 (2309 ms)
[ RUN      ] MATCHING.Rotate30
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 376/742
estimateHomographyRANSAC : support: 434/742
estimateHomographyRANSAC : support: 457/742
estimateHomographyRANSAC : support: 518/742
estimateHomographyRANSAC : support: 741/742
gauss: infinitely many solutions found
gauss: xs0: 665.185, 665.185, 760.704, 633.509, 
gauss: ys0: 377.14, 377.14, 421.888, 555.567, 
gauss: infinitely many solutions found
gauss: xs0: 663.59, 602.084, 663.59, 545.616, 
gauss: ys0: 522.787, 448.65, 522.787, 478.81, 
estimateHomographyRANSAC : best support: 741/742
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.091621, time_cv: 0.09193, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.19852, good_ratio: 0.988158, good_clusters: 0.979769, good_ratio_and_clusters: 0.995957
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 621/662
estimateHomographyRANSAC : support: 662/662
estimateHomographyRANSAC : best support: 662/662
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.085663, time_cv: 0.08576, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.186655, good_ratio: 0.920471, good_clusters: 0.923077, good_ratio_and_clusters: 0.938066
[       OK ] MATCHING.Rotate30 (2318 ms)
[ RUN      ] MATCHING.Rotate40
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 93/742
estimateHomographyRANSAC : support: 321/742
estimateHomographyRANSAC : support: 742/742
estimateHomographyRANSAC : best support: 742/742
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.092811, time_cv: 0.092531, time_bruteforce: 1e-06, time_bruteforce_gpu: 0, good_nn: 0.194182, good_ratio: 0.961792, good_clusters: 0.96144, good_ratio_and_clusters: 0.973046
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 636/661
estimateHomographyRANSAC : support: 661/661
estimateHomographyRANSAC : best support: 661/661
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.085858, time_cv: 0.08676, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.201323, good_ratio: 0.983847, good_clusters: 0.974648, good_ratio_and_clusters: 0.998487
[       OK ] MATCHING.Rotate40 (2297 ms)
[ RUN      ] MATCHING.Rotate45
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 643/743
estimateHomographyRANSAC : support: 743/743
estimateHomographyRANSAC : best support: 743/743
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.091801, time_cv: 0.091702, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.195203, good_ratio: 0.973615, good_clusters: 0.979532, good_ratio_and_clusters: 0.981157
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 610/666
estimateHomographyRANSAC : support: 666/666
estimateHomographyRANSAC : best support: 666/666
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.087091, time_cv: 0.088296, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.194996, good_ratio: 0.950292, good_clusters: 0.962466, good_ratio_and_clusters: 0.971471
[       OK ] MATCHING.Rotate45 (2312 ms)
[ RUN      ] MATCHING.Rotate90
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 757/828
estimateHomographyRANSAC : support: 827/828
gauss: infinitely many solutions found
gauss: xs0: 678.857, 678.857, 784.29, 765.029, 
gauss: ys0: 621.485, 621.485, 535.612, 486.943, 
gauss: infinitely many solutions found
gauss: xs0: 619.355, 698.372, 598.737, 598.737, 
gauss: ys0: 442.82, 592.094, 462.817, 462.817, 
estimateHomographyRANSAC : best support: 827/828
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.082222, time_cv: 0.082309, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.216892, good_ratio: 0.988194, good_clusters: 0.988345, good_ratio_and_clusters: 0.996377
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 429/738
estimateHomographyRANSAC : support: 738/738
estimateHomographyRANSAC : best support: 738/738
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.074581, time_cv: 0.075576, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.205349, good_ratio: 0.925926, good_clusters: 0.913462, good_ratio_and_clusters: 0.939024
[       OK ] MATCHING.Rotate90 (2151 ms)
[ RUN      ] MATCHING.Scale50
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 82/158
estimateHomographyRANSAC : support: 102/158
estimateHomographyRANSAC : support: 128/158
estimateHomographyRANSAC : support: 158/158
estimateHomographyRANSAC : best support: 158/158
evaluating homography...
too few matches: 0
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.042506, time_cv: 0.04179, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.0387854, good_ratio: 0.786517, good_clusters: 0, good_ratio_and_clusters: 0.867089
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 47/132
estimateHomographyRANSAC : support: 80/132
estimateHomographyRANSAC : support: 115/132
estimateHomographyRANSAC : support: 132/132
estimateHomographyRANSAC : best support: 132/132
evaluating homography...
too few matches: 0
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.037225, time_cv: 0.038094, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.0391142, good_ratio: 0.867133, good_clusters: 0, good_ratio_and_clusters: 0.931818
[       OK ] MATCHING.Scale50 (1162 ms)
[ RUN      ] MATCHING.Scale70
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 336/370
estimateHomographyRANSAC : support: 370/370
estimateHomographyRANSAC : best support: 370/370
evaluating homography...
too few matches: 31
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.055004, time_cv: 0.053214, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.100536, good_ratio: 0.986772, good_clusters: 0, good_ratio_and_clusters: 1
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 299/330
estimateHomographyRANSAC : support: 329/330
estimateHomographyRANSAC : support: 330/330
estimateHomographyRANSAC : best support: 330/330
evaluating homography...
too few matches: 49
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.049576, time_cv: 0.049036, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.101812, good_ratio: 0.97076, good_clusters: 0, good_ratio_and_clusters: 0.99697
[       OK ] MATCHING.Scale70 (1462 ms)
[ RUN      ] MATCHING.Scale90
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 430/648
estimateHomographyRANSAC : support: 579/648
estimateHomographyRANSAC : support: 648/648
estimateHomographyRANSAC : best support: 648/648
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.072193, time_cv: 0.071525, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.170707, good_ratio: 0.977273, good_clusters: 0.983607, good_ratio_and_clusters: 0.986111
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 597/597
estimateHomographyRANSAC : best support: 597/597
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.066963, time_cv: 0.067781, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.180903, good_ratio: 0.990148, good_clusters: 0.957031, good_ratio_and_clusters: 0.998325
[       OK ] MATCHING.Scale90 (1895 ms)
[ RUN      ] MATCHING.Scale110
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 647/782
estimateHomographyRANSAC : support: 782/782
estimateHomographyRANSAC : best support: 782/782
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.106588, time_cv: 0.105216, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.208727, good_ratio: 0.988736, good_clusters: 0.979405, good_ratio_and_clusters: 0.997442
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 694/695
estimateHomographyRANSAC : support: 695/695
estimateHomographyRANSAC : best support: 695/695
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.098566, time_cv: 0.097622, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.208801, good_ratio: 0.97905, good_clusters: 0.974828, good_ratio_and_clusters: 0.994245
[       OK ] MATCHING.Scale110 (2573 ms)
[ RUN      ] MATCHING.Scale130
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 784/832
estimateHomographyRANSAC : support: 832/832
estimateHomographyRANSAC : best support: 832/832
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.151972, time_cv: 0.150979, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.219189, good_ratio: 0.980186, good_clusters: 0.994024, good_ratio_and_clusters: 0.996394
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 652/735
estimateHomographyRANSAC : support: 686/735
estimateHomographyRANSAC : support: 706/735
estimateHomographyRANSAC : support: 732/735
estimateHomographyRANSAC : support: 735/735
estimateHomographyRANSAC : best support: 735/735
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.144425, time_cv: 0.145539, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.224619, good_ratio: 0.982827, good_clusters: 0.983051, good_ratio_and_clusters: 0.995918
[       OK ] MATCHING.Scale130 (3471 ms)
[ RUN      ] MATCHING.Scale150
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 7/782
estimateHomographyRANSAC : support: 16/782
estimateHomographyRANSAC : support: 696/782
estimateHomographyRANSAC : support: 741/782
estimateHomographyRANSAC : support: 772/782
estimateHomographyRANSAC : support: 779/782
estimateHomographyRANSAC : support: 780/782
estimateHomographyRANSAC : support: 781/782
gauss: infinitely many solutions found
gauss: xs0: 632.343, 706.788, 706.788, 774.219, 
gauss: ys0: 437.649, 232.891, 232.891, 563.573, 
gauss: infinitely many solutions found
gauss: xs0: 598.737, 573.879, 641.01, 573.879, 
gauss: ys0: 462.817, 402.412, 571.713, 402.412, 
gauss: infinitely many solutions found
gauss: xs0: 649.765, 671.039, 655.788, 671.039, 
gauss: ys0: 517.395, 622.54, 404.443, 622.54, 
estimateHomographyRANSAC : best support: 781/782
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.216304, time_cv: 0.216314, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.197244, good_ratio: 0.932416, good_clusters: 0.933333, good_ratio_and_clusters: 0.943734
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 27/704
estimateHomographyRANSAC : support: 622/704
estimateHomographyRANSAC : support: 704/704
estimateHomographyRANSAC : best support: 704/704
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.20091, time_cv: 0.203467, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.199022, good_ratio: 0.941667, good_clusters: 0.934884, good_ratio_and_clusters: 0.955966
[       OK ] MATCHING.Scale150 (4698 ms)
[ RUN      ] MATCHING.Scale175
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 761/766
estimateHomographyRANSAC : support: 764/766
gauss: infinitely many solutions found
gauss: xs0: 796.975, 753.165, 702.165, 702.165, 
gauss: ys0: 376.487, 600.27, 511.334, 511.334, 
gauss: infinitely many solutions found
gauss: xs0: 784.906, 640.864, 739.89, 784.906, 
gauss: ys0: 350.214, 616.067, 482.291, 350.214, 
estimateHomographyRANSAC : support: 765/766
gauss: infinitely many solutions found
gauss: xs0: 584.393, 774.457, 660.58, 774.457, 
gauss: ys0: 423.662, 456.46, 410.809, 456.46, 
gauss: infinitely many solutions found
gauss: xs0: 686.572, 558.005, 558.005, 791.806, 
gauss: ys0: 520.071, 422.042, 422.042, 608.043, 
gauss: infinitely many solutions found
gauss: xs0: 603.999, 624.943, 603.999, 556.996, 
gauss: ys0: 583.68, 559.958, 583.68, 592.895, 
gauss: infinitely many solutions found
gauss: xs0: 769.508, 769.508, 615.732, 705.66, 
gauss: ys0: 566.146, 566.146, 380.231, 454.585, 
estimateHomographyRANSAC : best support: 765/766
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.279082, time_cv: 0.281066, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.194693, good_ratio: 0.943734, good_clusters: 0.959091, good_ratio_and_clusters: 0.95953
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 611/665
estimateHomographyRANSAC : support: 665/665
estimateHomographyRANSAC : best support: 665/665
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.270452, time_cv: 0.266498, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.195571, good_ratio: 0.954612, good_clusters: 0.960465, good_ratio_and_clusters: 0.965414
[       OK ] MATCHING.Scale175 (6268 ms)
[ RUN      ] MATCHING.Scale200
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 850/853
estimateHomographyRANSAC : support: 851/853
estimateHomographyRANSAC : support: 852/853
gauss: infinitely many solutions found
gauss: xs0: 688.902, 688.902, 557.585, 593.35, 
gauss: ys0: 353.54, 353.54, 610.723, 471.883, 
estimateHomographyRANSAC : best support: 852/853
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.307122, time_cv: 0.306331, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.207451, good_ratio: 0.923963, good_clusters: 0.923358, good_ratio_and_clusters: 0.928488
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 398/769
estimateHomographyRANSAC : support: 504/769
estimateHomographyRANSAC : support: 582/769
estimateHomographyRANSAC : support: 769/769
estimateHomographyRANSAC : best support: 769/769
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.299029, time_cv: 0.29665, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.230083, good_ratio: 0.987277, good_clusters: 0.986381, good_ratio_and_clusters: 0.994798
[       OK ] MATCHING.Scale200 (7361 ms)
[ RUN      ] MATCHING.Rotate10Scale90
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 374/635
estimateHomographyRANSAC : support: 635/635
estimateHomographyRANSAC : best support: 635/635
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.080213, time_cv: 0.080365, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.173769, good_ratio: 0.983103, good_clusters: 0.987603, good_ratio_and_clusters: 0.993701
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 164/576
estimateHomographyRANSAC : support: 336/576
estimateHomographyRANSAC : support: 357/576
estimateHomographyRANSAC : support: 387/576
estimateHomographyRANSAC : support: 532/576
estimateHomographyRANSAC : support: 576/576
estimateHomographyRANSAC : best support: 576/576
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.075205, time_cv: 0.075781, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.173425, good_ratio: 0.984668, good_clusters: 0.958801, good_ratio_and_clusters: 0.994792
[       OK ] MATCHING.Rotate10Scale90 (2028 ms)
[ RUN      ] MATCHING.Rotate30Scale75
testing sift detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 428/430
gauss: infinitely many solutions found
gauss: xs0: 675.313, 778.594, 654.902, 654.902, 
gauss: ys0: 599.531, 320.883, 587.74, 587.74, 
estimateHomographyRANSAC : best support: 428/430
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.064319, time_cv: 0.064436, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.117377, good_ratio: 0.970588, good_clusters: 0.931818, good_ratio_and_clusters: 0.993023
testing my detector/descriptor...
flann matching...
cv flann matching...
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 381/382
gauss: infinitely many solutions found
gauss: xs0: 654.902, 590.276, 654.902, 672.422, 
gauss: ys0: 587.74, 401.628, 587.74, 368.11, 
gauss: infinitely many solutions found
gauss: xs0: 587.439, 717.093, 717.093, 657.654, 
gauss: ys0: 512.547, 493.242, 493.242, 489.438, 
gauss: infinitely many solutions found
gauss: xs0: 717.523, 717.523, 613.683, 700.05, 
gauss: ys0: 529.064, 529.064, 406.434, 223.552, 
estimateHomographyRANSAC : best support: 381/382
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.059208, time_cv: 0.05886, time_bruteforce: 0, time_bruteforce_gpu: 0, good_nn: 0.118205, good_ratio: 0.95202, good_clusters: 0.89011, good_ratio_and_clusters: 0.981675
[       OK ] MATCHING.Rotate30Scale75 (1665 ms)
[----------] 18 tests from MATCHING (75621 ms total)

[----------] 2 tests from STITCHING
[ RUN      ] STITCHING.SimplePanorama
estimateHomographyRANSAC : support: 999/1001
estimateHomographyRANSAC : support: 1000/1001
gauss: infinitely many solutions found
gauss: xs0: 263.593, 211.797, 217.6, 263.593, 
gauss: ys0: 377.073, 524.117, 570.125, 377.073, 
gauss: infinitely many solutions found
gauss: xs0: 185.134, 77.3891, 166.983, 185.134, 
gauss: ys0: 543.876, 603.838, 622.839, 543.876, 
gauss: infinitely many solutions found
gauss: xs0: 156.063, 156.063, 119.268, 73.916, 
gauss: ys0: 561.147, 561.147, 557.078, 225.808, 
gauss: infinitely many solutions found
gauss: xs0: 141.017, 218.72, 195.899, 141.017, 
gauss: ys0: 588.374, 478.491, 206.578, 588.374, 
estimateHomographyRANSAC : best support: 1000/1001
bbox: [1276.59, 640.124], [0, -0.0121767]
[       OK ] STITCHING.SimplePanorama (326 ms)
[ RUN      ] STITCHING.Orthophoto
estimateHomographyRANSAC : support: 181/1223
estimateHomographyRANSAC : support: 198/1223
estimateHomographyRANSAC : support: 310/1223
estimateHomographyRANSAC : support: 352/1223
estimateHomographyRANSAC : support: 418/1223
estimateHomographyRANSAC : support: 431/1223
estimateHomographyRANSAC : support: 564/1223
estimateHomographyRANSAC : support: 582/1223
gauss: infinitely many solutions found
gauss: xs0: 794.145, 848.542, 994.15, 994.15, 
gauss: ys0: 477.749, 35.125, 65.6723, 65.6723, 
estimateHomographyRANSAC : best support: 582/1223
estimateHomographyRANSAC : support: 32/1890
estimateHomographyRANSAC : support: 190/1890
estimateHomographyRANSAC : support: 224/1890
estimateHomographyRANSAC : support: 520/1890
estimateHomographyRANSAC : support: 524/1890
estimateHomographyRANSAC : support: 544/1890
estimateHomographyRANSAC : support: 585/1890
estimateHomographyRANSAC : support: 598/1890
estimateHomographyRANSAC : support: 609/1890
estimateHomographyRANSAC : support: 684/1890
estimateHomographyRANSAC : best support: 684/1890
estimateHomographyRANSAC : support: 341/945
estimateHomographyRANSAC : support: 381/945
estimateHomographyRANSAC : support: 391/945
estimateHomographyRANSAC : support: 487/945
estimateHomographyRANSAC : support: 507/945
estimateHomographyRANSAC : best support: 507/945
estimateHomographyRANSAC : support: 10/1128
estimateHomographyRANSAC : support: 82/1128
estimateHomographyRANSAC : support: 477/1128
estimateHomographyRANSAC : support: 490/1128
estimateHomographyRANSAC : support: 491/1128
estimateHomographyRANSAC : support: 492/1128
estimateHomographyRANSAC : support: 583/1128
gauss: infinitely many solutions found
gauss: xs0: 100.923, 1006.54, 692.231, 100.923, 
gauss: ys0: 742.774, 618.707, 750.533, 742.774, 
estimateHomographyRANSAC : best support: 583/1128
bbox: [1287.56, 1675.65], [-192.703, -333.476]
estimateHomographyRANSAC : support: 7/965
estimateHomographyRANSAC : support: 224/965
estimateHomographyRANSAC : support: 325/965
estimateHomographyRANSAC : support: 359/965
estimateHomographyRANSAC : support: 402/965
estimateHomographyRANSAC : support: 458/965
estimateHomographyRANSAC : support: 481/965
estimateHomographyRANSAC : support: 491/965
estimateHomographyRANSAC : support: 528/965
estimateHomographyRANSAC : best support: 528/965
estimateHomographyRANSAC : support: 450/1256
estimateHomographyRANSAC : support: 461/1256
estimateHomographyRANSAC : support: 484/1256
estimateHomographyRANSAC : support: 617/1256
gauss: infinitely many solutions found
gauss: xs0: 229.275, 649.432, 896.945, 229.275, 
gauss: ys0: 636.517, 431.078, 736.5, 636.517, 
estimateHomographyRANSAC : support: 622/1256
gauss: infinitely many solutions found
gauss: xs0: 555.887, 555.887, 215.962, 449.824, 
gauss: ys0: 582.311, 582.311, 467.44, 251.41, 
estimateHomographyRANSAC : support: 638/1256
estimateHomographyRANSAC : best support: 638/1256
estimateHomographyRANSAC : support: 204/1883
estimateHomographyRANSAC : support: 296/1883
estimateHomographyRANSAC : support: 338/1883
estimateHomographyRANSAC : support: 543/1883
estimateHomographyRANSAC : support: 632/1883
estimateHomographyRANSAC : support: 635/1883
gauss: infinitely many solutions found
gauss: xs0: 979.069, 204.407, 483.539, 979.069, 
gauss: ys0: 358.381, 471.65, 147.124, 358.381, 
gauss: infinitely many solutions found
gauss: xs0: 533.054, 425.547, 533.054, 23.9767, 
gauss: ys0: 562.496, 834.959, 562.496, 713.939, 
estimateHomographyRANSAC : support: 685/1883
estimateHomographyRANSAC : best support: 685/1883
estimateHomographyRANSAC : support: 250/1116
estimateHomographyRANSAC : support: 263/1116
estimateHomographyRANSAC : support: 389/1116
estimateHomographyRANSAC : support: 443/1116
estimateHomographyRANSAC : support: 463/1116
estimateHomographyRANSAC : support: 541/1116
estimateHomographyRANSAC : support: 561/1116
gauss: infinitely many solutions found
gauss: xs0: 491.283, 491.283, 1112.82, 129.934, 
gauss: ys0: 470.858, 470.858, 747.34, 693.278, 
estimateHomographyRANSAC : support: 575/1116
gauss: infinitely many solutions found
gauss: xs0: 450.124, 877.43, 132.179, 877.43, 
gauss: ys0: 474.057, 519.046, 680.396, 519.046, 
estimateHomographyRANSAC : best support: 575/1116
bbox: [1188.21, 864], [-297.428, -1021.59]
n stable ortho kpts: : 21796
[       OK ] STITCHING.Orthophoto (13291 ms)
[----------] 2 tests from STITCHING (13617 ms total)

[----------] Global test environment tear-down
[==========] 20 tests from 2 test suites ran. (89238 ms total)
[  PASSED  ] 20 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