# A Photometric Stereo Using Re-Projected Images for Active Stereo Vision System
## 4 Experimental Results and Evaluation  
To obtain the 3D data, an active stereo vision system was built, which consists of the same hardware configuration of the state of the art and two cameras (acA1300-200 um-Basler ace, Basler,  
Figure 6: Bilinear interpolation for re-projected image. New intensity value of re-projected image \(I_{c}\) in reference view image is defined by \(I_{p}\) and \(I_{q}\). Ahrensburg, Germany), two lenses (HF16 HA-1B, Fujifilm, Tokyo, Japan), and a single projector (LC3000-PRO 100, Texas Instruments, Dallas, TX, USA), as shown in Figure 7. In addition, a photometric stereo system was built with five external LED light sources and a single camera (acA1300-200 um-Basler ace). The target object was a knight statue (50 mm in width, 150 mm in height, and 30 mm in depth). The proposed algorithm was implemented in C++ language and implemented on a personal computer with an i7-4770K processor (Intel, Santa Clara, CA, USA) with 8 GB memory and a Windows 7 operating system. The computational cost of Nehab's method and ours has no difference in terms of acquiring the 3D point cloud, since we use the same algorithm to enhance the 3D scan data. The main difference is hardware setup and time cost of taking images for the algorithm. Nehab's method takes five images per point of view to implement photometric stereo, while our method takes only a single image per point of view. This difference increases as the number of views to obtain scan data increase. Creating a re-projected image of 800 \(\times\) 600 resolution only takes 20 ms per view on our hardware setup, which is minor compared to the extra time spent taking images for photometric stereo in Nehab's configuration with a 30 fps camera. The normal data (N\({}^{\text{ps}}\)) from the traditional photometric stereo method which uses images under different light conditions were obtained through the procedure described in Section 2.2. 3D point data (P\({}^{\text{sv}}\)) and normal vectors (N\({}^{\text{sv}}\)) were obtained from five different views via the stereo vision system, and registration was done through the procedure described in Section 3.1. The registration errors of five scan patches was 0.022 mm, which proves high precision of an active stereo vision system. With this registration result, images from four different views were re-projected to a reference view, creating four re-projected images as described in Section 3.2. These four re-projected images and the reference view image work as images under different light conditions. Normal vector (N\({}^{\text{TP}}\)) can be obtained via the photometric stereo method from these five images. When there is a unit normal vector with a value of \(-1\) to \(1\), this value is converted from \(0\) to \(255\), and is mapped to the RGB field of the image to create the normal map, as shown in Figure 8. The normal vector of the photometric stereo (N\({}^{\text{ps}}\)) in Figure 8 represents more detailed surface features than the normal vector (N\({}^{\text{sv}}\)) of the stereo vision in Figure 8. The normal vector (N\({}^{\text{TP}}\)) in Figure 8 obtained from re-projected images also represents more detailed surface features than that of the of stereo vision system. The difference is shown more clearly in the shield portion of the knight model. Figure 7: (a) Experiment environment; (b) Target object. We used these detailed normal vectors (N\({}^{\text{ps}}\)) and (N\({}^{\text{TP}}\)) to improve the stereo vision 3D point data (P\({}^{\text{sv}}\)) by means of [PERSON]'s algorithm, obtaining more precise 3D data, as described in Section 2.3. In order to see errors of our re-projection algorithm's result only, we applied [PERSON]'s algorithm on a single scan patch, which does not contain registration error and point difference from the merging process. Figure 9 shows 3D rendering comparisons between each method described above. Figure 9a is 3D scan data obtained from the stereo vision ((P\({}^{\text{sv}}\)), (N\({}^{\text{sv}}\))) without [PERSON]'s algorithm, which contains high-frequency noise.