One of my areas of research has been computer vision for robotic applications. 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 useful in unstructured environments. Computer vision equips robots with the sensory feedback necessary to help automate the drudgery of repetitive tasks. It has applications in product inspection, material sorting, quality assurance, and assembly. 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 including hostile environments such as humanitarian de-mining, hazardous waste clean-up, and space exploration. Computer vision can also serve human well-being in applications like lane-departure warning systems, collision avoidance, medical imaging, and search and rescue. Computer vision has vast opportunities to be directed towards the public good.
One area of my research has focused on computer vision using machine learning (ML). For example, subspace vision techniques operate by "learning" the appearance or position of an object and therefore do not rely on having predefined models. Another approach to machine learning is support vector machines (SVMs) which can also be applied to computer vision. Some of my 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 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 which has been explored is the application of SVMs for the visual sorting of recyclable goods, an example of computer vision being directed towards environmental sustainability and eliminating the drudgery of hand-sorting.
Other 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 can be likened to "drinking from a firehose". FPGAs can exploit the parallelism found in computer vision tasks much better than conventional CPUs. 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.
Another area of interest is exploring GPUs (Graphical Processing Units), whose highly parallel structure makes them effective for certain computer vision tasks. For example, the CUDA (Compute Unified Device Architecture) is a parallel computing architecture developed by NVidia that can be programmed to executed numerous threads simultaneously. Architectures like CUDA are atttractive for tackling highly parallel computer vision tasks that require real-time performance.
Most of my research would not be possible without the help of capable students. Some of selected publications are listed below (* denotes student researchers):
For a time, my research and work focused on power electronics for use in electric vehicle (EV) applications (before it was cool). My work focused mostly on the design of embedded systems and power electronics for traction drive systems. Here are a few publications related to that work: