Git Product home page Git Product logo

Comments (5)

Algomorph avatar Algomorph commented on June 2, 2024

Hi, @crosswick,

First off, the question you want to answer is whether you really want to stream for this -- if your goal is just to design something that can process frames at frame rate, and you don't need a live demo with a real camera attached to your computer/whatever device you use for processing, you can use prerecorded files in a variety of formats (heck, you could even cache individual image frames from disk). Then you'd just need something that can read the input from your desired format quickly.

If you really do need real-time input, the low-level driver/tool package that you wanna use for streaming depth camera input really depends on the hardware you're using. Now, OpenNI was really popular with Xtion RGB-D cameras and the Kinect (& PrimeSense) cameras that came before them. All things considered, it's fairly "legacy" at this point, and there are modern-day replacements in the OSS domain, such as freenect. There are separate drivers for RealSense, Kinect for Azure (i.e. Kinect for Azure SDK), etc. If you use PCL or OpenCV, both have a variety of interfaces to utilize a bunch of these driver packages, implemented with various levels of quality. One of the packages that is dedicated to providing a uniform access (URI-style) to all possible depth (and other) cameras (including reading files from disk) is Steven Lovegrove's Pangolin. Dev on that is not very active at this point, but Steve keeps it well-maintained. I'd recommend taking a look at that and similar packages.

And C++ knowledge will come with usage, as long as you're not afraid to read and learn best practices as you go, so no worries there :)

P.S. cilantro, if memory serves me right, interfaces with Pangolin instead of reinventing the wheel like PCL and OpenCV (no offence to folks at PCL and OpenCV -- I know their packages have probably been around longer than Pangolin and provide access to some extra formats + hardware, it just doesn't make sense to replicate effort on their part IMHO).

from cilantro.

crosswick avatar crosswick commented on June 2, 2024

hi @Algomorph - thanks for the in-depth reply!

I do really want real-time streaming, yes... and not only because I'm just super intrigued by this paper:

Real-Time 6-DOF Pose Estimation of Known Geometries in Point Cloud Data

but also because for my intended use case, I am very much looking forward to being able to use the tracking data in real-time... it will probably benefit the organic nature of the system as a whole.

Thanks for the freenect and Pangolin suggestions, I will check those out. The camera I'm looking at is one from Revopoint, who have started to offer an SDK for their consumer 3D scanners, see this example project. I know they have offered OpenNI drivers for their other cameras in the past, but perhaps that framework is too old-fashioned now...

Lastly: if there's any Cilantro example project similar to this PCL project, I'd be interested to learn: Tracking object in real time

It uses a Particle Filter similar to the method described in the paper, which is why it seemed like a good starting point for me.

from cilantro.

Algomorph avatar Algomorph commented on June 2, 2024

@crosswick looks like your camera is too new to have interfaces in either libfreenect or Pangolin (feel free to contribute!).
The SDK binaries they use in the example you give can be downloaded from here and then linked against, like in the example. IDK why Revopoint doesn't open-source their stuff: from what I can tell, all features are fairly standard. But you get what they give you. IDK whether cilantro has particle filters at this point or not (@kzampog?), I would look through the examples. If it doesn't, I wouldn't rely on PCL too much -- in my experience, unless something radically changed in the last couple of years, PCL is pretty messy and not-very-well-maintained, so I would look at dedicated particle filter libraries or other better-maintained libraries for that.

from cilantro.

crosswick avatar crosswick commented on June 2, 2024

@Algomorph are you sure the RevoPoint 3DViewer example needs any binaries to be linked against? I've been able to compile and run it using only that Git repository, which I don't think contains any binaries.

It feels like Cilantro and Pangolin is the way to go... there's been very little development/maintenance of OpenNI as of late, and the PCL Discord seems pretty much a ghost town...

If I were to put some effort into making an interface in Pangolin, and/or get the real-time particle filter stuff working in Cilantro, what would be a good forum to discuss that, currently? The Issue pages of the respective GitHubs, or is there a relevant Discord or Discourse or something?

from cilantro.

crosswick avatar crosswick commented on June 2, 2024

ah, this must be those binaries: https://github.com/Revopoint/3DViewer/tree/master/thirdparty/3DCamera

from cilantro.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.