Skip to content

Task02 Вадим Бенкевич НИИЧАВО#33

Closed
vb002 wants to merge 3 commits into
PhotogrammetryCourse:task02from
vb002:task02
Closed

Task02 Вадим Бенкевич НИИЧАВО#33
vb002 wants to merge 3 commits into
PhotogrammetryCourse:task02from
vb002:task02

Conversation

@vb002

@vb002 vb002 commented Mar 14, 2026

Copy link
Copy Markdown
  1. Зачем фильтровать матчи, если потом мы запускаем устойчивый к выбросам RANSAC и отфильтровываем шумные сопоставления?
  1. Чем больше ложных сопоставлений, тем больше итераций нужно сделать, чтобы гарантировать с заданной вероятностью, что было найдено оптимальное преобразование
  2. Если я правильно понимаю, качество RANSAC все же деградирует с ростом числа ложных сопоставлений. Если при этом в них тоже есть какая-то структура, то вероятность построить неправильную матрицу становится еще выше.
  1. Cluster filtering довольно хорошо работает и без Ratio test. Однако, если оставить только Cluster filtering, некоторые тесты начнут падать. Почему так происходит? В каких случаях наоборот, не хватает Ratio test и необходима дополнительная фильтрация?
  1. Если нет Ratio test, Cluster filtering начинает выкидывать хорошие матчи, потому что шумные соседи оказываются ближе к текущему хорошему матчу, чем другие хорошие матчи из окрестности текущего
  2. Кажется, что Ratio test все же пропускает достаточно много ложных сопоставлений, и RANSACу, как минимум, требуется больше итераций (возможно это будет работать дольше чем ограничение по времени в тестах)
  1. С какой проблемой можно столкнуться при приравнивании единице элемента H33 матрицы гомографии? Как ее решить?
    Мы не совсем приравниваем единице элемент H33. Мы домножаем на 1/H33 матрицу H, пользуясь тем, что в однородных координатах гомография определена с точность до множителя. Соответственно, если этот элемент был равен 0, то мы не сможем решить систему уравнений методом Гаусса. В хорошем случае мы поймем, что решений нет, в плохом получим решение далекое от правильного. Если мы можем как-то понять, что решение плохое, можно в качестве единицы выбрать другой элемент.

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

  3. Как можно автоматически построить граф для построения панорамы, чтобы на вход метод принимал только список картинок?
    Возможно нужно сделать что-то похожее на преселекцию по грубым матчам из прошлой лекции. Мы строим граф, где пара картинок соединена ребром с весом обратно пропорциональным количеству найденных матчей. Потом ищем минимальное остовное дерево в нем.

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

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

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: 1005/1005
estimateHomographyRANSAC : best support: 1005/1005
keypoints RMSE: 0.116374, color RMSE: 5.6938
testing my detector/descriptor...
estimateHomographyRANSAC : support: 840/840
estimateHomographyRANSAC : best support: 840/840
keypoints RMSE: 0.182615, color RMSE: 6.90568
[       OK ] MATCHING.SimpleStitching (1375 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
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 1005/1005
estimateHomographyRANSAC : best support: 1005/1005
evaluating homography...
nn_score: 0.607808, nn2_score: 0.266905, nn_score_cv: 0.614442, nn2_score_cv: 0.276601, time_my: 0.078096, time_cv: 0.077966, time_bruteforce: 4.56208, good_nn: 0.261036, good_ratio: 0.981643, good_clusters: 0.992806, good_ratio_and_clusters: 0.999005
testing my detector/descriptor...
flann matching...
cv flann matching...
brute force matching
BruteforceMatcher::knnMatch : n query desc : 3480, n train desc : 3119
filtering matches by ratio test...
filtering matches by clusters...
filtering matches by ratio & clusters
estimating homography...
estimateHomographyRANSAC : support: 776/843
estimateHomographyRANSAC : support: 840/843
estimateHomographyRANSAC : best support: 840/843
evaluating homography...
nn_score: 0.617241, nn2_score: 0.276149, nn_score_cv: 0.615805, nn2_score_cv: 0.285632, time_my: 0.069326, time_cv: 0.069083, time_bruteforce: 3.59895, good_nn: 0.246552, good_ratio: 0.977011, good_clusters: 0.985417, good_ratio_and_clusters: 0.996441
[       OK ] MATCHING.SimpleMatching (9824 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: 614/756
estimateHomographyRANSAC : support: 708/756
estimateHomographyRANSAC : support: 753/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.100066, time_cv: 0.099408, time_bruteforce: 0, good_nn: 0.179638, good_ratio: 0.877238, good_clusters: 0.900538, good_ratio_and_clusters: 0.898148
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: 37/681
estimateHomographyRANSAC : support: 315/681
estimateHomographyRANSAC : support: 647/681
estimateHomographyRANSAC : support: 674/681
estimateHomographyRANSAC : support: 677/681
estimateHomographyRANSAC : support: 679/681
estimateHomographyRANSAC : support: 680/681
estimateHomographyRANSAC : best support: 680/681
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.093249, time_cv: 0.093297, time_bruteforce: 0, good_nn: 0.200575, good_ratio: 0.955966, good_clusters: 0.962963, good_ratio_and_clusters: 0.976505
[       OK ] MATCHING.Rotate10 (2214 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: 709/765
estimateHomographyRANSAC : support: 765/765
estimateHomographyRANSAC : best support: 765/765
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.099261, time_cv: 0.098916, time_bruteforce: 0, good_nn: 0.202348, good_ratio: 0.97, good_clusters: 0.966837, good_ratio_and_clusters: 0.997386
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: 12/688
estimateHomographyRANSAC : support: 220/688
estimateHomographyRANSAC : support: 505/688
estimateHomographyRANSAC : support: 512/688
estimateHomographyRANSAC : support: 567/688
estimateHomographyRANSAC : support: 681/688
estimateHomographyRANSAC : support: 688/688
estimateHomographyRANSAC : best support: 688/688
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.093116, time_cv: 0.094316, time_bruteforce: 0, good_nn: 0.204598, good_ratio: 0.95961, good_clusters: 0.953125, good_ratio_and_clusters: 0.989826
[       OK ] MATCHING.Rotate20 (2215 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: 743/744
estimateHomographyRANSAC : best support: 743/744
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.09992, time_cv: 0.099849, time_bruteforce: 0, good_nn: 0.1753, good_ratio: 0.867876, good_clusters: 0.896067, good_ratio_and_clusters: 0.888441
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: 669/670
estimateHomographyRANSAC : best support: 669/670
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.093565, time_cv: 0.093727, time_bruteforce: 0, good_nn: 0.166379, good_ratio: 0.798561, good_clusters: 0.811321, good_ratio_and_clusters: 0.814925
[       OK ] MATCHING.Rotate30 (2221 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: 573/751
estimateHomographyRANSAC : support: 744/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.100262, time_cv: 0.101508, time_bruteforce: 0, good_nn: 0.19903, good_ratio: 0.980645, good_clusters: 0.986772, good_ratio_and_clusters: 0.998668
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: 86/675
estimateHomographyRANSAC : support: 672/675
estimateHomographyRANSAC : support: 675/675
estimateHomographyRANSAC : best support: 675/675
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.092946, time_cv: 0.092668, time_bruteforce: 0, good_nn: 0.203736, good_ratio: 0.965763, good_clusters: 0.980392, good_ratio_and_clusters: 0.994074
[       OK ] MATCHING.Rotate40 (2204 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: 273/756
estimateHomographyRANSAC : support: 746/756
estimateHomographyRANSAC : support: 755/756
estimateHomographyRANSAC : best support: 755/756
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.10079, time_cv: 0.100226, time_bruteforce: 0, good_nn: 0.198265, good_ratio: 0.975578, good_clusters: 0.994186, good_ratio_and_clusters: 0.993386
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: 392/685
estimateHomographyRANSAC : support: 620/685
estimateHomographyRANSAC : support: 684/685
estimateHomographyRANSAC : support: 685/685
estimateHomographyRANSAC : best support: 685/685
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.094585, time_cv: 0.095988, time_bruteforce: 0, good_nn: 0.203448, good_ratio: 0.967697, good_clusters: 0.982759, good_ratio_and_clusters: 0.992701
[       OK ] MATCHING.Rotate45 (2231 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: 797/830
estimateHomographyRANSAC : support: 826/830
estimateHomographyRANSAC : support: 829/830
estimateHomographyRANSAC : best support: 829/830
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.089375, time_cv: 0.088141, time_bruteforce: 0, good_nn: 0.213575, good_ratio: 0.968421, good_clusters: 0.983568, good_ratio_and_clusters: 0.990361
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: 750/750
estimateHomographyRANSAC : best support: 750/750
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.082527, time_cv: 0.082891, time_bruteforce: 0, good_nn: 0.224138, good_ratio: 0.983204, good_clusters: 0.99759, good_ratio_and_clusters: 1
[       OK ] MATCHING.Rotate90 (2058 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: 155/163
estimateHomographyRANSAC : support: 163/163
estimateHomographyRANSAC : best support: 163/163
evaluating homography...
too few matches: 1
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.049243, time_cv: 0.04844, time_bruteforce: 1e-06, good_nn: 0.0428681, good_ratio: 0.836842, good_clusters: 0, good_ratio_and_clusters: 0.969325
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: 45/136
estimateHomographyRANSAC : support: 134/136
gauss: infinitely many solutions found
gauss: xs0: 674.081, 698.372, 637.559, 637.559, 
gauss: ys0: 407.384, 592.094, 607.216, 607.216, 
estimateHomographyRANSAC : best support: 134/136
evaluating homography...
too few matches: 0
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.043361, time_cv: 0.043139, time_bruteforce: 0, good_nn: 0.0393678, good_ratio: 0.810127, good_clusters: 0, good_ratio_and_clusters: 0.941176
[       OK ] MATCHING.Scale50 (1142 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: 167/373
estimateHomographyRANSAC : support: 373/373
estimateHomographyRANSAC : best support: 373/373
evaluating homography...
too few matches: 28
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.061956, time_cv: 0.060918, time_bruteforce: 0, good_nn: 0.09926, good_ratio: 0.942065, good_clusters: 0, good_ratio_and_clusters: 0.989276
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: 336/336
estimateHomographyRANSAC : best support: 336/336
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.056523, time_cv: 0.056071, time_bruteforce: 0, good_nn: 0.0945402, good_ratio: 0.862259, good_clusters: 0.830769, good_ratio_and_clusters: 0.916667
[       OK ] MATCHING.Scale70 (1421 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: 641/652
estimateHomographyRANSAC : support: 652/652
estimateHomographyRANSAC : best support: 652/652
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.079813, time_cv: 0.080251, time_bruteforce: 0, good_nn: 0.171472, good_ratio: 0.976048, good_clusters: 0.97166, good_ratio_and_clusters: 0.989264
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: 18/604
estimateHomographyRANSAC : support: 541/604
estimateHomographyRANSAC : support: 582/604
estimateHomographyRANSAC : support: 593/604
estimateHomographyRANSAC : support: 602/604
estimateHomographyRANSAC : support: 603/604
estimateHomographyRANSAC : best support: 603/604
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.073803, time_cv: 0.073864, time_bruteforce: 0, good_nn: 0.178448, good_ratio: 0.957346, good_clusters: 0.983264, good_ratio_and_clusters: 0.993377
[       OK ] MATCHING.Scale90 (1908 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: 348/785
estimateHomographyRANSAC : support: 391/785
estimateHomographyRANSAC : support: 785/785
estimateHomographyRANSAC : best support: 785/785
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.109831, time_cv: 0.109425, time_bruteforce: 0, good_nn: 0.207961, good_ratio: 0.975309, good_clusters: 0.979638, good_ratio_and_clusters: 0.993631
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: 712/712
estimateHomographyRANSAC : best support: 712/712
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.103035, time_cv: 0.103152, time_bruteforce: 0, good_nn: 0.211207, good_ratio: 0.979536, good_clusters: 0.992823, good_ratio_and_clusters: 0.997191
[       OK ] MATCHING.Scale110 (2424 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: 719/835
estimateHomographyRANSAC : support: 833/835
estimateHomographyRANSAC : support: 834/835
estimateHomographyRANSAC : best support: 834/835
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.153625, time_cv: 0.153594, time_bruteforce: 0, good_nn: 0.217147, good_ratio: 0.964286, good_clusters: 0.985972, good_ratio_and_clusters: 0.986826
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: 668/756
estimateHomographyRANSAC : support: 755/756
gauss: infinitely many solutions found
gauss: xs0: 678.857, 564.283, 678.857, 569.037, 
gauss: ys0: 621.485, 614.398, 621.485, 456.889, 
estimateHomographyRANSAC : best support: 755/756
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.149332, time_cv: 0.147983, time_bruteforce: 0, good_nn: 0.226724, good_ratio: 0.97335, good_clusters: 0.991786, good_ratio_and_clusters: 0.996032
[       OK ] MATCHING.Scale130 (3270 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: 723/789
estimateHomographyRANSAC : support: 755/789
estimateHomographyRANSAC : support: 786/789
estimateHomographyRANSAC : support: 787/789
estimateHomographyRANSAC : support: 788/789
estimateHomographyRANSAC : best support: 788/789
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.218492, time_cv: 0.221241, time_bruteforce: 0, good_nn: 0.19801, good_ratio: 0.92674, good_clusters: 0.960699, good_ratio_and_clusters: 0.954373
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: 140/704
estimateHomographyRANSAC : support: 656/704
estimateHomographyRANSAC : support: 703/704
estimateHomographyRANSAC : best support: 703/704
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.207947, time_cv: 0.210167, time_bruteforce: 0, good_nn: 0.203736, good_ratio: 0.969655, good_clusters: 0.976636, good_ratio_and_clusters: 0.991477
[       OK ] MATCHING.Scale150 (4443 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: 16/771
estimateHomographyRANSAC : support: 758/771
estimateHomographyRANSAC : support: 768/771
estimateHomographyRANSAC : support: 769/771
estimateHomographyRANSAC : best support: 769/771
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.282982, time_cv: 0.282142, time_bruteforce: 0, good_nn: 0.186272, good_ratio: 0.893939, good_clusters: 0.912088, good_ratio_and_clusters: 0.9131
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: 664/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.2801, time_cv: 0.283773, time_bruteforce: 0, good_nn: 0.19454, good_ratio: 0.953556, good_clusters: 0.941919, good_ratio_and_clusters: 0.972973
[       OK ] MATCHING.Scale175 (5925 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: 853/855
estimateHomographyRANSAC : best support: 853/855
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.317422, time_cv: 0.317065, time_bruteforce: 0, good_nn: 0.164072, good_ratio: 0.723744, good_clusters: 0.762523, good_ratio_and_clusters: 0.734503
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: 265/783
estimateHomographyRANSAC : support: 781/783
estimateHomographyRANSAC : support: 782/783
estimateHomographyRANSAC : support: 783/783
estimateHomographyRANSAC : best support: 783/783
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.301962, time_cv: 0.298494, time_bruteforce: 0, good_nn: 0.216092, good_ratio: 0.909317, good_clusters: 0.922932, good_ratio_and_clusters: 0.927203
[       OK ] MATCHING.Scale200 (6851 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: 644/644
estimateHomographyRANSAC : best support: 644/644
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.088388, time_cv: 0.088471, time_bruteforce: 0, good_nn: 0.173003, good_ratio: 0.972892, good_clusters: 0.983333, good_ratio_and_clusters: 0.990683
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: 216/583
estimateHomographyRANSAC : support: 550/583
estimateHomographyRANSAC : support: 575/583
estimateHomographyRANSAC : support: 583/583
estimateHomographyRANSAC : best support: 583/583
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.083093, time_cv: 0.08318, time_bruteforce: 1e-06, good_nn: 0.174138, good_ratio: 0.981636, good_clusters: 0.973485, good_ratio_and_clusters: 0.998285
[       OK ] MATCHING.Rotate10Scale90 (2045 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: 61/436
estimateHomographyRANSAC : support: 433/436
estimateHomographyRANSAC : support: 434/436
estimateHomographyRANSAC : best support: 434/436
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.072283, time_cv: 0.072286, time_bruteforce: 0, good_nn: 0.117122, good_ratio: 0.960177, good_clusters: 0.94186, good_ratio_and_clusters: 0.990826
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: 380/387
estimateHomographyRANSAC : support: 385/387
estimateHomographyRANSAC : best support: 385/387
evaluating homography...
nn_score: 0, nn2_score: 0, nn_score_cv: 0, nn2_score_cv: 0, time_my: 0.066484, time_cv: 0.066755, time_bruteforce: 0, good_nn: 0.106322, good_ratio: 0.835351, good_clusters: 0.780952, good_ratio_and_clusters: 0.881137
[       OK ] MATCHING.Rotate30Scale75 (1605 ms)
[----------] 18 tests from MATCHING (55376 ms total)

[----------] 2 tests from STITCHING
[ RUN      ] STITCHING.SimplePanorama
estimateHomographyRANSAC : support: 125/1004
estimateHomographyRANSAC : support: 1001/1004
estimateHomographyRANSAC : support: 1002/1004
estimateHomographyRANSAC : best support: 1002/1004
bbox: [1281.14, 640.163], [0, -5.49158]
[       OK ] STITCHING.SimplePanorama (282 ms)
[ RUN      ] STITCHING.Orthophoto
estimateHomographyRANSAC : support: 42/1358
estimateHomographyRANSAC : support: 409/1358
estimateHomographyRANSAC : support: 419/1358
estimateHomographyRANSAC : support: 471/1358
estimateHomographyRANSAC : best support: 471/1358
estimateHomographyRANSAC : support: 205/1050
estimateHomographyRANSAC : support: 312/1050
estimateHomographyRANSAC : support: 440/1050
estimateHomographyRANSAC : best support: 440/1050
estimateHomographyRANSAC : support: 251/2087
estimateHomographyRANSAC : support: 454/2087
estimateHomographyRANSAC : support: 499/2087
estimateHomographyRANSAC : support: 672/2087
estimateHomographyRANSAC : support: 726/2087
estimateHomographyRANSAC : best support: 726/2087
estimateHomographyRANSAC : support: 6/1221
estimateHomographyRANSAC : support: 11/1221
estimateHomographyRANSAC : support: 27/1221
estimateHomographyRANSAC : support: 435/1221
estimateHomographyRANSAC : support: 476/1221
estimateHomographyRANSAC : support: 570/1221
estimateHomographyRANSAC : best support: 570/1221
bbox: [1453.21, 2013.48], [-252.419, -457.484]
estimateHomographyRANSAC : support: 426/1063
gauss: infinitely many solutions found
gauss: xs0: 593.854, 593.854, 395.123, 148.941, 
gauss: ys0: 514.874, 514.874, 525.662, 833.954, 
estimateHomographyRANSAC : best support: 426/1063
estimateHomographyRANSAC : support: 27/1336
estimateHomographyRANSAC : support: 314/1336
estimateHomographyRANSAC : support: 361/1336
estimateHomographyRANSAC : support: 649/1336
estimateHomographyRANSAC : best support: 649/1336
estimateHomographyRANSAC : support: 397/2055
estimateHomographyRANSAC : support: 454/2055
estimateHomographyRANSAC : support: 539/2055
estimateHomographyRANSAC : support: 562/2055
estimateHomographyRANSAC : best support: 562/2055
estimateHomographyRANSAC : support: 22/1231
estimateHomographyRANSAC : support: 235/1231
estimateHomographyRANSAC : support: 263/1231
estimateHomographyRANSAC : support: 413/1231
estimateHomographyRANSAC : support: 497/1231
estimateHomographyRANSAC : best support: 497/1231
bbox: [1152, 864], [-295.723, -1052.98]
n stable ortho kpts: : 20480
[       OK ] STITCHING.Orthophoto (11170 ms)
[----------] 2 tests from STITCHING (11452 ms total)

[----------] Global test environment tear-down
[==========] 20 tests from 2 test suites ran. (66828 ms total)
[  PASSED  ] 20 tests.

@simiyutin

Copy link
Copy Markdown
Contributor

Все хорошо, задача зачтена, 8/8 баллов 👍

@simiyutin simiyutin closed this Mar 24, 2026
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.

2 participants