How to modeling 3d objects using three D435 cameras
We have the following three questions about 3d reconstruction using three D435 cameras:
1. How to set the distances and angles regarding to the three D435 cameras.
2.How to synchronize the frames of these cameras? Is there any existing solutions about this?
3. Is there any free 3d reconstruction software which supported the depth data collected from three D435 cameras.
-
Hi Wuhairongqq
1. In general you may wish to position the three cameras so that their field of view (FOV) overlaps with one another. This will help to avoid blind-spots in the observation of the scene. Cameras can be arranged in a variety of ways, such as in a vertical stack, a horizontal straight line or in a circle surrounding an object and looking inwards towards it.
If the cameras will be arranged in a horizontal straight line, an Intel multiple camera article in the link below should be a helpful guide about spacing.
https://www.intelrealsense.com/intel-realsense-volumetric-capture/
If the cameras will be arranged in a circle then Intel's multiple camera white-paper document provides clear images that illustrate spacing.
https://dev.intelrealsense.com/docs/multiple-depth-cameras-configuration
If the cameras will be tilted vertically up or down then I would recommend not exceeding a 30 degree tilt angle. You can go beyond 30 but it may have negative effects on the image. Pointing the camera 90 degrees directly up or down would be fine though.
2. The multiple camera white-paper linked to above provides guidance about setting up hardware sync between cameras so that there is one 'master' camera that the other 'slave' cameras try to sync their timestamp timings to. It is not mandatory to use hardware sync in multiple camera setups though.
Intel have also published a second multiple camera paper that provides a greater range of multiple camera sync options and finer control over sync. This paper is experimental and unvalidated by Intel though, and the first paper is the one that is considered validated and mature by Intel.
https://dev.intelrealsense.com/docs/external-synchronization-of-intel-realsense-depth-cameras
3. In regard to free solutions, Intel have published a multiple camera guide for ROS that enables the capturing of individual point-cloud scans and the automated stitching together of them into a single cloud.
https://www.intelrealsense.com/how-to-multiple-camera-setup-with-ros/
It is also possible to stitch multiple clouds together using a procedure called affine transform, which arranges the position and orientation of multiple clouds to share the same 3D space. If you are able to create your own RealSense application, the RealSense SDK has an instruction called rs2_transform_point_to_point that is an affine transform.
Alternatively, the Point Cloud Library (PCL) - which the RealSense SDK can interface with via a compatibility 'wrapper' - has the Normal Distributions Transform method of point cloud stitching.
https://pointclouds.org/documentation/tutorials/normal_distributions_transform.html
At a more advanced level, the CONIX Research Center at Carnegie Mellon developed a point cloud stitching system that could stitch clouds from up to 20 RealSense 400 Series cameras over an ethernet network.
https://github.com/conix-center/pointcloud_stitching
There is also a commercial RealSense compatible multiple camera software solution available in the form of RecFusion Pro if you have the budget to do so.
-
It is also worth highlighting that there are solutions for scanning with a single camera by moving the camera around a scene and progressively building up the detail of the scene on the scan. A free example of such an application is rs-kinfu.
https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv/kinfu
-
The new RealSense SDK version 2.50.0 has added a C++ example program for multiple camera pointcloud stitching that may be of interest to you.
https://github.com/IntelRealSense/librealsense/tree/master/wrappers/pointcloud/pointcloud-stitching
Please sign in to leave a comment.
Comments
3 comments