facebook360_dep
Facebook360 Depth Estimation Pipeline
|
Classes | |
struct | BestMatch |
struct | Keypoint |
struct | Match |
struct | Overlap |
struct | ReprojectionFunctor |
struct | SphericalReprojectionFunctor |
struct | TriangulationFunctor |
Typedefs | |
using | Observations = std::vector< std::pair< const Camera &, Camera::Vector2 > > |
Functions | |
bool | isUniqueCorner (const std::vector< Keypoint > &corners, const int previousCornerCount, const Camera::Vector2 &corner) |
std::vector< Camera::Vector2 > | findScaledCorners (const double scale, const cv::Mat_< uint8_t > &imageFull, const cv::Mat_< uint8_t > &maskFull, const std::string &cameraId) |
cv::Mat_< uint8_t > | generateImageCircleMask (const Camera &camera) |
std::vector< Keypoint > | findCorners (const Camera &camera, const Image &image, const bool useNearest) |
std::map< ImageId, std::vector< Keypoint > > | findAllCorners (const Camera::Rig &rig, const std::vector< Image > &images, const bool useNearest) |
std::vector< Keypoint > | findCorners (const Camera &camera, const cv::Mat_< uint8_t > &image, const bool useNearest) |
std::map< std::string, std::vector< Keypoint > > | findAllCorners (const Camera::Rig &rig, const std::vector< cv::Mat_< uint8_t >> &images, const bool useNearest) |
double | computeZncc (const Keypoint &corner0, const Keypoint &corner1) |
cv::Rect2f | computeBox (const Camera &camera1, const Camera &camera0, const Camera::Vector2 &pixel0, const double depth) |
bool | tooMuchOverlap (const cv::Rect2f &box, const cv::Rect2f &lastBox) |
bool | projectCorner (Image &projection1, const Camera &camera1, const Image &img0, const Camera &camera0, const Keypoint &corner0, const double depth0) |
bool | hasCornerNearCenter (const Image &image) |
bool | getNextDepthSample (int ¤tDepthSample, double ¤tDisparity, cv::Rect2f ¤tBox, const Camera &camera0, const Camera::Vector2 &corner0Coords, const Camera &camera1) |
Overlap | findMatches (const Image &img0, const std::vector< Keypoint > &corners0, const Camera &camera0, const Image &img1, const std::vector< Keypoint > &corners1, const Camera &camera1) |
std::vector< Overlap > | findAllMatches (const Camera::Rig &rig, const std::vector< Image > &images, const std::map< ImageId, std::vector< Keypoint >> &allCorners) |
Overlap | findMatches (const cv::Mat_< uint8_t > &img0, const std::vector< Keypoint > &corners0, const Camera &camera0, const cv::Mat_< uint8_t > &img1, const std::vector< Keypoint > &corners1, const Camera &camera1) |
std::vector< Overlap > | findAllMatches (const Camera::Rig &rig, const std::vector< cv::Mat_< uint8_t >> &images, const std::map< std::string, std::vector< Keypoint >> &allCorners) |
Camera | makeCamera (const Camera &camera, const Camera::Vector3 &position, const Camera::Vector3 &rotation, const Camera::Vector2 &principal, const Camera::Real &focal, const Camera::Distortion &distortion) |
void | cartesianToSpherical (Camera::Real &radius, Camera::Real &theta, Camera::Real &phi, const Camera::Vector3 &cartesianCoords) |
Camera::Vector3 | sphericalToCartesian (const Camera::Real radius, const Camera::Real theta, const Camera::Real phi) |
Camera::Vector3 | averageAtDistance (const Observations &observations, const Camera::Real distance) |
Camera::Vector3 | triangulateNonlinear (const Observations &observations, const bool forceInFront) |
double | calcPercentile (std::vector< double > values, double percentile=0.5) |
Camera::Vector2 | reprojectionError (const ceres::Problem &problem, ceres::ResidualBlockId id) |
std::vector< double > | getReprojectionErrorNorms (const ceres::Problem &problem, const double *parameter=nullptr) |
std::string | getImageFilename (const std::string &image, const std::string &frame, const std::string &imageExt) |
Image | extractSingleChannelImage (const cv::Mat_< cv::Vec3b > &image) |
std::vector< Image > | loadSingleChannelImages (const filesystem::path &dir, const Camera::Rig &rig) |
std::vector< Image > | loadChannels (const Camera::Rig &rig) |
void | processScale (const float scale, const Camera::Rig &rigFull, const std::vector< Image > &images, std::map< ImageId, std::vector< Keypoint >> &allCorners, std::vector< Overlap > &overlaps) |
void | processOctaves (const Camera::Rig &rigFull, const std::vector< Image > &images, std::map< ImageId, std::vector< Keypoint >> &allCorners, std::vector< Overlap > &overlaps) |
using fb360_dep::calibration::Observations = typedef std::vector<std::pair<const Camera&, Camera::Vector2> > |
Camera::Vector3 fb360_dep::calibration::averageAtDistance | ( | const Observations & | observations, |
const Camera::Real | distance | ||
) |
double fb360_dep::calibration::calcPercentile | ( | std::vector< double > | values, |
double | percentile = 0.5 |
||
) |
void fb360_dep::calibration::cartesianToSpherical | ( | Camera::Real & | radius, |
Camera::Real & | theta, | ||
Camera::Real & | phi, | ||
const Camera::Vector3 & | cartesianCoords | ||
) |
cv::Rect2f fb360_dep::calibration::computeBox | ( | const Camera & | camera1, |
const Camera & | camera0, | ||
const Camera::Vector2 & | pixel0, | ||
const double | depth | ||
) |
cv::Mat_< uint8_t > fb360_dep::calibration::extractSingleChannelImage | ( | const cv::Mat_< cv::Vec3b > & | image | ) |
std::map<std::string, std::vector<Keypoint> > fb360_dep::calibration::findAllCorners | ( | const Camera::Rig & | rig, |
const std::vector< cv::Mat_< uint8_t >> & | images, | ||
const bool | useNearest | ||
) |
std::map<ImageId, std::vector<Keypoint> > fb360_dep::calibration::findAllCorners | ( | const Camera::Rig & | rig, |
const std::vector< Image > & | images, | ||
const bool | useNearest | ||
) |
std::vector<Overlap> fb360_dep::calibration::findAllMatches | ( | const Camera::Rig & | rig, |
const std::vector< cv::Mat_< uint8_t >> & | images, | ||
const std::map< std::string, std::vector< Keypoint >> & | allCorners | ||
) |
std::vector<Overlap> fb360_dep::calibration::findAllMatches | ( | const Camera::Rig & | rig, |
const std::vector< Image > & | images, | ||
const std::map< ImageId, std::vector< Keypoint >> & | allCorners | ||
) |
std::vector<Keypoint> fb360_dep::calibration::findCorners | ( | const Camera & | camera, |
const cv::Mat_< uint8_t > & | image, | ||
const bool | useNearest | ||
) |
std::vector<Keypoint> fb360_dep::calibration::findCorners | ( | const Camera & | camera, |
const Image & | image, | ||
const bool | useNearest | ||
) |
Overlap fb360_dep::calibration::findMatches | ( | const cv::Mat_< uint8_t > & | img0, |
const std::vector< Keypoint > & | corners0, | ||
const Camera & | camera0, | ||
const cv::Mat_< uint8_t > & | img1, | ||
const std::vector< Keypoint > & | corners1, | ||
const Camera & | camera1 | ||
) |
Overlap fb360_dep::calibration::findMatches | ( | const Image & | img0, |
const std::vector< Keypoint > & | corners0, | ||
const Camera & | camera0, | ||
const Image & | img1, | ||
const std::vector< Keypoint > & | corners1, | ||
const Camera & | camera1 | ||
) |
std::vector< Camera::Vector2 > fb360_dep::calibration::findScaledCorners | ( | const double | scale, |
const cv::Mat_< uint8_t > & | imageFull, | ||
const cv::Mat_< uint8_t > & | maskFull, | ||
const std::string & | cameraId | ||
) |
cv::Mat_<uint8_t> fb360_dep::calibration::generateImageCircleMask | ( | const Camera & | camera | ) |
|
inline |
bool fb360_dep::calibration::getNextDepthSample | ( | int & | currentDepthSample, |
double & | currentDisparity, | ||
cv::Rect2f & | currentBox, | ||
const Camera & | camera0, | ||
const Camera::Vector2 & | corner0Coords, | ||
const Camera & | camera1 | ||
) |
std::vector<double> fb360_dep::calibration::getReprojectionErrorNorms | ( | const ceres::Problem & | problem, |
const double * | parameter = nullptr |
||
) |
bool fb360_dep::calibration::hasCornerNearCenter | ( | const Image & | image | ) |
bool fb360_dep::calibration::isUniqueCorner | ( | const std::vector< Keypoint > & | corners, |
const int | previousCornerCount, | ||
const Camera::Vector2 & | corner | ||
) |
std::vector< cv::Mat_< uint8_t > > fb360_dep::calibration::loadChannels | ( | const Camera::Rig & | rig | ) |
std::vector<Image> fb360_dep::calibration::loadSingleChannelImages | ( | const filesystem::path & | dir, |
const Camera::Rig & | rig | ||
) |
Camera fb360_dep::calibration::makeCamera | ( | const Camera & | camera, |
const Camera::Vector3 & | position, | ||
const Camera::Vector3 & | rotation, | ||
const Camera::Vector2 & | principal, | ||
const Camera::Real & | focal, | ||
const Camera::Distortion & | distortion | ||
) |
void fb360_dep::calibration::processOctaves | ( | const Camera::Rig & | rigFull, |
const std::vector< Image > & | images, | ||
std::map< ImageId, std::vector< Keypoint >> & | allCorners, | ||
std::vector< Overlap > & | overlaps | ||
) |
void fb360_dep::calibration::processScale | ( | const float | scale, |
const Camera::Rig & | rigFull, | ||
const std::vector< Image > & | images, | ||
std::map< ImageId, std::vector< Keypoint >> & | allCorners, | ||
std::vector< Overlap > & | overlaps | ||
) |
bool fb360_dep::calibration::projectCorner | ( | Image & | projection1, |
const Camera & | camera1, | ||
const Image & | img0, | ||
const Camera & | camera0, | ||
const Keypoint & | corner0, | ||
const double | depth0 | ||
) |
Camera::Vector2 fb360_dep::calibration::reprojectionError | ( | const ceres::Problem & | problem, |
ceres::ResidualBlockId | id | ||
) |
Camera::Vector3 fb360_dep::calibration::sphericalToCartesian | ( | const Camera::Real | radius, |
const Camera::Real | theta, | ||
const Camera::Real | phi | ||
) |
bool fb360_dep::calibration::tooMuchOverlap | ( | const cv::Rect2f & | box, |
const cv::Rect2f & | lastBox | ||
) |
Camera::Vector3 fb360_dep::calibration::triangulateNonlinear | ( | const Observations & | observations, |
const bool | forceInFront | ||
) |