The Keck lab is a multi-perspective imaging laboratory, containing 64 digital, progressive-scan cameras organized as sixteen short baseline stereo rigs (see Figure 1). In each quadranocular rig, there are three monochromatic and one color camera. The cameras are collected to a network of PC's running Windows NT 4.0 that can collect imagery from all of the cameras at speeds of up to 85 frames per second. The dimensions of the Keck lab are 24' by 24' by 10'. A panoramic view of the lab is shown in Figure 2.
Figure 1: Keck Lab Architecture
Figure 2: Keck Lab Panorama View
A primary goal in the design of the Keck lab was to maximize captured video quality, while using commonly available hardware for economy. To meet this goal, uncompressed video is captured using digital, progressive scan cameras directly to PCs. A schematic of the Keck lab is shown in Figure 3. The Keck lab was designed to capture uncompressed video sequences to both memory and disk. The data throughput requirements for various number of cameras and frame rates are shown in Table 1. The design of the Keck lab allows capturing uncompressed video to memory at up to 100 MB/s, and capturing to disk at up to 50 MB/s. In order to achieve the required 50 MB/s disk throughput, 3 SCSI Ultra 2 Wide disks (Seagate Cheetah) are used in a RAID configuration. Double the disk throughput could be achieved by writing a custom frame grabber device driver, which would write the images directly to the SCSI controller, instead of buffering the images to memory (which requires transmitting them over the PCI bus twice) [Cutler:1999]. Newer dual 64-bit PCI bus systems (such as the Dell Precision Workstation 620) could write over 102MB/s to disk while capturing 4 cameras at full speed.
Figure 3: Keck lab schematic
Table 1: Data throughput requirements
The hardware used in the Keck lab includes the following:
The Kodak ES-310 cameras have a resolution of 648x484x8 and can operate at up 85 FPS in full frame progressive scan mode (speeds up to 140 FPS can be achieved using a smaller region of interest window). The ES-310 has a 10-bit digitizer for each pixel, in which the user can select which 8 bits are used for digital output. The ES-310 can be configured using either a RS-232 or RS-485 interface. In the Keck Lab, we have designed a RS-485 network to configure the 64 ES-310 cameras.
48 of the of cameras are grayscale (ES-310), while 16 of the cameras are color (ES-310C). The color cameras are identical to the grayscale cameras, except for the addition of a Bayer color filter mask on the CCD, shown in Figure 4, and an IR filter (required for accurate color interpolation). To process the images from the color cameras, color pixel (RGB) values need to be interpolated. Programs and source code for color interpolation are provided in the Programs and Source Code section.
Figure 4: Bayer color filter mask used on Kodak ES-310C
All 64 cameras are frame synchronized using a TTL-level signal generated by a Data Translation DT340. For video acquisition, the synchronization signal is used to simultaneously start all cameras. No timecode per frame is required.
The 17 PCs are named keck00-keck16. keck16 is the controller PC, and contains the DT340 Digital IO board and RS-485 board.
The software for video acquisition has been custom written for the Keck lab, using the following tools:
Click here for more about image acquisition.
The Keck lab is currently configured to capture up to 896 MB of video into upper memory (above the 128 MB allocated for Windows NT). This corresponds to 2995 648x484 frames. The maximum capture durations are given in Table 2. The capture durations can be increased by a factor of 2.14 by expanding the PCs from 1 GB to 2 GB.
Table 2: Maximum capture durations
The 450 MHz Pentium II is capable of 1800 MIPS, using the MMX operations [Cutler:1999]. With dual CPUs per PC, this provides significant computational power for real-time computer vision applications. The Dell 610 is capable of being upgraded to faster Pentium III processors, which would further increase the computational capabilities.
Each Dell 610 PC has a 100 Mbits/s Ethernet adapter, which is connected to a 3COM Ethernet switch. The effective throughput is such that each PC can communicate up to 10 MBytes/s to any other PC.
The quadranocular camera nodes of the Keck lab are designed to facilitate stereo depth computations. The trinocular baseline is adjustable from 150 to 300 mm. With a 300 mm baseline, a distance of 6' between the object and camera, and assuming single pixel correlation accuracy, then the depth precision is 26 mm. The depth precision for a range of baselines is given in Figure 5.
Figure 5: Stereo depth error as a function of baseline
In selecting the lenses for use with the Keck lab, we considered both the field of view and lens distortion (in general, as FOV increases, so does the lens distortion). We compared the image distortion for 3 commonly available C-mount lenses, using a line pattern commonly used for camera calibration purposes. From the images shown below, the Schneider lens clearly had the least amount of distortion. Moreover, the Schneider lens was the only lens tested that did not have significant defocus near the perimeter of the images. Note that while certain types of lens distortion (e.g., radial) can be corrected in software, image defocus cannot be easily corrected, particularly within a real-time system.
Figure 6: Schneider 8mm lens
Figure 7: Canon 7.5mm lens
Figure 8: Cosmicar 6mm lens
To facilitate strong calibration of the camera system, a Peak Performance calibration frame is utilized (see Figure 9). The calibration frame contains 25 white balls (1'' in diameter), each of which has a known location accuracy of 1 mm. Additional hardware, such as a 1 m length wand with LED's at known locations, are also used for weak calibration.
Figure 9: Calibration frame
The ES-310 cameras use custom RS-422 cables to the Matrox Meteor2/digital boards (the Meteor2/digitals are TTL, since they were $100 cheaper and the RS-422 versions were delayed 1 year). The cables were made by modifying a Matrox open ended cables (Capital Cable did the modification). The resulting cable was $100 each, significantly cheaper than a $600 custom cable from other vendors. The pinout of the cable is given below:
DB100 |
SCSI3 (male) |
DB100 |
DB9 (female) |
|
15 |
10 |
|
23 |
4 |
16 |
44 |
|
57 |
3 |
13 |
11 |
|
22 |
1 |
14 |
45 |
|
56 |
2 |
11 |
13 |
|
|
|
12 |
47 |
|
|
|
9 |
14 |
|
|
|
10 |
48 |
|
|
|
7 |
15 |
|
|
|
8 |
49 |
|
|
|
5 |
16 |
|
|
|
6 |
50 |
|
|
|
3 |
19 |
|
|
|
4 |
53 |
|
|
|
1 |
20 |
|
|
|
2 |
54 |
|
|
|
39 |
29 |
|
|
|
40 |
63 |
|
|
|
33 |
26 |
|
|
|
34 |
60 |
|
|
|
35 |
25 |
|
|
|
36 |
59 |
|
|
|
95 |
30 |
|
|
|
96 |
64 |
|
|
|
50 |
1 |
|
|
|
31 |
2 |
|
|
|
32 |
36 |
|
|
|
29 |
3 |
|
|
|
30 |
37 |
|
|
|
27 |
4 |
|
|
|
28 |
38 |
|
|
|
25 |
5 |
|
|
|
26 |
39 |
|
|
|
23 |
6 |
|
|
|
24 |
40 |
|
|
|
21 |
7 |
|
|
|
22 |
41 |
|
|
|
19 |
8 |
|
|
|
20 |
42 |
|
|
|
17 |
9 |
|
|
|
18 |
43 |
|
|
|