Computer Vision and Computational Photography

The field of Computer Vision groups together many technologies and algorithms aimed at processing and understanding image data gathered from the real word. Representation of this data can be presented and even used to drive action.

Computer Vision is heavily used in modern smartphone devices. Applications include image filters that can be applied to photos to improve the quality or add effects, face detection that can be used to tag family and friends, HDR photography (where multiple shots are taken at different exposures and then combined), panoramic stitching, image stabilization as a few examples.

Computational Photography is the area of computer vision that groups software and hardware technologies aimed at complementing and enhancing digital photography. The output of these techniques is an ordinary photograph, but one that could not have been taken by a traditional camera. GPU Computing provides the computational horsepower required to enable software to compensate for the limitation of hardware  such as small sensors, poor quality lenses, compared to professions DLSR cameras.

Computer Vision - User Case

Computer Vision is also used  in the automotive space in Advanced Driver Assistance (ADAS) and Pedestrian Safety (PSS) Systems. Recognition systems are evolving towards intelligent systems able to prevent and mitigate accidents, which  increase the compute requirements.  More pre-processing is required due to the increase in resolution and number of sensors being utilized (mono to stereo plus infrared). Pedestrian appearance is subject to significant variability  such as posture, clothes and  viewing angles. Generation of candidate points of interest, object classification, verification and refinement, possibly tracking all adds up to a very busy pipeline. Cognitive feedback is also being introduced (machine learning). Real time requirement of PPS have been a principal restriction on the features and algorithms.

Computer Vision is also deployed today in industrial, embedded and robotic systems.

Increasing resolutions, data complexity and real time constraints continue to drive the need for more computation power in computer vision. GPU Computing addresses this by providing acceleration for compute intensive tasks, and GPUs are particularly suited to this type of algorithms due to their parallel nature. GPU Computing will also enable new use cases, as developers will no longer be restricted by  computational limitations.