Saturday 23 October 2010

Stereo vision camera system

Here is a camera module for ITE. Two fast web cameras Philips 2050nc (up to 90 FPS @ 640x480, 6 FPS @ 1600x1200, 20 FPS @ 800x600), with very low-noise images is a good/cheap choice for computer vision. Both cameras are mounted on pitch aluminium plate connected to a geared stepper motor MP35EA (12V, 92mA, 4-Phase bipolar, gear ratio 1:85, torque = 0.4 kg*cm = 5.6 oz-in). The inter-lens distance is 0.12 m = 4.725 in) - picture on the left. Since the right camera is rotated by 180°, the software rotation of captured images is required. 
The test platform (right picture) can also perform rotation by the vertical axis (stepper motor, bipolar, 24V, 0.5A). Since there is no slip ring for USB cameras' data transfer, the expected yaw angle is ±230-270° (some experiments required), the horizontal rotation angle is -85°..+110° (0° - horizontal line).
All my control boards are designed for a closed loop control (feedback angle is measured by optical sensor and corrections applied after each motor step if required). The pitch rotation motor does not have a secondary shaft, so the feedback wheel will be mounted on a plate's output shaft and a sensor will be mounted from the side. Bottom motor has a secondary shaft, so encoder wheel is mounted thru the special shaft coupling (on picture below the wheel is not yet installed).

I will describe a sensor system in details in next posts, when demonstrating a camera movement control and a video capture. Below there is a mounting place for a sensor (optical interrupter TCST1103/1202).

I'm planning to publish here run tests of my application (OpenCV+Qt) for image capture and disparity map generation within 4 weeks.
Currently I'm busy on programming (upgrading) my parallel neural network application (also using GPU /w OpenCL). I will post results and an application here about it within two weeks.

ITE::System modules scheme

Preliminary design of ITE's components interconnection.

Currently I have only a 180W DC-ATX power supply, but I will be able to add more power later (by parallel usage of several DC/DC converters). I have the only motion motor control module currently in alpha-stage, but it's working well. The control system's data storage will use one HDD (for archiving data, a lot of space is required) and one SSD (for system - Linux). Similar installation showed the successful start up with Windows XP as primary OS. A mid-end GPU (180 W peak approx.) will be used for computationally intense highly parallel computer vision tasks and image processing (preferably OpenCL-based). Computer vision tasks are foreseen to have better (computing power)/(consumed electric power) ratio on GPU as compared to multicore CPU. Also, near real-time image processing will probably show up as hard-to-implement.
Locations of visitors to this page