45
5.2.1 Review of Iterative Closest Point (ICP) Algorithm
The iterative closest point (ICP) algorithm [11] can be employed to minimize the difference between two groups of points. It is often used to match objects, which are constructed by many points, to compute their similarity. It is useful for constructing 2D or 3D images from different views, because object registration or stitching requires shape matching.
The concept of the algorithm is simple. It iteratively revises the transformation, including translation and rotation, from an object into another in order to minimize the total distance between the points of the two objects. The algorithm is as follows.
Algorithm 5.1: ICP algorithm
Input: a group of points GA, another group of points GB, a set of transformations Tis, an initialized minimum value M, and an initialized transformation T0.
Output: A transformation T which is the relation between group GA and group GB. Steps:
Step 1. Apply a transformation Ti, which is not used yet, to all points in group GB. Step 2. Find points PMDs with the minimum distance in group GA for each point in
group GB.
Step 3. Compute the values VMDs of the minimum distance between the found points PMDs in group GA and the corresponding points in group GB.
Step 4. Sum up the values VMDs to get a total sum TS.
Step 5. If the total sum TS is small than the input minimum valueM, update the minimum value M with the total sum TS and the desired transformation T with the transformation Ti.
Step 6. Repeat Step 1 through Step 5 if the transformations Tis are not exhausted yet.
46
Step 7. Take the last updated transformation T as the output.
5.2.2 Calibration of Spatial Relation between KINECT Devices
In this section, we want to use the ICP algorithm to calibrate the spatial relations of the nine KINECT devices in the octagonal 9-KINECT imaging device. By using the ICP algorithm to merge the 3D images of two objects which are the same object but come from two different KINECT devices, we can get the result of the transformation between them, which is just the spatial relation of the two KINECT devices, because the transformation between 3D images is equivalent to the transformation between KINECT devices. With the concept above, we should prepare three things before starting calibration.
First, we should decide the range of the transformation parameters, and for this, we divide the transformation into two parts a rotation and a translation. For the rotation, because the sensing directions of the nine KINECT devices of the octagonal 9-KINECT imaging device are fixed, the angles between the nine KINECT devices are also fixed. We can use the values of these angles for the rotation. For the translation, we divide it into two directions to facilitate running the ICP algorithm.
The place of each of the nine KINECT devices is fixed, so the distance between every two of the nine KINECT devices is also fixed. We would like to enlarge values of these distances and divide these distances into two directions for the translation of the two directions.
Second, we should find out the overlap region of the 3D images acquired from every two KINECT devices. Using the overlap region, we can merge the 3D images of an identical object “seen” from different KINECT devices by the ICP algorithm in
47
order to get the result of the transformation. The overlap regions may be found by manpower.
Third, we should choose objects, whose 3D images from different KINECT devices can be merged in the overlap regions, and we will call them calibration targets. Basically, we should use a calibration target which is big enough and can appear in the overlap region apparently. For this, we use common objects which appear in the indoor environment as calibration targets, such as couch, table, chair, clapboard, etc. Sometimes, we will also use a box which is put at suitable height as the calibration target, if there is no apparent object in the overlap region. Some calibration targets are shown in Figure 5.1.
(a) (b)
(c) (d)
Figure 5.1 Some calibration targets used in this study. (a) A couch. (b) A clapboard. (c) A chair and a table. (d) A box with a suitable height.
48
5.2.3 Algorithm for KINECT Device Calibration
With the preparation done, we start to calibrate the spatial relations between the nine KINECT devices in the octagonal 9-KINECT imaging device. Firstly, we label the nine KINECT devices by numbers, and two consecutively numbered KINECT devices mean that they are neighboring. Then, we use the 3D images, which include the pre-selected calibration target in their overlap region, to calibrate the inter-KINECT relation parameters by the ICP algorithm. Totally, we conduct such calibration for eight times.
Before we conduct such calibrations each time, we reset the range of the possible transformations between the two devices for the ICP algorithm, set the two 3D images including the calibration target from two neighboring KINECT devices as inputs to the ICP algorithm, and use the overlap region in the images to assist the calibration work. The proposed algorithm for KINECT-device calibration is as follows.
Algorithm 5.2: KINECT device calibration.
Input: the 3D images CT0, CT1, …, CT8 which are constructed from KINECT images acquired by the nine KINECT devices D0, D1, …, D8 and include the calibration target; the transformation NTj and the overlap region ORj between every two neighboring KINECT devices Dj and Dj+1 where j = 0, 1, …, 7; a counter with its value C set to be 0 initially.
Output: the transformation Rk between every two KINECT devices Dk and Dk+1, where k = 0, 1, …, 7, which can be used to “register” the 3D images CTk and CTk+1.
Steps:
Step 1. Take two 3D images CTc and CTc+1, which include the calibration target in their overlapping region, as input data for the ICP algorithm.
49
Step 2. Set the transformation NTc to be the transformation sets for the ICP algorithm.
Step 3. Start the ICP algorithm described in Section 5.2.1 while using the overlap region ORc to assist finding the calibration target for the ICP algorithm.
Step 4. Store the result of transformation of the ICP algorithm as the result of the transformation Rc.
Step 5. Increment the value C of the counter by 1.
Step 6. If the value C is smaller than eight, then repeat Steps 1 through 5; else, exit.