Computer vision is a world of knowledge and a decades-long research pursuit. Unlike many other disciplines, computer vision is not strongly hierarchical or vertical, which means new solutions for given problems are not always better and may not be based on preceding work. Being an applied field, computer vision algorithms are created with attention to the following aspects, which may explain the non-vertical development:
- Computation resources: CPU, GPU, embedded system, memory footprint, network connectivity.
- Data: Size of images, number of images, number of image stream (cameras), data type, sequentiality, lighting conditions, types of scenes, and so on.
- Performance requirements: Real-time output or another timing constraint (for example, human perception), accuracy and precision.
- Meta-algorithmic: Algorithm simplicity (cross-reference Occam's Razor...