Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-04-23Fix compilation on OSX after previous commitSergey Sharybin
EXPECT_EQ wasn't defined in the scope.
2014-04-23Libmv cleanup: move aligned malloc implementation into own fileSergey Sharybin
It was rather stupid having it in brute region tracker, now it is in own file in base library.
2014-04-21Libmv: optimization of PearsonProductMomentCorrelationSergey Sharybin
Pass the arrays by reference rather than by value, should give some percent of speedup. Also don't pass the dimensions to the function but get them from the images themselves. Hopefully this will give some %% of tracker speedup.
2014-04-17Re-bundle Libmv to be sure it's all fineSergey Sharybin
2014-04-17Fix for 771a9dd: libmv build files are automatically generatedSergey Sharybin
This means if one makes change to either SConscript or CMakeLists.txt there he MUST update bundle.sh. Also made it so *.cc files from intern/libmv are matching which would make it easier to add more .cc files there if needed. And one more thing is removing 'simple_pipeline/distortion_models.cc' which doesn't match any of the files.
2014-04-17Lbmv: fix scons compile after ed2ddc9Jens Verwiebe
2014-04-17Fix compilation issue.Antony Riakiotakis
2014-04-17Fix crash when enabling undistorted display in MCESergey Sharybin
2014-04-17Support multiple distortion models, including a new division modelSergey Sharybin
This commit makes it so CameraIntrinsics is no longer hardcoded to use the traditional polynomial radial distortion model. Currently the distortion code has generic logic which is shared between different distortion models, but had no other models until now. This moves everything specific to the polynomial radial distortion to a subclass PolynomialDistortionCameraIntrinsics(), and adds a new division distortion model suitable for cameras such as the GoPro which have much stronger distortion due to their fisheye lens. This also cleans up the internal API of CameraIntrinsics to make it easier to understand and reduces old C-style code. New distortion model is available in the Lens panel of MCE. - Polynomial is the old well-known model - Division is the new one which s intended to deal better with huge distortion. Coefficients of this model works independent from each other and for division model one probably want to have positive values to have a barrel distortion.
2014-04-10...and linking, sorry for that!Antony Riakiotakis
2014-04-10Fix compilationAntony Riakiotakis
2014-04-10Speedup track preview widget for byte imagesSergey Sharybin
This gives a huge speedup gain for cases when you've got rather huge markers on a byte images. Done by skipping IMB_float_from_rect()/IMB_rect_from_float() for such cases. We can sample the buffers without color space conversion.
2014-03-26Fix T39419: Crash when solving camera motionSergey Sharybin
Stupid vector initialization error. Should be in 'a'.
2014-03-25Followup to Ceres changes -- need to update bundling scriptSergey Sharybin
2014-03-25Fix for own commit: mixed up ceres build defines when replacing cmakeLukas Tönne
check with a generalized macro. rBbbfcb0b1e44636b73b8c46f1cb800fa53dda5277
2014-03-25Build file macro for testing unordered_map C++ container support.Lukas Tönne
Using unordered_map and unordered_set C++ container types currently requires careful testing or usage of boost, due to the various confusing C++ version differences in include paths and namespaces. Libmv defines tests for these cases in cmake and scons, such that ceres can use any available implementation, or fall back too std::map/std::set if none can be found. This patch generalizes this buildfile code by providing a Blender macro. * cmake: defines both the variables used by libmv at them moment as well as 2 variables UNORDERED_MAP_INCLUDE_PREFIX and UNORDERED_MAP_NAMESPACE, which can later be used in other C++ parts for convenience. * scons: adds a tool script returning the include prefix and namespace. Libmv checks these to define the appropriate definitions for ceres. Differential Revision: https://developer.blender.org/D425
2014-03-21Attempt to fix compilation error with msvc2013Sergey Sharybin
2014-03-20Follow up to the previous commitSergey Sharybin
Just update to the changelog
2014-03-20Update Libmv to latest upstreamSergey Sharybin
This is mainly a maintaince commit which syncs changes between Blender and Libmv upstream also bringing new GLog version. This GLog version is presumably have better support of MinGW from "the box". This commit is also aimed to make further 3d part libs update easier.
2014-02-27Implement separate BA step for tracks which have constant zero weightSergey Sharybin
This is needed to minimize their reprojection error over the footage. Without this extra step positions of such tracks were calculated by algebraic intersection code only, which doesn't give best precision.
2014-02-27Fix T38844: Crash if weight track = 0Sergey Sharybin
Avoid zero-sized problem when doing euclidean intersection Zero-sized problem might occur when intersecting track with constant zero weight. For such tracks we'll just use result of algebraic intersection. TODO: We probably need to have a separate BA step to adjust positions of tracks with constant zero weight.
2014-02-26Ignore zero weighted markers in keyframe selectionSergey Sharybin
It doesn't make sense to use zero-weighted tracks as a correspondences in keyframe selection. Such tracks are not guaranteed to be tracked accurately because their purpose is to add reference points in 3D space without affecting the solution.
2014-02-25Disable eager-refinement step of region trackingSergey Sharybin
This gives much worse results on mango footage (see 04_2e) so disabling for now for until proper prediction model is landed. The thing is, currently blender sends input coordinates as the guess to region tracker and in case of fast motion such an early out ruins the track.
2014-02-24Followup for 90a86fe: libmv/ceres cmake/scons files are automatically generatedSergey Sharybin
So don't forget to update generator scripts as well.
2014-02-18Fix T38684: cmake OS X build problem when changing deployment target.Brecht Van Lommel
Don't cache these variables as they are not cleared on such changes.
2014-02-06Bye-bye FAST!Sergey Sharybin
FAST detector has been replaced with fancier Harris, so no need to keep FAST library in the sources now.
2014-01-28Bundle latest Libmv from upstreamSergey Sharybin
Currently no functional changes, but we might want to have scoped_array in the future.
2014-01-28Followup to the previous commitSergey Sharybin
Need to take weight into account when drawing per-frame track reprojection curve and when computing per-track average error.
2014-01-28Improvements to weighted tracks behaviorSergey Sharybin
First thing changed by this commit is making it so Euclidean intersection takes track weight into account when solving minimization problem. This behaves the same exact way as it is for BA step. Second thing is related on how average reprojection error is being calculated. It didn't take track weight into account which could confuse users. Now average reprojection error will give the same result as intersection/BA uses during minimization which gives much more predictable behavior. Differential Revision: https://developer.blender.org/D265
2014-01-28Fixes for keyframe selectionSergey Sharybin
Using tracks with constant zero weight used to crash keyframe selection since it was trying to use missing parameter blocks for Jacobian evaluation, Also fixed possible issues with wrong camera block being marked as variable. This could technically happen when having zero weighted tracks. Made it so all camera blocks are marked as variable for now.
2014-01-28Rework detector API and implement Harris detectorSergey Sharybin
Switch the detector API to a single function which accepts a float image and detector options. This makes usage of feature detection more unified across different algorithms. Options structure is pretty much straightforward and contains detector to be used and all the detector-specific settings. Also implemented Harris feature detection algorithm which is not as fast as FAST one but is expected to detect more robust feature points. It is also likely that less features are detected, but better quality than quantity. Blender will now use Harris detector by default, later we'll remove FAST detector.
2014-01-13Ceres: more warnings cleanupSergey Sharybin
2014-01-13Re-bundle new Ceres librarySergey Sharybin
- Fixes some harmless issues (in cases blender doesn't use Ceres yet) - Fixes some compilation warnings
2014-01-09Fix compilation error on NetBSDSergey Sharybin
Original patch is by Jeorg Sonnenberger, thanks!
2014-01-02Code cleanup: remove patch series from libmvSergey Sharybin
Since we're using own libmv branch from git.blender.org we don't need to have local patches for libmv in blender source tree.
2014-01-02Code and style cleanupSergey Sharybin
Mainly fixed some style warnings reported by cpplint. Also changed how camera (un)distortion happens internally by replacing number of channels as a template argument with number as channels passing as function argument. Makes code easier to follow by eliminating loads checks how much channels are used and which argument to pass to the template.
2014-01-01Re-bundle libmv from new upstream repositorySergey Sharybin
No functional changes, just to make sure all the patches are ported nicely and that update scripts works fine.
2014-01-01Update Ceres to the latest upstreamSergey Sharybin
Summary: This brings up much easier termination type usage, which for us means we might use: ceres::Summary::IsSolutionUsable() instead of doing manual funky enum values check. Reviewers: keir Differential Revision: https://developer.blender.org/D153
2013-12-10CMake: report messages as status (else ccmake treats like an error)Campbell Barton
2013-11-30Woo Hoo. First git commit.Alexandr Kuznetsov
Changes for VC2013 Now, I can build Blender with VC2013 with Cycles, Collada, OpenExr,OpenImageIO disabled. Also, you need VC2008 sp1 installed to make old libs compatible.
2013-11-28Code cleanup: spelling fixes and verbosity printsSergey Sharybin
2013-11-28Made collections port compatible with MSVC2008Sergey Sharybin
The issue was caused by the fact that in this version of MSVC unordered_map class is defined in <unordered_map> header file, but this file declares the class int std::tr1 namespace. This confused existing assumption that if there's an existing <unordered_map> file then class is declared in std namespace. Added an extra check to CMake which detects whether it's std or std::tr1 which actually contains class of unordered_map. This might be changed/cleaned in the future, for now committing to our repository to solve compilation error on windows. Details of the patch in upstream can be found there: https://ceres-solver-review.googlesource.com/#/c/4371/
2013-11-28Update Ceres to latest upstream versionSergey Sharybin
- A richer Problem API. - DynamicNumericDiffCostFunction. - Faster ITERATIVE_SCHUR solver. - Faster SCHUR_JACOBI preconditioner. - Faster Jacobian evaluation. - Faster visibility based preconditioning using single linkage clustering. Also re-wrote rules for unordered collections detection, should work on all platforms and compilers now :)
2013-11-20Tweaks and improvements to fundamental/homography estimationSergey Sharybin
- A bit more reasonable name for the estimation option structure and estimation functions. - Get rid of unclear function and parameter tolerance, it wasn't clear at all in which units they are. Now we've got expected_average_symmetric_distance as an early output check and as soon as average symmetric error goes below this threshold refining finishes. This distance is measured in the same units as input points are. It is arguable whether we need callback for this or not, but seems Ceres doesn't have some kind of absolute threshold for function value and function_tolerance behaves different from logic behind expected symmetric error. - Added option to normalize correspondences before estimating the homography in order to increase estimation stability. See R. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, second edition, 2003. https://www.cs.ubc.ca/grads/resources/thesis/May09/Dubrofsky_Elan.pdf
2013-11-08OSX/scons: make MACOSX_SDK_CHECK a local var is sconstruct and remove from ↵Jens Verwiebe
env, also fix a longstanding misuse of MACOSX_SDK_CHECK in ceres, use MACOSX_SDK instead
2013-10-29Eagerly attempt to refine a track before doing a brute searchKeir Mierle
Before the refinement phase of tracking, a brute force SAD search is run across the search area. This works well but is slow; especially if the guess for the track's location is accurate. This patch runs a refinement phase before running a brute force search, hoping that the guessed position (in x2, y2) is close to the best answer. If it is, then no brute search is done. If it is not, then a normal brute force search followed by refinement is done. In some cases this may produce worse tracks than before; the regressions will need investigation. The predictive motion model (to be implemented) will reduce the probability of that happening.
2013-10-28Fix bug where libmv tracking incorrectly succeeds on failureKeir Mierle
Before this patch, if Ceres returned USER_SUCCESS indicating that Ceres was only changing the tracked quad slightly between iterations (indicating convergence), no final correlation check was done. This leads to incorrectly returning that the tracking was successful, when it actually failed.
2013-10-26Weighted tracksSergey Sharybin
Added a weight slider to track which defines how much particular track affects in a final reconstruction. This weight is for sure animateable. Currently it affects on BA step only which in most cases will work just fine. The usecase of this slider is to have it set to 1.0 most of the time where the track is good, but blend it's weight down to 0 when tracker looses the track. This will prevent camera from jump. Tutorial is to be done by Sebastian.
2013-10-15Code cleanup: move function prototype to header fileSergey Sharybin
2013-10-15Get rid of Allow Fallback optionSergey Sharybin
It was rather confusing from the user usage point of view and didn't get so much improvement after new bundle adjuster was added. In the future we might want to switch resection to PPnP algorithm, which could also might be a nice alternative to fallback option.