Computer and Robot Vision Lab

One of my areas of research has been computer vision. Computer vision is not only a fascinating field of study, but it has a numerous beneficial applications. Vision is a rich sensing modality capable of providing detailed feedback suitable for monitoring and control, particularly in unstructured environments. Computer vision equips robots with the sensory feedback necessary to help automate the drudgery of repetitive tasks. It finds applications in product inspection, material sorting, and quality assurance. It has important environmental applications such as satellite remote sensing and environmental monitoring. Computer vision helps robots operate reliably in situations where it is not practical or safe for a human to be present. This includes important applications in hostile environments such as search and rescue, humanitarian de-mining, hazardous waste clean-up, and space exploration. Computer vision lends itself to safety applications such as lane-departure warning systems and traffic monitoring. The applications for computer vision are many and varied. With steady advances in processing speeds, the field of computer vision remains an area with exciting research opportunities.

One area of my research has focused on subspace vision techniques which operate by "learning" the appearance or position of an object and therefore do not rely on having predefined models. Much of this work involves improving the robustness of subspace vision systems in the presence of occlusions. In the case of a mobile robot, the appearance in subspace can be used to perform robot localization or to locate landmarks.

Robot in the hallway

Another area of interest to me is Support Vector Machines (SVMs) and their application to computer vision. Some of my recent research has explored the use of SVMs for classifying objects or obstacles in an image. Given a data set, an SVM attempts to identify a hyperplane which separates different classes of data. The hyperplane is then used as a classification boundary to predict which class to which a data point belongs. The SVM provides a powerful tool for pattern recognition in a variety of computer vision applications. One application which has been explored in our research is the use of SVMs to identify obstacles for mobile robots. Another area wich has been explored is the application of SVMs to the visual sorting of recyclable goods.

Some of my recent research has explored the use of FPGAs (Field Programmable Gate Arrays) for computer vision. The large amount of data and computations in computer vision applications can present a challenge for conventional microcomputers. Performing real-time image processing on a typical video signal streaming at 60Hz can be likened to "drinking from a firehose". FPGAs can exploit the parallelism found in computer vision tasks much better than conventional CPUs. Rapidly increasing FPGA chip densities and special features and development tools have simplified the task of designing for FPGAs, making them increasingly attractive for computer vision tasks. FPGAs can be readily designed with custom parallel digital circuitry tailored for performing various image processing tasks making them well-suited for high-speed real-time vision processing systems.

Robot in the lab

Another area of interest is exploring GPUs (Graphical Processing Units), whose highly parallel structure makes them effective for certain computer vision tasks. Sometimes this application of GPUs is referred to using the acronym GPGPU (General-purpose computing on graphics processing units). For example, the CUDA (Compute Unified Device Architecture) architecture is a parallel computing architecture developed by NVidia that can be programmed to executed numerous threads simultaneouly. Architectures like CUDA are atttractive for tackling highly parallel computer vision tasks that require real-time performance.

Some Interesting Links