WO2018173257A1 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
WO2018173257A1
WO2018173257A1 PCT/JP2017/012020 JP2017012020W WO2018173257A1 WO 2018173257 A1 WO2018173257 A1 WO 2018173257A1 JP 2017012020 W JP2017012020 W JP 2017012020W WO 2018173257 A1 WO2018173257 A1 WO 2018173257A1
Authority
WO
WIPO (PCT)
Prior art keywords
image processing
learning data
processing program
fitness
resolution
Prior art date
Application number
PCT/JP2017/012020
Other languages
English (en)
French (fr)
Inventor
長門毅
岡本浩明
肥塚哲男
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2019506890A priority Critical patent/JP6798607B2/ja
Priority to PCT/JP2017/012020 priority patent/WO2018173257A1/ja
Publication of WO2018173257A1 publication Critical patent/WO2018173257A1/ja
Priority to US16/567,408 priority patent/US11182650B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2111Selection of the most significant subset of features by using evolutionary computational techniques, e.g. genetic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Definitions

  • the present invention relates to an information processing apparatus, an information processing method, and an information processing program.
  • an appearance inspection apparatus In the appearance inspection of industrial products, the appearance of industrial products is photographed using an imaging device to determine the presence or absence of defects.
  • FA Vectory Automation
  • noise, shadow, brightness fluctuations, etc. according to the shooting environment in the field often affect the shot image. Therefore, it is desired to realize processing that is robust to environmental changes.
  • an appearance inspection device that inspects the appearance of industrial products, it is necessary to reconstruct the image processing program when the inspection environment changes due to a change in inspection object or improvement of the appearance inspection device. Sometimes. Therefore, an appearance inspection apparatus is required to be able to easily construct an image processing method.
  • An image processing apparatus used for an appearance inspection apparatus obtains an output image by processing an image captured by a camera or the like with an image processing filter.
  • a technique is known in which an image processing filter is automatically generated by performing evolutionary calculation based on genetic programming (GP).
  • GP genetic programming
  • an individual representing an image processing program is represented by a tree structure having one or more nodes each corresponding to an image processing program element (image processing filter).
  • An individual is generated, and image processing based on a child individual is executed using an input image given as learning data.
  • the fitness of the child individual is calculated by comparing the processing result with a target processing result (for example, a target image) given as learning data.
  • the image processing program is optimized by selecting an individual to be replaced at the time of generation change based on the fitness (see, for example, Non-Patent Document 1).
  • the fitness of a child individual is calculated at each generation change.
  • many generation changes are performed.
  • the overall time required for the fitness calculation process increases.
  • the image processing program element image processing filter
  • the image processing filter may be a spatial filter, and as the target image size increases, the fitness calculation time becomes longer. As described above, when the time required for the fitness calculation is long, the time until an optimum individual is obtained increases.
  • an object of the present invention is to provide an information processing apparatus, an information processing method, and an information processing program capable of reducing the time required for determining a next-generation image processing filter by genetic programming. .
  • the information processing apparatus is an information processing apparatus that performs image processing on an image captured by the imaging apparatus using an image processing program having a tree structure, and based on the image processing program, genetic programming is performed.
  • a generation unit that generates a candidate for a next-generation image processing program, and learning data including at least the input image among learning data including the input image and a target processing result.
  • a first evaluation unit that evaluates the fitness of candidates of the next-generation image processing program, and the next-generation image processing program candidates that are narrowed down based on the evaluation result of the first evaluation unit.
  • a second evaluation unit that evaluates the fitness of candidate image processing programs for generations using the learning data; and an evaluation result of the second evaluation unit. It includes a determination unit that determines a next-generation image processing program, the.
  • the time required for determining next-generation image processing filters by genetic programming can be shortened.
  • FIG.5 S11 It is a figure which shows the outline
  • FIG. 1 is a diagram showing an outline of a generation processing procedure of an image processing program.
  • the learning data 20 includes an input image 21 and a processing result when the image processing is performed on the input image 21 (the target image 22 in the first embodiment).
  • the input image 21 is obtained, for example, by capturing a subject with a camera.
  • an individual In an image processing program generation process by genetic programming, an individual (indicated by a white circle in FIG. 1) is configured by combining one or more image processing filters.
  • an individual is defined by a tree structure, and an image processing filter is incorporated in each node of the tree structure.
  • “F” indicates an image processing filter incorporated in a node
  • “I” indicates an input terminal
  • “O” indicates an output terminal.
  • a plurality of image processing filters that can be incorporated into an individual are also prepared in advance.
  • the generation processing of the image processing program by genetic programming is executed as follows, for example.
  • step S100 a plurality of initial individuals included in the population 11 are generated.
  • Each initial individual node incorporates an image processing filter randomly selected from a plurality of image processing filters prepared in advance.
  • the fitness is calculated for each generated initial individual. Details of the fitness calculation process will be described later.
  • step S102 a certain number of parent individuals (for example, two in FIG. 1) are randomly selected from the population 11.
  • step S104 the process of evolution process is performed on the selected fixed number (two) of the parent individuals, thereby generating two or more constant number of child individuals.
  • crossover processing and mutation processing are performed on two parent individuals.
  • Three or more child individuals may be generated by performing different crossover processing and mutation processing on the two parent individuals. That is, the number of child individuals generated is equal to or greater than the number of parent individuals selected from the population 11.
  • step S106 the fitness is calculated for each generated child individual. Details of the fitness calculation process will be described later.
  • the individual is output as a final image processing program, and the program generation process is performed. finish.
  • step S108 the survival selection is made from the generated individual group 12 including each child individual and the original two parent individuals. Done.
  • an individual having the maximum calculated fitness is selected from the individual group 12.
  • one individual is selected from the remaining individuals in the individual group 12 by a predetermined method. For example, an individual is selected from the remaining individuals with a probability corresponding to the fitness (roulette selection).
  • Two individuals selected by such survival selection are replaced with two individuals selected as parent individuals among the individuals included in the population 11 in step S110. Thereby, the individuals included in the population 11 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.
  • an application in which an image obtained by capturing a product is subjected to image processing to obtain a desired effect can be considered.
  • the image of the appearance of the product is subjected to image processing to extract a part where a defect has occurred and a part to be aligned.
  • an image processing program that can be used for such purposes simply by preparing the input image 21 and the corresponding target image 22 in advance. Also, by preparing a plurality of pairs (learning data 20) of the input image 21 and the target image 22 having different imaging environments, an image processing program having high robustness against changes in the imaging environment may be automatically generated. it can.
  • FIG. 2 schematically shows an example of the hardware configuration of the image processing apparatus 100.
  • the image processing apparatus 100 according to the first embodiment is realized as a computer (information processing apparatus) as illustrated in FIG. 2, 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), a PLD (Programmable Logic Device), or the like.
  • the processor 101 may be a combination of two or more elements among CPU, MPU, DSP, ASIC, and PLD.
  • a RAM 102 and a plurality of devices (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 a 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.
  • 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 communication interface 107, a network interface 108, and the like.
  • 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 104a include a liquid crystal display and an organic EL (ElectroLuminescence) display.
  • the input device 105 a is connected to the input interface 105.
  • the input interface 105 transmits a signal output from the input device 105a to the processor 101.
  • Examples of the input device 105a include a keyboard and a pointing device.
  • Examples of pointing devices include a mouse, a touch panel, a tablet, a touch pad, and a trackball.
  • the portable recording medium 106a is detachable 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.
  • the portable recording medium 106a includes an optical disk, a magneto-optical disk, a semiconductor memory, and the like.
  • the communication interface 107 transmits / receives data to / from a connected external device.
  • a camera 107 a as an imaging device is connected to the communication interface 107, and the communication interface 107 transmits image data transmitted from the camera 107 a to the processor 101.
  • the network interface 108 transmits and receives data to and from other devices via the network.
  • FIG. 3 is a block diagram (functional 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, an image processing unit 112, a program generation unit 120, a program storage unit 130, a learning data storage unit 141, and a low resolution learning data storage unit 142.
  • the processing of the image acquisition unit 111, the image processing unit 112, and the program generation unit 120 is realized by, for example, the processor 101 of the image processing apparatus 100 executing a predetermined program.
  • Part of the processing of the image processing unit 112 is realized by the processor 101 of the image processing apparatus 100 executing an image processing program stored in the program storage unit 130.
  • the program storage unit 130, the learning data storage unit 141, and the low-resolution learning data storage unit 142 are realized as storage areas of the HDD 103 of the image processing apparatus 100, for example.
  • the image acquisition unit 111 acquires image data captured by the camera 107 a from the camera 107 a and outputs the acquired data to the program generation unit 120 or the image processing unit 112.
  • the program generation unit 120 generates an image processing program by genetic programming, and stores the generated image processing program in the program storage unit 130. Details of the program generation unit 120 will be described later.
  • the image processing unit 112 acquires data of an image captured by the camera 107a via the image acquisition unit 111.
  • the image processing unit 112 performs image processing on the acquired image according to an image processing program stored in the program storage unit 130.
  • the processed image is displayed on the display device 104a, for example.
  • the program storage unit 130 stores the image processing program generated by the program generation unit 120.
  • the learning data storage unit 141 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 an image captured by the camera 107a connected to the image processing apparatus 100, for example.
  • an image is output as a result of processing using a generated image processing program.
  • information other than an image is output as a result of processing. It may be.
  • position information indicating a region in the input image, a classification result or an evaluation result of the input image, and the like can be considered.
  • the learning data may include information other than the image indicating the target processing result instead of the target image.
  • the low-resolution learning data storage unit 142 stores 1 data (low-resolution learning data) obtained by reducing the resolution of each input image and target image data of the learning data stored in the learning data storage unit 141.
  • 1 data low-resolution learning data
  • the program generation unit 120 includes a learning control unit 121 as a generation unit and a determination unit, an fitness calculation unit 122 as a first evaluation unit and a second evaluation unit, and a resolution reduction unit 123 as a creation unit.
  • the learning control unit 121 comprehensively controls the entire program generation process in the program generation unit 120. For example, the learning control unit 121 generates an initial individual to be included in the population 11 (S100), an individual evolution process (S104), a survival selection based on fitness (S108), and a final image shown in FIG. Processing such as output of the processing program, update of the population 11 by the survival-selected individuals (S110), and the like are executed.
  • the fitness calculation unit 122 calculates fitness for evaluating an individual. Specifically, the fitness calculation unit 122 performs learning data stored in the learning data storage unit 141 and low resolution learning data stored in the low resolution learning data storage unit 142 according to the situation. The fitness of each image processing program is calculated by properly using the data. For example, when low-resolution learning data is used, the fitness calculation unit 122 performs image processing on the input image included in the low-resolution learning data according to the image processing program, and image processing is performed on the obtained image. The similarity with the target image corresponding to the input image is calculated as the fitness of the individual.
  • the fitness calculation unit 122 When using learning data, the fitness calculation unit 122 performs image processing on the input image included in the learning data according to the image processing program, and corresponds to the obtained image and the input image that has been subjected to image processing. The similarity with the target image is calculated as the fitness of the individual.
  • the resolution reduction unit 123 acquires the learning data stored in the learning data storage unit 141, and reduces the input image and the target image included in the learning data at a predetermined reduction rate s.
  • the reduction ratio s is predetermined.
  • FIG. 4 is a flowchart showing details of the program generation process executed by the image processing apparatus 100.
  • the learning control part 121 receives the input operation for the setting of the data for learning.
  • learning data to be used in this process is specified from the learning data stored in the learning data storage unit 141.
  • the learning data used in this process is registered in the learning data storage unit 141.
  • the resolution reduction unit 123 acquires learning data from the learning data storage unit 141, and lowers the resolution of the acquired learning data, thereby creating low-resolution learning data.
  • the resolution reduction unit 123 reduces the resolution of the input image and the target image included in the learning data using a predetermined reduction rate s.
  • the resolution reducing unit 123 stores the learning data (low resolution learning data) whose resolution has been reduced in the low resolution learning data storage unit 142.
  • the input image and the target image whose resolution has been reduced are referred to as “low-resolution input image” and “low-resolution target image”.
  • step S14 the learning control unit 121 generates a predetermined number of initial individuals to be included in the population 11 (see step S100 in FIG. 1).
  • Each initial individual is generated by randomly selecting and combining image processing filters for each node of the tree structure.
  • the tree structure of each initial individual is selected at random from, for example, a plurality of predetermined tree structures. Alternatively, the tree structure itself may be determined randomly.
  • step S ⁇ b> 16 the learning control unit 121 selects one individual from the population 11, and calculates the fitness using the low-resolution learning data for the selected individual to the fitness calculation unit 122. Ask.
  • the fitness calculation unit 122 calculates (evaluates) the fitness of the individual selected in step S16 using the low-resolution learning data. Specifically, the fitness calculation unit 122 performs image processing on the low-resolution input image included in the low-resolution learning data according to the image processing program corresponding to the selected individual. At this time, the parameters of the image processing filter, which is a component of the image processing program, are adjusted according to the reduction rate s (for example, the kernel diameter of the spatial filter is reduced according to the reduction rate s). The fitness calculation unit 122 calculates the similarity between the image obtained by the image processing and the low resolution target image associated with the low resolution input image as the fitness of the selected individual. When a plurality of pieces of low-resolution learning data are registered, for example, the fitness calculation unit 122 calculates a similarity using each low-resolution learning data, and averages the similarities. Is the fitness of an individual.
  • step S20 the learning control unit 121 determines whether or not all individuals included in the population 11 have been selected. If the determination in step S20 is negative, that is, if there is an unselected individual, the learning control unit 121 returns to step S16 and selects the next individual. On the other hand, if the determination in step S20 is affirmative, that is, if all the individuals have been selected, the learning control unit 121 proceeds to step S22.
  • the fitness is calculated using the low-resolution learning data for all individuals, and when the process proceeds to step S22, the learning control unit 121 identifies (narrows down) the top N individuals with the highest fitness.
  • the value of N is set in advance.
  • step S24 the learning control unit 121 selects any one of the identified N individuals, and requests the fitness calculation unit 122 to calculate the fitness of the selected individual using the learning data. To do.
  • the fitness calculation unit 122 calculates (evaluates) the fitness of the individual selected in step S24 using the learning data. Specifically, the fitness calculation unit 122 performs image processing on the input image included in the learning data according to an image processing program corresponding to the selected individual. The fitness calculation unit 122 calculates the similarity between the image obtained by the image processing and the target image associated with the input image as the fitness of the selected individual. When a plurality of learning data are registered, the fitness calculation unit 122 calculates, for example, the similarity using each learning data, and the average value of the similarities is calculated as the individual fitness. To do.
  • step S28 the learning control unit 121 determines whether all of the N individuals have been selected. If the determination in step S28 is negative, that is, if there is an unselected individual, the learning control unit 121 returns to step S24 and selects the next individual. On the other hand, if the determination in step S28 is affirmative, that is, if all N individuals have been selected, the learning control unit 121 proceeds to step S30.
  • the learning control unit 121 randomly selects two parent individuals from the individuals included in the population 11 (step S102 in FIG. 1). reference).
  • step S32 the learning control unit 121 generates a child individual by an evolution process (see step S104 in FIG. 1).
  • the learning control unit 121 generates two or more predetermined number of child individuals by performing crossover between the two selected parent individuals.
  • the learning control unit 121 generates a mutation in any node of the generated child individual, and replaces the image processing filter incorporated in the node of the original child individual with another image processing filter.
  • step S34 the learning control unit 121 selects one of the child individuals, and requests the fitness calculation unit 122 to calculate the fitness of the selected individual using the low-resolution learning data. .
  • step S36 the fitness calculation unit 122 calculates (evaluates) the fitness of the individual selected in step S34 using the low-resolution learning data.
  • the specific process of step S36 is the same as step S18 described above.
  • step S38 the learning control unit 121 determines whether all child individuals have been selected. If the determination in step S38 is negative, that is, if there is an unselected child individual, the learning control unit 121 returns to step S34 and selects the next child individual. On the other hand, if the determination in step S38 is affirmative, that is, if all the child individuals have been selected, the learning control unit 121 proceeds to step S40.
  • the fitness is calculated using the low-resolution learning data for all the child individuals, and when the process proceeds to step S40, the learning control unit 121 identifies (narrows down) the child individuals with the highest fitness.
  • the value of M is set in advance, and may be the same value as N described above, or may be a different value.
  • step S42 the learning control unit 121 selects any one of the identified M child individuals, and calculates the fitness of the selected child individuals using the learning data. To ask.
  • step S44 the fitness calculation unit 122 calculates (evaluates) the fitness of the child individual selected in step S42 using the learning data.
  • the specific process in step S44 is the same as that in step S26 described above.
  • step S46 the learning control unit 121 determines whether all of the M child individuals have been selected. If the determination in step S46 is negative, that is, if there is an unselected child individual, the learning control unit 121 returns to step S42 and selects the next child individual. On the other hand, if the determination in step S46 is affirmative, that is, if all M child individuals have been selected, the learning control unit 121 proceeds to step S48.
  • the processes in steps S34 to S46 correspond to step S106 in FIG.
  • the fitness calculation unit 122 carefully selects the child individuals based on the result of calculating the fitness using the low-resolution learning data, and only the carefully selected child individuals. The fitness is calculated using high-resolution learning data. For this reason, it is possible to perform the fitness calculation process in a short time as compared with the case where the fitness calculation process using the high-resolution learning data is performed for all the child individuals.
  • the learning control unit 121 specifies the maximum fitness from the fitness of each parent individual selected in step S30 and the fitness of each child individual calculated in step S44. It is determined whether the fitness is greater than a predetermined threshold. The learning control unit 121 proceeds to the process of step S54 when the maximum fitness is greater than the threshold value, and proceeds to the process of step S50 when the maximum fitness is equal to or less than the threshold value.
  • the learning control unit 121 selects an individual having the maximum fitness from the parent individuals selected in step S30 and the child individuals generated in step S32 as the individuals to survive. (See step S108 in FIG. 1). Further, the learning control unit 121 selects one individual to survive from the remaining individuals. In this selection, an individual that survives with a probability corresponding to the fitness of each remaining individual is selected (roulette selection).
  • step S52 the learning control unit 121 replaces the parent individual selected in step S30 among the individuals included in the population 11 with the two individuals selected in step S50 (see step S110 in FIG. 1). . Thereby, the generation of the population 11 is updated. Thereafter, the process returns to step S30, and the processes after step S30 are executed as described above.
  • step S48 determines whether the determination in step S48 is affirmed and the process proceeds to step S54.
  • the learning control unit 121 stores in the program storage unit 130 an image processing program corresponding to the individual whose fitness is determined to be greater than the threshold value in step S48. To end the process.
  • the learning control unit 121 is based on the image processing program (parent individual) included in the population 11 and is a next-generation image processing program in genetic programming.
  • Candidate child individual
  • the fitness calculation unit 122 calculates the fitness of the child individual using the low-resolution learning data obtained by reducing the resolution of the learning data (S36), and narrows down the child individuals based on the calculation result (S36).
  • S40 The fitness of the narrowed child individuals is calculated using the learning data (S44).
  • the learning control unit 121 determines a new image processing program to be used based on the calculation result of the fitness calculation unit 122 and stores it in the program storage unit 130 (S54).
  • the simple fitness calculation process using the low-resolution learning data is performed for all of the child individuals, but based on the fitness calculated by the simple calculation process.
  • the child individual is carefully selected, and the fitness calculation process using the high-resolution learning data is performed only on the carefully selected child individual.
  • a part of carefully selected fitness calculation processing using high-resolution learning data This can be done only for the offspring. Therefore, since the number of fitness calculation processes using high-resolution learning data can be reduced, the time required for the process by the fitness calculation unit 122 can be shortened.
  • the time required for the processing by the fitness calculation unit 122 can be reduced by 50% by setting the reduction rate s to 0.5. Therefore, according to the first embodiment, it is possible to reduce the time required to determine a new image processing program to be used.
  • the more complex the tree structure of the child individual the longer the processing time of the input image using the image processing program indicated by the tree structure.
  • the processing time is reduced. be able to.
  • the time required to determine the image processing program can be within an allowable range.
  • steps S16 to S28 the same processes as in steps S34 to S46 are performed when calculating the fitness of the initial individual.
  • the time required to calculate the fitness of the initial individual can be shortened. From this point as well, the time required to determine a new image processing program to be used can be shortened.
  • the resolution reducing unit 123 reduces the resolution of the learning data
  • the above-described processing of FIG. 4 can be realized only by preparing the learning data.
  • the present invention is not limited to this, and the resolution reduction unit 123 may be omitted from the image processing apparatus 100. In this case, the image processing apparatus 100 may acquire the low resolution learning data from the outside.
  • the resolution reduction unit 123 reduces the resolution of both the input image and the target image included in the learning data.
  • the present invention is not limited to this. That is, the resolution reduction unit 123 may reduce the resolution of at least the input image.
  • FIG. 5 is a flowchart showing processing of the image processing apparatus 100 according to the second embodiment.
  • the process of step S11 (a process of calculating the reduction ratio s) is added in the second embodiment. Yes.
  • steps S22 ', S28', S40 ', and S46' are executed instead of steps S22, S28, S40, and S46 in FIG.
  • the second embodiment will be described with a focus on differences from the first embodiment.
  • the reduction ratio s is determined in advance.
  • step S11 in FIG. 5 the process according to the flowchart in FIG. 6 is executed.
  • the reduction rate s is automatically determined.
  • step S60 the learning control unit 121 sets an allowable error ⁇ .
  • the allowable error ⁇ a value input in advance is used.
  • step S62 the learning control unit 121 calculates the fitness C of the image processing program included in the population using the learning data.
  • the fitness C is calculated using each learning data.
  • step S64 the learning control unit 121 sets the variable B to 0.9.
  • step S66 the resolution reduction unit 123 reduces the resolution of the learning data at the reduction rate B. Note that when there are a plurality of learning data, the resolution of each learning data is reduced.
  • step S68 the learning control unit 121 calculates the fitness c of the image processing program included in the population 11 using the learning data whose resolution has been reduced in step S66. Even in this case, when there are a plurality of learning data with reduced resolution, the fitness c is calculated using the learning data with reduced resolution.
  • step S70 the learning control unit 121 calculates an error (error average) d between the fitness C and the fitness c. If there is a plurality of learning data, the difference between the fitness C calculated using the first learning data and the fitness calculated using the first learning data with a reduced resolution A plurality of differences are calculated, such as a fitness difference C calculated using the second learning data, a fitness difference calculated using the second learning data with a reduced resolution, and so on. An average of a plurality of differences is defined as an error average d.
  • step S72 it is determined whether d is larger than ⁇ . If the determination in step S72 is negative, the process proceeds to step S74, and the learning control unit 121 sets the reduction rate s as the current value of the variable B. Next, in step S76, the learning control unit 121 decreases the variable B by 0.1 and returns to step S66. When returning to step S66, the process after step S66 is executed using the newly set variable B. Then, when the determination in step S72 is affirmed, all the processes in FIG. 6 (all processes in step S11) are terminated.
  • step S11 the process of FIG. 6
  • step S22 ′ of FIG. 5 individuals with the highest fitness level are identified in the top n%, and in step S40 ′, child individuals with the fitness level in the top m% are identified.
  • step S40 ′ child individuals with the fitness level in the top m% are identified.
  • step S11 of the second embodiment may be performed between the processes of step S10 and step S12 of FIG. 4 described in the first embodiment.
  • the above processing functions can be realized by a computer.
  • a program describing the processing contents of the functions that the processing apparatus should have is provided.
  • the program describing the processing contents can be recorded on a computer-readable recording medium (except for a carrier wave).
  • the program When the program is distributed, for example, it is sold in the form of a portable recording medium such as a DVD (Digital Versatile Disc) or CD-ROM (Compact Disc Read Only Memory) on which the program is recorded. 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.
  • a portable recording medium such as a DVD (Digital Versatile Disc) or CD-ROM (Compact Disc Read Only Memory) on which the program is recorded. 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. Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.
  • Image processing device information processing device
  • Camera imaging device
  • Learning control unit generation unit, determination unit
  • fitness calculation unit first evaluation unit, second evaluation unit
  • Low resolution part incrementation part

Landscapes

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

Abstract

学習制御部は、母集団に含まれる画像処理プログラム(親個体)に基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補(子個体)を生成する(S32)。また、適応度算出部は、学習用データを低解像度化した低解像学習用データを用いて、子個体の適応度を算出し(S36)、算出結果に基づいて、子個体を絞り込み(S40)、絞り込んだ子個体の適応度を学習用データを用いて算出する(S44)。そして、学習制御部121は、適応度算出部122の算出結果に基づいて、新たに利用する画像処理プログラムを決定し、プログラム記憶部130に格納する(S54)。

Description

情報処理装置、情報処理方法及び情報処理プログラム
 本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
 工業製品の外観検査などでは、撮像装置を用いて工業製品の外観を撮影し、欠陥の有無を判定している。ここで、FA(Factory Automation)分野においては、現場の撮影環境に応じたノイズや、影、明るさの変動などが撮影画像に影響を与えることが多く、欠陥部を抽出する画像処理プログラムには、環境変化にロバストな処理の実現が望まれている。また、工業製品の外観を検査する外観検査装置を運用する場合、検査対象の変更や、外観検査装置の改良に起因して検査環境が変化したときに、画像処理プログラムの再構築が必要になることがある。そのため、外観検査装置においては、画像処理方法を容易に構築できることが求められている。
 外観検査装置に使用される画像処理装置では、カメラなどで撮影した画像を画像処理フィルタで画像処理することで出力画像を得ている。ここで、従来の画像処理装置では、画像処理フィルタを遺伝的プログラミング(Genetic Programming:GP)に基づいた進化的計算を行って自動生成する技術が知られている。この技術では、画像処理プログラムを示す個体は、それぞれが画像処理のプログラム要素(画像処理フィルタ)に対応する1以上のノードを有する木構造で表現されており、ある世代の親個体に基づいて子個体が生成され、学習用データとして与えられた入力画像を用いて、子個体に基づく画像処理が実行される。そして、その処理結果と、学習用データとして与えられた目標となる処理結果(例えば、目標画像)との比較によって、子個体の適応度が算出される。また、適応度に基づいて世代交代の際に入れ替える個体が選択されることで、画像処理プログラムが最適化されていく(例えば、非特許文献1等参照)。
青木紳也、長尾智晴、「木構造画像変換の自動構築法ACTIT」、情報メディア学会誌Vol.53,No.6、1999年6月20日、p.890-892
 遺伝的プログラミングによる画像処理プログラムの生成過程では、世代交代のたびに子個体の適応度が算出される。ここで、最終的に高性能の画像処理プログラムを得るためには多くの世代交代が行われるが、世代交代の回数が多くなるほど、適応度の算出処理にかかる全体の時間が長くなる。また、高機能の画像処理プログラムを生成するために個体の木構造が複雑になるほど、木構造に基づく画像処理も複雑になり、それに伴って個々の子個体の適応度を算出する時間も長くなる。また、画像処理のプログラム要素(画像処理フィルタ)が空間フィルタであることもあり、対象となる画像サイズが大きくなると、適応度の計算時間が長くなる。このように適応度算出にかかる時間が長くなると、最適な個体が得られるまでの時間が増大してしまう。
 1つの側面では、本発明は、遺伝的プログラミングによる次世代の画像処理フィルタの決定に要する時間を短縮することが可能な情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
 一つの態様では、情報処理装置は、撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理装置であって、前記画像処理プログラムに基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補を生成する生成部と、入力画像と目標となる処理結果とを含む学習用データのうち少なくとも前記入力画像を低解像度化した低解像学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を評価する第1評価部と、前記第1評価部の評価結果に基づいて、前記次世代の画像処理プログラムの候補を絞り込み、絞り込んだ前記次世代の画像処理プログラムの候補の適応度を、前記学習用データを用いて評価する第2評価部と、前記第2評価部の評価結果に基づいて、次世代の画像処理プログラムを決定する決定部と、を備えている。
 遺伝的プログラミングによる次世代の画像処理フィルタの決定に要する時間を短縮することができる
第1の実施形態に係る画像処理プログラム生成処理の概要を示す図である。 画像処理装置のハードウェア構成を示す図である。 画像処理装置の機能ブロック図である。 第1の実施形態に係る画像処理装置の処理を示すフローチャートである。 第2の実施形態に係る画像処理装置の処理を示すフローチャートである。 図5のステップS11の処理を示すフローチャートである。
≪第1の実施形態≫
 以下、情報処理装置の第1の実施形態について、図1~図4に基づいて詳細に説明する。
 まず、図1に基づいて、遺伝的プログラミングによる画像処理プログラムの生成処理の概要について説明する。
(画像処理プログラム生成処理の概要)
 図1は、画像処理プログラムの生成処理手順の概要を示す図である。前提として、画像処理プログラムの生成処理の前に、1つ以上の学習用データ20が用意される。学習用データ20には、入力画像21と、入力画像21に対して画像処理を施したときの処理結果(本第1の実施形態では目標画像22)とが含まれる。入力画像21は、例えば、カメラによって被写体を撮像することによって得られる。
 遺伝的プログラミングによる画像処理プログラムの生成処理では、個体(図1において白丸で表記)は、1つ以上の画像処理フィルタを組み合わせて構成される。例えば、図1の左上に示すように、個体は木構造で定義され、木構造の各ノードに画像処理フィルタが組み込まれる。なお、図1の左上において、“F”はノードに組み込まれた画像処理フィルタを示し、“I”は入力端子を示し、“O”は出力端子を示す。また、個体に組み込むことが可能な複数の画像処理フィルタも、あらかじめ用意される。
 遺伝的プログラミングによる画像処理プログラムの生成処理は、例えば、以下のように実行される。
 まず、ステップS100において、母集団11に含められる複数の初期個体が生成される。各初期個体のノードには、あらかじめ用意された複数の画像処理フィルタの中からランダムに選択された画像処理フィルタが組み込まれる。また、生成された各初期個体について、適応度が算出される。なお、適応度の算出処理の詳細については後述する。
 次いでステップS102では、母集団11の中から、一定数(図1では、例えば2つ)の親個体がランダムに選択される。次いで、ステップS104では、選択された一定数(2つ)の親個体に対して進化過程の処理が施されることで、2以上の一定数の子個体が生成される。進化過程では、2つの親個体に対して交叉処理および突然変異処理が行われる。2つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、3つ以上の子個体が生成されてもよい。すなわち、生成される子個体の数は、母集団11から選択される親個体の数以上となる。
 次いで、ステップS106では、生成された各子個体について、適応度が算出される。なお、適応度の算出処理の詳細については、後述する。
 ここで、生成された子個体および元の親個体のうちのいずれかの適応度が所定の閾値以上であった場合には、その個体が最終的な画像処理プログラムとして出力され、プログラム生成処理が終了する。
 一方、これらすべての個体の適応度が所定の閾値未満であった場合には、ステップS108において、生成された各子個体および元の2つの親個体を含む個体群12の中から、生存選択が行われる。この生存選択では、個体群12の中から、算出された適応度が最大の個体が選択される。また、個体群12内の残りの個体の中から、所定の方法で個体が1つ選択される。例えば、残りの個体の中から、適応度に応じた確率で個体が選択される(ルーレット選択)。
 このような生存選択によって選択された2つの個体は、ステップS110において、母集団11に含まれる個体のうち、親個体として選択された2つの個体と入れ替えられる。これにより、母集団11に含まれる個体が次世代の個体へ変更される。そして、適応度が所定の閾値以上となる個体が出現するまで、同様の処理が繰り返される。
 以上のような手順によって生成される画像処理プログラムの用途としては、例えば、FA(Factory Automation)分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出するといった用途が考えられる。
 このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理プログラムの再構築の必要が生じる場合がある。このため、画像処理プログラムの構築の容易性が求められている。また、照明条件の変化や被写体の形状、位置姿勢のバラツキなどの撮像環境の変化に対するロバスト性が高い画像処理プログラムを構築することが求められている。
 遺伝的プログラミングを利用することで、入力画像21とこれに対応する目標画像22とをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境が異なる入力画像21と目標画像22とのペア(学習用データ20)を複数用意しておくことで、撮像環境の変化に対するロバスト性が高い画像処理プログラムを自動生成することもできる。
(画像処理装置の構成)
 次に、上述した画像処理プログラム生成処理を実施する情報処理装置としての画像処理装置100の構成等について、図2に基づいて説明する。図2には、画像処理装置100のハードウェア構成の一例が概略的に示されている。本第1の実施形態に係る画像処理装置100は、例えば、図2に示すようなコンピュータ(情報処理装置)として実現される。
 画像処理装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。プロセッサ101には、バス109を介して、RAM102と複数の機器(周辺機器)が接続されている。
 RAM102は、画像処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
 バス109に接続される機器には、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、読み取り装置106、通信インタフェース107、及びネットワークインタフェース108等が含まれる。
 HDD103は、画像処理装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
 グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、表示装置104aの画面に画像を表示させる。表示装置104aとしては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
 入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
 読み取り装置106には、可搬型記録媒体106aが脱着可能となっている。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aには、光ディスク、光磁気ディスク、半導体メモリなどが含まれる。
 通信インタフェース107は、接続された外部デバイスとの間でデータの送受信を行う。本第1の実施形態では、通信インタフェース107に撮像装置としてのカメラ107aが接続されており、通信インタフェース107は、カメラ107aから送信された画像データをプロセッサ101に送信する。
 ネットワークインタフェース108は、ネットワークを介して他の装置との間でデータの送受信を行う。
(画像処理装置100が備える処理機能)
 図3は、画像処理装置が備える処理機能の構成例を示すブロック図(機能ブロック図)である。画像処理装置100は、画像取得部111、画像処理部112、プログラム生成部120、プログラム記憶部130、学習用データ記憶部141、低解像学習用データ記憶部142を有する。画像取得部111、画像処理部112及びプログラム生成部120の処理は、例えば、画像処理装置100のプロセッサ101が所定のプログラムを実行することで実現される。また、画像処理部112の処理の一部は、プログラム記憶部130に保存された画像処理プログラムを、画像処理装置100のプロセッサ101が実行することで実現される。プログラム記憶部130、学習用データ記憶部141、及び低解像学習用データ記憶部142は、例えば、画像処理装置100のHDD103の記憶領域として実現される。
 画像取得部111は、カメラ107aによって撮像された画像のデータをカメラ107aから取得し、プログラム生成部120または画像処理部112に出力する。
 プログラム生成部120は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部130に保存する。なお、プログラム生成部120の詳細については、後述する。
 画像処理部112は、カメラ107aによって撮像された画像のデータを画像取得部111を介して取得する。画像処理部112は、プログラム記憶部130に保存された画像処理プログラムにしたがって、取得した画像に画像処理を施す。処理後の画像は、例えば、表示装置104aに表示される。
 プログラム記憶部130は、プログラム生成部120によって生成された画像処理プログラムを記憶する。
 学習用データ記憶部141は、それぞれ入力画像および目標画像の各データを含む学習用データを、1つ以上記憶する。学習用データに含まれる入力画像は、例えば、画像処理装置100に接続されたカメラ107aによって撮像された画像であってもよい。
 なお、本第1の実施形態では、一例として、生成される画像処理プログラムを用いた処理の結果として、画像が出力されるものとするが、処理の結果として画像以外の情報が出力されるようにしてもよい。そのような処理の結果としては、例えば、入力画像における領域を示す位置情報、入力画像の分類結果や評価結果などが考えられる。このように処理の結果が画像でない場合、学習用データには、目標となる処理結果を示す、画像以外の情報が、目標画像の代わりに含まれていてもよい。
 低解像学習用データ記憶部142は、学習用データ記憶部141に格納されている学習用データの入力画像および目標画像の各データを低解像度化したデータ(低解像学習用データ)を1つ以上記憶する。
 プログラム生成部120は、生成部及び決定部としての学習制御部121、第1評価部及び第2評価部としての適応度算出部122、作成部としての低解像度化部123を有する。
 学習制御部121は、プログラム生成部120でのプログラム生成処理全体を統括的に制御する。例えば、学習制御部121は、図1に示す、母集団11に含める初期個体の生成(S100)、個体の進化過程の処理(S104)、適応度に基づく生存選択(S108)、最終的な画像処理プログラムの出力、生存選択された個体による母集団11の更新(S110)などの処理を実行する。
 適応度算出部122は、個体を評価するための適応度を算出する。具体的には、適応度算出部122は、状況に応じて、学習用データ記憶部141に記憶された学習用データと、低解像学習用データ記憶部142に記憶された低解像学習用データと、を使い分け、各画像処理プログラムの適応度を算出する。例えば、低解像学習用データを用いる場合、適応度算出部122は、画像処理プログラムに従って、低解像学習用データに含まれる入力画像に画像処理を施し、得られた画像と、画像処理された入力画像に対応する目標画像との類似度を、個体の適応度として算出する。また、学習用データを用いる場合、適応度算出部122は、画像処理プログラムに従って、学習用データに含まれる入力画像に画像処理を施し、得られた画像と、画像処理された入力画像に対応する目標画像との類似度を、個体の適応度として算出する。
 低解像度化部123は、学習用データ記憶部141に格納されている学習用データを取得し、学習用データに含まれる入力画像と目標画像を所定の縮小率sで縮小する。なお、本第1の実施形態では、縮小率sが予め定められているものとする。
(画像処理装置100の処理)
 図4は、画像処理装置100により実行される、プログラム生成処理の詳細を示すフローチャートである。
 図4のステップS10において、学習制御部121は、学習用データの設定のための入力操作を受け付ける。例えば、学習用データ記憶部141に記憶された学習用データの中から、本処理で使用される学習用データが指定される。あるいは、本処理で使用される学習用データが学習用データ記憶部141に登録される。
 次いで、ステップS12では、低解像度化部123が、学習用データ記憶部141から学習用データを取得し、取得した学習用データを低解像度化することで、低解像学習用データを作成する。本第1の実施形態では、低解像度化部123は、予め定められている縮小率sを用いて、学習用データに含まれる入力画像と目標画像とを低解像度化する。低解像度化部123は、低解像度化した学習用データ(低解像学習用データ)を低解像学習用データ記憶部142に格納する。なお、以下においては、低解像度化された入力画像及び目標画像を、「低解像入力画像」及び「低解像目標画像」と呼ぶものとする。
 次いで、ステップS14では、学習制御部121は、母集団11に含める所定個数の初期個体を生成する(図1のステップS100参照)。各初期個体は、木構造の各ノードに対して、画像処理フィルタをランダムに選択して組み合わせることで生成される。また、各初期個体の木構造は、例えば、あらかじめ決められた複数の木構造の中からランダムに選択される。あるいは、木構造自体がランダムに決定されてもよい。
 次いで、ステップS16では、学習制御部121は、母集団11から個体を1つ選択し、選択された個体についての、低解像学習用データを用いた適応度の算出を適応度算出部122に依頼する。
 次いで、ステップS18では、適応度算出部122は、ステップS16で選択された個体の適応度を、低解像学習用データを用いて算出(評価)する。具体的には、適応度算出部122は、選択された個体に対応する画像処理プログラムにしたがって、低解像学習用データに含まれる低解像入力画像に画像処理を施す。このとき、画像処理プログラムの構成要素である画像処理フィルタのパラメータは、縮小率sに合わせて調整する(例えば、空間フィルタのカーネル径を縮小率sに合わせて小さくする)ものとする。適応度算出部122は、画像処理によって得られた画像と、低解像入力画像に対応付けられた低解像目標画像との類似度を、選択された個体の適応度として算出する。なお、低解像学習用データが複数登録されている場合には、適応度算出部122は、例えば、各低解像学習用データを用いて類似度を算出し、それらの類似度の平均値を個体の適応度とする。
 次いで、ステップS20では、学習制御部121は、母集団11に含まれるすべての個体を選択済みか否かを判定する。このステップS20の判断が否定された場合、すなわち未選択の個体がある場合、学習制御部121は、ステップS16に戻り、次の個体を選択する。一方、ステップS20の判断が肯定された場合、すなわち全ての個体を選択済みの場合、学習制御部121は、ステップS22に移行する。
 全ての個体についての低解像学習用データを用いた適応度の算出が行われ、ステップS22に移行すると、学習制御部121は、適応度が上位N個の個体を特定する(絞り込む)。ここで、Nの値は、事前に設定されているものとする。
 次いで、ステップS24では、学習制御部121は、特定したN個の個体のいずれかを選択し、選択された個体についての、学習用データを用いた適応度の算出を適応度算出部122に依頼する。
 次いで、ステップS26では、適応度算出部122は、ステップS24で選択された個体の適応度を、学習用データを用いて算出(評価)する。具体的には、適応度算出部122は、選択された個体に対応する画像処理プログラムにしたがって、学習用データに含まれる入力画像に画像処理を施す。適応度算出部122は、画像処理によって得られた画像と、入力画像に対応付けられた目標画像との類似度を、選択された個体の適応度として算出する。なお、学習用データが複数登録されている場合には、適応度算出部122は、例えば、各学習用データを用いて類似度を算出し、それらの類似度の平均値を個体の適応度とする。
 次いで、ステップS28では、学習制御部121は、N個の個体のすべてを選択済みか否かを判定する。このステップS28の判断が否定された場合、すなわち未選択の個体がある場合、学習制御部121は、ステップS24に戻り、次の個体を選択する。一方、ステップS28の判断が肯定された場合、すなわちN個全ての個体を選択済みの場合、学習制御部121は、ステップS30に移行する。
 N個全ての個体の適応度が算出され、ステップS30に移行すると、学習制御部121は、母集団11に含まれる個体の中から、2つの親個体をランダムに選択する(図1のステップS102参照)。
 次いで、ステップS32では、学習制御部121は、進化過程の処理により子個体を生成する((図1のステップS104参照))。この場合、学習制御部121は、選択された2つの親個体の間で交叉を行うことで、2つ以上の所定数の子個体を生成する。また、学習制御部121は、生成された子個体のいずれかのノードに突然変異を発生させ、元の子個体のノードに組み込まれていた画像処理フィルタを他の画像処理フィルタに置き換える。
 次いで、ステップS34では、学習制御部121は、子個体の1つを選択し、選択された個体についての、低解像学習用データを用いた適応度の算出を適応度算出部122に依頼する。
 次いで、ステップS36では、適応度算出部122は、ステップS34で選択された個体の適応度を、低解像学習用データを用いて算出(評価)する。このステップS36の具体的な処理は、上述したステップS18と同様である。
 次いで、ステップS38では、学習制御部121は、すべての子個体を選択済みか否かを判定する。このステップS38の判断が否定された場合、すなわち未選択の子個体がある場合、学習制御部121は、ステップS34に戻り、次の子個体を選択する。一方、ステップS38の判断が肯定された場合、すなわち全ての子個体を選択済みの場合、学習制御部121は、ステップS40に移行する。
 全ての子個体についての低解像学習用データを用いた適応度の算出が行われ、ステップS40に移行すると、学習制御部121は、適応度が上位M個の子個体を特定する(絞り込む)。ここで、Mの値は、事前に設定されているものとし、上述したNと同一の値でもよいし、異なる値でもよい。
 次いで、ステップS42では、学習制御部121は、特定したM個の子個体のいずれかを選択し、選択された子個体についての、学習用データを用いた適応度の算出を適応度算出部122に依頼する。
 次いで、ステップS44では、適応度算出部122は、ステップS42で選択された子個体の適応度を、学習用データを用いて算出(評価)する。このステップS44の具体的な処理は、上述したステップS26と同様である。
 次いで、ステップS46では、学習制御部121は、M個の子個体のすべてを選択済みか否かを判定する。このステップS46の判断が否定された場合、すなわち未選択の子個体がある場合、学習制御部121は、ステップS42に戻り、次の子個体を選択する。一方、ステップS46の判断が肯定された場合、すなわちM個全ての子個体を選択済みの場合、学習制御部121は、ステップS48に移行する。なお、本第1の実施形態では、ステップS34~S46の処理が、図1のステップS106に相当する。本第1の実施形態では、上述したように、適応度算出部122は、低解像学習用データを用いて適応度を算出した結果に基づいて子個体を厳選し、厳選した子個体のみについて、高解像度の学習用データを用いて適応度を算出している。このため、すべての子個体について、高解像度の学習用データを用いた適応度の算出処理を行う場合に比べて、短時間で適応度の算出処理を行うことが可能となっている。
 ステップS48に移行すると、学習制御部121は、ステップS30で選択された各親個体の適応度、およびステップS44で算出された各子個体の適応度の中から、最大適応度を特定し、最大適応度が所定の閾値より大きいか否かを判定する。学習制御部121は、最大適応度が閾値より大きい場合、ステップS54の処理に移行し、最大適応度が閾値以下の場合、ステップS50の処理に移行する。
 ステップS50に移行すると、学習制御部121は、生存させる個体として、ステップS30で選択された各親個体と、ステップS32で生成された各子個体の中から、適応度が最大の個体を選択する(図1のステップS108参照)。さらに、学習制御部121は、残りの個体の中から生存させる個体を1つ選択する。この選択では、残りの個体それぞれの適応度に応じた確率で生存させる個体が選択される(ルーレット選択)。
 次いで、ステップS52では、学習制御部121は、母集団11に含まれる個体のうちステップS30で選択された親個体を、ステップS50で選択された2つの個体に入れ替える(図1のステップS110参照)。これによって、母集団11の世代が更新される。その後は、ステップS30に戻り、上述したようにステップS30以降の処理が実行されることになる。
 一方、ステップS48の判断が肯定され、ステップS54に移行すると、学習制御部121は、ステップS48で適応度が閾値より大きいと判定された個体に対応する画像処理プログラムをプログラム記憶部130に格納して、処理を終了する。
 以上、詳細に説明したように、本第1の実施形態によると、学習制御部121は、母集団11に含まれる画像処理プログラム(親個体)に基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補(子個体)を生成する(S32)。また、適応度算出部122は、学習用データを低解像度化した低解像学習用データを用いて、子個体の適応度を算出し(S36)、算出結果に基づいて、子個体を絞り込み(S40)、絞り込んだ子個体の適応度を学習用データを用いて算出する(S44)。そして、学習制御部121は、適応度算出部122の算出結果に基づいて、新たに利用する画像処理プログラムを決定し、プログラム記憶部130に格納する(S54)。すなわち、本第1の実施形態では、低解像学習用データを用いた適応度の簡易的な算出処理は子個体の全てについて行うものの、当該簡易的な算出処理で算出された適応度に基づいて子個体を厳選し、厳選された子個体のみに対して、解像度の高い学習用データを用いた適応度の算出処理を行うこととしている。これにより、新たに利用する画像処理プログラムを決定する場合のように、適応度が高い子個体を見つけ出したい場合において、高解像度の学習用データを用いた適応度の算出処理を、厳選した一部の子個体についてのみ行うようにすることができる。したがって、高解像度の学習用データを用いた適応度の算出処理の回数を減らすことができるため、適応度算出部122による処理に要する時間を短くすることができる。なお、実際のシミュレーション結果からは、縮小率sを0.5とすることで、適応度算出部122による処理に要する時間を50%短縮することができることが分かった。したがって、本第1の実施形態によれば、新たに利用する画像処理プログラムの決定に要する時間を短縮することができる。特に、子個体の木構造が複雑になるほど、木構造が示す画像処理プログラムを用いた入力画像の処理時間が長くなるが、本第1の実施形態を適用することで、処理時間の短縮を図ることができる。また、FA分野において、高解像度カメラを用いてより大きな撮影視野で微細な欠陥を検出する場合のように、入力画像の画像サイズが大きくなったとしても、画像処理プログラムを決定するために要する時間を許容範囲に収めることが可能となる。
 また、本第1の実施形態では、初期個体の適応度の算出の際にも、ステップS16~S28に示すように、ステップS34~S46と同様の処理を行うこととしている。これにより、初期個体の適応度の算出に要する時間を短縮することができるので、この点からも、新たに利用する画像処理プログラムの決定に要する時間を短縮することができる。
 また、本第1の実施形態では、低解像度化部123が、学習用データを低解像度化するため、学習用データを用意するだけで、上述した図4の処理を実現することができる。ただし、これに限らず、画像処理装置100から低解像度化部123を省略してもよい。この場合、画像処理装置100は、外部から低解像学習用データを取得するようにすればよい。
 なお、上記第1の実施形態では、低解像度化部123が、学習用データに含まれる入力画像と目標画像の両方を低解像度化する場合について説明したが、これに限られるものではない。すなわち、低解像度化部123は、少なくとも入力画像を低解像度化すればよい。
≪第2の実施形態≫
 以下、第2の実施形態について説明する。
 図5は、本第2の実施形態の画像処理装置100の処理を示すフローチャートである。図5の処理と上述した第1の実施形態の処理(図4)とを比較するとわかるように、本第2の実施形態では、ステップS11の処理(縮小率sの算出処理)が追加されている。また、本第2の実施形態では、図4のステップS22、S28,S40,S46に代えて、ステップS22’、S28’、S40’、S46’を実行することとしている。以下、第1の実施形態と異なる部分を中心に、第2の実施形態について説明する。
 上述した第1の実施形態では、縮小率sを予め定めておくこととしたが、本第2の実施形態では、図5のステップS11において、図6のフローチャートに沿った処理を実行することで、縮小率sを自動的に決定する。
 図6の処理では、まず、ステップS60において、学習制御部121が、許容誤差σを設定する。なお、許容誤差σについては、予め入力されている値を用いるものとする。
 次いで、ステップS62では、学習制御部121は、学習用データを用いて、母集団に含まれる画像処理プログラムの適応度Cを算出する。なお、学習用データが複数存在する場合には、各学習用データを用いて適応度Cをそれぞれ算出する。
 次いで、ステップS64では、学習制御部121は、変数Bを0.9に設定する。
 次いで、ステップS66では、低解像度化部123が、学習用データを縮小率Bで低解像度化する。なお、学習用データが複数存在する場合には、各学習用データを低解像度化する。
 次いで、ステップS68では、学習制御部121が、ステップS66において低解像度化した学習用データを用いて、母集団11に含まれる画像処理プログラムの適応度cを算出する。この場合においても、低解像度化した学習用データが複数存在する場合には、各低解像度化した学習用データを用いて適応度cをそれぞれ算出する。
 次いで、ステップS70では、学習制御部121が、適応度Cと適応度cの誤差(誤差平均)dを算出する。学習用データが複数存在する場合には、1つ目の学習用データを用いて算出した適応度Cと、1つ目の学習用データを低解像度化したものを用いて算出した適応度の差分、2つ目の学習用データを用いて算出した適応度Cと、2つ目の学習用データを低解像度化したものを用いて算出した適応度の差分、…というように差分を複数算出し、複数の差分の平均を誤差平均dとする。
 次いで、ステップS72では、dがσよりも大きいか否かを判断する。このステップS72の判断が否定された場合には、ステップS74に移行し、学習制御部121は、縮小率sを変数Bの現在の値とする。次いで、ステップS76では、学習制御部121は、変数Bを0.1だけ小さくし、ステップS66に戻る。ステップS66に戻った場合、新たに設定された変数Bを用いて、ステップS66以降の処理を実行する。そして、ステップS72の判断が肯定された段階で、図6の全処理(ステップS11の全処理)を終了する。
 なお、図6の処理が終了した場合、縮小率sは、誤差平均dがσよりも大きくなる直前のBの値となる(ステップS74参照)。
 以上のように、本第2の実施形態では、ステップS11の処理(図6の処理)を実行することで、縮小率sとして適切な値を自動的に定めることが可能となっている。なお、上述した変数Bの初期値=0.9や、ステップS76でBの値を減算する値=0.1は、一例である。したがって、各値としてその他の値を設定してもよい。
 また、本第2の実施形態では、図5のステップS22’において、適応度が上位n%の個体を特定し、ステップS40’において、適応度が上位m%の子個体を特定することとしている。このように、学習用データを用いた適応値の算出に用いる個体や子個体を特定する際に、所定割合の個体や子個体を特定するようにすることで、母集団に含まれる個体数によらずに、適切な処理を行うことができる。
 なお、上記第2の実施形態のステップS11の処理は、第1の実施形態で説明した図4のステップS10とステップS12の処理の間に行うこととしてもよい。
 なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。
 プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD-ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
 プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
 上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
  100 画像処理装置(情報処理装置)
  107a カメラ(撮像装置)
  121 学習制御部(生成部、決定部)
  122 適応度算出部(第1評価部、第2評価部)
  123 低解像度化部(作成部)

Claims (9)

  1.  撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理装置であって、
     前記画像処理プログラムに基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補を生成する生成部と、
     入力画像と目標となる処理結果とを含む学習用データのうち少なくとも前記入力画像を低解像度化した低解像学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を評価する第1評価部と、
     前記第1評価部の評価結果に基づいて、前記次世代の画像処理プログラムの候補を絞り込み、絞り込んだ前記次世代の画像処理プログラムの候補の適応度を、前記学習用データを用いて評価する第2評価部と、
     前記第2評価部の評価結果に基づいて、次世代の画像処理プログラムを決定する決定部と、
    を備える情報処理装置。
  2.  前記第1評価部は、前記適応度を評価する際に、前記低解像度化の際に用いられた縮小率に合わせて、前記画像処理プログラムが有する画像処理フィルタのパラメータを調整することを特徴とする請求項1に記載の情報処理装置。
  3.  前記第2評価部は、前記次世代の画像処理プログラムの候補の中から、前記第1評価部が評価した前記適応度が上位所定割合の候補又は上位所定数の候補に絞り込むことを特徴とする請求項1又は2に記載の情報処理装置。
  4.  前記低解像学習用データを作成する作成部を更に備え、
     前記作成部は、縮小率の値を段階的に変更しながら、前記学習用データの低解像度化と、低解像度化した前記学習用データを用いた前記画像処理プログラムの適応度の評価と、を繰り返し、繰り返しの結果得られた前記適応度に基づいて、前記低解像学習用データを作成する際に用いる縮小率を決定する、ことを特徴とする請求項1~3のいずれか一項に記載の情報処理装置。
  5.  撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理する情報処理方法であって、
     前記画像処理プログラムに基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補を生成し、
     入力画像と目標となる処理結果とを含む学習用データのうち少なくとも前記入力画像を低解像度化した低解像学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を評価し、
     前記低解像学習用データを用いた評価結果に基づいて、前記次世代の画像処理プログラムの候補を絞り込み、絞り込んだ前記次世代の画像処理プログラムの候補の適応度を、前記学習用データを用いて評価し、
     前記学習用データを用いた評価結果に基づいて、次世代の画像処理プログラムを決定する、
    処理をコンピュータが実行する情報処理方法。
  6.  前記低解像学習用データを用いて適応度を評価する処理では、前記適応度を評価する際に、前記低解像度化の際に用いられた縮小率に合わせて、前記画像処理プログラムが有する画像処理フィルタのパラメータを調整することを特徴とする請求項5に記載の情報処理方法。
  7.  前記次世代の画像処理プログラムの候補を絞り込む場合、前記低解像学習用データを用いて評価した前記適応度が上位所定割合の候補又は上位所定数の候補に絞り込むことを特徴とする請求項5又は6に記載の情報処理方法。
  8.  前記低解像学習用データを作成する処理を前記コンピュータが更に実行し、
     前記作成する処理では、縮小率の値を段階的に変更しながら、前記学習用データの低解像度化と、低解像度化した前記学習用データを用いた前記画像処理プログラムの適応度の評価と、を繰り返し、繰り返しの結果得られた前記適応度に基づいて、前記低解像学習用データを作成する際に用いる縮小率を決定する、ことを特徴とする請求項5~7のいずれか一項に記載の情報処理方法。
  9.  コンピュータに、撮像装置により撮像された画像に対し、木構造を有する画像処理プログラムを用いて画像処理させるための情報処理プログラムであって、
     前記画像処理プログラムに基づき、遺伝的プログラミングにおける次世代の画像処理プログラムの候補を生成し、
     入力画像と目標となる処理結果とを含む学習用データのうち少なくとも前記入力画像を低解像度化した低解像学習用データを用いて、前記次世代の画像処理プログラムの候補の適応度を評価し、
     前記低解像学習用データを用いた評価結果に基づいて、前記次世代の画像処理プログラムの候補を絞り込み、絞り込んだ前記次世代の画像処理プログラムの候補の適応度を、前記学習用データを用いて評価し、
     前記学習用データを用いた評価結果に基づいて、次世代の画像処理プログラムを決定する、
    処理を前記コンピュータに実行させることを特徴とする情報処理プログラム。
     
PCT/JP2017/012020 2017-03-24 2017-03-24 情報処理装置、情報処理方法及び情報処理プログラム WO2018173257A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019506890A JP6798607B2 (ja) 2017-03-24 2017-03-24 情報処理装置、情報処理方法及び情報処理プログラム
PCT/JP2017/012020 WO2018173257A1 (ja) 2017-03-24 2017-03-24 情報処理装置、情報処理方法及び情報処理プログラム
US16/567,408 US11182650B2 (en) 2017-03-24 2019-09-11 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/012020 WO2018173257A1 (ja) 2017-03-24 2017-03-24 情報処理装置、情報処理方法及び情報処理プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/567,408 Continuation US11182650B2 (en) 2017-03-24 2019-09-11 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

Publications (1)

Publication Number Publication Date
WO2018173257A1 true WO2018173257A1 (ja) 2018-09-27

Family

ID=63585183

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/012020 WO2018173257A1 (ja) 2017-03-24 2017-03-24 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (3)

Country Link
US (1) US11182650B2 (ja)
JP (1) JP6798607B2 (ja)
WO (1) WO2018173257A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020187734A (ja) * 2019-05-10 2020-11-19 富士通株式会社 遺伝モデルに基づきディープニューラルネットワーク(dnn)を訓練することにおけるデータ拡張

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004241943A (ja) * 2003-02-04 2004-08-26 Fuso Precsion Co Ltd 電子製版で使用されるレイアウト原稿に嵌め込まれた画像を差し替えるためのプログラムおよび装置
JP2009282579A (ja) * 2008-05-19 2009-12-03 Nikon Corp 画像処理装置、画像処理方法およびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366929A (ja) 2001-06-11 2002-12-20 Printing Bureau Ministry Of Finance 印刷物の不良欠点抽出処理方法及び装置
JP2008299687A (ja) 2007-06-01 2008-12-11 National Printing Bureau 画像処理構築方法
JP2009122939A (ja) 2007-11-14 2009-06-04 Bridgestone Corp タイヤ検査用特徴抽出プログラム作成装置及びタイヤ検査装置
JP5479944B2 (ja) 2010-02-26 2014-04-23 東日本高速道路株式会社 舗装路面のクラックの抽出と損傷レベルの評価方法
JP6179224B2 (ja) * 2013-07-02 2017-08-16 富士通株式会社 画像処理フィルタの作成装置及びその方法
US20170287217A1 (en) * 2016-03-30 2017-10-05 Kahyun Kim Preceding traffic alert system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004241943A (ja) * 2003-02-04 2004-08-26 Fuso Precsion Co Ltd 電子製版で使用されるレイアウト原稿に嵌め込まれた画像を差し替えるためのプログラムおよび装置
JP2009282579A (ja) * 2008-05-19 2009-12-03 Nikon Corp 画像処理装置、画像処理方法およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020187734A (ja) * 2019-05-10 2020-11-19 富士通株式会社 遺伝モデルに基づきディープニューラルネットワーク(dnn)を訓練することにおけるデータ拡張
JP7439607B2 (ja) 2019-05-10 2024-02-28 富士通株式会社 遺伝モデルに基づきディープニューラルネットワーク(dnn)を訓練することにおけるデータ拡張

Also Published As

Publication number Publication date
JP6798607B2 (ja) 2020-12-09
US11182650B2 (en) 2021-11-23
JPWO2018173257A1 (ja) 2019-11-07
US20200005092A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
JP6511986B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
US10303447B2 (en) Program generating apparatus and method therefor
US10489710B2 (en) Program generation apparatus and program generation method
JP7028322B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
CN111105375B (zh) 图像生成方法及其模型训练方法、装置及电子设备
US10540592B2 (en) Program generation apparatus and program generation method
US11468261B2 (en) Information processing apparatus, image processing method, and computer-readable recording medium recording image processing program
US11328176B2 (en) Information processing apparatus, information processing method, and storage medium
WO2017109918A1 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2015232869A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP6015670B2 (ja) 画像処理装置及び画像処理方法
WO2018173257A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JPWO2013089261A1 (ja) 画像処理システム及び画像処理方法
JPWO2018078735A1 (ja) 情報処理装置、情報処理方法および情報処理プログラム
US20210042550A1 (en) Information processing device, information processing method, and computer-readable recording medium recording information processing program
JP6865705B2 (ja) 画像生成装置、画像生成方法および画像生成プログラム
US11663816B2 (en) Apparatus and method for classifying attribute of image object
CN111726592B (zh) 获取图像信号处理器的架构的方法和装置
JP6544435B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
JP7294031B2 (ja) 情報処理装置、情報処理方法、プログラム、予測装置および予測方法
JP6331914B2 (ja) アルゴリズム生成装置、アルゴリズム生成方法及びアルゴリズム生成用コンピュータプログラム
CN116958285A (zh) 骨骼动画的压缩方法、装置、电子设备及存储介质
CN114140570A (zh) 一种获取纹理贴图的方法及装置
JP2011186958A (ja) アップサンプリング装置および方法、並びにプログラム
JP2020119308A (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: 17902440

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019506890

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17902440

Country of ref document: EP

Kind code of ref document: A1