Spatially adaptive image filtering
By using a convolutional neural network selection mechanism in an image processor to select appropriate filters from a discrete filter bank, the problem of increased training data and parameters caused by the translational invariance of convolutional neural networks in image processing is solved, resulting in more efficient image processing and improved computer vision tasks.
Patent Information
- Application Number
- CN201980102145.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-11-14
- Publication Date
- 2025-11-21
- Estimated Expiration
- 2039-11-14
AI Technical Summary
Existing convolutional neural networks in image processing require more training data and learnable parameters due to translational invariance, increasing memory and runtime, and cannot effectively perform unique analysis based on image content.
By using a convolutional neural network selection mechanism in the image processor, appropriate filters are selected from a discrete filter bank based on image content and features and applied to different regions of the image. Combined with a regularizer, variability is applied to the filter bank, breaking the translational variability.
It enables unique analysis based on image content, reduces the need for training data and learnable parameters, and improves the efficiency and quality of image processing, especially performing well in computer vision tasks.
Smart Images

Figure CN115053256B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to image processing, and more particularly to image filtering. Background Technology
[0002] Convolution is a mathematical operation that represents the amount of overlap when one signal is shifted onto another. Convolution is a crucial part of convolutional neural networks (CNNs), which use convolutional layers to extract features from an image (or the output of the previous layer). In CNNs, convolutional filter weights (forming kernels) are learned, and through this process, convolutional layers extract optimized information that helps solve specific tasks such as image denoising or classification.
[0003] Therefore, convolution (in general) and convolutional layers (specifically) are used as fundamental operations for successful image analysis in many image processing and advanced computer vision problems. The sharing of learnable kernels allows for a simple method to extract task-specific features. Furthermore, these operations can be implemented in an optimized and parallel manner, enabling fast processing of images and videos of arbitrary sizes.
[0004] Beyond the advantages of convolution, once the kernel is learned, the processing of any input is designed to be identical. Specifically, the content independence of convolution stems from the fact that the same kernel can be applied to all locations in any image regardless of its content; a property known as spatial isovariance.
[0005] However, in practice, the content and conditions vary, inevitably forcing the deployment of more training data, augmentations, and learnable parameters, which constitute a simple solution to the problem at hand. One paradigm shift approach is to use content-adaptive filtering, which adjusts the processing of the input based on statistical cues derived from the image or dataset. Therefore, different images will be analyzed uniquely based on the content they describe.
[0006] Several methods have been proposed to achieve content adaptation. Nonlocal means and bilateral filtering utilize features and neighborhood statistics to adjust image filtering according to content. With the advent of deep learning, many of these spatial variation techniques have been introduced in a differentiable manner into existing neural networks as layers.
[0007] Many computer vision methods heavily rely on the translational variability and spatial sharing properties of convolutional layers without explicitly considering the input content. Typically, when performing convolution, the same kernel is applied to all locations in any image, regardless of the content. However, in practice, the content of different regions of an image varies greatly. To cope with this variability, convolutional neural networks require more training data (larger datasets and / or data augmentation) and more learnable parameters, which increases memory usage and runtime.
[0008] Recently, deep neural networks have been developed that can predict the convolutional kernel needed for each pixel. In practice, this can be limiting because it requires learning a large number of parameters to predict large convolutional kernels, such as those common in deep CNNs for image classification. For example, the following paper uses a deep neural network with millions of parameters to predict how a set / burst of images needs to be properly aligned and subsequently merged into a single artifact-free image: Ben Mildenhall et al., “Burst Denoising Using Kernel Prediction Networks,” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018.
[0009] A method to solve these problems needs to be developed. Summary of the Invention
[0010] According to one aspect, an image processor for transforming an input image is provided, the image processor being configured to implement a trained artificial intelligence model, wherein the image processor is configured to: receive the input image; process the image by the trained artificial intelligence model based on (i) the content of the input image and / or (ii) features extracted from the input image to: (i) determine a set of image filters; (ii) for each of a plurality of sub-regions of the image, select an image filter from the set of image filters; and for each of the plurality of sub-regions of the image, apply the corresponding image filter to the sub-region or to features extracted from the sub-region.
[0011] Each of the plurality of sub-regions can be a pixel of the input image. A pixel is one of many regions that make up the image. For example, an image may include 64×64 pixels. This allows a filter to be determined for each pixel of the image based on the content of the pixel or the region surrounding the pixel.
[0012] For each of the plurality of sub-regions of the image, the selected image filter can be applied to the features extracted from the sub-region, the features being defined in the form of tensors. This allows the filter to be applied in the intermediate stages of the image processing operation.
[0013] The image processor can also be used to select an image filter from the set of image filters for each of the plurality of sub-regions of the image, based on (i) the content of the corresponding sub-region of the image and / or (ii) features extracted from the corresponding sub-region of the image. This allows an appropriate filter to be applied to a specific pixel of the image.
[0014] The image processor can also be used to select an image filter from the set of image filters, for each of the plurality of sub-regions of the image, based on (i) the content of the region surrounding the corresponding sub-region of the image and / or (ii) features extracted from the region surrounding the corresponding sub-region of the image. Considering the region surrounding the sub-region, such as pixels, allows for the application of an appropriate filter to a specific pixel of the image.
[0015] The trained artificial intelligence model can be a convolutional neural network. This can be a convenient implementation method.
[0016] The convolutional neural network may include a regularizer that imposes variability on the learned set of image filters. Regularizing the filter bank during training to decorrelate it can produce a unique and diverse set of operators.
[0017] The set of image filters may include a predefined number of discrete filters. Each image filter in the set of image filters can be unique to the other members of the set. This avoids a set of redundant kernels.
[0018] Each image filter in the set of image filters can be a kernel. A kernel is a set of filters. This allows multiple filters to be applied to sub-regions of an image during image manipulation.
[0019] The set of image filters may include kernels with at least two different sizes. Therefore, the method can support kernels of any size.
[0020] The image processor can be used to perform one or more of the following image operations: demosaicing, over-resolution, semantic segmentation, and image classification. Therefore, the method can be used for a range of low-level and high-level computer vision problems.
[0021] According to a second aspect, a method is provided implemented at an image processor for transforming an input image, the image processor being used to implement a trained artificial intelligence model, the method comprising: receiving the input image; processing the image by the trained artificial intelligence model based on (i) the content of the input image and / or (ii) features extracted from the input image to: (i) determining a set of image filters; (ii) for each of a plurality of sub-regions of the image, selecting an image filter from the set of image filters; and for each of the plurality of sub-regions of the image, applying the corresponding image filter to the sub-region or to features extracted from the sub-region.
[0022] Each of the plurality of sub-regions can be a pixel of the input image. This allows a filter to be determined for each pixel of the image based on the content of the pixel or the region surrounding the pixel.
[0023] The set of image filters may include a predefined number of discrete filters. Obtaining a set of learnable and decorrelationable filters or kernels can facilitate content-based image enhancement. Attached Figure Description
[0024] The invention will now be described by way of example with reference to the accompanying drawings. In the drawings:
[0025] Figure 1 An example of a method implemented at an image processor for transforming an input image is shown;
[0026] Figure 2 An example of applying the method described in this paper to an input image in a spatial adaptive filtering unit is shown;
[0027] Figure 3 An example of a camera used to implement the methods described in this article is shown;
[0028] Figures 4(a) to 4(j) The method described in this paper is compared with other methods on a spatially adaptive dataset. Detailed Implementation
[0029] This paper describes a filtering unit for an image processor that performs differentiable selection of filters from a discrete, learnable, and decorrelational filter bank. The selection can be performed pixel-wise (or other sub-regions of the image), thus the computation can vary spatially depending on the input content. A compact CNN network can be used to perform the filter selection, which is implicitly trained to select filters based on features extracted from the input. The end result is the application of filters to the image or tensor to be filtered in a spatially varied manner.
[0030] A common approach to implementing convolutional layers in CNNs is to use kernels that support size k. (A set of filters) and input The matrix-vector product between them. Kernel W will input channel c. in The linear transformation is c out The design takes into account the correlation between channels.
[0031] Output The form is:
[0032]
[0033] The neighborhood is defined as
[0034] As shown in Equation (1), the same weights are applied to every location of x. This is a known property of convolutional layers, known as translational isovariance. While this has driven progress in computer vision tasks, weight sharing across all locations does not effectively produce outputs that correctly vary spatially. This inherent failure stems from the fact that loss gradients from all image locations are fed into a global kernel, which is trained to minimize the error at all locations. In practice, the same problem arises in various problems requiring dense prediction or regression, such as image segmentation, restoration, and augmentation.
[0035] The method described in this paper does not apply the same kernel to all pixels as described above, but rather selectively breaks the homovariability by choosing which filters (or kernels) should be deployed in which locations on the image from a discrete set. This is called spatially variable convolution. Preferably, the kernel... The group contains n discrete kernels. In this case, the spatially variable convolutional layer is defined as:
[0036]
[0037] Where z∈R h×w×n It is a one-hot encoded index indicating which of the n kernels in the group should be selected for each pixel. The selection index z is predicted from the kernel selection mechanism f, which filters the image as input, i.e., z = f(x). As can be seen from Equation 2, different regions of the image use different kernels. Filtering is performed to selectively break the translational isovariance property of the convolutional layer.
[0038] An example of a kernel selection mechanism will now be described.
[0039] Discrete kernel selection based on input content can be learned using available training data. To extract features of interest, a compact CNN can be used to receive an image or embedding x∈R. h×w×n As input and providing probability As output, these probabilities represent the likelihood that each filter is best suited for a particular pixel. The CNN can be implicitly trained by minimizing the task-specific loss to select the optimal kernel from the group, which is also learned simultaneously.
[0040] Preferably, the selection can be applied discretely, and the CNN can be configured to deploy the most reliable arg max z from the group at each pixel based on the kernel selection. ij However, the arg max function is non-differentiable, making it unsuitable as a core component in modern deep learning literature.
[0041] The problem of discrete choice can be solved using the differentiable relaxation of the Gumbel-Max Trick (as described in the following references: Emil Julius Gumbel, “Statistical theory of extreme values and some practical applications: a series of lectures”, No. 33, U.S. Government Printing Office, 1954; and Xu Jia, Bert De Brabandere, Tinne Tuytelaars, and Luc V. Gool, “Dynamic filter networks”, Advances in Neural Information Processing Systems, pp. 667-675, 2016), which proposes that sampling of discrete random variables can be transformed into a given deterministic choice.
[0042] The arg max operation of Gumbel-Trick can be replaced by a differentiable soft max and the temperature τ, as shown below:
[0043]
[0044] As τ→0, the function asymptotically approximates the argmax function, while as τ→∞, it approximately returns samples from a uniform distribution.
[0045] A pass-through Gumbel-softmax estimator can be used, which discretizes the selection into two variables during the forward pass and computes the selection based on the continuous selection probability z during the backward pass. This pass-through estimator allows for faster convergence and an intuitive kernel selection graph, although significant inconsistencies between the forward and backward passes theoretically lead to biased gradient estimations.
[0046] The preferred component for robust selection is a regularizer, which imposes variability on the learnable filter bank. This form of regularization penalizes simple schemes where all filters are identical, and the filter selection for each pixel can be as good as random. However, when used in deep neural networks, filters that are distinct from each other act as unique linear operators or feature extractors. Their application will produce different results, which will increase the expressiveness of the learnable filter or kernel bank by suppressing any redundancy. To maximize dissimilarity and variability, a cosine distance can be penalized between a set of kernels. This can be achieved by first normalizing and then applying a regularizer to the matrix. This is achieved by stacking all cores on top, where n p The number of parameters in the kernel is used to minimize the regularization loss:
[0047]
[0048] Where I is the identity matrix.
[0049] When deploying cores of different supported sizes, it is possible to form a matrix W. f Previously, the kernel was padded to the maximum support size. The model can be trained using decorrelation regularization and task-specific loss based on the following conditions:
[0050]
[0051] When using multiple filtering modules, the regularization loss can be the average of the individual losses.
[0052] To address the limitations of spatially covariant convolutional filtering, this paper describes a content-adaptive filtering technique that adjusts the input processing based on statistical cues derived from the image or dataset. Therefore, different images will be analyzed uniquely based on the content being depicted.
[0053] For each of multiple sub-regions of an image, the unit may select an image filter from the set of image filters based on (i) the content of the corresponding sub-region of the image and / or (ii) features extracted from the corresponding sub-region of the image. The unit may select the image filter from the set of image filters based on the content (or features extracted from) the sub-region or the region surrounding the sub-region. This allows appropriate filters to be applied to specific sub-regions of the image.
[0054] Similar to traditional CNNs, a set of convolutional kernels is learned in the convolutional layers to provide task-specific filters. However, a filter selection mechanism is also learned, which identifies which kernel to apply to each pixel. In this way, convolutional filtering can vary from pixel to pixel in an image.
[0055] Therefore, this method has two main interrelated features:
[0056] - Select the optimal filter to apply to each pixel in an image or tensor (from a discrete set). The filter selection mechanism can be implemented as a classifier using a lightweight convolutional neural network.
[0057] - Task-specific filters are learned during training, which allows for the formation of a discrete set of filters. Redundancy between filters is penalized to produce a set that is unique to each other.
[0058] During inference, an optimal filter is selected at each pixel, resulting in spatially varied convolutions. This is locally adjusted based on the image content. These two features enable content-dependent filtering of the image for image processing and computer vision tasks.
[0059] Unlike applying the same kernel to all pixels, the technique described in this paper selectively breaks homovariability by choosing which kernels should be deployed where in the image from a discrete set. The kernel set can contain a predefined number of discrete kernels. Obtaining a set of learnable and decorrelated kernels can facilitate content-based image enhancement.
[0060] The filter selection mechanism is learned using available training data. To extract features of interest, a compact CNN can be used to take an image or embedding as input and provide probabilities as output. The CNN can be implicitly trained to select the optimal kernel from the group, which is also learned simultaneously by minimizing the task-specific loss.
[0061] Preferably, the selection is discrete, and for each pixel, the kernel selection CNN deploys the most reliable kernel from the group (i.e., the filter with the highest probability for a particular pixel) by deploying differentiable selection techniques.
[0062] The preferred component for robust selection is a regularizer, which imposes variability on the learnable kernel set. This form of regularization penalizes simple schemes where all kernels are identical, and kernel selection for each pixel can be as good as random. However, when used in deep neural networks, kernels that are distinct from each other act as unique linear operators or feature extractors. Their application will produce different results, which will increase the expressiveness of the learnable kernel set by suppressing any redundancy. To maximize dissimilarity and variability, a penalty is imposed on the cosine distance between a set of kernels.
[0063] Figure 1An example of method 100 implemented at an image processor for transforming an input image is shown, the image processor being used to implement a trained artificial intelligence model. In step 101, the method includes receiving the input image. In step 102, based on (i) the content of the input image and / or (ii) features extracted from the input image, the image is processed by the trained artificial intelligence model to: (i) determine a set of image filters; (ii) for each of a plurality of sub-regions of the image, select an image filter from the set of image filters. In step 103, for each of the plurality of sub-regions of the image, a corresponding image filter is applied to the sub-region or to features extracted from the sub-region.
[0064] Figure 2 This illustrates the application of the method to the input image 201 in a spatial adaptive filtering unit. The unit calculates kernel W. i The pixel selection is shown as 202 to 205. Then, the kernel W is adjusted according to the predicted selection pattern. i It is applied to the original input. The output of the unit is a tensor with any number of output channels, as shown in 206.
[0065] Figure 3 An example camera is shown for implementing an image processor to process images captured by the image sensor 302 in camera 301. Such a camera 301 typically has some onboard processing capabilities. This can be provided by the processor 304. The processor 304 can also be used for the basic functions of the device. The camera typically also includes a memory 303.
[0066] The transceiver 305 is capable of communicating with other entities 310, 311 via a network. These entities may be physically located away from the camera 301. The network may be a publicly accessible network, such as the Internet. Entities 310, 311 may be cloud-based. In one example, entity 310 is a computing entity, and entity 311 is a command and control entity. These entities are all logical entities. In practice, each may be provided by one or more physical devices (e.g., servers and data storage), and the functionality of two or more entities may be provided by a single physical device. Each physical device implementing an entity includes a processor and memory. The device may also include a transceiver for sending data to and receiving data from the transceiver 305 of the camera 301. The memory stores in a non-transient manner code executable by the processor to implement the respective entity as described herein.
[0067] The command and control entity 311 can train artificial intelligence models used in each module of the system. This is typically a computationally intensive task, even if the resulting model can be efficiently described; therefore, developing the algorithm in the cloud is likely to be efficient, where a large amount of energy and computing resources can be expected to be available. This can be expected to be more efficient than forming such models on a typical camera.
[0068] In one implementation, once the deep learning algorithm is developed in the cloud, the command and control entity can automatically generate the corresponding model and transmit it to the relevant camera device. In this example, the system is implemented at camera 301 by processor 304.
[0069] In another possible implementation, images can be captured by camera sensor 302, and the image data can be sent to the cloud by transceiver 305 for processing in the system. The resulting target image can then be sent back to camera 301, such as... Figure 3 As shown in 312.
[0070] Therefore, the method can be deployed in various ways, such as in the cloud, on a device, or in dedicated hardware. As mentioned above, cloud facilities can perform training to develop new algorithms or improve existing ones. Depending on the computing power close to the data corpus, training can be performed near the source data or in the cloud, for example, using an inference engine. The system can also be implemented in a camera, dedicated hardware, or in the cloud.
[0071] The method is applicable to low- and high-level computer vision problems, both linear and nonlinear, such as dense prediction and regression tasks and standard image classification. The unit can be used to replace convolutional layers in standard neural networks for tasks such as image demosaicing, super-resolution, image classification, and segmentation, or for combinations of these tasks (e.g., joint denoising and demosaicing problems).
[0072] The proposed method can be applied to the explicit linear domain of demosaicing and out-of-resolution problems, where runtime performance is critical. In both problems, experimental results in some implementations outperform competing linear methods, while achieving competitive accuracy using commonly used nonlinear methods. Furthermore, the proposed filtering unit can replace convolutional layers in established deep neural networks proposed in the literature for the aforementioned problems, as well as for classification and segmentation tasks.
[0073] For the linear case, as a first step, the method can be trained and tested as a single linear scheme for image processing tasks. Note that although the kernel selection mechanism is non-linear, the application of the kernel to each selected pixel constitutes a purely linear transformation. Despite the limitations in expressiveness of the method due to this form, the end result is a real-time running application and competitive performance is achieved in more complex non-linear systems. Furthermore, the method allows for kernel groups with different support sizes.
[0074] Figures 4(a) to 4(j) The paper compares the method described in this paper with other methods on the Spatially Adaptive Dataset (SAD). SAD contains an 89×89 image with random uniform color noise sampled from (0; 1] and black pixels randomly sampled from a predefined square grid of size 87×87, as shown in Figure 4(a). The goal is to enlarge all black pixels to 5×5 black squares designed to be non-overlapping, as shown in the ground truth in Figure 4(g), while keeping all other values unchanged. The minimum optimal solution consists of two filters: a Dirac filter and a zero filter. For pixels with random noise, only the Dirac filter keeps them unchanged after filtering, while the zero filter enlarges the black pixels to squares. Therefore, the minimum optimal solution can be characterized as a minimum and an optimal value. Note that black pixels located in the input image can be filtered using both filters without any difference, as shown in Figure 4(j). Figures 4(a) to 4(j) The inspection methods shown include the fully-convolutional neural network (FCNN) in Figure 4(b), the residual FCNN in Figure 4(h), the kernel prediction network (KPN) in Figure 4(c), and the method described in Figure 4(i). All of the above methods are trained to minimize the L1 loss between the output and the ground truth and have approximately the same number of parameters (nearly 35K). Figures 4(a) to 4(j) As can be seen, methods relying solely on translation-invariant convolution may not produce sufficient results because they apply the same kernel to every location in the input image. Therefore, in this implementation, other methods struggle to learn the correct mapping. Figure 4(f) shows two learned filters, and Figure 4(j) shows a heatmap of filter selection.
[0075] The method described in this paper does not modulate or predict kernels, but instead performs differentiable selection of filters from a discrete, learnable, and decorrelational filter bank to achieve content-based spatial adaptation. It is advantageous to select filters for each pixel of the image, thus the computational graph varies spatially according to the content of the input. The filter selection can be performed using a compact CNN network, which can be implicitly trained to select filters based on features extracted from the input. The end result is a spatially varied application of the filters to the image or tensor to be filtered.
[0076] This formula allows for fast and robust core selection with minimal overhead, primarily depending on the number of cores in the set. Therefore, it can support cores of any size.
[0077] Simultaneously, this set of filters or kernels can be regularized during training to decorrelate, thus forming a unique and diverse set of operators. In other words, this set of regularized filters or kernels is subject to high variability, thereby avoiding a set of redundant kernels in simple schemes.
[0078] Performance improvements have been experimentally observed across multiple computer vision tasks, providing strong empirical evidence for the need for spatial adaptability and the benefits of selective filtering. This technique can improve the image quality of image reconstruction. Furthermore, compared to existing classification methods for high-level computer vision tasks, this method achieves better per-pixel or per-image classification.
[0079] Spatially variable convolution allows the method to produce outputs with zero error and learn an optimal filter set. A filter selection heatmap can be generated to describe the filter selected for each pixel. It can be seen whether the choice between two optimal filters is the appropriate one that produces the minimum error. Compared to KPN, the method achieves lower error, while KPN cannot predict the Dirac filter for most pixels that require such a filter.
[0080] Regarding computational overhead, spatially invariant convolutions can be implemented in parallel using the standard im2col and col2im operations, which decompose the spatial resolution of the image into appropriate blocks based on the kernel support size. These blocks can then be easily filtered using per-pixel matrix-vector operations as described in Equation (2). The same implementation is also a known fast solution for spatially invariant convolutions, but modern computing libraries employ a set of low-level optimization techniques to significantly reduce execution time.
[0081] The filtering unit can be deployed as a standalone unit or as part of a deep neural network.
[0082] The processors and methods described in this paper are particularly advantageous for use in applications where runtime is critical. The units can be continuously combined with deep neural networks as an alternative to standard convolutional layers and enhance the original architecture through spatially varied computation, which in turn can significantly improve performance.
[0083] Therefore, this method offers a very attractive advantage in spatial adaptability; which is an important part that is missing in many standard convolutional units (such as those commonly found in CNNs).
[0084] The applicant hereby discloses each individual feature described herein, as well as any combination of two or more such features. With ordinary knowledge of those skilled in the art, such features or combinations can be implemented as a whole based on this specification, regardless of whether such features or combinations of features solve any problem disclosed herein; and without limiting the scope of the claims. This application demonstrates that aspects of the invention can be constituted by any such individual features or combinations of features. Various modifications that can be made within the scope of the invention, given the foregoing description, will be apparent to those skilled in the art.
Claims
1. An image processor for transforming an input image, characterized in that, The image processor is used to implement a trained artificial intelligence model, and the image processor is used for: Receive (101) the input image (201); Based on (i) the content of the input image and / or (ii) the features extracted from the input image, the image is processed (102) by the trained artificial intelligence model to: (i) Determine a set of image filters (202, 203, 204, 205); (ii) For each of the plurality of sub-regions of the image, select an image filter from the set of image filters; For each of the plurality of sub-regions of the image, a corresponding image filter is applied (103) to the sub-region or to features extracted from the sub-region; The trained artificial intelligence model is a convolutional neural network, which includes a regularizer that applies variability to a set of learned image filters.
2. The image processor according to claim 1, characterized in that, Each of the plurality of sub-regions is a pixel of the input image.
3. The image processor according to claim 1 or 2, characterized in that, For each of the plurality of sub-regions of the image, the selected image filter is applied to the features extracted from the sub-region, the features extracted from the sub-region of the input image being defined in the form of tensors.
4. The image processor according to claim 1 or 2, characterized in that, The image processor is further configured to, for each of the plurality of sub-regions of the image, select an image filter from the set of image filters based on (i) the content of the corresponding sub-region of the image and / or (ii) features extracted from the corresponding sub-region of the image.
5. The image processor according to claim 1 or 2, characterized in that, The image processor is further configured to, for each of the plurality of sub-regions of the image, select an image filter from the set of image filters based on (i) the content of the region surrounding the corresponding sub-region of the image and / or (ii) features extracted from the region surrounding the corresponding sub-region of the image.
6. The image processor according to claim 1 or 2, characterized in that, The set of image filters includes a predefined number of discrete filters.
7. The image processor according to claim 1 or 2, characterized in that, Each image filter in the set of image filters is unique to the other members of the set.
8. The image processor according to claim 1 or 2, characterized in that, Each image filter in the set of image filters is a kernel.
9. The image processor according to claim 8, characterized in that, The set of image filters includes kernels with at least two different sizes.
10. The image processor according to claim 1 or 2, characterized in that, The image processor is used to perform one or more of the following image operations: demosaicing, over-resolution, semantic segmentation, and image classification.
11. A method (100) implemented at an image processor for transforming an input image, characterized in that, The image processor is used to implement a trained artificial intelligence model, and the method includes: Receive (101) the input image (201); Based on (i) the content of the input image and / or (ii) the features extracted from the input image, the image is processed (102) by the trained artificial intelligence model to: (i) Determine a set of image filters (202, 203, 204, 205); (ii) For each of the plurality of sub-regions of the image, select an image filter from the set of image filters; For each of the plurality of sub-regions of the image, a corresponding image filter is applied (103) to the sub-region or to features extracted from the sub-region; The trained artificial intelligence model is a convolutional neural network, which includes a regularizer that applies variability to a set of learned image filters.
12. The method according to claim 11, characterized in that, Each of the plurality of sub-regions is a pixel of the input image.
13. The method according to claim 11 or 12, characterized in that, The set of image filters includes a predefined number of discrete filters.