Task01 Иван Осокин ИТМО#7
Open
ivan0sokin wants to merge 3 commits intoPhotogrammetryCourse:task01from
Open
Conversation
added 3 commits
February 24, 2026 00:01
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Перечислите идеи и коротко обозначьте мысли которые у вас возникали по мере выполнения задания, в частности попробуйте ответить на вопросы:
Опытным путём (bruteforce) было получено значение
orient_peak_ratio = 0.8482222, чтобы максимизировать Final score = 1020Отвечая на этот вопрос, можно сказать, что далеко не всегда получается ровно
nfeaturesточек. Чем менее контрастное изображение и меньше разного на нём, тем должно быть меньше точек, потому что блюренное изображение будет ещё более блюренное => меньше точек. А больше точек можно получить, если мы всегда будем раздваивать лучшие направления в бинах (или брать ещё больше направлений).Почему SIFT менее точно угадывает средний угол отклонения? изменяется ли ситуация если выкрутить параметр ORIENTATION_VOTES_PEAK_RATIO=0.999? почему?
Потому что у нас дискретная сетка бинов (36 штук)
С таким параметром
orient_peak_ratio=0.999стало хуже, потому что генерится меньше точек, из которых мы можем выбирать.Надёжно наверное не получится, но в тестах можно отключить вот эту прагму и с помощью утилиты
timeзамерить немного испорченное время (из-за загрузок картинок, вывода и т.д.). У меня оказалось так, что операции ввода-вывода сильно перевесили вычисления и разницы не оказалось (WSL2, 8 cores, 12 threads)Да, так можно, главное чтобы суммарная сигма у i-го слоя была$\sigma_0 \cdot 2^{\frac{i}{s}}$
Можно ожидать, что с увеличением октавы блюр увеличивается монотонно => уменьшение контрастности.
oct[o].layers[i] ~= oct[o - 1].layers[i], сделать cv::resize с какой-нибудь интерполяцией.+1 картинка для DoG
+2 картинки для поиска максимума в scale space
С увеличением номера картинки начинаюют пропадать всё более крупные детали (сначала пропадает трава, потом камень). Также картинка - это разность слоёв в октаве, поэтому мы видим где могут находиться наши потенциальные точки
Потому что нужно, чтобы между соседними слоем были хоть какие-то различия, по которым мы ищем точки.
Вот эта строка.
Кажется, вот эти строки, которые применяют поворот.
Github Actions CI
Run ./build/test_sift ./build/test_sift shell: /usr/bin/bash -e {0} env: BUILD_TYPE: RelWithDebInfo 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.011853 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.099614 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: 414 -> 429 (in 0.183801 sec) [SIFT_MY] 398/414 (recall=0.961353) with average error=0.0462862 [SIFT_MY] average size ratio between matched points: 0.997957 [SIFT_MY] average angle difference between matched points: -4.2734 degrees [SIFT_MY] average descriptor distance between matched points: 0.140782 (random distance: 1.02802) => differentiability=0.136945 [ OK ] SIFT.MovedTheSameImage (384 ms) [ RUN ] SIFT.MovedImageRight [ORB_OCV] Points detected: 500 -> 500 (in 0.010001 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.080503 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: 414 -> 417 (in 0.183145 sec) [SIFT_MY] 389/412 (recall=0.944175) with average error=0.114768 [SIFT_MY] average size ratio between matched points: 1.00805 [SIFT_MY] average angle difference between matched points: -3.09284 degrees [SIFT_MY] average descriptor distance between matched points: 0.148066 (random distance: 1.00461) => differentiability=0.147387 [ OK ] SIFT.MovedImageRight (346 ms) [ RUN ] SIFT.MovedImageLeft [ORB_OCV] Points detected: 500 -> 500 (in 0.010115 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.07854 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: 414 -> 413 (in 0.180705 sec) [SIFT_MY] 381/407 (recall=0.936118) with average error=0.0665172 [SIFT_MY] average size ratio between matched points: 0.998099 [SIFT_MY] average angle difference between matched points: -3.829 degrees [SIFT_MY] average descriptor distance between matched points: 0.140002 (random distance: 1.02492) => differentiability=0.136598 [ OK ] SIFT.MovedImageLeft (340 ms) [ RUN ] SIFT.MovedImageUpHalfPixel [ORB_OCV] Points detected: 500 -> 500 (in 0.009928 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.077389 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: 414 -> 475 (in 0.185899 sec) [SIFT_MY] 349/410 (recall=0.85122) with average error=0.393303 [SIFT_MY] average size ratio between matched points: 1.04714 [SIFT_MY] average angle difference between matched points: -6.06288 degrees [SIFT_MY] average descriptor distance between matched points: 0.266371 (random distance: 1.02345) => differentiability=0.260267 [ OK ] SIFT.MovedImageUpHalfPixel (345 ms) [ RUN ] SIFT.MovedImageDownHalfPixel [ORB_OCV] Points detected: 500 -> 500 (in 0.010042 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.077709 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: 414 -> 462 (in 0.186076 sec) [SIFT_MY] 345/408 (recall=0.845588) with average error=0.441777 [SIFT_MY] average size ratio between matched points: 1.04964 [SIFT_MY] average angle difference between matched points: -5.65292 degrees [SIFT_MY] average descriptor distance between matched points: 0.28637 (random distance: 1.01925) => differentiability=0.280962 [ OK ] SIFT.MovedImageDownHalfPixel (346 ms) [ RUN ] SIFT.Rotate10 [ORB_OCV] Points detected: 500 -> 500 (in 0.010042 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.077965 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: 414 -> 485 (in 0.191754 sec) [SIFT_MY] 340/414 (recall=0.821256) with average error=0.487985 [SIFT_MY] average size ratio between matched points: 1.04189 [SIFT_MY] average angle difference between matched points: -0.112847 degrees [SIFT_MY] average descriptor distance between matched points: 0.307866 (random distance: 1.00846) => differentiability=0.305282 [ OK ] SIFT.Rotate10 (358 ms) [ RUN ] SIFT.Rotate20 [ORB_OCV] Points detected: 500 -> 500 (in 0.010381 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.07748 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: 414 -> 490 (in 0.184006 sec) [SIFT_MY] 325/408 (recall=0.796569) with average error=0.526543 [SIFT_MY] average size ratio between matched points: 1.05759 [SIFT_MY] average angle difference between matched points: 5.51544 degrees [SIFT_MY] average descriptor distance between matched points: 0.321762 (random distance: 1.02681) => differentiability=0.313361 [ OK ] SIFT.Rotate20 (347 ms) [ RUN ] SIFT.Rotate30 [ORB_OCV] Points detected: 500 -> 500 (in 0.010126 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.078147 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: 414 -> 466 (in 0.187647 sec) [SIFT_MY] 327/407 (recall=0.80344) with average error=0.623681 [SIFT_MY] average size ratio between matched points: 1.0497 [SIFT_MY] average angle difference between matched points: 13.1996 degrees [SIFT_MY] average descriptor distance between matched points: 0.324986 (random distance: 1.02482) => differentiability=0.317114 [ OK ] SIFT.Rotate30 (349 ms) [ RUN ] SIFT.Rotate40 [ORB_OCV] Points detected: 500 -> 500 (in 0.010028 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.078165 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: 414 -> 428 (in 0.178058 sec) [SIFT_MY] 309/403 (recall=0.766749) with average error=0.725779 [SIFT_MY] average size ratio between matched points: 1.07466 [SIFT_MY] average angle difference between matched points: 17.8989 degrees [SIFT_MY] average descriptor distance between matched points: 0.33069 (random distance: 1.01252) => differentiability=0.3266 [ OK ] SIFT.Rotate40 (338 ms) [ RUN ] SIFT.Rotate45 [ORB_OCV] Points detected: 500 -> 500 (in 0.01015 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.078554 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: 414 -> 488 (in 0.188341 sec) [SIFT_MY] 324/399 (recall=0.81203) with average error=0.701618 [SIFT_MY] average size ratio between matched points: 1.05884 [SIFT_MY] average angle difference between matched points: 27.5601 degrees [SIFT_MY] average descriptor distance between matched points: 0.333097 (random distance: 1.03038) => differentiability=0.323277 [ OK ] SIFT.Rotate45 (349 ms) [ RUN ] SIFT.Rotate90 [ORB_OCV] Points detected: 500 -> 500 (in 0.01002 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.077747 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: 414 -> 399 (in 0.174222 sec) [SIFT_MY] 365/401 (recall=0.910224) with average error=0.602271 [SIFT_MY] average size ratio between matched points: 0.995224 [SIFT_MY] average angle difference between matched points: 73.411 degrees [SIFT_MY] average descriptor distance between matched points: 0.168574 (random distance: 1.00071) => differentiability=0.168454 [ OK ] SIFT.Rotate90 (333 ms) [ RUN ] SIFT.Scale50 [ORB_OCV] Points detected: 500 -> 500 (in 0.009547 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.076937 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: 414 -> 180 (in 0.143417 sec) [SIFT_MY] 212/414 (recall=0.512077) with average error=1.91222 [SIFT_MY] average size ratio between matched points: 0.957775 [SIFT_MY] average angle difference between matched points: 5.05713 degrees [SIFT_MY] average descriptor distance between matched points: 0.70046 (random distance: 1.01825) => differentiability=0.687906 [ OK ] SIFT.Scale50 (301 ms) [ RUN ] SIFT.Scale70 [ORB_OCV] Points detected: 500 -> 500 (in 0.009753 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.076924 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: 414 -> 309 (in 0.158158 sec) [SIFT_MY] 284/414 (recall=0.68599) with average error=1.20428 [SIFT_MY] average size ratio between matched points: 0.971642 [SIFT_MY] average angle difference between matched points: -5.16408 degrees [SIFT_MY] average descriptor distance between matched points: 0.531173 (random distance: 1.02716) => differentiability=0.51713 [ OK ] SIFT.Scale70 (316 ms) [ RUN ] SIFT.Scale90 [ORB_OCV] Points detected: 500 -> 500 (in 0.009935 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.077114 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: 414 -> 419 (in 0.177076 sec) [SIFT_MY] 329/414 (recall=0.794686) with average error=0.642924 [SIFT_MY] average size ratio between matched points: 1.00131 [SIFT_MY] average angle difference between matched points: -3.87488 degrees [SIFT_MY] average descriptor distance between matched points: 0.388724 (random distance: 1.01024) => differentiability=0.384783 [ OK ] SIFT.Scale90 (334 ms) [ RUN ] SIFT.Scale110 [ORB_OCV] Points detected: 500 -> 500 (in 0.010033 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.077763 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: 414 -> 492 (in 0.182774 sec) [SIFT_MY] 301/411 (recall=0.73236) with average error=0.592599 [SIFT_MY] average size ratio between matched points: 1.15391 [SIFT_MY] average angle difference between matched points: -1.77049 degrees [SIFT_MY] average descriptor distance between matched points: 0.395074 (random distance: 1.02243) => differentiability=0.386408 [ OK ] SIFT.Scale110 (342 ms) [ RUN ] SIFT.Scale130 [ORB_OCV] Points detected: 500 -> 500 (in 0.010036 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.089778 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: 414 -> 478 (in 0.18686 sec) [SIFT_MY] 237/393 (recall=0.603053) with average error=0.516909 [SIFT_MY] average size ratio between matched points: 1.37398 [SIFT_MY] average angle difference between matched points: -5.9517 degrees [SIFT_MY] average descriptor distance between matched points: 0.342088 (random distance: 1.02355) => differentiability=0.334218 [ OK ] SIFT.Scale130 (361 ms) [ RUN ] SIFT.Scale150 [ORB_OCV] Points detected: 500 -> 500 (in 0.010093 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.079226 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: 414 -> 476 (in 0.186847 sec) [SIFT_MY] 189/371 (recall=0.509434) with average error=0.493665 [SIFT_MY] average size ratio between matched points: 1.55206 [SIFT_MY] average angle difference between matched points: -2.26138 degrees [SIFT_MY] average descriptor distance between matched points: 0.352809 (random distance: 1.02186) => differentiability=0.345262 [ OK ] SIFT.Scale150 (351 ms) [ RUN ] SIFT.Scale175 [ORB_OCV] Points detected: 500 -> 500 (in 0.009865 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.079795 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: 414 -> 461 (in 0.188728 sec) [SIFT_MY] 158/342 (recall=0.461988) with average error=0.548336 [SIFT_MY] average size ratio between matched points: 1.79818 [SIFT_MY] average angle difference between matched points: 5.23744 degrees [SIFT_MY] average descriptor distance between matched points: 0.400925 (random distance: 1.01897) => differentiability=0.39346 [ OK ] SIFT.Scale175 (352 ms) [ RUN ] SIFT.Scale200 [ORB_OCV] Points detected: 500 -> 500 (in 0.009962 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.080329 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: 414 -> 471 (in 0.191099 sec) [SIFT_MY] 152/311 (recall=0.488746) with average error=0.552514 [SIFT_MY] average size ratio between matched points: 2.02534 [SIFT_MY] average angle difference between matched points: -11.8717 degrees [SIFT_MY] average descriptor distance between matched points: 0.282793 (random distance: 1.02494) => differentiability=0.275913 [ OK ] SIFT.Scale200 (358 ms) [ RUN ] SIFT.Rotate10Scale90 [ORB_OCV] Points detected: 500 -> 500 (in 0.009683 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.080367 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: 414 -> 416 (in 0.177251 sec) [SIFT_MY] 317/414 (recall=0.7657) with average error=0.623288 [SIFT_MY] average size ratio between matched points: 0.969524 [SIFT_MY] average angle difference between matched points: 3.96746 degrees [SIFT_MY] average descriptor distance between matched points: 0.408741 (random distance: 1.01872) => differentiability=0.401232 [ OK ] SIFT.Rotate10Scale90 (339 ms) [ RUN ] SIFT.Rotate30Scale75 [ORB_OCV] Points detected: 500 -> 500 (in 0.009614 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.077896 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: 414 -> 339 (in 0.165898 sec) [SIFT_MY] 290/414 (recall=0.700483) with average error=1.01315 [SIFT_MY] average size ratio between matched points: 1.01134 [SIFT_MY] average angle difference between matched points: 8.3761 degrees [SIFT_MY] average descriptor distance between matched points: 0.465751 (random distance: 1.03646) => differentiability=0.449367 [ OK ] SIFT.Rotate30Scale75 (325 ms) [ RUN ] SIFT.HerzJesu19RotateM40 [ORB_OCV] Points detected: 500 -> 500 (in 0.088433 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.74447 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: 450 -> 476 (in 2.89098 sec) [SIFT_MY] 368/425 (recall=0.865882) with average error=2.89477 [SIFT_MY] average size ratio between matched points: 1.04643 [SIFT_MY] average angle difference between matched points: -19.1191 degrees [SIFT_MY] average descriptor distance between matched points: 0.391505 (random distance: 1.03374) => differentiability=0.378726 [ OK ] SIFT.HerzJesu19RotateM40 (7543 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 -> 4644 keypoints descriptors: 4644 -> 4560 keypoints (some discarded due to border) [ OK ] SIFT.DetectionSmokeTest (3223 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: 196/196 matched (100%), ref count=202 oriented n keypoints: 196 [ MATCH ] selectTopKeypoints_2: 196/196 matched (100%), ref count=202 selected n keypoints: 196 [ MATCH ] computeDescriptors: 177/177 matched (100%), ref count=182 [with descriptors] described n keypoints: 177 [ OK ] SIFT.DetectionDescriptionSteps (905 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 6917, right 6005 Good matches: 1111 Inlier matches: 1020 Final score: 1020 [ OK ] SIFT.PairMatching (6429 ms) [----------] 25 tests from SIFT (25314 ms total) [----------] Global test environment tear-down [==========] 25 tests from 1 test suite ran. (25314 ms total) [ PASSED ] 25 tests.