Computer vision systems use digital image processing and analysis techniques to interpret and understand images. There are many approaches to computer vision including edge detection, segmentation, shape and texture description, as well as techniques for image enhancement, restoration, compression and more. While human vision is very good at tasks like recognition and navigation, computer vision is still limited and faces challenges from changes in lighting, occlusion, and ambiguity.