git: 915ef0a2055b - main - graphics/poselib: Minimal solvers for calibrated camera pose estimation
Date: Tue, 10 Dec 2024 09:07:05 UTC
The branch main has been updated by fuz:
URL: https://cgit.FreeBSD.org/ports/commit/?id=915ef0a2055bea37cfb77f2186a8394f16423646
commit 915ef0a2055bea37cfb77f2186a8394f16423646
Author: Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2024-12-09 12:21:50 +0000
Commit: Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2024-12-10 09:03:00 +0000
graphics/poselib: Minimal solvers for calibrated camera pose estimation
PoseLib provides a collection of minimal solvers for camera pose
estimation. The focus is on calibrated absolute pose estimation
problems from different types of correspondences (e.g. point-point,
point-line, line-point, line-line).
The goals of this project are to provide
- Fast and robust implementation of the current state-of-the-art
solvers.
- Consistent calling interface between different solvers.
- Minimize dependencies, both external (currently only Eigen) and
internal. Each solver is (mostly) stand-alone, making it easy
to extract only a specific solver to integrate into other frameworks.
- Robust estimators (based on LO-RANSAC) that just works out-of-the-box
for most cases.
WWW: https://github.com/PoseLib/PoseLib
---
graphics/Makefile | 1 +
graphics/poselib/Makefile | 22 +++++++++++
graphics/poselib/distinfo | 3 ++
graphics/poselib/files/patch-CMakeLists.txt | 15 ++++++++
graphics/poselib/pkg-descr | 15 ++++++++
graphics/poselib/pkg-plist | 59 +++++++++++++++++++++++++++++
6 files changed, 115 insertions(+)
diff --git a/graphics/Makefile b/graphics/Makefile
index 396df96c5b17..c053e5b41ba9 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -855,6 +855,7 @@
SUBDIR += poppler-qt5
SUBDIR += poppler-qt6
SUBDIR += poppler-utils
+ SUBDIR += poselib
SUBDIR += potrace
SUBDIR += povray-meta
SUBDIR += povray37
diff --git a/graphics/poselib/Makefile b/graphics/poselib/Makefile
new file mode 100644
index 000000000000..fb5f45375dc2
--- /dev/null
+++ b/graphics/poselib/Makefile
@@ -0,0 +1,22 @@
+PORTNAME= PoseLib
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.0.4
+CATEGORIES= graphics
+
+MAINTAINER= fuz@FreeBSD.org
+COMMENT= Minimal solvers for calibrated camera pose estimation
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/eigen3.pc:math/eigen3
+
+USES= cmake pkgconfig
+USE_GITHUB= yes
+USE_LDCONFIG= yes
+
+OPTIONS_DEFINE= NATIVE
+NATIVE_CMAKE_BOOL= MARCH_NATIVE
+CMAKE_ON= BUILD_SHARED_LIBS
+
+.include <bsd.port.mk>
diff --git a/graphics/poselib/distinfo b/graphics/poselib/distinfo
new file mode 100644
index 000000000000..ed3c2c5b8bb7
--- /dev/null
+++ b/graphics/poselib/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1733745905
+SHA256 (PoseLib-PoseLib-v2.0.4_GH0.tar.gz) = caa0c1c9b882f6e36b5ced6f781406ed97d4c1f0f61aa31345ebe54633d67c16
+SIZE (PoseLib-PoseLib-v2.0.4_GH0.tar.gz) = 198206
diff --git a/graphics/poselib/files/patch-CMakeLists.txt b/graphics/poselib/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..b1553e6ddad4
--- /dev/null
+++ b/graphics/poselib/files/patch-CMakeLists.txt
@@ -0,0 +1,15 @@
+--- CMakeLists.txt.orig 2024-12-09 12:10:16 UTC
++++ CMakeLists.txt
+@@ -28,10 +28,10 @@ else()
+ # If you change this, make sure to update the corresponding line in the pybind CMakeLists
+ if (MARCH_NATIVE)
+ target_compile_options(${LIBRARY_NAME} PRIVATE
+- -march=native -Wall -Werror -fPIC -Wno-ignored-optimization-argument)
++ -march=native -Wall -fPIC -Wno-ignored-optimization-argument)
+ else()
+ target_compile_options(${LIBRARY_NAME} PRIVATE
+- -Wall -Werror -fPIC)
++ -Wall -fPIC)
+ endif()
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ target_compile_options(${LIBRARY_NAME} PRIVATE
diff --git a/graphics/poselib/pkg-descr b/graphics/poselib/pkg-descr
new file mode 100644
index 000000000000..4461d321a05b
--- /dev/null
+++ b/graphics/poselib/pkg-descr
@@ -0,0 +1,15 @@
+PoseLib provides a collection of minimal solvers for camera pose
+estimation. The focus is on calibrated absolute pose estimation
+problems from different types of correspondences (e.g. point-point,
+point-line, line-point, line-line).
+
+The goals of this project are to provide
+
+ - Fast and robust implementation of the current state-of-the-art
+ solvers.
+ - Consistent calling interface between different solvers.
+ - Minimize dependencies, both external (currently only Eigen) and
+ internal. Each solver is (mostly) stand-alone, making it easy
+ to extract only a specific solver to integrate into other frameworks.
+ - Robust estimators (based on LO-RANSAC) that just works out-of-the-box
+ for most cases.
diff --git a/graphics/poselib/pkg-plist b/graphics/poselib/pkg-plist
new file mode 100644
index 000000000000..c03974dd1287
--- /dev/null
+++ b/graphics/poselib/pkg-plist
@@ -0,0 +1,59 @@
+include/PoseLib/alignment.h
+include/PoseLib/camera_pose.h
+include/PoseLib/misc/colmap_models.h
+include/PoseLib/misc/decompositions.h
+include/PoseLib/misc/essential.h
+include/PoseLib/misc/qep.h
+include/PoseLib/misc/quaternion.h
+include/PoseLib/misc/re3q3.h
+include/PoseLib/misc/sturm.h
+include/PoseLib/misc/univariate.h
+include/PoseLib/poselib.h
+include/PoseLib/robust.h
+include/PoseLib/robust/bundle.h
+include/PoseLib/robust/estimators/absolute_pose.h
+include/PoseLib/robust/estimators/homography.h
+include/PoseLib/robust/estimators/hybrid_pose.h
+include/PoseLib/robust/estimators/relative_pose.h
+include/PoseLib/robust/jacobian_impl.h
+include/PoseLib/robust/lm_impl.h
+include/PoseLib/robust/ransac.h
+include/PoseLib/robust/ransac_impl.h
+include/PoseLib/robust/sampling.h
+include/PoseLib/robust/utils.h
+include/PoseLib/solvers/gen_relpose_5p1pt.h
+include/PoseLib/solvers/gen_relpose_6pt.h
+include/PoseLib/solvers/gen_relpose_upright_4pt.h
+include/PoseLib/solvers/gp3p.h
+include/PoseLib/solvers/gp4ps.h
+include/PoseLib/solvers/homography_4pt.h
+include/PoseLib/solvers/p1p2ll.h
+include/PoseLib/solvers/p2p1ll.h
+include/PoseLib/solvers/p2p2pl.h
+include/PoseLib/solvers/p3ll.h
+include/PoseLib/solvers/p3p.h
+include/PoseLib/solvers/p3p_ding.h
+include/PoseLib/solvers/p4pf.h
+include/PoseLib/solvers/p5lp_radial.h
+include/PoseLib/solvers/p6lp.h
+include/PoseLib/solvers/relpose_5pt.h
+include/PoseLib/solvers/relpose_6pt_focal.h
+include/PoseLib/solvers/relpose_7pt.h
+include/PoseLib/solvers/relpose_8pt.h
+include/PoseLib/solvers/relpose_upright_3pt.h
+include/PoseLib/solvers/relpose_upright_planar_2pt.h
+include/PoseLib/solvers/relpose_upright_planar_3pt.h
+include/PoseLib/solvers/ugp2p.h
+include/PoseLib/solvers/ugp3ps.h
+include/PoseLib/solvers/ugp4pl.h
+include/PoseLib/solvers/up1p1ll.h
+include/PoseLib/solvers/up1p2pl.h
+include/PoseLib/solvers/up2p.h
+include/PoseLib/solvers/up4pl.h
+include/PoseLib/types.h
+include/PoseLib/version.h
+lib/cmake/PoseLib/PoseLibConfig.cmake
+lib/cmake/PoseLib/PoseLibConfigVersion.cmake
+lib/cmake/PoseLib/PoseLibTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/PoseLib/PoseLibTargets.cmake
+lib/libPoseLib.so