1

I have four cameras which are at fixed position. So I can measure the distance (even rotation) among them using a ruler (physically). Camera one and two gives me a point cloud and camera three and four gives me another point cloud. I need to merge these point clouds.

As far I have understood that ICP and other such algorithms do a rigid transformation of one point cloud to match the other. My question is how can I use the extra knowledge (distance between the cameras in centimeter) to do this transformation.

I am quite new to such work so, please correct me if I misunderstood something. And thanks in advance.

Bashima
  • 122
  • 1
  • 9
  • Using camera positions to transform the point cloud coordinates and then merge them together should do what you want, potentially with **some artifacs**. Not sure if it is a good idea to merge two point clouds without a subset of common cameras between them. – NAmorim Feb 01 '17 at 15:11
  • icp always needs an initial registration. Just compute the rigid transform from your stationary camera positions and use the icp afterwards. – Micka Feb 02 '17 at 05:58

1 Answers1

1

First, what kind of accuracy are you looking for, and over what volume of space? Achieving 0.1 mm registration accuracy over a 0.5 m tabletop scene is a completely different problem (in terms of mechanical design and constraints) than a few mm over a floor tens of meters wide.

Generally speaking, with a well reconstructed and unambiguous object shape, ICP will always give you a better solution than manual measurements.

If the cameras are static, then what you have is really a calibration problem, and you need to calibrate your 4-camera rig only at setup and when its configuration changes for whatever reason.

I suggest using a calibration object of precisely known size and geometry, e.g. a machined polyhedron. You can generate and ICP-register point clouds for it, then fit the merged cloud to the known geometry, thus obtaining position and orientation of every individual point cloud with respect to the fixed object. From these you can work out the poses of the cameras w.r.t. each other.

Francesco Callari
  • 11,300
  • 2
  • 25
  • 40
  • Thanks a lot. How to handle cases where the cameras have slight displacement? Suppose, a person is wearing them. So it can move a little due to movement of clothes maybe. If there is no displacement, is it ok to calculate the extrinsic parameters only once at the beginning? – Bashima Feb 02 '17 at 17:12
  • 1) repeatable (static) scene <-> calibration with known scene geometry, done once. 2) non-static scene <-> depends. If small variations from a calibrated geometry, can use ICP on current scene content using calibration as initial condition. Please remember to upvote or accept answer if you find it useful. – Francesco Callari Feb 02 '17 at 17:20