Skip to content

Task01 Василий Можаев МКН СП#1

Open
mozhaa wants to merge 2 commits intoPhotogrammetryCourse:task01from
mozhaa:task01
Open

Task01 Василий Можаев МКН СП#1
mozhaa wants to merge 2 commits intoPhotogrammetryCourse:task01from
mozhaa:task01

Conversation

@mozhaa
Copy link

@mozhaa mozhaa commented Feb 23, 2026

  1. Почему SIFT менее точно угадывает средний угол отклонения? изменяется ли ситуация если выкрутить параметр ORIENTATION_VOTES_PEAK_RATIO=0.999? почему?

Он берет несколько пиков по ORIENTATION_VOTES_PEAK_RATIO. Если поставить 0.999, то будет браться только 1, что лучше, если мы угадали, но если правильный ответ не такой четкий, то будет неправильно

  1. Как надежно замерить во сколько раз распараллеливание через OpenMP ускоряет ваш вариант SIFT? Попробуйте сделать это на вашем компьютере, какое ускорение относительно однопоточной версии оказалось? Сколько у вашего процессора ядер и сколько потоков?

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

  1. Правда ли можно строить каждый слой в Gaussian пирамиде из самого первого слоя этой октавы? Или нужно обязательно делать так как предложено в статье - дополняя размытие предыдущего слоя этой октавы? Совпадают ли пирамиды визуально?

Да, можно, потому что композиция сверток гауссианом эквивалентна одной свертке с суммированным стандартным отклонением

  1. Какие ожидания от картинок в Gaussian пирамиде можно придумать? Как проверить что работает корректно? С какой другой картинкой предыдущей октавы должна визуально совпадать конкретная картинка конкретной октавы? Как их визуально сравнить, ведь они разного размера?

Размытые версии оригинальной картинки. Первая картинка n-й октавы - уменьшенная версия последней картинки (n-1)-й октавы. Можно апскейльнуть меньшую картинку и посчитать разность

  1. Почему в октаве Gaussian пирамиды s+3 картинки а не s+2 например?

Это объясняется в комментариях в коде: +1 потому что мы берем разности и +2 потому что хотим чтобы у всех s картиной были соседи слева и справа

  1. Какие ожидания от картинок в DoG пирамиде можно придумать?

Ярче там, где есть фичи этого конкретного уровня. На начальных уровнях фичи маленькие (на первом вообще резкость, потому что вычитая из картинки ее заблюренную версию, мы по сути вычитаем гаусианную свертку из no-op свертки (1 в центре, остальное нули), в итоге получается что-то типа свертки резкости (в центре меньше чем у соседей)), на конечных уровнях фичи большие.

  1. Почему порог контрастности должен уменьшаться при увеличении числа слоев в октаве?

Больше слоев - меньше разница сигм между соседними слоями - больше нужен порог

  1. Какая строка ответственна за определение сигмы (или что почти то же самое - радиуса) которая задает окрестность по которой определяется ориентация ключевой точки?
// найдем радиус ключевой точки в координатах ее октавы
float kp_sigma_octave = (float)(sigma0 * std::pow(2.0, (double)layer / s));
float sigma_win = 1.5f * kp_sigma_octave; // цитата из lowe: "Each sample added to the histogram is weighted by its gradient magnitude and by a Gaussian-weighted circular window with a σ that is 1.5 times that of the scale of the keypoint."
int radius = (int)std::round(3.f * sigma_win);
  1. За какой строки вашего кода дескриптор инвариантен к повороту картинки?

float angle_invariant = angle - kp_angle_rad;

Github Actions CI

Running main() from /home/runner/work/PhotogrammetryTasks2026/PhotogrammetryTasks2026/libs/3rdparty/libgtest/googletest/src/gtest_main.cc
[==========] Running 25 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 25 tests from SIFT
[ RUN      ] SIFT.MovedTheSameImage
[ORB_OCV] Points detected: 500 -> 500 (in 0.010692 sec)
[ORB_OCV] 493/500 (recall=0.986) with average error=0.0520289
[ORB_OCV] average size ratio between matched points: 1.00185
[ORB_OCV] average angle difference between matched points: 0.145135 degrees
[ORB_OCV] average descriptor distance between matched points: 8.8073 (random distance: 127.325) => differentiability=0.0691721
[SIFTOCV] Points detected: 453 -> 465 (in 0.086404 sec)
[SIFTOCV] 436/453 (recall=0.962472) with average error=0.0435686
[SIFTOCV] average size ratio between matched points: 0.998252
[SIFTOCV] average angle difference between matched points: -4.7478 degrees
[SIFTOCV] average descriptor distance between matched points: 90.3355 (random distance: 523.008) => differentiability=0.172723
[SIFT_MY] Points detected: 424 -> 440 (in 0.165796 sec)
[SIFT_MY] 408/424 (recall=0.962264) with average error=0.0457224
[SIFT_MY] average size ratio between matched points: 0.997958
[SIFT_MY] average angle difference between matched points: -6.4175 degrees
[SIFT_MY] average descriptor distance between matched points: 0.159853 (random distance: 1.02994) => differentiability=0.155207
[       OK ] SIFT.MovedTheSameImage (336 ms)
[ RUN      ] SIFT.MovedImageRight
[ORB_OCV] Points detected: 500 -> 500 (in 0.009205 sec)
[ORB_OCV] 471/500 (recall=0.942) with average error=0.502929
[ORB_OCV] average size ratio between matched points: 0.992385
[ORB_OCV] average angle difference between matched points: -0.67963 degrees
[ORB_OCV] average descriptor distance between matched points: 31.7219 (random distance: 127.724) => differentiability=0.248363
[SIFTOCV] Points detected: 453 -> 447 (in 0.083272 sec)
[SIFTOCV] 421/442 (recall=0.952489) with average error=0.107924
[SIFTOCV] average size ratio between matched points: 1.01134
[SIFTOCV] average angle difference between matched points: -3.58242 degrees
[SIFTOCV] average descriptor distance between matched points: 90.1555 (random distance: 527.86) => differentiability=0.170794
[SIFT_MY] Points detected: 424 -> 429 (in 0.16631 sec)
[SIFT_MY] 399/422 (recall=0.945498) with average error=0.11273
[SIFT_MY] average size ratio between matched points: 1.00791
[SIFT_MY] average angle difference between matched points: -6.20512 degrees
[SIFT_MY] average descriptor distance between matched points: 0.171172 (random distance: 1.00889) => differentiability=0.169664
[       OK ] SIFT.MovedImageRight (335 ms)
[ RUN      ] SIFT.MovedImageLeft
[ORB_OCV] Points detected: 500 -> 500 (in 0.01087 sec)
[ORB_OCV] 466/498 (recall=0.935743) with average error=0.485198
[ORB_OCV] average size ratio between matched points: 1.0061
[ORB_OCV] average angle difference between matched points: -2.01597 degrees
[ORB_OCV] average descriptor distance between matched points: 30.279 (random distance: 126.457) => differentiability=0.239441
[SIFTOCV] Points detected: 453 -> 447 (in 0.083388 sec)
[SIFTOCV] 417/441 (recall=0.945578) with average error=0.0855277
[SIFTOCV] average size ratio between matched points: 0.997577
[SIFTOCV] average angle difference between matched points: -6.43682 degrees
[SIFTOCV] average descriptor distance between matched points: 97.5722 (random distance: 523.97) => differentiability=0.186217
[SIFT_MY] Points detected: 424 -> 422 (in 0.163842 sec)
[SIFT_MY] 391/417 (recall=0.93765) with average error=0.0654435
[SIFT_MY] average size ratio between matched points: 0.998206
[SIFT_MY] average angle difference between matched points: -6.39811 degrees
[SIFT_MY] average descriptor distance between matched points: 0.16641 (random distance: 1.02064) => differentiability=0.163045
[       OK ] SIFT.MovedImageLeft (331 ms)
[ RUN      ] SIFT.MovedImageUpHalfPixel
[ORB_OCV] Points detected: 500 -> 500 (in 0.009269 sec)
[ORB_OCV] 460/497 (recall=0.925553) with average error=0.710802
[ORB_OCV] average size ratio between matched points: 1.01167
[ORB_OCV] average angle difference between matched points: 0.857323 degrees
[ORB_OCV] average descriptor distance between matched points: 42.9087 (random distance: 123.602) => differentiability=0.347152
[SIFTOCV] Points detected: 453 -> 500 (in 0.080046 sec)
[SIFTOCV] 367/445 (recall=0.824719) with average error=0.398716
[SIFTOCV] average size ratio between matched points: 1.0449
[SIFTOCV] average angle difference between matched points: 0.114179 degrees
[SIFTOCV] average descriptor distance between matched points: 152.166 (random distance: 530.014) => differentiability=0.287097
[SIFT_MY] Points detected: 424 -> 488 (in 0.170317 sec)
[SIFT_MY] 356/420 (recall=0.847619) with average error=0.387394
[SIFT_MY] average size ratio between matched points: 1.04654
[SIFT_MY] average angle difference between matched points: -7.16037 degrees
[SIFT_MY] average descriptor distance between matched points: 0.283155 (random distance: 1.0065) => differentiability=0.281327
[       OK ] SIFT.MovedImageUpHalfPixel (333 ms)
[ RUN      ] SIFT.MovedImageDownHalfPixel
[ORB_OCV] Points detected: 500 -> 500 (in 0.009126 sec)
[ORB_OCV] 442/478 (recall=0.924686) with average error=0.648609
[ORB_OCV] average size ratio between matched points: 0.971097
[ORB_OCV] average angle difference between matched points: -1.00358 degrees
[ORB_OCV] average descriptor distance between matched points: 42.586 (random distance: 125.477) => differentiability=0.339392
[SIFTOCV] Points detected: 453 -> 500 (in 0.080205 sec)
[SIFTOCV] 374/439 (recall=0.851936) with average error=0.445461
[SIFTOCV] average size ratio between matched points: 1.05024
[SIFTOCV] average angle difference between matched points: 0.589903 degrees
[SIFTOCV] average descriptor distance between matched points: 165.511 (random distance: 529.613) => differentiability=0.312513
[SIFT_MY] Points detected: 424 -> 471 (in 0.169984 sec)
[SIFT_MY] 351/417 (recall=0.841727) with average error=0.435946
[SIFT_MY] average size ratio between matched points: 1.04905
[SIFT_MY] average angle difference between matched points: -6.8173 degrees
[SIFT_MY] average descriptor distance between matched points: 0.302628 (random distance: 1.02429) => differentiability=0.295452
[       OK ] SIFT.MovedImageDownHalfPixel (331 ms)
[ RUN      ] SIFT.Rotate10
[ORB_OCV] Points detected: 500 -> 500 (in 0.009289 sec)
[ORB_OCV] 475/500 (recall=0.95) with average error=0.932881
[ORB_OCV] average size ratio between matched points: 1.00527
[ORB_OCV] average angle difference between matched points: 8.46336 degrees
[ORB_OCV] average descriptor distance between matched points: 56.6295 (random distance: 122.783) => differentiability=0.461215
[SIFTOCV] Points detected: 453 -> 500 (in 0.08132 sec)
[SIFTOCV] 350/451 (recall=0.776053) with average error=0.501799
[SIFTOCV] average size ratio between matched points: 1.03657
[SIFTOCV] average angle difference between matched points: 6.5729 degrees
[SIFTOCV] average descriptor distance between matched points: 178.858 (random distance: 521.738) => differentiability=0.342812
[SIFT_MY] Points detected: 424 -> 485 (in 0.172148 sec)
[SIFT_MY] 343/424 (recall=0.808962) with average error=0.5098
[SIFT_MY] average size ratio between matched points: 1.04221
[SIFT_MY] average angle difference between matched points: -3.91352 degrees
[SIFT_MY] average descriptor distance between matched points: 0.335045 (random distance: 1.02509) => differentiability=0.326845
[       OK ] SIFT.Rotate10 (334 ms)
[ RUN      ] SIFT.Rotate20
[ORB_OCV] Points detected: 500 -> 500 (in 0.009242 sec)
[ORB_OCV] 456/491 (recall=0.928717) with average error=0.860867
[ORB_OCV] average size ratio between matched points: 0.968872
[ORB_OCV] average angle difference between matched points: 19.4252 degrees
[ORB_OCV] average descriptor distance between matched points: 58.3224 (random distance: 125.59) => differentiability=0.464387
[SIFTOCV] Points detected: 453 -> 500 (in 0.080019 sec)
[SIFTOCV] 337/443 (recall=0.760722) with average error=0.556804
[SIFTOCV] average size ratio between matched points: 1.04965
[SIFTOCV] average angle difference between matched points: 1.4678 degrees
[SIFTOCV] average descriptor distance between matched points: 186.303 (random distance: 531.487) => differentiability=0.350531
[SIFT_MY] Points detected: 424 -> 488 (in 0.173394 sec)
[SIFT_MY] 325/417 (recall=0.779376) with average error=0.560121
[SIFT_MY] average size ratio between matched points: 1.05133
[SIFT_MY] average angle difference between matched points: 1.28393 degrees
[SIFT_MY] average descriptor distance between matched points: 0.34562 (random distance: 1.01898) => differentiability=0.339182
[       OK ] SIFT.Rotate20 (335 ms)
[ RUN      ] SIFT.Rotate30
[ORB_OCV] Points detected: 500 -> 500 (in 0.009208 sec)
[ORB_OCV] 446/479 (recall=0.931106) with average error=0.954674
[ORB_OCV] average size ratio between matched points: 0.971588
[ORB_OCV] average angle difference between matched points: 25.313 degrees
[ORB_OCV] average descriptor distance between matched points: 56.7668 (random distance: 125.177) => differentiability=0.453492
[SIFTOCV] Points detected: 453 -> 500 (in 0.080166 sec)
[SIFTOCV] 356/441 (recall=0.807256) with average error=0.635313
[SIFTOCV] average size ratio between matched points: 1.04861
[SIFTOCV] average angle difference between matched points: 9.58379 degrees
[SIFTOCV] average descriptor distance between matched points: 194.029 (random distance: 529.795) => differentiability=0.366233
[SIFT_MY] Points detected: 424 -> 476 (in 0.17061 sec)
[SIFT_MY] 335/416 (recall=0.805288) with average error=0.614676
[SIFT_MY] average size ratio between matched points: 1.04884
[SIFT_MY] average angle difference between matched points: 10.3163 degrees
[SIFT_MY] average descriptor distance between matched points: 0.339755 (random distance: 1.02273) => differentiability=0.332204
[       OK ] SIFT.Rotate30 (332 ms)
[ RUN      ] SIFT.Rotate40
[ORB_OCV] Points detected: 500 -> 500 (in 0.009276 sec)
[ORB_OCV] 445/475 (recall=0.936842) with average error=0.927974
[ORB_OCV] average size ratio between matched points: 0.992927
[ORB_OCV] average angle difference between matched points: 35.1473 degrees
[ORB_OCV] average descriptor distance between matched points: 57.0315 (random distance: 125.292) => differentiability=0.455188
[SIFTOCV] Points detected: 453 -> 470 (in 0.079552 sec)
[SIFTOCV] 335/436 (recall=0.768349) with average error=0.722947
[SIFTOCV] average size ratio between matched points: 1.07134
[SIFTOCV] average angle difference between matched points: 12.1292 degrees
[SIFTOCV] average descriptor distance between matched points: 189.937 (random distance: 524.78) => differentiability=0.361937
[SIFT_MY] Points detected: 424 -> 447 (in 0.169072 sec)
[SIFT_MY] 317/412 (recall=0.769417) with average error=0.716163
[SIFT_MY] average size ratio between matched points: 1.07368
[SIFT_MY] average angle difference between matched points: 17.7504 degrees
[SIFT_MY] average descriptor distance between matched points: 0.344266 (random distance: 1.03005) => differentiability=0.334222
[       OK ] SIFT.Rotate40 (331 ms)
[ RUN      ] SIFT.Rotate45
[ORB_OCV] Points detected: 500 -> 500 (in 0.009282 sec)
[ORB_OCV] 427/475 (recall=0.898947) with average error=0.913293
[ORB_OCV] average size ratio between matched points: 0.999695
[ORB_OCV] average angle difference between matched points: 40.7936 degrees
[ORB_OCV] average descriptor distance between matched points: 57.0351 (random distance: 126.834) => differentiability=0.449684
[SIFTOCV] Points detected: 453 -> 500 (in 0.080074 sec)
[SIFTOCV] 344/431 (recall=0.798144) with average error=0.735095
[SIFTOCV] average size ratio between matched points: 1.04736
[SIFTOCV] average angle difference between matched points: 25.7374 degrees
[SIFTOCV] average descriptor distance between matched points: 189.73 (random distance: 526.815) => differentiability=0.360145
[SIFT_MY] Points detected: 424 -> 491 (in 0.172083 sec)
[SIFT_MY] 327/408 (recall=0.801471) with average error=0.707951
[SIFT_MY] average size ratio between matched points: 1.05652
[SIFT_MY] average angle difference between matched points: 25.4261 degrees
[SIFT_MY] average descriptor distance between matched points: 0.344143 (random distance: 1.03203) => differentiability=0.333462
[       OK ] SIFT.Rotate45 (334 ms)
[ RUN      ] SIFT.Rotate90
[ORB_OCV] Points detected: 500 -> 500 (in 0.009243 sec)
[ORB_OCV] 406/475 (recall=0.854737) with average error=0.794018
[ORB_OCV] average size ratio between matched points: 0.926186
[ORB_OCV] average angle difference between matched points: 81.2045 degrees
[ORB_OCV] average descriptor distance between matched points: 52.2069 (random distance: 126.239) => differentiability=0.413556
[SIFTOCV] Points detected: 453 -> 429 (in 0.078657 sec)
[SIFTOCV] 397/428 (recall=0.92757) with average error=0.597669
[SIFTOCV] average size ratio between matched points: 0.994223
[SIFTOCV] average angle difference between matched points: 68.2509 degrees
[SIFTOCV] average descriptor distance between matched points: 109.39 (random distance: 522.253) => differentiability=0.209459
[SIFT_MY] Points detected: 424 -> 410 (in 0.162469 sec)
[SIFT_MY] 372/410 (recall=0.907317) with average error=0.60056
[SIFT_MY] average size ratio between matched points: 0.995118
[SIFT_MY] average angle difference between matched points: 71.3043 degrees
[SIFT_MY] average descriptor distance between matched points: 0.188306 (random distance: 1.00293) => differentiability=0.187756
[       OK ] SIFT.Rotate90 (322 ms)
[ RUN      ] SIFT.Scale50
[ORB_OCV] Points detected: 500 -> 500 (in 0.008835 sec)
[ORB_OCV] 463/500 (recall=0.926) with average error=0.927987
[ORB_OCV] average size ratio between matched points: 0.829127
[ORB_OCV] average angle difference between matched points: 2.9143 degrees
[ORB_OCV] average descriptor distance between matched points: 89.7322 (random distance: 124.84) => differentiability=0.718776
[SIFTOCV] Points detected: 453 -> 191 (in 0.076697 sec)
[SIFTOCV] 235/453 (recall=0.518764) with average error=1.81213
[SIFTOCV] average size ratio between matched points: 0.90594
[SIFTOCV] average angle difference between matched points: -0.218442 degrees
[SIFTOCV] average descriptor distance between matched points: 362.817 (random distance: 526.31) => differentiability=0.68936
[SIFT_MY] Points detected: 424 -> 187 (in 0.134811 sec)
[SIFT_MY] 219/424 (recall=0.516509) with average error=1.91889
[SIFT_MY] average size ratio between matched points: 0.957992
[SIFT_MY] average angle difference between matched points: 2.96179 degrees
[SIFT_MY] average descriptor distance between matched points: 0.711257 (random distance: 1.03842) => differentiability=0.684942
[       OK ] SIFT.Scale50 (292 ms)
[ RUN      ] SIFT.Scale70
[ORB_OCV] Points detected: 500 -> 500 (in 0.008936 sec)
[ORB_OCV] 488/500 (recall=0.976) with average error=0.902066
[ORB_OCV] average size ratio between matched points: 0.884398
[ORB_OCV] average angle difference between matched points: 1.14689 degrees
[ORB_OCV] average descriptor distance between matched points: 70.2889 (random distance: 124.695) => differentiability=0.563688
[SIFTOCV] Points detected: 453 -> 335 (in 0.07757 sec)
[SIFTOCV] 307/453 (recall=0.677704) with average error=1.1649
[SIFTOCV] average size ratio between matched points: 0.92551
[SIFTOCV] average angle difference between matched points: -8.88537 degrees
[SIFTOCV] average descriptor distance between matched points: 272.272 (random distance: 530.603) => differentiability=0.513138
[SIFT_MY] Points detected: 424 -> 318 (in 0.156625 sec)
[SIFT_MY] 291/424 (recall=0.686321) with average error=1.22699
[SIFT_MY] average size ratio between matched points: 0.967551
[SIFT_MY] average angle difference between matched points: -5.74811 degrees
[SIFT_MY] average descriptor distance between matched points: 0.540313 (random distance: 1.03738) => differentiability=0.520843
[       OK ] SIFT.Scale70 (314 ms)
[ RUN      ] SIFT.Scale90
[ORB_OCV] Points detected: 500 -> 500 (in 0.00917 sec)
[ORB_OCV] 489/500 (recall=0.978) with average error=0.823308
[ORB_OCV] average size ratio between matched points: 0.970324
[ORB_OCV] average angle difference between matched points: -0.183516 degrees
[ORB_OCV] average descriptor distance between matched points: 60.3333 (random distance: 125.059) => differentiability=0.482438
[SIFTOCV] Points detected: 453 -> 469 (in 0.081722 sec)
[SIFTOCV] 354/453 (recall=0.781457) with average error=0.59984
[SIFTOCV] average size ratio between matched points: 1.00052
[SIFTOCV] average angle difference between matched points: -4.5203 degrees
[SIFTOCV] average descriptor distance between matched points: 193.204 (random distance: 523.29) => differentiability=0.369209
[SIFT_MY] Points detected: 424 -> 431 (in 0.168825 sec)
[SIFT_MY] 336/424 (recall=0.792453) with average error=0.643454
[SIFT_MY] average size ratio between matched points: 0.99799
[SIFT_MY] average angle difference between matched points: -4.59535 degrees
[SIFT_MY] average descriptor distance between matched points: 0.401302 (random distance: 1.00811) => differentiability=0.398073
[       OK ] SIFT.Scale90 (330 ms)
[ RUN      ] SIFT.Scale110
[ORB_OCV] Points detected: 500 -> 500 (in 0.008816 sec)
[ORB_OCV] 462/500 (recall=0.924) with average error=0.912118
[ORB_OCV] average size ratio between matched points: 1.02967
[ORB_OCV] average angle difference between matched points: -0.905967 degrees
[ORB_OCV] average descriptor distance between matched points: 59.7468 (random distance: 125.225) => differentiability=0.477115
[SIFTOCV] Points detected: 453 -> 500 (in 0.077675 sec)
[SIFTOCV] 307/434 (recall=0.707373) with average error=0.561683
[SIFTOCV] average size ratio between matched points: 1.15716
[SIFTOCV] average angle difference between matched points: 1.13854 degrees
[SIFTOCV] average descriptor distance between matched points: 182.143 (random distance: 530.492) => differentiability=0.343347
[SIFT_MY] Points detected: 424 -> 493 (in 0.166263 sec)
[SIFT_MY] 304/421 (recall=0.72209) with average error=0.574339
[SIFT_MY] average size ratio between matched points: 1.15415
[SIFT_MY] average angle difference between matched points: -5.88926 degrees
[SIFT_MY] average descriptor distance between matched points: 0.406783 (random distance: 1.03578) => differentiability=0.392731
[       OK ] SIFT.Scale110 (325 ms)
[ RUN      ] SIFT.Scale130
[ORB_OCV] Points detected: 500 -> 500 (in 0.008861 sec)
[ORB_OCV] 400/475 (recall=0.842105) with average error=1.02537
[ORB_OCV] average size ratio between matched points: 1.10237
[ORB_OCV] average angle difference between matched points: -4.78444 degrees
[ORB_OCV] average descriptor distance between matched points: 67.4875 (random distance: 126.4) => differentiability=0.53392
[SIFTOCV] Points detected: 453 -> 500 (in 0.076252 sec)
[SIFTOCV] 253/409 (recall=0.618582) with average error=0.533529
[SIFTOCV] average size ratio between matched points: 1.37601
[SIFTOCV] average angle difference between matched points: -2.24977 degrees
[SIFTOCV] average descriptor distance between matched points: 175.173 (random distance: 529.43) => differentiability=0.33087
[SIFT_MY] Points detected: 424 -> 478 (in 0.165842 sec)
[SIFT_MY] 237/402 (recall=0.589552) with average error=0.514185
[SIFT_MY] average size ratio between matched points: 1.37362
[SIFT_MY] average angle difference between matched points: -3.26666 degrees
[SIFT_MY] average descriptor distance between matched points: 0.357848 (random distance: 1.02575) => differentiability=0.348866
[       OK ] SIFT.Scale130 (322 ms)
[ RUN      ] SIFT.Scale150
[ORB_OCV] Points detected: 500 -> 500 (in 0.008926 sec)
[ORB_OCV] 325/445 (recall=0.730337) with average error=1.18695
[ORB_OCV] average size ratio between matched points: 1.16446
[ORB_OCV] average angle difference between matched points: -1.92861 degrees
[ORB_OCV] average descriptor distance between matched points: 75.4954 (random distance: 125.905) => differentiability=0.599624
[SIFTOCV] Points detected: 453 -> 500 (in 0.078529 sec)
[SIFTOCV] 208/387 (recall=0.537468) with average error=0.519869
[SIFTOCV] average size ratio between matched points: 1.56537
[SIFTOCV] average angle difference between matched points: 2.7434 degrees
[SIFTOCV] average descriptor distance between matched points: 178.951 (random distance: 530.33) => differentiability=0.337433
[SIFT_MY] Points detected: 424 -> 475 (in 0.168453 sec)
[SIFT_MY] 191/380 (recall=0.502632) with average error=0.464552
[SIFT_MY] average size ratio between matched points: 1.54871
[SIFT_MY] average angle difference between matched points: -4.72397 degrees
[SIFT_MY] average descriptor distance between matched points: 0.369212 (random distance: 1.02985) => differentiability=0.358509
[       OK ] SIFT.Scale150 (330 ms)
[ RUN      ] SIFT.Scale175
[ORB_OCV] Points detected: 500 -> 500 (in 0.008967 sec)
[ORB_OCV] 235/380 (recall=0.618421) with average error=1.3217
[ORB_OCV] average size ratio between matched points: 1.25586
[ORB_OCV] average angle difference between matched points: 4.13008 degrees
[ORB_OCV] average descriptor distance between matched points: 84.1617 (random distance: 124.894) => differentiability=0.673867
[SIFTOCV] Points detected: 453 -> 501 (in 0.080775 sec)
[SIFTOCV] 189/354 (recall=0.533898) with average error=0.530545
[SIFTOCV] average size ratio between matched points: 1.79649
[SIFTOCV] average angle difference between matched points: -2.33097 degrees
[SIFTOCV] average descriptor distance between matched points: 182.373 (random distance: 522.122) => differentiability=0.349291
[SIFT_MY] Points detected: 424 -> 461 (in 0.181069 sec)
[SIFT_MY] 162/351 (recall=0.461538) with average error=0.555716
[SIFT_MY] average size ratio between matched points: 1.78824
[SIFT_MY] average angle difference between matched points: 0.536876 degrees
[SIFT_MY] average descriptor distance between matched points: 0.423642 (random distance: 1.03122) => differentiability=0.410814
[       OK ] SIFT.Scale175 (346 ms)
[ RUN      ] SIFT.Scale200
[ORB_OCV] Points detected: 500 -> 500 (in 0.00943 sec)
[ORB_OCV] 174/333 (recall=0.522523) with average error=1.36043
[ORB_OCV] average size ratio between matched points: 1.34374
[ORB_OCV] average angle difference between matched points: -3.78969 degrees
[ORB_OCV] average descriptor distance between matched points: 86.1954 (random distance: 126.011) => differentiability=0.684028
[SIFTOCV] Points detected: 453 -> 500 (in 0.081 sec)
[SIFTOCV] 178/324 (recall=0.549383) with average error=0.536323
[SIFTOCV] average size ratio between matched points: 2.03968
[SIFTOCV] average angle difference between matched points: -1.02503 degrees
[SIFTOCV] average descriptor distance between matched points: 167.42 (random distance: 528.219) => differentiability=0.316952
[SIFT_MY] Points detected: 424 -> 471 (in 0.177062 sec)
[SIFT_MY] 153/320 (recall=0.478125) with average error=0.550671
[SIFT_MY] average size ratio between matched points: 2.02589
[SIFT_MY] average angle difference between matched points: -12.1815 degrees
[SIFT_MY] average descriptor distance between matched points: 0.316559 (random distance: 1.03178) => differentiability=0.306808
[       OK ] SIFT.Scale200 (343 ms)
[ RUN      ] SIFT.Rotate10Scale90
[ORB_OCV] Points detected: 500 -> 500 (in 0.009377 sec)
[ORB_OCV] 486/500 (recall=0.972) with average error=0.862656
[ORB_OCV] average size ratio between matched points: 1.00909
[ORB_OCV] average angle difference between matched points: 12.1602 degrees
[ORB_OCV] average descriptor distance between matched points: 61.9033 (random distance: 126.477) => differentiability=0.489442
[SIFTOCV] Points detected: 453 -> 464 (in 0.079726 sec)
[SIFTOCV] 351/453 (recall=0.774834) with average error=0.660494
[SIFTOCV] average size ratio between matched points: 0.970697
[SIFTOCV] average angle difference between matched points: 0.36928 degrees
[SIFTOCV] average descriptor distance between matched points: 210.278 (random distance: 528.178) => differentiability=0.39812
[SIFT_MY] Points detected: 424 -> 428 (in 0.165291 sec)
[SIFT_MY] 325/424 (recall=0.766509) with average error=0.622443
[SIFT_MY] average size ratio between matched points: 0.966647
[SIFT_MY] average angle difference between matched points: -0.792507 degrees
[SIFT_MY] average descriptor distance between matched points: 0.427394 (random distance: 1.03031) => differentiability=0.414819
[       OK ] SIFT.Rotate10Scale90 (328 ms)
[ RUN      ] SIFT.Rotate30Scale75
[ORB_OCV] Points detected: 500 -> 500 (in 0.008675 sec)
[ORB_OCV] 471/500 (recall=0.942) with average error=0.873322
[ORB_OCV] average size ratio between matched points: 0.882831
[ORB_OCV] average angle difference between matched points: 32.7295 degrees
[ORB_OCV] average descriptor distance between matched points: 68.9915 (random distance: 123.987) => differentiability=0.55644
[SIFTOCV] Points detected: 453 -> 373 (in 0.07788 sec)
[SIFTOCV] 318/453 (recall=0.701987) with average error=0.961622
[SIFTOCV] average size ratio between matched points: 0.958296
[SIFTOCV] average angle difference between matched points: 6.75176 degrees
[SIFTOCV] average descriptor distance between matched points: 241.741 (random distance: 528.552) => differentiability=0.457364
[SIFT_MY] Points detected: 424 -> 358 (in 0.155212 sec)
[SIFT_MY] 298/424 (recall=0.70283) with average error=1.02689
[SIFT_MY] average size ratio between matched points: 1.0085
[SIFT_MY] average angle difference between matched points: 4.32864 degrees
[SIFT_MY] average descriptor distance between matched points: 0.492526 (random distance: 1.03597) => differentiability=0.475427
[       OK ] SIFT.Rotate30Scale75 (313 ms)
[ RUN      ] SIFT.HerzJesu19RotateM40
[ORB_OCV] Points detected: 500 -> 500 (in 0.090414 sec)
[ORB_OCV] 494/500 (recall=0.988) with average error=1.25431
[ORB_OCV] average size ratio between matched points: 1.00708
[ORB_OCV] average angle difference between matched points: -36.7101 degrees
[ORB_OCV] average descriptor distance between matched points: 48.3603 (random distance: 121.69) => differentiability=0.397405
[SIFTOCV] Points detected: 500 -> 500 (in 2.84429 sec)
[SIFTOCV] 377/435 (recall=0.866667) with average error=2.85298
[SIFTOCV] average size ratio between matched points: 1.00886
[SIFTOCV] average angle difference between matched points: -16.179 degrees
[SIFTOCV] average descriptor distance between matched points: 212.589 (random distance: 537.412) => differentiability=0.395579
[SIFT_MY] Points detected: 449 -> 476 (in 2.69888 sec)
[SIFT_MY] 367/426 (recall=0.861502) with average error=3.05092
[SIFT_MY] average size ratio between matched points: 1.01553
[SIFT_MY] average angle difference between matched points: -18.4285 degrees
[SIFT_MY] average descriptor distance between matched points: 0.425653 (random distance: 1.03998) => differentiability=0.409291
[       OK ] SIFT.HerzJesu19RotateM40 (7451 ms)
[ RUN      ] SIFT.DetectionSmokeTest
upscaled image from 768x1024 to 1536x2048
new octave base size: 768
new octave base size: 384
new octave base size: 192
new octave base size: 96
new octave base size: 48
new octave base size: 24
new octave base size: 12
saving octave 0
saving octave 1
saving octave 2
saving octave 3
saving octave 4
saving octave 5
saving octave 6
saving octave 7
saving octave 0
saving octave 1
saving octave 2
saving octave 3
saving octave 4
saving octave 5
saving octave 6
saving octave 7
octave 0: 2979 keypoints so far
octave 1: 3842 keypoints so far
octave 2: 4001 keypoints so far
octave 3: 4032 keypoints so far
octave 4: 4056 keypoints so far
octave 5: 4063 keypoints so far
octave 6: 4065 keypoints so far
octave 7: 4065 keypoints so far
total keypoints: 4065
orientations: 4065 -> 4844 keypoints
descriptors: 4844 -> 4754 keypoints (some discarded due to border)
[       OK ] SIFT.DetectionSmokeTest (3176 ms)
[ RUN      ] SIFT.DetectionDescriptionSteps
loaded image of size: [384 x 512]
[  CHECK  ] buildOctaves: matched reference step1_octaves.yml.gz
[  CHECK  ] buildDoG: matched reference step2_dog.yml.gz
[  MATCH  ] findScaleSpaceExtrema: 191/191 matched (100%), ref count=191
detected n keypoints: 191
[  MATCH  ] selectTopKeypoints_1: 191/191 matched (100%), ref count=191
selected n keypoints: 191
[  MATCH  ] computeOrientations: 202/202 matched (100%), ref count=202
oriented n keypoints: 202
[  MATCH  ] selectTopKeypoints_2: 202/202 matched (100%), ref count=202
selected n keypoints: 202
[  MATCH  ] computeDescriptors: 182/182 matched (100%), ref count=182 [with descriptors]
described n keypoints: 182
[       OK ] SIFT.DetectionDescriptionSteps (911 ms)
[ RUN      ] SIFT.PairMatching
image sizes: [1536 x 2048], [1536 x 2048]
matching using opencv orb...
N keypoints: left 10000, right 10000
Good matches:       352
Inlier matches:     242
matching using opencv sift...
N keypoints: left 7288, right 6398
Good matches:       1285
Inlier matches:     1172
matching using my sift...
N keypoints: left 7241, right 6277
Good matches:       1179
Inlier matches:     1014
Final score: 1014
[       OK ] SIFT.PairMatching (6400 ms)
[----------] 25 tests from SIFT (24835 ms total)

[----------] Global test environment tear-down
[==========] 25 tests from 1 test suite ran. (24835 ms total)
[  PASSED  ] 25 tests.

UPD: добавил логи с запуска

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