Academia.eduAcademia.edu

Local methods for measuring tiled display alignment

2003, Proceedings of IEEE International Workshop on Projector-Camera Systems

We describe a new method for accurately measuring the relationship between pixel coordinates of neighboring projectors in a tiled projection display. The method can be used to calibrate the alignment and distortions in the tiled display and to touch up existing calibrations with local corrections. Additionally, by simultaneously measuring the characteristic spacing of textural features on the screen surface, we show how an absolute measure of the screen coordinates might be derived. The techniques have application to ...

Local Methods for Measuring Tiled Display Alignment Mark Hereld Mathematics and Computer Science Division, Argonne National Laboratory Computation Institute, University of Chicago and Argonne National Laboratory [email protected] Abstract We describe a new method for accurately measuring the relationship between pixel coordinates of neighboring projectors in a tiled projection display. The method can be used to calibrate the alignment and distortions in the tiled display and to touch up existing calibrations with local corrections. Additionally, by simultaneously measuring the characteristic spacing of textural features on the screen surface, we show how an absolute measure of the screen coordinates might be derived. The techniques have application to information encoding in images, in situ measurement of projector distortions without interrupting display of image content, and commodity tile-aware smart projectors. We discuss the limits to precision of these measurements. 1. Introduction Many computer vision application areas need to encode information in a visual field for capture and interpretation by camera systems: 3-D scanning, automated inspection, inventory tracking, pattern recognition, data transmission, and various closed-loop measurement systems. Solutions to these problems have included several kinds of so-called structured light, 2-D bar code schemes, and dynamically changing image content. After a brief discussion of related work (Sec. 2), we describe (Sec. 3) crinkle, a scheme for encoding detailed data into an image, and discuss how it can be used to measure in detail the mapping between pixels of one projector and its neighbor in the vicinity of the measurements. We then describe (Sec. 4) a method for extracting a physical scale from textural cues on a display surface. We discuss the individual merits of crinkle and texture measurements. We then describe (Sec. 4) a technique for combining these measurements to extract a full calibration of the alignment of projectors in a tiled display and to extract transformations that can be used to correctly place image data into the collection of frame buffers driving the array of projectors for optimal resolution. 2. Related work Measuring and correcting misalignment and distortion in tiled projection displays by using cameras has been an active research topic for many years [6,8]. Several measurement techniques have been explored, as have several methods for applying corrections derived from the measurements. Cameras have been used to measure projected marks spread over the tile either as grids of dots or sequentially as Gaussian features [12,2]. These methods enable the measurement not only of projector orientation and position but also of distortions inherent in projector lenses. In our previous work, we extended such methods to careful measurement of dense grids of dots, across the entire field of the display [7]. Others have added absolute marks either projected by lasers or permanently incorporated into the field of view of the measuring camera in order to ground relative measurements in camera coordinates to the geometry of the screen. Still others have calibrated their cameras using test patterns on cards or in situ, to measure and remove the distortions of the camera optics, leaving purely projective coordinate effects. So-called calibrated cameras can then be used to directly measure positions of projected marks in a rectilinear screen-based coordinate system. Many have focused on purely projective transformations (homographies) when correcting alignment issues, and therefore on measurement patterns that are relatively simple, typically sparse dot grids or simple rectangles. These methods enable the correction of orientation and positional errors of the projector with respect to the screen and neighboring projectors. They do not account for distortion in the projector optics. At least one method that has been studied relies on local measurements of the relative positions of pixels in one tile with respect to pixels in another [5]. In this approach, measurements are made at many places in the overlap regions of all the tiles. These are then used to generate a transformation from tile coordinates to a common coordinate system based on simulated annealing. In an extension of this technique [4], the tileto-tile transformations were organized into a hierarchy of homographies, which sped the solution, led to better accuracy, and dodged convergence problems. And others have taken a very casual approach to alignment, and even to geometry of projection surface. Alignment is taken as is, and all surfaces are fair game. Corrections are computed from a single point of view [11,9,12]. Correction methods, when armed with detailed information about the mapping between projector coordinates and screen coordinates, can be used to warp image content into the frame buffer in order to correct for a plethora of defects [10,12,2,7]. This strategy can be done in real time by using current generation commodity graphics cards in PCs, with little impact on frame rate [1]. A common practice is to use measurements to correct only the projective transformation of image content into the frame buffer of each projector driver [3,5]. This accounts for all orientation, position, and scale parameters and can therefore correct zoom, keystone, rotation, and registration errors. In broad summary, these measurement techniques fall into two categories: global or local. In global techniques, the camera is used to capture a relatively large portion of the tiled display, or at least an entire tile of the display. Local techniques measure only small portions of the display at a time, typically tens or hundreds of pixels on a side. The method described in this paper is local. The measurements are then applied correctively by one of a few methods: projective transformation, optical model inversion, or general image warp on triangular mesh. Any of these correction methods can use the measurements described in this paper. 2. Crinkle In this section we describe our method for encoding pixel positions in projected images, and we discuss how cameras can use these to make local measurements of pixel alignment between neighboring projector tiles. For this application, the chief advantage of our approach is that nothing needs to be known a priori about the alignment and registration of the tiles: any pixel in the image can be accurately identified by using only an image of its immediate surrounds. There is no need to place marks in one tile image at points predetermined to be proximate to marks placed in a neighboring or overlapping tile image. Neither is there a need to use closed-loop algorithms that actively move marks around in the field until alignment is achieved. Our method is static and local, leading to simple extraction methods. The encoding scheme must be easily detected and recognized by software, provide subpixel accurate locations, fit well within a modest camera pixel format, be readable at any orientation or scale, and be separable from patterns from neighboring overlapping tiles. It is also advantageous for the brightness of the code to be independent of payload, for the coding unit to fit in a modes field of view, and for the scheme to support simultaneous measurements of overlapping codes. “1” “0” “Orientation” Figure 1. A balanced 2x2 pixel representation of bit values and an example of a two-bit orientation key. Crinkle is a scheme that we have devised that meets these needs well. It is built on encoded messages (for pixel position, tile number, etc.) using symmetric and antisymmetric pattern building blocks to represent 1s and 0s and registration cues to help recognition and unambiguous decoding (Fig. 1). The bit representations have the same number of on and off pixels, which aids in robust interpretation of the pattern in several ways. No streak of more than two on or off pixels can occur in the coding region. This scheme gives a large number of centroids from which to extract precise pixel positions and to infer by interpolation the positions of off pixels. It can therefore generate a very accurate local map of pixel positions in camera coordinates. To establish orientation, we considered “two-bit” patterns, 4 x 2 pixels, that would expose the orientation unambiguously, and could not be created by accidental sequences of the “1” and “0” patterns or by scale change. Figure 1 shows an orientation key that we use. We combine these building blocks into a 2-D layout (Fig. 2). This template describes a crinkle with 54 bits of data plus 2 bits for an orientation key, 8 x 6 bits, or 16 x 12 pixels in the image. The crinkle is read left to right, top to bottom. The fields are described in the legend. The crinkle encodes the pixel coordinates of its upper left corner. Because the encoding is dense in on and off pixels both, approximately half on, every pixel position in the vicinity of the decoded crinkle can be deduced simply. These crinkles can be packed into the image in any convenient way, typically as a regular array with or without a gutter between adjacent crinkles. We typically guard each crinkle with a one-pixel-wide gutter of off pixels. This helps us to see the patterns and helps in automatic finding of the crinkle in the field. O X Y T Field O T X Y U considering cluster analysis methods. Recognizing, measuring, and interpreting the crinkle is detailed but straightforward. We have already implemented a similar extraction in our work on DottyToto [7]; for details see the description therein. In Figure 4 we sketch the steps used to extract these transformations. The signal-to-noise ratio is high because of the large number of pixels in the crinkle, the resulting large number of independent peak detections, and the statistical advantage of combining those measurements to extract the relatively small number of parameters describing the pixel positions in camera coordinates. Value Bits Orientation 2 Tile Number 16 X Coordinate 16 Y Coordinate 16 Undefined 8 U Figure 2. An example of a coding layout for a single crinkle. Images of overlapping tiles projecting crinkle-encoded pixel coordinates in different colors can be decoded to generate coordinate transformations between these projectors. Figure 3 shows an example of such an image. The lighter crinkle pattern on the left is projected in red by one projector and actually covers the entire field of this image. The brighter (and fuzzier) crinkle on the right is at the edge of the tile projected in blue by a second projector. In our example, we have separated the blue crinkles from on projector by simply using the blue color channel of the image. This method doesn’t work generally because of differences in projector and camera filters. We expect that good results will be obtainable using a principal component analysis, but we are also Figure 3. Example of crinkle separation by color (shown here in black and white). In the top image a very small portion near the edge of one tile is shown (approx. 40 x 30 pixels). The image on the bottom is the blue channel of the color image and shows easy-to-read crinkle patterns. Our first experiments have yielded good results. Starting with the top image of Figure 3 we have correctly measured the positions of the 99 on pixels in the red (left) crinkle to an accuracy of less than one camera pixel. For this measurement one camera pixel corresponds to 1/8 projector pixel. If the errors are systematically skewed in a single direction, a worst case, then we can place the entire crinkle in the camera field to that same 1/8 projector pixel. Combining errors quadratically we set the upper bound on our accuracy in relating positions of pixels from two crinkles (two corresponding projectors) at 2 8 in x and in y, less than 0.2 projector pixels. Note that if the pixel measurement errors are uncorrelated, then our accuracy could be better by a factor of as much as 99 , roughly 10 times better, far below other errors. Separate Overlapping Crinkles Interpret Crinkle 1 Interpret Crinkle 2 Make Coord Map (in Camera Coords) Make Coord Map (in Camera Coords) (x1,y1) = f1(xc,yc) (x2,y2) = f2(xc,yc) In the case of many manufactured rear-projection screens, the back surface of the screen is covered with a film comprising very small beads. These are part of the technology for presenting a low albedo, and therefore black, surface to the viewer, a characteristic that significantly increases the dynamic range of the projection system. These beads are typically (for materials that we are aware of) several tens of microns in diameter (say, 70) and are selected to be very close to the same size. Figure 5 shows a close up image of such a screen. The image is taken from the viewing side of the screen, from a distance of only a few centimeters. The field of view is approximately 5 pixels wide by 4 pixels tall (4 mm x 3 mm). The bright dots within each large pixel blob are the glass beads. The blobs comprising the pattern (the “X” shown by X-windows at startup) are individual pixels, a little under a millimeter “square.” Compose Maps –1 (x1,y1) = f1 ( f2 (x2,y2 ) ) Figure 4. Extracting tile-to-tile coordinate mappings from a single image of overlapping crinkle patterns from two projectors. 3. Screen texture Many, if not most, screen surfaces have texture that can be seen with a digital camera. If the characteristic length scales of this texture, whatever its source, are uniform across the display surface and can be measured with enough precision from images of it, we can exploit such measurements in our calibration of tiled displays. Figure 5. Detail of an image showing the texture from glass beads on the Jenmar Blackscreen material. One way to exploit these two measurements together, crinkle and texture, has the potential to yield a full calibration of the alignment of a tiled display. In brief the steps we propose are as follows: • Use crinkle to measure the pixel scale of the projector at several points. • Use simultaneous texture measurements to attach a physical scale to each pixel scale. • For each projector, compute the homography that best fits these data. • Use techniques described in [4] to combine the measurements and arrive at a global coordinate system and first-pass transformation from each • • projector pixel coordinates into global coordinates. Reuse the crinkle images to extract detailed tileto-tile transformations in the overlapping or neighboring projector tiles. Use these detailed local maps to correct the first-pass maps derived earlier. Finally, we derive an estimate of the physical scale of projector pixels on the screen and its uncertainty, in projector pixels per bead separation, in a few steps as follows. These calculations will help us design the measurement parameters required to realize the scheme just outlined. For the derivation we estimate errors as coming from counting statistics in both bead and crinkle cases. We believe that this measure is an upper bound to the real errors. First, the camera image can be used to find the relationship between camera pixels and bead separation. If N beads are counted in an area, A , on the camera image in (camera pixels)2, then the bead scale in camera pixels is given by: Sb = A A. ± N 2N (1) On the other hand, the camera picture can also be used to measure the relationship between camera pixels and projector pixels. An m by n crinkle pattern contains mn/2 measurable projector pixels, each with an uncertainty of δx = δy in its measured position. The projector pixel scale in camera pixels is given by Sp = A 2 ± 2 mn m + n2 2 δx . mn (2) From this we can estimate the projector pixel scale factor, S = S b S p : S= δx 2 . mn mn ⎛ 1 ⎞ 8 ± ⎟+ 2 ⎜ N N ⎝ 4N ⎠ m + n 2 A ( ) (3) For example, if we assume the 16 x 12 projector pixel crinkles described above, an A about 300 x 200, N about 120 x 80, and δx about 0.5 camera pixels, we get S = 0.05 +- 0.005 projector pixels per glass bead. 4. Discussion, future work, and conclusions We have described a novel method for locally encoding projector pixel coordinates, in the form of 2-D crinkles, in an image so that they can be unambiguously deciphered with a camera-based measurement. The method is compatible with simultaneous decoding of data in overlapping projections and can be used to precisely measure the relation between pixel coordinates of these projectors. In this application, crinkles can be used to quickly measure and touch up minor misalignments. We have also demonstrated the feasibility of a method for measuring the local scale of a projection on a beadbased rear projection screen in terms of projector pixels per screen scale length. If local scale length is constant across the screen, then the measurement can be coupled with the crinkle measurements to map absolute pixel positions for each projector of a tiled display in terms of the physical position on the screen. Failing that, such measurements made at several points on a tile can be used to compute a rough correction to keystoning and projector-to-projector zoom mismatch. In particular with regard to the texture measurements described, the practicality of the methods discussed will hinge on measurement uncertainty. To aid later calculations and experiment designs, we have estimated the errors of these measurement methods. The methods described in this paper can be extended to apply to other materials, circumstances, and applications. • Sources of uniform screen texture (naturally occurring or engineered for the purpose) other than the glass beads could form the base. • Projectors equipped with through the lens imaging might be designed to automatically read crinkles in neighboring projectors to create a commodity-based tiling capability. • Crinkles might be embossed onto ordinary image content to enable live alignment measurement and correction without disrupting production use of the display system. To further the work on this project, we plan the following: • Integrate the separate steps into a single software bundle, and package it for routine use. • Test methods for quickly and robustly extracting a global coordinate system for applications where these techniques are used for full calibration. • • Implement a demonstration of the end-to-end correction using a hand-held camera, perhaps a networked iPaq. Explore the limits to measurement precision of embossing applications of crinkle, that is, where crinkle data is impressed over application image data. We have described two measurements that might be applied fruitfully to the problem of accurate alignment of image content in tiled display systems. The anticipated errors of measurements based on these techniques are promising. [6] M. Hereld, I. Judson, and R. Stevens. Introduction to building projection-based tiled displays. IEEE Computer Graphics and Applications, 20(4):22-28, 2000. [7] M. Hereld, I. Judson, and R. Stevens. DottyToto: A measurement engine for aligning multi-projector display systems. In Projection Displays IX, Proceedings of SPIE Vol. 5002, ed. Ming Hsien Wu, Santa Clara, CA 2003, pp. 73 - 86. (Also Argonne National Laboratory preprint ANL/MCS-P958-052, 2002.) [8] K. Li, H. Chen, Y. Chen, D. W. Clark, P. Cook, S. Damianakis, G. Essl, A. Finkelstein, T. Funkhouser, A. Klein, Z. Liu, E. Praun, R. Samanta, B. Shedd, J. P. Singh, G. Tzanetakis, and J. Zheng. Early experiences and challenges in building and using a scalable display wall system, IEEE Computer Graphics and Applications, 20(4):671-680, 2000. [9] R. Raskar, Immersive planar displays using roughly aligned projectors, Proceedings of IEEE Virtual Reality 2000, pp. 109 - 106. Acknowledgments We acknowledge helpful discussions of the ideas leading to this paper with Ivan Judson, Rick Stevens, Mike Papka, Ed Frank, the Futures Lab en masse, and Aditi Majumder. This work was supported by the Mathematical, Information, and Computational Sciences Division subprogram of the Office of Advanced Scientific Computing Research, Office of Science, U.S. Department of Energy, under Contract W-31-109-ENG38. References [1] J. Binns, G. Gill, M. Hereld, D. Jones, I. Judson, T. Leggett, A. Majumder, M. McCrory, M. E. Papka, and R. Stevens, Applying geometry and color correction to tiled display walls, poster presented for IEEE Visualization 2002, Boston, MA, October 2002. [2] M. S. Brown and W. Brent Seales, 2002, A practical and flexible tiled display system, IEEE Proceedings of the 10th Pacific Conference on Computer Graphics and Applications (PG’02), pp. 194 - 203. [3] C. J. Chen and M. Johnson. Fundamentals of scalable high resolution seamlessly tiled projection systems, Proceedings of SPIE Projection Displays VII, 4294:6774, 2001. [4] H. Chen, R. Sukthankar, G. Wallace, and K. Li. Scalable alignment of large-format multi-projector displays using camera homography trees, IEEE Visualization 2002 (Vis 2002), Boston, MA, pp. 339 - 346, 2002. [5] Y. Chen, H. Chen, D. W. Clark, Z. Liu, G. Wallace, and K. Li, Automatic alignment of high-resolution multiprojector displays using and un-calibrated camera, IEEE Visualization 2000, Salt Lake City, UT, October 8 - 13, 2000. [10] R. Raskar, M. S. Brown, R. Yang, W. Chen, G. Welch, H. Towles, B. Seales, and H. Fuchs. Multi-projector displays using camera-based registration, IEEE Visualization ‘99, pp. 161 - 168, San Francisco, October 1999. [11] R. Raskar, G. Welch, M. Cutts, A. Lake, L. Stesin, and H. Fuchs. The office of the future: A unified approach to image-based modeling and spatially immersive displays, Computer Graphics (Proc. SIGGRAPH), pp. 179 - 188, 1998. [12] R. Yang, D. Gotz, H. Towles, and M. S. Brown, Pixelflex: A dynamically configurable display system, IEEE Visualization ‘01, 2001. The submitted manuscript has been created by the University of Chicago as Operator of Argonne National Laboratory (“Argonne’) under Contract W-31-109ENG-38 with the U.S. Dept. of Energy. The U.S. Government retains for itself, and others acting on its behalf, a paid-up, nonexclusive, irrevocable worldwide license in said article to reproduce, prepare derivative works, distribute copies to the public, and perform publicly and display publicly, by or on behalf of the Government.