WO2015189935A1 - プログラム生成装置、プログラム生成方法およびプログラム - Google Patents
プログラム生成装置、プログラム生成方法およびプログラム Download PDFInfo
- Publication number
- WO2015189935A1 WO2015189935A1 PCT/JP2014/065470 JP2014065470W WO2015189935A1 WO 2015189935 A1 WO2015189935 A1 WO 2015189935A1 JP 2014065470 W JP2014065470 W JP 2014065470W WO 2015189935 A1 WO2015189935 A1 WO 2015189935A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- fitness
- evolution
- individual
- partial
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
Definitions
- the present invention relates to a program generation device, a program generation method, and a 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 processing result image (target image) to generate an image processing program generated by combining partial programs for image processing (for example, an image filter program) by genetic programming. It will be optimized.
- the above-described processing for automatically generating an image processing program by genetic programming has a problem that the time required for the program generation processing is long.
- the more partial programs that can be selected the higher the possibility that high quality image processing can be realized.
- the possibility that the time required for the fitness calculated during the process to converge to a high value is increased, and as a result, the possibility that the time until the program generation process is completed is increased.
- an object of the present invention is to provide a program generation device, a program generation method, and a program that can shorten the generation time of an image processing program.
- a program generation device that generates an image processing program by determining a combination of partial programs included in the image processing program by genetic programming.
- This program generation device has an information recording unit and a probability setting unit.
- the information recording unit changes the number of partial programs between the pre-evolution individual and the post-evolution individual, and the individual before the evolution.
- the information which shows the difference of the fitness calculated based on each of the individuals after evolution is recorded on a memory
- the probability setting unit determines, for each partial program, the contribution that contributed to the increase in fitness based on the information accumulated in the storage unit during a predetermined period, and the higher the determined contribution, the higher the setting value.
- the selection probability is set for each partial program. Then, after the selection probability is set for each partial program by the probability setting unit, the program generation device performs the evolution process according to the selection probability set for the partial program to be incorporated into the individual after evolution by mutation. select.
- a program generation method is provided in which processing similar to that of the above-described program generation device is executed. Furthermore, in one proposal, there is provided a program that causes a computer to execute the same processing as the above-described program generation device.
- the generation time of the image processing program can be shortened.
- FIG. 1 It is a figure which shows the structural example and process example of a program generation apparatus which concern on 1st Embodiment. It is a figure which shows the reference example of the production
- 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 device 1 includes a generation processing unit 1a, an information recording unit 1b, a probability setting unit 1c, and a storage unit 1d.
- the storage unit 1 d is shown outside the program generation device 1, but the storage unit 1 d is realized as a storage area of a storage device built in the program generation device 1.
- the generation processing unit 1a generates an image processing program by genetic programming.
- the generated image processing program is realized by combining partial programs for executing image processing.
- the generation processing unit 1a determines a combination of partial programs to be included in the image processing program by genetic programming.
- a plurality of partial programs that can be incorporated into the image processing program are stored in advance in the storage unit 1d, for example.
- the generation processing unit 1a generates, for example, a predetermined number of individuals obtained by randomly selecting and combining stored partial programs. Then, the generated individual is evolved to discriminate individuals having low fitness, thereby discriminating the individual whose combination of partial programs is optimized, and outputting the individual as a final image processing program.
- the evolution process for evolving an individual includes, for example, a crossover process for replacing a partial program between two parent individuals and a mutation process for replacing a partial program included in the parent individual with another partial program.
- the partial program newly incorporated into the child individual in the mutation process is selected at random (that is, with the same probability) from the partial programs stored in advance. As will be described later, after the selection probability is set for each partial program, the selection is made according to the set selection probability.
- the information recording unit 1b includes a partial program whose number changes between an individual before evolution and an individual after evolution, an individual before evolution, and an individual after evolution Information indicating the difference in fitness calculated based on each of the above is recorded in the storage unit 1d.
- information recorded in the storage unit 1d by the information recording unit 1b is represented as “increase / decrease information 2a”.
- a child individual 5_1 is generated from a parent individual 4_1 in the evolution process 3_1.
- the parent individual 4_1 includes partial programs # 1 to # 4
- the child individual 5_1 includes partial programs # 1 and # 3 to # 5. That is, it is assumed that the partial program # 2 is deleted and the partial program # 5 is newly incorporated in the process in which the parent individual 4_1 evolves to the child individual 5_1.
- the information recording unit 1b records, for example, information indicating the partial programs # 2 and # 5 in the increase / decrease information 2a as a partial program whose number has changed before and after evolution.
- a numerical value “ ⁇ 1” is recorded in association with the partial program # 2
- a numerical value “+1” is recorded in association with the partial program # 5. This indicates that partial program # 2 has decreased by one and partial program # 5 has increased by one due to evolution.
- the information recording unit 1b may record only the information about the partial program # 5 whose number has increased due to evolution in the increase / decrease information 2a.
- the information recording unit 1b records a numerical value “+0.1” in the increase / decrease information 2a as information indicating a difference in fitness before and after evolution.
- the information indicating the difference in fitness may be recorded in the increase / decrease information 2a only when the fitness increases due to evolution, for example.
- the probability setting unit 1c determines, for each partial program, the contribution that has contributed to the increase in fitness, based on information recorded in the storage unit 1d by the information recording unit 1b during a predetermined period. Then, the selection probability is set for each partial program so that the set value becomes higher as the determined contribution is higher.
- the probability setting unit 1c determines the contribution for each partial program based on the increase / decrease information 2a recorded during the period in which the n evolution processes 3_1 to 3_n are executed. Based on the determination result, the selection probability for each partial program is set in the setting information 2b.
- the generation processing unit 1a executes the evolution process after the setting information 2b is set by the probability setting unit 1c, the generation processing unit 1a selects a partial program to be incorporated into the individual that has evolved due to mutation in the setting information 2b. Select according to probability. For example, in the (n + 1) th evolution process 3_ (n + 1), the generation processing unit 1a performs a mutation process on the parent individual 4_ (n + 1) to generate a child individual 5_ (n + 1). The partial program newly incorporated into 5_ (n + 1) is selected according to the selection probability set in the setting information 2b, not at random. As a result, the partial program with a higher selection probability is more likely to be newly incorporated into the child individual due to the mutation.
- the probability setting unit 1c can estimate the contribution of the partial program to the increase in fitness by the following method based on the increase / decrease information 2a recorded in the storage unit 1d during a predetermined period. For example, when the fitness level increases before and after evolution, it can be estimated that a partial program whose number in the individual has increased before and after the evolution is likely to contribute to the increase in fitness level. Further, when the fitness level increases before and after evolution, it can be estimated that the partial program having a larger number after the evolution has a lower contribution to the fitness level increase. In addition, when the fitness decreases before and after evolution, it is assumed that the partial program whose number in the individual has increased before and after the evolution is unlikely to contribute to the increase in fitness. You can also.
- the probability setting unit 1c sets the selection probability for each partial program so that the set value becomes higher as the contribution is higher, based on the contribution determined by such a method.
- the partial program that is highly likely to contribute to the increase in fitness is more likely to be newly incorporated into the child individual.
- the possibility that the fitness calculated based on the generated child individual increases is also increased.
- it becomes easy to converge to a high fitness value, and learning is promoted. Therefore, there is a high possibility that the time required for the program generation process is shortened while maintaining the quality of the generated image processing program.
- the more the partial programs that can be selected are prepared in advance the higher the possibility that the quality of the image processing by the generated image processing program can be improved.
- the fitness becomes difficult to converge, and the possibility that the time required for the program generation process will be increased.
- the program generation device 1 of the present embodiment even when the number of partial programs that can be selected increases, there is a possibility of contributing to an increase in fitness among those partial programs as learning progresses. A high partial program is easily selected. Thereby, it becomes easy to converge to a value with high fitness, and learning is promoted. Therefore, the possibility that an image processing program that realizes high-quality image processing can be generated in a short time increases.
- the image processing apparatus includes a processing function of the program generation apparatus illustrated in FIG. 1 and a function of executing an image processing program generated by the processing function to perform image processing.
- FIG. 2 is a diagram illustrating a reference example of the generation processing procedure of the image processing program.
- One or more learning data 50 are prepared before the image processing program generation process.
- the learning data 50 includes an input image 51 and a target image 52 when image processing is performed on the input image 51.
- the input image 51 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 group 61 of a plurality of initial individuals is 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, two parent individuals are randomly extracted from the generated individual group 61 (step S12).
- the evolution process is performed on these two parent individuals to generate two or more child individuals (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.
- 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 51 of the learning data 50, and the fitness is calculated by comparing the image after execution with the corresponding target image 52. Is done.
- the average value of the fitness obtained using the plurality of learning data 50 is calculated for each individual.
- the individual is output as a final image processing program, and the program generation process ends.
- survival selection is performed from the generated individual group 62 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 62.
- one individual is selected from the remaining individuals in the individual group 62 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 extracted as parent individuals among the individuals included in the individual group 61 (step S16). Thereby, the individuals included in the individual group 61 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.
- the image processing program generation process by genetic programming has a problem that the processing time is long.
- the more image filters that can be selected the higher the possibility that high-quality image processing can be realized.
- learning is less likely to converge and the processing time is likely to be longer.
- image filters are selected at random during the process of element filter evolution. For example, when an image filter is selected at random, an image filter that is not appropriate for realizing desired image processing may be selected, and in this case, fitness based on an individual after evolution decreases. there is a possibility. If such a situation occurs frequently, it will go through many useless evolution processes, and the progress of learning will become slow.
- an image filter that is likely to contribute to an increase in fitness is easily selected in the evolution process with respect to the program generation procedure as described above.
- a processing procedure is added. This shortens the time required for the program generation process while maintaining the quality of the image processing by the generated image processing program. Further, even when the number of selectable image filters is increased, the possibility that the time required for the program generation process will increase is reduced.
- FIG. 3 is a diagram illustrating a hardware configuration example of the image processing apparatus.
- the image processing apparatus 100 is realized as a computer as shown in FIG. 3, 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 (Random Access Memory) 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 (Hard Disk Drive) 103, a graphic processing device 104, an input interface 105, a reading device 106, a network interface 107, and a communication interface 108.
- HDD Hard Disk Drive
- Peripheral devices connected to the bus 109 include an HDD (Hard Disk Drive) 103, a graphic processing device 104, an input interface 105, a reading device 106, a network interface 107, and a communication interface 108.
- HDD Hard Disk Drive
- 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 display device using a CRT (Cathode Ray Tube) and a liquid crystal display device.
- 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 network interface 107 transmits and receives data to and from other devices via the network 107a.
- the communication interface 108 transmits / receives data to / from a connected external device.
- a camera 108a is connected to the communication interface 108 as an external device, and the communication interface 108 transmits image data transmitted from the camera 108a to the processor.
- FIG. 4 is a block diagram illustrating a configuration example of processing functions included in the image processing apparatus.
- the image processing apparatus 100 includes an image acquisition unit 111, a learning processing unit 112, an image processing unit 113, a program storage unit 130, a filter set storage unit 140, a learning data storage unit 150, and a fitness change storage unit 160.
- the processing of the image acquisition unit 111 and the learning processing unit 112 is realized, for example, when the processor 101 of the image processing apparatus 100 executes a predetermined program.
- the program storage unit 130, the filter set storage unit 140, and the learning data storage unit 150 are realized as storage areas of the HDD 103 of the image processing apparatus 100, for example.
- the fitness change storage unit 160 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 108 a and outputs the acquired data to the learning processing unit 112 or the image processing unit 113.
- the learning processing unit 112 generates an image processing program by genetic programming, and stores the generated image processing program in the program storage unit 130.
- the processing of the image processing unit 113 is realized by the processor 101 of the image processing apparatus 100 executing the image processing program stored in the program storage unit 130.
- the image processing unit 113 acquires image data captured by the camera 108a via the image acquisition unit 111, and performs image processing on the acquired image data.
- the processed image is displayed on the display device 104a, for example.
- the filter set storage unit 140 stores a plurality of image filter programs that can be selected by the learning processing unit 112. Further, the filter set storage unit 140 stores selection probabilities associated with each image filter.
- the learning data storage unit 150 stores one or more pieces of learning data including each data of the input image and the target image.
- the input image included in the learning data may be, for example, an image captured by the camera 108a connected to the image processing apparatus 100.
- the fitness level change storage unit 160 stores a fitness level change table to be described later.
- the fitness change table is an example of the increase / decrease information 2a shown in FIG. 1, and is calculated based on the partial program whose number has changed between the parent individual and the child individual in the evolution process, and each of the parent individual and the child individual. The information indicating the difference in fitness is stored.
- the learning processing unit 112 includes a learning control unit 121, an image processing unit 122, an fitness calculation unit 123, an fitness change registration unit 124, and a selection probability setting unit 125.
- the learning control unit 121, the image processing unit 122, and the fitness calculation unit 123 are examples of the generation processing unit 1a illustrated in FIG.
- the fitness change registration unit 124 is an example of the information recording unit 1b shown in FIG. 1
- the selection probability setting unit 125 is an example of the probability setting unit 1c shown in FIG.
- the learning control unit 121 controls the program generation processing in the learning processing unit 112 in an integrated manner.
- the image processing unit 122 performs image processing based on the individual generated in the course of the program generation processing on the input image stored in the learning data storage unit 150.
- the fitness calculation unit 123 compares the processed image with the corresponding target image stored in the learning data storage unit 150 to determine the fitness. calculate.
- the fitness change registration unit 124 determines a partial program whose number has changed between a parent individual and a child individual in the evolution process, and a difference in fitness calculated based on each of the parent individual and the child individual.
- the fitness change registration unit 124 registers information based on the determination results in the fitness change storage unit 160.
- the selection probability setting unit 125 calculates a selection probability for each image filter registered in the filter set storage unit 140 based on information registered in the fitness change storage unit 160 in a predetermined period. The selection probability setting unit 125 sets the calculated selection probability in the filter set storage unit 140 in association with the image filter.
- FIG. 5 is a diagram showing an example of information registered in the filter set database.
- the filter set database (DB) 141 is an example of the setting information 2b shown in FIG. 1, and is stored in the filter set storage unit 140 in FIG.
- the filter set database 141 a record is registered for each image filter that can be incorporated into the image processing program.
- the program code of the corresponding image filter and the selection probability are registered.
- the selection probability column in the initial state, the same value (for example, a value obtained by dividing the numerical value “1” by the number of registered image filters) is set for all image filters.
- FIG. 6 is a diagram illustrating a first example of the fitness change table.
- a record is registered for each pair of the image filter whose number included in the individual is decreased and the image filter whose number is increased before and after the evolution process.
- the record corresponding to “F1-> F2” indicates that the number of image filters F1 decreased and the number of image filters F2 increased before and after the evolution process.
- the image filter F1 included in the parent individual is replaced with the image filter F2 in the child individual can be considered.
- each record records a fitness change calculated based on a value obtained by subtracting the fitness calculated based on the parent individual before evolution from the fitness calculated based on the child individual after evolution. Is done.
- the value of the fitness change for example, the subtraction value may be recorded as it is, or the increase / decrease value is normalized by the increase / decrease number of the image filter in the process of evolution as described later. A value may be recorded.
- the value of the fitness change is recorded in a corresponding record each time an evolution process is executed, for example.
- FIG. 7 is a diagram showing a second example of the fitness change table.
- the fitness change table 152 shown in FIG. 7 unlike the example of FIG. 6, a record is registered for each image filter, and a fitness change is recorded in each record.
- the value of the fitness change is registered in the corresponding record when, for example, the number of corresponding image filters increases after evolution. Further, the value of the fitness change may be registered in the corresponding record even when the number of corresponding image filters decreases after evolution.
- FIG. 8 is a diagram illustrating a first registration processing example of fitness change.
- a parent individual 71a includes image filters F1, F3, and F5
- a parent individual 71b includes image filters F2, F3, F4, and F6.
- child individuals (not shown) corresponding to the parent individuals 71a and 71b are respectively generated by performing crossover between the parent individual 71a and the parent individual 71b.
- crossover is performed between the image filter F3 included in the parent individual 71a and the image filter F4 included in the parent individual 71b.
- the fitness value calculated based on the parent individual 71a is “0.5”, and the fitness value calculated based on the child individual corresponding to the parent individual 71a is “0.7”.
- the fitness value calculated based on the parent individual 71b is “0.6”, and the fitness value calculated based on the child individual corresponding to the parent individual 71b is “0.3”.
- the fitness level change registration unit 124 registers, for example, “0.2” as the value of the fitness level change in the record corresponding to “F3-> F4” in the fitness level change table 151 in FIG.
- the fitness level change registration unit 124 registers, for example, “ ⁇ 0.3” as the value of the fitness level change in the record corresponding to “F4-> F3” in the fitness level change table 151 in FIG.
- FIG. 9 is a diagram showing a second registration process example of fitness change.
- a parent individual 72 includes image filters F1, F3, and F5. It is assumed that a child individual (not shown) corresponding to the parent individual 72 is generated by performing mutation on the parent individual 72.
- the image filter F1 included in the parent individual 72 is replaced with the image filter F2 by mutation.
- the fitness value calculated based on the parent individual 72 is “0.4”, and the fitness value calculated based on the child individual corresponding to the parent individual 72 is “0.5”.
- the fitness change registering unit 124 registers “0.1” as the value of the fitness change in the record corresponding to “F1-> F2” in the fitness change table 151 in FIG. 6, for example.
- the fitness change registration unit 124 registers “0.2” as the fitness change value in the record corresponding to the image filter “F4”, and the record corresponding to the image filter “F3”. Then, “ ⁇ 0.3” is registered as the value of the fitness change. In the case of FIG. 9, the fitness change registration unit 124 registers “0.1” as the fitness change value in the record corresponding to the image filter “F2”.
- fitness changes may be registered for image filters whose number has decreased before and after evolution.
- an image filter whose number has decreased before and after evolution is considered to have a low contribution to the change in fitness before and after evolution.
- a value obtained by reversing the sign of the amount of change is registered.
- the fitness change registration unit 124 further registers “ ⁇ 0.2” as the value of the fitness change in the record corresponding to the image filter “F3”, and the image filter “F4”. In the corresponding record, “0.3” is registered as the fitness change value.
- the fitness change registration unit 124 further registers “ ⁇ 0.1” as the fitness change value in the record corresponding to the image filter “F1”.
- FIGS. 8 and 9 are simple cases in which image filters are replaced one by one before and after evolution.
- two or more image filters may increase or decrease before and after the evolution, for example, due to crossover.
- the increased two image filters are increased in fitness by “0.2”. It can be estimated that each contributed at a rate of 1/2.
- the fitness change registration unit 124 may calculate the value of the fitness change in consideration of the increase / decrease number of the image filter before and after the evolution.
- FIG. 10 an example of image filter increase / decrease in the evolution process is shown in FIG. 10, and an example of fitness change registration processing when the example of FIG. 10 is used will be described with reference to FIGS. To do.
- FIG. 10 is a diagram showing an example of the increase / decrease of the image filter during the evolution process.
- Table 81 in FIG. 10 shows an example of changes in configuration and fitness before and after evolution of an individual.
- the parent individual includes three image filters F1, two image filters F2, two image filters F3, and three image filters F4.
- the child individuals generated by the evolution of the parent individual include two image filters F1, three image filters F2, two image filters F3, one image filter F4, and three image filters F5. Including. Further, it is assumed that the fitness calculated based on the parent individual is “0.5”, and the fitness calculated based on the child individual is “0.7”.
- the fitness change registration unit 124 extracts the difference in the number of image filters in the individual before and after evolution when there is a change in the individual composition as shown in Table 81 in the evolution process. Differences based on the table 81 are extracted as shown in a table 82 of FIG. That is, before and after evolution, the image filter F1 is decreased by 1, the image filter F2 is increased by 1, the image filter F4 is decreased by 2, and the image filter F5 is increased by 3. The increase / decrease number of the image filter F3 is “0”.
- FIG. 11 is a diagram illustrating a third registration process example of fitness change.
- the fitness change is registered in the fitness change table 152 of FIG.
- FIG. 11A shows an example when attention is paid only to the image filter increased before and after evolution.
- the image filter F2 is increased by one and the image filter F5 is increased by three due to the evolution. Therefore, the fitness change registering unit 124 registers the fitness change in records corresponding to the image filters F2 and F5 among the records of the fitness change table 152.
- the fitness level change registration unit 124 registers the fitness increase amount “0.2” before and after evolution in the records corresponding to the image filters F2 and F5, respectively.
- FIG. 11 (B) shows an example in which attention is paid to the image filter reduced before and after evolution in addition to the example of FIG. 11 (A).
- the image filter F1 is decreased by one and the image filter F4 is decreased by two due to the evolution. Therefore, the fitness level change registration unit 124 registers the fitness level change in the records corresponding to the image filters F1 and F4 among the records of the fitness level change table 152.
- the fitness change registering unit 124 reverses the sign of the increase in fitness before and after evolution to the record corresponding to each of the image filters F1 and F4, “ ⁇ 0.2”. Is registered.
- FIG. 11C shows an example in which the fitness change is normalized based on the number of increase / decrease of the image filter before and after evolution.
- the record corresponding to the decreased image filter is the registration target of the fitness change. .
- the fitness change registering unit 124 calculates, for example, a fitness change corresponding to an image filter whose number has increased before and after evolution according to the following equation (1).
- “Adaptive change” “Increase in fitness” / (“Number of types of increased image filters” ⁇ “Number of increased corresponding image filters”) (1)
- the fitness change registration unit 124 calculates, for example, a fitness change corresponding to an image filter whose number has decreased before and after evolution according to the following equation (2).
- Adaptability change ( ⁇ 1) ⁇ “Increase in fitness” / (“Number of types of reduced image filters” ⁇ “Decrease number of corresponding image filters”) (2)
- FIG. 12 is a diagram illustrating a fourth registration process example of fitness change.
- the fitness change is registered in the fitness change table 151 of FIG.
- the image filters arranged in the vertical direction indicate image filters whose number decreases before and after the evolution
- the image filters arranged in the horizontal direction indicate a number before and after the evolution. Indicates an increased image filter.
- the left table in FIGS. 12A to 12C shows the number of increase or decrease of the image filter
- the right table shows the fitness change.
- one record in the fitness change table 151 is shown by a combination of the image filter arranged in the vertical direction and the image filter arranged in the horizontal direction.
- the combination of the image filter F1 in the vertical direction and the image filter F2 in the horizontal direction is a record corresponding to “F1-> F2” in the fitness change table 151 (that is, the number of image filters F1 decreases, Record corresponding to an increase in the number of filters F2).
- FIG. 12A shows an example of registering a fitness change in a record corresponding to a combination of a reduced image filter and an increased image filter.
- the image filters F2 and F5 are increased and the image filters F1 and F4 are decreased due to the evolution. Therefore, the fitness change registration unit 124 corresponds to “F1-> F2”, “F4-> F2”, “F1-> F5”, “F4-> F5” in the records of the fitness change table 151, respectively.
- the fitness change is registered in the record to be performed.
- the increase number is uniformly set to “1” without considering the increase number of the image filter, and the increase / decrease number of the image filter with respect to the fitness change. Shall not be reflected.
- the fitness change registration unit 124 as shown in the table on the right side of FIG. 12A, “F1-> F2”, “F4-> F2”, “F1-> F5”, “F4-> In the records corresponding to F5 ”, the fitness increase amount“ 0.2 ”before and after evolution is registered as it is.
- FIG. 12B is an example in which a change in fitness is registered in a record corresponding to a combination of an image filter with an increased number and an image filter with a decreased number in addition to the example of FIG. Indicates.
- the fitness change registration unit 124 records among the records of the fitness change table 151 corresponding to “F2-> F1”, “F2-> F4”, “F5-> F1”, “F5-> F4”, respectively. Register the negative fitness change.
- the reduction number is uniformly set to “1” without considering the reduction number of the image filter.
- the increase / decrease number of the image filter is not reflected.
- the fitness change registration unit 124 as shown in the table on the right side of FIG. 12B, “F2-> F1”, “F2-> F4”, “F5-> F1”, “F5-> A value “ ⁇ 0.2” obtained by reversing the sign of the increase in fitness before and after evolution is registered in the record corresponding to F4 ′′.
- the example of FIG. 12C is a modification of the example of FIG. 12A so that the fitness change is normalized according to the increase / decrease number of the image filter.
- the fitness change registration unit 124 first normalizes the increase number of image filters using the decreased number of image filters.
- the adaptability change registering unit 124 uses the image filter F2 corresponding to each record of “F1-> F2” and “F4-> F2” as an image filter based on the increase “1” of the image filter F2.
- the filter increase number corresponding to each record is calculated so as to coincide with the ratio of the decrease numbers of F2 and F4.
- the filter increment corresponding to each record of “F1-> F2”, “F4-> F2” is “1”, “0.5”. Is calculated.
- the fitness level change registration unit 124 uses the increase number “3” of the image filter F5 as a reference for the filter increase number corresponding to each record of “F1-> F5” and “F4-> F5”.
- the filter increase number corresponding to each record is calculated so as to match the ratio of the decrease numbers of the filters F2 and F4.
- the filter increments corresponding to the records “F1-> F5” and “F4-> F5” are “3”, “1.5”. Is calculated.
- the fitness level change registration unit 124 calculates the fitness level change corresponding to each record based on the filter increase number corresponding to each record. For example, the fitness change registration unit 124 normalizes the fitness increase amount “0.2” using the filter increase number calculated by the above processing.
- the fitness change registering unit 124 calculates, for example, the fitness change registered in the record according to the following formula (3) obtained by transforming the formula (1).
- “Adaptive change” “Increase in fitness” / (“Number of filter types increased / decreased” ⁇ “Number of filters increased in corresponding record”) (3)
- the fitness change due to evolution is compared with the example of FIG. 12A by standardizing the change in fitness based on the number of increase / decrease of the image filter before and after the evolution. It is possible to accurately reflect the degree of influence of each image filter on the amount of change in the fitness to be registered. As a result, the degree of contribution to the increase in fitness can be accurately reflected on the selection probability for each image filter, and the possibility that the time required for the program generation processing can be shortened can be increased.
- the value “0” is described in the item corresponding to the image filter that has not increased or decreased before and after evolution.
- the value “0” may be registered as the fitness change in the record of the fitness change table corresponding to the image filter that has not increased or decreased before and after evolution, or nothing is registered. May be.
- the selection probability setting unit 125 calculates the effectiveness for each image filter based on the fitness change registered in the fitness change storage unit 160 in a predetermined period.
- the effectiveness is an estimated value indicating the degree to which the corresponding image filter is effective (contributes) to the increase in fitness.
- the selection probability setting unit 125 calculates a selection probability for each image filter based on the calculated effectiveness, and sets the calculated selection probability in the filter set database 141 in association with the image filter.
- FIG. 13 shows an example of a cumulative histogram of fitness changes.
- a processing example for calculating the effectiveness using the cumulative histogram of the fitness change will be described with reference to FIG. In FIG. 13, it is assumed that the fitness change registered in the fitness change table 151 of FIG. 6 is used. In addition, the fitness value calculated in the evolution process takes a value from “0” to “1”.
- the first example shown in FIG. 13A shows an example of a cumulative histogram of fitness changes registered in a record corresponding to “F1-> F2” in the fitness change table 151.
- the peak of the cumulative histogram exists in a region where the value of the fitness change is positive, and the frequency corresponding to the peak is equal to or greater than a predetermined threshold Th1.
- the selection probability setting unit 125 calculates the value of the peak position of the cumulative histogram (“0.5” in the example of FIG. 13A) as the effectiveness of the image filter F2.
- the selection probability setting unit 125 may calculate the average value of the cumulative histogram as the effectiveness of the image filter F2.
- the fitness change table 151 includes a plurality of records in which the image filter F2 is set as an image filter whose number has increased after evolution. For example, when there are n image filters, the fitness change table 151 corresponds to “F1-> F2”, “F3-> F2”,..., “Fn-> F2” (n ⁇ 1) There are records.
- the selection probability setting unit 125 determines the value of the peak position of the cumulative histogram from each of these (n ⁇ 1) records, and calculates the average value of the determined values as the effectiveness of the image filter F2. .
- the selection probability setting unit 125 calculates the selection probability for each image filter based on the calculated effectiveness.
- the selection probability of each image filter is “1 / n”. Therefore, as a calculation method of the selection probability, for example, when the effectiveness of the image filter is higher than the average value of the effectiveness of all the image filters, the selection probability of the image filter is set higher than “1 / n”, and the image
- a method of making the selection probability of the image filter lower than “1 / n” can be used.
- the selection probability of the image filter is calculated according to the following equation (4).
- “Selection probability” (1 / n) + (“Effectiveness of corresponding image filter” ⁇ “Average value of effectiveness of all image filters”) ⁇ 0.5 (4)
- FIG. 13B shows an example of a cumulative histogram of fitness changes registered in a record corresponding to “F2> F1” in the fitness change table 151.
- the peak value of the cumulative histogram is greater than or equal to the threshold Th1, but the peak position is a negative position.
- the selection probability setting unit 125 may calculate the value of the peak position of the cumulative histogram as the effectiveness of the image filter F1. However, when the effectiveness value is low, it is highly likely that the image filter F1 having an increased number does not contribute to increasing the fitness.
- the selection probability setting unit 125 may set the selection probability of the corresponding image filter to a predetermined minimum value when the value of the effectiveness is a predetermined value (for example, “0”) or less. Thereby, in the subsequent evolution process, the probability that an image filter that does not contribute to the increase in fitness is newly selected is lowered, and the convergence of the calculated fitness is promoted.
- the selection probability setting unit 125 may exclude the corresponding image filter from selection targets in the evolution process. Further, in order to exclude from the selection target, “0” may be set as the selection probability corresponding to the corresponding image filter. In this way, by preventing the image filter that does not contribute to the increase in fitness from being newly selected in the evolution process, the possibility that the fitness converges increases.
- the second example shown in FIG. 13C shows an example of a cumulative histogram of fitness changes registered in a record corresponding to “F3-> F4” in the fitness change table 151.
- the distribution of registered fitness changes is dispersed, and the peak value of the cumulative histogram does not reach the threshold Th1.
- the selection probability setting unit 125 sets the validity corresponding to the image filter F4 to a predetermined minimum value (for example, “ ⁇ 1”) so that the selection probability of the image filter F4 becomes a low value.
- FIG. 13 it is assumed that a cumulative histogram based on the fitness change table 151 in FIG. 6 is used. However, a cumulative histogram based on the fitness change table 152 in FIG. 7 may be used.
- FIG. 14 is a diagram illustrating another setting process example of the selection probability. 14 also assumes a case where the fitness change registered in the fitness change table 151 of FIG. 6 is used.
- one record in the fitness change table 151 is specified by a combination of the image filter Fm arranged in the vertical direction and the image filter Fn arranged in the horizontal direction.
- the average value of the fitness change registered in the corresponding record is set in the column associated with one image filter Fm and one image filter Fn.
- the effectiveness of each of the image filters F1 and F4 is a value of “0” or less.
- the selection probability setting unit 125 sets the selection probability to “0” for an image filter whose effectiveness is equal to or less than a predetermined threshold (for example, “0”), and the image filter is excluded from selection targets in the evolution process. You may make it do.
- FIG. 15 is a flowchart illustrating an example of a program generation processing procedure.
- the learning control unit 121 receives an input operation for setting learning data. For example, learning data to be used in this process is specified from the learning data stored in the learning data storage unit 150.
- the learning control unit 121 receives an input operation for setting a filter set.
- an image filter to be used in this process is specified from among image filters registered in the filter set database 141.
- the learning control unit 121 generates an individual group including a predetermined number of individuals. Each individual is generated by randomly selecting and combining the image filters designated in step S22. The generated individual group corresponds to the individual group 61 shown in FIG. 2, and will be referred to as “individual group 61” hereinafter.
- the learning control unit 121 randomly selects two parent individuals from the individuals included in the individual group 61.
- the learning control unit 121 generates two or more predetermined number of child individuals by performing crossover between the two selected parent individuals.
- Step S26 The learning control unit 121 generates a mutation in the generated child individual, and replaces the image filter included in the child individual with any of the other image filters specified in Step S22. At this time, the learning control unit 121 selects the replaced image filter based on the selection probability associated with the image filter in the filter set database 141. That is, a selection process is performed such that the image filter having a higher selection probability is more likely to be newly incorporated into a child individual due to mutation.
- Step S27 The fitness is calculated for each parent individual selected in step S24 and each child individual obtained by the processing in steps S26 and S27. In this process, the following process is performed for each individual to be calculated.
- the image processing unit 122 selects one learning data designated in step S21, and applies the processing of the individual to be calculated to the input image included in the selected learning data.
- the fitness level calculation unit 123 calculates the fitness level by calculating the matching level between the image obtained by the individual processing and the target image included in the selected learning data.
- the image processing unit 122 and the fitness calculation unit 123 perform the above processing for all the learning data specified in step S21.
- the fitness calculation unit 123 calculates an average value of all the calculated fitness values, and outputs the average value as the fitness value of the individual to be calculated.
- Step S28 The learning control unit 121 determines whether the maximum value of the fitness of each individual calculated in Step S27 is greater than a predetermined threshold. If the maximum fitness value is greater than the threshold value, the process of step S29 is executed. On the other hand, when the maximum fitness value is equal to or less than the threshold value, the process of step S30 is executed.
- Step S29 The learning control unit 121 selects an individual having the maximum fitness among the individuals whose fitness has been calculated in Step S27.
- the learning control unit 121 stores the image processing program indicated by the selected individual in the program storage unit 130, and ends the program generation process.
- the fitness change registration unit 124 generates a plurality of pairs of parent and child individuals by associating each child individual obtained by the processing of steps S25 and S26 with the original parent individual corresponding to the child individual. To do.
- the fitness change registration unit 124 calculates the increase / decrease in fitness for each of the generated individual pairs.
- the increase / decrease in the fitness is calculated as a value obtained by subtracting the fitness of the parent individual from the fitness of the child individual.
- the fitness change registration unit 124 extracts a difference in filter structure for each of the generated individual pairs. In this process, the fitness change registering unit 124 determines an image filter whose number has decreased between individuals of the parent and child, a decrease number thereof, an image filter whose number has increased, and an increase number thereof.
- the fitness change registration unit 124 calculates a fitness change for each image filter based on the increase / decrease in the fitness calculated in step S30 and the difference information of the filter structure extracted in step S31. And registered in the fitness change storage unit 160.
- the method for calculating the fitness change is as described with reference to FIGS. Further, when the fitness change table 151 of FIG. 6 is used, the value of the fitness change is registered in a record provided for each combination of the image filter with the reduced number and the image filter with the increased number. On the other hand, when the fitness change table 152 of FIG. 7 is used, the value of the fitness change is registered in a record provided for each image filter.
- Step S33 The learning control unit 121 sets the individual having the maximum fitness among the individual individuals selected in Step S24 and the child individuals obtained by the processing in Steps S26 and S27 as the individual to survive. select. Furthermore, 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 in step S24 among the individuals in the individual group 62 with the two individuals selected as the individuals to survive. As a result, the generation of the individual group 62 is updated.
- Step S34 The learning control unit 121 determines whether a predetermined period has elapsed. When the predetermined period has elapsed, the process of step S35 is executed. On the other hand, if the predetermined period has not elapsed, the process of step S24 is executed. In addition, the count value which counts a predetermined period is reset after execution of step S34.
- step S34 for example, when the processes from steps S24 to S33 are repeated a predetermined number of times (that is, when the evolution process for a predetermined number of generations is executed), it is determined that the predetermined period has elapsed. .
- the number of fitness change data accumulated in the fitness change storage unit 160 reaches a predetermined number, it may be determined that the predetermined period has elapsed.
- Step S35 The selection probability setting unit 125 calculates the effectiveness of each image filter based on the value of the fitness change registered in the fitness change storage unit 160 during the predetermined period determined in Step S34. .
- the method for calculating the effectiveness is as described with reference to FIGS.
- the selection probability setting unit 125 calculates the selection probability of each image filter based on the effectiveness calculated in step S35.
- the selection probability is calculated according to, for example, the above formula (4).
- the selection probability setting unit 125 may set the selection probability to “0” for an image filter whose effectiveness is a predetermined threshold value or less. The image filter with the selection probability set to “0” is excluded from the selection target in the subsequent processing of step S26.
- the selection probability setting unit 125 sets the calculated selection probability in the filter set database 141. At this time, the selection probability value registered in the filter set database 141 is updated with the newly calculated selection probability value.
- the image processing apparatus 100 accumulates information indicating changes in fitness between individuals before and after evolution and changes in filter structure, and increases the fitness based on the accumulated information.
- the effectiveness for is calculated for each image filter.
- a selection probability corresponding to the calculated effectiveness is set in each image filter, and an image filter to be incorporated in the child individual is selected according to the set selection probability in the subsequent evolution process.
- image filters that contribute to an increase in fitness are more likely to be incorporated into the child individual, and as a result, the calculated fitness is more likely to increase and the fitness value is increased. It becomes easier to converge. Therefore, it is possible to increase the possibility that the time required for the generation processing of the image processing program will be shortened.
- the image processing apparatus has an image filter according to the selection probability set in the filter set database 141 in the evolution process compared to the image processing apparatus 100 according to the second embodiment.
- a function for switching between a selection mode for selecting and a selection mode for randomly selecting an image filter is further provided. Then, the image processing apparatus according to the third embodiment determines the tendency of the fitness transition between the parent and the child during the evolution process, and switches the selection mode according to the determination result.
- a selection mode for selecting an image filter according to the selection probability set in the filter set database 141 is referred to as a “non-random selection mode”, and a selection mode for selecting an image filter at random is referred to as a “random selection mode”.
- FIG. 16 is a block diagram illustrating a configuration example of processing functions of the image processing apparatus according to the third embodiment.
- the same components as those in FIG. 4 are denoted by the same reference numerals, and description thereof is omitted.
- the image processing apparatus 100a shown in FIG. 16 is realized by replacing the learning processing unit 112 of the processing functions of the image processing apparatus 100 of FIG. 4 with the learning processing unit 112a and further providing a mode storage unit 170a.
- the mode storage unit 170a stores information indicating whether the random selection mode or the non-random selection mode is currently set.
- the learning processing unit 112a includes a learning control unit 121a instead of the learning control unit 121 in FIG.
- the processing of the learning control unit 121a is basically the same as that of the learning control unit 121 of FIG. 4, except that an image filter is selected according to the selection mode set in the mode storage unit 170a at the time of mutation. Different from the learning control unit 121.
- the learning processing unit 112a includes a mode setting unit 126a in addition to the image processing unit 122, the fitness calculation unit 123, the fitness change registration unit 124, and the selection probability setting unit 125 included in the learning processing unit 112 of FIG. .
- the mode setting unit 126a determines the tendency of the fitness transition between the parent and child during the evolution process, switches the selection mode according to the determination result, and sets the switched selection mode in the mode storage unit 170a.
- FIG. 17 is a diagram illustrating selection mode setting processing.
- the graph shown in FIG. 17 shows the transition of the maximum fitness value (maximum fitness) calculated in the evolution process.
- a dotted broken line L1 in FIG. 17 indicates the transition of the maximum fitness when the program generation process is performed in the non-random selection mode.
- the maximum fitness does not always increase.
- the rate of increase as in the period from timing T1 to timing T2 in FIG. Can stagnate.
- the selection mode is switched to the random selection mode so that a more global solution search is performed, so that there is a high possibility that the increase in maximum fitness is promoted.
- the mode setting unit 126a calculates the increase rate of the maximum fitness based on the maximum value of the fitness calculated in each of the latest predetermined number of generations. If the increase rate of the maximum fitness is greater than or equal to a predetermined threshold (however, the threshold is greater than “0”), the non-random mode is set. If the increase rate is less than the threshold, the random mode is set. To do. As a result, as indicated by a thick broken line L2 in FIG. 17, it is highly likely that the period during which the increase rate of the maximum fitness is stagnant is shortened, and the time until the maximum fitness reaches a predetermined target value can be shortened. The possibility increases.
- FIG. 18 is a flowchart showing an example of a program generation processing procedure in the third embodiment.
- processing steps in which the same processing as in FIG. 15 is performed are denoted by the same step numbers, and description of the processing contents is omitted.
- the processing executed by the learning control unit 121 in FIG. 15 is executed by the learning control unit 121a in FIG.
- step S26a is executed instead of step S26 in FIG. Further, step S41 is executed between step S33 and step S34 in FIG.
- Step S26a The learning control unit 121a generates a mutation in the generated child individual, and replaces the image filter included in the child individual with another image filter specified in Step S22. At this time, the learning control unit 121a determines the current selection mode with reference to the mode storage unit 170a. When the current selection mode is a random mode, the learning control unit 121a randomly selects a replacement image filter. On the other hand, when the current selection mode is the non-random mode, the learning control unit 121a selects the replaced image filter based on the selection probability associated with the image filter in the filter set database 141.
- Step S41 The mode setting unit 126a sets the selection mode. This process will be described with reference to FIG. FIG. 19 is a flowchart illustrating an example of a selection mode setting processing procedure.
- the mode setting unit 126a determines the maximum value of the fitness values calculated in the current generation process (that is, the latest process in Step S27) and the fitness value calculated in the previous process by the predetermined number of generations. Collect the maximum of the values. These maximum fitness levels can be collected from, for example, a log (not shown) storing the calculated fitness levels, information in the fitness level change storage unit 160, and the like.
- the mode setting unit 126a calculates the increase rate of the extracted maximum fitness.
- the maximum fitness value is obtained by subtracting the maximum fitness value in the previous generation process from the maximum fitness value in the current generation process, and subtracting the result of the subtraction (i.e., from that generation to the current generation). It is calculated by dividing by the number of repetitions of step S27.
- Step S53 The mode setting unit 126a compares the calculated increase rate with a predetermined threshold value greater than “0”. When the increase rate is equal to or less than the threshold value, the process of step S54 is executed, and when the increase rate exceeds the threshold value, the process of step S55 is executed.
- the mode setting unit 126a updates the selection mode set in the mode storage unit 170a to the random selection mode.
- the mode setting unit 126a updates the selection mode set in the mode storage unit 170a to a non-random selection mode.
- the image processing apparatus 100a sets the image filter to each image filter at the time of mutation when it is determined that the fitness is increasing smoothly. Select according to the selection probability.
- the image processing apparatus 100a randomly selects an image filter at the time of mutation. As a result, the possibility that the calculated maximum fitness will increase increases, and it becomes easier for the fitness to converge to a high value. As a result, it is possible to increase the possibility that the time required for generating the image processing program will be shortened.
- whether to select an image filter randomly or according to a set selection probability is determined depending on whether the increase rate of the maximum fitness is larger than a threshold value.
- the weight to be added to the set selection probability is changed depending on whether or not the increase rate of the maximum fitness is larger than the threshold value, and in the case of mutation, the weighted selection is performed.
- the image filter may be selected according to the probability.
- the mode setting unit 126a reduces the weight value by a predetermined value or a predetermined ratio when the increase rate is less than the threshold value. This increases the randomness of the image filter selection in the mutation, and makes it possible to search for a more global solution.
- the mode setting unit 126a increases the weight value by a predetermined value or a predetermined rate.
- FIG. 20 is a diagram showing an example of grouping image filters.
- the image filters registered in the filter set database 141 are classified into groups Fa to Fd for image filters having similar processing contents.
- Group Fa includes image filters that perform spatial filter processing.
- the group Fa includes an image filter Fa1 that performs edge extraction, an image filter Fa2 that performs edge enhancement, an image filter Fa3 that performs smoothing, an image filter Fa4 that performs noise removal, and the like.
- An image filter that performs shape detection processing belongs to the group Fb.
- the group Fb includes an image filter Fb1 that performs straight line detection, an image filter Fb2 that performs corner detection, an image filter Fb3 that performs circle detection, an image filter Fb4 that performs character detection, an image filter Fb5 that performs face detection, and the like.
- An image filter that performs binarization processing belongs to the group Fc.
- an image filter Fc1 that performs binarization using a fixed threshold an image filter Fc2 that performs binarization using a variable threshold, and binarization using a P-tile method.
- An image filter Fc3 to be performed, an image filter Fc4 to perform adaptive binarization processing, and the like belong.
- An image filter that processes binary images belongs to the group Fd.
- the group Fd includes an image filter Fd1 that performs expansion / reduction processing, an image filter Fd2 that performs AND operation, an image filter Fd3 that performs OR operation, and an image filter Fd4 that performs luminance inversion processing.
- the image processing apparatus 100a selects an image filter in “selection mode 1” in a state where the increase rate of the maximum fitness is high.
- this selection mode 1 the image processing apparatus 100a selects an image filter to be mutated as an image filter belonging to the same group as this image filter according to the selection probability.
- an image filter belonging to the same group that is, an image filter having similar processing contents can be selected, so that an image filter effective for the increase in fitness can be selected. Estimated to increase.
- the image processing apparatus 100a sets the selection mode 2 in which selection with higher randomness than the selection mode 1 is performed when the increase rate of the maximum fitness is equal to or less than the predetermined threshold Th_H.
- selection mode 2 the image processing apparatus 100a selects an image filter from all image filters according to the selection probability.
- the image processing apparatus 100b sets the selection mode 3 in which selection with higher randomness is performed.
- selection mode 3 the image processing apparatus 100a randomly selects an image filter from all image filters.
- Such processing increases the possibility that the calculated maximum fitness will increase, and it will be easy to converge to a value with high fitness. As a result, it is possible to increase the possibility that the time required for generating the image processing program will be shortened.
- step S26a in FIG. 18 is modified as shown in FIG. 21, and the process of step S41 in FIG. 18 is modified as shown in FIG. It is realized with.
- FIG. 21 is a flowchart illustrating an example of a mutation processing procedure according to the fourth embodiment.
- the learning control unit 121a refers to the mode storage unit 170a to determine the currently set selection mode. If the selection mode 1 is set, the process of step S62 is executed. If the selection mode 2 is set, the process of step S63 is executed. If the selection mode 3 is set, the process of step S64 is executed.
- the learning control unit 121a In steps S62, S63, and S64, the learning control unit 121a generates a mutation in the child individual generated by the process in step S25 of FIG. 18, and the image filter included in the child individual is specified in step S22. Replace with one of the image filters. At this time, the learning control unit 121 selects the replaced image filter in the following procedure.
- the learning control unit 121a selects the same group as the image filter before replacement.
- the learning control unit 121a selects an image filter with a probability based on the selection probability set in the filter set database 141 from among the image filters other than the image filter before replacement among the image filters belonging to the selected group.
- the probability at the time of selection is obtained by the following procedure.
- the selection probabilities set for the image filters Fa2, Fa3, and Fa4 are Sa2, Sa3, and Sa4, respectively.
- the learning control unit 121a selects the image filters Fa2, Fa3, and Fa4 with probabilities Sa2 / (Sa2 + Sa3 + Sa4), Sa3 / (Sa2 + Sa3 + Sa4), and Sa4 / (Sa2 + Sa3 + Sa4), respectively.
- Step S63 The learning control unit 121a selects the replaced image filter with the selection probability associated with the image filter in the filter set database 141 from the image filters in all groups.
- FIG. 22 is a flowchart illustrating an example of a selection mode setting process procedure according to the fourth embodiment. Note that the processing contents of steps S51 and S52 of FIG. 22 are the same as the processing contents of steps S51 and S52 of FIG.
- Step S71 The mode setting unit 126a compares the calculated increase rate with a predetermined threshold H (where H> 0). When the increase rate exceeds the threshold value H, the process of step S72 is executed, and when the increase rate is equal to or less than the threshold value H, the process of step S73 is executed.
- the mode setting unit 126a updates the selection mode set in the mode storage unit 170a to the selection mode 1.
- the mode setting unit 126a compares the calculated increase rate with a predetermined threshold L (where H>L> 0). When the increase rate exceeds the threshold value L, the process of step S74 is executed, and when the increase rate is equal to or less than the threshold value L, the process of step S74 is executed.
- the mode setting unit 126a updates the selection mode set in the mode storage unit 170a to the selection mode 2.
- the mode setting unit 126a updates the selection mode set in the mode storage unit 170a to the selection mode 3.
- the selection modes 1 to 3 can be switched.
- the selection modes 1 and 3 may be switched.
- the process of FIG. 22 may be modified such that the selection mode 1 is set when the increase rate exceeds the threshold value H, and the selection mode 3 is set when the increase rate is equal to or less than the threshold value H.
- FIG. 23 is a diagram illustrating another example of grouping of image filters.
- FIG. 23 shows an example in which image filters are classified into four groups for each image filter having the same type of image filter and having different set parameters.
- Sobel filters with different set parameters belong.
- the parameter include a parameter indicating whether a vertical edge or a horizontal edge is detected, and a parameter indicating a kernel size.
- a Laplacian filter having different set parameters belongs to the Laplacian filter group.
- the parameter include a coefficient set indicating a combination of a plurality of coefficients and a parameter indicating a kernel size.
- the parameters include, for example, a parameter indicating whether it functions for calculating an average value or a Gaussian filter, and a parameter indicating a kernel size.
- Noise removal filters with different set parameters belong to the noise removal filter group.
- the parameters include, for example, a parameter that specifies whether to function as a median filter or an isolated point removal filter, and a parameter that indicates a kernel size.
- the processing described with reference to FIGS. 21 and 22 is executed using the image filters classified as shown in FIG. 23, so that the fitness is easily converged to a high value. As a result, the generation processing of the image processing program It is possible to increase the possibility that the time required for the process will be shortened.
- the processing functions of the apparatuses 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Physiology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Genetics & Genomics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Image Processing (AREA)
- Stored Programmes (AREA)
- Image Analysis (AREA)
Abstract
Description
さらに、1つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させるプログラムが提供される。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。プログラム生成装置1は、生成処理部1a、情報記録部1b、確率設定部1cおよび記憶部1dを有する。なお、図1では、記憶部1dはプログラム生成装置1の外側に示されているが、記憶部1dは、プログラム生成装置1に内蔵された記憶装置の記憶領域として実現される。
次に、第2の実施の形態に係る画像処理装置について説明する。第2の実施の形態に係る画像処理装置は、図1に示したプログラム生成装置の処理機能と、この処理機能によって生成された画像処理プログラムを実行して画像処理を行う機能とを備える。
画像処理プログラムの生成処理の前に、1つ以上の学習データ50が用意される。学習データ50には、入力画像51と、入力画像51に対して画像処理を施したときの目標画像52とが含まれる。入力画像51は、例えば、カメラによって被写体を撮像することによって得られる。
図3は、画像処理装置のハードウェア構成例を示す図である。画像処理装置100は、例えば、図3に示すようなコンピュータとして実現される。
RAM102は、画像処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
通信インタフェース108は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース108には、外部デバイスとしてカメラ108aが接続されており、通信インタフェース108は、カメラ108aから送信された画像データをプロセッサに送信する。
図4は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置100は、画像取得部111、学習処理部112、画像処理部113、プログラム記憶部130、フィルタセット記憶部140、学習データ記憶部150および適応度変化記憶部160を有する。
学習処理部112は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部130に保存する。
画像処理部122は、プログラム生成処理の過程で生成された個体に基づく画像処理を、学習データ記憶部150に記憶された入力画像に対して施す。
図6は、適応度変化テーブルの第1の例を示す図である。図6に示す適応度変化テーブル151には、進化過程の前後で、個体に含まれる数が減少した画像フィルタと増加した画像フィルタとのペアごとに、レコードが登録されている。例えば、図6において、“F1->F2”に対応するレコードは、進化過程の前後で画像フィルタF1の数が減少し、画像フィルタF2の数が増加したことを示す。このようなケースとしては、例えば、親個体に含まれていた画像フィルタF1が、子個体において画像フィルタF2に入れ替えられるケースなどが考えられる。
図11(A)は、進化前後で増加した画像フィルタだけに注目した場合の例を示す。図10の表82に示したように、進化により画像フィルタF2は1つ増加し、画像フィルタF5は3つ増加している。そこで、適応度変化登録部124は、適応度変化テーブル152のレコードのうち、画像フィルタF2,F5にそれぞれ対応するレコードに、適応度変化を登録する。図11(A)の例では、適応度変化登録部124は、画像フィルタF2,F5にそれぞれ対応するレコードに、進化前後での適応度の増加量“0.2”をそのまま登録している。
“適応度変化”=“適応度の増加量”/(“増加した画像フィルタの種類の数”ד該当画像フィルタの増加数”) ・・・(1)
例えば、画像フィルタF2に対応する適応度変化は、(0.7-0.5)/(2×1)=0.1と算出される。
“適応度変化”=(-1)ד適応度の増加量”/(“減少した画像フィルタの種類の数”ד該当画像フィルタの減少数”) ・・・(2)
例えば、画像フィルタF1に対応する適応度変化は、(-1)×(0.7-0.5)/(2×1)=-0.1と算出される。
図12(A)~(C)に示す各表においては、縦方向に並列する画像フィルタは、進化前後で数が減少した画像フィルタを示し、横方向に並列する画像フィルタは、進化前後で数が増加した画像フィルタを示す。また、図12(A)~(C)における左側の表は、画像フィルタの増加数または増減数を示し、右側の表は、適応度変化を示す。
“適応度変化”=“適応度の増加量”/(“増減したフィルタの種類の数”ד該当レコードのフィルタ増加数”) ・・・(3)
例えば、図12(C)の右側の表に示すように、“F1->F2”に対応するレコードに登録される適応度変化は、(0.7-0.5)/(4×1)=0.5と算出される。
“選択確率”=(1/n)+(“該当画像フィルタの有効度”-“全画像フィルタの有効度の平均値”)×0.5 ・・・(4)
次に、図13(B)に示す第2の例は、適応度変化テーブル151における“F2->F1”に対応するレコードに登録された適応度変化の累積ヒストグラムの例を示す。図13(B)の例では、累積ヒストグラムのピーク値が閾値Th1以上であるが、そのピーク位置が負の位置となっている。
図14の表において、縦方向に並列する画像フィルタは、進化前後で数が減少した画像フィルタFm(m=1~5)を示し、横方向に並列する画像フィルタは、進化前後で数が増加した画像フィルタFn(n=1~5)を示す。また、縦方向に並列した画像フィルタFmと、横方向に並列した画像フィルタFnとの組み合わせにより、適応度変化テーブル151における1つのレコードが特定される。図14では、1つの画像フィルタFmと1つの画像フィルタFnとに対応付けられた欄には、該当レコードに登録された適応度変化の平均値が設定されている。
[ステップS21]学習制御部121は、学習データの設定のための入力操作を受け付ける。例えば、学習データ記憶部150に記憶された学習データの中から、本処理で使用される学習データが指定される。
[ステップS25]学習制御部121は、選択された2つの親個体の間で交叉を行うことで、2つ以上の所定数の子個体を生成する。
ところで、第2の実施の形態のように、適応度の増加に貢献すると推定される画像フィルタの選択確率を高めた場合には、学習速度が加速される一方、局所的な解探索に陥る可能性も高くなる。局所的な解探索に陥るとは、本来の最適解とは異なる局所解に収束していくことを言う。このような場合には、画像フィルタの選択をランダムな選択に戻し、解の探索範囲を拡大して大局的な解探索が行われるようにする方がよいと考えられる。
図17における点線の折れ線L1は、非ランダム選択モードのままでプログラム生成処理が行われた場合の最大適応度の推移を示す。この折れ線L1に示すように、非ランダム選択モードに設定されていても、最大適応度は増加し続けるとは限らず、例えば図17におけるタイミングT1からタイミングT2までの期間のように、その増加率が停滞することもあり得る。最大適応度の増加率が停滞する原因として、上記のように、局所的な解探索に陥っていることが考えられる。この場合、選択モードをランダム選択モードに切り替えて、より大局的な解探索が行われるようにすることで、最大適応度の増加が促進する可能性が高い。
図19は、選択モード設定処理手順の例を示すフローチャートである。
[ステップS55]モード設定部126aは、モード記憶部170aに設定された選択モードを非ランダム選択モードに更新する。
〔第4の実施の形態〕
第4の実施の形態に係る画像処理装置では、選択モードの内容とその切り替え条件とが、第3の実施の形態に係る画像処理装置100aとは異なる。
[ステップS61]学習制御部121aは、モード記憶部170aを参照して、現在設定されている選択モードを判定する。選択モード1に設定されている場合には、ステップS62の処理が実行される。選択モード2に設定されている場合には、ステップS63の処理が実行される。選択モード3に設定されている場合には、ステップS64の処理が実行される。
図22は、第4の実施の形態における選択モード設定処理手順の例を示すフローチャートである。なお、図22のステップS51,S52の処理内容は、図19のステップS51,S52の処理内容と同じであるので、それらの説明を省略する。
[ステップS73]モード設定部126aは、算出された増加率と、所定の閾値L(ただし、H>L>0)とを比較する。増加率が閾値Lを超えている場合にはステップS74の処理が実行され、増加率が閾値L以下である場合にはステップS74の処理が実行される。
[ステップS75]モード設定部126aは、モード記憶部170aに設定された選択モードを選択モード3に更新する。
図23は、画像フィルタのグループ化の他の例を示す図である。図23では、同じ種類の画像フィルタであって設定されたパラメータが異なる画像フィルタごとに、画像フィルタを4つのグループに分類した例を示している。
1a 生成処理部
1b 情報記録部
1c 確率設定部
1d 記憶部
2a 増減情報
2b 設定情報
3_1,3_2,3_n,3_(n+1) 進化処理
4_1,4_(n+1) 親個体
5_1,5_(n+1) 子個体
Claims (15)
- 画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで前記画像処理プログラムを生成するプログラム生成装置において、
部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録する情報記録部と、
所定期間に前記記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定する確率設定部と、
を有し、
前記確率設定部によって部分プログラムごとに前記選択確率が設定された後、前記進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された前記選択確率にしたがって選択することを特徴とするプログラム生成装置。 - 前記情報記録部は、前記進化処理が実行されるたびに、進化後の個体において進化前より数が増加した部分プログラムのそれぞれに対して、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値に基づく適応度増加量を対応付けて前記記憶部に記録し、
前記確率設定部は、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとに前記選択確率を設定する、
ことを特徴とする請求項1記載のプログラム生成装置。 - 前記確率設定部は、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとの前記貢献度を判定し、判定された前記貢献度が所定値以下の部分プログラムを、その後の前記進化処理での選択対象から除外することを特徴とする請求項2記載のプログラム生成装置。
- 前記情報記録部は、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値を、対応する部分プログラムの進化後の個体における増加数で規格化することで、前記適応度増加量を算出することを特徴とする請求項2または3記載のプログラム生成装置。
- 前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、設定された前記選択確率にしたがって選択させるか、またはランダムに選択させるかを決定する選択制御部をさらに有することを特徴とする請求項1~4のいずれか1項に記載のプログラム生成装置。
- 前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理内容の類似性に基づいて複数のグループに分類され、
前記プログラム生成装置は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する選択制御部を有する、
ことを特徴とする請求項1~4のいずれか1項に記載のプログラム生成装置。 - 前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理の種類が同じで、かつ、設定されるパラメータが異なる部分プログラムが同じグループに属するように分類され、
前記プログラム生成装置は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する選択制御部を有する、
ことを特徴とする請求項1~4のいずれか1項に記載のプログラム生成装置。 - 画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで前記画像処理プログラムを生成するプログラム生成方法において、
コンピュータが、
部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録し、
所定期間に前記記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定し、
部分プログラムごとに前記選択確率が設定された後、前記進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された前記選択確率にしたがって選択する、
ことを特徴とするプログラム生成方法。 - 前記記憶部への記録では、前記進化処理が実行されるたびに、進化後の個体において進化前より数が増加した部分プログラムのそれぞれに対して、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値に基づく適応度増加量を対応付けて前記記憶部に記録し、
前記選択確率の設定では、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとに前記選択確率を設定する、
ことを特徴とする請求項8記載のプログラム生成方法。 - 前記選択確率の設定では、前記所定期間に前記記憶部に蓄積された、部分プログラムごとの前記適応度増加量に基づいて、部分プログラムごとの前記貢献度を判定し、判定された前記貢献度が所定値以下の部分プログラムを、その後の前記進化処理での選択対象から除外することを特徴とする請求項9記載のプログラム生成方法。
- 前記適応度増加量は、進化後の個体に基づく適応度から進化前の個体に基づく適応度を減算した値を、対応する部分プログラムの進化後の個体における増加数で規格化することで算出されることを特徴とする請求項9または10記載のプログラム生成方法。
- 前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、設定された前記選択確率にしたがって選択させるか、またはランダムに選択させるかを決定する、
処理をさらに含むことを特徴とする請求項8~11のいずれか1項に記載のプログラム生成方法。 - 前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理内容の類似性に基づいて複数のグループに分類され、
前記プログラム生成方法は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する処理を含む、
ことを特徴とする請求項8~11のいずれか1項に記載のプログラム生成方法。 - 前記画像処理プログラムに組み込まれる複数の部分プログラムは、処理の種類が同じで、かつ、設定されるパラメータが異なる部分プログラムが同じグループに属するように分類され、
前記プログラム生成方法は、さらに、前記進化処理の実行により算出された適応度の最大値の推移を監視し、前記最大値の増加率に基づいて、その後の前記進化処理の実行時に突然変異により進化後の個体へ組み込む部分プログラムを、進化前の個体における置き換え対象の部分プログラムと同じグループに属する他の部分プログラムの中から設定された前記選択確率にしたがって選択させるか、または、前記複数の部分プログラムのすべての中から選択させるかを決定する処理を含む、
ことを特徴とする請求項8~11のいずれか1項に記載のプログラム生成方法。 - 画像処理プログラムに含まれる部分プログラムの組み合わせを遺伝的プログラミングによって決定することで前記画像処理プログラムを生成するプログラムにおいて、
コンピュータに、
部分プログラムが複数組み合わされた個体を進化させる進化処理が実行されるたびに、進化前の個体と進化後の個体との間で数が変化した部分プログラムと、進化前の個体および進化後の個体のそれぞれを基に算出された適応度の差分とを示す情報を、記憶部に記録し、
所定期間に前記記憶部に蓄積された情報に基づいて、適応度の増加に貢献した貢献度を部分プログラムごとに判定し、判定された貢献度が高いほど設定値が高くなるように部分プログラムごとに選択確率を設定し、
部分プログラムごとに前記選択確率が設定された後、前記進化処理を実行する際に、突然変異により進化後の個体へ組み込む部分プログラムを設定された前記選択確率にしたがって選択する、
処理を実行させることを特徴とするプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14894688.2A EP3156897B1 (en) | 2014-06-11 | 2014-06-11 | Program generation device, program generation method and program |
PCT/JP2014/065470 WO2015189935A1 (ja) | 2014-06-11 | 2014-06-11 | プログラム生成装置、プログラム生成方法およびプログラム |
CN201480079469.7A CN106462397B (zh) | 2014-06-11 | 2014-06-11 | 程序生成装置、程序生成方法 |
JP2016527548A JP6344469B2 (ja) | 2014-06-11 | 2014-06-11 | プログラム生成装置、プログラム生成方法およびプログラム |
US15/342,752 US10540592B2 (en) | 2014-06-11 | 2016-11-03 | Program generation apparatus and program generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/065470 WO2015189935A1 (ja) | 2014-06-11 | 2014-06-11 | プログラム生成装置、プログラム生成方法およびプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/342,752 Continuation US10540592B2 (en) | 2014-06-11 | 2016-11-03 | Program generation apparatus and program generation method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015189935A1 true WO2015189935A1 (ja) | 2015-12-17 |
Family
ID=54833066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/065470 WO2015189935A1 (ja) | 2014-06-11 | 2014-06-11 | プログラム生成装置、プログラム生成方法およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10540592B2 (ja) |
EP (1) | EP3156897B1 (ja) |
JP (1) | JP6344469B2 (ja) |
CN (1) | CN106462397B (ja) |
WO (1) | WO2015189935A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2017056320A1 (ja) * | 2015-10-02 | 2018-08-09 | 富士通株式会社 | プログラム生成装置、プログラム生成方法および生成プログラム |
JP2018136755A (ja) * | 2017-02-22 | 2018-08-30 | 株式会社日立製作所 | プログラム自動生成システム及びプログラム自動生成方法 |
CN108475425A (zh) * | 2016-01-20 | 2018-08-31 | 富士通株式会社 | 图像处理装置、图像处理方法及图像处理程序 |
WO2022249255A1 (ja) * | 2021-05-24 | 2022-12-01 | 日本電信電話株式会社 | プログラム生成装置、プログラム生成方法及びプログラム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6836540B2 (ja) * | 2018-04-12 | 2021-03-03 | ファナック株式会社 | 情報処理装置及び情報処理方法 |
EP3822872A4 (en) * | 2018-07-09 | 2021-08-04 | Fujitsu Limited | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING PROGRAM |
CN111694580B (zh) * | 2019-03-13 | 2023-03-10 | 杭州宏杉科技股份有限公司 | 存储设备升级及初始化的方法、装置、电子设备 |
CN112017099B (zh) * | 2020-09-03 | 2023-12-15 | 山东省计算中心(国家超级计算济南中心) | 一种程序代码在图像中隐藏、解析的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11282822A (ja) * | 1998-03-26 | 1999-10-15 | Toshiba Corp | 画像処理プログラム合成方法及びその装置並びに最適解探索方法及びその装置 |
JP2010244363A (ja) * | 2009-04-07 | 2010-10-28 | Nikon Corp | 遺伝的処理装置、遺伝的処理方法およびプログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6532453B1 (en) * | 1999-04-12 | 2003-03-11 | John R. Koza | Genetic programming problem solver with automatically defined stores loops and recursions |
US7570787B2 (en) | 2004-06-24 | 2009-08-04 | Ishida Co., Ltd. | X-ray inspection apparatus and method for creating an image processing procedure for the X-ray inspection apparatus |
JP2006178857A (ja) | 2004-12-24 | 2006-07-06 | Yokohama National Univ | 画像処理装置 |
JP2007102634A (ja) * | 2005-10-06 | 2007-04-19 | Sony Corp | 画像処理装置 |
JP5022979B2 (ja) * | 2007-07-12 | 2012-09-12 | 株式会社リコー | 画像処理装置、画像処理方法およびプログラム |
US8253824B2 (en) * | 2007-10-12 | 2012-08-28 | Microsoft Corporation | Multi-spectral imaging |
US8315158B2 (en) * | 2008-05-01 | 2012-11-20 | Siemens Aktiengesellschaft | Methods and apparatus for decentralized rapid recovery for Ethernet rings |
WO2009139161A1 (ja) * | 2008-05-15 | 2009-11-19 | 株式会社ニコン | 画像処理装置、画像処理方法、処理装置、処理方法およびプログラム |
US20100179930A1 (en) * | 2009-01-13 | 2010-07-15 | Eric Teller | Method and System for Developing Predictions from Disparate Data Sources Using Intelligent Processing |
-
2014
- 2014-06-11 WO PCT/JP2014/065470 patent/WO2015189935A1/ja active Application Filing
- 2014-06-11 JP JP2016527548A patent/JP6344469B2/ja active Active
- 2014-06-11 CN CN201480079469.7A patent/CN106462397B/zh active Active
- 2014-06-11 EP EP14894688.2A patent/EP3156897B1/en active Active
-
2016
- 2016-11-03 US US15/342,752 patent/US10540592B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11282822A (ja) * | 1998-03-26 | 1999-10-15 | Toshiba Corp | 画像処理プログラム合成方法及びその装置並びに最適解探索方法及びその装置 |
JP2010244363A (ja) * | 2009-04-07 | 2010-10-28 | Nikon Corp | 遺伝的処理装置、遺伝的処理方法およびプログラム |
Non-Patent Citations (2)
Title |
---|
CHUNLEI CUI: "An Adaptive Mutation Method for GA Based on Relative Importance", ADVANCED COMPUTER THEORY AND ENGINEERING(ICACTE), 2010 3RD INTERNATIONAL CONFERENCE ON, vol. 5, 22 August 2010 (2010-08-22), pages 111 - 113, XP031758757 * |
See also references of EP3156897A4 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2017056320A1 (ja) * | 2015-10-02 | 2018-08-09 | 富士通株式会社 | プログラム生成装置、プログラム生成方法および生成プログラム |
CN108475425A (zh) * | 2016-01-20 | 2018-08-31 | 富士通株式会社 | 图像处理装置、图像处理方法及图像处理程序 |
CN108475425B (zh) * | 2016-01-20 | 2022-03-08 | 富士通株式会社 | 图像处理装置、图像处理方法及计算机可读取的记录介质 |
JP2018136755A (ja) * | 2017-02-22 | 2018-08-30 | 株式会社日立製作所 | プログラム自動生成システム及びプログラム自動生成方法 |
WO2022249255A1 (ja) * | 2021-05-24 | 2022-12-01 | 日本電信電話株式会社 | プログラム生成装置、プログラム生成方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6344469B2 (ja) | 2018-06-20 |
CN106462397A (zh) | 2017-02-22 |
EP3156897B1 (en) | 2023-04-19 |
EP3156897A4 (en) | 2017-05-10 |
EP3156897A1 (en) | 2017-04-19 |
US10540592B2 (en) | 2020-01-21 |
JPWO2015189935A1 (ja) | 2017-04-20 |
CN106462397B (zh) | 2019-10-29 |
US20170053204A1 (en) | 2017-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6344469B2 (ja) | プログラム生成装置、プログラム生成方法およびプログラム | |
US10303447B2 (en) | Program generating apparatus and method therefor | |
JP6511986B2 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
JP6303332B2 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
JP6631641B2 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
WO2017068675A1 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
JPWO2019026104A1 (ja) | 情報処理装置、情報処理プログラム及び情報処理方法 | |
JP6468356B2 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
CN107122792B (zh) | 基于学习预测的室内布局估计方法及系统 | |
CN111626349A (zh) | 一种基于深度学习的目标检测方法和系统 | |
CN110060278A (zh) | 基于背景减法的运动目标的检测方法及装置 | |
Sun et al. | Deep learning-assisted automated sewage pipe defect detection for urban water environment management | |
JP6729810B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
KR20160035104A (ko) | 오브젝트 검출 방법 및 오브젝트 검출 장치 | |
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 | |
US11151458B2 (en) | Apparatus and method for generating image processing program using genetic programming | |
JP2015158837A (ja) | 動体検出装置、動体検出方法及び制御プログラム | |
JP6331914B2 (ja) | アルゴリズム生成装置、アルゴリズム生成方法及びアルゴリズム生成用コンピュータプログラム | |
JP5150862B2 (ja) | 画像処理装置、方法、プログラム、および撮像システム | |
JP2012098983A (ja) | 物体検出装置、物体検出方法及びプログラム | |
JP2010231532A (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: 14894688 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2016527548 Country of ref document: JP Kind code of ref document: A |
|
REEP | Request for entry into the european phase |
Ref document number: 2014894688 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2014894688 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |