Task04 Максим Федоров ИТМО#151
Closed
MartinezGitHub wants to merge 2 commits into
Closed
Conversation
Contributor
|
задача зачтена, 8/10 баллов |
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.
Перечислите идеи и коротко обозначьте мысли которые у вас возникали по мере выполнения задания, в частности попробуйте ответить на вопросы:
Прямая не совпадает из-за неоднозначности масштаба параметров. При пост-обработке нужно нормализовать параметры перед сравнением. Формулировкой: задать прямую единичной нормалью и расстоянием до начала координат.
Проверить можно round-trip: calibration -> params -> calibration, значения должны совпасть в пределах погрешности. При двух вызовах runBA() подряд второй почти не должен менять inliers/MSE и параметры, потому что после первого BA решение уже близко к оптимуму.
saharov32: получилось 32 кадра. herzjesu25: стабильно получилось 21 кадр, 25 не прошло по качеству инлаеров.
Нет. project добавляет радиальную дисторсию по формуле, а unproject убирает ее приближенно, итерациями. Поэтому это не строго зеркальные операции.
Потому что f измеряется в пикселях. При уменьшении картинки в downscale раз все пиксельные координаты масштабируются линейно, значит f / downscale
Имеет, если вместе еще согласованно сдвинем камеры и точки. Loss не изменится, потому что относительная геометрия и проекции останутся теми же.
Можно зафиксировать одинаковую база для всех реконструкций. Для этого зафиксируем положение первой камеры, положение второй камеры и внутренние параметры камеры. Тогда система координат, масштаб и направление будут одинаковыми, а остальные камеры и 3D-точки будут достраиваться уже относительно этой общей основы.
Github Actions CI
$ ./build/test_sift Running main() from /home/runner/work/PhotogrammetryTasks2026/PhotogrammetryTasks2026/libs/3rdparty/libgtest/googletest/src/gtest_main.cc [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from SFM [ RUN ] SFM.ReconstructNViews 32 images detecting points... matching points... 0% - Cameras 0-1 (IMG_3023.JPG-IMG_3024.JPG): 1159 matches 1% - Cameras 0-2 (IMG_3023.JPG-IMG_3025.JPG): 442 matches 1% - Cameras 0-3 (IMG_3023.JPG-IMG_3026.JPG): 148 matches 1% - Cameras 0-4 (IMG_3023.JPG-IMG_3027.JPG): 53 matches 2% - Cameras 8-3 (IMG_3031.JPG-IMG_3026.JPG): 21 matches 2% - Cameras 8-4 (IMG_3031.JPG-IMG_3027.JPG): 182 matches 2% - Cameras 8-5 (IMG_3031.JPG-IMG_3028.JPG): 361 matches 3% - Cameras 8-6 (IMG_3031.JPG-IMG_3029.JPG): 876 matches 3% - Cameras 8-7 (IMG_3031.JPG-IMG_3030.JPG): 1254 matches 4% - Cameras 8-9 (IMG_3031.JPG-IMG_3032.JPG): 1556 matches 4% - Cameras 8-10 (IMG_3031.JPG-IMG_3033.JPG): 661 matches 4% - Cameras 0-11 (IMG_3023.JPG-IMG_3034.JPG): 19 matches 4% - Cameras 8-11 (IMG_3031.JPG-IMG_3034.JPG): 191 matches 5% - Cameras 16-11 (IMG_3039.JPG-IMG_3034.JPG): 61 matches 5% - Cameras 16-12 (IMG_3039.JPG-IMG_3035.JPG): 171 matches 6% - Cameras 0-15 (IMG_3023.JPG-IMG_3038.JPG): 2 matches 6% - Cameras 16-13 (IMG_3039.JPG-IMG_3036.JPG): 367 matches 6% - Cameras 16-14 (IMG_3039.JPG-IMG_3037.JPG): 816 matches 7% - Cameras 16-15 (IMG_3039.JPG-IMG_3038.JPG): 1308 matches 7% - Cameras 16-17 (IMG_3039.JPG-IMG_3040.JPG): 1594 matches 7% - Cameras 24-19 (IMG_3047.JPG-IMG_3042.JPG): 14 matches 8% - Cameras 16-18 (IMG_3039.JPG-IMG_3041.JPG): 1082 matches 8% - Cameras 24-20 (IMG_3047.JPG-IMG_3043.JPG): 188 matches 8% - Cameras 24-21 (IMG_3047.JPG-IMG_3044.JPG): 401 matches 8% - Cameras 16-19 (IMG_3039.JPG-IMG_3042.JPG): 332 matches 8% - Cameras 24-22 (IMG_3047.JPG-IMG_3045.JPG): 992 matches 9% - Cameras 24-23 (IMG_3047.JPG-IMG_3046.JPG): 1327 matches 9% - Cameras 16-20 (IMG_3039.JPG-IMG_3043.JPG): 51 matches 9% - Cameras 24-25 (IMG_3047.JPG-IMG_3048.JPG): 1327 matches 10% - Cameras 24-26 (IMG_3047.JPG-IMG_3049.JPG): 688 matches 10% - Cameras 24-27 (IMG_3047.JPG-IMG_3050.JPG): 324 matches 10% - Cameras 0-28 (IMG_3023.JPG-IMG_3051.JPG): 515 matches 10% - Cameras 24-28 (IMG_3047.JPG-IMG_3051.JPG): 94 matches 11% - Cameras 0-29 (IMG_3023.JPG-IMG_3052.JPG): 917 matches 11% - Cameras 0-30 (IMG_3023.JPG-IMG_3053.JPG): 2339 matches 11% - Cameras 0-31 (IMG_3023.JPG-IMG_3054.JPG): 1154 matches Camera #15 center: [0.987989, 0.617716, 7.91738] -> [0.990277, 0.613161, 7.92495] Camera #16 center: [1.78431, 0.592042, 7.65275] -> [1.78571, 0.587455, 7.65913] Camera #17 center: [2.49161, 0.536696, 7.13957] -> [2.49125, 0.531835, 7.14599] Camera #18 center: [3.0286, 0.49521, 6.51877] -> [3.02781, 0.489596, 6.52512] Camera #19 center: [3.53441, 0.466637, 5.91194] -> [3.53365, 0.459827, 5.91828] Camera #20 center: [4.04491, 0.418773, 5.28453] -> [4.04355, 0.412198, 5.29109] Camera #21 center: [4.26192, 0.355476, 4.50284] -> [4.26117, 0.347357, 4.5102] Camera #22 center: [4.32396, 0.278279, 3.73238] -> [4.32385, 0.269584, 3.74124] Camera #23 center: [4.16915, 0.215631, 3.0554] -> [4.17074, 0.206501, 3.06717] Camera #24 center: [3.94543, 0.158051, 2.38908] -> [3.94885, 0.147734, 2.40017] Camera #25 center: [3.51594, 0.130741, 1.82273] -> [3.5219, 0.113467, 1.83136] Camera #26 center: [2.99871, 0.0559965, 1.23348] -> [2.99894, 0.0482453, 1.23685] Camera #27 center: [2.3998, 0.0328211, 0.777164] -> [2.39718, 0.0344304, 0.781755] Camera #28 center: [1.71966, 0.00839668, 0.328534] -> [1.7173, 0.0102642, 0.334709] Camera #29 center: [0.925998, 0.00268695, 0.0537546] -> [0.926047, 0.00478797, 0.0584792] Camera #30 center: [0.164595, -4.82072e-06, -0.0985708] -> [0.16474, 0.00304898, -0.0913163] Camera #31 center: [-0.629122, -0.0046346, -0.080229] -> [-0.636722, -0.00258494, -0.068121] After BA tie poits: 46% old + 2% new = 48% total outliers After BA projections: 63% inliers with MSE=0.119615 Camera #0 projections: 62% inliers (1908/3085) with MSE=0.387171 Camera #1 projections: 76% inliers (1957/2561) with MSE=0.357985 Camera #2 projections: 71% inliers (1862/2616) with MSE=0.18199 Camera #3 projections: 61% inliers (1706/2792) with MSE=0.159805 Camera #4 projections: 57% inliers (1844/3262) with MSE=0.146991 Camera #5 projections: 53% inliers (1726/3257) with MSE=0.113392 Camera #6 projections: 59% inliers (2103/3561) with MSE=0.10918 Camera #7 projections: 66% inliers (2025/3059) with MSE=0.0828653 Camera #8 projections: 61% inliers (1978/3239) with MSE=0.0790137 Camera #9 projections: 59% inliers (1988/3384) with MSE=0.0703303 Camera #10 projections: 58% inliers (1911/3287) with MSE=0.0685754 Camera #11 projections: 52% inliers (1572/3026) with MSE=0.117103 Camera #12 projections: 39% inliers (1008/2554) with MSE=0.0980919 Camera #13 projections: 48% inliers (1158/2389) with MSE=0.0641034 Camera #14 projections: 61% inliers (1428/2344) with MSE=0.0611677 Camera #15 projections: 52% inliers (1688/3254) with MSE=0.057231 Camera #16 projections: 49% inliers (1905/3891) with MSE=0.0636306 Camera #17 projections: 45% inliers (1896/4176) with MSE=0.053923 Camera #18 projections: 50% inliers (1711/3432) with MSE=0.0784245 Camera #19 projections: 61% inliers (1656/2706) with MSE=0.085134 Camera #20 projections: 64% inliers (1274/1976) with MSE=0.100009 Camera #21 projections: 61% inliers (1112/1815) with MSE=0.0817114 Camera #22 projections: 55% inliers (1284/2327) with MSE=0.0811487 Camera #23 projections: 54% inliers (1532/2847) with MSE=0.0725714 Camera #24 projections: 61% inliers (1929/3137) with MSE=0.0580213 Camera #25 projections: 72% inliers (2142/2994) with MSE=0.0529997 Camera #26 projections: 82% inliers (2224/2698) with MSE=0.0594389 Camera #27 projections: 85% inliers (2201/2586) with MSE=0.0733555 Camera #28 projections: 85% inliers (2145/2529) with MSE=0.155817 Camera #29 projections: 88% inliers (2431/2766) with MSE=0.215318 Camera #30 projections: 77% inliers (3628/4720) with MSE=0.147795 Camera #31 projections: 94% inliers (4132/4404) with MSE=0.139323 [ OK ] SFM.ReconstructNViews (199159 ms) [----------] 1 test from SFM (199159 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (199159 ms total) [ PASSED ] 1 test.