Blender Git Commits

Blender Git "soc-2013-motion_track" branch commits.

Page: 2 / 3

September 9, 2013, 13:55 (GMT)
Code cleanup: keyframe selection explicitly single-camera

The current keyframe selection algorithm only looks at frames from camera 0 to find two frames with high variance. It's definitely worth looking at algorithms for keyframe selection from multiple cameras - different cameras are likely to have high variance.
September 9, 2013, 10:14 (GMT)
Code cleanup: use const references for input parameters
September 9, 2013, 09:42 (GMT)
Code cleanup: modal solver explicitly single-camera

Non-functional change to the modal solver to explicitly document it as being a single-camera algorithm, working with only camera 0.
September 7, 2013, 14:47 (GMT)
Improved naming of cameras/views

The recent change that distinguished "multicamera reconstruction" from "multiview reconstruction" led to some confusing naming. A EuclideanReconstruction would store EuclideanCameras, which are the position and orientation of a physical camera for a specific image. That is, a EuclideanCamera is a camera at an instance, rather than representing the physical camera itself. This meant that EuclideanCameras had associated cameras, which is clearly confusing. This commit attempts to unify the terminology:

- View - a specific instance of a camera at some orientation and point in space (giving an image of the scene)
- Multiview reconstruction - reconstruction of a scene from multiple views
- Camera - a physical video camera
- Multicamera reconstruction - a form of multiview reconstruction, where the views are associated with some number of video cameras

To this end, EuclideanCamera and ProjectiveCamera have been renamed to EuclideanView and ProjectiveView, as they represent a camera at a specific instance.

Some functions continue to have variables named "camera" where "view" would be more appropriate.
September 5, 2013, 22:59 (GMT)
Modify constraints user interface and usability

I have recently been preparing focal length constraints for committing to trunk but unfortunately missed BCon2, so it'll have to wait until next time. In the meantime, this commit brings the changes that were made according to code reviews and user feedback into my branch. The interface changes include:

- Constraint value inputs are now in a column.
- User interface button names have been simplified.
- The focal length camera property is not forced to fit inside the focal length constraint range. Instead, the focal length is clamped to the range when solving.
- When the constraint is not enabled, the min and max values will adjust to match the focal length camera property. This gives the user an anchor to help understand the meaning of the values.
September 5, 2013, 17:56 (GMT)
Merging from trunk r59849 into soc-2013-motion_track
August 24, 2013, 22:58 (GMT)
Merging from trunk r59488 into soc-2013-motion_track
August 24, 2013, 22:06 (GMT)
Fix compilation with WITH_LIBMV=OFF

Once again, I forgot to update libmv-capi_stub.cc to match the header.
August 23, 2013, 20:38 (GMT)
Fix ignored constraint flag

Incorrect flags were being checked for whether a focal lenght constraint should be applied, causing it to always be applied whenever the focal length was chosen for refinement.
August 23, 2013, 20:11 (GMT)
Fix invalid returned camera intrinsics

libmv provides a way to get the camera intrinsics from a reconstruction, which may be different to the intrinsics passed to the solver if refinement has taken place. My multicamera changes introduced a bug caused by a pointer cast between incompatible types causing the returned intrinsics to have screwed up values. This patch fixes that cast.
August 5, 2013, 23:22 (GMT)
More framework for multicamera reconstruction

All algorithms have been adjusted to take into account multiple cameras and their intrinsics except for the bundle adjustment. This means it will give an incorrect result for multicamera reconstruction at the moment, but single camera reconstruction still functions normally.
August 5, 2013, 01:17 (GMT)
Use multicamera intrinsics to calculate reprojection error

The reprojection error calculation would only take a single CameraIntrinsics and would apply it to all markers. Adjust it to take a vector of CameraIntrinsics and apply the intrinsics corresponding to the marker's associated camera.
August 5, 2013, 00:37 (GMT)
Add correct handling of multicamera intrinsics

One argument to libmv_solve is an array of camera intrinsics options. The code now converts all elements of the array to internal CameraIntrinsics, instead of just the first. The output struct, libmv_Reconstruction, now contains a vector of output camera intrinsics (each element corresponding to a different camera).
August 4, 2013, 23:17 (GMT)
Change from multiview to multicamera terminology

All 3D reconstruction is multiview reconstruction. A better, unambigious term for reconstructing multiple cameras is multicamera reconstruction, so change all references to "views" to "cameras".

Unfortunately, this introduces some confusion in simple_pipeline/reconstruction.h, but I'm currently discussing this with Keir.
August 3, 2013, 10:30 (GMT)
Rename CameraForViewImage to CameraForImage

It is uncommon to refer to an image without a particular view, so shorten the function name for simplicity. If a function is needed that references all views at once, suffixing with AllViews will do.
August 2, 2013, 09:40 (GMT)
Modify Tracks to multiview only

The Tracks class stores Markers that correspond to tracks across different views and images. There's no need to have an interface for both singleview and multiview reconstruction, so remove the single view interface. For now, all algorithms assume view 0, but should instead be passed the view that they should work on.
July 31, 2013, 17:30 (GMT)
Merging from trunk r58769 into soc-2013-motion_track

Mostly to have the cleaned up libmv C API from r58765.
July 31, 2013, 01:10 (GMT)
Modify libmv output types to store multiview reconstructions

The libmv_solve function returns a libmv_Reconstruction which contains a EuclideanReconstruction. This class and its brother, ProjectiveReconstruction, store the results of a reconstruction. To make way for multiview reconstruction, modify these classes to store reconstructed camera poses associated with particular views.

All libmv algorithms have been adjusted to meet the new API, temporarily assuming view 0 everywhere until they have also been multiviewified.
July 28, 2013, 09:36 (GMT)
Fix alignment indentation

Although file is tab indented, split lines should be aligned with spaces.
July 26, 2013, 23:18 (GMT)
Refactor bundle refinement in libmv C API

Instead of having libmv_solveRefineIntrinsics, which creates bundle options from reconstruction options and passes them to the libmv bundle adjuster, have a simpler function that just creates and returns the options. This brings all of the solving logic into libmv_solve.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021