use gtsam.gtsfm namespace for new API
parent
7dee1af5b4
commit
f9971f5049
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
|
namespace gtsfm {
|
||||||
|
|
||||||
typedef DSFMap<IndexPair> DSFMapIndexPair;
|
typedef DSFMap<IndexPair> DSFMapIndexPair;
|
||||||
typedef Eigen::MatrixX2i CorrespondenceIndices; // N x 2 array
|
typedef Eigen::MatrixX2i CorrespondenceIndices; // N x 2 array
|
||||||
|
|
||||||
|
@ -54,7 +56,7 @@ struct Keypoints {
|
||||||
/// Optional confidences/responses for each detection, of shape N.
|
/// Optional confidences/responses for each detection, of shape N.
|
||||||
boost::optional<gtsam::Vector> responses;
|
boost::optional<gtsam::Vector> responses;
|
||||||
|
|
||||||
Keypoints(const gtsam::KeypointCoordinates& coordinates): coordinates(coordinates) {}; // boost::none
|
Keypoints(const gtsam::gtsfm::KeypointCoordinates& coordinates): coordinates(coordinates) {}; // boost::none
|
||||||
};
|
};
|
||||||
|
|
||||||
using KeypointsVector = std::vector<Keypoints>;
|
using KeypointsVector = std::vector<Keypoints>;
|
||||||
|
@ -119,7 +121,7 @@ class SfmTrack2d {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
using SfmTrack2dVector = std::vector<gtsam::SfmTrack2d>;
|
using SfmTrack2dVector = std::vector<gtsam::gtsfm::SfmTrack2d>;
|
||||||
using NamedSfmMeasurementVector = std::vector<NamedSfmMeasurement>;
|
using NamedSfmMeasurementVector = std::vector<NamedSfmMeasurement>;
|
||||||
|
|
||||||
|
|
||||||
|
@ -216,5 +218,7 @@ class DsfTrackGenerator {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
}///\namespace gtsfm
|
||||||
|
|
||||||
} // namespace gtsam
|
} // namespace gtsam
|
||||||
|
|
||||||
|
|
|
@ -4,34 +4,36 @@
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
|
namespace gtsfm {
|
||||||
|
|
||||||
#include <gtsam/sfm/DsfTrackGenerator.h>
|
#include <gtsam/sfm/DsfTrackGenerator.h>
|
||||||
|
|
||||||
class MatchIndicesMap {
|
class MatchIndicesMap {
|
||||||
MatchIndicesMap();
|
MatchIndicesMap();
|
||||||
MatchIndicesMap(const gtsam::MatchIndicesMap& other);
|
MatchIndicesMap(const gtsam::gtsfm::MatchIndicesMap& other);
|
||||||
|
|
||||||
size_t size() const;
|
size_t size() const;
|
||||||
bool empty() const;
|
bool empty() const;
|
||||||
void clear();
|
void clear();
|
||||||
gtsam::CorrespondenceIndices at(const pair<size_t, size_t>& keypair) const;
|
gtsam::gtsfm::CorrespondenceIndices at(const pair<size_t, size_t>& keypair) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class Keypoints
|
class Keypoints
|
||||||
{
|
{
|
||||||
Keypoints(const gtsam::KeypointCoordinates& coordinates);
|
Keypoints(const gtsam::gtsfm::KeypointCoordinates& coordinates);
|
||||||
gtsam::KeypointCoordinates coordinates;
|
gtsam::gtsfm::KeypointCoordinates coordinates;
|
||||||
}; // check if this should be a method
|
}; // check if this should be a method
|
||||||
|
|
||||||
|
|
||||||
class KeypointsVector {
|
class KeypointsVector {
|
||||||
KeypointsVector();
|
KeypointsVector();
|
||||||
KeypointsVector(const gtsam::KeypointsVector& other);
|
KeypointsVector(const gtsam::gtsfm::KeypointsVector& other);
|
||||||
void push_back(const gtsam::Keypoints& keypoints);
|
void push_back(const gtsam::gtsfm::Keypoints& keypoints);
|
||||||
size_t size() const;
|
size_t size() const;
|
||||||
bool empty() const;
|
bool empty() const;
|
||||||
void clear();
|
void clear();
|
||||||
gtsam::Keypoints at(const size_t& index) const;
|
gtsam::gtsfm::Keypoints at(const size_t& index) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,44 +46,44 @@ class NamedSfmMeasurement
|
||||||
|
|
||||||
class NamedSfmMeasurementVector {
|
class NamedSfmMeasurementVector {
|
||||||
NamedSfmMeasurementVector();
|
NamedSfmMeasurementVector();
|
||||||
NamedSfmMeasurementVector(const gtsam::NamedSfmMeasurementVector& other);
|
NamedSfmMeasurementVector(const gtsam::gtsfm::NamedSfmMeasurementVector& other);
|
||||||
void push_back(const gtsam::NamedSfmMeasurement& measurement);
|
void push_back(const gtsam::gtsfm::NamedSfmMeasurement& measurement);
|
||||||
size_t size() const;
|
size_t size() const;
|
||||||
bool empty() const;
|
bool empty() const;
|
||||||
void clear();
|
void clear();
|
||||||
gtsam::NamedSfmMeasurement at(const size_t& index) const;
|
gtsam::gtsfm::NamedSfmMeasurement at(const size_t& index) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SfmTrack2d
|
class SfmTrack2d
|
||||||
{
|
{
|
||||||
SfmTrack2d();
|
SfmTrack2d();
|
||||||
SfmTrack2d(std::vector<gtsam::NamedSfmMeasurement> &measurements);
|
SfmTrack2d(std::vector<gtsam::gtsfm::NamedSfmMeasurement> &measurements);
|
||||||
size_t numberMeasurements() const;
|
size_t numberMeasurements() const;
|
||||||
void addMeasurement(const gtsam::NamedSfmMeasurement &m);
|
void addMeasurement(const gtsam::gtsfm::NamedSfmMeasurement &m);
|
||||||
std::vector<gtsam::NamedSfmMeasurement> measurements();
|
std::vector<gtsam::gtsfm::NamedSfmMeasurement> measurements();
|
||||||
gtsam::NamedSfmMeasurement measurement(size_t idx) const;
|
gtsam::gtsfm::NamedSfmMeasurement measurement(size_t idx) const;
|
||||||
bool hasUniqueCameras();
|
bool hasUniqueCameras();
|
||||||
};
|
};
|
||||||
|
|
||||||
class SfmTrack2dVector {
|
class SfmTrack2dVector {
|
||||||
SfmTrack2dVector();
|
SfmTrack2dVector();
|
||||||
SfmTrack2dVector(const gtsam::SfmTrack2dVector& other);
|
SfmTrack2dVector(const gtsam::gtsfm::SfmTrack2dVector& other);
|
||||||
void push_back(const gtsam::SfmTrack2d& track);
|
void push_back(const gtsam::gtsfm::SfmTrack2d& track);
|
||||||
size_t size() const;
|
size_t size() const;
|
||||||
bool empty() const;
|
bool empty() const;
|
||||||
void clear();
|
void clear();
|
||||||
gtsam::SfmTrack2d at(const size_t& index) const;
|
gtsam::gtsfm::SfmTrack2d at(const size_t& index) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class DsfTrackGenerator {
|
class DsfTrackGenerator {
|
||||||
DsfTrackGenerator();
|
DsfTrackGenerator();
|
||||||
const gtsam::SfmTrack2dVector generate_tracks_from_pairwise_matches(
|
const gtsam::gtsfm::SfmTrack2dVector generate_tracks_from_pairwise_matches(
|
||||||
const gtsam::MatchIndicesMap& matches_dict,
|
const gtsam::gtsfm::MatchIndicesMap& matches_dict,
|
||||||
const gtsam::KeypointsVector& keypoints_list,
|
const gtsam::gtsfm::KeypointsVector& keypoints_list,
|
||||||
bool verbose = false);
|
bool verbose = false);
|
||||||
};
|
};
|
||||||
|
}///\namespace gtsfm
|
||||||
|
|
||||||
#include <gtsam/nonlinear/NonlinearFactorGraph.h>
|
#include <gtsam/nonlinear/NonlinearFactorGraph.h>
|
||||||
#include <gtsam/nonlinear/Values.h>
|
#include <gtsam/nonlinear/Values.h>
|
||||||
|
|
|
@ -52,10 +52,10 @@ set(ignore
|
||||||
gtsam::BinaryMeasurementsRot3
|
gtsam::BinaryMeasurementsRot3
|
||||||
gtsam::DiscreteKey
|
gtsam::DiscreteKey
|
||||||
gtsam::KeyPairDoubleMap
|
gtsam::KeyPairDoubleMap
|
||||||
gtsam::MatchIndicesMap
|
gtsam::gtsfm::MatchIndicesMap
|
||||||
gtsam::KeypointsVector
|
gtsam::gtsfm::KeypointsVector
|
||||||
gtsam::SfmTrack2dVector
|
gtsam::gtsfm::SfmTrack2dVector
|
||||||
gtsam::NamedSfmMeasurementVector)
|
gtsam::gtsfm::NamedSfmMeasurementVector)
|
||||||
|
|
||||||
set(interface_headers
|
set(interface_headers
|
||||||
${PROJECT_SOURCE_DIR}/gtsam/gtsam.i
|
${PROJECT_SOURCE_DIR}/gtsam/gtsam.i
|
||||||
|
@ -153,10 +153,10 @@ if(GTSAM_UNSTABLE_BUILD_PYTHON)
|
||||||
gtsam::CameraSetCal3Unified
|
gtsam::CameraSetCal3Unified
|
||||||
gtsam::CameraSetCal3Fisheye
|
gtsam::CameraSetCal3Fisheye
|
||||||
gtsam::KeyPairDoubleMap
|
gtsam::KeyPairDoubleMap
|
||||||
gtsam::MatchIndicesMap
|
gtsam::gtsfm::MatchIndicesMap
|
||||||
gtsam::KeypointsVector
|
gtsam::gtsfm::KeypointsVector
|
||||||
gtsam::SfmTrack2dVector
|
gtsam::gtsfm::SfmTrack2dVector
|
||||||
gtsam::NamedSfmMeasurementVector)
|
gtsam::gtsfm::NamedSfmMeasurementVector)
|
||||||
|
|
||||||
|
|
||||||
pybind_wrap(${GTSAM_PYTHON_UNSTABLE_TARGET} # target
|
pybind_wrap(${GTSAM_PYTHON_UNSTABLE_TARGET} # target
|
||||||
|
|
|
@ -24,7 +24,7 @@ PYBIND11_MAKE_OPAQUE(
|
||||||
PYBIND11_MAKE_OPAQUE(
|
PYBIND11_MAKE_OPAQUE(
|
||||||
std::vector<gtsam::BinaryMeasurement<gtsam::Rot3>>);
|
std::vector<gtsam::BinaryMeasurement<gtsam::Rot3>>);
|
||||||
PYBIND11_MAKE_OPAQUE(
|
PYBIND11_MAKE_OPAQUE(
|
||||||
std::vector<gtsam::Keypoints>);
|
std::vector<gtsam::gtsfm::Keypoints>);
|
||||||
PYBIND11_MAKE_OPAQUE(gtsam::MatchIndicesMap);
|
PYBIND11_MAKE_OPAQUE(gtsam::gtsfm::MatchIndicesMap);
|
||||||
PYBIND11_MAKE_OPAQUE(
|
PYBIND11_MAKE_OPAQUE(
|
||||||
std::vector<gtsam::NamedSfmMeasurement>);
|
std::vector<gtsam::gtsfm::NamedSfmMeasurement>);
|
|
@ -18,29 +18,25 @@ py::bind_vector<std::vector<gtsam::BinaryMeasurement<gtsam::Unit3> > >(
|
||||||
py::bind_vector<std::vector<gtsam::BinaryMeasurement<gtsam::Rot3> > >(
|
py::bind_vector<std::vector<gtsam::BinaryMeasurement<gtsam::Rot3> > >(
|
||||||
m_, "BinaryMeasurementsRot3");
|
m_, "BinaryMeasurementsRot3");
|
||||||
py::bind_map<gtsam::KeyPairDoubleMap>(m_, "KeyPairDoubleMap");
|
py::bind_map<gtsam::KeyPairDoubleMap>(m_, "KeyPairDoubleMap");
|
||||||
py::bind_map<gtsam::MatchIndicesMap>(m_, "MatchIndicesMap");
|
|
||||||
|
|
||||||
py::bind_vector<
|
|
||||||
std::vector<gtsam::Keypoints> >(
|
|
||||||
m_, "KeypointsVector");
|
|
||||||
|
|
||||||
|
|
||||||
py::bind_vector<
|
py::bind_vector<
|
||||||
std::vector<gtsam::SfmTrack> >(
|
std::vector<gtsam::SfmTrack> >(
|
||||||
m_, "SfmTracks");
|
m_, "SfmTracks");
|
||||||
|
|
||||||
py::bind_vector<
|
py::bind_vector<
|
||||||
std::vector<gtsam::SfmCamera> >(
|
std::vector<gtsam::SfmCamera> >(
|
||||||
m_, "SfmCameras");
|
m_, "SfmCameras");
|
||||||
|
|
||||||
py::bind_vector<
|
py::bind_vector<
|
||||||
std::vector<std::pair<size_t, gtsam::Point2>>>(
|
std::vector<std::pair<size_t, gtsam::Point2>>>(
|
||||||
m_, "SfmMeasurementVector"
|
m_, "SfmMeasurementVector"
|
||||||
);
|
);
|
||||||
py::bind_vector<
|
|
||||||
std::vector<gtsam::SfmTrack2d> >(
|
|
||||||
m_, "SfmTrack2dVector");
|
|
||||||
|
|
||||||
py::bind_vector<
|
py::bind_vector<
|
||||||
std::vector<gtsam::NamedSfmMeasurement> >(
|
std::vector<gtsam::gtsfm::SfmTrack2d> >(
|
||||||
|
m_, "SfmTrack2dVector");
|
||||||
|
py::bind_vector<
|
||||||
|
std::vector<gtsam::gtsfm::NamedSfmMeasurement> >(
|
||||||
m_, "NamedSfmMeasurementVector");
|
m_, "NamedSfmMeasurementVector");
|
||||||
|
py::bind_map<gtsam::gtsfm::MatchIndicesMap>(m_, "MatchIndicesMap");
|
||||||
|
|
||||||
|
py::bind_vector<
|
||||||
|
std::vector<gtsam::gtsfm::Keypoints> >(
|
||||||
|
m_, "KeypointsVector");
|
||||||
|
|
|
@ -8,14 +8,11 @@ import unittest
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
import gtsam
|
import gtsam
|
||||||
from gtsam import (
|
from gtsam import IndexPair, KeypointsVector, MatchIndicesMap, NamedSfmMeasurementVector
|
||||||
|
from gtsam.gtsam.gtsfm import (
|
||||||
DsfTrackGenerator,
|
DsfTrackGenerator,
|
||||||
IndexPair,
|
|
||||||
Keypoints,
|
Keypoints,
|
||||||
KeypointsVector,
|
|
||||||
MatchIndicesMap,
|
|
||||||
NamedSfmMeasurement,
|
NamedSfmMeasurement,
|
||||||
NamedSfmMeasurementVector,
|
|
||||||
SfmTrack2d,
|
SfmTrack2d,
|
||||||
)
|
)
|
||||||
from gtsam.utils.test_case import GtsamTestCase
|
from gtsam.utils.test_case import GtsamTestCase
|
||||||
|
|
Loading…
Reference in New Issue