Training method of artificial neural network model for correcting image color, and image color correction method using trained artificial neural network model

The method trains an artificial neural network model using paired color correction images and ordered program execution to efficiently handle multiple image processing tasks, reducing time and costs while improving performance.

WO2026111208A1PCT designated stage Publication Date: 2026-05-28FOUR BY FOUR INC +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
FOUR BY FOUR INC
Filing Date
2025-10-23
Publication Date
2026-05-28

AI Technical Summary

Technical Problem

Conventional artificial neural networks face challenges in efficiently handling multiple image processing tasks like color correction, saturation, brightness adjustment, and gamma correction due to increased network size and time-consuming iterative training, with uncertain learning outcomes.

Method used

A method for training an artificial neural network model that involves storing pairs of before-and-after color correction images as training data, obtaining parameter values, executing color correction programs in a preset order, and minimizing the difference between transformed and corrected images using a loss function.

Benefits of technology

This approach reduces training time and costs while enhancing the likelihood of achieving desired performance levels in image color correction tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025016879_28052026_PF_FP_ABST
    Figure KR2025016879_28052026_PF_FP_ABST
Patent Text Reader

Abstract

The present specification provides a training method of an artificial neural network model for correcting image color and an image correction method using a trained artificial neural network model. The training method of the artificial neural network model according to the present specification uses, as training data, a pair of images before and after color correction. In the training method, the image before color correction is input into the artificial neural network model, N parameter values (N is a natural number) are obtained from the artificial neural network model, and at least one color correction program is executed according to the obtained parameter values, whereby a converted image, the color of which has been converted from the image before color correction contained in the training data, may be obtained. In addition, the artificial neural network model may be trained such that a difference value between the image after color correction contained in the training data and the converted image is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Training method for an artificial neural network model for image color correction and image color correction method using the trained artificial neural network model

[0001] The present invention relates to an artificial neural network model, and more specifically, to a learning method for an artificial neural network model and a color correction method.

[0002] The present application claims priority based on Korean Patent Application No. 10-2024-0166940 filed in the Republic of Korea on November 21, 2024, and all contents disclosed in the specification and drawings of said application are incorporated into the present application.

[0003] The content described in this section merely provides background information regarding the embodiments described in this specification and does not necessarily constitute prior art.

[0004] An Artificial Neural Network (ANN) implements artificial intelligence by connecting artificial neurons that mathematically model the neurons constituting the human brain. Various technologies utilizing artificial neural networks—that is, artificial intelligence—are developing, and significant advancements in AI are taking place particularly in the field of image processing using Convolutional Neural Networks (CNNs).

[0005] Referring to FIG. 6 or FIG. 7 of Korean Patent Publication No. 10-2022-0152864, a conventional artificial neural network related to image processing is described. An artificial neural network according to the prior art receives an image as input and outputs a color-processed image. That is, both the input and output data have the format of image data.

[0006] As with conventional artificial neural networks, when processing only a single element (e.g., color addition) is required, the size of the image-based neural network is not excessively large, and the training process is not overly burdensome. However, when many processing elements are required—for example, when multiple elements such as color correction, saturation correction, brightness adjustment, and gamma correction must be handled simultaneously—the size of the artificial neural network will naturally increase proportionally. Furthermore, in order for the artificial neural network to output an image with each color correction completed, iterative training must be performed until it can produce results identical to existing color correction algorithms; thus, the training process will also increase proportionally.

[0007] Not only is there a problem of time and cost increasing proportionally, but it is also questionable whether the learning results can even reach the required standards.

[0008] The present specification aims to provide a method for training an artificial neural network model for correcting image colors and a method for correcting image colors using the trained artificial neural network model.

[0009] This specification is not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by a person skilled in the art from the description below.

[0010] A method for training an artificial neural network model according to the present specification for solving the above-described problem is a method for training an artificial neural network model executed in a computing device comprising at least one processor and a memory that stores instructions executable by said processor, and may include: (a) a step of storing at least one pair of an image before color correction and an image after color correction as training data in the memory by said at least one processor; (b) a step of inputting the image before color correction into an artificial neural network model by said at least one processor and obtaining n (n is a natural number) parameter values ​​from said artificial neural network; (c) a step of executing at least one color correction program according to the parameter values ​​obtained in step (b) by said at least one processor to obtain a converted image in which the color is converted from the image before color correction among the training data; and (d) a step of training the artificial neural network model by said at least one processor such that the difference value between the image after color correction among the training data and the converted image obtained in step (c) becomes smaller.

[0011] According to one embodiment of the present specification, the number of parameter values ​​output from the artificial neural network model may increase in proportion to the number of color correction programs used in step (c) or the number of times the color correction programs are used.

[0012] According to one embodiment of the present specification, each parameter value output from the artificial neural network model may be a value corresponding to only one of the color correction programs.

[0013] According to one embodiment of the present specification, step (c) may be a step in which the color correction program outputs a converted image according to at least one parameter value.

[0014] According to one embodiment of the present specification, when a plurality of color correction programs are executed in step (c), step (c) may be a step of sequentially executing color correction programs according to a preset order from the image before color correction to obtain a converted image.

[0015] According to one embodiment of the present specification, step (c) may be a step of obtaining a converted image by inputting an image output from a color correction program executed first into a color correction program in the next order.

[0016] According to one embodiment of the present specification, when a plurality of pairs of training data are stored in step (a), the corrected images included in each pair of training data may be images in which color correction has been performed sequentially according to the same order pre-set from the images before correction.

[0017] According to one embodiment of the present specification, the execution order of the color correction program in step (c) may be the same as the order of color correction operations applied in the process from the image before color correction to the image after correction corresponding to the pair of training data.

[0018] According to one embodiment of the present specification, step (d) can calculate a loss value according to a loss function between the color-corrected image and the transformed image, and train the artificial neural network model so that the loss value becomes smaller.

[0019] According to one embodiment of the present specification, the color correction program can change at least one of the RGB values ​​of each pixel in the image, the saturation value of the image, the contrast value of the image, the brightness value of the image, and the grayscale value of the image.

[0020] According to one embodiment of the present specification, a color correction program that changes the RGB values ​​of each pixel in the image may be executed according to any one of a lift function, a gain function, and a gamma function.

[0021] An image color correction method according to the present specification for solving the above-described problem is a method for correcting the color of an image executed in a computing device comprising at least one processor and a memory that stores instructions executable by said processor, and may include: (a) a step of storing an artificial neural network model learned by an artificial neural network learning method according to the present specification in the memory by said at least one processor; (b) a step of inputting an original image into the artificial neural network model and obtaining n (n is a natural number) parameter values ​​from the artificial neural network by said at least one processor; and (c) a step of obtaining a color-corrected image by executing at least one color correction program on the original image according to the parameter values ​​obtained in step (b) by said at least one processor.

[0022] According to one embodiment of the present specification, when a plurality of color correction programs are executed in step (c), step (c) may be a step of sequentially executing color correction programs according to a preset order from the image before color correction to obtain a color-corrected image.

[0023] According to one embodiment of the present specification, step (c) may be a step of sequentially converting the original image in the same order as the order in which a plurality of color correction programs are used during the learning process of an artificial neural network model.

[0024] According to one embodiment of the present specification, step (c) may be a step of obtaining a color-corrected image by inputting an image output from a color correction program executed first into a color correction program in the next order.

[0025] The image color correction method according to the present specification may be implemented in the form of a computer program written to perform each step of the image color correction method according to the present specification on a computer and recorded on a computer-readable recording medium.

[0026] Other specific details of the present invention are included in the detailed description and drawings.

[0027] According to one aspect of the present specification, an image can be easily corrected using an artificial neural network model for correcting the image.

[0028] According to another aspect of this specification, costs and time can be reduced in training and operating artificial neural networks. In addition, the likelihood of successfully training the performance of the artificial neural network to the required level is also increased.

[0029] The effects of the present invention are not limited to those mentioned above, and other unmentioned effects will be clearly understood by a person skilled in the art from the description below.

[0030] FIG. 1 is a reference diagram of training data according to the present specification.

[0031] FIG. 2 is a schematic flowchart of a learning method for an artificial neural network model according to one embodiment of the present specification.

[0032] Figure 3 is a reference diagram of an artificial neural network model according to the present specification.

[0033] FIG. 4 is a schematic flowchart of an image color correction method according to one embodiment of the present specification.

[0034] The advantages and features of the invention disclosed herein, and the methods for achieving them, will become clear by referring to the embodiments described below in detail together with the accompanying drawings. However, this specification is not limited to the embodiments disclosed below and may be implemented in various different forms. These embodiments are provided merely to ensure that the disclosure of this specification is complete and to fully inform those skilled in the art (hereinafter referred to as "skilled in the art") of the scope of this specification, and the scope of rights of this specification is defined only by the scope of the claims.

[0035] The terms used herein are for describing the embodiments and are not intended to limit the scope of the claims herein. In this specification, the singular form includes the plural form unless specifically stated otherwise in the text. As used herein, "comprises" and / or "comprising" do not exclude the presence or addition of one or more other components in addition to the components mentioned.

[0036] Throughout the specification, the same reference numerals refer to the same components, and "and / or" includes each of the mentioned components and all combinations of one or more thereof. Although terms such as "first," "second," etc., are used to describe various components, they are not limited by these terms. These terms are used merely to distinguish one component from another. Accordingly, the first component mentioned below may be the second component within the scope of the technical concept of the present invention.

[0037] Unless otherwise defined, all terms used herein (including technical and scientific terms) may be used in a meaning commonly understood by a person skilled in the art to which this specification pertains. Additionally, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless explicitly and specifically defined otherwise.

[0038] First, some terms used in this specification will be explained.

[0039] Artificial Neural Network Model

[0040] Throughout this specification, artificial intelligence, neural network, neural network model, artificial neural network, artificial neural network model, computational model, and network function may be used interchangeably. A neural network may consist of a set of interconnected computational units, which may generally be referred to as nodes. These nodes may also be referred to as neurons. A neural network is composed of at least one node. The nodes (or neurons) constituting the neural networks may be interconnected by one or more links.

[0041] In a neural network, one or more nodes connected via links can form relative input and output node relationships. The concepts of input and output nodes are relative; any node in an output node relationship with respect to one node may be in an input node relationship with respect to another node, and vice versa. As described above, the input node versus output node relationship can be generated based on links. One or more output nodes may be connected to a single input node via links, and vice versa.

[0042] In a relationship between an input node and an output node connected through a single link, the value of the output node's data can be determined based on the data input to the input node. Here, the link interconnecting the input node and the output node may have a weight. The weight can be variable and may be varied by the user or an algorithm to enable the neural network to perform the desired function. For example, if one or more input nodes are interconnected to a single output node via respective links, the output node's value can be determined based on the values ​​input to the input nodes connected to the output node and the weights set on the links corresponding to each input node.

[0043] As described above, a neural network consists of one or more nodes interconnected through one or more links, forming input-output node relationships within the network. The characteristics of a neural network can be determined by the number of nodes and links within the network, the relationships between the nodes and links, and the weight values ​​assigned to each link. For example, if two neural networks exist with the same number of nodes and links but different weight values ​​for the links, the two neural networks may be recognized as different from each other.

[0044] A neural network can be composed of a set of one or more nodes. A subset of nodes constituting a neural network can form a layer. Some of the nodes constituting a neural network can form a layer based on their distances from an initial input node. For example, a set of nodes with a distance of n from an initial input node can form n layers. The distance from the initial input node can be defined by the minimum number of links that must be traversed to reach that node from the initial input node. However, this definition of a layer is arbitrary for illustrative purposes, and the degree of a layer within a neural network can be defined in a way different from that described above. For example, a layer of nodes may be defined by its distance from a final output node.

[0045] Initial input nodes may refer to one or more nodes within a neural network to which data is directly input without passing through links in their relationships with other nodes. Alternatively, in terms of link-based relationships between nodes within the neural network, they may refer to nodes that do not have other input nodes connected by links. Similarly, final output nodes may refer to one or more nodes within a neural network that do not have output nodes in their relationships with other nodes. Furthermore, hidden nodes may refer to nodes constituting the neural network that are neither initial input nodes nor final output nodes.

[0046] A neural network according to one embodiment of the present specification may have the same number of nodes in the input layer as the number of nodes in the output layer, and may be a neural network in which the number of nodes decreases and then increases again as it progresses from the input layer to the hidden layer. Additionally, a neural network according to another embodiment of the present specification may have the same number of nodes in the input layer as the number of nodes in the output layer as the number of nodes decreases as it progresses from the input layer to the hidden layer. Additionally, a neural network according to yet another embodiment of the present specification may have the same number of nodes in the input layer as the number of nodes in the output layer as the number of nodes increases as it progresses from the input layer to the hidden layer. A neural network according to yet another embodiment of the present specification may be a neural network in which the number of nodes in the input layer is greater than the number of nodes in the output layer.

[0047] A deep neural network (DNN) may refer to a neural network that includes multiple hidden layers in addition to input and output layers. Using a deep neural network allows for the identification of latent structures in data. That is, it is possible to identify the latent structures of photos, text, videos, voice, and music (e.g., what objects are present in a photo, what the content and emotions of a text are, what the content and emotions of a voice are, etc.). Deep neural networks may include convolutional neural networks (CNN), recurrent neural networks (RNN), autoencoders, Generative Adversarial Networks (GAN), restricted Boltzmann machines (RBM), deep belief networks (DBN), Q networks, U networks, Siamese networks, Generative Adversarial Networks (GAN), etc. The description of deep neural networks described above is merely illustrative and the present disclosure is not limited thereto.

[0048] Neural networks can be trained using at least one of supervised learning, unsupervised learning, semisupervised learning, or reinforcement learning. The training of a neural network may be the process of applying knowledge to the neural network to perform a specific action.

[0049] Neural networks can be trained to minimize the error in their output. The training process involves repeatedly inputting training data into the network, calculating the error between the network's output and the target for the training data, and updating the weights of each node by backpropagating the error from the output layer to the input layer in a direction that reduces the error. In supervised learning, training data is used where the correct answer is labeled for each data point (i.e., labeled training data), whereas in unsupervised learning, the correct answer may not be labeled for each training data point. For instance, in the case of supervised learning for data classification, the training data may consist of data where each training point is labeled with a category. Labeled training data is input into the neural network, and the error can be calculated by comparing the network's output (category) with the label of the training data. As another example, in the case of unsupervised learning for data classification, the error can be calculated by comparing the input training data with the neural network's output. The calculated error is backpropagated in the neural network (i.e., from the output layer to the input layer), and through backpropagation, the connection weights of each node in each layer of the neural network can be updated. The amount of change in the connection weights of each node being updated can be determined by the learning rate. The neural network's calculation of the input data and the backpropagation of the error can constitute a learning cycle (epoch). The learning rate can be applied differently depending on the number of iterations of the neural network's learning cycle. For example, a high learning rate can be used in the early stages of training to quickly achieve a certain level of performance and increase efficiency, while a low learning rate can be used in the later stages to improve accuracy.

[0050] Processor

[0051] In this specification, the term "processor" may be composed of one or more cores and may include a processor for data analysis and deep learning, such as a central processing unit (CPU) of a computing device, a general purpose graphics processing unit (GPGPU), a tensor processing unit (TPU), or a neural processing unit (NPU). The processor may read a computer program stored in memory and perform data processing for machine learning according to one embodiment of this specification. According to one embodiment of this specification, the processor may perform computations for training a neural network. The processor may perform computations for training a neural network, such as processing input data for training in deep learning (DL), extracting features from input data, calculating errors, and updating the weights of the neural network using backpropagation. At least one of the CPU, GPGPU, and TPU / NPU of the processor may process the training of a network function. For example, the CPU and GPGPU may together process the training of a network function and data classification using the network function. In addition, in one embodiment of the present specification, processors of a plurality of computing devices may be used together to process the learning of a network function and data classification using the network function. Furthermore, a computer program executed on a computing device according to one embodiment of the present specification may be a program executable on a CPU, GPGPU, or TPU / NPU.

[0052] Memory

[0053] In this specification, "memory" means a computer-readable recording medium. Computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and hardware devices specifically configured to store data or store and execute program instructions, such as ROM, RAM, and flash memory.

[0054] Color Correction

[0055] In this specification, "color correction" means modifying an image by changing pixel data within the image. In particular, color correction means changing at least one of the RGB values ​​of each pixel within the image, the saturation value of the image, the contrast value of the image, the brightness value of the image, and the gray curve value of the image, without changing the objects within the image.

[0056] In this specification, the term "color correction program" refers to a computer program that modifies pixel data within an image according to a specific algorithm. Adobe’s "Photoshop" is a representative example of a color correction program. In this specification, a color correction program is a technology distinct from recent image editing technologies using artificial intelligence. Recent image processing AI merely receives an image as input and outputs an image, and its internal processing is incomprehensible or unknown. In contrast, the color correction program referred to in this specification utilizes known algorithms based on mathematical formulas, and its data processing is also a process that we can know or understand. Therefore, a color correction program according to this specification can modify at least one of the following values: the RGB value of each pixel within the image, the image's saturation value, the image's contrast value, the image's brightness value, and the image's grayscale value. A color correction program may also be referred to by names such as "color correction function" or "color correction filter," but regardless of the name, it should be understood as referring to a tool that corrects the color of an image.

[0057] A color correction program that changes the RGB values ​​of each pixel in the above image can be executed according to any one of the lift function, gain function, and gamma function.

[0058] The lift function is a function that modifies the RGB values ​​of a pixel by an absolute amount. Below, we will explain using a widely used image with 8 bits allocated per channel as an example. An image with 8 bits per channel has 256 levels of color depth. In this case, the RGB values ​​of a single pixel range from 0 to 255. If the number of bits allocated per channel is large, a much larger range of numbers can be corresponded. In this case, the lift function adds or subtracts the magnitude of the above values ​​by the input value. Briefly expressed as the lift function, [V out= V in + Lift (R,G,B) It can be expressed as ]. Three parameters are required to apply the lift function to a color image. Since the lift function is a well-known technique in the field of color correction, a detailed explanation is omitted.

[0059] The gain function is a function that proportionally modifies the RGB values ​​of a pixel. Briefly expressed as the gain function, [V out = V in * Gain (R,G,B) It can be expressed as ]. Three parameters are required to apply a gain function to a color image. Since the gain function is a well-known technique in the field of color correction technology, a detailed explanation is omitted.

[0060] The gamma function is a function that nonlinearly transforms a light intensity signal using a nonlinear transfer function. This takes into account that the human eye is more sensitive to changes in brightness in dark areas of an image than in bright areas. Gamma values ​​generally range from 0.1 to 3.0, and brightness values ​​can be changed according to a function commonly known as the gamma curve. Three parameters are required to apply the gamma function to a color image. Since gamma correction or the gamma function is a well-known technique in the field of color correction, a detailed explanation is omitted.

[0061] General image saturation adjustment involves converting an RGB image to the HSV color space to adjust the saturation (S), and then converting it back to an RGB image. One parameter is required to adjust the saturation value of an image. Since saturation correction is a well-known technique in the field of color correction, a detailed explanation is omitted.

[0062] Adjusting the contrast ratio of an image controls the difference between the pixel with the lowest brightness and the pixel with the highest brightness within the image. For example, if the image's contrast ratio is converted from '1' to '0.5', the brightness difference between any two pixels in the image is adjusted to 0.5 times the original value. If the image's contrast ratio is converted to '2', the brightness difference between any two pixels in the image is adjusted to 2 times the original value (excluding saturated pixels). One parameter is required to adjust the image's contrast ratio. Since contrast ratio adjustment is a well-known technique in the field of color correction, a detailed explanation is omitted.

[0063] Image brightness adjustment controls the overall brightness of the image. Brightness adjustment performs the operation of adding or subtracting a constant value from every pixel. One parameter is required to adjust the brightness of an image. Since brightness adjustment is a well-known technique in the field of color correction, a detailed explanation is omitted.

[0064] Grayscale adjustment of an image is performed by converting the RGB image to the YCbCr color space, adjusting the value for the Y channel (greyscale), and then converting it back to an RGB image. Grayscale adjustment can be achieved by adding or subtracting the same value across the entire range, or by increasing or decreasing proportionally. Additionally, grayscale adjustment can be performed by increasing or decreasing non-uniformly across the entire range or by a non-linear function. According to one example, 16 parameters may be required to adjust the grayscale values ​​of an image. These 16 parameter values ​​can be generated by a function created by a Natural Cubic Spline, and the grayscale values ​​can be adjusted by this generated function. It is self-evident that the number of the aforementioned parameters can vary. Since grayscale adjustment is a well-known technique in the field of color correction technology, a detailed explanation is omitted.

[0065] Meanwhile, color correction according to the present specification may be modified into various terms such as filter, filtering, image processing, editing, and retouch, and may be used in the sense of modifying an image without being limited by the term.

[0066] Training Data

[0067] In this specification, 'training data' refers to data for training an artificial neural network model.

[0068] FIG. 1 is a reference diagram of training data according to the present specification.

[0069] Referring to FIG. 1, the training data according to the present specification may consist of a pair of images, one before color correction and one after color correction. That is, two images may form a pair. The training data includes at least one pair of images. The larger the amount of training data, the more helpful it is for the artificial neural network model to learn. Preferably, the training data may include at least multiple pairs of images. The amount of training data according to the present specification is not limited.

[0070] The corrected images included in the above training data may have undergone color correction by sequentially applying a color correction program, etc., to the images before correction according to a preset order. If the training data consists of multiple pairs of images, the corrected images included in each pair may have undergone color correction sequentially from the images before correction according to the same preset order. Therefore, when training an artificial neural network model using the training data according to the present specification, faster and more accurate training can be achieved through a consistent sequence of color correction operations between the images before correction and the images after correction.

[0071] Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.

[0072] First, a method for training an artificial neural network model according to the present specification is described. The method for training an artificial neural network model according to the present specification may be a method for training an artificial neural network model executed in a computing device comprising at least one processor and a memory storing instructions that can be executed on said processor.

[0073] FIG. 2 is a schematic flowchart of a learning method for an artificial neural network model according to one embodiment of the present specification.

[0074] Referring to FIG. 2, in step S100, the processor can store at least one pair of images before color correction and images after color correction as training data in the memory.

[0075] In the next step S110, the processor can input the image before color correction into an artificial neural network model. Then, in step S120, the processor can obtain n (n is a natural number) parameter values ​​from the artificial neural network.

[0076] Figure 3 is a reference diagram of an artificial neural network model according to the present specification.

[0077] Referring to FIG. 3, an artificial neural network model can be seen in the center. An image input is shown on the left side of the artificial neural network model. The input image is the image of the training data before correction. An output value is shown on the right side of the artificial neural network model. The output value consists of n parameter values ​​(where n is a natural number). One of the features of the artificial neural network model according to the present specification is that it receives an image as input and outputs a numerical value. Conventional image processing artificial intelligence often had a structure that received an image before correction and outputted a corrected image. However, as explained above, conventional image processing artificial intelligence had aspects of unstable learning because it had to learn even the functions of filters required for color correction. However, since the filters required for color correction are well-known transformation formulas, there is no reason for the artificial neural network to learn them; as this causes learning instability, it is necessary to actively exclude them. To solve this problem, the artificial neural network model according to the present specification can be configured to output parameter values ​​required for color correction without outputting an image.

[0078] In addition, unlike conventional image processing artificial intelligence, where an image before correction is input and an artificial neural network completes final correction to output an image, if a person determines that additional correction is needed, only secondary correction is possible on that image. However, the artificial neural network model according to the present specification has the advantage of allowing a person to directly adjust some of the parameter values ​​output by the model to perform additional correction.

[0079] The number of parameter values ​​output from the above artificial neural network model may increase proportionally to the number of color correction programs used in the subsequent step S130 or the number of times the color correction programs are used.

[0080] Referring again to FIG. 2, in step S130, the processor can execute at least one color correction program according to the parameter values ​​obtained in step S120 to obtain a converted image in which the color has been converted from the image before color correction among the training data. The artificial neural network model according to the present specification does not output a color-corrected image, and the color correction work is performed through a color correction program. That is, the parameter values ​​required for color correction are generated by the artificial neural network model by receiving the image before correction as input, and the actual color correction work is performed by the program, in a division of labor method.

[0081] According to one embodiment of the present specification, each parameter value output from the artificial neural network model may correspond to a value for only one of the color correction programs. The color correction program may output a converted image according to at least one parameter value. If multiple color correction programs are executed, the processor may sequentially execute the color correction programs according to a preset order from the image before color correction to obtain a converted image.

[0082] For example, it is assumed that the color correction process is performed in the order of gamma correction, (1) saturation adjustment, (1) contrast adjustment, brightness value adjustment, application of gain function, application of lift function, (2) saturation adjustment, (2) contrast adjustment, and grayscale value adjustment. As in the example above, the same operation for saturation adjustment and contrast adjustment may be included two or more times. Three parameter values ​​may be required for the gamma correction. One parameter value may be required for the (1) saturation adjustment. One parameter value may be required for the (1) contrast adjustment. One parameter value may be required for the brightness adjustment. Three parameter values ​​may be required for the application of the gain function. Three parameter values ​​may be required for the application of the lift function. One parameter value may be required for the (2) saturation adjustment. One parameter value may be required for the (2) contrast adjustment. 16 parameter values ​​may be required for the above grayscale value adjustment. Therefore, a total of 30 parameter values ​​may be required. Let's call these 30 parameter values ​​'P1, P2, P3, ..., P30'. Parameter values ​​P1, P2, and P3 may be used for the above gamma correction. Parameter value P4 may be used for the above (1) saturation adjustment. Parameter value P5 may be used for the above (1) contrast ratio adjustment. Parameter value P6 may be used for the above brightness value adjustment. Parameter values ​​P7, P8, and P9 may be used for the above gain function application. Parameter values ​​P10, P11, and P12 may be used for the above lift function application. Parameter value P13 may be used for the above (2) saturation adjustment. Parameter value P14 may be used for the above (2) contrast ratio adjustment. Parameter values ​​P15 to P30 may be used for the above grayscale value adjustment.

[0083] Furthermore, the corrected images included in each pair of training data have undergone color correction sequentially from the images before correction in the aforementioned order. In this case, the execution order of the color correction program may have the same sequence as the order of color correction operations applied in the process from the images before correction to the images after correction corresponding to the pair of training data. More specifically, gamma correction is performed on the images before correction. Saturation adjustment is performed on the images after gamma correction. Contrast adjustment is performed on the images after saturation adjustment. In this way, the image output from the color correction program executed first can be input into the color correction program in the next sequence to obtain a converted image. The color correction programs may be different programs, or they may be implemented as different functions within the same program.

[0084] In the next step S140, the processor can train the artificial neural network model such that the difference between the color-corrected image among the training data and the transformed image obtained in step S130 is minimized. More specifically, a loss value is calculated according to a loss function between the color-corrected image and the transformed image, and the artificial neural network model can be trained so that the loss value becomes smaller. An example of a loss function may be as shown in the formula below.

[0085]

[0086] [formula]

[0087]

[0088] L rgb : Mean Square Error of RGB values ​​between the converted image and the corrected image

[0089] L gray : Mean Square Error of grayscale values ​​between the converted image and the corrected image

[0090] L sat : Mean Square Error of saturation values ​​between the converted image and the corrected image

[0091] L con : Squared error of the standard deviation of each RGB of the converted image and the corrected image ( , is the standard deviation of the i-channel pixel values ​​of the corresponding image)

[0092] L pen1 : Average of the positive absolute values ​​of pixel values ​​outside [0,1] in the transformed image

[0093] L pen2 : Average of the positive absolute values ​​of pixel values ​​outside [0,1] in the grayscale image of the transformed image

[0094] λ: Weight of each component

[0095] Since the number of bits allocated per channel varies, there may be differences in the range of pixel values ​​in the training data. Artificial neural networks internally normalize these values ​​to real numbers between 0 and 1 for training. Among the components of the aforementioned loss function, L pen1 and L pen2 The reason pixel values ​​are restricted to the range [0,1] rather than natural numbers is to reflect this. This is also true for other components of the loss function.

[0096] During the initial learning process, the transformed image may not be identical to or similar to the image after correction. Therefore, steps S110 to S140 may be repeated until the difference between the transformed image and the image after correction is reduced to below a predetermined standard. Various training data may be used during the repetition process.

[0097] This concludes the explanation of the training method for an artificial neural network model according to the present specification. Next, I will explain the image color correction method according to the present specification. The image color correction method according to the present specification may be an image color correction method executed in a computing device comprising at least one processor and a memory storing instructions executable by said processor.

[0098] FIG. 4 is a schematic flowchart of an image color correction method according to one embodiment of the present specification.

[0099] Referring to FIG. 4, in step S200, the processor may store an artificial neural network model trained according to the artificial neural network model training method of the present specification in the memory. In step S210, the processor may input an original image into the artificial neural network model. In the next step S220, the processor may obtain n (n is a natural number) parameter values ​​from the artificial neural network. In step S230, the processor may obtain a color-corrected image by executing at least one color correction program on the original image according to the parameter values ​​obtained in step S220.

[0100] According to one embodiment of the present specification, when a plurality of color correction programs are executed in step S230, the processor can sequentially execute the color correction programs according to a preset order on the image before color correction to obtain a color-corrected image.

[0101] According to one embodiment of the present specification, in step S230, the processor can sequentially convert the original image in the same order as the order in which a plurality of color correction programs are used during the learning process of the artificial neural network model.

[0102] According to one embodiment of the present specification, in step S230, the processor can obtain a color-corrected image by inputting an image output from a color correction program executed first into a color correction program in the next order.

[0103] The image correction method according to the present specification may be implemented in the form of a computer program written to perform each step of the image correction method according to the present specification on a computer and recorded on a computer-readable recording medium.

[0104] The above computer program may include code encoded in a computer language such as C / C++, C#, JAVA, Python, or machine language, which can be read by the computer's processor (CPU) through the computer's device interface, in order for the computer to read the program and execute the methods implemented in the program. Such code may include functional code related to functions that define the necessary functions for executing the methods, and may include control code related to execution procedures necessary for the computer's processor to execute the functions according to a predetermined procedure. Additionally, such code may further include memory reference code regarding where (address) additional information or media necessary for the computer's processor to execute the functions should be referenced in the computer's internal or external memory. In addition, if the processor of the computer needs to communicate with any other computer or server located remotely in order to execute the above functions, the code may further include communication-related code regarding how to communicate with any other computer or server located remotely using the communication module of the computer, and what information or media to transmit or receive during communication.

[0105] The above-mentioned storage medium refers to a medium that stores data semi-permanently and is readable by a device, rather than a medium that stores data for a short period of time, such as a register, cache, or memory. Specifically, examples of the above-mentioned storage medium include, but are not limited to, ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage device. That is, the above-mentioned program may be stored on various recording media on various servers that the computer can access, or on various recording media on the user's computer. Additionally, the above-mentioned medium may be distributed across networked computer systems, and computer-readable code may be stored in a distributed manner.

[0106] Although embodiments of this specification have been described above with reference to the attached drawings, those skilled in the art to which this specification pertains will understand that the present invention may be implemented in other specific forms without altering its technical concept or essential features. Therefore, the embodiments described above should be understood as illustrative in all respects and not restrictive.

Claims

1. A method for training an artificial neural network model executed on a computing device comprising at least one processor and a memory storing instructions executable on said processor, wherein (a) A step of storing at least one pair of images before color correction and images after color correction as training data in the memory by the at least one processor; (b) inputting the image before color correction into an artificial neural network model by the at least one processor, and obtaining n (n is a natural number) parameter values ​​from the artificial neural network; (c) a step of executing at least one color correction program according to the parameter value obtained in step (b) by the at least one processor to obtain a converted image in which the color is converted from the image before color correction among the training data; and (d) a step of training the artificial neural network model by the at least one processor such that the difference between the color-corrected image among the training data and the transformed image obtained in step (c) becomes smaller; a method for training an artificial neural network model.

2. In Claim 1, A method for learning an artificial neural network model, characterized in that the number of parameter values ​​output from the artificial neural network model increases in proportion to the number of color correction programs used in step (c) or the number of times the color correction programs are used.

3. In Claim 2, A learning method for an artificial neural network model in which each parameter value output from the above artificial neural network model corresponds to a value for only one of the color correction programs.

4. In Claim 3, The above step (c) is, A method for training an artificial neural network model, wherein the above-mentioned color correction program outputs a converted image according to at least one parameter value.

5. In Claim 1, If multiple color correction programs are executed in step (c) above, The above step (c) is a method for learning an artificial neural network model, wherein the step involves sequentially executing a color correction program according to a preset order on the image prior to color correction to obtain a converted image.

6. In Claim 5, The above step (c) is a method for training an artificial neural network model, wherein the image output from a color correction program executed first is input into a color correction program in the next order to obtain a converted image.

7. In Claim 5, If multiple pairs of training data are stored in step (a) above, A method for training an artificial neural network model, characterized in that the corrected images included in each pair of the above-mentioned training data are sequentially color-corrected according to the same order pre-set from the images before correction.

8. In Claim 7, The execution order of the color correction program in step (c) above is, A method for training an artificial neural network model, characterized by having the same sequence as the sequence of color correction operations applied in the process from the image before color correction to the image after correction, corresponding to the pair of training data above.

9. In Claim 1, The above step (d) is, A method for training an artificial neural network model, which calculates a loss value according to a loss function between the color-corrected image and the transformed image, and trains the artificial neural network model so that the loss value becomes smaller.

10. In Claim 1, The above color correction program is a method for training an artificial neural network model that changes at least one of the RGB values ​​of each pixel in the image, the saturation value of the image, the contrast value of the image, the brightness value of the image, and the grayscale value of the image.

11. In Claim 10, A method for training an artificial neural network model, wherein a color correction program that changes the RGB values ​​of each pixel in the above image is executed according to any one of a lift function, a gain function, and a gamma function.

12. A method for correcting the color of an image executed in a computing device comprising at least one processor and a memory storing instructions executable on said processor, wherein (a) storing an artificial neural network model learned according to claim 1 in the memory by the at least one processor; (b) inputting an original image into the artificial neural network model by the at least one processor and obtaining n parameter values ​​(n is a natural number) from the artificial neural network; and (c) a step of obtaining a color-corrected image by executing at least one color correction program on the original image according to the parameter value obtained in step (b) by the at least one processor; an image color correction method comprising.

13. In Claim 12, If multiple color correction programs are executed in step (c) above, The above step (c) is a method for image color correction, wherein a color correction program is executed sequentially according to a preset order from the image prior to color correction to obtain a color-corrected image.

14. In Claim 13, The above step (c) is a method for image color correction, wherein the original image is sequentially converted according to the same order in which a plurality of color correction programs are used during the learning process of an artificial neural network model.

15. In Claim 14, The above step (c) is a method for color correction of an image, wherein the image output from a color correction program executed first is input into a color correction program in the next order to obtain a color-corrected image.