# Towards Automatic Image Enhancement with Genetic Programming and Machine Learning
## 2 Related Works  
There are multiple types of IE techniques with different purposes and characteristics. The research around this field revolves around Machine Learning models, computer vision pipelines by applying filters, or both. This section reviews the works related to IE techniques, Classical or using Machine Learning, which are more related to our approach. IE is a sub-field of computer vision and image processing [10] that aims to develop ways of improving the perception of an image specific feature or general quality, by a person or a computer, in a specific context [6]. Although, by definition, IE can be performed manually, this work will focus on automatic IE achieved algorithmically or via Machine Learning. Automatic IE bears interesting challenges, specifically when trying to manipulate multiple aspects of the image at the same time, because individual features are not independent of each other. Figure 1 proposes a high-level taxonomy divided into three main layers, for IE techniques. The first layer from the top, Environment, divides the context where a technique is inserted in two categories, Static and Adaptive. Static means that, after the deployment of such technique, there are no changes to itself or surrounding components that affect said technique performance. Adaptive, on the other hand, implies the existence of some change to the technique or surrounding components to improve its performance over time. The second layer, Behavior, divides the way a technique reacts to different inputs in two categories, versatile and non-versatile. Versatile means that the technique is capable of properly handling input images with different characteristics, whereas non-versatile techniques are specialized on a single type of image. The third layer, Functions, divides the technical foundation of each technique in 4 categories, Classic, Evolutionary, Machine Learning, and Hybrid. Classic refers to techniques based on mathematical and statistical evaluation and manipulation of the input image in order to improve it. Evolutionary and Machine Learning refer to techniques based on Evolutionary computation methods, which are inspired by biological evolution mechanisms, and Machine Learning methods, respectively. The Hybrid category encompasses techniques that take advantage of different technical foundations that belong in different categories. Finally, all these layers converge on the type of improvement trying to be achieved. Common approaches seek to improve images aesthetically by manipulating their brightness and contrast. However, other manipulations are also possible, such as image super-resolution, automatic selective crop, and artifact removal. Next, we will discuss what these mean and present some research examples for each one. Figure 1: Proposed taxonomy for image enhancement techniques. As we are interested in enhancing the perceived aesthetics for humans, we should focus on aspects of the image that most appeal to the human eye. Perceptual IE is a subcategory of IE that includes models that take in consideration the _\"Principles of Human Visual System (HVS)\"_ to better enhance images [11]. A few of the most important principles that have played important roles in existing methods are _contrast sensitivity function_ that maps how the human eye reacts to different levels of contrast in different situations; _multi-scale and multi-orientation decomposition_, which explains how the human eye adjusts objects at various scales, orientations and distances; and visual masking, that refers to the phenomenon that occurs when an image appears to have lower contrast or brightness when surrounded by other stronger stimulus called the mask [11]. Concerning Classical IE techniques, [PERSON] et al., in Reference [12], proposed a noise reduction pipeline that starts with a hybrid camera system that takes a near-infrared flash photo (\(N\)) at the same time as the normal photo (\(V\)) is taken. In 2016, [PERSON] et al.