Skip to content
Open
Show file tree
Hide file tree
Changes from 48 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
b05efa3
Fix error display in depth tracker
SamFlt Jul 10, 2025
d60bca1
logistic regression for masking
SamFlt Jul 10, 2025
a2c6076
Photometric tracker initial version
SamFlt Jul 15, 2025
f0199c2
photometric using previous image
SamFlt Jul 16, 2025
512a94b
Tried out regularization on photometric hessian
SamFlt Jul 16, 2025
9fc511f
Photometric tracker on segmentation mask
SamFlt Jul 21, 2025
ccd1b77
Adaptive m estimator min threshold for depth feature
SamFlt Jul 24, 2025
5edb7af
Merge branch 'fix_rbt_deterministic' into ycb_tests
SamFlt Jul 24, 2025
ffb838e
Fix error display in depth tracker
SamFlt Jul 10, 2025
bf270dc
logistic regression for masking
SamFlt Jul 10, 2025
34b35b7
Photometric tracker initial version
SamFlt Jul 15, 2025
d43b781
photometric using previous image
SamFlt Jul 16, 2025
72dae57
Tried out regularization on photometric hessian
SamFlt Jul 16, 2025
b9579bc
Photometric tracker on segmentation mask
SamFlt Jul 21, 2025
364d7b4
Adaptive m estimator min threshold for depth feature
SamFlt Jul 24, 2025
abb11a7
Merge branch 'ycb_tests' of github.com:SamFlt/visp into ycb_tests
SamFlt Jul 24, 2025
1b43393
Merge branch 'fix_rbt_deterministic' into ycb_tests
SamFlt Jul 24, 2025
c1c40db
enable parallelisation when computing prior mask for histogram mask
SamFlt Aug 4, 2025
ca15b64
Rework convergence metrics. Add reprojection metric
SamFlt Aug 4, 2025
3407f7d
Add reset method for various tracker parts, fix repeatability for sil…
SamFlt Aug 5, 2025
e7ebdde
Fixed reset leading to non reproducible results
SamFlt Aug 5, 2025
d37fff5
setupRenderer now does not create a new renderer. Improved panda wind…
SamFlt Aug 6, 2025
0f6fa39
Improve mask computation
SamFlt Aug 18, 2025
77617fd
Merge branch 'ycb_tests' of github.com:SamFlt/visp into ycb_tests
SamFlt Aug 18, 2025
e62c5d5
fix color histogram computation, perform correct reset in json loadin…
SamFlt Sep 1, 2025
852a04a
Working on improving inference speed
SamFlt Sep 1, 2025
0b893c3
implement fast alternative for rendering
SamFlt Sep 2, 2025
15b61e4
More cleaning up in faster rendering
SamFlt Sep 2, 2025
a3a084a
Merge update and error/jacobian computation for depth dense tracker
SamFlt Sep 4, 2025
a797274
fix rendering canny filter when geometry renderer is approximate
SamFlt Sep 8, 2025
fa4f1b4
Fix mask export to python, Add object diameter as object information
SamFlt Sep 8, 2025
7ec2c03
New depth based masking strategy, as well as Combined color and depth…
SamFlt Sep 9, 2025
d76e848
Change display of depth tracker
SamFlt Sep 9, 2025
b8a1a01
Add delta to bounding box computation to ensure that contours are pro…
SamFlt Sep 11, 2025
aa961c4
Integrating XFeat code into ViSP
SamFlt Sep 18, 2025
5897351
Integrating XFeat sources into ViSP
SamFlt Sep 22, 2025
779a07b
Document vpColorHistogram class
SamFlt Sep 22, 2025
6bb125f
Working Python extensions, migrate display_utils to subpackage, Missi…
SamFlt Sep 23, 2025
718e037
Use TorchHub as first option to load XFeat model, removing the direct…
SamFlt Sep 24, 2025
b48d20f
Document tracked map api
SamFlt Sep 24, 2025
f548eb1
Document feature tracker class
SamFlt Sep 24, 2025
d5a168e
Fix build issues on widnows with openmp
SamFlt Sep 25, 2025
be272ce
Fix issue with data type change in tutorial
SamFlt Sep 25, 2025
8488ca7
Fix rendering calls for fast mode in geometry renderer
SamFlt Sep 26, 2025
9247551
Move XFeat pose estimation to RBT
SamFlt Sep 26, 2025
9e4435f
Merge remote-tracking branch 'upstream/master' into ycb_tests
SamFlt Sep 29, 2025
978e5b7
Update XFeat pose estimator
SamFlt Sep 29, 2025
44b87e3
Integrate Python extension parsing
SamFlt Sep 29, 2025
adad1ff
Implement object loading that is possible from python, update panda3d…
SamFlt Oct 1, 2025
8c4e451
XFeat pose estimation major improvements
SamFlt Oct 1, 2025
dc7170b
ViSP python xfeat pose estimation application
SamFlt Oct 1, 2025
247ce3c
Take into account @fspindle 's review
SamFlt Oct 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions modules/ar/include/visp3/ar/vpPanda3DBaseRenderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ class VISP_EXPORT vpPanda3DBaseRenderer
virtual void initFromParent(PointerTo<WindowFramework> window);
virtual void initFromParent(const vpPanda3DBaseRenderer &renderer);


virtual void beforeFrameRendered() { }
virtual void renderFrame();
virtual void afterFrameRendered();
Expand All @@ -98,6 +99,11 @@ class VISP_EXPORT vpPanda3DBaseRenderer
*/
NodePath &getRenderRoot() { return m_renderRoot; }

virtual void clearScene()
{
m_renderRoot.node()->remove_all_children();
}

/**
* @brief Set new rendering parameters. If the scene has already been initialized, the renderer camera is updated.
*
Expand Down Expand Up @@ -234,9 +240,11 @@ class VISP_EXPORT vpPanda3DBaseRenderer

virtual void enableSharedDepthBuffer(vpPanda3DBaseRenderer &sourceBuffer);

static const vpHomogeneousMatrix& pandaToVisp();
static const vpHomogeneousMatrix &pandaToVisp();

static const vpHomogeneousMatrix &vispToPanda();

static const vpHomogeneousMatrix& vispToPanda();
PointerTo<WindowFramework> &getWindowFramework() { return m_window; }

protected:

Expand Down
3 changes: 3 additions & 0 deletions modules/ar/include/visp3/ar/vpPanda3DFrameworkManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include <pandaFramework.h>
#include <pandaSystem.h>

class vpPanda3DBaseRenderer;

BEGIN_VISP_NAMESPACE
/**
Expand Down Expand Up @@ -68,6 +69,8 @@ class VISP_EXPORT vpPanda3DFrameworkManager

PandaFramework &getFramework() { return m_framework; }

void enableSingleRenderer(vpPanda3DBaseRenderer &renderer);

void registerDisabledWindow(PointerTo<WindowFramework> wf);

void disableAllOtherRenderers(PointerTo<WindowFramework> &active);
Expand Down
7 changes: 6 additions & 1 deletion modules/ar/include/visp3/ar/vpPanda3DGeometryRenderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,9 @@ class VISP_EXPORT vpPanda3DGeometryRenderer : public vpPanda3DBaseRenderer
CAMERA_NORMALS, //! Surface normals in the frame of the camera. Z points towards the camera and y is up.
};

vpPanda3DGeometryRenderer(vpRenderType renderType);
vpPanda3DGeometryRenderer(vpRenderType renderType, bool fast = true);

void beforeFrameRendered() VP_OVERRIDE;

/**
* @brief Get render results into ViSP readable structures
Expand All @@ -87,6 +88,8 @@ class VISP_EXPORT vpPanda3DGeometryRenderer : public vpPanda3DBaseRenderer

PointerTo<GraphicsOutput> getMainOutputBuffer() VP_OVERRIDE { return m_normalDepthBuffer; }

bool isFastAndApproximateRendering() const { return m_fast; }


protected:
void setupScene() VP_OVERRIDE;
Expand All @@ -96,6 +99,8 @@ class VISP_EXPORT vpPanda3DGeometryRenderer : public vpPanda3DBaseRenderer
vpRenderType m_renderType;
PointerTo<Texture> m_normalDepthTexture;
PointerTo<GraphicsOutput> m_normalDepthBuffer;
//! Use fast approximate rendering.
bool m_fast;
};
END_VISP_NAMESPACE
#endif //VISP_HAVE_PANDA3D
Expand Down
2 changes: 2 additions & 0 deletions modules/ar/include/visp3/ar/vpPanda3DPostProcessFilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ class VISP_EXPORT vpPanda3DPostProcessFilter : public vpPanda3DBaseRenderer
void getRenderBasic(vpImage<vpRGBf> &I) const;

virtual FrameBufferProperties getBufferProperties() const = 0;
virtual PointerTo<Texture> setupTexture(const FrameBufferProperties &fbp) const;


std::shared_ptr<vpPanda3DBaseRenderer> m_inputRenderer;
bool m_isOutput; //! Whether this filter is an output to be used and should be copied to ram
Expand Down
8 changes: 8 additions & 0 deletions modules/ar/include/visp3/ar/vpPanda3DRendererSet.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@ class VISP_EXPORT vpPanda3DRendererSet : public vpPanda3DBaseRenderer, public vp
void initFromParent(PointerTo<WindowFramework> window) VP_OVERRIDE;
void initFromParent(const vpPanda3DBaseRenderer &renderer) VP_OVERRIDE;


void clearScene() VP_OVERRIDE
{
for (std::shared_ptr<vpPanda3DBaseRenderer> renderer: m_subRenderers) {
renderer->clearScene();
}
}

/**
* @brief Set the pose of the camera, using the ViSP convention. This change is propagated to all subrenderers
*
Expand Down
13 changes: 11 additions & 2 deletions modules/ar/src/panda3d-simulator/vpPanda3DFrameworkManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
*/

#include <visp3/ar/vpPanda3DFrameworkManager.h>
#include <visp3/ar/vpPanda3DBaseRenderer.h>

#if defined(VISP_HAVE_PANDA3D)

Expand Down Expand Up @@ -66,15 +67,22 @@ void vpPanda3DFrameworkManager::registerDisabledWindow(PointerTo<WindowFramework
m_disabledWindows.push_back(wf);
}

void vpPanda3DFrameworkManager::enableSingleRenderer(vpPanda3DBaseRenderer &renderer)
{
enableAllRenderers();
disableAllOtherRenderers(renderer.getWindowFramework());
}

void vpPanda3DFrameworkManager::disableAllOtherRenderers(PointerTo<WindowFramework> &active)
{
GraphicsStateGuardian *activeGsg = active->get_graphics_output()->get_gsg();

for (int i = 0; i < m_framework.get_num_windows(); ++i) {
PointerTo<WindowFramework> fi = m_framework.get_window(i);
GraphicsStateGuardian *g = fi->get_graphics_output()->get_gsg();
g->set_active(g == activeGsg);

bool active = (g == activeGsg);
g->set_active(active);
fi->get_graphics_output()->set_active(active);
}
}

Expand All @@ -85,6 +93,7 @@ void vpPanda3DFrameworkManager::enableAllRenderers()
if (std::find(m_disabledWindows.begin(), m_disabledWindows.end(), fi) == m_disabledWindows.end()) {

fi->get_graphics_output()->get_gsg()->set_active(true);
fi->get_graphics_output()->set_active(true);
}
}
}
Expand Down
Loading
Loading