MRPT
1.9.9
|
Classes for computer vision, detectors, features, etc.
Copyright (C) 2010 Hauke Strasdat Imperial College London Copyright (c) 2005-2020, Individual contributors, see AUTHORS file See: https://www.mrpt.org/Authors - All rights reserved.
mrpt_vision_grp
bundle_adjuster.h is part of RobotVision.
RobotVision is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
RobotVision is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Namespaces | |
detail | |
pinhole | |
Functions related to pinhole camera models, point projections, etc. | |
pnp | |
Perspective n Point (PnP) Algorithms toolkit for MRPT mrpt_vision_grp. | |
Classes | |
class | CDifodo |
This abstract class implements a method called "Difodo" to perform Visual odometry with range cameras. More... | |
class | CFeature |
A generic 2D feature from an image, extracted with CFeatureExtraction Each feature may have one or more descriptors (see descriptors), in addition to an image patch. More... | |
class | CFeatureExtraction |
The central class from which images can be analyzed in search of different kinds of interest points and descriptors computed for them. More... | |
class | CFeatureLines |
This class wraps different line detectors and descriptors from OpenCV. More... | |
class | CFeatureList |
A list of visual features, to be used as output by detectors, as input/output by trackers, etc. More... | |
class | CFeatureListKDTree |
Helper class: KD-tree search class for vector<KeyPoint>: Call mark_as_outdated() to force rebuilding the kd-tree after modifying the linked feature list. More... | |
struct | CFeatureTracker_KL |
Track a set of features from old_img -> new_img using sparse optimal flow (classic KL method). More... | |
struct | CGenericFeatureTracker |
A virtual interface for all feature trackers, implementing the part of feature tracking that is common to any specific tracker implementation. More... | |
class | CImagePyramid |
Holds and builds a pyramid of images: starting with an image at full resolution (octave=1), it builds a number of half-resolution images: octave=2 at 1/2 , octave=3 at 1/2^2, octave=N at 1/2^(N-1). More... | |
class | CMatchedFeatureList |
A list of features. More... | |
class | CStereoRectifyMap |
Use this class to rectify stereo images if the same distortion maps are reused over and over again. More... | |
class | CUndistortMap |
Use this class to undistort monocular images if the same distortion map is used over and over again. More... | |
class | CVideoFileWriter |
An output stream which takes a sequence of images and writes a video file in any of a given of compatible formats. More... | |
struct | JacData |
struct | KeypointResponseSorter |
A helper struct to sort keypoints by their response: It can be used with these types: More... | |
struct | lm_stat_t |
struct | TFeatureObservation |
One feature observation entry, used within sequences with TSequenceFeatureObservations. More... | |
struct | TImageCalibData |
Data associated to each image in the calibration process mrpt::vision::checkerBoardCameraCalibration (All the information can be left empty and will be filled up in the calibration method). More... | |
struct | TImageROI |
A structure for defining a ROI within an image. More... | |
struct | TImageStereoCalibData |
Data associated to each stereo image in the calibration process mrpt::vision::checkerBoardCameraCalibration (All the information can be left empty and will be filled up in the calibration method). More... | |
struct | TImageStereoCallbackData |
Params of the optional callback provided by the user. More... | |
struct | TKeyPoint_templ |
Simple structure for image key points. More... | |
struct | TKeyPointList_templ |
A list of image features using the structure TKeyPoint for each feature Users normally will use directly: TKeyPointList, TKeyPointfList. More... | |
struct | TKeyPointTraits |
struct | TKeyPointTraits< TKeyPoint > |
struct | TKeyPointTraits< TKeyPointf > |
struct | TMatchingOptions |
A structure containing options for the matching. More... | |
struct | TMultiResDescMatchOptions |
Struct containing the options when matching multi-resolution SIFT-like descriptors. More... | |
struct | TMultiResDescOptions |
Struct containing the options when computing the multi-resolution SIFT-like descriptors. More... | |
struct | TMultiResMatchingOutput |
Struct containing the output after matching multi-resolution SIFT-like descriptors. More... | |
struct | TRelativeFeaturePos |
One relative feature observation entry, used with some relative bundle-adjustment functions. More... | |
struct | TResidJacobElement |
Data associated to each observation in the Lev-Marq. More... | |
struct | TROI |
A structure for storing a 3D ROI. More... | |
struct | TSequenceFeatureObservations |
A complete sequence of observations of features from different camera frames (poses). More... | |
struct | TSIFTDescriptorsKDTreeIndex |
A kd-tree builder for sets of features with SIFT descriptors. More... | |
struct | TStereoCalibParams |
Input parameters for mrpt::vision::checkerBoardStereoCalibration. More... | |
struct | TStereoCalibResults |
Output results for mrpt::vision::checkerBoardStereoCalibration. More... | |
struct | TStereoSystemParams |
Parameters associated to a stereo system. More... | |
struct | TSURFDescriptorsKDTreeIndex |
A kd-tree builder for sets of features with SURF descriptors. More... | |
Typedefs | |
using | TCalibrationImageList = std::map< std::string, TImageCalibData > |
A list of images, used in checkerBoardCameraCalibration. More... | |
using | TSteroCalibCallbackFunctor = void(*)(const TImageStereoCallbackData &d, void *user_data) |
Prototype of optional user callback function. More... | |
using | TCalibrationStereoImageList = std::vector< TImageStereoCalibData > |
A list of images, used in checkerBoardStereoCalibration. More... | |
using | TKeyPoint = TKeyPoint_templ< mrpt::img::TPixelCoord > |
Simple structure for image key points. More... | |
using | TKeyPointf = TKeyPoint_templ< mrpt::img::TPixelCoordf > |
A version of TKeyPoint with subpixel precision. More... | |
using | TKeyPointList = TKeyPointList_templ< TKeyPoint > |
A list of image features using the structure TKeyPoint for each feature. More... | |
using | TKeyPointfList = TKeyPointList_templ< TKeyPointf > |
A list of image features using the structure TKeyPointf for each feature - capable of KD-tree computations. More... | |
using | CGenericFeatureTrackerAutoPtr = std::unique_ptr< CGenericFeatureTracker > |
using | TFeatureID = uint64_t |
Definition of a feature ID. More... | |
using | TLandmarkID = uint64_t |
Unique IDs for landmarks. More... | |
using | TCameraPoseID = uint64_t |
Unique IDs for camera frames (poses) More... | |
using | TFramePosesMap = std::map< TCameraPoseID, mrpt::poses::CPose3D > |
A list of camera frames (6D poses) indexed by unique IDs. More... | |
using | TFramePosesVec = std::vector< mrpt::poses::CPose3D > |
A list of camera frames (6D poses), which assumes indexes are unique, consecutive IDs. More... | |
using | TLandmarkLocationsMap = std::map< TLandmarkID, mrpt::math::TPoint3D > |
A list of landmarks (3D points) indexed by unique IDs. More... | |
using | TLandmarkLocationsVec = std::vector< mrpt::math::TPoint3D > |
A list of landmarks (3D points), which assumes indexes are unique, consecutive IDs. More... | |
using | TRelativeFeaturePosMap = std::map< mrpt::vision::TFeatureID, TRelativeFeaturePos > |
An index of feature IDs and their relative locations. More... | |
using | TResidualJacobianList = std::vector< mrpt::aligned_std_vector< TResidJacobElement > > |
Enumerations | |
enum | TListIdx { firstList = 0, secondList, bothLists } |
enum | TKeyPointMethod : int8_t { featNotDefined = -1, featKLT = 0, featHarris = 1, featSIFT = 3, featSURF = 4, featBeacon = 5, featFAST = 6, featORB = 10, featAKAZE = 11, featLSD = 12 } |
Types of key point detectors. More... | |
enum | TDescriptorType : uint16_t { descAny = 0, descSIFT = 1, descSURF = 2, descSpinImages = 4, descPolarImages = 8, descLogPolarImages = 16, descORB = 32, descBLD = 64, descLATCH = 128 } |
The bitwise OR combination of values of TDescriptorType are used in CFeatureExtraction::computeDescriptors to indicate which descriptors are to be computed for features. More... | |
enum | TFeatureTrackStatus : uint8_t { status_IDLE = 0, status_TRACKED = 5, status_OOB = 1, status_LOST = 10 } |
Functions | |
bool | checkerBoardCameraCalibration (TCalibrationImageList &images, unsigned int check_size_x, unsigned int check_size_y, double check_squares_length_X_meters, double check_squares_length_Y_meters, mrpt::img::TCamera &out_camera_params, bool normalize_image=true, double *out_MSE=nullptr, bool skipDrawDetectedImgs=false, bool useScaramuzzaAlternativeDetector=false) |
Performs a camera calibration (computation of projection and distortion parameters) from a sequence of captured images of a checkerboard. More... | |
bool | checkerBoardCameraCalibration (TCalibrationImageList &images, unsigned int check_size_x, unsigned int check_size_y, double check_squares_length_X_meters, double check_squares_length_Y_meters, mrpt::math::CMatrixDouble33 &intrinsicParams, std::vector< double > &distortionParams, bool normalize_image=true, double *out_MSE=nullptr, bool skipDrawDetectedImgs=false, bool useScaramuzzaAlternativeDetector=false) |
bool | findChessboardCorners (const mrpt::img::CImage &img, std::vector< mrpt::img::TPixelCoordf > &cornerCoords, unsigned int check_size_x, unsigned int check_size_y, bool normalize_image=true, bool useScaramuzzaMethod=false) |
Look for the corners of a chessboard in the image using one of two different methods. More... | |
void | findMultipleChessboardsCorners (const mrpt::img::CImage &img, std::vector< std::vector< mrpt::img::TPixelCoordf >> &cornerCoords, unsigned int check_size_x, unsigned int check_size_y) |
Look for the corners of one or more chessboard/checkerboards in the image. More... | |
bool | checkerBoardStereoCalibration (TCalibrationStereoImageList &images, const TStereoCalibParams ¶ms, TStereoCalibResults &out_results) |
Optimize the calibration parameters of a stereo camera or a RGB+D (Kinect) camera. More... | |
template<class DESCRIPTOR_KDTREE > | |
size_t | find_descriptor_pairings (std::vector< std::vector< size_t >> *pairings_1_to_multi_2, std::vector< std::pair< size_t, size_t >> *pairings_1_to_2, const CFeatureList &feats_img1, const DESCRIPTOR_KDTREE &feats_img2_kdtree, const mrpt::vision::TDescriptorType descriptor=descSIFT, const size_t max_neighbors=4, const double max_relative_distance=1.2, const typename DESCRIPTOR_KDTREE::kdtree_t::DistanceType max_distance=std::numeric_limits< typename DESCRIPTOR_KDTREE::kdtree_t::DistanceType >::max()) |
Search for pairings between two sets of visual descriptors (for now, only SURF and SIFT features are considered). More... | |
void | openCV_cross_correlation (const mrpt::img::CImage &img, const mrpt::img::CImage &patch_img, size_t &x_max, size_t &y_max, double &max_val, int x_search_ini=-1, int y_search_ini=-1, int x_search_size=-1, int y_search_size=-1) |
Computes the correlation between this image and another one, encapsulating the openCV function cvMatchTemplate This implementation reduced computation time. More... | |
mrpt::math::TPoint3D | pixelTo3D (const mrpt::img::TPixelCoordf &xy, const mrpt::math::CMatrixDouble33 &A) |
Extract a UNITARY 3D vector in the direction of a 3D point, given from its (x,y) pixels coordinates, and the camera intrinsic coordinates. More... | |
mrpt::math::CMatrixDouble33 | buildIntrinsicParamsMatrix (const double focalLengthX, const double focalLengthY, const double centerX, const double centerY) |
Builds the intrinsic parameters matrix A from parameters: More... | |
mrpt::math::CMatrixDouble33 | defaultIntrinsicParamsMatrix (unsigned int camIndex=0, unsigned int resolutionX=320, unsigned int resolutionY=240) |
Returns the stored, default intrinsic params matrix for a given camera: More... | |
double | computeMsd (const mrpt::tfest::TMatchingPairList &list, const poses::CPose3D &Rt) |
Computes the mean squared distance between a set of 3D correspondences ... More... | |
void | cloudsToMatchedList (const mrpt::obs::CObservationVisualLandmarks &cloud1, const mrpt::obs::CObservationVisualLandmarks &cloud2, mrpt::tfest::TMatchingPairList &outList) |
Transform two clouds of 3D points into a matched list of points ... More... | |
float | computeMainOrientation (const mrpt::img::CImage &image, unsigned int x, unsigned int y) |
Computes the main orientation of a set of points with an image (for using in SIFT-based algorithms) More... | |
void | normalizeImage (const mrpt::img::CImage &image, mrpt::img::CImage &nimage) |
Normalizes the brigthness and contrast of an image by setting its mean value to zero and its standard deviation to unit. More... | |
size_t | matchFeatures (const CFeatureList &list1, const CFeatureList &list2, CMatchedFeatureList &matches, const TMatchingOptions &options=TMatchingOptions(), const TStereoSystemParams ¶ms=TStereoSystemParams()) |
Find the matches between two lists of features which must be of the same type. More... | |
void | generateMask (const CMatchedFeatureList &mList, mrpt::math::CMatrixBool &mask1, mrpt::math::CMatrixBool &mask2, int wSize=10) |
Calculates the Sum of Absolutes Differences (range [0,1]) between two patches. More... | |
double | computeSAD (const mrpt::img::CImage &patch1, const mrpt::img::CImage &patch2) |
Calculates the Sum of Absolutes Differences (range [0,1]) between two patches. More... | |
void | addFeaturesToImage (const mrpt::img::CImage &inImg, const CFeatureList &theList, mrpt::img::CImage &outImg) |
Draw rectangles around each of the features on a copy of the input image. More... | |
void | projectMatchedFeatures (const CMatchedFeatureList &matches, const mrpt::img::TStereoCamera &stereo_camera, std::vector< mrpt::math::TPoint3D > &out_points) |
void | projectMatchedFeatures (const CFeatureList &leftList, const CFeatureList &rightList, std::vector< mrpt::math::TPoint3D > &vP3D, const TStereoSystemParams ¶ms=TStereoSystemParams()) |
Computes the 3D position of a set of matched features from their coordinates in the images. More... | |
void | projectMatchedFeature (const CFeature &leftFeat, const CFeature &rightFeat, mrpt::math::TPoint3D &p3D, const TStereoSystemParams ¶ms=TStereoSystemParams()) |
Computes the 3D position of a particular matched feature. More... | |
void | projectMatchedFeatures (CMatchedFeatureList &mfList, const TStereoSystemParams ¶m, mrpt::maps::CLandmarksMap &landmarks) |
Project a list of matched features into the 3D space, using the provided parameters of the stereo system. More... | |
void | projectMatchedFeatures (CFeatureList &leftList, CFeatureList &rightList, const TStereoSystemParams ¶m, mrpt::maps::CLandmarksMap &landmarks) |
Project a pair of feature lists into the 3D space, using the provided options for the stereo system. More... | |
void | StereoObs2BRObs (const mrpt::obs::CObservationStereoImages &inObs, const std::vector< double > &sg, mrpt::obs::CObservationBearingRange &outObs) |
Converts a stereo images observation into a bearing and range observation. More... | |
void | StereoObs2BRObs (const CMatchedFeatureList &inMatches, const mrpt::math::CMatrixDouble33 &intrinsicParams, double baseline, const mrpt::poses::CPose3D &sensorPose, const std::vector< double > &sg, mrpt::obs::CObservationBearingRange &outObs) |
Converts a matched feature list into a bearing and range observation (some of the stereo camera system must be provided). More... | |
void | StereoObs2BRObs (const mrpt::obs::CObservationVisualLandmarks &inObs, mrpt::obs::CObservationBearingRange &outObs) |
Converts a CObservationVisualLandmarks into a bearing and range observation (without any covariances). More... | |
void | computeStereoRectificationMaps (const mrpt::img::TCamera &cam1, const mrpt::img::TCamera &cam2, const mrpt::poses::CPose3D &rightCameraPose, void *outMap1x, void *outMap1y, void *outMap2x, void *outMap2y) |
Computes a pair of x-and-y maps for stereo rectification from a pair of cameras and the relative pose of the second one wrt the first one. More... | |
template<bool POSES_ARE_INVERSE> | |
void | frameJac (const mrpt::img::TCamera &camera_params, const mrpt::poses::CPose3D &cam_pose, const mrpt::math::TPoint3D &landmark_global, mrpt::math::CMatrixFixed< double, 2, 6 > &out_J) |
The projective camera 2x6 Jacobian (wrt the 6D camera pose) More... | |
template<bool POSES_ARE_INVERSE> | |
void | pointJac (const mrpt::img::TCamera &camera_params, const mrpt::poses::CPose3D &cam_pose, const mrpt::math::TPoint3D &landmark_global, mrpt::math::CMatrixFixed< double, 2, 3 > &out_J) |
Jacobians wrt the point. More... | |
template<bool POSES_ARE_INVERSE> | |
void | ba_compute_Jacobians (const TFramePosesVec &frame_poses, const TLandmarkLocationsVec &landmark_points, const mrpt::img::TCamera &camera_params, std::vector< JacData< 6, 3, 2 >> &jac_data_vec, const size_t num_fix_frames, const size_t num_fix_points) |
void | ba_build_gradient_Hessians (const TSequenceFeatureObservations &observations, const std::vector< std::array< double, 2 >> &residual_vec, const std::vector< JacData< 6, 3, 2 >> &jac_data_vec, std::vector< mrpt::math::CMatrixFixed< double, 6, 6 >> &U, std::vector< CVectorFixedDouble< 6 >> &eps_frame, std::vector< mrpt::math::CMatrixFixed< double, 3, 3 >> &V, std::vector< CVectorFixedDouble< 3 >> &eps_point, const size_t num_fix_frames, const size_t num_fix_points, const vector< double > *kernel_1st_deriv) |
Construct the BA linear system. More... | |
double | recompute_errors_and_Jacobians (const lm_stat_t &lm_stat, TResidualJacobianList &res_jac, bool use_robust_kernel, double kernel_param) |
void | build_linear_system (const TResidualJacobianList &res_jac, const std::vector< size_t > &var_indxs, mrpt::math::CVectorDynamic< double > &minus_g, mrpt::math::CMatrixDouble &H) |
void | add_lm_increment (const mrpt::math::CVectorDynamic< double > &eps, const std::vector< size_t > &var_indxs, lm_stat_t &new_lm_stat) |
Bundle-Adjustment Auxiliary methods | |
void | ba_initial_estimate (const mrpt::vision::TSequenceFeatureObservations &observations, const mrpt::img::TCamera &camera_params, mrpt::vision::TFramePosesVec &frame_poses, mrpt::vision::TLandmarkLocationsVec &landmark_points) |
Fills the frames & landmark points maps with an initial gross estimate from the sequence observations, so they can be fed to bundle adjustment methods. More... | |
void | ba_initial_estimate (const mrpt::vision::TSequenceFeatureObservations &observations, const mrpt::img::TCamera &camera_params, mrpt::vision::TFramePosesMap &frame_poses, mrpt::vision::TLandmarkLocationsMap &landmark_points) |
double | reprojectionResiduals (const mrpt::vision::TSequenceFeatureObservations &observations, const mrpt::img::TCamera &camera_params, const mrpt::vision::TFramePosesVec &frame_poses, const mrpt::vision::TLandmarkLocationsVec &landmark_points, std::vector< std::array< double, 2 >> &out_residuals, const bool frame_poses_are_inverse, const bool use_robust_kernel=true, const double kernel_param=3.0, std::vector< double > *out_kernel_1st_deriv=nullptr) |
Compute reprojection error vector (used from within Bundle Adjustment methods, but can be used in general) See mrpt::vision::bundle_adj_full for a description of most parameters. More... | |
double | reprojectionResiduals (const mrpt::vision::TSequenceFeatureObservations &observations, const mrpt::img::TCamera &camera_params, const mrpt::vision::TFramePosesMap &frame_poses, const mrpt::vision::TLandmarkLocationsMap &landmark_points, std::vector< std::array< double, 2 >> &out_residuals, const bool frame_poses_are_inverse, const bool use_robust_kernel=true, const double kernel_param=3.0, std::vector< double > *out_kernel_1st_deriv=nullptr) |
Compute reprojection error vector (used from within Bundle Adjustment methods, but can be used in general) See mrpt::vision::bundle_adj_full for a description of most parameters. More... | |
void | add_se3_deltas_to_frames (const mrpt::vision::TFramePosesVec &frame_poses, const mrpt::math::CVectorDouble &delta, const size_t delta_first_idx, const size_t delta_num_vals, mrpt::vision::TFramePosesVec &new_frame_poses, const size_t num_fix_frames) |
For each pose in the vector frame_poses, adds a "delta" increment to the manifold, with the "delta" given in the se(3) Lie algebra: More... | |
void | add_3d_deltas_to_points (const mrpt::vision::TLandmarkLocationsVec &landmark_points, const mrpt::math::CVectorDouble &delta, const size_t delta_first_idx, const size_t delta_num_vals, mrpt::vision::TLandmarkLocationsVec &new_landmark_points, const size_t num_fix_points) |
For each pose in the vector frame_poses, adds a "delta" increment to the manifold, with the "delta" given in the se(3) Lie algebra: More... | |
Bundle-Adjustment methods | |
using | TBundleAdjustmentFeedbackFunctor = std::function< void(const size_t cur_iter, const double cur_total_sq_error, const size_t max_iters, const mrpt::vision::TSequenceFeatureObservations &input_observations, const mrpt::vision::TFramePosesVec ¤t_frame_estimate, const mrpt::vision::TLandmarkLocationsVec ¤t_landmark_estimate)> |
A functor type for BA methods. More... | |
double | bundle_adj_full (const mrpt::vision::TSequenceFeatureObservations &observations, const mrpt::img::TCamera &camera_params, mrpt::vision::TFramePosesVec &frame_poses, mrpt::vision::TLandmarkLocationsVec &landmark_points, const mrpt::system::TParametersDouble &extra_params=mrpt::system::TParametersDouble(), const mrpt::vision::TBundleAdjustmentFeedbackFunctor user_feedback=mrpt::vision::TBundleAdjustmentFeedbackFunctor()) |
Sparse Levenberg-Marquart solution to bundle adjustment - optimizes all the camera frames & the landmark locations. More... | |
using mrpt::vision::TBundleAdjustmentFeedbackFunctor = typedef std::function<void( const size_t cur_iter, const double cur_total_sq_error, const size_t max_iters, const mrpt::vision::TSequenceFeatureObservations& input_observations, const mrpt::vision::TFramePosesVec& current_frame_estimate, const mrpt::vision::TLandmarkLocationsVec& current_landmark_estimate)> |
A functor type for BA methods.
Definition at line 50 of file bundle_adjustment.h.
using mrpt::vision::TResidualJacobianList = typedef std::vector<mrpt::aligned_std_vector<TResidJacobElement> > |
Definition at line 72 of file chessboard_stereo_camera_calib_internal.h.
Enumerator | |
---|---|
firstList | |
secondList | |
bothLists |
Definition at line 26 of file CFeature.h.
void mrpt::vision::add_lm_increment | ( | const mrpt::math::CVectorDynamic< double > & | eps, |
const std::vector< size_t > & | var_indxs, | ||
lm_stat_t & | new_lm_stat | ||
) |
Definition at line 870 of file chessboard_stereo_camera_calib.cpp.
References eps, mrpt::vision::lm_stat_t::left_cam_params, mrpt::vision::lm_stat_t::left_cam_poses, mrpt::vision::lm_stat_t::right2left_pose, mrpt::vision::lm_stat_t::right_cam_params, and mrpt::vision::lm_stat_t::valid_image_pair_indices.
Referenced by checkerBoardStereoCalibration().
void mrpt::vision::ba_build_gradient_Hessians | ( | const TSequenceFeatureObservations & | observations, |
const std::vector< std::array< double, 2 >> & | residual_vec, | ||
const std::vector< JacData< 6, 3, 2 >> & | jac_data_vec, | ||
std::vector< mrpt::math::CMatrixFixed< double, 6, 6 >> & | U, | ||
std::vector< CVectorFixedDouble< 6 >> & | eps_frame, | ||
std::vector< mrpt::math::CMatrixFixed< double, 3, 3 >> & | V, | ||
std::vector< CVectorFixedDouble< 3 >> & | eps_point, | ||
const size_t | num_fix_frames, | ||
const size_t | num_fix_points, | ||
const vector< double > * | kernel_1st_deriv | ||
) |
Construct the BA linear system.
Set kernel_1st_deriv!=nullptr if using robust kernel.
void mrpt::vision::ba_compute_Jacobians | ( | const TFramePosesVec & | frame_poses, |
const TLandmarkLocationsVec & | landmark_points, | ||
const mrpt::img::TCamera & | camera_params, | ||
std::vector< JacData< 6, 3, 2 >> & | jac_data_vec, | ||
const size_t | num_fix_frames, | ||
const size_t | num_fix_points | ||
) |
Definition at line 206 of file ba_internals.h.
References ASSERT_, ASSERTDEB_, mrpt::vision::JacData< FrameDof, PointDof, ObsDim >::frame_id, mrpt::vision::JacData< FrameDof, PointDof, ObsDim >::J_frame, mrpt::vision::JacData< FrameDof, PointDof, ObsDim >::J_frame_valid, mrpt::vision::JacData< FrameDof, PointDof, ObsDim >::J_point, mrpt::vision::JacData< FrameDof, PointDof, ObsDim >::J_point_valid, MRPT_END, MRPT_START, and mrpt::vision::JacData< FrameDof, PointDof, ObsDim >::point_id.
void mrpt::vision::build_linear_system | ( | const TResidualJacobianList & | res_jac, |
const std::vector< size_t > & | var_indxs, | ||
mrpt::math::CVectorDynamic< double > & | minus_g, | ||
mrpt::math::CMatrixDouble & | H | ||
) |
Definition at line 754 of file chessboard_stereo_camera_calib.cpp.
References mrpt::math::CVectorDynamic< T >::asEigen(), mrpt::math::CMatrixDynamic< T >::asEigen(), mrpt::vision::TResidJacobElement::J, mrpt::system::pause(), mrpt::vision::TResidJacobElement::residual, mrpt::math::MatrixVectorBase< Scalar, Derived >::saveToTextFile(), mrpt::math::MatrixVectorBase< Scalar, Derived >::setZero(), mrpt::math::MatrixVectorBase< T, CVectorDynamic< T > >::Zero(), and mrpt::math::MatrixVectorBase< Scalar, Derived >::Zero().
Referenced by checkerBoardStereoCalibration().
void mrpt::vision::frameJac | ( | const mrpt::img::TCamera & | camera_params, |
const mrpt::poses::CPose3D & | cam_pose, | ||
const mrpt::math::TPoint3D & | landmark_global, | ||
mrpt::math::CMatrixFixed< double, 2, 6 > & | out_J | ||
) |
The projective camera 2x6 Jacobian (wrt the 6D camera pose)
Definition at line 79 of file ba_internals.h.
References ASSERT_, mrpt::poses::CPose3D::composePoint(), mrpt::img::TCamera::fx(), mrpt::img::TCamera::fy(), mrpt::poses::CPose3D::getRotationMatrix(), mrpt::poses::CPose3D::inverseComposePoint(), mrpt::math::CMatrixFixed< T, ROWS, COLS >::loadFromArray(), R, mrpt::square(), mrpt::math::TPoint3D_data< T >::x, mrpt::poses::CPoseOrPoint< DERIVEDCLASS, DIM >::x(), mrpt::math::TPoint3D_data< T >::y, mrpt::poses::CPoseOrPoint< DERIVEDCLASS, DIM >::y(), and mrpt::math::TPoint3D_data< T >::z.
void mrpt::vision::pointJac | ( | const mrpt::img::TCamera & | camera_params, |
const mrpt::poses::CPose3D & | cam_pose, | ||
const mrpt::math::TPoint3D & | landmark_global, | ||
mrpt::math::CMatrixFixed< double, 2, 3 > & | out_J | ||
) |
Jacobians wrt the point.
Definition at line 166 of file ba_internals.h.
References ASSERT_, mrpt::poses::CPose3D::composePoint(), mrpt::img::TCamera::fx(), mrpt::img::TCamera::fy(), mrpt::poses::CPose3D::inverseComposePoint(), mrpt::square(), mrpt::math::UNINITIALIZED_MATRIX, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.
double mrpt::vision::recompute_errors_and_Jacobians | ( | const lm_stat_t & | lm_stat, |
TResidualJacobianList & | res_jac, | ||
bool | use_robust_kernel, | ||
double | kernel_param | ||
) |
Definition at line 1053 of file chessboard_stereo_camera_calib.cpp.
References mrpt::math::CMatrixFixed< T, ROWS, COLS >::asEigen(), mrpt::math::TPose3D::composePoint(), mrpt::math::TPose3D::composePose(), mrpt::img::TCamera::cx(), mrpt::img::TCamera::cy(), mrpt::math::estimateJacobian(), mrpt::img::TCamera::fx(), mrpt::img::TCamera::fy(), mrpt::vision::lm_stat_t::images, mrpt::vision::TResidJacobElement::J, jacob_dA_eps_D_p_deps(), jacob_db_dp(), jacob_deps_D_p_deps(), jacob_dh_db_and_dh_dc(), mrpt::img::TCamera::k1(), mrpt::img::TCamera::k2(), mrpt::img::TCamera::k3(), mrpt::vision::lm_stat_t::left_cam_params, mrpt::vision::lm_stat_t::left_cam_poses, mrpt::vision::lm_stat_t::obj_points, out, mrpt::img::TCamera::p1(), mrpt::img::TCamera::p2(), mrpt::vision::TResidJacobElement::predicted_obs, project_point(), mrpt::vision::TResidJacobElement::residual, mrpt::vision::lm_stat_t::right2left_pose, mrpt::vision::lm_stat_t::right_cam_params, mrpt::math::MatrixVectorBase< T, CMatrixFixed< T, ROWS, COLS > >::setZero(), mrpt::vision::lm_stat_t::valid_image_pair_indices, mrpt::img::TPixelCoordf::x, and mrpt::img::TPixelCoordf::y.
Referenced by checkerBoardStereoCalibration().
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: c7a3bec24 Sun Mar 29 18:33:13 2020 +0200 at dom mar 29 18:50:38 CEST 2020 |