WO2017056320A1 - プログラム生成装置、プログラム生成方法および生成プログラム - Google Patents

プログラム生成装置、プログラム生成方法および生成プログラム Download PDF

Info

Publication number
WO2017056320A1
WO2017056320A1 PCT/JP2015/078084 JP2015078084W WO2017056320A1 WO 2017056320 A1 WO2017056320 A1 WO 2017056320A1 JP 2015078084 W JP2015078084 W JP 2015078084W WO 2017056320 A1 WO2017056320 A1 WO 2017056320A1
Authority
WO
WIPO (PCT)
Prior art keywords
individual
fitness
individuals
population
child
Prior art date
Application number
PCT/JP2015/078084
Other languages
English (en)
French (fr)
Inventor
岡本 浩明
毅 長門
哲男 肥塚
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2015/078084 priority Critical patent/WO2017056320A1/ja
Priority to JP2017542661A priority patent/JP6544435B2/ja
Publication of WO2017056320A1 publication Critical patent/WO2017056320A1/ja
Priority to US15/939,588 priority patent/US11151458B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Definitions

  • the present invention relates to a program generation device, a program generation method, and a generation program.
  • a technology that automatically generates an image processing program for executing desired image processing by genetic programming has attracted attention.
  • This technology uses an input image and a target processing result (for example, target image) to inherit an image processing program generated by combining partial programs for image processing (for example, an image filter program). It is optimized by dynamic programming.
  • a technique for searching for an optimal solution using a genetic algorithm if the rate of increase in the evaluation value of the searched solution is observed and it is determined that the effect of the search in a certain search state has decreased, Arithmetic devices that transition to a search state have been proposed. Furthermore, as an example of a technique for realizing rule learning in fuzzy inference using a genetic algorithm, a fuzzy inference device has been proposed in which the number of newly generated rules is changed depending on the number of individuals one generation before. ing.
  • the number of child individuals generated based on a parent individual is usually constant for each generation.
  • the search range per generation in the solution search space is narrow. For this reason, the fitness of the child individual is unlikely to increase, and the learning progress rate may decrease.
  • the number of generated child individuals is large, the search range is widened, and the fitness of child individuals for each generation is likely to increase.
  • the number of fitness calculations increases for each generation, and the learning time per generation increases. For this reason, there is a problem that even if the number of child individuals generated is increased, the time required for program generation cannot always be shortened.
  • an object of the present invention is to provide a program generation device, a program generation method, and a generation program that can shorten the generation time of an image processing program.
  • a program generator using genetic programming includes a storage unit and a calculation unit.
  • the storage unit stores information indicating a population including a plurality of individuals, each of which is an image processing program represented by a tree structure, and fitness of each individual included in the population.
  • the calculation unit calculates an increase rate of the maximum fitness among the fitness values of each individual included in the population, and when the increase rate is equal to or greater than a first threshold value, a setting value indicating the number of children generated is the first number.
  • a setting process for setting the setting value to a second number larger than the first number, and a parent individual selected from each individual included in the population Based on the above, the evolution process that generates child individuals for the number of set values, the fitness of the parent individual is obtained from the storage unit, and the fitness of the child individual is calculated, and the fitness is calculated from the parent individual and the child individual. The largest selected individual is selected, one of the individuals included in the population is replaced with the selected individual, and the survival selection process of registering the fitness of the selected individual in the storage unit is repeatedly executed.
  • a program generation method is provided in which processing similar to that of the above-described program generation apparatus is executed by a computer. Furthermore, in one proposal, a generation program that causes a computer to execute the same processing as that of the above-described program generation apparatus is provided.
  • the generation time of the image processing program can be shortened.
  • 10 is a flowchart illustrating an example of a processing procedure in Modification 1.
  • 10 is a flowchart illustrating an example of a processing procedure in Modification 2.
  • 10 is a flowchart illustrating an example of a processing procedure in Modification 3.
  • 10 is a flowchart illustrating an example of a processing procedure in Modification 4.
  • 16 is a flowchart illustrating an example of a processing procedure in Modification 5.
  • 16 is a flowchart illustrating an example of a processing procedure in Modification 6.
  • FIG. 1 is a diagram illustrating a configuration example and a processing example of the program generation device according to the first embodiment.
  • the program generation apparatus 1 according to the first embodiment is an apparatus that generates an image processing program by genetic programming.
  • the program generation device 1 includes a storage unit 1a and a calculation unit 1b.
  • the storage unit 1a is mounted as a volatile storage device such as a RAM (Random Access Memory) or a nonvolatile storage device such as an HDD (Hard Disk Drive) or a flash memory.
  • the computing unit 1b is, for example, a processor.
  • the storage unit 1a stores population information 2a indicating a population 2 including a plurality of individuals. Individuals included in the population 2 are image processing programs each represented by a tree structure. In addition, the storage unit 1a stores fitness 3a, 3b,... Calculated for each individual included in the population 2.
  • At least a part of individuals included in the population 2 is updated by the calculation unit 1b.
  • the fitness stored in the storage unit 1a is also updated according to the fitness of the updated individual.
  • the computing unit 1b repeatedly executes the setting process (step S1), the evolution process (step S2), and the survival selection process (step S3).
  • the setting process in step S1 the following process is executed.
  • the computing unit 1b calculates the increase rate of the maximum fitness among the fitness 3a, 3b,... Of each individual included in the population 2. For example, the calculation unit 1b calculates the increase rate of the maximum fitness during a period in which the population 2 is updated a predetermined number of times based on the current time.
  • the calculation unit 1b sets a setting value indicating the number of child individuals generated in step S2 based on the calculated increase rate. Specifically, the arithmetic unit 1b sets the setting value to P1 when the increase rate is equal to or greater than a predetermined threshold Th1. On the other hand, when the increase rate is lower than the threshold Th1, the calculation unit 1b sets the set value to P2 that is larger than P1.
  • the calculation unit 1b uses as many child individuals as the set value set in step S1 based on the parent individuals 4a and 4b selected from the individuals included in the population 2. Is generated. In the example of FIG. 1, two child individuals 5a and 5b are generated. A predetermined number of parent individuals are selected in advance. The selection of the parent individual may be executed by the arithmetic unit 1b at an arbitrary timing from the start of step S1 to the generation of the child individual at step S2.
  • the calculation unit 1b acquires the fitness values of the parent individuals 4a and 4b from the storage unit 1a. Moreover, the calculating part 1b calculates each fitness about the child individual 5a, 5b produced
  • the computing unit 1b executes an image processing program corresponding to the individual and performs image processing on the input image.
  • the computing unit 1b compares the image obtained by the image processing with the target image, and calculates the similarity between these images as fitness.
  • the calculation unit 1b selects the individual 6 having the maximum fitness from the parent individuals 4a and 4b and the child individuals 5a and 5b.
  • the calculation unit 1b outputs the individual 6 as a final image processing program.
  • the arithmetic unit 1b replaces one of the individuals included in the population 2 with the selected individual 6 when the fitness of the individual 6 is equal to or less than the threshold Th2.
  • the calculation unit 1b deletes one of the parent individuals 4a and 4b from the population 2, and includes the selected individual 6 in the population 2. Thereby, the population 2 is updated.
  • the fitness stored in the storage unit 1a is also updated by the fitness of the individual 6.
  • the maximum fitness is calculated among the fitness of individuals included in the updated population 2, and a set value is set according to the calculated increase rate of the maximum fitness.
  • the number of child individuals generated is increased or decreased based on the increase rate of the maximum fitness among the fitness of individuals included in the population 2.
  • the increase rate is equal to or greater than the threshold Th1
  • the number of child individuals generated is suppressed to P1.
  • the number of calculations of the fitness of the child individual in step S3 is suppressed, and the processing time per generation can be shortened while maintaining the increase rate at a certain level or more.
  • the increase rate is lower than the threshold value Th1
  • the number of child individuals generated is increased from P1 to P2.
  • the search range in the solution search space expands.
  • the maximum value of the fitness of each generated child individual is likely to increase. Then, by updating the population 2 with the child individuals whose maximum values have been calculated, the possibility that the increase rate of the maximum fitness among the fitness of the individuals included in the population 2 will increase increases.
  • step S3 when the number of child individuals generated increases, the number of times the child individual fitness is calculated in step S3 also increases, so the processing time per generation increases. For this reason, it is not preferable to increase the number of child individuals generated for a long period of time in order to increase the maximum fitness, because it takes a long time to generate a program.
  • the above-described program generation device 1 temporarily increases the number of child individuals generated only during the period when the increase rate of the maximum fitness is low. As a result, the number of child individuals generated is increased only during the minimum necessary period, and the number of fitness calculations per generation increases. Therefore, as a whole, the increase rate of the maximum fitness can be maintained to some extent while suppressing the number of calculations of the fitness of the child individual, and the time taken to complete the program generation can be shortened.
  • the image processing apparatus according to the second embodiment has a processing function similar to that of the program generation apparatus 1 shown in FIG. 1 and a function of executing an image processing program generated by this processing function to perform image processing. Prepare.
  • FIG. 2 is a diagram illustrating a comparative example of the generation processing procedure of the image processing program.
  • One or more pieces of learning data 20 are prepared before the image processing program generation process.
  • the learning data 20 includes an input image 21 and a target image 22 when image processing is performed on the input image 21.
  • the input image 21 is obtained, for example, by capturing a subject with a camera.
  • an individual is configured by combining one or more partial programs. For example, as shown in the upper left of FIG. 2, an individual is defined by a tree structure.
  • a plurality of partial programs that can be incorporated into individuals are also prepared in advance.
  • an image filter is assumed as an example of a partial program incorporated in an individual.
  • the partial program is not limited to an image filter, and a program for performing other types of image processing can also be used.
  • F indicates an image filter
  • I indicates an input terminal
  • O indicates an output terminal.
  • the generation processing of the image processing program by genetic programming is executed as follows, for example. First, a plurality of initial individuals included in the population 31 are generated (step S11). In each initial individual node, an image filter is randomly selected from a plurality of image filters prepared in advance and incorporated. Next, a fixed number of parent individuals are randomly selected from the population 31 (step S12). Hereinafter, it is assumed that two parent individuals are selected as an example.
  • an evolution process is performed on the two selected parent individuals, thereby generating a constant number of child individuals of two or more (step S13).
  • crossover processing and mutation processing are performed on two parent individuals.
  • Three or more child individuals may be generated by performing different crossover processing and mutation processing on the two parent individuals. That is, the number of child individuals generated is greater than or equal to the number of parent individuals selected from the population 31.
  • the fitness is calculated for each of the child individual generated through the evolution process and the original parent individual (step S14).
  • image processing using each target individual is performed on each input image 21 of the learning data 20, and the fitness is calculated by comparing the image after execution with the corresponding target image 22. Is done.
  • an average value of fitness obtained using the plurality of learning data 20 is calculated for each individual.
  • the fitness of the initial individual included in the population 31 may be calculated when the population 31 is generated. In this case, in step S14, only the fitness of the generated child individual is calculated.
  • the individual when the fitness of any of the generated child individual and the original parent individual is equal to or greater than a predetermined threshold, the individual is output as a final image processing program, and the program generation process is performed. finish.
  • survival selection is performed from the generated individual group 32 including each child individual and the original two parent individuals (step S15). ).
  • an individual having the maximum calculated fitness is selected from the individual group 32.
  • one individual is selected from the remaining individuals in the individual group 32 by a predetermined method. For example, an individual is selected from the remaining individuals with a probability corresponding to the fitness.
  • the two individuals selected by such survival selection are replaced with two individuals selected as parent individuals among the individuals included in the population 31 (step S16). Thereby, the individuals included in the population 31 are changed to the next generation individuals. Then, the same processing is repeated until an individual whose fitness is equal to or greater than a predetermined threshold appears.
  • FIG. 3 is a diagram showing an example of crossover.
  • FIG. 3 shows an example in which crossover is performed between a parent individual 41a and a parent individual 42a, and a child individual 41b based on the parent individual 41a and a child individual 42b based on the parent individual 42a are generated.
  • the parent individual 41a includes image filters F1, F2, F3, and F4, and the parent individual 42a includes image filters F2, F3, F5, and F6.
  • the node of the image filter F2 in the parent individual 41a and the node of the image filter F5 in the parent individual 42a are selected as locations to be crossed.
  • FIG. 4 is a diagram showing an example of mutation.
  • the individual 43a includes image filters F3, F4, and F5.
  • the individual 43a may be, for example, a parent individual selected from the population 31 or may be an individual that has been selected as a parent individual from the population 31 and then crossed over.
  • the node of the image filter F3 in the individual 43a is selected as a location to be mutated and the image filter F7 is selected as an image filter after replacement by mutation.
  • the image filter after replacement by mutation is randomly selected from a plurality of image filters prepared in advance. By such mutation, a child individual 43b including the image filters F4, F5, and F7 is generated.
  • the use of performing image processing on an image obtained by imaging a product to obtain a desired effect is considered. It is done. For example, it is conceivable that the image of the appearance of the product is subjected to image processing to extract a part where a defect has occurred and a part to be aligned.
  • the number of child individuals generated from two parent individuals in the evolution process of step S13 in FIG. 2 is fixed to a constant value.
  • there are the following problems regarding the number of child individuals generated When the number of child individuals generated is small, the fitness of the child individuals is less likely to increase, and the learning progress rate may decrease.
  • the number of generations of child individuals is large, the fitness of child individuals for each generation tends to increase, but the number of calculations of fitness for each generation increases, and the learning time for each generation becomes longer. For this reason, there is a problem that even if the number of child individuals generated is increased, the time required for program generation cannot always be shortened.
  • FIG. 5 is a diagram schematically showing the relationship between the number of child individuals and the search range.
  • a solution search space 51 shown in FIG. 5 schematically shows a space including an individual.
  • the fitness of each individual is represented by the proximity to the correct area 52.
  • black circles indicate individuals included in the population 31 of a certain generation, and white circles indicate child individuals generated based on the individuals selected from the population 31.
  • the fitness of the individuals included in the population 31 is changed as a whole by updating the individuals included in the population 31 with the child individuals with high fitness. It is something to raise. This corresponds to bringing the individuals included in the solution search space 51 close to the correct solution region 52 as a whole.
  • an individual whose fitness exceeds a predetermined threshold appears, that is, when an individual included in the correct answer area 52 appears, the individual is output as a learning result.
  • the child individual when a child individual is generated based on a parent individual selected from the population 31, the child individual appears in an area relatively close to the parent individual in the solution search space 51. This is because the child individual is generated by deforming a part of the parent individual, and thus is somewhat similar to the parent individual.
  • FIG. 5 (A) shows an example in which the number of child individuals generated from the two parent individuals 53a and 53b is small
  • FIG. 5 (B) is generated from the two parent individuals 53a and 53b.
  • the search areas 54a and 54b are areas including two parent individuals 53a and 53b selected from the population 31 and a group of child individuals generated from the parent individuals 53a and 53b.
  • the search area 54b shown in FIG. 5 (B) is likely to be larger than the search area 54a shown in FIG. 5 (A). In other words, there is a higher possibility that the search area becomes larger as the number of child individuals generated is larger. This is because as the number of child individuals generated increases, the deformation pattern for the parent individuals increases, and many child individuals located in different directions from the parent individual positions in the solution search space 51 are generated. .
  • FIG. 6 is a diagram showing an example of a change in the maximum fitness when the number of child individuals generated is constant.
  • the increase rate of the maximum fitness is greater than or equal to a predetermined threshold, while in the periods 62, 64, and 66, the increase rate of the maximum fitness is smaller than the threshold. That is, in the periods 62, 64, and 66, the progress of learning is stagnant.
  • the image processing apparatus increases the number of child individuals generated from one generation of parent individuals only in the periods where the increase rate of the maximum fitness is low, such as periods 62, 64, and 66. To increase the maximum fitness. In this manner, by increasing the number of child individuals generated only during the necessary minimum period, the increase rate of the maximum fitness is maintained at a certain level or more while suppressing the processing time. As a result, the time required for program generation is shortened.
  • the image processing apparatus increases the number of child individuals generated for a certain number of generations, triggered by the increase rate of the maximum fitness being lower than the threshold, and then more than that. Reduce the number of child individuals generated regardless of the maximum fitness increase rate during the generation period.
  • the maximum fitness increase rate can be maintained above a certain level even if the number of child individuals generated is reduced in the subsequent period.
  • the nature is high. Therefore, by controlling the number of child individuals generated as described above, it is possible to shorten the period during which the number of calculated fitness values of child individuals increases while increasing the rate of increase in maximum fitness.
  • FIG. 7 is a diagram illustrating a hardware configuration example of the image processing apparatus.
  • the image processing apparatus 100 according to the present embodiment is realized as a computer as shown in FIG. 7, for example.
  • the entire image processing apparatus 100 is controlled by a processor 101.
  • the processor 101 may be a multiprocessor.
  • the processor 101 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), or a PLD (Programmable Logic Device).
  • the processor 101 may be a combination of two or more elements among CPU, MPU, DSP, ASIC, and PLD.
  • a RAM 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 109.
  • the RAM 102 is used as a main storage device of the image processing apparatus 100.
  • the RAM 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the processor 101.
  • the RAM 102 stores various data necessary for processing by the processor 101.
  • Peripheral devices connected to the bus 109 include an HDD 103, a graphic processing device 104, an input interface 105, a reading device 106, a communication interface 107, and a network interface 108.
  • the HDD 103 is used as an auxiliary storage device of the image processing apparatus 100.
  • the HDD 103 stores an OS program, application programs, and various data.
  • As the auxiliary storage device other types of nonvolatile storage devices such as SSD (SolidSoState Drive) can be used.
  • the graphic processing device 104 is connected to a display device 104a.
  • the graphic processing device 104 displays an image on the screen of the display device 104a in accordance with an instruction from the processor 101.
  • Examples of the display device include a liquid crystal display and an organic EL (ElectroLuminescence) display.
  • the input device 105 a is connected to the input interface 105.
  • the input interface 105 transmits a signal output from the input device 105a to the processor 101.
  • Examples of the input device 105a include a keyboard and a pointing device.
  • Examples of pointing devices include a mouse, a touch panel, a tablet, a touch pad, and a trackball.
  • the portable recording medium 106a is detached from the reading device 106.
  • the reading device 106 reads the data recorded on the portable recording medium 106 a and transmits it to the processor 101.
  • Examples of the portable recording medium 106a include an optical disk, a magneto-optical disk, and a semiconductor memory.
  • the communication interface 107 transmits / receives data to / from a connected external device.
  • a camera 107 a is connected to the communication interface 107 as an external device, and the communication interface 107 transmits image data transmitted from the camera 107 a to the processor 101.
  • the network interface 108 transmits and receives data to and from other devices via the network 108a.
  • the processing functions of the image processing apparatus 100 can be realized.
  • FIG. 8 is a block diagram illustrating a configuration example of processing functions provided in the image processing apparatus.
  • the image processing apparatus 100 includes an image acquisition unit 111, an image processing unit 112, a program generation unit 120, a program storage unit 130, a filter set storage unit 141, a learning data storage unit 142, and a population information storage unit 143.
  • the processing of the image acquisition unit 111, the image processing unit 112, and the program generation unit 120 is realized by, for example, the processor 101 of the image processing apparatus 100 executing a predetermined program. Part of the processing of the image processing unit 112 is realized by the processor 101 of the image processing apparatus 100 executing an image processing program stored in the program storage unit 130.
  • the program storage unit 130, the filter set storage unit 141, and the learning data storage unit 142 are realized as storage areas of the HDD 103 of the image processing apparatus 100, for example.
  • the population information storage unit 143 is realized as a storage area of the RAM 102 of the image processing apparatus 100, for example.
  • the image acquisition unit 111 acquires captured image data from the camera 107 a and outputs the acquired data to the program generation unit 120 or the image processing unit 112.
  • the program generation unit 120 generates an image processing program by genetic programming, and stores the generated image processing program in the program storage unit 130.
  • the internal configuration of the program generation unit 120 will be described later.
  • the image processing unit 112 acquires data of an image captured by the camera 107a via the image acquisition unit 111.
  • the image processing unit 112 performs image processing on the acquired image according to an image processing program stored in the program storage unit 130.
  • the processed image is displayed on the display device 104a, for example.
  • the program storage unit 130 stores the image processing program generated by the program generation unit 120.
  • the filter set storage unit 141 stores a plurality of image filter programs that can be incorporated into each individual generated by the program generation unit 120.
  • the learning data storage unit 142 stores one or more learning data including each data of the input image and the target image.
  • the input image included in the learning data may be an image captured by the camera 107a connected to the image processing apparatus 100, for example.
  • the population information storage unit 143 stores information on each individual included in the population 31.
  • the individual information includes information indicating the tree structure of the individual and the fitness calculated for the individual. Further, the population information storage unit 143 stores history information for each generation regarding the maximum fitness among the fitness of each individual included in the population 31.
  • the program generation unit 120 includes a learning control unit 121, a fitness calculation unit 122, and a learning situation analysis unit 123.
  • the learning control unit 121 comprehensively controls the entire program generation process in the program generation unit 120. For example, the learning control unit 121 generates an initial individual to be included in the population 31, evolution processing of the individual, survival selection based on fitness, output of a final image processing program, and updating of the population 31 by the survival-selected individuals. Etc. are executed.
  • the fitness calculation unit 122 calculates fitness for evaluating an individual. Specifically, the fitness calculation unit 122 performs image processing on the input image included in the learning data according to an image processing program constructed based on an individual tree structure. The fitness calculation unit 122 calculates the similarity between the image obtained by the image processing and the target image associated with the input image as the fitness of the individual.
  • the learning status analysis unit 123 calculates an index indicating the learning status.
  • the learning status analysis unit 123 calculates the increase rate of the maximum fitness among the fitness values of the individuals of the population 31 based on the history information stored in the population information storage unit 143. This increase rate indicates the speed of learning accompanying the generational change.
  • the maximum fitness among the fitness of individuals of the population 31 may be abbreviated as “maximum fitness of the population 31”.
  • FIG. 9 is a flowchart illustrating an example of a program generation processing procedure.
  • either “normal mode” or “increase mode” is set as the operation mode in the evolution / fitness calculation process.
  • C child individuals are generated per generation
  • increase mode k times (k> 1) child individuals are generated per generation compared to the normal mode.
  • control is performed so that the mode is changed from the normal mode to the increase mode, and is maintained in the increase mode for a certain number of generations thereafter, and then always returns to the normal mode.
  • the normal mode is also set continuously for a period of a certain number of generations or more, and the period (number of generations) set in the normal mode is longer than the period (number of generations) set in the increase mode.
  • the number of individuals included in the population 31 is set as P, and the minimum period L set in the normal mode is set as P / 2.
  • P / 2 corresponds to the number of generations in which individuals in the population 31 are switched once on average when two parent individuals are selected from the population 31.
  • the period D set in the increase mode is set to P / 10.
  • the period D is set to an empirical value, but if the period D is long, the processing time increases, while if the period D is too short, only a small number of individuals in the population 31 are selected as parent individuals. Therefore, the effect of increasing the maximum fitness of the population 31 cannot be obtained sufficiently.
  • the period D As a standard of the period D, for example, it can be calculated as follows. Average processing per generation when the normal mode and the increase mode are combined using the above-mentioned k indicating the increase rate of the child individual in the increase mode and the ratio m (0 ⁇ m ⁇ 1) of the increase mode with respect to the whole period.
  • k the increase rate of the child individual in the increase mode
  • m the ratio of the increase mode with respect to the whole period.
  • the period D set in the increase mode is set to 1/8 times the minimum period L set in the normal mode.
  • the learning control unit 121 receives an input operation for setting learning data.
  • learning data to be used in this process is specified from the learning data stored in the learning data storage unit 142.
  • the learning control unit 121 receives an input operation for setting a filter set.
  • an image filter to be used in this process is designated from among image filters registered in the filter set storage unit 141.
  • the learning control unit 121 receives an input operation for setting the number P of individuals included in the population 31 and the number C of individual children generated in the normal mode.
  • the learning control unit 121 generates P initial individuals to be included in the population 31.
  • Each initial individual is generated by randomly selecting and combining the image filters specified in step S22 for each node of the tree structure. Further, the tree structure of each initial individual is selected at random from, for example, a plurality of predetermined tree structures. Alternatively, the tree structure itself may be determined randomly.
  • the learning control unit 121 registers information about each generated initial individual in the population information storage unit 143.
  • the fitness calculation unit 122 calculates the fitness of each initial individual included in the population 31. Specifically, the fitness calculation unit 122 performs image processing on the input image included in the learning data according to an image processing program corresponding to each initial individual. The fitness calculation unit 122 calculates the similarity between the image obtained by the image processing and the target image associated with the input image as the fitness of the initial individual. When a plurality of learning data are registered, the fitness calculation unit 122 calculates the similarity using each learning data, for example, and uses the average value of the similarities as the fitness of the initial individual. . The fitness calculation unit 122 registers the fitness calculated for each initial individual in the population information storage unit 143.
  • Step S26 The learning control unit 121 sets the operation mode to the normal mode.
  • Step S27 Evolution / fitness calculation processing is executed. In this process, basically, two parent individuals are selected from the population 31, one or more child individuals are generated based on the parent individuals, and the fitness for each child individual is calculated. The details of the evolution / fitness calculation processing will be described in detail later with reference to FIG.
  • Step S28 The learning control unit 121 selects an individual having the maximum fitness from the parent individual selected in Step S27 and the child individual generated in Step S27, and the fitness is greater than the threshold Th11. Determine whether. When the fitness level is equal to or less than the threshold value Th11, the process of step S29 is executed. When the fitness level is larger than the threshold value Th11, the process of step S30 is executed.
  • Step S29 The learning control unit 121 selects the individual having the maximum fitness from the parent individual selected in Step S27 and the child individual generated in Step S27 as the individual to survive. Further, the learning control unit 121 selects one more individual to survive from the remaining individuals. In this selection process, for example, an individual is selected with a probability corresponding to the calculated fitness.
  • the learning control unit 121 replaces the two individuals selected as parent individuals in step S27 among the individuals included in the population 31 with the two individuals selected as the individuals to survive. As a result, the generation of the population 31 is updated. As an actual process, the learning control unit 121 deletes the information on the two individuals selected as the parent individuals in step S27 from the population information storage unit 143, and obtains information on the two individuals selected as the individuals to survive. Register in the population information storage unit 143.
  • the learning control unit 121 may replace two individuals having a low fitness among the individuals included in the population 31 with two individuals selected as individuals to survive. [Step S30] The learning control unit 121 stores the image processing program corresponding to the individual with the maximum fitness selected in step S28 in the program storage unit 130, and ends the processing.
  • FIG. 10 is a flowchart illustrating an example of the procedure of the evolution / fitness calculation process.
  • the processing in FIG. 10 corresponds to the processing in step S27 in FIG. [Step S41]
  • the learning control unit 121 randomly selects two parent individuals from the individuals included in the population 31.
  • Step S42 The learning control unit 121 determines whether the current operation mode is the normal mode. If it is the normal mode, the process of step S43 is executed. On the other hand, when it is not the normal mode, that is, when it is the increase mode, the process of step S48 is executed.
  • Step S43 The learning control unit 121 determines whether the period of the normal mode has ended. Specifically, the learning control unit 121 determines that the period set in the normal mode exceeds the above-described minimum period L (that is, the number of executions of step S43 after the normal mode is set exceeds L). In the case), it is determined that the period of the normal mode has ended. If it is determined that the normal mode period has ended, the process of step S44 is executed. If it is determined that the normal mode period has not ended, the process of step S50 is executed.
  • the learning status analysis unit 123 calculates the increase rate of the maximum fitness of the population 31 in a fixed number of generations in the past.
  • the increase rate of the maximum fitness of the population 31 in the past L generations is calculated. That is, the increase rate is calculated by dividing L by the value obtained by subtracting the maximum fitness of the population 31 before the L generation from the maximum fitness of the population 31 in the current generation.
  • the population information storage unit 143 records history information about the maximum fitness of the population 31 in at least the past L generations in order to calculate the increase rate.
  • the learning control unit 121 determines whether the increase rate calculated in Step S44 is lower than a predetermined threshold Th12. When the increase rate is lower than the threshold value Th12, the process of step S46 is executed. On the other hand, when the increase rate is equal to or greater than the threshold Th12, the process of step S50 is executed while the operation mode is maintained in the normal mode. That is, when the increase rate is equal to or greater than the threshold Th12, the period of the normal mode is extended to a length exceeding the minimum period L.
  • the learning control unit 121 changes the operation mode from the normal mode to the increase mode.
  • the learning control unit 121 generates kC child individuals using the two parent individuals selected in Step S41. For example, the following procedure is performed for generation of the child individual.
  • the learning control unit 121 generates two or more predetermined number of child individuals by performing crossover between two parent individuals. Further, the learning control unit 121 generates a mutation in any node of the generated child individual, and the image filter incorporated in the node of the original child individual is specified in step S22 of FIG. Replace with one of the image filters.
  • Step S48 The learning control unit 121 determines whether the period of the increase mode has ended. Specifically, the learning control unit 121, when the period set in the increase mode exceeds the above-described period D (that is, when the number of executions of step S48 after setting in the increase mode exceeds D) ), It is determined that the period of the increase mode has ended. If it is determined that the period of the increase mode has ended, the process of step S49 is executed. If it is determined that the period of the increase mode has not ended, the process of step S47 is executed.
  • Step S49 The learning control unit 121 changes the operation mode from the increase mode to the normal mode.
  • Step S50 The learning control unit 121 generates C child individuals using the two parent individuals selected in step S41.
  • Step S51 The fitness calculation unit 122 calculates the fitness for each of the kC child individuals generated in step S47 or the C child individuals generated in step S50. Thereafter, the process of step S28 in FIG. 9 is executed.
  • the operation mode is increased. Transition to mode. As a result, the number of child individuals generated increases, and the increase in the maximum fitness of the population 31 is promoted. Thereafter, after the increase mode is continued for the period D, the mode is changed to the normal mode, and the normal mode is continued for a minimum period L longer than the period D. And if it determines with the increase rate of the maximum fitness of the population 31 being lower than threshold value Th12 again, it will change to increase mode again and the increase will be accelerated
  • FIG. 11 is a diagram showing an example of changes in the maximum fitness and the generation number of child individuals accompanying the generation change.
  • a graph 71 shows an example of a change in the maximum fitness of the population 31, and a graph 72 shows an example of a change in the number of child individuals generated.
  • the dotted line shown in the graph 71 shows a comparative example when learning is performed in the normal mode.
  • the solid line shown in the graph 71 shows an example when the normal mode and the increase mode are switched according to the increase rate of the maximum fitness.
  • the solid line in the graph 72 indicates the number of child individuals generated when the normal mode and the increase mode are switched according to the increase rate of the maximum fitness.
  • the increase rate of the maximum fitness temporarily increases in most cases, but the rate of increase decreases when the mode returns to the normal mode. The transition to the increase mode has occurred.
  • the increase rate of the maximum fitness is lower than the threshold value Th11, the increase in the maximum fitness is promoted by shifting to the increase mode and increasing the number of child individuals generated. Therefore, the maximum fitness has reached the desired target value with a smaller number of generations compared to the case where the mode is fixed to the normal mode.
  • FIG. 12 is a diagram illustrating an example of change in maximum fitness with time.
  • the graph of FIG. 12 shows the change in the maximum fitness of the population 31 shown in the graph 71 of FIG. 11 with the horizontal axis changed from the number of generations to time.
  • the maximum fitness reaches the desired target value in a short time by switching the operation mode in accordance with the increase rate of the maximum fitness.
  • the processing time until the maximum fitness reaches the target value can be shortened by setting the increase mode only for a limited period as shown in the graph 72 of FIG.
  • the image processing apparatus 100 does not increase the increase rate of the maximum fitness of the population 31 even when the generation number of child individuals set to the increase mode is increased as in the second embodiment. Conversely, the number of offspring individuals is reduced.
  • the processing time per generation is shortened, and the number of parent individual selections and the number of child individuals generated per time increase. Thereby, the variation of the child individual produced
  • FIG. 13 is a diagram schematically showing the relationship between the number of individuals in the population and the search range.
  • the fitness of each individual is represented by the proximity to the correct solution region 82, as in the solution search space 51 shown in FIG. 5.
  • FIG. 13A shows an example when the population 31 is small.
  • the search areas 83a and 83b each indicate an area that can include the generated child individuals when a certain number of child individuals are generated from any two individuals included in the population 31 with a small number of individuals.
  • FIG. 13B shows an example in which the population 31 has a large number of individuals.
  • Each of the search areas 84a to 84d indicates an area that can include the generated child individuals when a certain number of child individuals are generated from any two individuals included in the population 31 having a large number of individuals.
  • FIG. 14 is a flowchart illustrating an example of a processing procedure in the first modification.
  • a decrease mode is prepared as an operation mode in addition to the normal mode and the increase mode.
  • the number of child individuals generated is set to C ′, which is smaller than that in the normal mode.
  • the decrease mode is set when the increase rate of the maximum fitness of the population 31 has not increased beyond the threshold Th12 after the increase mode has continued for the period D described above.
  • step S61 when it is determined in step S42 in FIG. 10 that the operation mode is not the normal mode, the process in step S61 in FIG. 14 is executed.
  • the learning control unit 121 determines whether the current operation mode is the increase mode. If it is the increase mode, the process of step S62 is executed. On the other hand, when the mode is not the increase mode, that is, when the mode is the decrease mode, the process of step S67 is executed.
  • Step S62 The learning control unit 121 determines whether the period of the increase mode has ended. Specifically, the learning control unit 121, when the period set in the increase mode exceeds the above-described period D (that is, when the number of executions of step S62 after setting the increase mode exceeds D) ), It is determined that the increase mode period has ended. If it is determined that the increase mode period has ended, the process of step S63 is executed. If it is determined that the increase mode period has not ended, the process of step S47 of FIG. 10 is executed.
  • Step S63 The learning situation analysis unit 123, in the same procedure as Step S44 of FIG. 10, based on the history information stored in the population information storage unit 143, the maximum fitness of the population 31 in the past L generations. The rate of increase is calculated.
  • Step S64 The learning control unit 121 determines whether the increase rate calculated in Step S63 is lower than the threshold Th12. When the increase rate is lower than the threshold value Th12, the process of step S65 is executed. On the other hand, when the increase rate is equal to or greater than the threshold Th12, the process of step S49 in FIG. 10 is executed, and the operation mode is changed to the normal mode.
  • Step S65 The learning control unit 121 changes the operation mode from the increase mode to the decrease mode.
  • Step S66 The learning control unit 121 generates C ′ child individuals using the two parent individuals selected in step S41 of FIG. 10 (where C ′ ⁇ C). Thereafter, the process of step S28 in FIG. 9 is executed.
  • Step S67 The learning control unit 121 determines whether the period of the decrease mode has ended. Specifically, the learning control unit 121, when the period set in the decrease mode exceeds the period D described above (that is, when the number of executions of step S67 after setting the decrease mode exceeds D). In addition, it is determined that the period of the decrease mode has ended. If it is determined that the decrease mode period has ended, the process of step S68 is executed. If it is determined that the decrease mode period has not ended, the process of step S66 is executed.
  • Step S68 The learning status analysis unit 123 increases the maximum fitness of the population 31 in the past L generations based on the history information stored in the population information storage unit 143 in the same procedure as in step S63. Is calculated.
  • Step S69 The learning control unit 121 determines whether the increase rate calculated in Step S68 is lower than the threshold Th12. When the increase rate is lower than the threshold value Th12, the process of step S70 is executed. On the other hand, when the increase rate is equal to or greater than the threshold Th12, the process of step S49 in FIG. 10 is executed, and the operation mode is changed to the normal mode. In step S69, a threshold different from the threshold Th12 may be used.
  • Step S70 The learning control unit 121 newly generates a predetermined number of individuals using the filter set specified in step S22 of FIG.
  • the learning control unit 121 adds the generated individual to the population 31.
  • tree structure information and fitness for the added individual are registered in the population information storage unit 143.
  • the process of step S66 is executed while the operation mode is maintained in the decrease mode.
  • the mode is set to the decrease mode when the increase rate of the maximum fitness does not recover to the threshold value Th12 or more after the increase mode is set for the period D in order to promote the increase of the maximum fitness. Is done.
  • the number of child individuals generated is reduced, the processing time per generation is shortened, and the number of parent individuals selected per time and the number of child individuals generated are increased.
  • the variation of generated child individuals increases, and child individuals with high fitness are easily generated.
  • the learning control unit 121 If the increase rate is lower than the threshold Th12 in step S69, the learning control unit 121 generates a new individual and does not change the number of individuals in the population 31, and the fitness of the individuals in the population 31 is low.
  • the individual may be replaced with a newly generated individual. In this case, after the individual is replaced, the process may proceed to step S49 in FIG. 10 to be changed to the normal mode. Even in this case, there is a high possibility that a child individual with high fitness will be generated in a short time.
  • step S63 may be executed when the number of times of transition to the increase mode is equal to or greater than a predetermined number.
  • the image processing apparatus 100 increases the number of child individuals generated even when the variation in fitness of each child individual generated is small.
  • the variation of the fitness of the child individual is small, the fitness is difficult to increase and the progress of learning is likely to be stagnant. Therefore, in such a case, the progress of learning can be promoted by increasing the number of child individuals generated.
  • the image processing apparatus 100 conversely decreases the number of child individuals generated from the normal mode. Therefore, the variation of the child individual generated within the unit time is increased, and the child individual close to the correct answer region 52 is easily generated in the solution search space 51 shown in FIG.
  • FIG. 15 is a flowchart illustrating an example of a processing procedure in the second modification.
  • the process of the next step S81 is executed.
  • the fitness calculation unit 122 calculates fitness for each of the C child individuals generated in Step S50 by the same procedure as in Step S51 of FIG.
  • the learning situation analysis unit 123 calculates the variation (dispersion) in fitness calculated in step S81.
  • the learning control unit 121 determines whether the calculated variation is smaller than a predetermined threshold Th13. When the variation is smaller than the threshold Th13, the process of step S83 is executed. When the variation is equal to or greater than the threshold Th13, the process of step S87 is executed.
  • Step S83 The learning control unit 121 newly generates a predetermined number of individuals using the two parent individuals selected in step S41 of FIG. For example, (kC ⁇ C) individuals are generated.
  • the fitness calculation unit 122 calculates the fitness of each individual generated in step S83 by the same procedure as in step S51 of FIG.
  • the learning situation analysis unit 123 calculates variation in fitness based on all fitness values calculated in steps S81 and S84.
  • the learning control unit 121 determines whether it is smaller than the calculated variation threshold Th13. When the variation is smaller than the threshold Th13, the process of step S86 is executed. When the variation is equal to or greater than the threshold Th13, the process of step S87 is executed.
  • Step S86 The learning control unit 121 selects a predetermined number of individuals with high fitness as the individuals to be processed from among the child individuals generated in Step S50 and Step S83.
  • the number of individuals selected here is smaller than the number C of child individuals generated in the normal mode.
  • Step S87 The learning control unit 121 selects all individuals generated in steps S50 and S83 as individuals to be processed. After steps S86 and S87, the process of step S28 in FIG. 9 is executed. In step S28, the individual selected as the processing target in step S86 or step S87 is used as a child individual. Furthermore, even when the process of step S29 subsequent to step S28 is executed, the individual selected as the process target in step S86 or step S87 is used as a child individual.
  • the number of child individuals is further increased or decreased based on the variation in fitness after the child individuals are generated in one generation of processing.
  • the number of child individuals generated in the current generation may be increased or decreased based on the variation in fitness of the child individuals generated in the previous generation process.
  • the process of the above modification 2 can also be combined with the process of the modification 1.
  • ⁇ Modification 3> When the maximum fitness of the population 31 is greater than a certain value and the learning stage is at the end, learning is progressed by facilitating selection of individuals with high fitness from the population 31 as parent individuals. Can be promoted. Therefore, in the third modification, the image processing apparatus 100 deletes individuals with low fitness from the population 31 and reduces the number of individuals in the population 31 when it is estimated that the reaching stage of learning is the final stage. Let Thereby, an individual with high fitness is easily selected as a parent individual from the population 31, and learning can be promoted.
  • FIG. 16 is a flowchart illustrating an example of a processing procedure in the third modification.
  • steps S101 to S103 shown in FIG. 16 are executed before step S41 in FIG.
  • Step S101 The learning control unit 121 determines whether the maximum fitness of the population 31 is equal to or greater than a predetermined threshold Th14. When the maximum fitness is greater than or equal to the threshold Th14, the process of step S102 is executed. When the maximum fitness is lower than the threshold Th14, the process of step S41 of FIG. 10 is executed.
  • the learning control unit 121 deletes a predetermined number of individuals having low fitness from the population 31.
  • the learning control unit 121 changes the operation mode to the increase mode.
  • Modification 4 When the variation in fitness of each individual included in the population 31 is small, there is a possibility that no individual exists in the vicinity of the correct answer area. In this case, the maximum fitness of the population 31 is difficult to increase. However, since the maximum fitness of the population 31 is already high at the end of learning, there is a high possibility that an individual included in the population 31 exists in the vicinity of the correct answer region.
  • the image processing apparatus 100 adds a new individual to the population 31 when the variation in fitness of each individual included in the population 31 is small at the initial stage of learning. Increase the number of individuals. Thereby, an individual with high fitness becomes easy to be selected as a parent individual, and progress of learning is promoted.
  • FIG. 17 is a flowchart illustrating an example of a processing procedure in the fourth modification.
  • the processes of steps S121 to S126 shown in FIG. 17 are executed before step S41 of FIG.
  • the learning situation analysis unit 123 calculates the variation (variance) in fitness of each individual included in the population 31.
  • the learning control unit 121 determines whether the variation calculated in step S121 is smaller than a predetermined threshold Th15. When the variation is smaller than the threshold value Th15, the process of step S123 is executed. When the variation is equal to or greater than the threshold value Th15, the process of step S41 in FIG. 10 is executed.
  • Step S123 The learning control unit 121 determines whether the maximum fitness of the population 31 is lower than a predetermined threshold Th16_L. When the maximum fitness is lower than the threshold Th16_L, the process of step S124 is executed. When the maximum fitness is equal to or greater than the threshold Th16_L, the process of step S125 is executed.
  • Step S124 The learning control unit 121 generates a predetermined number of individuals using the filter set specified in Step S22 of FIG. 9 in the same procedure as Step S70 of FIG. Add to group 31. Thereafter, the process of step S41 in FIG. 10 is executed.
  • Step S125 The learning control unit 121 determines whether the maximum fitness of the population 31 is equal to or greater than a predetermined threshold Th16_H.
  • This threshold value Th16_H is set to a value larger than the threshold value Th16_L used in step S123.
  • the process of step S126 is executed.
  • the process of step S41 of FIG. 10 is executed.
  • steps S123 and S125 for example, the process of step S124 is executed when the maximum fitness is lower than a certain threshold value, and the process of step S126 is executed when the maximum fitness is the same threshold value or more. It may be deformed.
  • Step S126 The learning control unit 121 reduces the number of individuals included in the population 31 so that individuals with similar fitness are not included in the population 31. For example, for each individual included in the population 31, the learning control unit 121 identifies an individual pair whose fitness difference is equal to or less than a predetermined threshold, and deletes one of the identified individual pairs from the population 31. To do. Thereafter, the process of step S41 in FIG. 10 is executed.
  • step S122 when it is determined in step S122 that the variation in fitness of individuals included in the population 31 is low, the learning stage is determined in steps S123 and S125. If it is determined as the initial stage of learning, a new individual is added to the population 31 in step S124. Thereby, an individual with high fitness becomes easy to be selected as a parent individual, and progress of learning is promoted.
  • step S126 if it is further determined that the learning is in the final stage, one of individuals whose fitness is similar to each other is deleted from the population 31 in step S126.
  • the entire individuals in the population 31 are easily selected as parent individuals in a short time.
  • variation in fitness of individuals selected as parent individuals in each generation increases. By these two effects, it becomes easy to select an optimal individual from the individuals of the population 31 as a parent individual in a short time, and the progress of learning is promoted.
  • a pair of individuals having a similar tree structure may be identified from individuals included in the population 31, and one of the identified pairs of individuals may be deleted from the population 31.
  • the similarity of the tree structure is calculated based on, for example, the number of nodes included in the tree structure and the similarity of the type of image filter assigned to each node. Even when such processing is performed, the optimum individual is easily selected as the parent individual among the individuals of the population 31, and the progress of learning is promoted.
  • Modification 5 When the variation in fitness of two parent individuals selected from the population 31 is small, the search range per generation in the solution search space is narrowed. Therefore, in Modification 5, the image processing apparatus 100 increases the number of child individuals generated when the variation in the fitness of the parent individuals is small. Thereby, a child individual close to the correct answer region is easily generated, and the progress of learning is promoted.
  • FIG. 18 is a flowchart illustrating an example of a processing procedure in the fifth modification.
  • the process of the next step S141 is executed.
  • Step S141 The learning situation analysis unit 123 calculates a difference in fitness of each parent individual selected in Step S41.
  • the learning control unit 121 determines whether the calculated difference is smaller than a predetermined threshold Th17. If the difference is greater than or equal to the threshold Th17, the process of step S42 in FIG. 10 is executed. On the other hand, if it is determined that the difference is smaller than the threshold Th17 and the variation in fitness of the parent individual is small, the process proceeds to step S47 in FIG. 10, and the number of child individuals generated is temporarily increased.
  • step S141 in FIG. 18 may be executed when the effect of increasing the maximum fitness of the population 31 due to the transition to the increase mode is not sufficiently obtained. For example, when the number of transitions to the increase mode exceeds a predetermined threshold, the image processing apparatus 100 calculates the increase rate of the maximum fitness of the population 31 after executing step S41. The image processing apparatus 100 executes the process of step S141 only when the increase rate is lower than the predetermined threshold, and when the increase rate is equal to or greater than the threshold, skips step S141 and executes the process of step S42.
  • Modification 6 the number of child individuals generated is controlled according to the size of the tree structure of the parent individual selected from the population 31.
  • the size of the tree structure indicates, for example, the number of nodes included in the tree structure.
  • FIG. 19 is a flowchart illustrating an example of a processing procedure in the sixth modification.
  • the sixth modification for example, after two parent individuals are selected in step S41 in FIG. 10, the following processing is executed.
  • Step S151 The learning control unit 121 compares the size of each tree structure of the parent individual selected in Step S41 with a predetermined threshold Th18_L. If at least one of the sizes of the tree structures is smaller than the threshold Th18_L, the process proceeds to step S47 in FIG. 10, and the number of child individuals generated is temporarily increased to kC. On the other hand, when both the sizes of the tree structures are equal to or larger than the threshold Th18_L, the process of step S152 is executed.
  • Step S152 The learning control unit 121 compares the size of each tree structure of the parent individual selected in Step S41 with a predetermined threshold Th18_H.
  • the threshold value Th18_H is greater than the threshold value Th18_L.
  • the process of step S153 is executed.
  • both the sizes of the tree structures are smaller than the threshold Th18_H, the process of step S42 in FIG. 10 is executed.
  • Step S153 The learning control unit 121 uses the two parent individuals selected in step S41 to generate C ′ child individuals smaller than the number C of child individuals generated in the normal mode. That is, when at least one of the sizes of the parent individual's tree structure is larger than the threshold Th18_L, the number of child individuals generated is temporarily increased. Thereafter, the process of step S28 in FIG. 9 is executed.
  • steps S151 and S152 of FIG. 19 may be executed when the effect of increasing the maximum fitness of the population 31 due to the transition to the increase mode is not sufficiently obtained. For example, when the number of transitions to the increase mode exceeds a predetermined threshold, the image processing apparatus 100 calculates the increase rate of the maximum fitness of the population 31 after executing step S41. The image processing apparatus 100 executes the process of step S151 only when the increase rate is lower than the predetermined threshold value, and when the increase rate is equal to or higher than the threshold value, skips steps S151 and S152 and executes the process of step S42.
  • the process of the above modification 6 can be combined with the processes of the modifications 1 to 5.
  • the processing functions of the devices (the program generation device 1 and the image processing device 100) described in each of the above embodiments can be realized by a computer.
  • a program describing the processing contents of the functions that each device should have is provided, and the processing functions are realized on the computer by executing the program on the computer.
  • the program describing the processing contents can be recorded on a computer-readable recording medium.
  • the computer-readable recording medium include a magnetic storage device, an optical disk, a magneto-optical recording medium, and a semiconductor memory.
  • Examples of the magnetic storage device include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape.
  • Optical discs include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc-Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like.
  • Magneto-optical recording media include MO (Magneto-Optical disk).
  • a portable recording medium such as a DVD or CD-ROM in which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.
  • the computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. In addition, each time a program is transferred from a server computer connected via a network, the computer can sequentially execute processing according to the received program.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Physiology (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Genetics & Genomics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)

Abstract

画像処理プログラムの生成時間を短縮する。 演算部(1b)は、母集団(2)に含まれる各個体の適応度のうち最大適応度の増加率を計算し、増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、増加率が第1の閾値より低い場合、設定値を第1の個数より大きい第2の個数に設定する設定処理(S1)と、母集団(2)に含まれる各個体の中から選択された親個体(4a,4b)に基づいて、設定値の数だけ子個体(5a,5b)を生成する進化処理(S2)と、親個体(4a,4b)と子個体(5a,5b)の中から適応度が最大である個体(6)を選択し、母集団(2)に含まれる個体の1つを個体(6)と入れ替える生存選択処理(S3)とを繰り返し実行する。

Description

プログラム生成装置、プログラム生成方法および生成プログラム
 本発明は、プログラム生成装置、プログラム生成方法および生成プログラムに関する。
 所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術が注目されている。この技術は、入力画像と目標となる処理結果(例えば、目標画像)とを用いて、画像処理のための部分プログラム(例えば、画像フィルタのプログラム)を組み合わせて生成される画像処理プログラムを、遺伝的プログラミングによって最適化していくものである。
 また、遺伝的アルゴリズムを用いて最適解を探索する技術の例として、探索された解の評価値の上昇率を観測し、ある1つの探索状態における探索の効果が低下したと判定すると、別の探索状態に遷移する演算装置が提案されている。さらに、ファジィ推論におけるルールの学習を遺伝的アルゴリズムによって実現する技術の例として、新規に生成されるルール数を1世代前の個体の数に依存して変化させるようにしたファジィ推論装置が提案されている。
特開平7-225752号公報 特開平6-119176号公報
青木紳也、長尾智晴、「木構造画像変換の自動構築法ACTIT」、情報メディア学会誌Vol.53,No.6、1999年6月20日、p.890-892
 画像処理プログラムを遺伝的プログラミングによって生成する際、通常、親個体を基に生成される子個体の数は各世代で一定とされる。ここで、生成される子個体の数が少ない場合には、解の探索空間において1世代当たりで探索される範囲が狭い。このため、子個体の適応度が上昇しにくくなって、学習の進行速度が低下する場合がある。一方、生成される子個体の数が多い場合には、探索範囲が広がることから、世代ごとの子個体の適応度は上昇しやすい。しかし、世代ごとに適応度の算出回数が増加し、1世代当たりの学習時間が長くなる。このため、子個体の生成数を多くしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。
 1つの側面では、本発明は、画像処理プログラムの生成時間を短縮可能なプログラム生成装置、プログラム生成方法および生成プログラムを提供することを目的とする。
 1つの案では、遺伝的プログラミングを用いたプログラム生成装置が提供される。このプログラム生成装置は、記憶部と演算部とを有する。記憶部は、それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、母集団に含まれる各個体の適応度とを記憶する。演算部は、母集団に含まれる各個体の適応度のうち最大適応度の増加率を計算し、増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、増加率が第1の閾値より低い場合、設定値を第1の個数より大きい第2の個数に設定する設定処理と、母集団に含まれる各個体の中から選択された親個体に基づいて、設定値の数だけ子個体を生成する進化処理と、親個体の適応度を記憶部から取得するとともに子個体の適応度を計算し、親個体と子個体の中から適応度が最大である選択個体を選択し、母集団に含まれる個体の1つを選択個体と入れ替えるとともに、選択個体の適応度を記憶部に登録する生存選択処理と、を繰り返し実行する。
 また、1つの案では、上記のプログラム生成装置と同様の処理がコンピュータによって実行されるプログラム生成方法が提供される。
 さらに、1つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させる生成プログラムが提供される。
 1つの側面では、画像処理プログラムの生成時間を短縮できる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。 画像処理プログラムの生成処理手順の比較例を示す図である。 交叉の例を示す図である。 突然変異の例を示す図である。 子個体の数と探索範囲との関係を模式的に示す図である。 子個体の生成数が一定の場合における最大適応度の変化の例を示す図である。 画像処理装置のハードウェア構成例を示す図である。 画像処理装置が備える処理機能の構成例を示すブロック図である。 プログラム生成処理手順の例を示すフローチャートである。 進化・適応度算出処理の手順の例を示すフローチャートである。 世代交代に伴う最大適応度および子個体の生成数の変化の例を示す図である。 時間経過に伴う最大適応度の変化の例を示す図である。 母集団の個体数と探索範囲との関係を模式的に示す図である。 変形例1における処理手順の例を示すフローチャートである。 変形例2における処理手順の例を示すフローチャートである。 変形例3における処理手順の例を示すフローチャートである。 変形例4における処理手順の例を示すフローチャートである。 変形例5における処理手順の例を示すフローチャートである。 変形例6における処理手順の例を示すフローチャートである。
 以下、本発明の実施の形態について図面を参照して説明する。
 〔第1の実施の形態〕
 図1は、第1の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。第1の実施の形態に係るプログラム生成装置1は、画像処理プログラムを遺伝的プログラミングによって生成する装置である。このプログラム生成装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、例えば、RAM(Random Access Memory)などの揮発性記憶装置、あるいはHDD(Hard Disk Drive)、フラッシュメモリなどの不揮発性記憶装置として実装される。演算部1bは、例えば、プロセッサである。
 記憶部1aは、複数の個体を含む母集団2を示す母集団情報2aを記憶する。母集団2に含まれる個体は、それぞれ木構造で表される画像処理プログラムである。また、記憶部1aは、母集団2に含まれる各個体について算出された適応度3a,3b,・・・を記憶する。
 後述するように、母集団2に含まれる個体の少なくとも一部は、演算部1bによって更新される。また、母集団2に含まれる個体が更新されると、更新後の個体についての適応度によって、記憶部1aに記憶される適応度も更新される。
 演算部1bは、設定処理(ステップS1)と、進化処理(ステップS2)と、生存選択処理(ステップS3)とを繰り返し実行する。
 ステップS1の設定処理では、次のような処理が実行される。演算部1bは、母集団2に含まれる各個体の適応度3a,3b,・・・のうち、最大適応度の増加率を計算する。例えば、演算部1bは、現時点を基準に母集団2が所定回数だけ更新された期間における最大適応度の増加率を計算する。
 演算部1bは、算出された増加率に基づいて、ステップS2での子個体の生成数を示す設定値を設定する。具体的には、演算部1bは、増加率が所定の閾値Th1以上である場合、設定値をP1に設定する。一方、演算部1bは、増加率が閾値Th1より低い場合、設定値をP1より大きいP2に設定する。
 次に、ステップS2の進化処理では、演算部1bは、母集団2に含まれる個体の中から選択された親個体4a,4bに基づいて、ステップS1で設定された設定値の数だけ子個体を生成する。図1の例では、2つの子個体5a,5bが生成されている。なお、親個体は、あらかじめ決められた一定数だけ選択される。また、親個体の選択は、ステップS1の開始時からステップS2での子個体の生成までの間の任意のタイミングで、演算部1bによって実行されればよい。
 次に、ステップS3の生存選択処理では、次のような処理が実行される。演算部1bは、親個体4a,4bについての各適応度を記憶部1aから取得する。また、演算部1bは、ステップS2で生成した子個体5a,5bについての各適応度を計算する。なお、例えば、入力画像と、この入力画像に対して画像処理を施したときの目標画像とがあらかじめ用意される場合には、個体の適応度は次のようにして算出される。演算部1bは、個体に対応する画像処理プログラムを実行して、入力画像に画像処理を施す。演算部1bは、画像処理によって得られた画像と目標画像とを比較して、これらの画像間の類似度を適応度として算出する。
 演算部1bは、次に、親個体4a,4bと子個体5a,5bの中から、適応度が最大である個体6を選択する。ここで、演算部1bは、例えば、選択された個体6の適応度が所定の閾値Th2より大きい場合、個体6を最終的な画像処理プログラムとして出力する。一方、演算部1bは、個体6の適応度が閾値Th2以下である場合、母集団2に含まれる個体の1つを、選択された個体6と入れ替える。例えば、演算部1bは、親個体4a,4bのいずれかを母集団2から削除して、選択された個体6を母集団2に含める。これによって、母集団2が更新される。また、記憶部1aに記憶された適応度も、個体6の適応度によって更新される。
 この後、ステップS1に戻り、更新後の母集団2に含まれる個体の適応度のうち最大適応度が計算されて、算出された最大適応度の増加率に応じて設定値が設定される。
 以上のプログラム生成装置1の処理では、母集団2に含まれる個体の適応度のうち最大適応度の増加率に基づいて、子個体の生成数が増減される。増加率が閾値Th1以上の場合には、子個体の生成数はP1に抑えられる。これにより、ステップS3での子個体の適応度の算出回数が抑制され、増加率を一定以上に保持したまま、1世代当たりの処理時間を短縮することができる。
 一方、増加率が閾値Th1より低い場合には、子個体の生成数がP1からP2に増加される。子個体の生成数が増加すると、解の探索空間における探索範囲が拡大する。これにより、生成された各子個体の適応度のうちの最大値が増加しやすくなる。そして、その最大値が算出された子個体によって母集団2が更新されることで、母集団2に含まれる個体の適応度のうち最大適応度の増加率が上昇する可能性が高まる。
 ここで、子個体の生成数が増加すると、ステップS3での子個体の適応度の算出回数も増加するため、1世代当たりの処理時間が増大する。このため、最大適応度を増加させるために子個体の生成数を長期間増やしたままにすることは、プログラム生成にかかる時間が長くなり、好ましくない。
 これに対して、上記のプログラム生成装置1は、最大適応度の増加率が低くなった期間のみ、子個体の生成数を一時的に増加させる。これにより、必要最小限の期間のみ、子個体の生成数が増加されて、1世代当たりの適応度の算出回数が増加する。したがって、全体として、子個体の適応度の算出回数を抑制しつつ、最大適応度の増加率をある程度維持することができ、プログラム生成が完了するまでにかかる時間を短縮することができる。
 〔第2の実施の形態〕
 次に、第2の実施の形態に係る画像処理装置について説明する。第2の実施の形態に係る画像処理装置は、図1に示したプログラム生成装置1と同様の処理機能と、この処理機能によって生成された画像処理プログラムを実行して画像処理を行う機能とを備える。
 以下の説明では、まず、図2~図4を用いて、遺伝的プログラミングによる画像処理プログラムの生成処理の比較例について説明し、次に、図5を用いて、この比較例における問題点について説明した後、第2の実施の形態に係る画像処理装置の詳細について説明する。
 <画像処理プログラム生成処理の比較例>
 図2は、画像処理プログラムの生成処理手順の比較例を示す図である。
 画像処理プログラムの生成処理の前に、1つ以上の学習データ20が用意される。学習データ20には、入力画像21と、入力画像21に対して画像処理を施したときの目標画像22とが含まれる。入力画像21は、例えば、カメラによって被写体を撮像することによって得られる。
 遺伝的プログラミングによる画像処理プログラムの生成処理では、個体は、1つ以上の部分プログラムを組み合わせて構成される。例えば、図2の左上に示すように、個体は木構造で定義される。
 個体に組み込むことが可能な複数の部分プログラムも、あらかじめ用意される。以下、個体に組み込まれる部分プログラムの例として、画像フィルタを想定するが、部分プログラムは画像フィルタに限るものではなく、他の種類の画像処理を行うプログラムを用いることもできる。なお、図2の左上において、“F”は画像フィルタを示し、“I”は入力端子を示し、“O”は出力端子を示す。
 遺伝的プログラミングによる画像処理プログラムの生成処理は、例えば、次のように実行される。まず、母集団31に含められる複数の初期個体が生成される(ステップS11)。各初期個体のノードには、あらかじめ用意された複数の画像フィルタの中から画像フィルタがランダムに選択されて組み込まれる。次に、母集団31の中から、ランダムに一定数の親個体が選択される(ステップS12)。以下、例として2つの親個体が選択されるものとする。
 次に、選択された2つの親個体に対して進化過程の処理が施されることで、2以上の一定数の子個体が生成される(ステップS13)。進化過程では、2つの親個体に対して交叉処理および突然変異処理が行われる。2つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、3つ以上の子個体が生成されてもよい。すなわち、生成される子個体の数は、母集団31から選択される親個体の数以上とされる。
 次に、進化過程を経て生成された子個体、および元の親個体のそれぞれについて、適応度が計算される(ステップS14)。この処理では、対象の個体それぞれを用いた画像処理が、学習データ20の各入力画像21に対して実行され、実行後の画像と対応する目標画像22とが比較されることで適応度が計算される。複数の学習データ20が存在する場合、個体それぞれについて、複数の学習データ20を用いて得られた適応度の平均値が算出される。
 なお、母集団31が生成された時点で母集団31に含まれる初期個体の適応度が算出されてもよい。この場合、ステップS14では、生成された子個体の適応度だけが算出される。
 ここで、生成された子個体および元の親個体のうちのいずれかの適応度が所定の閾値以上であった場合には、その個体が最終的な画像処理プログラムとして出力され、プログラム生成処理が終了する。一方、すべての個体の適応度が所定の閾値未満であった場合には、生成された各子個体および元の2つの親個体を含む個体群32の中から、生存選択が行われる(ステップS15)。この生存選択では、個体群32の中から、算出された適応度が最大の個体が選択される。さらに、個体群32内の残りの個体の中から、所定の方法で個体が1つ選択される。例えば、残りの個体の中から、適応度に応じた確率で個体が選択される。
 このような生存選択によって選択された2つの個体は、母集団31に含まれる個体のうち、親個体として選択された2つの個体と入れ替えられる(ステップS16)。これにより、母集団31に含まれる個体が次世代の個体へ変更される。そして、適応度が所定の閾値以上となる個体が出現するまで、同様の処理が繰り返される。
 図3は、交叉の例を示す図である。図3では、親個体41aと親個体42aとの間で交叉が行われ、親個体41aに基づく子個体41bと、親個体42aに基づく子個体42bとが生成される場合の例を示す。
 親個体41aは、画像フィルタF1,F2,F3,F4を含み、親個体42aは、画像フィルタF2,F3,F5,F6を含む。ここで、親個体41aにおける画像フィルタF2のノードと、親個体42aにおける画像フィルタF5のノードが、交叉を行う箇所として選択されたものとする。
 交叉の処理では、例えば、選択されたノードだけでなく、そのノードより下位階層のノードも交叉の対象となる。このため、図3の例では、親個体41aにおける“画像フィルタF2,F1、画像フィルタF2の一方に接続された入力端子のノード、画像フィルタF1に接続された入力端子のノード”と、親個体42aにおける“画像フィルタF5、画像フィルタF5に接続された入力端子のノード”とが入れ替えられる。このような交叉により、画像フィルタF3,F4,F5を含む子個体41bと、画像フィルタF1,F3,F6をそれぞれ1つ含み、画像フィルタF2を2つ含む子個体42bとが生成される。
 図4は、突然変異の例を示す図である。図4において、個体43aは、画像フィルタF3,F4,F5を含む。この個体43aは、例えば、母集団31から選択された親個体であってもよいし、または、母集団31から親個体として選択された後、交叉が行われた個体であってもよい。
 ここで、個体43aにおける画像フィルタF3のノードが突然変異を行う箇所として選択されるとともに、突然変異による置き換え後の画像フィルタとして画像フィルタF7が選択されたものとする。なお、突然変異による置き換え後の画像フィルタは、あらかじめ用意された複数の画像フィルタの中からランダムに選択される。このような突然変異により、画像フィルタF4,F5,F7を含む子個体43bが生成される。
 以上の比較例のような手順により生成される画像処理プログラムの用途の例としては、FA(Factory Automation)分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出するといった用途が考えられる。
 このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理アルゴリズムの再構築の必要が生じる場合がある。このため、画像処理アルゴリズムの構築の容易性が求められている。また、照明条件の変化や被写体の形状、位置姿勢のバラツキなどの撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを構築することが求められている。
 遺伝的プログラミングを利用することで、入力画像21とこれに対応する目標画像22とをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境が異なる入力画像21と目標画像22のペア(学習データ20)を複数用意しておくことで、撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを自動生成することもできる。
 <比較例における問題点>
 上記の比較例では、図2のステップS13の進化過程において2つの親個体から生成される子個体の数は、一定値に固定されている。ここで、子個体の生成数に関しては、次のような問題がある。子個体の生成数が少ない場合には、子個体の適応度が上昇しにくくなって、学習の進行速度が低下する場合がある。一方、子個体の生成数が多い場合には、世代ごとの子個体の適応度は上昇しやすくなるが、世代ごとの適応度の算出回数が増加し、世代ごとの学習時間が長くなる。このため、子個体の生成数を多くしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。
 この問題点について、次の図5を用いてさらに説明する。
 図5は、子個体の数と探索範囲との関係を模式的に示す図である。図5に示す解の探索空間51は、個体が含まれる空間を模式的に示したものである。この探索空間51では、各個体の適応度は正解領域52との近さによって表される。なお、図5において、黒丸は、ある世代の母集団31に含まれる個体を示し、白丸は、母集団31から選択された個体を基に生成された子個体を示す。
 上記の比較例のような遺伝的プログラミングによる学習は、母集団31に含まれる個体を、適応度の高い子個体によって更新していくことで、母集団31に含まれる個体の適応度を全体的に上昇させるものである。これは、解の探索空間51に含まれる個体を全体的に正解領域52に近づけていくことに相当する。そして、適応度が所定閾値を超える個体が現れたとき、すなわち、正解領域52に含まれる個体が現れたときに、その個体が学習結果として出力される。
 また、母集団31から選択された親個体に基づいて子個体が生成される場合、子個体は解の探索空間51において親個体に比較的近い領域に現れる。これは、子個体は親個体の一部が変形されることで生成されるため、親個体とある程度類似するからである。
 ここで、図5(A)は、2つの親個体53a,53bから生成される子個体の数が少ない場合の例を示し、図5(B)は、2つの親個体53a,53bから生成される子個体の数が多い場合の例を示す。探索領域54a,54bは、母集団31から選択された2つの親個体53a,53bと、親個体53a,53bから生成された子個体の個体群とが含まれる領域である。
 図5(B)に示す探索領域54bは、図5(A)に示す探索領域54aより大きくなる可能性が高い。換言すると、子個体の生成数が多い方が、探索領域が大きくなる可能性が高い。これは、子個体の生成数が多くなることで、親個体に対する変形パターンが増え、解の探索空間51における親個体の位置から互いに異なる方向に位置する多くの子個体が生成されるからである。
 このため、子個体の生成数を多くして探索領域を拡大することで、子個体の個体群の中に正解領域52により近い子個体、すなわち適応度がより大きい子個体が現れる可能性が高くなる。したがって、子個体の生成数が多い方が、母集団に含まれる子個体の適応度のうちの最大適応度についての、世代数を基準とした増加率は高くなる。
 しかしながら、子個体の生成数が多くなるほど、世代ごとに子個体の適応度を算出する回数が多くなる。その結果、1世代当たりの処理時間が長くなり、世代数を基準とした最大適応度の増加率は高くなったとしても、最大適応度が所定の閾値に達するまでの時間が短縮されるとは限らず、逆に時間が長くかかってしまう可能性が高い。したがって、子個体の生成数を固定的に大きくしたとしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。
 <第2の実施の形態でのプログラム生成処理の概要>
 上記の問題に対して、第2の実施の形態のプログラム生成処理では、母集団31に含まれる個体の適応度のうち最大適応度の増加率に応じて、子個体の生成数が動的に設定されるように、上記の比較例の処理が変形される。
 図6は、子個体の生成数が一定の場合における最大適応度の変化の例を示す図である。この図6において、期間61,63,65,67では、最大適応度の増加率が所定の閾値以上である一方、期間62,64,66では、最大適応度の増加率が閾値より小さい。すなわち、期間62,64,66では、学習の進行が停滞している。
 そこで、本実施の形態の画像処理装置は、期間62,64,66のように最大適応度の増加率が低くなっている期間のみ、1世代の親個体から生成される子個体の数を増加させて、最大適応度の増加を促進させる。このように、必要最小限の期間のみ子個体の生成数を多くすることで、処理時間を抑制しつつ、最大適応度の増加率が一定以上に維持されるようにする。その結果、プログラム生成にかかる時間を短縮する。
 また、処理時間を短くするには、子個体の生成数が多い期間(世代数)を、生成数が少ない期間(世代数)より短くすることが望ましい。そこで、本実施の形態に係る画像処理装置は、最大適応度の増加率が閾値より低くなったことを契機として一定の世代数の期間、子個体の生成数を多くした後、それより多くの世代数の期間、最大適応度の増加率に関係なく子個体の生成数を少なくする。
 図6の例のように、一般的に、子個体の生成数が一定の場合、最大適応度は段階的に増加する。このため、ある一定の世代数の期間、子個体の生成数を多くすることで、その後の期間で子個体の生成数を少なくしても、最大適応度の増加率を一定以上に維持できる可能性は高い。したがって、上記のように子個体の生成数を制御することで、最大適応度の増加率を高めながらも、子個体の適応度の算出数が多くなる期間を短くすることができ、学習を効率化できる。
 <第2の実施の形態に係る画像処理装置の詳細>
 以下、第2の実施の形態に係る画像処理装置の詳細について説明する。
 まず、図7は、画像処理装置のハードウェア構成例を示す図である。本実施の形態に係る画像処理装置100は、例えば、図7に示すようなコンピュータとして実現される。
 画像処理装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
 プロセッサ101には、バス109を介して、RAM102と複数の周辺機器が接続されている。
 RAM102は、画像処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
 バス109に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、読み取り装置106、通信インタフェース107およびネットワークインタフェース108がある。
 HDD103は、画像処理装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
 グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aの画面に表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
 入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
 読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
 通信インタフェース107は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース107には、外部デバイスとしてカメラ107aが接続され、通信インタフェース107は、カメラ107aから送信された画像データをプロセッサ101に送信する。
 ネットワークインタフェース108は、ネットワーク108aを介して他の装置との間でデータの送受信を行う。
 以上のようなハードウェア構成によって、画像処理装置100の処理機能を実現することができる。
 図8は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置100は、画像取得部111、画像処理部112、プログラム生成部120、プログラム記憶部130、フィルタセット記憶部141、学習データ記憶部142および母集団情報記憶部143を有する。
 画像取得部111、画像処理部112およびプログラム生成部120の処理は、例えば、画像処理装置100のプロセッサ101が所定のプログラムを実行することで実現される。また、画像処理部112の処理の一部は、プログラム記憶部130に保存された画像処理プログラムを、画像処理装置100のプロセッサ101が実行することで実現される。プログラム記憶部130、フィルタセット記憶部141および学習データ記憶部142は、例えば、画像処理装置100のHDD103の記憶領域として実現される。母集団情報記憶部143は、例えば、画像処理装置100のRAM102の記憶領域として実現される。
 画像取得部111は、撮像された画像のデータをカメラ107aから取得し、プログラム生成部120または画像処理部112に出力する。
 プログラム生成部120は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部130に保存する。なお、プログラム生成部120の内部構成については後述する。
 画像処理部112は、カメラ107aによって撮像された画像のデータを画像取得部111を介して取得する。画像処理部112は、プログラム記憶部130に保存された画像処理プログラムにしたがって、取得した画像に画像処理を施す。処理後の画像は、例えば、表示装置104aに表示される。
 プログラム記憶部130は、プログラム生成部120によって生成された画像処理プログラムを記憶する。
 フィルタセット記憶部141は、プログラム生成部120によって生成される各個体に組み込むことが可能な画像フィルタのプログラムを、複数記憶する。
 学習データ記憶部142は、それぞれ入力画像および目標画像の各データを含む学習データを、1つ以上記憶する。学習データに含まれる入力画像は、例えば、画像処理装置100に接続されたカメラ107aによって撮像された画像であってもよい。
 母集団情報記憶部143は、母集団31に含まれる各個体の情報を記憶する。個体の情報には、個体の木構造を示す情報と、個体について算出された適応度とが含まれる。さらに、母集団情報記憶部143には、母集団31に含まれる各個体の適応度のうち最大適応度についての世代ごとの履歴情報が記憶される。
 プログラム生成部120は、学習制御部121、適応度算出部122および学習状況解析部123を有する。
 学習制御部121は、プログラム生成部120でのプログラム生成処理全体を統括的に制御する。例えば、学習制御部121は、母集団31に含める初期個体の生成、個体の進化処理、適応度に基づく生存選択および最終的な画像処理プログラムの出力、生存選択された個体による母集団31の更新などの処理を実行する。
 適応度算出部122は、個体を評価するための適応度を算出する。具体的には、適応度算出部122は、個体の木構造に基づいて構築される画像処理プログラムにしたがって、学習データに含まれる入力画像に画像処理を施す。適応度算出部122は、画像処理によって得られた画像と、入力画像に対応づけられた目標画像との類似度を、個体の適応度として算出する。
 学習状況解析部123は、学習状況を示す指標を計算する。本実施の形態では、学習状況解析部123は、母集団情報記憶部143に記憶された履歴情報に基づいて、母集団31の個体の適応度のうち最大適応度の増加率を算出する。この増加率は、世代交代に伴う学習の進行速度を示す。なお、以下の説明では、母集団31の個体の適応度のうち最大適応度を、「母集団31の最大適応度」と略称する場合がある。
 次に、画像処理装置100における画像処理プログラムの生成処理について、フローチャートを用いて説明する。
 図9は、プログラム生成処理手順の例を示すフローチャートである。
 この図9の処理では、進化・適応度算出処理での動作モードとして「通常モード」と「増加モード」のいずれかが設定される。通常モードでは、1世代当たりC個の子個体が生成され、増加モードでは、1世代当たり通常モードよりk倍(k>1)の子個体が生成される。
 また、母集団31の最大適応度が閾値より低い場合に通常モードから増加モードに遷移し、その後の一定世代数の期間、増加モードに維持された後、必ず通常モードに戻るという制御が行われる。さらに、通常モードも一定世代数以上の期間、連続して設定され、増加モードに設定される期間(世代数)より通常モードに設定される期間(世代数)の方が長いものとする。
 本実施の形態では、例として、母集団31に含まれる個体数をPとし、通常モードに設定される最小期間LをP/2に設定する。この「P/2」は、母集団31から親個体を2個選択する場合に、母集団31の中の個体が平均で1回入れ替わる世代数に相当する。一方、本実施の形態では、増加モードに設定される期間DをP/10に設定する。なお、期間Dは経験的な値に設定されるが、期間Dが長いと処理時間が増大する一方、期間Dが短すぎると母集団31の個体のうちごく少数の個体だけしか親個体として選択されないため、母集団31の最大適応度を増加させる効果を十分得ることができない。
 期間Dの目安としては、例えば次のように算出することができる。増加モードでの子個体の増加率を示す前述のkと、期間全体に対する増加モードの割合m(0≦m≦1)とを用い、通常モードと増加モードを合わせた場合の世代当たりの平均処理時間をd(d>1)に抑えることを考えた場合、「1×(1-m)+k×m≦d」という式を満たす必要がある。この式を変形すると、「m≦(d-1)/(k-1)」となる。
 例えば、増加モードでの個体数を5倍(すなわち、k=5)とし、1世代当たりの平均処理時間を1.5倍に抑えるケースでは、m≦(1.5-1)/(5-1)=1/8という値が得られる。この場合、例えば、増加モードに設定される期間Dは、通常モードに設定される最小期間Lの1/8倍に設定される。
 [ステップS21]学習制御部121は、学習データの設定のための入力操作を受け付ける。例えば、学習データ記憶部142に記憶された学習データの中から、本処理で使用される学習データが指定される。
 [ステップS22]学習制御部121は、フィルタセットの設定のための入力操作を受け付ける。例えば、フィルタセット記憶部141に登録された画像フィルタの中から、本処理で使用される画像フィルタが指定される。
 [ステップS23]学習制御部121は、母集団31に含まれる個体数Pと、通常モードで生成される子個体の個体数Cを設定するための入力操作を受け付ける。
 [ステップS24]学習制御部121は、母集団31に含めるP個の初期個体を生成する。各初期個体は、木構造の各ノードに対して、ステップS22で指定された画像フィルタをランダムに選択して組み合わせることで生成される。また、各初期個体の木構造は、例えば、あらかじめ決められた複数の木構造の中からランダムに選択される。あるいは、木構造自体がランダムに決定されてもよい。
 学習制御部121は、生成した各初期個体に関する情報を母集団情報記憶部143に登録する。
 [ステップS25]適応度算出部122は、母集団31に含まれる各初期個体の適応度を算出する。具体的には、適応度算出部122は、各初期個体に対応する画像処理プログラムにしたがって、学習データに含まれる入力画像に画像処理を施す。適応度算出部122は、画像処理によって得られた画像と、入力画像に対応づけられた目標画像との類似度を、その初期個体の適応度として算出する。なお、学習データが複数登録されている場合には、適応度算出部122は、例えば、各学習データを用いて類似度を算出し、それらの類似度の平均値を初期個体の適応度とする。適応度算出部122は、各初期個体について算出した適応度を母集団情報記憶部143に登録する。
 [ステップS26]学習制御部121は、動作モードを通常モードに設定する。
 [ステップS27]進化・適応度算出処理が実行される。この処理では、基本的には、母集団31から2つの親個体が選択され、それらの親個体に基づいて1つ以上の子個体が生成され、各子個体についての適応度が算出される。進化・適応度算出処理の内容については、後の図10において詳しく説明する。
 [ステップS28]学習制御部121は、ステップS27で選択された親個体と、ステップS27で生成された子個体の中から、適応度が最大の個体を選択し、その適応度が閾値Th11より大きいかを判定する。適応度が閾値Th11以下の場合、ステップS29の処理が実行され、適応度が閾値Th11より大きい場合、ステップS30の処理が実行される。
 [ステップS29]学習制御部121は、ステップS27で選択された親個体と、ステップS27で生成された子個体の中から、適応度が最大の個体を生存させる個体として選択する。さらに、学習制御部121は、残りの個体の中から生存させる個体をさらに1つ選択する。この選択処理では、例えば、算出された適応度に応じた確率で個体が選択される。
 学習制御部121は、母集団31に含まれる個体のうちステップS27で親個体として選択された2つの個体を、生存させる個体として選択された2つの個体に入れ替える。これによって、母集団31の世代が更新される。実際の処理としては、学習制御部121は、ステップS27で親個体として選択された2つの個体の情報を母集団情報記憶部143から削除し、生存させる個体として選択された2つの個体の情報を母集団情報記憶部143に登録する。
 なお、学習制御部121は、例えば、母集団31に含まれる個体のうち適応度が小さい2つの個体を、生存させる個体として選択された2つの個体に入れ替えてもよい。
 [ステップS30]学習制御部121は、ステップS28で選択された適応度が最大の個体に対応する画像処理プログラムを、プログラム記憶部130に格納して、処理を終了する。
 図10は、進化・適応度算出処理の手順の例を示すフローチャートである。この図10の処理は、図9のステップS27の処理に対応する。
 [ステップS41]学習制御部121は、母集団31に含まれる個体の中から2つの親個体をランダムに選択する。
 [ステップS42]学習制御部121は、現在の動作モードが通常モードであるかを判定する。通常モードである場合、ステップS43の処理が実行される。一方、通常モードでない場合、すなわち増加モードである場合には、ステップS48の処理が実行される。
 [ステップS43]学習制御部121は、通常モードの期間が終了したかを判定する。具体的には、学習制御部121は、通常モードに設定された期間が、前述の最小期間Lを超えた場合(すなわち、通常モードに設定されてからのステップS43の実行回数がLを超えた場合)に、通常モードの期間が終了したと判定する。通常モードの期間が終了したと判定された場合、ステップS44の処理が実行され、通常モードの期間が終了していないと判定された場合、ステップS50の処理が実行される。
 [ステップS44]学習状況解析部123は、母集団情報記憶部143に記憶された履歴情報に基づいて、過去の一定数の世代における母集団31の最大適応度の増加率を算出する。本実施の形態では例として、過去のL世代における母集団31の最大適応度の増加率が算出される。すなわち、増加率は、現世代における母集団31の最大適応度から、L世代前における母集団31の最大適応度を減算した値を、Lで除算することによって算出される。
 なお、母集団情報記憶部143には、増加率を算出するために、少なくとも過去のL世代における母集団31の最大適応度についての履歴情報が記録される。
 [ステップS45]学習制御部121は、ステップS44で算出された増加率が、所定の閾値Th12より低いかを判定する。増加率が閾値Th12より低い場合、ステップS46の処理が実行される。一方、増加率が閾値Th12以上である場合は、動作モードが通常モードに維持されたままステップS50の処理が実行される。すなわち、増加率が閾値Th12以上である場合は、通常モードの期間が最小期間Lを超える長さに延長される。
 [ステップS46]学習制御部121は、動作モードを通常モードから増加モードに変更する。
 [ステップS47]学習制御部121は、ステップS41で選択された2つの親個体を用いて、kC個の子個体を生成する。なお、子個体の生成は、例えば、次のような手順が行われる。学習制御部121は、2つの親個体の間で交叉を行うことで、2つ以上の所定数の子個体を生成する。さらに、学習制御部121は、生成された子個体のいずれかのノードに突然変異を発生させて、元の子個体のノードに組み込まれていた画像フィルタを図9のステップS22で指定された他の画像フィルタのいずれかに置き換える。
 [ステップS48]学習制御部121は、増加モードの期間が終了したかを判定する。具体的には、学習制御部121は、増加モードに設定された期間が、前述の期間Dを超えた場合(すなわち、増加モードに設定されてからのステップS48の実行回数がDを超えた場合)に、増加モードの期間が終了したと判定する。増加モードの期間が終了したと判定された場合、ステップS49の処理が実行され、増加モードの期間が終了していないと判定された場合、ステップS47の処理が実行される。
 [ステップS49]学習制御部121は、動作モードを増加モードから通常モードに変更する。
 [ステップS50]学習制御部121は、ステップS41で選択された2つの親個体を用いて、C個の子個体を生成する。
 [ステップS51]適応度算出部122は、ステップS47で生成されたkC個の子個体、またはステップS50で生成されたC個の子個体のそれぞれについて、適応度を算出する。この後、図9のステップS28の処理が実行される。
 以上の図9,図10の処理によれば、通常モードが最小期間L以上継続された後、母集団31の最大適応度の増加率が閾値Th12より低いと判定されると、動作モードは増加モードに遷移する。これにより、子個体の生成数が増加し、母集団31の最大適応度の増加が促進される。この後、期間Dだけ増加モードが継続されてから通常モードに遷移し、期間Dより長い最小期間L以上、通常モードが継続される。そして、母集団31の最大適応度の増加率が再度閾値Th12より低いと判定されると、再び増加モードに遷移して、その増加が促進される。
 図11は、世代交代に伴う最大適応度および子個体の生成数の変化の例を示す図である。図11において、グラフ71は、母集団31の最大適応度の変化の例を示し、グラフ72は、子個体の生成数の変化の例を示す図である。
 グラフ71に示す点線は、通常モードのままで学習を行った場合の比較例を示す。一方、グラフ71に示す実線は、最大適応度の増加率に応じて通常モードと増加モードとを切り替えた場合の例を示す。また、グラフ72の実線は、最大適応度の増加率に応じて通常モードと増加モードとを切り替えた場合の子個体の生成数を示す。グラフ72の実線のように、この例では、増加モードに遷移するとほとんどの場合一時的に最大適応度の増加率が上昇するものの、通常モードに戻ると増加率が低下することから、ほぼ一定間隔で増加モードへの遷移が発生している。
 グラフ71でわかるように、最大適応度の増加率が閾値Th11より低い場合に増加モードに遷移させ、子個体の生成数を増加させることで、最大適応度の増加が促進される。そのため、通常モードに固定した場合と比較して、少ない世代数で最大適応度が所望の目標値に到達している。
 図12は、時間経過に伴う最大適応度の変化の例を示す図である。この図12のグラフは、図11のグラフ71に示した母集団31の最大適応度の変化を、横軸を世代数から時間に変更して示したものである。この図12からわかるように、最大適応度の増加率に応じて動作モードを切り替えることで、短時間で最大適応度が所望の目標値に到達している。
 増加モードに遷移すると、1世代当たりの子個体の適応度の計算回数が増加するため、1世代当たりの最大適応度の増加は促進されるものの、処理時間は長くなってしまう。これに対して、図11のグラフ72に示すように限定された期間のみ増加モードに設定されることで、最大適応度が目標値に到達するまでの処理時間を短縮することができる。
 次に、第2の実施の形態に係る画像処理装置100の処理の一部を変形した変形例について説明する。なお、以下の各変形例では、図7,図8に示した画像処理装置100と同様の符号を用いて説明する。
 <変形例1>
 変形例1では、画像処理装置100は、第2の実施の形態のように増加モードに設定した子個体の生成数を増加させても、母集団31の最大適応度の増加率が上昇しない場合に、逆に子個体の生成数を減少させる。子個体の生成数が減少することで、1世代当たりの処理時間が短縮され、時間当たりの親個体の選択回数および子個体の生成回数が増加する。これにより、生成される子個体のバリエーションを増やすことができ、図5に示した解の探索空間51において正解領域52に近い子個体が生成されやすくなる。
 さらに、画像処理装置100は、子個体の生成数を減少させても最大適応度の増加率が上昇しない場合には、母集団31の個体数を増加させる。
 ここで、図13は、母集団の個体数と探索範囲との関係を模式的に示す図である。図13に示す解の探索空間81では、図5に示した解の探索空間51と同様に、各個体の適応度は正解領域82との近さによって表される。
 図13(A)は、母集団31の個体数が少ない場合の例を示す。探索領域83a,83bはそれぞれ、個体数が少ない母集団31に含まれる任意の2つの個体から一定数の子個体を生成した場合に、生成された子個体が含まれ得る領域を示す。また、図13(B)は、母集団31の個体数が多い場合の例を示す。探索領域84a~84dはそれぞれ、個体数が多い母集団31に含まれる任意の2つの個体から一定数の子個体を生成した場合に、生成された子個体が含まれ得る領域を示す。
 図13(A)のように母集団31の個体数が少ない場合には、親個体が正解領域82の近傍に存在しない可能性が高くなる。その結果、1世代当たりで正解領域82に近い子個体が生成される可能性が低くなり、学習の進展が遅くなる。そこで、図13(B)のように母集団31の個体数を増やすことで、正解領域82の近傍に存在する親個体が生成される可能性が生じ、学習の進展速度の向上を期待できる。
 ただし、母集団31の個体数を多くしただけでは、正解領域82に近い親個体が選択される確率は必ずしも上がらない。このため、正解領域82に近い親個体が選択されるまでの時間が長くなることもあり得る。そこで、例えば、子個体の生成数を小さくして世代交代の速度を高めることで、正解領域82に近い親個体が短時間で選択されるようになる。
 なお、母集団31の個体数を多くする代わりに、母集団31の個体のうち適応度の低い個体を、新たに生成した個体に入れ替える方法もある。この方法によれば、子個体の生成数を減らさなくても、正解領域82に近い親個体が選択される確率を向上させ、学習の進展速度を向上させることができる。
 図14は、変形例1における処理手順の例を示すフローチャートである。図14の処理では例として、動作モードとして通常モードおよび増加モードに加えて減少モードが用意される。減少モードでは、子個体の生成数が通常モードより少ないC’に設定される。減少モードは、前述の期間Dだけ増加モードが継続した後に、母集団31の最大適応度の増加率が閾値Th12以上に増加しなかった場合に設定されるものとする。
 変形例1では、例えば、図10のステップS42で動作モードが通常モードではないと判定された場合に、図14のステップS61の処理が実行される。
 [ステップS61]学習制御部121は、現在の動作モードが増加モードであるかを判定する。増加モードである場合、ステップS62の処理が実行される。一方、増加モードでない場合、すなわち減少モードである場合には、ステップS67の処理が実行される。
 [ステップS62]学習制御部121は、増加モードの期間が終了したかを判定する。具体的には、学習制御部121は、増加モードに設定された期間が、前述の期間Dを超えた場合(すなわち、増加モードに設定されてからのステップS62の実行回数がDを超えた場合)に、増加モードの期間が終了したと判定する。増加モードの期間が終了したと判定された場合、ステップS63の処理が実行され、増加モードの期間が終了していないと判定された場合、図10のステップS47の処理が実行される。
 [ステップS63]学習状況解析部123は、図10のステップS44と同様の手順で、母集団情報記憶部143に記憶された履歴情報に基づいて、過去のL世代における母集団31の最大適応度の増加率を算出する。
 [ステップS64]学習制御部121は、ステップS63で算出された増加率が閾値Th12より低いかを判定する。増加率が閾値Th12より低い場合、ステップS65の処理が実行される。一方、増加率が閾値Th12以上である場合は、図10のステップS49の処理が実行され、動作モードが通常モードに変更される。
 [ステップS65]学習制御部121は、動作モードを増加モードから減少モードに変更する。
 [ステップS66]学習制御部121は、図10のステップS41で選択された2つの親個体を用いて、C’個の子個体を生成する(ただし、C’<C)。この後、図9のステップS28の処理が実行される。
 [ステップS67]学習制御部121は、減少モードの期間が終了したかを判定する。具体的には、学習制御部121は、減少モードに設定された期間が前述の期間Dを超えた場合(すなわち、減少モードに設定されてからのステップS67の実行回数がDを超えた場合)に、減少モードの期間が終了したと判定する。減少モードの期間が終了したと判定された場合、ステップS68の処理が実行され、減少モードの期間が終了していないと判定された場合、ステップS66の処理が実行される。
 [ステップS68]学習状況解析部123は、ステップS63と同様の手順で、母集団情報記憶部143に記憶された履歴情報に基づいて、過去のL世代における母集団31の最大適応度の増加率を算出する。
 [ステップS69]学習制御部121は、ステップS68で算出された増加率が閾値Th12より低いかを判定する。増加率が閾値Th12より低い場合、ステップS70の処理が実行される。一方、増加率が閾値Th12以上である場合は、図10のステップS49の処理が実行され、動作モードが通常モードに変更される。なお、このステップS69では、閾値Th12とは異なる閾値が使用されてもよい。
 [ステップS70]学習制御部121は、図9のステップS22で指定されたフィルタセットを用いて、所定数の個体を新たに生成する。学習制御部121は、生成した個体を母集団31に追加する。具体的な処理としては、追加した個体についての木構造情報および適応度が母集団情報記憶部143に登録される。この後、動作モードが減少モードに維持されたまま、ステップS66の処理が実行される。
 以上の図14の処理では、最大適応度の増加促進のために期間Dだけ増加モードに設定された後に、最大適応度の増加率が閾値Th12以上に回復しなかった場合に、減少モードに設定される。これにより、子個体の生成数が減少して、1世代当たりの処理時間が短縮され、時間当たりの親個体の選択回数および子個体の生成回数が増加する。その結果、生成される子個体のバリエーションが増え、適応度の高い子個体が生成されやすくなる。
 しかし、期間Dだけ減少モードに設定されても最大適応度の増加率が閾値Th12以上に回復しなかった場合には、減少モードが継続されたまま、母集団31に新たな個体が追加される。これにより、短時間で適応度の高い子個体が生成される可能性が高まる。
 なお、ステップS69で増加率が閾値Th12より低い場合、学習制御部121は、新たな個体を生成し、母集団31の個体数を変化させずに、母集団31の個体のうち適応度の低い個体を、新たに生成した個体に入れ替えてもよい。この場合、個体の入れ替えが行われた後、図10のステップS49に進んで通常モードに変更されてもよい。この場合でも、短時間で適応度の高い子個体が生成される可能性が高まる。
 また、例えば、ステップS61で増加モードの期間が終了したと判定されたとき、それまでに増加モードに遷移した回数が所定数以上である場合に、ステップS63以後の処理が実行されてもよい。
 <変形例2>
 変形例2では、画像処理装置100は、生成された各子個体の適応度のばらつきが小さい場合にも、子個体の生成数を増加させる。子個体の適応度のばらつきが小さい場合には、適応度が増加しにくく、学習の進行が停滞しやすい。そこで、このような場合にも子個体の生成数を増加させることで、学習の進行を促進することができる。
 さらに、画像処理装置100は、子個体の生成数を増加しても各子個体の適応度のばらつきがほとんど変化しない場合には、逆に子個体の生成数を通常モードより減少させる。これにより、単位時間内に生成される子個体のバリエーションを増やし、図5に示した解の探索空間51において正解領域52に近い子個体が生成されやすくする。
 図15は、変形例2における処理手順の例を示すフローチャートである。変形例2では、例えば、図10のステップS50でC個の子個体が生成された後、次のステップS81の処理が実行される。
 [ステップS81]適応度算出部122は、図10のステップS51と同様の手順により、ステップS50で生成されたC個の子個体のそれぞれについて、適応度を算出する。 [ステップS82]学習状況解析部123は、ステップS81で算出された適応度のばらつき(分散)を計算する。学習制御部121は、算出されたばらつきが所定の閾値Th13より小さいかを判定する。ばらつきが閾値Th13より小さい場合、ステップS83の処理が実行され、ばらつきが閾値Th13以上である場合、ステップS87の処理が実行される。
 [ステップS83]学習制御部121は、図10のステップS41で選択された2つの親個体を用いて、所定数の個体を新たに生成する。例えば、(kC-C)個の個体が生成される。
 [ステップS84]適応度算出部122は、図10のステップS51と同様の手順により、ステップS83で生成された各個体の適応度を算出する。
 [ステップS85]学習状況解析部123は、ステップS81およびステップS84で算出されたすべての適応度に基づいて、適応度のばらつきを計算する。学習制御部121は、算出されたばらつき閾値Th13より小さいかを判定する。ばらつきが閾値Th13より小さい場合、ステップS86の処理が実行され、ばらつきが閾値Th13以上である場合、ステップS87の処理が実行される。
 [ステップS86]学習制御部121は、ステップS50およびステップS83で生成された子個体の中から、適応度の大きい所定数の個体を、処理対象の個体として選択する。ここで選択される個体の数は、通常モードでの子個体の生成数Cより小さい値とされる。
 [ステップS87]学習制御部121は、ステップS50およびステップS83で生成されたすべての個体を、処理対象の個体として選択する。
 ステップS86,S87の後、図9のステップS28の処理が実行される。ステップS28では、ステップS86またはステップS87で処理対象として選択された個体が、子個体として利用される。さらに、ステップS28の次のステップS29の処理が実行された場合でも、ステップS86またはステップS87で処理対象として選択された個体が、子個体として利用される。
 以上の図15の処理では、通常モードで生成された各子個体の適応度のばらつきが閾値Th13より小さい場合に、子個体の生成数が一時的に増加され、学習の進行が促進される。また、子個体の生成数を増加しても各子個体の適応度のばらつきが依然として閾値Th13より小さい場合には、その後の処理に用いる子個体の数を通常モードより減少させて、単位時間内に生成される子個体のバリエーションを増やす。このような処理により、学習の進行が停滞することを抑制することができる。
 なお、上記の図15では、1世代の処理において、子個体が生成された後にその適応度のばらつきに基づいてさらに子個体の個数を増減するようにした。しかし、他の処理例として、前世代の処理において生成された子個体の適応度のばらつきに基づいて、現世代での子個体の生成数を増減するようにしてもよい。
 また、以上の変形例2の処理は、変形例1の処理と組み合わせることも可能である。
 <変形例3>
 母集団31の最大適応度がある一定値以上となり、学習の到達段階が末期である場合には、母集団31から適応度の高い個体が親個体として選択されやすくすることで、学習の進行を促進することができる。そこで、変形例3では、画像処理装置100は、学習の到達段階が末期であると推定される場合には、母集団31から適応度の低い個体を削除し、母集団31の個体数を減少させる。これにより、母集団31の中から適応度の高い個体が親個体として選択されやすくなり、学習を促進することができる。
 図16は、変形例3における処理手順の例を示すフローチャートである。変形例3では、例えば、図10のステップS41の前に、図16に示すステップS101~S103の処理が実行される。
 [ステップS101]学習制御部121は、母集団31の最大適応度が所定の閾値Th14以上であるかを判定する。最大適応度が閾値Th14以上である場合、ステップS102の処理が実行され、最大適応度が閾値Th14より低い場合、図10のステップS41の処理が実行される。
 [ステップS102]学習制御部121は、母集団31から適応度の低い所定数の個体を削除する。
 [ステップS103]学習制御部121は、動作モードを増加モードに変更する。
 以上の図16の処理では、母集団31の最大適応度が閾値Th14以上になったとき、母集団31の個体数を減少させるとともに、増加モードに遷移して子個体の生成数を増加させている。適応度の高い親個体が選択されやすい状況で子個体の生成数を増加させることで、子個体の適応度の上昇を期待でき、学習の進行がさらに促進される。
 なお、以上の変形例3の処理は、変形例1,2の処理と組み合わせることも可能である。
 <変形例4>
 母集団31に含まれる各個体の適応度のばらつきが小さい場合には、正解領域の近傍に個体が存在しない可能性がある。この場合には、母集団31の最大適応度は増加しにくい。ただし、学習の末期では母集団31の最大適応度がすでに高くなっているため、正解領域の近傍に母集団31に含まれる個体が存在する可能性が高い。
 そこで、変形例4では、画像処理装置100は、学習の初期において母集団31に含まれる各個体の適応度のばらつきが小さい場合には、母集団31に新たな個体を追加して母集団31の個体数を増加させる。これにより、適応度の高い個体が親個体として選択されやすくなり、学習の進行が促進される。
 図17は、変形例4における処理手順の例を示すフローチャートである。変形例4では、例えば、図10のステップS41の前に、図17に示すステップS121~S126の処理が実行される。
 [ステップS121]学習状況解析部123は、母集団31に含まれる各個体の適応度のばらつき(分散)を計算する。
 [ステップS122]学習制御部121は、ステップS121で算出されたばらつきが所定の閾値Th15より小さいかを判定する。ばらつきが閾値Th15より小さい場合、ステップS123の処理が実行され、ばらつきが閾値Th15以上である場合、図10のステップS41の処理が実行される。
 [ステップS123]学習制御部121は、母集団31の最大適応度が所定の閾値Th16_Lより低いかを判定する。最大適応度が閾値Th16_Lより低い場合、ステップS124の処理が実行され、最大適応度が閾値Th16_L以上である場合、ステップS125の処理が実行される。
 [ステップS124]学習制御部121は、図14のステップS70と同様の手順で、図9のステップS22で指定されたフィルタセットを用いて所定数の個体を新たに生成し、生成した個体を母集団31に追加する。この後、図10のステップS41の処理が実行される。
 [ステップS125]学習制御部121は、母集団31の最大適応度が所定の閾値Th16_H以上であるかを判定する。この閾値Th16_Hは、ステップS123で使用された閾値Th16_Lより大きい値とされる。最大適応度が閾値Th16_H以上である場合、ステップS126の処理が実行され、最大適応度が閾値Th16_Hより低い場合、図10のステップS41の処理が実行される。
 なお、ステップS123,S125では、例えば、最大適応度がある閾値より低い場合にステップS124の処理が実行され、最大適応度が同じ閾値以上である場合にステップS126の処理が実行されるように、変形されてもよい。
 [ステップS126]学習制御部121は、適応度が類似する個体が母集団31に含まれないように、母集団31に含まれる個体数を削減する。例えば、学習制御部121は、母集団31に含まれる個体について、互いの適応度の差が所定閾値以下となる個体のペアを特定し、特定された個体のペアの一方を母集団31から削除する。この後、図10のステップS41の処理が実行される。
 以上の図17の処理では、ステップS122で母集団31に含まれる個体の適応度のばらつきが低いと判定された場合に、ステップS123,S125で学習の段階が判定される。学習の初期段階と判定された場合、ステップS124において母集団31に新たな個体が追加される。これにより、適応度の高い個体が親個体として選択されやすくなり、学習の進行が促進される。
 一方、図17の例ではさらに、学習の末期段階と判定された場合には、ステップS126において、適応度が互いに類似する個体の一方が母集団31から削除される。母集団31の個体数が削減されることで、母集団31内の個体全体が親個体として短時間で選択されやすくなる。しかも、適応度の高い個体ペアの一方が削除されることで、各世代で親個体として選択される個体の適応度のばらつきが大きくなる。これら2つの効果により、母集団31の個体の中から最適な個体が親個体として短時間で選択されやすくなり、学習の進行が促進される。
 なお、ステップS126では、例えば、母集団31に含まれる個体から木構造が類似する個体のペアが特定され、特定された個体のペアの一方が母集団31から削除されてもよい。木構造の類似度は、例えば、木構造に含まれるノードの数や、各ノードに割り当てられた画像フィルタの種類の類似性に基づいて算出される。このような処理が行われた場合でも、母集団31の個体の中から最適な個体が親個体として短時間で選択されやすくなり、学習の進行が促進される。
 また、以上の変形例4の処理は、変形例1,2の処理と組み合わせることも可能である。
 <変形例5>
 母集団31から選択された2つの親個体の適応度のばらつきが小さい場合、解の探索空間における1世代当たりの探索範囲は狭くなる。そこで、変形例5では、画像処理装置100は、親個体の適応度のばらつきが小さい場合には、子個体の生成数を増加させる。これにより、正解領域に近い子個体が生成されやすくなり、学習の進行が促進される。
 図18は、変形例5における処理手順の例を示すフローチャートである。変形例5では、例えば、図10のステップS41で2つの親個体が選択された後、次のステップS141の処理が実行される。
 [ステップS141]学習状況解析部123は、ステップS41で選択された各親個体の適応度の差分を計算する。学習制御部121は、算出された差分が所定の閾値Th17より小さいかを判定する。差分が閾値Th17以上である場合には、図10のステップS42の処理が実行される。一方、差分が閾値Th17より小さく、親個体の適応度のばらつきが小さいと判定された場合には、図10のステップS47に進み、一時的に子個体の生成数が増加される。
 なお、図18のステップS141の処理は、増加モードへの遷移による母集団31の最大適応度の増加効果が十分得られない場合に実行されてもよい。例えば、画像処理装置100は、増加モードへの遷移回数が所定の閾値を超えた場合に、ステップS41の実行後に母集団31の最大適応度の増加率を計算する。画像処理装置100は、増加率が所定閾値より低い場合のみステップS141の処理を実行し、増加率が閾値以上である場合にはステップS141をスキップしてステップS42の処理を実行する。
 また、以上の変形例5の処理は、変形例1~4の処理と組み合わせることも可能である。
 <変形例6>
 変形例6では、母集団31から選択された親個体の木構造のサイズに応じて、子個体の生成数が制御される。木構造のサイズとは、例えば、木構造に含まれるノード数を示す。
 親個体の木構造のサイズが大きいほど、その親個体から様々なバリエーションの子個体が生成され得る。そのため、子個体の適応度が高くなりやすい。そこで、変形例6では、画像処理装置100は、親個体の木構造のサイズが大きい場合には、子個体の生成数を増加させて、学習の進行をさらに加速させる。
 逆に、親個体の木構造のサイズが小さい場合には、その親個体に交叉処理を施して子個体を生成しても、互いに類似する子個体が生成されやすく、その分だけ学習の進行速度が低下する。そこで、変形例6では、画像処理装置100は、親個体の木構造のサイズが小さい場合には、子個体の生成数を通常モードより減少させて、短時間で新たな親個体が選択されるようにする。これにより、学習の進行の停滞を抑制できる。
 図19は、変形例6における処理手順の例を示すフローチャートである。変形例6では、例えば、図10のステップS41で2つの親個体が選択された後、次のような処理が実行される。
 [ステップS151]学習制御部121は、ステップS41で選択された親個体の各木構造のサイズと、所定の閾値Th18_Lとを比較する。各木構造のサイズのうち少なくとも一方が閾値Th18_Lより小さい場合、図10のステップS47に進み、子個体の生成数が一時的にkC個に増加される。一方、木構造のサイズが両方とも閾値Th18_L以上である場合には、ステップS152の処理が実行される。
 [ステップS152]学習制御部121は、ステップS41で選択された親個体の各木構造のサイズと、所定の閾値Th18_Hとを比較する。閾値Th18_Hは、閾値Th18_Lより大きい値とされる。各木構造のサイズのうち少なくとも一方が閾値Th18_H以上である場合、ステップS153の処理が実行される。一方、木構造のサイズが両方とも閾値Th18_Hより小さい場合、図10のステップS42の処理が実行される。
 [ステップS153]学習制御部121は、ステップS41で選択された2つの親個体を用いて、通常モードでの子個体の生成数Cより小さいC’個の子個体を生成する。すなわち、親個体の木構造のサイズのうち少なくとも一方が閾値Th18_Lより大きい場合には、子個体の生成数が一時的に増加される。この後、図9のステップS28の処理が実行される。
 なお、図19のステップS151,S152の判定処理は、増加モードへの遷移による母集団31の最大適応度の増加効果が十分得られない場合に実行されてもよい。例えば、画像処理装置100は、増加モードへの遷移回数が所定の閾値を超えた場合に、ステップS41の実行後に母集団31の最大適応度の増加率を計算する。画像処理装置100は、増加率が所定閾値より低い場合のみステップS151の処理を実行し、増加率が閾値以上である場合にはステップS151,S152をスキップしてステップS42の処理を実行する。
 また、以上の変形例6の処理は、変形例1~5の処理と組み合わせることも可能である。
 なお、上記の各実施の形態に示した装置(プログラム生成装置1および画像処理装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc-Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
 プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
 プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
 上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 1 プログラム生成装置
 1a 記憶部
 1b 演算部
 2 母集団
 2a 母集団情報
 3a,3b,・・・ 適応度
 4a,4b 親個体
 5a,5b 子個体
 6 個体

Claims (10)

  1.  遺伝的プログラミングを用いたプログラム生成装置において、
     それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、前記母集団に含まれる前記各個体の適応度とを記憶する記憶部と、
     前記母集団に含まれる前記各個体の適応度のうち最大適応度の増加率を計算し、前記増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、前記増加率が前記第1の閾値より低い場合、前記設定値を前記第1の個数より大きい第2の個数に設定する設定処理と、
     前記母集団に含まれる前記各個体の中から選択された親個体に基づいて、前記設定値の数だけ子個体を生成する進化処理と、
     前記親個体の適応度を前記記憶部から取得するとともに前記子個体の適応度を計算し、前記親個体と前記子個体の中から適応度が最大である選択個体を選択し、前記母集団に含まれる前記個体の1つを前記選択個体と入れ替えるとともに、前記選択個体の適応度を前記記憶部に登録する生存選択処理と、
     を繰り返し実行する演算部と、
     を有するプログラム生成装置。
  2.  前記設定処理では、前記増加率が前記第1の閾値以上の場合、その後に前記設定処理を第1の回数だけ実行する間、前記設定値を前記第1の個数に設定し続け、前記増加率が前記第1の閾値より低い場合、その後に前記設定処理を前記第1の回数より少ない第2の回数だけ実行する間、前記設定値を前記第2の個数に設定し続ける、
     請求項1記載のプログラム生成装置。
  3.  前記設定値が前記第2の個数に設定された前記設定処理が前記第2の回数だけ実行された後の前記設定処理では、前記増加率が第3の閾値より低い場合、前記設定値を前記第1の個数より小さい第3の個数に設定する、
     請求項2記載のプログラム生成装置。
  4.  前記演算部は、さらに、前記進化処理において生成された前記子個体のそれぞれの適応度のばらつきに基づいて、前記設定値を増減させる、
     請求項1乃至3のいずれか1項に記載のプログラム生成装置。
  5.  前記演算部は、さらに、前記最大適応度が第4の閾値以上である場合には、前記母集団から適応度の低い個体を削除するとともに、前記設定値を増加させる、
     請求項1乃至4のいずれか1項に記載のプログラム生成装置。
  6.  前記設定処理では、前記親個体のそれぞれの適応度のばらつきに基づいて、前記設定値を増減する、
     請求項1乃至5のいずれか1項に記載のプログラム生成装置。
  7.  前記設定処理では、前記親個体を示す木構造のサイズに基づいて、前記設定値を増減する、
     請求項1乃至6のいずれか1項に記載のプログラム生成装置。
  8.  前記演算部は、さらに、前記母集団に含まれる前記各個体の適応度のばらつきが第5の閾値より小さい場合、前記最大適応度に基づいて前記母集団に含まれる前記個体の数を増減する、
     請求項1乃至7のいずれか1項に記載のプログラム生成装置。
  9.  遺伝的プログラミングを用いたプログラム生成方法において、
     コンピュータが、
     それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、前記母集団に含まれる前記各個体の適応度とを記憶する記憶部を参照して、前記母集団に含まれる前記各個体の適応度のうち最大適応度の増加率を計算し、前記増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、前記増加率が前記第1の閾値より低い場合、前記設定値を前記第1の個数より大きい第2の個数に設定する設定処理と、
     前記母集団に含まれる前記各個体の中から選択された親個体に基づいて、前記設定値の数だけ子個体を生成する進化処理と、
     前記親個体の適応度を前記記憶部から取得するとともに前記子個体の適応度を計算し、前記親個体と前記子個体の中から適応度が最大である選択個体を選択し、前記母集団に含まれる前記個体の1つを前記選択個体と入れ替えるとともに、前記選択個体の適応度を前記記憶部に登録する生存選択処理と、
     を繰り返し実行する、
     プログラム生成方法。
  10.  遺伝的プログラミングを用いてプログラムを生成する生成プログラムにおいて、
     コンピュータに、
     それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、前記母集団に含まれる前記各個体の適応度とを記憶する記憶部を参照して、前記母集団に含まれる前記各個体の適応度のうち最大適応度の増加率を計算し、前記増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、前記増加率が前記第1の閾値より低い場合、前記設定値を前記第1の個数より大きい第2の個数に設定する設定処理と、
     前記母集団に含まれる前記各個体の中から選択された親個体に基づいて、前記設定値の数だけ子個体を生成する進化処理と、
     前記親個体の適応度を前記記憶部から取得するとともに前記子個体の適応度を計算し、前記親個体と前記子個体の中から適応度が最大である選択個体を選択し、前記母集団に含まれる前記個体の1つを前記選択個体と入れ替えるとともに、前記選択個体の適応度を前記記憶部に登録する生存選択処理と、
     を繰り返す処理を実行させる、
     生成プログラム。
PCT/JP2015/078084 2015-10-02 2015-10-02 プログラム生成装置、プログラム生成方法および生成プログラム WO2017056320A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2015/078084 WO2017056320A1 (ja) 2015-10-02 2015-10-02 プログラム生成装置、プログラム生成方法および生成プログラム
JP2017542661A JP6544435B2 (ja) 2015-10-02 2015-10-02 プログラム生成装置、プログラム生成方法および生成プログラム
US15/939,588 US11151458B2 (en) 2015-10-02 2018-03-29 Apparatus and method for generating image processing program using genetic programming

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/078084 WO2017056320A1 (ja) 2015-10-02 2015-10-02 プログラム生成装置、プログラム生成方法および生成プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/939,588 Continuation US11151458B2 (en) 2015-10-02 2018-03-29 Apparatus and method for generating image processing program using genetic programming

Publications (1)

Publication Number Publication Date
WO2017056320A1 true WO2017056320A1 (ja) 2017-04-06

Family

ID=58422852

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/078084 WO2017056320A1 (ja) 2015-10-02 2015-10-02 プログラム生成装置、プログラム生成方法および生成プログラム

Country Status (3)

Country Link
US (1) US11151458B2 (ja)
JP (1) JP6544435B2 (ja)
WO (1) WO2017056320A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6663873B2 (ja) * 2017-02-22 2020-03-13 株式会社日立製作所 プログラム自動生成システム及びプログラム自動生成方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225752A (ja) * 1993-12-16 1995-08-22 Fujitsu Ltd 状態遷移の概念を導入した問題解決演算装置および方法
JPH09179845A (ja) * 1995-12-22 1997-07-11 Toyo Electric Mfg Co Ltd 遺伝的アルゴリズムを用いた最適化処理方法および装置
JP2008117059A (ja) * 2006-11-01 2008-05-22 Fuji Heavy Ind Ltd 制御パラメータの自動調整装置
WO2015001967A1 (ja) * 2013-07-02 2015-01-08 富士通株式会社 画像処理フィルタの作成装置及びその方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119176A (ja) 1992-10-06 1994-04-28 Matsushita Electric Ind Co Ltd ファジィ演算装置
US6052678A (en) * 1993-12-16 2000-04-18 Fujitsu Limited Problem solving operation apparatus using a state transition
JPH09114797A (ja) 1995-10-18 1997-05-02 Fuji Xerox Co Ltd 最適解探索方法及び装置
JPH09251446A (ja) 1996-03-18 1997-09-22 Nri & Ncc Co Ltd 不均衡進化説に基づく遺伝的アルゴリズムによる最適化装置およびその方法
JP3404532B2 (ja) * 2001-07-27 2003-05-12 独立行政法人産業技術総合研究所 最適フィッティングパラメータ決定方法および装置、並びに最適フィッティングパラメータ決定プログラム
JP6344469B2 (ja) * 2014-06-11 2018-06-20 富士通株式会社 プログラム生成装置、プログラム生成方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225752A (ja) * 1993-12-16 1995-08-22 Fujitsu Ltd 状態遷移の概念を導入した問題解決演算装置および方法
JPH09179845A (ja) * 1995-12-22 1997-07-11 Toyo Electric Mfg Co Ltd 遺伝的アルゴリズムを用いた最適化処理方法および装置
JP2008117059A (ja) * 2006-11-01 2008-05-22 Fuji Heavy Ind Ltd 制御パラメータの自動調整装置
WO2015001967A1 (ja) * 2013-07-02 2015-01-08 富士通株式会社 画像処理フィルタの作成装置及びその方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KENGO YOSHII ET AL.: "Discussion of Parallel Model of Multi-objective Genetic Algorithms on Heterogeneous Computational Resources", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 48, no. SIG15 (TOM18, 15 October 2007 (2007-10-15), pages 103 - 117, XP058212177, ISSN: 0387-5806 *

Also Published As

Publication number Publication date
JP6544435B2 (ja) 2019-07-17
US11151458B2 (en) 2021-10-19
US20180218263A1 (en) 2018-08-02
JPWO2017056320A1 (ja) 2018-08-09

Similar Documents

Publication Publication Date Title
JP6511986B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP6631641B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
US11886990B2 (en) Classification device, classification method, and computer program product
JPWO2017068675A1 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP6468356B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP5795743B2 (ja) 適応的重み付けを用いた様々な文書間類似度計算方法に基づいた文書比較方法および文書比較システム
JP7003753B2 (ja) 探索点決定プログラム、探索点決定方法および探索点決定装置
JP6344469B2 (ja) プログラム生成装置、プログラム生成方法およびプログラム
US11461663B2 (en) Information processing apparatus, information processing method for image processing, and storage medium
JPWO2013089263A1 (ja) 画像処理装置及び画像処理方法
JP2018528511A (ja) 生産システムにおける出力効率の最適化
JP6729810B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
WO2017056320A1 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP6622369B1 (ja) 訓練データを生成する方法、コンピュータおよびプログラム
US11182650B2 (en) Information processing apparatus to generate a next generation image processing program in genetic programming, control method, and non-transitory computer-readable storage medium for storage program
JP7050028B2 (ja) 計算機システム及び機械学習の制御方法
JP6505322B2 (ja) ユーザインタフェース装置
JPWO2011016281A1 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
JP7127686B2 (ja) 仮説推論装置、仮説推論方法、及びプログラム
WO2023119682A1 (ja) データ解析方法、データ解析装置、及び、データ解析プログラム
WO2022085133A1 (ja) 求解システムおよび求解方法
JP2022154442A (ja) 学習装置、学習方法およびプログラム
JP6530338B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2023069081A (ja) 説明プログラム、説明方法および情報処理装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15905473

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017542661

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15905473

Country of ref document: EP

Kind code of ref document: A1