Generation method, data processing method, generation device, and program

JP2024084277A5Pending Publication Date: 2025-11-25SEIKO EPSON CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2022198454
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-12-13
Publication Date
2025-11-25

AI Technical Summary

Technical Problem

Existing image processing techniques using genetic programming do not account for image processing filters that require parameter adjustment, and optimal parameters vary based on the problem, necessitating manual adjustment for each application.

Method used

A method and device for generating a data processing sequence that determines parameters based on the input data, using sample data and target data to evaluate and store optimal parameters for subsequent use, allowing for efficient parameter determination without repeated adjustment.

Benefits of technology

Enables efficient generation of data processing sequences with optimized parameters, reducing the need for manual parameter adjustment and improving processing accuracy by leveraging stored parameter information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a technology which does not have to adjust a parameter from the beginning.SOLUTION: A method for generating a data processing sequence includes the steps of: (a) performing data processing by using sample data, desired object data associated with the sample data and a parameter, calculating an evaluation value for evaluating output data by using the output data obtained by the data processing and the object data, and determining a parameter used in the data processing which acquires an evaluation value that satisfies a condition determined in advance in the case of having to evaluate data outputted by performing data processing in order to determine the parameter; (b) determining a parameter by performing data processing by using the sample data and the parameter in the case of not having to evaluate the data outputted by performing data processing in order to determine the parameter; and (c) storing information representing the determined parameter in a storage unit.SELECTED DRAWING: Figure 10
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a generation method, a data processing method, a generation device, and a program. [Background technology]

[0002] Patent Document 1 describes a technique for generating an image processing sequence expressed in a tree structure using multiple image processing filters by using genetic programming. In the technique described in Patent Document 1, an individual composed of multiple arranged genes is generated, and an image processing sequence is generated using the genes constituting the individual and a gene table for determining the tree structure. The genes constituting the individual are values ​​that specify the image processing filter. Then, a resultant image obtained by image processing a learning image with the image processing sequence represented by each individual is evaluated. Furthermore, an image processing sequence that satisfies a reference condition is identified by repeating learning in which the generation of image processing sequences and the evaluation of the resultant images are repeated while changing the generations of genes by mutation, crossover, etc. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2007-87055 A Summary of the Invention [Problem to be solved by the invention]

[0004] The technology described in Patent Document 1 does not assume image processing filters that require parameter adjustment, but some image processing filters require parameter adjustment. Also, optimal parameters differ depending on the problem to be solved. Therefore, it was necessary to adjust the parameters from scratch depending on the problem to be solved. [Means for solving the problem]

[0005] According to a first aspect of the present disclosure, there is provided a method for generating a data processing sequence, which generates a data processing sequence constituted by a combination of sequence elements, a data input process for inputting input data, one or more data processes, and a data output process for outputting data that has been subjected to the data processing, and (a) the data processing is a process using parameters corresponding to data to be processed, and when it is necessary to evaluate data outputted from the data processing in order to determine the parameters, a step of determining the parameters includes performing the data processing using sample data, desired target data associated with the sample data, and the parameters, and evaluating the output data obtained by performing the data processing and the target data, The method includes the steps of: calculating an evaluation value for evaluating output data; and determining the parameters used in the data processing that yielded the evaluation value that satisfies a predetermined condition as the parameters to be used in the data processing; (b) a step of determining the parameters when the data processing uses parameters corresponding to the data to be processed and it is not necessary to evaluate the data output after the data processing in order to determine the parameters, the step of determining the parameters to be used in the data processing by performing the data processing using the sample data and the parameters; and (c) a step of storing information representing the determined parameters in a memory unit.

[0006] According to a second aspect of the present disclosure, there is provided a generating device for generating a data processing sequence. This generation device generates a data processing sequence consisting of a combination of sequence elements including a data input process for inputting input data, one or more data processes, and a data output process for outputting data resulting from the data processing, and is equipped with a determination unit that determines parameters to be used in the data processing and stores information representing the determined parameters in a memory unit, and the determination unit is a process that uses parameters according to the data to be processed by the data processing, and when it is necessary to evaluate the data outputted from the data processing in order to determine the parameters, the determination unit performs the data processing using sample data, desired target data corresponding to the sample data, and the parameters, calculates an evaluation value for evaluating the output data using output data obtained by performing the data processing and the target data, and determines the parameters used in the data processing for which the evaluation value that satisfies a predetermined condition is obtained as the parameters to be used in the data processing, and is a process that uses parameters according to the data to be processed by the data processing, and when it is not necessary to evaluate the data outputted from the data processing in order to determine the parameters, the data processing is performed using the sample data and the parameters to determine the parameters to be used in the data processing.

[0007] According to a third aspect of the present disclosure, there is provided a program, which provides a computer functioning as an apparatus for generating a data processing sequence constituted by a combination of sequence elements, a data input process for inputting input data, one or more data processes, and a data output process for outputting data that has been subjected to the data processing, with the program providing: (a) a function for determining a parameter in the data processing, when the data processing is a process using a parameter corresponding to data to be processed and it is necessary to evaluate the data that has been subjected to the data processing and output in order to determine the parameter, in which the data processing is performed using sample data, desired target data associated with the sample data, and the parameter, and output data obtained by performing the data processing, the target data, and determining, as the parameters to be used in the data processing, the parameters used in the data processing for which the evaluation value satisfying a predetermined condition was obtained, as the parameters to be used in the data processing; (b) a function of determining the parameters in a case where it is not necessary to evaluate the data outputted from the data processing, the parameters being determined by performing the data processing using the sample data and the parameters; and (c) a function of storing information representing the determined parameters in a memory unit. [Brief description of the drawings]

[0008] [Figure 1] FIG. 1 is a block diagram showing a schematic configuration of a generation system. [Diagram 2] FIG. 2 is a block diagram showing a configuration of a storage device. [Diagram 3] FIG. 1 is a diagram illustrating an example of a learning data set. [Figure 4] FIG. 4 illustrates an example of a process definition table. [Diagram 5] FIG. 13 is a diagram showing an example of a gene table. [Figure 6] FIG. 1 is an illustration of population data for one generation. [Figure 7] FIG. 11 is an explanatory diagram of a data processing sequence of a tree structure. [Figure 8] 13 is a flowchart showing a process executed by the generating device. [Figure 9] 13 is a detailed flowchart of a process relating to generation of a target data processing sequence. [Figure 10] 13 is a detailed flowchart of a process relating to parameter determination. [Figure 11] 13 is a detailed flowchart of a process relating to utilization of a target data processing sequence. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] A. Embodiment: 1 is a block diagram showing a schematic configuration of a generating system 1 according to an embodiment. The generating system 1 includes a generating device 100 and an imaging device 200. The generating device 100 and the imaging device 200 can transmit and receive data via wired or wireless communication. The imaging device 200 is a camera that captures an object to obtain a captured image. The captured image obtained by the imaging device 200 is transmitted to the generating device 100. The imaging device 200 may be a spectroscopic camera or a spectrophotometer that can obtain a spectral reflectance spectrum of the object.

[0010] The generating device 100 has a sequence generating function for generating a data processing sequence for performing data processing on input data. In this specification, a data processing sequence is a sequence that specifies the execution procedure of multiple data processes performed on input data. The generating device 100 also specifies a target data processing sequence DSq for obtaining desired output data from the multiple generated data processing sequences Sq. In this embodiment, it is assumed that the input data of the data processing sequence is a monochrome image.

[0011] Furthermore, the generating device 100 has a data processing function of processing input data according to the generated data processing sequence and outputting output data, which is data after processing. In this embodiment, the generating device 100 has a sequence generation function and a data processing function, but this is not limited to this. The generating device 100 may have only the sequence generation function, and another computer different from the generating device 100 may have the data processing function. Alternatively, the sequence generation function and the data processing function may be realized by a cloud.

[0012] The generating device 100 is a computer including a processor 10, a storage device 70, an interface unit 90, an input device 150, and a display device 160. The processor 10 executes a program stored in the storage device 70 to realize various functions of the generating device 100. The storage device 70 is configured with memories including RAM, ROM, etc., and stores programs and data required for executing the programs. The input device 150, the display device 160, and the imaging device 200 are connected to the interface unit 90. The input device 150 is, for example, a keyboard or a mouse. The display device 160 is, for example, a liquid crystal display or an organic EL (Electro Luminescence) display.

[0013] The processor 10 executes the programs stored in the storage device 70 to function as a sequence generation unit 20, a processing unit 40, an evaluation unit 50, a parameter determination unit 55, and a display control unit 60.

[0014] The sequence generation unit 20 generates a plurality of data processing sequences Sq using genetic programming. The data processing sequence Sq represents a combination of a plurality of sequence elements. The sequence generation unit 20 is also called a generation unit. The sequence elements constituting the data processing sequence Sq include (i) a data input layer, (ii) a plurality of data processing layers which are intermediate nodes between the data input layer and the data output layer, and (iii) a data output layer. The data input layer is a node where data input processing is performed to input input data. The data output layer is a node where data output processing is performed to output output data PM which is data after final data processing has been performed.

[0015] The data processing sequence Sq generated by the sequence generation unit 20 is structurally expressed like a tree structure by the sequence of genes indicated by the individuals IV. The data processing sequence Sq is expressed by, for example, a layer identifier that identifies the data processing assigned to the data processing layer, and the connection relationships between the data input layer, each data processing layer, and the data output layer.

[0016] The sequence generation unit 20 includes an individual generation unit 22 and a gene translation unit 24. The individual generation unit 22 generates an individual IV composed of a plurality of genes arranged one-dimensionally or two-dimensionally. Furthermore, the individual generation unit 22 generates an individual group composed of a predetermined number of individual IVs for each generation. The individual group data 84 representing a set of the generated individual IVs is stored in the storage device 70. The individual group data 84 will be described later. In this embodiment, the individual generation unit 22 generates an individual IV of a predetermined gene length by arranging genes one-dimensionally. For the first generation, the individual generation unit 22 randomly arranges a number from 0 to 1 up to three decimal places as a gene at each locus of the individual IV.

[0017] For the second generation and onward, the individual generation unit 22 generates new individual IVs from the individual IVs of the previous parent generation using at least one of crossover and mutation. Specifically, the individual generation unit 22 identifies excellent individuals from the individual IVs of the current generation, and generates individual IVs of the new generation by performing at least one of crossover and mutation on the identified individuals. The individual generation unit 22 also sets the excellent individuals from the identified individual IVs of the current generation as the individual IVs of the new generation. The individual generation unit 22 identifies the excellent individuals from the individual IVs of the current generation, for example, by using an evaluation value EV calculated by the evaluation unit 50 described later. Thus, the population of the new generation is a set including the individual IVs newly generated by at least one of crossover and mutation, and the individual IVs inherited from the parent generation, i.e., the individual IVs duplicated from the individual IVs of the parent generation. The combination of individual IVs differs for each generation.

[0018] The gene translation unit 24 refers to a gene table 82 described later and translates each gene of the individual IV to generate a data processing sequence Sq. The gene translation unit 24 generates a plurality of data processing sequences Sq from each of a predetermined number of individuals IV constituting one generation. Since the combination of individuals IV differs for each generation, the combination of sequence elements of the plurality of data processing sequences Sq differs for each generation.

[0019] The processing unit 40 processes the learning data LM, which will be described later, in accordance with a processing procedure defined by the data processing sequence Sq, and outputs output data PM, which is the processed data. The details of the processing performed by the processor 10 functioning as the processing unit 40 will be described later.

[0020] The evaluation unit 50 obtains an evaluation value EV for evaluating the data processing sequence Sq using the output data PM output by the processing unit 40 and the target data TM associated with the learning data LM from which the output data PM is derived for each data processing sequence Sq. The evaluation unit 50 is also called an evaluation value acquisition unit. Specifically, the evaluation unit 50 calculates an evaluation value EV indicating a degree of similarity SD between the output data PM output by the processing unit 40 and the target data TM associated with the learning data LM from which the output data PM is derived for each data processing sequence Sq. The evaluation of the data processing sequence Sq is performed using index values ​​indicating a degree of similarity SD between two images, such as a mean squared error (MSE), a peak signal-to-noise ratio (PSNR), and a structural similarity (SSIM).

[0021] In addition, when multiple learning data LM are processed by one data processing sequence Sq to generate multiple output data PM, evaluation values ​​EV corresponding to each output data PM are calculated. In this case, the statistics of each evaluation value EV are treated as the final evaluation value EV. Values ​​such as the average value and the median value are used as the statistics of each evaluation value EV.

[0022] The evaluation unit 50 uses the evaluation value EV for each of the multiple data processing sequences Sq to identify a target data processing sequence DSq that is a data processing sequence Sq that satisfies a predetermined reference condition. The evaluation unit 50 is also called an identification unit. Specifically, the evaluation unit 50 identifies the data processing sequence Sq that has the highest evaluation value EV among the multiple evaluation values ​​EV corresponding to each of the multiple data processing sequences Sq and that has an evaluation value EV equal to or greater than a predetermined threshold as the target data processing sequence DSq. In this way, it is possible to accurately determine whether the data processing sequence is capable of processing various learning data LM to approximate the target data TM. Details of the process performed by the processor 10 functioning as the evaluation unit 50 will be described later.

[0023] The parameter determination unit 55 determines parameters required for each data process included in the target data processing sequence DSq. The details of the process performed by the processor 10 functioning as the parameter determination unit 55 will be described later.

[0024] The display control unit 60 causes various pieces of information to be displayed on the display device 160. The display control unit 60 causes the display device 160 to display, for example, an image showing a tree structure representing the identified target data processing sequence DSq.

[0025] 2 is a block diagram showing the configuration of the storage device 70. The storage device 70 stores a data processing program group 71, a learning data set 75, a processing definition table 77, a gene table 82, population data 84, specific data 85, a sample data set 86, a parameter set 87, and various programs 88. The storage device 70 is also called a storage unit.

[0026] The data processing program group 71 includes a formula, a program, necessary parameters, etc., required for executing each data processing that can be a sequence element. The program for executing the data processing that can be a sequence element may have a function for adjusting parameters. Note that the data processing program group 71 does not include parameters determined by the parameter determination unit 55 described later.

[0027] 3 is a diagram showing an example of a learning data set 75. The learning data set 75 includes a set of learning data LM and target data TM associated with the learning data LM. The learning data LM is input data to be input to a plurality of generated data processing sequences Sq. The target data TM is a target output previously associated with each of the learning data LM. The learning data set 75 includes a plurality of sets of learning data LM and target data TM.

[0028] For example, the image of a circuit board, which is an industrial product, is processed using the target data processing sequence DSq to determine whether the circuit board is a good product or not. In this case, image data of the captured circuit board similar to the input data of the target data processing sequence DSq is used as the learning data LM. Also, data indicating an inspection result similar to the output data of the target data processing sequence DSq is used as the target data TM. The target data TM is one of the values ​​of the label "0" indicating a good product and the label "1" indicating a defective product for the inspection result. In the example shown in FIG. 3, the learning data LM1 is an image of a good circuit board. The label 0 indicating a good product is associated with the learning data LM1 as the target data TM. The learning data LM2 is an image of a circuit board in which a defective part DA is present. The label 1 indicating a defective product is associated with the learning data LM2 as the target data TM.

[0029] FIG. 4 is a diagram showing an example of the processing definition table 77. FIG. 4 shows an example of the processing definition table 77 on the assumption that the input data of the target data processing sequence DSq is a monochrome image. The processing definition table 77 stores information regarding parameter determination for each data processing that can be a sequence element of the data processing sequence Sq. The value of "Parameter determination required" in the processing definition table 77 indicates whether or not a parameter determination is required for each data processing. The value of "Evaluation required" indicates whether or not the result of the data processing needs to be evaluated when determining the parameters. The "Parameter details" defines a method for determining parameters used in the target data processing, initial values ​​of the parameters, etc. If a program for executing a data processing that can be a sequence element has a function for adjusting parameters, the "Parameter details" may define the use of the function.

[0030] Data processing that can be a sequence element includes data processing using parameters and data processing without parameters, and further, among the data processing using parameters, there is data processing using fixed parameters and data processing using variable parameters.

[0031] When the data processing that is the sequence element is an image filter processing such as a smoothing filter or an edge extraction filter, a coefficient called a kernel is used in such an image filter processing. In this embodiment, the kernel is a parameter. Even if the image filter processing is the same type, if the kernel size is different, it is stored in the data processing program group 71 as a different image processing filter. In the image filter processing such as a smoothing filter or an edge extraction filter, the kernel has a fixed value regardless of the input data. Therefore, the image filter processing such as a smoothing filter or an edge extraction filter is a data processing using a parameter. Furthermore, the parameters used in such an image filter processing do not change regardless of the input data. In the processing definition table 77, the "necessity of parameter determination" of each of the smoothing filter and the edge extraction filter is defined as "not required". In addition, since there is no need to determine the parameters, the "necessity of evaluation" is defined as "not required" and the "parameter details" column is blank.

[0032] When the data processing that is the sequence element is a standardization process, the mean value and standard deviation are used. The mean value and standard deviation are obtained, for example, from sample data given in advance. In this embodiment, the mean value and standard deviation are parameters. In the process definition table 77, the "parameter necessity" for the standardization process is defined as "required." When the data processing is a standardization process, there is no need to evaluate the results of the data processing, so the "evaluation necessity" is defined as "not required." In the "parameter details," for example, it is defined that the mean value and standard deviation are parameters, and a method for obtaining the mean value and standard deviation from sample data.

[0033] Furthermore, when the data processing that is the sequence element is principal component analysis, a transformation matrix is ​​used to reduce the dimensions of the data input in the principal component analysis. The transformation matrix is ​​generated using sample data given in advance. In this embodiment, the transformation matrix is ​​a parameter. In the processing definition table 77, the "necessity of parameters" for the principal component analysis is defined as "necessary". When the data processing is principal component analysis, there is no need to evaluate the results of the data processing, so the "necessity of evaluation" is defined as "not required". In the "parameter details", for example, it is defined that the transformation matrix is ​​a parameter and a method for determining the transformation matrix from sample data.

[0034] When the data processing that is the sequence element is linear discriminant analysis, a transformation matrix is ​​used to reduce the dimension of data input in the linear discriminant analysis. The transformation matrix is ​​generated using sample data given in advance. In this case, a label value indicating a classification is associated with each value included in the sample data. In this embodiment, the transformation matrix is ​​a parameter. In the processing definition table 77, the "necessity of parameter" of the linear discriminant analysis is defined as "necessary". In addition, since it is necessary to perform evaluation using the label value, the "necessity of evaluation" is defined as "necessary". In the "parameter details", for example, it is defined that the transformation matrix is ​​a parameter and a method for obtaining the transformation matrix from the sample data. In addition, in the "parameter details", a calculation method of an evaluation value for evaluating the parameter and a predetermined condition for evaluation are defined.

[0035] When the data processing that becomes the sequence element is processing using a machine learning model such as SVM or random forest, it is necessary to determine hyperparameters according to each machine learning model. In this embodiment, the hyperparameters are parameters. Machine learning models such as SVM and random forest are supervised learning machine learning models. Therefore, such machine learning models are data processing using parameters. In the processing definition table 77, the "parameter necessity" for SVM and random forest are defined as "necessary" and the "evaluation necessity" for each are defined as "necessary". In the "parameter details", details of the hyperparameters that become parameters, a calculation method of an evaluation value for evaluating the parameters, and predetermined conditions for evaluation are defined.

[0036] Furthermore, when the data processing that is a sequence element is an arithmetic operation such as addition or subtraction performed on two images, parameters are not used in these arithmetic operations. The same applies to logical operations such as OR and logic performed on two images. Therefore, when the data processing that is a sequence element is an arithmetic operation or logical operation, there is no need to determine parameters. In the processing definition table 77, "necessity of parameter determination" for "addition" and "logical OR" are defined as "not required," and "necessity of evaluation" is defined as "not required." Additionally, the "parameter details" column is left blank.

[0037] The above-mentioned data processing is an example of a data processing that can be a sequence element, but the data processing that can be a sequence element is not limited to the above-mentioned data processing.

[0038] FIG. 5 is a diagram showing an example of the gene table 82. The gene table 82 is used when generating the data processing sequence Sq. The gene table 82 is a table that specifies the sequence elements corresponding to each numerical range of the numerical value representing the gene and the connection relationship of each sequence element. The gene table 82 is also called a reference table. The sequence elements defined in the gene table 82 are data processing or data input processing. The gene table 82 is prepared individually according to the type of input data. For example, when the data input to the data processing sequence is a color image, a corresponding gene table is prepared. Also, for example, when the data input to the data processing sequence is a spectral reflectance spectrum, a corresponding gene table is prepared.

[0039] In the example shown in FIG. 5, the gene table 82 specifies the number of inputs, the number of outputs, and the range of occurrence for each sequence element. It is assumed that the image processing filters FtA to FtC and the analysis processes Ap1 to Ap2 are included in the data processing program group 71 as data processing that can become sequence elements. The sequence elements in the gene table 82 are the image processing filters FtA to FtC, the analysis processes Ap1 to Ap2, and the identifier "in" that identifies the data input layer. The number of inputs indicates the number of sequence elements connected to the input side of the data processing layer or data input layer where data processing is performed. When the number of inputs is "2", data output from two sequence elements becomes the target of data processing. In the data processing sequence, since there is no sequence element before the data input layer, the number of inputs of the data input layer is "0". The number of outputs indicates the number of sequence elements connected to the output side of the data processing layer or data input layer where data processing is performed. In this embodiment, the number of outputs is all "1", and the data processing layer and the data input layer are connected to one sequence element on the output side.

[0040] The range of gene values ​​VG is specified as the appearance range of the gene table 82. The gene values ​​VG are values ​​that represent each gene constituting the individual IV. A data input layer or a data processing layer is assigned to a sequence element according to the gene values ​​VG. In the example shown in FIG. 5, the numerical range of 0 to 1 is divided into six equal parts so that each data processing appears randomly in the data processing sequence Sq with equal probability. For example, when the gene value VG is a value equal to or greater than 0 and less than 0.167, an image processing filter FtA is assigned to the sequence element corresponding to this gene.

[0041] FIG. 6 is an explanatory diagram of population data 84 of one generation G. The population data 84 represents a set of a plurality of individuals IV in one generation generated by the individual generation unit 22. The population data 84 is used when generating a data processing sequence Sq. In this embodiment, an example in which five individuals IV1 to IV5 are generated in one generation G will be described. In each of the individuals IV1 to IV5, a plurality of loci in which genes are arranged are arranged in a one-dimensional manner. The gene lengths of each of the individuals IV1 to IV5 are the same. Each of the individuals IV1 to IV5 is configured by arranging genes in order in loci No. 1 to No. 10. The individual generation unit 22 arranges genes expressed by a numerical value from 0 to 1 up to three decimal places in each locus. That is, in this embodiment, the value that a gene can take at each locus is a numerical value from 0 to 1 up to three decimal places.

[0042] The specified data 85 shown in FIG. 2 is data representing a target data processing sequence DSq, which is a data processing sequence Sq specified by the evaluation section 50 as satisfying the reference condition.

[0043] The sample data set 86 is a collection of sample data used to determine parameters, which will be described later. The data included in the sample data set 86 is the same type of data as the learning data LM. The sample data set 86 includes, for example, a plurality of image data acquired by the imaging device 200 capturing an image of an object of the same type as the learning data LM. The parameter set 87 is a collection of information representing determined parameters, which will be described later.

[0044] The various programs 88 are programs that are executed by the processor 10 to realize the functions of the generating device 100.

[0045] 7 is an explanatory diagram of a tree-structured data processing sequence Sq generated by the gene translation unit 24. The basic flow of generating the data processing sequence Sq will be described below.

[0046] The gene translation unit 24 generates a tree-structured data processing sequence Sq in order from the data output layer out side using the gene table 82 and the population data 84. First, the gene translation unit 24 sets the data output layer out as a terminal node, and connects sequence elements in the order of arrangement of the genes of the individual IV. The connection of the sequence elements is performed according to a predetermined connection rule. In this embodiment, the gene translation unit 24 arranges the sequence elements in the order of arrangement of the genes from the data output layer out to the data input layer in. In addition, since there are two or more inputs of the sequence elements, when the input side of the sequence elements branches, the arrangement of the sequence elements in the leftmost branch is prioritized. When the data input layer in is arranged as a sequence element in each branch, the arrangement of the sequence elements in that branch is completed. After that, the arrangement of the sequence elements in the next branch, that is, the branch adjacent to the right of the branch where the arrangement of the sequence elements is completed, is performed. In this embodiment, the number of inputs of the data output layer out is "1".

[0047] The gene translation unit 24 refers to the gene table 82 (see FIG. 5) and determines that the numerical value VG of the No. 1 gene of the individual IV1 (see FIG. 6), "0.534", is within the occurrence range of the analysis process Ap1. The gene translation unit 24 assigns the analysis process Ap1 to a node connected to the input side of the data output layer out. The gene translation unit 24 refers to the gene table 82 and determines that the number of inputs to the analysis process Ap1 is "2", and connects two nodes to the input side of the node to which the analysis process Ap1 is assigned.

[0048] Furthermore, the gene translation unit 24 refers to the gene table 82 and identifies that the numerical value VG of the No. 2 gene, "0.292", is within the appearance range of the image processing filter FtB. The gene translation unit 24 assigns the image processing filter FtB to the left node connected to the input side of the node to which the analysis process Ap1 is assigned.

[0049] The gene translation unit 24 refers to the gene table 82, determines that the number of inputs of the image processing filter FtB is "1", and connects one node to the input side of the node to which the image processing filter FtB is assigned. The gene translation unit 24 refers to the gene table 82, and determines that the numerical value VG of the No. 3 gene, "0.462", is within the appearance range of the image processing filter FtC. The gene translation unit 24 assigns the image processing filter FtC to the node connected to the input side of the node to which the image processing filter FtB is assigned.

[0050] Next, the gene translation unit 24 refers to the gene table 82, identifies that the number of inputs of the image processing filter FtC is "1", and connects one node to the input side of the node to which the image processing filter FtC is assigned. The gene translation unit 24 refers to the gene table 82, identifies that the numerical value VG of the No. 4 gene, "0.856", is within the occurrence range of the data input layer in. The gene translation unit 24 assigns the data input layer in to the node connected to the input side of the node to which the image processing filter FtC is assigned. This completes the generation of the left side sequence of the data processing sequence Sq in FIG. 7. Next, the gene translation unit 24 similarly generates the right side of the data processing sequence Sq.

[0051] When the data input layer in is assigned to all input side nodes, the gene translation unit 24 ends the generation process of the data processing sequence Sq even if not all genes of the individual IV1 are used. Note that when all genes of the individual IV1 are used, if not all input side sequence elements that are input side connection destinations are set to the data input layer in, the gene translation unit 24 ends the generation of the data processing sequence Sq by setting the data input layer in to the remaining unconnected input side sequence elements.

[0052] Fig. 8 is a flowchart showing the processing executed by the generating device 100. The processing shown in Fig. 8 includes processing related to generation of a target data processing sequence DSq in step S10, processing related to specification of parameters in step S20, and processing related to use of the target data processing sequence DSq in step S30.

[0053] 9 is a detailed flowchart of the process (see step S10 in FIG. 8) relating to the generation of a target data processing sequence. The process shown in FIG. 9 is executed by the processor 10 of the generating device 100 functioning as the processing unit 40 and the evaluation unit 50.

[0054] In step S101, the processor 10 generates a population for the current generation Gn. Population data 84 representing the generated population is stored in the storage device 70. The population represented by the population data 84 is composed of a plurality of individuals IV1 to IV5 as shown in FIG. 6. In step S102, the processor 10 refers to the gene table 82, and translates each gene of one individual IV selected from the generated population to generate a data processing sequence Sq.

[0055] In step S103, the processor 10 executes data processing included in the data processing sequence Sq using the learning data LM as input data. It is assumed that the learning data LM is a monochrome image. For example, when data processing is executed according to the data processing sequence Sq1 shown in FIG. 7, the processing is performed as follows. The input data input to the data input layer in assigned to the tip node of the left branch is processed by the image processing filter FtC, and then processed by the image processing filter FtB to generate first intermediate data. The input data input to the data input layer in assigned to the tip node of the right branch is processed by the image processing filter FtA to generate second intermediate data. Note that the input data input to the data input layer in assigned to the tip node of the left branch and the input data input to the data input layer in assigned to the tip node of the right branch are the same data. Furthermore, the first intermediate data and the second intermediate data are processed by the analysis processing Ap1, and the final output data PM is output by the data output layer out. The final output data PM is stored in the storage device 70. When a parameter is used in the data processing included in the data processing sequence, a predetermined initial value may be used as the parameter, or the parameter may be calculated using a predetermined number of learning data LM.

[0056] 9, in step S104, the processor 10 uses the output data PM and the target data TM associated with the learning data LM from which the output data PM is derived to calculate an evaluation value for evaluating the processing result of the data processing sequence Sq. Specifically, the processor 10 calculates an evaluation value EV indicating the degree of similarity SD between the output data PM and the target data TM. The calculated evaluation value EV is stored in the storage device 70 in association with information indicating the target individual IV and information indicating the learning data LM.

[0057] In step S105, the processor 10 determines whether or not an evaluation value EV has been calculated for the data processing sequence Sq generated from each of all the individuals IV in the current generation Gn. If the evaluation value EV has been calculated for all the individuals IV in the current generation Gn (step S105; YES), step S106 is executed. If the evaluation value EV has not been calculated for all the individuals IV in the current generation Gn (step S105; NO), step S102 is executed again. When processing step S102 for the second or subsequent times, the processor 10 selects one of the remaining individuals IVn that have not been used to generate the data processing sequence Sq, among the individuals IV in the current generation Gn. The processor 10 translates each gene of the individual IV to generate the data processing sequence Sq.

[0058] In step S106, the processor 10 determines whether or not the termination condition is satisfied. The termination condition is that the maximum evaluation value EVmax, which is the highest evaluation value EV, among the evaluation values ​​EV calculated for each of the data processing sequences Sq generated from each of the multiple individuals IV1 to IV5, is higher than a predetermined threshold value. The data processing sequence Sq that has been able to obtain the maximum evaluation value EVmax, which is the highest evaluation value EV, is identified as the target data processing sequence DSq. When the target data processing sequence DSq is identified from the data processing sequences Sq generated from each of the individuals IV1 to IV5 of the current generation, the termination condition is satisfied (step S106; YES), and therefore step S107 is executed.

[0059] On the other hand, if the maximum evaluation value EVmax is lower than the threshold, there is no data processing sequence Sq generated from each of the individuals IV1 to IV5 of the current generation that corresponds to the target data processing sequence DSq. In this case, since the termination condition is not satisfied (step S106; NO), step S101 is executed again. When executing step S101 for the second time or later, the processor 10 generates new individuals that constitute the child generation from excellent individuals of the individuals of the parent generation by at least one of crossover and mutation. Specifically, the processor 10 replaces the individuals of the current generation Gn with new individuals whose evaluation values ​​EV for the data processing sequence Sq generated from each individual are in the lowest K positions (K is an integer equal to or greater than 1). Also, new individuals are generated by performing at least one of crossover and mutation on individuals that do not correspond to the lowest K positions. In this manner, the generation of individuals is changed.

[0060] In step S107, the processor 10 stores the specific data 85 representing the target data processing sequence DSq in the storage device 70. After that, the process shown in FIG.

[0061] Fig. 10 is a detailed flowchart of the process relating to parameter determination (see step S20 in Fig. 8). The process shown in Fig. 10 is executed by the processor 10 of the generating device 100 functioning as the parameter determination unit 55. Note that it is assumed that parameter determination is required in at least one of the data processes included in the target data processing sequence DSq.

[0062] In step S201, the processor 10 reads out the specific data 85 representing the target data processing sequence DSq from the storage device 70. Furthermore, the processor 10 sets "1" to the index i. i can be an integer between 1 and N. N is the number of sequence elements that correspond to the data processing layer among the sequence elements included in the target data processing sequence DSq. The index i indicates the execution order of the data processing included in the target data processing sequence DSq. When determining the parameters, each data processing in the target data processing sequence DSq is executed in the same order as described above. For example, when data processing is executed according to the data processing sequence Sq1 shown in FIG. 7, the smallest index value is assigned to the data processing in the data processing layer connected to the data input layer in at the leftmost branch.

[0063] In step S202 shown in Fig. 10, the processor 10 refers to the process definition table 77 (see Fig. 4) to determine whether or not a parameter needs to be determined for the i-th data process included in the target data processing sequence DSq. If a parameter needs to be determined for the i-th data process (step S202; YES), the process of step S203 is executed. On the other hand, if a parameter does not need to be determined for the i-th data process (step S202; NO), the process of step S207 is executed.

[0064] In step S203, processor 10 refers to process definition table 77 to determine whether or not the result of the data process needs to be evaluated when determining parameters for the i-th data process. If the result of the data process needs to be evaluated (step S203; YES), the process of step S204 is performed. If the result of the data process does not need to be evaluated (step S203; NO), the process of step S206 is performed.

[0065] In step S204, the processor 10 accepts input of target data related to parameters for the i-th data processing. For example, the processor 10 causes the display device 160 to display an image showing a tree structure representing the target data processing sequence DSq and information representing the i-th data processing. The user uses the input device 150 to input first data, which is target data related to parameters, for the i-th data processing.

[0066] In step S205, the processor 10 executes the i-th data processing and determines parameters to be used in the i-th data processing. In step S205, if the data processing layer to which the i-th data processing is assigned is connected to the output side of the data input layer, the processing target of the i-th data processing is the sample data included in the sample data set 86. In the case where the data processing layer to which the i-th data processing is assigned is connected to the output side of another data processing layer, the processing target of the i-th data processing is intermediate data output after the other data processing is performed. The method of obtaining the parameters is defined in the processing definition table 77. In step S205, the i-th data processing is executed using the sample data or intermediate data. Alternatively, in step S205, the i-th data processing is executed using the sample data or intermediate data and the parameters. In this case, for example, the initial value of the parameter is used.

[0067] When determining the parameters in step S205, the parameters are evaluated. Specifically, the processor 10 uses the result data of the i-th data processing and the first data received in step S204 to obtain an evaluation value for evaluating the parameters. Here, the processor 10 obtains an evaluation value for evaluating the parameters using a calculation method of an evaluation value for evaluating the parameters defined in the processing definition table 77. Note that the evaluation value obtained in S205 is obtained by a method different from the evaluation value EV for evaluating the data processing sequence Sq. For example, the mean absolute error is used as the evaluation value indicating the degree of similarity between the result data of the i-th data processing and the first data received in step S204.

[0068] The processor 10 determines the parameters used in the data processing that has yielded an evaluation value that satisfies the predetermined condition as the parameters to be used in the i-th data processing. Here, the processor 10 determines whether the evaluation value satisfies the predetermined condition for evaluation defined in the processing definition table 77. Note that the predetermined condition is a condition different from the reference condition when identifying the target data processing sequence DSq. The predetermined condition is, for example, that the evaluation value is equal to or less than a threshold value.

[0069] Processor 10 repeatedly performs the i-th data processing while changing the parameter values ​​until an evaluation value that satisfies a predetermined condition is obtained. Processor 10 associates information representing the determined parameters with information representing the i-th data processing, and stores the information in storage device 70 as parameter set 87. The information representing the parameters is one or more parameters to be used in the i-th data processing. Processor 10 also stores data output as a result of the i-th data processing in storage device 70.

[0070] In step S206, the processor 10 executes the i-th data processing and determines the parameters to be used in the i-th data processing. In step S206, if the data processing layer to which the i-th data processing is assigned is connected to the output side of the data input layer, the processing target of the i-th data processing is the sample data included in the sample data set 86. In the case where the data processing layer to which the i-th data processing is assigned is connected to the output side of another data processing layer, the processing target of the i-th data processing is intermediate data output after the other data processing is performed. The method of obtaining the parameters is defined in the processing definition table 77. In step S206, the i-th data processing is executed using the sample data or intermediate data. Alternatively, in step S206, the i-th data processing is executed using the sample data or intermediate data and the parameters. In this case, for example, the initial values ​​of the parameters are used. The processor 10 associates the information representing the determined parameters with the information representing the i-th data processing and stores them in the storage device 70 as the parameter set 87. The information representing the parameters is one or more parameters to be used in the i-th data processing. Furthermore, the processor 10 stores the data output as a result of the i-th data processing in the storage device 70. After that, the process of step S208 is executed.

[0071] In step S207, the processor 10 executes the i-th data processing. The processor 10 stores the data output as a result of the i-th data processing in the storage device 70. After that, the process of step S208 is executed.

[0072] In step S208, it is determined whether index i exceeds N. If index i exceeds N (step S208; YES), the process shown in Fig. 10 is terminated. On the other hand, if index i is equal to or less than N (step S208; NO), the process of step S209 is executed.

[0073] In step S209, 1 is added to the value of index i. Then, the process of step S202 is executed. The above is the flow of the process related to parameter determination. By the above-mentioned process, the parameter set 87 stored in the storage device 70 includes information indicating parameters to be used in each of the data processes that require parameter determination among the data processes included in the target data processing sequence DSq.

[0074] Fig. 11 is a detailed flowchart of the process relating to the use of the target data processing sequence DSq (see step S30 in Fig. 8). The process shown in Fig. 11 is executed by the processor 10 of the generating device 100 functioning as the processing unit 40. In the process shown in Fig. 11, the parameters determined by the method shown in Fig. 10 are used. For this reason, it is assumed that, before the process shown in Fig. 11 is executed, the target data processing sequence DSq is identified (see Fig. 9) and the parameters to be used in the data processing included in the target data processing sequence DSq are determined (see Fig. 10).

[0075] 11, in step S301, the processor 10 reads out specific data 85 representing the target data processing sequence DSq and a parameter set 87 representing the determined parameters from the storage device 70. Therefore, in the process shown in FIG 11, the target data processing sequence DSq can be used without adjusting the parameters from scratch. Furthermore, the processor 10 reads out programs and the like required to execute each data process included in the target data processing sequence DSq from the data processing program group 71 stored in the storage device 70.

[0076] In step S302, the processor 10 reads out input data to be processed by the target data processing sequence DSq from the storage device 70. The input data is, for example, image data acquired by the imaging device 200 capturing an image of an object of the same type as the learning data LM.

[0077] In step S303, the processor 10 executes processing on the input data using the target data processing sequence DSq. That is, data processing is executed on the input data according to the order indicated by the target data processing sequence DSq. In step S304, the processor 10 outputs output data PM, which is data after processing using the target data processing sequence DSq. The output data PM is stored in the storage device 70. Furthermore, the output data PM may be displayed on the display device 160 together with the input data.

[0078] In step S305, the processor 10 determines whether or not to continue the processing using the target data processing sequence DSq. For example, the processor 10 determines to continue the processing when information indicating an instruction to continue the processing is input by a user operation. The processor 10 also determines to continue the processing when unprocessed input data is stored in the storage device 70. If the processing using the target data processing sequence DSq is to be continued (step S305; YES), the processing of step S302 is executed again. If the processing using the target data processing sequence DSq is not to be continued (step S305; NO), the processing shown in FIG. 11 is terminated.

[0079] As described above, in this embodiment, first, the data processing sequence Sq that has been able to obtain an evaluation value EV that satisfies the reference condition is identified as the target data processing sequence DSq. Then, parameters according to the target data processing sequence DSq are determined. In a mode in which the data processing sequence is identified and the parameters are determined simultaneously, the processing is inefficient because the parameters are adjusted for the multiple data processing sequences Sq that have been generated, but in the above mode, the optimal parameters can be determined efficiently.

[0080] In this embodiment, parameters are determined in advance for data processing that uses variable parameters among the data processing included in the target data processing sequence DSq. A parameter set 87 including information representing the determined parameters is stored in the storage device 70. Therefore, when performing processing that uses the target data processing sequence DSq, it is not necessary to adjust the parameters from scratch.

[0081] In addition, processing using the target data processing sequence DSq may be performed in one or more other computers different from the generating device 100. In the case where neither the generated target data processing sequence DSq nor the determined parameters are reused in the other computer different from the generating device 100, it is necessary to generate the data processing sequence and adjust the parameters from scratch, which is a heavy load. However, by storing the specific data 85 and the parameter set 87 in the storage device of the other computer, the other computer can reuse the generated target data processing sequence DSq and the determined parameters. Alternatively, the specific data 85 and the parameter set 87 may be stored in the storage device of a cloud server accessible by the other computer. Therefore, it is not necessary to adjust the parameters from scratch in the other computer.

[0082] In this embodiment, since information representing the determined parameters is associated with information representing the data processing that uses the parameters and stored in the storage device 70, the parameters can be handled for each data processing, not for each data processing sequence, allowing the user to change only the parameters for the desired data processing, for example.

[0083] In addition, the problem of the process using the data processing sequence may be slightly changed. For example, the same type of circuit board as that assumed when the target data processing sequence was generated is the inspection target, but it may become necessary to detect a defective part having a shape and color slightly different from the shape and color of the defective part assumed when the target data processing sequence was generated. In this case, it may be possible to solve the problem after the change by only adjusting the parameters without generating a new target data processing sequence. This can reduce the time required to generate the target data processing sequence.

[0084] B1. Alternative embodiment 1: Furthermore, when storing the determined parameters in the storage device 70, the parameter set 87 may be associated with information representing the target data processing sequence DSq and stored in the storage device 70. This allows the stored parameters to be easily used when a computer other than the generation device 100 that determined the parameters executes the target data processing sequence DSq.

[0085] In the embodiment, an example has been described in which the information representing the determined parameters is associated with the information representing the corresponding data processing. However, the information representing the determined parameters may be stored without being associated with the information representing the corresponding data processing.

[0086] B2. Alternative embodiment 2: Moreover, in order to determine the parameters, it is not necessary to execute all the data processing included in the target data processing sequence DSq. When the configuration of the connection relationship of the sequence elements included in the target data processing sequence DSq satisfies a predetermined condition, only a part of the data processing included in the target data processing sequence DSq may be executed in order to determine the parameters. The predetermined condition is, for example, when, among the multiple data processing included in the target data processing sequence DSq, only the data processing assigned to the data processing layer connected to the output side of the data input layer uses a parameter that needs to be determined. In this case, it is necessary to execute the data processing up to the data processing layer connected to the output side of the data input layer, and not execute the subsequent data processing.

[0087] Also, for example, suppose that the target data processing sequence DSq is represented by a tree structure as shown in FIG. 7. In this case, the parameters that need to be determined are used only in the data processing layer arranged on the left branch. In this case, only the data processing assigned to the data processing layer on the left branch is executed, and subsequent data processing may not be executed. In the example shown in FIG. 7, the input data input to the data input layer in assigned to the tip node of the left branch is processed by the image processing filter FtC, and then processed by the image processing filter FtB, and processing is executed up to the point where the first intermediate data is generated, and other data processing may not be executed. In this case, the desired first intermediate data is prepared in advance as the target data.

[0088] However, when the configuration of the connection relationship of the sequence elements included in the target data processing sequence DSq does not satisfy a predetermined condition, all of the data processing included in the data processing sequence is executed to determine the parameters. According to the above embodiment, when the predetermined condition is satisfied, it is not necessary to execute the entire data processing sequence to determine the parameters, so that the processing time required to determine the parameters can be shortened.

[0089] B3. Alternative embodiment 3: Furthermore, the generating device 100 may receive an input regarding the purpose of the data processing from the user after the process of step S201 and before the process of step S202 of the process regarding the determination of the parameters shown in FIG. 10. For example, the generating device 100 may present "discrimination" and "calibration" as options for the purpose of the data processing and receive a selection from the user. In this case, the generating device 100 stores information representing the determined parameters in the storage device 70 as the parameter set 87 in association with information representing the target data processing sequence DSq, information representing the data processing, and information representing the purpose of the specified data processing. Alternatively, the generating device 100 may store information representing the determined parameters in the storage device 70 as the parameter set 87 in association with information representing the data processing and information representing the purpose of the specified data processing. Alternatively, the generating device 100 may store information representing the determined parameters in the storage device 70 as the parameter set 87 in association with information representing the target data processing sequence DSq and information representing the purpose of the specified data processing. According to the above embodiment, when a computer other than the generating device 100 that determined the parameters executes a data processing sequence, the parameters according to the purpose of the data processing can be easily used.

[0090] It is also possible for another computer other than the generating device 100 to simply use the target data processing sequence DSq and the determined parameters. However, the purpose of the data processing set when the parameters are determined in the generating device 100 may differ from the purpose of the data processing set when the target data processing sequence DSq is used in another computer. In this case, the parameters determined in the generating device 100 may not be optimal parameters in the other computer, and the processing accuracy may be reduced. Therefore, it becomes necessary to adjust the parameters from scratch in accordance with the purpose of the data processing in the other computer. According to the above embodiment, the information representing the determined optimal parameters is associated with information representing the purpose of the specified data processing. Therefore, the parameters determined in accordance with the desired purpose can be used in the other computer.

[0091] B4. Alternative embodiment 4: After the target data processing sequence DSq is specified by the process shown in FIG. 9, data related to the data processing sequence Sq other than the specified target data processing sequence DSq may be discarded from among the multiple data processing sequences Sq generated. For example, the data related to the data processing sequence Sq to be discarded includes data of the individual IV representing each of the data processing sequences Sq other than the target data processing sequence DSq. Also, for example, the data related to the data processing sequence Sq to be discarded includes intermediate data generated by each of the data processes of the multiple data processing sequences Sq. Furthermore, data related to parameters used in each of the data processes included in each of the multiple data processing sequences Sq may be discarded. For example, the data related to the parameters to be discarded includes parameters used in each of the data processes of the multiple data processing sequences Sq. According to this embodiment, when specifying the data processing sequence and determining the parameters with one generating device 100, memory storage capacity is not unnecessarily consumed.

[0092] B5. Alternative embodiment 5: In the embodiment, the termination condition of the process for generating the target data processing sequence (see FIG. 9) is that the maximum evaluation value EVmax is higher than a predetermined threshold value. However, the termination condition is not limited to this. For example, the termination condition may be that a generation change has been performed a predetermined number of times. In this case, the evaluation value EV for each of all the generated data processing sequences Sq may be stored in the storage device 70, and the data processing sequence Sq that has obtained the highest evaluation value EV may be identified as the target data processing sequence DSq.

[0093] B6. Alternative embodiment 6: In the embodiment, the plurality of data processing sequences Sq are generated using a genetic algorithm, but the generation method is not limited to this. The plurality of data processing sequences Sq may be generated by randomly arranging a plurality of sequence elements.

[0094] B7. Alternative Embodiment 7: In the above embodiment, the data processing sequence Sq is represented by the individual IV and the gene table 82, but is not limited to this. For example, the data processing sequence Sq may be represented by a plurality of sequence elements and a table that specifies the connection relationships between the sequence elements.

[0095] C. Other forms: The present disclosure is not limited to the above-mentioned embodiment, and can be realized in various forms without departing from the spirit of the present disclosure. For example, the present disclosure can be realized in the following forms. The technical features in the above-mentioned embodiments corresponding to the technical features in each form described below can be appropriately replaced or combined in order to solve some or all of the problems of the present disclosure, or to achieve some or all of the effects of the present disclosure. Furthermore, if the technical feature is not described as essential in this specification, it can be appropriately deleted.

[0096] (1) According to a first aspect of the present disclosure, there is provided a method for generating a data processing sequence, the method for generating a data processing sequence constituted by a combination of sequence elements, a data input process for inputting input data, one or more data processes, and a data output process for outputting data resulting from the data processing, the method including: (a) a step of determining a parameter when the data processing is a process using a parameter corresponding to data to be processed and it is necessary to evaluate data output from the data processing in order to determine the parameter, the step of determining the parameter using sample data, desired target data associated with the sample data, and the parameter, and determining the parameter using output data obtained by performing the data processing and the target data; The method includes the steps of: calculating an evaluation value for evaluating output data; and determining the parameters used in the data processing that yielded the evaluation value that satisfies a predetermined condition as the parameters to be used in the data processing; (b) a step of determining the parameters when the data processing uses parameters corresponding to the data to be processed and it is not necessary to evaluate the data output after the data processing in order to determine the parameters, the step of determining the parameters to be used in the data processing by performing the data processing using the sample data and the parameters; and (c) a step of storing information representing the determined parameters in a memory unit. According to this aspect, since the determined parameters are stored, when a computer other than the computer that determined the parameters executes the same data processing sequence, the stored parameters can be used without determining new parameters, eliminating the need to adjust the parameters from scratch.

[0097] (2) In the above aspect, in the step (c), information representing the determined parameters and information representing the data processing sequence may be stored in the storage unit in association with each other. According to this aspect, the information representing the parameters is associated with the information representing the data processing sequence, so that when a computer other than the computer that determined the parameters executes the data processing sequence, the stored parameters can be easily used.

[0098] (3) In the above aspect, in step (c), information representing the determined parameters and information representing the data processing in which the determined parameters are used may be associated and stored in the memory unit. According to this aspect, since the information representing the parameters is associated with the information representing the data processing that uses the parameters, the parameters can be handled for each data processing, not for each data processing sequence, allowing the user to change only the parameters for the desired data processing, for example.

[0099] (4) In the above embodiment, in step (c), information representing the determined parameters, information representing the data processing sequence, and information representing a purpose for the data processing that was set when the parameters were determined may be stored in the memory unit in association with each other. According to this aspect, when a data processing sequence is executed by a computer other than the computer that determined the parameters, parameters according to the purpose of the data processing can be easily used.

[0100] (5) In the above-mentioned embodiment, (i) a step of generating a plurality of data processing sequences, each of the plurality of data processing sequences being represented by an individual in which a plurality of genes corresponding to a plurality of the sequence elements constituting the data processing sequence are arranged, and a reference table defining a connection relationship of the sequence elements constituting the data processing sequence, and the plurality of data processing sequences are different from each other in combination of the sequence elements; and (ii) a step of obtaining an evaluation value for evaluating each of the plurality of data processing sequences using output data obtained by processing input data with each of the plurality of data processing sequences and desired target data corresponding to the input data. (iii) using the evaluation values ​​for each of the plurality of data processing sequences to identify a target data processing sequence which is the data processing sequence that satisfies a predetermined reference condition; (iv) performing at least one of crossover and mutation to generate new individuals, thereby changing generations of the individuals; (v) repeating steps (i) to (iv) until a predetermined termination condition is satisfied; and (vi) storing information representing the identified target data processing sequence in a storage unit, wherein steps (i) to (vi) may be performed before steps (a) to (c). According to this embodiment, first, a data processing sequence that satisfies a reference condition is identified as a target data processing sequence using an evaluation value, and then parameters corresponding to the identified data processing sequence are determined. In an embodiment in which the identification of a data processing sequence and the determination of parameters are performed simultaneously, the processing is inefficient because the parameters are adjusted for the multiple data processing sequences generated. However, in the above embodiment, optimal parameters can be determined efficiently. In addition, when the problem of the processing using the data processing sequence is slightly changed, the problem after the change may be solved by only adjusting the parameters without generating a new target data processing sequence. This reduces the time required to generate the target data processing sequence.

[0101] (6) In the above embodiment, after the target data processing sequence is identified, data relating to the data processing sequences among the plurality of data processing sequences excluding the target data processing sequence and data relating to the parameters used in each of the data processing included in the plurality of data processing sequences may be discarded. According to this aspect, for example, when specifying the target data processing sequence and determining the parameters are performed on the same computer, memory storage capacity is not unnecessarily consumed.

[0102] (7) In the above embodiment, if a configuration regarding the connection relationships of the sequence elements provided in the data processing sequence satisfies a predetermined condition, only a portion of the data processing included in the data processing sequence may be executed to determine the parameter by executing step (a) or step (b), and if the configuration provided in the data processing sequence does not satisfy the predetermined condition, all of the data processing included in the data processing sequence may be executed to determine the parameter by executing step (a) or step (b). According to this aspect, when the predetermined condition is satisfied, it is not necessary to execute the entire data processing sequence to determine the parameters, so that the processing time required to determine the parameters can be reduced.

[0103] (8) A data processing method using the parameters determined by the above-mentioned embodiment includes a step of reading out specific data representing the target data processing sequence stored in the memory unit and a parameter set representing the parameters, and a step of performing data processing using the specific data and the parameter set. According to this aspect, the target data processing sequence can be used without adjusting the parameters from scratch.

[0104] (9) According to a second aspect of the present disclosure, there is provided a generating device for generating a data processing sequence. This generation device generates a data processing sequence consisting of a combination of sequence elements including a data input process for inputting input data, one or more data processes, and a data output process for outputting data resulting from the data processing, and is equipped with a determination unit that determines parameters to be used in the data processing and stores information representing the determined parameters in a memory unit, and the determination unit is a process that uses parameters according to the data to be processed by the data processing, and when it is necessary to evaluate the data outputted from the data processing in order to determine the parameters, the determination unit performs the data processing using sample data, desired target data corresponding to the sample data, and the parameters, calculates an evaluation value for evaluating the output data using output data obtained by performing the data processing and the target data, and determines the parameters used in the data processing for which the evaluation value that satisfies a predetermined condition is obtained as the parameters to be used in the data processing, and is a process that uses parameters according to the data to be processed by the data processing, and when it is not necessary to evaluate the data outputted from the data processing in order to determine the parameters, the data processing is performed using the sample data and the parameters to determine the parameters to be used in the data processing. According to this aspect, since the determined parameters are stored, when a computer other than the computer that determined the parameters executes the same data processing sequence, the stored parameters can be used without determining new parameters, eliminating the need to adjust the parameters from scratch. (10) According to a third aspect of the present disclosure, there is provided a program, which provides a computer functioning as a device for generating a data processing sequence constituted by a combination of sequence elements, including a data input process for inputting input data, one or more data processes, and a data output process for outputting data that has been subjected to the data processing, the computer providing the computer with: (a) a function for determining a parameter in the data processing, when the data processing is a process using a parameter corresponding to data to be processed and it is necessary to evaluate the data that has been subjected to the data processing and output in order to determine the parameter, the function for determining the parameter using sample data, desired target data associated with the sample data, and the parameter, and output data obtained by performing the data processing, the target data, and determining, as the parameters to be used in the data processing, the parameters used in the data processing for which the evaluation value satisfying a predetermined condition was obtained, as the parameters to be used in the data processing; (b) a function of determining the parameters in a case where it is not necessary to evaluate the data outputted from the data processing, the parameters being determined by performing the data processing using the sample data and the parameters; and (c) a function of storing information representing the determined parameters in a memory unit. According to this aspect, since the determined parameters are stored, when a computer other than the computer that determined the parameters executes the same data processing sequence, the stored parameters can be used without determining new parameters, eliminating the need to adjust the parameters from scratch.

[0105] The present disclosure may be realized in various forms other than those described above. For example, the present disclosure may be realized in the form of a non-transitory storage medium having a computer program recorded thereon. [Explanation of symbols]

[0106] 1...generation system, 10...processor, 20...sequence generation unit, 22...individual generation unit, 24...gene translation unit, 40...processing unit, 50...evaluation unit, 55...parameter determination unit, 60...display control unit, 70...storage device, 71...data processing program group, 75...learning data set, 77...processing definition table, 82...gene table, 84...population data, 85...specific data, 86...sample data set, 87...parameter set, 88...various programs, 90...interface unit, 100...generation Device, 150...input device, 160...display device, 200...imaging device, Ap1, Ap2...analysis processing, DA...defective part, DSq...target data processing sequence, EV...evaluation value, EVmax...maximum evaluation value, FtA, FtB, FtC...image processing filter, G...generation, Gn...current generation, IV, IVn, IV1...individual, LM, LM1, LM2...learning data, PM...output data, SD...degree, Sq, Sq1...data processing sequence, TM...target data, VG...numerical value, in...data input layer, out...data output layer

Claims

1. A method for generating a data processing sequence by a computer, the method comprising a combination of sequence elements: a data input process for inputting input data; one or more data processes; and a data output process for outputting data resulting from the data processes, the method comprising: (a) a step of determining the parameters when the data processing is a process using parameters according to the data to be processed and it is necessary to evaluate the data output from the data processing in order to determine the parameters, performing the data processing using sample data, desired target data associated with the sample data, and the parameters; calculating an evaluation value for evaluating the output data using the output data obtained by performing the data processing and the target data; determining the parameters used in the data processing that yielded the evaluation value that satisfies a predetermined condition as parameters to be used in the data processing; (b) a step of determining the parameters when the data processing is a process using parameters according to the data to be processed and it is not necessary to evaluate the data output from the data processing in order to determine the parameters, performing the data processing using the sample data and the parameters to determine parameters to be used in the data processing; (c) storing information representing the determined parameters in a storage unit; Including, Generation method.

2. 2. A method for generating a data processing sequence according to claim 1, comprising: In the step (c), information representing the determined parameters and information representing the data processing sequence are stored in the storage unit in association with each other. Generation method.

3. 2. The method of claim 1, In the step (c), information representing the determined parameters and information representing the data processing in which the determined parameters are used are stored in the storage unit in association with each other. Generation method.

4. 2. A method for generating a data processing sequence according to claim 1, comprising: In the step (c), information representing the determined parameters, information representing the data processing sequence, and information representing a purpose of the data processing set when the parameters were determined are stored in the storage unit in association with each other. Generation method.

5. A method for generating a data processing sequence according to any one of claims 2 to 4, comprising the steps of: (i) generating a plurality of data processing sequences, the plurality of data processing sequences are each represented by an individual in which a plurality of genes corresponding to a plurality of the sequence elements constituting the data processing sequence are arranged, and a reference table that defines a connection relationship between the sequence elements constituting the data processing sequence, and the plurality of data processing sequences are each represented by a plurality of data processing sequences having different combinations of the sequence elements. Steps and (ii) obtaining an evaluation value for evaluating each of the plurality of data processing sequences using output data obtained by processing input data using each of the plurality of data processing sequences and desired target data associated with the input data; (iii) using the evaluation values ​​for each of the plurality of data processing sequences to identify a target data processing sequence that satisfies a predetermined reference condition; (iv) performing at least one of crossover and mutation to generate new individuals, thereby generating new generations of the individuals; (v) repeating steps (i) through (iv) until a predetermined termination condition is met; (vi) storing information representing the identified target data processing sequence in a storage unit; Including, Steps (i) to (vi) are performed before steps (a) to (c). Generation method.

6. 6. A method for generating a data processing sequence according to claim 5, comprising: After the target data processing sequence is identified, data relating to the data processing sequences excluding the target data processing sequence among the plurality of data processing sequences and data relating to the parameters used in each of the data processes included in the plurality of data processing sequences are discarded. Generation method.

7. 7. A method for generating a data processing sequence according to claim 6, comprising: when a configuration regarding a connection relationship of the sequence elements included in the data processing sequence satisfies a predetermined condition, only a part of the data processing included in the data processing sequence is executed to determine the parameters by executing the step (a) or the step (b); If the configuration of the data processing sequence does not satisfy the predetermined condition, all of the data processing included in the data processing sequence are executed to determine the parameter by executing step (a) or step (b). Generation method.

8. A data processing method using the parameters determined by the generation method according to claim 5, comprising: reading out specific data representing the target data processing sequence and a parameter set representing the parameters stored in the storage unit; performing data processing using the specific data and the parameter set; Including, Data processing methods.

9. A generation device for generating a data processing sequence configured by a combination of sequence elements, a data input process for inputting input data, one or more data processes, and a data output process for outputting data that has undergone the data processing, a determination unit that determines parameters to be used in the data processing and stores information representing the determined parameters in a storage unit; Equipped with The determination unit When the data processing is a process using parameters according to the data to be processed, and the data output from the data processing needs to be evaluated in order to determine the parameters, performing the data processing using sample data, desired target data associated with the sample data, and the parameters; calculating an evaluation value for evaluating the output data using the output data obtained by performing the data processing and the target data; determining the parameters used in the data processing that yielded the evaluation value that satisfies a predetermined condition as parameters to be used in the data processing; When the data processing is a process using parameters according to the data to be processed, and it is not necessary to evaluate the data output from the data processing in order to determine the parameters, performing the data processing using the sample data and the parameters, thereby determining parameters to be used in the data processing; generator.

10. A program, A computer that functions as a device for generating a data processing sequence that is configured by a combination of a data input process for inputting input data, one or more data processes, and a data output process for outputting data that has undergone the data processing, as sequence elements, (a) a function for determining parameters when the data processing is a process using parameters according to the data to be processed and it is necessary to evaluate the data output from the data processing in order to determine the parameters, performing the data processing using sample data, desired target data associated with the sample data, and the parameters; calculating an evaluation value for evaluating the output data using the output data obtained by performing the data processing and the target data; a function of determining the parameters used in the data processing in which the evaluation value satisfying a predetermined condition was obtained as parameters to be used in the data processing; (b) a function for determining the parameters when the data processing is a process using parameters according to the data to be processed and it is not necessary to evaluate the data output from the data processing in order to determine the parameters, a function of determining parameters to be used in the data processing by performing the data processing using the sample data and the parameters; (c) storing information representing the determined parameters in a storage unit; To realize program.