Humans recognize visual objects with such ease that it is easy to overlook what an impressive computational feat this represents. Any given object in the world can cast an effectively infinite number of different images onto the retina, depending on its position relative to the viewer, the configuration of light sources, and the presence of other objects in the visual field. In spite of this extreme variation, biological visual systems are able to effortlessly recognize at least hundreds of thousands of distinct object classes—a feat that no current artificial system can come close to achieving.
We’re interested in reverse engineering biological visual systems. However, we would argue that any serious effort to reverse engineer a system should also include a component of forward engineering. For our purposes, this entails attempting to take principles we’ve learned from natural systems and build them into working artificial computer vision systems.