At the end of the video, one camera is from PrimeSense, and the other (appears) to be a SoftKinetic (or Senz3D); is that correct? Does anyone have experience comparing those cameras for accuracy/fov/framerate/etc.?
Thanks. Have been playing with the Senz3D (rebranded DS325) for a rather different application, but was a bit underwhelmed so far with both accuracy and range. (On the other hand, it's kind of amazing for $125).
Seems like the tip of a very big iceberg. I sent this on to a friend who creates 3D construction and real estate models. I think he needs to diversify before too long...
1) What previously existing libraries are you using (if any)?
2) Since the video capture (assuming it's from the tablet's camera) is detached from the depth capture, how do you coordinate the two to make the grid layout in the video? Structure.io seems to require attaching the depth device to the video device (so the perspectives are relatively fixed).
1) The core reconstruction technology is written from scratch (it's been a full-time project for over 18 mths.)
Some open source projects it uses: Eigen, OpenNL, OpenMesh, OpenCTM, GLM, Protobuf, Redis, Gluster, Node.
2) Video capture is actually from the RGB-D sensor, so it's registered with the depth. I believe the Structure sensor requires that the camera is fixed to the mobile device so that its IMU can be used for tracking. No such requirement here.
Jeff from the Structure Sensor team here. Structure Sensor comes with an attachment to hold it rigidly attached to an iPad (and CAD so you could 3D print attachments for other devices). Color-depth registration is handled by the SDK and is registered using vision (not IMU) -- but IMU is available if desired. Hope to see this project ported to be compatible with Structure Sensor!
Definitely possible - Forge is depth camera agnostic.
Before it could happen, though, I'd need you to ship my Structure Sensor USB cable and for you to release either an Android, Linux or Windows SDK. Hope that'll happen soon.
The most profitable route would be aiming for a sharing platform, getting early stage investment, build a userbase, then sell the company. Both Facebook and Google are eyeing this field.
It's not even clear if this is more risky than a paid model, because the internet landscape is littered with corpses of paid-model web applications which didn't take off "enough".
This looks great! I'd like to use it to ease up the tech overhead for some mobile robotics applications. Is there anyway that the user's position in the world frame can be accessed? i.e. can this do SLAM over longish distances?
Basically I'm looking for Google's Project Tango, without the hardware constraints.
Sure, the pose in the world frame is estimated at 30 Hz. Over longish distances there's some drift so a global optimization step is needed.
I'd like to release a developer API (Forge currently runs on Android, Windows & Linux) hopefully later this year, which should be what you're looking for.
My understanding is the Leap Motion is a wide-angle stereo IR camera. It's built to detect fingers/hands/pointers, and doesn't produce a depth map so can't do 3D scanning.
A sensor with a similar form factor is the CamBoard pico, which does produce depth maps. I don't think it's shipping yet.
Project Tango has a 320x180 depth sensor running at 5 fps, i.e. 290k depth measurements per second. Compare this with off-the-shelf depth cameras (e.g. DS325) that generate 320x240 at 60 fps, i.e. 4.6m measurements per second.
The reason for this is that mobile processors aren't fast enough to process more information. So the Tango prototype has to have, in addition to its depth camera, a special motion tracking camera with a fish-eye lens and 2 dedicated processors in order to robustly track.
Even then, with less depth information, the quality of any Tango reconstruction will be far inferior. Maybe in 5-10 years, mobile processors can approach what desktop GPU's are capable of today.
In any case, it remains to be seen if Google can persuade cellphone manufacturers to include 2 special cameras + 2 extra processors in their future devices.
nice! I'd be interested in the method they use to put everything together. My best bet is some basic structure from motion weighted by the depth sensor...or maybe it's simpler than that...
Author here. It uses color info as well as depth for tracking. Otherwise, it'd fail if you pointed the camera at featureless geometry, e.g. walls, floors.