{"action":"created","issue":{"url":"https://api.github.com/repos/opencv/opencv/issues/6933","repository_url":"https://api.github.com/repos/opencv/opencv","labels_url":"https://api.github.com/repos/opencv/opencv/issues/6933/labels{/name}","comments_url":"https://api.github.com/repos/opencv/opencv/issues/6933/comments","events_url":"https://api.github.com/repos/opencv/opencv/issues/6933/events","html_url":"https://github.com/opencv/opencv/pull/6933","id":165980819,"number":6933,"title":"[GSOC] New camera model for stitching pipeline","user":{"login":"hrnr","id":1316311,"avatar_url":"https://avatars.githubusercontent.com/u/1316311?v=3","gravatar_id":"","url":"https://api.github.com/users/hrnr","html_url":"https://github.com/hrnr","followers_url":"https://api.github.com/users/hrnr/followers","following_url":"https://api.github.com/users/hrnr/following{/other_user}","gists_url":"https://api.github.com/users/hrnr/gists{/gist_id}","starred_url":"https://api.github.com/users/hrnr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hrnr/subscriptions","organizations_url":"https://api.github.com/users/hrnr/orgs","repos_url":"https://api.github.com/users/hrnr/repos","events_url":"https://api.github.com/users/hrnr/events{/privacy}","received_events_url":"https://api.github.com/users/hrnr/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/opencv/opencv/labels/GSoC","name":"GSoC","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2016-07-17T15:15:22Z","updated_at":"2016-08-11T14:34:14Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/opencv/opencv/pulls/6933","html_url":"https://github.com/opencv/opencv/pull/6933","diff_url":"https://github.com/opencv/opencv/pull/6933.diff","patch_url":"https://github.com/opencv/opencv/pull/6933.patch"},"body":"**Merge with extra**: https://github.com/opencv/opencv_extra/pull/303\r\n\r\nthis PR contains all work for New camera model for stitching pipeline GSOC project.\r\n\r\n# goals\r\n\r\n## new camera model\r\n- [x]  robust fuctions for affine transform estimations\r\n    - [ ] add support for least median robust method\r\n    - [x] Levenberg–Marquardt algorithm-based refining for affine estimation functions\r\n- [x] tests and docs for ^\r\n- [x] perf tests for ^\r\n- [x] affine matcher\r\n- [x] affine estimator \r\n- [x] affine warper\r\n- [x] affine bundle adjusters\r\n- tests for affine stitching\r\n     - [x] basic affine stitching integration test\r\n     - [x] tests for affine matcher\r\n     - [x] integration tests on real-word scans\r\n     - [x] affine warper tests\r\n     - [x] affine bundle adjusters tests\r\n- [x] integrating with high level API (Stitcher)\r\n- [x] stitching_detailed sample\r\n- [x] stitching simple sample\r\n- [x] stitching tutorial for high level API\r\n- [x] fix existing stitching tests with SURF (SURF was disabled)\r\n\r\n## parallel feature finding\r\n- [x] parallel API in feature finder\r\n- [x] tests (incl. perf tests) \r\n- [x] integrating with Stitcher"},"comment":{"url":"https://api.github.com/repos/opencv/opencv/issues/comments/239179209","html_url":"https://github.com/opencv/opencv/pull/6933#issuecomment-239179209","issue_url":"https://api.github.com/repos/opencv/opencv/issues/6933","id":239179209,"user":{"login":"hrnr","id":1316311,"avatar_url":"https://avatars.githubusercontent.com/u/1316311?v=3","gravatar_id":"","url":"https://api.github.com/users/hrnr","html_url":"https://github.com/hrnr","followers_url":"https://api.github.com/users/hrnr/followers","following_url":"https://api.github.com/users/hrnr/following{/other_user}","gists_url":"https://api.github.com/users/hrnr/gists{/gist_id}","starred_url":"https://api.github.com/users/hrnr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hrnr/subscriptions","organizations_url":"https://api.github.com/users/hrnr/orgs","repos_url":"https://api.github.com/users/hrnr/repos","events_url":"https://api.github.com/users/hrnr/events{/privacy}","received_events_url":"https://api.github.com/users/hrnr/received_events","type":"User","site_admin":false},"created_at":"2016-08-11T14:34:13Z","updated_at":"2016-08-11T14:34:13Z","body":"I have experimented with solving the system in affinePartial callback analytically. In my experiments it surprisingly runs slower than SVD version.\r\n\r\nSVD:\r\n```\r\n\r\ncalib3d_posix_x64_5074d25_20160811-122223.xml\r\n\r\n                     Name of Test                           Number of     Number of   Min     Median  Geometric mean   Mean   Standard deviation\r\n                                                        collected samples outliers                                                              \r\nEstimateAffine2D::EstimateAffine::(100, 0.9)                   38             3     0.15 ms  0.15 ms     0.15 ms     0.15 ms       0.00 ms      \r\nEstimateAffine2D::EstimateAffine::(100, 0.95)                  38             3     0.17 ms  0.18 ms     0.18 ms     0.18 ms       0.00 ms      \r\nEstimateAffine2D::EstimateAffine::(100, 0.99)                  36             2     0.25 ms  0.25 ms     0.25 ms     0.25 ms       0.01 ms      \r\nEstimateAffine2D::EstimateAffine::(100000, 0.9)                10             0     31.49 ms 31.63 ms    31.65 ms    31.65 ms      0.15 ms      \r\nEstimateAffine2D::EstimateAffine::(100000, 0.95)               10             0     34.32 ms 34.40 ms    34.47 ms    34.47 ms      0.25 ms      \r\nEstimateAffine2D::EstimateAffine::(100000, 0.99)               10             0     41.12 ms 41.34 ms    41.63 ms    41.64 ms      0.81 ms      \r\nEstimateAffine2D::EstimateAffine::(5000, 0.9)                  13             1     1.23 ms  1.23 ms     1.24 ms     1.24 ms       0.01 ms      \r\nEstimateAffine2D::EstimateAffine::(5000, 0.95)                 13             1     1.39 ms  1.39 ms     1.40 ms     1.40 ms       0.01 ms      \r\nEstimateAffine2D::EstimateAffine::(5000, 0.99)                 38             3     1.77 ms  1.78 ms     1.81 ms     1.81 ms       0.05 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100, 0.9)            100            8     0.06 ms  0.06 ms     0.06 ms     0.06 ms       0.00 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100, 0.95)           75             6     0.07 ms  0.07 ms     0.07 ms     0.07 ms       0.00 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100, 0.99)           63             5     0.08 ms  0.08 ms     0.09 ms     0.09 ms       0.00 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100000, 0.9)         10             0     17.02 ms 17.07 ms    17.10 ms    17.10 ms      0.08 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100000, 0.95)        10             0     17.59 ms 17.72 ms    17.73 ms    17.73 ms      0.12 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100000, 0.99)        10             0     20.04 ms 20.10 ms    20.19 ms    20.19 ms      0.22 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(5000, 0.9)           13             1     0.50 ms  0.50 ms     0.50 ms     0.50 ms       0.01 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(5000, 0.95)          13             1     0.58 ms  0.58 ms     0.58 ms     0.58 ms       0.01 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(5000, 0.99)          13             1     0.71 ms  0.71 ms     0.72 ms     0.72 ms       0.02 ms      \r\n```\r\nanalytic:\r\n```\r\n\r\ncalib3d_posix_x64_5074d25_20160811-161048.xml\r\n\r\n                     Name of Test                           Number of     Number of   Min     Median  Geometric mean   Mean   Standard deviation\r\n                                                        collected samples outliers                                                              \r\nEstimateAffine2D::EstimateAffine::(100, 0.9)                   63             5     0.15 ms  0.15 ms     0.15 ms     0.15 ms       0.00 ms      \r\nEstimateAffine2D::EstimateAffine::(100, 0.95)                  38             3     0.18 ms  0.18 ms     0.18 ms     0.18 ms       0.00 ms      \r\nEstimateAffine2D::EstimateAffine::(100, 0.99)                  33             2     0.25 ms  0.25 ms     0.26 ms     0.26 ms       0.01 ms      \r\nEstimateAffine2D::EstimateAffine::(100000, 0.9)                10             0     31.36 ms 31.43 ms    31.56 ms    31.56 ms      0.32 ms      \r\nEstimateAffine2D::EstimateAffine::(100000, 0.95)               10             0     34.16 ms 34.27 ms    34.39 ms    34.39 ms      0.35 ms      \r\nEstimateAffine2D::EstimateAffine::(100000, 0.99)               10             0     41.20 ms 41.35 ms    42.09 ms    42.11 ms      1.15 ms      \r\nEstimateAffine2D::EstimateAffine::(5000, 0.9)                  10             0     1.21 ms  1.22 ms     1.23 ms     1.24 ms       0.03 ms      \r\nEstimateAffine2D::EstimateAffine::(5000, 0.95)                 10             0     1.36 ms  1.37 ms     1.38 ms     1.38 ms       0.03 ms      \r\nEstimateAffine2D::EstimateAffine::(5000, 0.99)                 13             1     1.76 ms  1.77 ms     1.79 ms     1.79 ms       0.05 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100, 0.9)            42             3     0.05 ms  0.05 ms     0.05 ms     0.05 ms       0.00 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100, 0.95)           25             2     0.06 ms  0.06 ms     0.06 ms     0.06 ms       0.00 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100, 0.99)           42             3     0.07 ms  0.07 ms     0.07 ms     0.07 ms       0.00 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100000, 0.9)         10             0     17.07 ms 17.15 ms    17.19 ms    17.20 ms      0.15 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100000, 0.95)        10             0     17.71 ms 17.84 ms    17.86 ms    17.86 ms      0.12 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(100000, 0.99)        10             0     20.26 ms 20.34 ms    20.51 ms    20.51 ms      0.46 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(5000, 0.9)           13             1     0.49 ms  0.49 ms     0.50 ms     0.50 ms       0.01 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(5000, 0.95)          11             0     0.57 ms  0.57 ms     0.58 ms     0.58 ms       0.02 ms      \r\nEstimateAffinePartial2D::EstimateAffine::(5000, 0.99)          19             1     0.69 ms  0.70 ms     0.71 ms     0.71 ms       0.02 ms      \r\n```\r\n\r\nyou can find the code at 57bf2d46cd7b2911cd518a2bdbe745cb43f95da8"}}
{"actor":{"display_login":"hrnr"}}