You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
I agree to contribute to the project under Apache 2 License.
To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
The PR is proposed to the proper branch
There is a reference to the original bug report and related work
There is accuracy test, performance test and test data in opencv_extra repository, if applicable
Patch to opencv_extra has the same branch name.
The feature is well documented and sample code can be built with the project CMake
Even though by detector scale invariance test for SIFT the constrains had to be relaxed for the test to pass, the change improved other test metrics in SIFT detector/descriptor/scale/rotation invariance tests. Even metrics for detector scale invariance test for SIFT are better after the change for different parameters. See my comment at test_detectors_invariance.cpp for more details.
Note that the scaling of keypoint locations was changed so that is corresponds to homography:
@vicsyl, thank you for the contribution! The change seems reasonable. I wonder, whether this change in $H_{gt}$ will affect implementation of A-SIFT and/or any other non-trivial algorithms (SIFT=>findHomography/findFundamentalMat/...) that are based on SIFT?
The reason will be displayed to describe this comment to others. Learn more.
INTER_LINEAR_EXACT
Main problem here is that we already have declared the "bit-exact" implementation for SIFT.
"Silent" replacing of such implementation with new one is a regression in term of API interface stability.
I believe we should have an option for enabling of fixed version and a warning about the deprecated behavior.
@vicsyl, thank you for the contribution! The change seems reasonable. I wonder, whether this change in Hgt will affect implementation of A-SIFT and/or any other non-trivial algorithms (SIFT=>findHomography/findFundamentalMat/...) that are based on SIFT?
Somehow I cannot reply to this directly. $H_{gt}$ just reflects how the image is transformed by current resize in the test code: resize(image0, image1, Size(), 1./scale, 1./scale, INTER_LINEAR_EXACT);
can be achieved via warpAffine - now present in SIFT but it is also used in ASIFT, so I don't see a problem there. findHomography performs better now as can be seen here:
@vicsyl, the PR has been discussed at today's core meeting. It is almost ready for the merge. 2 things need to be done:
please, add doxygen documentation for the added parameter enable_precise_upscale.
please, reply to @alalek comment regarding the accuracy drop in one of the scale invariance tests: 0.65 => 0.6. If the behavior is expected, just confirm it
@vicsyl, the PR has been discussed at today's core meeting. It is almost ready for the merge. 2 things need to be done:
please, add doxygen documentation for the added parameter enable_precise_upscale.
please, reply to @alalek comment regarding the accuracy drop in one of the scale invariance tests: 0.65 => 0.6. If the behavior is expected, just confirm it
* different interpolation by double image
* fixing scaling mapping
* fixing a test
* added an option to enable previous interpolation
* added doxygen entries for the new parameter
* ASSERT_TRUE -> ASSERT_EQ
* changed log message when using old upscale mode
* different interpolation by double image
* fixing scaling mapping
* fixing a test
* added an option to enable previous interpolation
* added doxygen entries for the new parameter
* ASSERT_TRUE -> ASSERT_EQ
* changed log message when using old upscale mode
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.
Fixing #23123
See also: https://github.com/vicsyl/dog_precision
Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.
Even though by detector scale invariance test for SIFT the constrains had to be relaxed for the test to pass, the change improved other test metrics in SIFT detector/descriptor/scale/rotation invariance tests. Even metrics for detector scale invariance test for SIFT are better after the change for different parameters. See my comment at test_detectors_invariance.cpp for more details.
Note that the scaling of keypoint locations was changed so that is corresponds to homography:
See my comment in test_invariance_utils.hpp.
The performance tests didn't show performance regression: