Skip to content

Task01 Петр Маяцкий ИТМО#5

Open
BellatorHonoris07 wants to merge 1 commit intoPhotogrammetryCourse:task01from
BellatorHonoris07:task01
Open

Task01 Петр Маяцкий ИТМО#5
BellatorHonoris07 wants to merge 1 commit intoPhotogrammetryCourse:task01from
BellatorHonoris07:task01

Conversation

@BellatorHonoris07
Copy link

@BellatorHonoris07 BellatorHonoris07 commented Feb 26, 2026

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

Немного влияют шумы и сглаживание гистограммы, так же у точки может быть несколько ориентаций. при ORIENTATION_VOTES_PEAK_RATIO=0.999 вторичные пики почти исчезнут, а значит ориентации будут стабильнее, но число ориентированных точек уменьшится, что ухудшит recall

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

ради интереса попробовал распараллелить локально findScaleSpaceExtrema (по y), computeOrientations и computeDescriptors (по keypoints), замерил на разных количествах потоков, получилось примерно такое:
1 поток 23.189с
2 потока 19.308с
4 потока 17.512с
8, 12, 16, 20 примерно 15 секунд

железо: i9‑13900H, 14 cores / 20 threads

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

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

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

из ожиданий с каждым слоем картинка должна становиться более размытой и терять мелкие детали

визуально должны совпадать последняя картинка n-й октавы и первая n+1-й октавы (там размытия не добавляем, просто уменьшаем картинку в 2 раза)

cравнивать можно по сохранённым структурам/объектам (те же элементы, только в 2 раза меньше)

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

потому что Dog слоев на один меньше чем Gaussian, а для поиска экстремума нужны Dog слой сверху и слой снизу.

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

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

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

Потому что при большем числе слоев соседние сигмы ближе, и разности между ними становятся меньше по амплитуде

  1. Какая строка ответственна за определение сигмы (или что почти то же самое - радиуса) которая задает окрестность по которой определяется ориентация ключевой точки?

float sigma_win = 1.5f * kp_sigma_octave;
int radius = (int)std::round(3.f * sigma_win);

  1. За какой строки вашего кода дескриптор инвариантен к повороту картинки?

float angle_invariant = angle - kp_angle_rad;

Github Actions CI

$ ./build/test_sift
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.011955 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.091644 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 -> 444 (in 0.158462 sec)
[SIFT_MY] 408/424 (recall=0.962264) with average error=0.0432948
[SIFT_MY] average size ratio between matched points: 0.998178
[SIFT_MY] average angle difference between matched points: -6.50968 degrees
[SIFT_MY] average descriptor distance between matched points: 0.157689 (random distance: 1.02166) => differentiability=0.154347
[       OK ] SIFT.MovedTheSameImage (335 ms)
[ RUN      ] SIFT.MovedImageRight
[ORB_OCV] Points detected: 500 -> 500 (in 0.010007 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.077255 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.150166 sec)
[SIFT_MY] 400/422 (recall=0.947867) with average error=0.104457
[SIFT_MY] average size ratio between matched points: 1.01074
[SIFT_MY] average angle difference between matched points: -6.29576 degrees
[SIFT_MY] average descriptor distance between matched points: 0.167925 (random distance: 1.01052) => differentiability=0.166178
[       OK ] SIFT.MovedImageRight (308 ms)
[ RUN      ] SIFT.MovedImageLeft
[ORB_OCV] Points detected: 500 -> 500 (in 0.009964 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.076513 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 -> 421 (in 0.145242 sec)
[SIFT_MY] 389/417 (recall=0.932854) with average error=0.0530114
[SIFT_MY] average size ratio between matched points: 0.99923
[SIFT_MY] average angle difference between matched points: -6.53188 degrees
[SIFT_MY] average descriptor distance between matched points: 0.163137 (random distance: 1.02721) => differentiability=0.158816
[       OK ] SIFT.MovedImageLeft (302 ms)
[ RUN      ] SIFT.MovedImageUpHalfPixel
[ORB_OCV] Points detected: 500 -> 500 (in 0.00992 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.078077 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.151441 sec)
[SIFT_MY] 356/420 (recall=0.847619) with average error=0.394248
[SIFT_MY] average size ratio between matched points: 1.04796
[SIFT_MY] average angle difference between matched points: -7.25751 degrees
[SIFT_MY] average descriptor distance between matched points: 0.284665 (random distance: 1.00476) => differentiability=0.283317
[       OK ] SIFT.MovedImageUpHalfPixel (312 ms)
[ RUN      ] SIFT.MovedImageDownHalfPixel
[ORB_OCV] Points detected: 500 -> 500 (in 0.00988 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.082785 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 -> 469 (in 0.156863 sec)
[SIFT_MY] 351/417 (recall=0.841727) with average error=0.436655
[SIFT_MY] average size ratio between matched points: 1.04849
[SIFT_MY] average angle difference between matched points: -6.91066 degrees
[SIFT_MY] average descriptor distance between matched points: 0.304173 (random distance: 1.01288) => differentiability=0.300305
[       OK ] SIFT.MovedImageDownHalfPixel (321 ms)
[ RUN      ] SIFT.Rotate10
[ORB_OCV] Points detected: 500 -> 500 (in 0.010016 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.082323 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.159743 sec)
[SIFT_MY] 343/424 (recall=0.808962) with average error=0.51019
[SIFT_MY] average size ratio between matched points: 1.04224
[SIFT_MY] average angle difference between matched points: -3.64672 degrees
[SIFT_MY] average descriptor distance between matched points: 0.338007 (random distance: 1.0388) => differentiability=0.325384
[       OK ] SIFT.Rotate10 (324 ms)
[ RUN      ] SIFT.Rotate20
[ORB_OCV] Points detected: 500 -> 500 (in 0.010026 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.083405 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.162193 sec)
[SIFT_MY] 325/417 (recall=0.779376) with average error=0.560271
[SIFT_MY] average size ratio between matched points: 1.04913
[SIFT_MY] average angle difference between matched points: 1.18576 degrees
[SIFT_MY] average descriptor distance between matched points: 0.342877 (random distance: 1.01904) => differentiability=0.336469
[       OK ] SIFT.Rotate20 (328 ms)
[ RUN      ] SIFT.Rotate30
[ORB_OCV] Points detected: 500 -> 500 (in 0.010001 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.078493 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 -> 475 (in 0.154916 sec)
[SIFT_MY] 335/416 (recall=0.805288) with average error=0.612799
[SIFT_MY] average size ratio between matched points: 1.04911
[SIFT_MY] average angle difference between matched points: 10.1993 degrees
[SIFT_MY] average descriptor distance between matched points: 0.338388 (random distance: 1.02678) => differentiability=0.329563
[       OK ] SIFT.Rotate30 (316 ms)
[ RUN      ] SIFT.Rotate40
[ORB_OCV] Points detected: 500 -> 500 (in 0.010055 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.082687 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.160293 sec)
[SIFT_MY] 317/412 (recall=0.769417) with average error=0.719613
[SIFT_MY] average size ratio between matched points: 1.07334
[SIFT_MY] average angle difference between matched points: 17.6078 degrees
[SIFT_MY] average descriptor distance between matched points: 0.347572 (random distance: 1.02692) => differentiability=0.338459
[       OK ] SIFT.Rotate40 (326 ms)
[ RUN      ] SIFT.Rotate45
[ORB_OCV] Points detected: 500 -> 500 (in 0.009995 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.082725 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.162716 sec)
[SIFT_MY] 327/408 (recall=0.801471) with average error=0.70671
[SIFT_MY] average size ratio between matched points: 1.05678
[SIFT_MY] average angle difference between matched points: 25.3112 degrees
[SIFT_MY] average descriptor distance between matched points: 0.341889 (random distance: 1.03285) => differentiability=0.331015
[       OK ] SIFT.Rotate45 (333 ms)
[ RUN      ] SIFT.Rotate90
[ORB_OCV] Points detected: 500 -> 500 (in 0.009852 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.081677 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.153651 sec)
[SIFT_MY] 372/410 (recall=0.907317) with average error=0.599368
[SIFT_MY] average size ratio between matched points: 0.995367
[SIFT_MY] average angle difference between matched points: 71.2032 degrees
[SIFT_MY] average descriptor distance between matched points: 0.186016 (random distance: 0.993765) => differentiability=0.187183
[       OK ] SIFT.Rotate90 (318 ms)
[ RUN      ] SIFT.Scale50
[ORB_OCV] Points detected: 500 -> 500 (in 0.009522 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.07827 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 -> 189 (in 0.124944 sec)
[SIFT_MY] 219/424 (recall=0.516509) with average error=1.91664
[SIFT_MY] average size ratio between matched points: 0.958111
[SIFT_MY] average angle difference between matched points: 2.79007 degrees
[SIFT_MY] average descriptor distance between matched points: 0.707494 (random distance: 1.03374) => differentiability=0.6844
[       OK ] SIFT.Scale50 (284 ms)
[ RUN      ] SIFT.Scale70
[ORB_OCV] Points detected: 500 -> 500 (in 0.009761 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.079877 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.139088 sec)
[SIFT_MY] 291/424 (recall=0.686321) with average error=1.227
[SIFT_MY] average size ratio between matched points: 0.967536
[SIFT_MY] average angle difference between matched points: -5.74811 degrees
[SIFT_MY] average descriptor distance between matched points: 0.540312 (random distance: 1.04333) => differentiability=0.517873
[       OK ] SIFT.Scale70 (301 ms)
[ RUN      ] SIFT.Scale90
[ORB_OCV] Points detected: 500 -> 500 (in 0.010012 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.092514 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 -> 433 (in 0.159569 sec)
[SIFT_MY] 336/424 (recall=0.792453) with average error=0.632149
[SIFT_MY] average size ratio between matched points: 1.00216
[SIFT_MY] average angle difference between matched points: -4.70409 degrees
[SIFT_MY] average descriptor distance between matched points: 0.402 (random distance: 1.01527) => differentiability=0.395955
[       OK ] SIFT.Scale90 (334 ms)
[ RUN      ] SIFT.Scale110
[ORB_OCV] Points detected: 500 -> 500 (in 0.009974 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.077428 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.156244 sec)
[SIFT_MY] 303/421 (recall=0.719715) with average error=0.573357
[SIFT_MY] average size ratio between matched points: 1.15583
[SIFT_MY] average angle difference between matched points: -6.02399 degrees
[SIFT_MY] average descriptor distance between matched points: 0.407131 (random distance: 1.04292) => differentiability=0.390376
[       OK ] SIFT.Scale110 (316 ms)
[ RUN      ] SIFT.Scale130
[ORB_OCV] Points detected: 500 -> 500 (in 0.009685 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.083489 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.168106 sec)
[SIFT_MY] 237/402 (recall=0.589552) with average error=0.510284
[SIFT_MY] average size ratio between matched points: 1.37403
[SIFT_MY] average angle difference between matched points: -3.42532 degrees
[SIFT_MY] average descriptor distance between matched points: 0.358025 (random distance: 1.02827) => differentiability=0.348181
[       OK ] SIFT.Scale130 (333 ms)
[ RUN      ] SIFT.Scale150
[ORB_OCV] Points detected: 500 -> 500 (in 0.01016 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.079792 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.157031 sec)
[SIFT_MY] 191/380 (recall=0.502632) with average error=0.467171
[SIFT_MY] average size ratio between matched points: 1.54937
[SIFT_MY] average angle difference between matched points: -4.92089 degrees
[SIFT_MY] average descriptor distance between matched points: 0.366677 (random distance: 1.02934) => differentiability=0.356225
[       OK ] SIFT.Scale150 (323 ms)
[ RUN      ] SIFT.Scale175
[ORB_OCV] Points detected: 500 -> 500 (in 0.010162 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.079505 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.157389 sec)
[SIFT_MY] 162/351 (recall=0.461538) with average error=0.559396
[SIFT_MY] average size ratio between matched points: 1.78927
[SIFT_MY] average angle difference between matched points: 0.304829 degrees
[SIFT_MY] average descriptor distance between matched points: 0.427499 (random distance: 1.02992) => differentiability=0.415078
[       OK ] SIFT.Scale175 (321 ms)
[ RUN      ] SIFT.Scale200
[ORB_OCV] Points detected: 500 -> 500 (in 0.010132 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.07949 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.160153 sec)
[SIFT_MY] 153/320 (recall=0.478125) with average error=0.5504
[SIFT_MY] average size ratio between matched points: 2.02588
[SIFT_MY] average angle difference between matched points: -12.1815 degrees
[SIFT_MY] average descriptor distance between matched points: 0.316563 (random distance: 1.02903) => differentiability=0.307631
[       OK ] SIFT.Scale200 (325 ms)
[ RUN      ] SIFT.Rotate10Scale90
[ORB_OCV] Points detected: 500 -> 500 (in 0.010003 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.083371 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 -> 429 (in 0.156606 sec)
[SIFT_MY] 325/424 (recall=0.766509) with average error=0.62215
[SIFT_MY] average size ratio between matched points: 0.966587
[SIFT_MY] average angle difference between matched points: -0.901487 degrees
[SIFT_MY] average descriptor distance between matched points: 0.425668 (random distance: 1.02777) => differentiability=0.414167
[       OK ] SIFT.Rotate10Scale90 (322 ms)
[ RUN      ] SIFT.Rotate30Scale75
[ORB_OCV] Points detected: 500 -> 500 (in 0.009876 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.079396 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 -> 356 (in 0.13869 sec)
[SIFT_MY] 298/424 (recall=0.70283) with average error=1.026
[SIFT_MY] average size ratio between matched points: 1.00876
[SIFT_MY] average angle difference between matched points: 4.20252 degrees
[SIFT_MY] average descriptor distance between matched points: 0.49058 (random distance: 1.02269) => differentiability=0.479697
[       OK ] SIFT.Rotate30Scale75 (298 ms)
[ RUN      ] SIFT.HerzJesu19RotateM40
[ORB_OCV] Points detected: 500 -> 500 (in 0.08906 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.88651 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: 448 -> 476 (in 1.95439 sec)
[SIFT_MY] 367/424 (recall=0.865566) with average error=3.05513
[SIFT_MY] average size ratio between matched points: 1.01214
[SIFT_MY] average angle difference between matched points: -19.3438 degrees
[SIFT_MY] average descriptor distance between matched points: 0.42679 (random distance: 1.02444) => differentiability=0.416608
[       OK ] SIFT.HerzJesu19RotateM40 (6737 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: 2972 keypoints so far
octave 1: 3832 keypoints so far
octave 2: 3990 keypoints so far
octave 3: 4021 keypoints so far
octave 4: 4045 keypoints so far
octave 5: 4052 keypoints so far
octave 6: 4054 keypoints so far
octave 7: 4054 keypoints so far
total keypoints: 4054
orientations: 4054 -> 4831 keypoints
descriptors: 4831 -> 4741 keypoints (some discarded due to border)
[       OK ] SIFT.DetectionSmokeTest (3173 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 (903 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 7245, right 6264
Good matches:       1184
Inlier matches:     997
Final score: 997
[       OK ] SIFT.PairMatching (6044 ms)
[----------] 25 tests from SIFT (23537 ms total)

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

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant