[go: up one dir, main page]

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

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

Info

Publication number
WO2017068675A1
WO2017068675A1 PCT/JP2015/079759 JP2015079759W WO2017068675A1 WO 2017068675 A1 WO2017068675 A1 WO 2017068675A1 JP 2015079759 W JP2015079759 W JP 2015079759W WO 2017068675 A1 WO2017068675 A1 WO 2017068675A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
section
program
image
classifier
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2015/079759
Other languages
English (en)
French (fr)
Inventor
岡本 浩明
毅 長門
哲男 肥塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to PCT/JP2015/079759 priority Critical patent/WO2017068675A1/ja
Priority to CN201580083986.6A priority patent/CN108140133B/zh
Priority to JP2017546333A priority patent/JP6646234B2/ja
Publication of WO2017068675A1 publication Critical patent/WO2017068675A1/ja
Priority to US15/945,276 priority patent/US11061687B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/285Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/87Arrangements for image or video recognition or understanding using pattern recognition or machine learning using selection of the recognition techniques, e.g. of a classifier in a multiple classifier system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes

Definitions

  • the present invention relates to a program generation device, a program generation method, and a generation program.
  • Image processing for determining which class an object in an image belongs to is called image classification.
  • image processing classified into two classes is the most common.
  • face image recognition classified into two classes of face and non-face is widely used.
  • an image processing program there is a technique for automatically generating an image processing program for executing desired image processing by genetic programming.
  • This technology uses an input image and a target processing result (for example, target image) to inherit an image processing program generated by combining partial programs for image processing (for example, an image filter program). It is optimized by dynamic programming.
  • the filter string provided in the preceding stage of the feature value group calculation unit that calculates the feature value group input to the classifier is optimized by evolutionary calculation.
  • an object of the present invention is to provide a program generation device, a program generation method, and a generation program that can generate an image classification program that realizes highly accurate image classification processing.
  • a program generation device having a generation unit and a genetic processing unit.
  • the generation unit generates a plurality of tree structures each representing an image classification program.
  • each of the plurality of tree structures has a first hierarchy group and a second hierarchy group each including one or more adjacent hierarchies, and the elements of the nodes of the first hierarchy group respectively correspond to the input image Selected from the plurality of image filters for preprocessing, and the elements of the second layer group nodes are classified based on the information obtained by executing the elements selected for the first layer group nodes.
  • a control parameter for generating a device is selected from a plurality of setting programs for setting different values.
  • the genetic processing unit outputs a tree structure whose fitness exceeds a predetermined threshold by genetic programming based on the plurality of tree structures.
  • a program generation method in which a computer executes the same processing as the above-described program generation device. Furthermore, in one proposal, a generation program that causes a computer to execute the same processing as that of the above-described program generation apparatus is provided.
  • an image classification program that realizes highly accurate image classification processing can be generated.
  • FIG. 1 is a diagram illustrating a configuration example and a processing example of the program generation device according to the first embodiment.
  • a program generation device 1 shown in FIG. 1 includes a generation unit 1a and a genetic processing unit 1b.
  • the processing of the generation unit 1a and the genetic processing unit 1b is realized by, for example, a processor included in the program generation device 1 executing a predetermined program.
  • the generating unit 1a generates a plurality of tree structures 11a, 11b, 11c,... Each representing an image classification program.
  • the image classification program is a program for determining which of a plurality of classes an input image belongs to.
  • Each of the plurality of tree structures 11a, 11b, 11c,... Has a first layer group 12a and a second layer group 12b each including one or more adjacent layers.
  • the element of the node of the second hierarchy group 12b is selected from a plurality of setting programs 31a, 31b, 31c,... Included in the second element group 30.
  • Each of the plurality of setting programs 31a, 31b, 31c,... Is a control parameter for generating a classifier based on information obtained by executing the element selected for the node of the first hierarchy group 12a.
  • setting programs 31a, 31b, and 31c are programs for setting parameters a, b, and c, respectively, in order to generate a classifier.
  • the second hierarchy group 12b of the tree structure 11a includes nodes N5 and N6, and each element of the nodes N5 and N6 is selected from a plurality of setting programs 31a, 31b, 31c,. .
  • the genetic processing unit 1b outputs a tree structure whose fitness exceeds a predetermined threshold by genetic programming based on the plurality of tree structures 11a, 11b, 11c,... Generated by the generation unit 1a.
  • the genetic processing unit 1b executes the following processing starting from a state in which a plurality of tree structures 11a, 11b, 11c,.
  • the genetic processing unit 1 b generates a child tree structure based on the parent tree structure selected from the tree structure group 10.
  • the genetic processing unit 1b calculates the fitness of the child tree structure based on the classification accuracy rate of the classifier generated by the process based on the generated child tree structure. If the calculated fitness is less than or equal to the above threshold, the genetic processing unit 1b replaces one of the tree structures included in the tree structure group 10 with a child tree structure.
  • the genetic processing unit 1b repeatedly executes the above processing until the fitness of the child tree structure exceeds the above threshold.
  • the elements of each node of the first layer group 12a and the elements of each node of the second layer group 12b are optimized by genetic programming. As a result, an optimal combination of the preprocessing algorithm and the classifier generation algorithm can be found. Therefore, it is possible to generate an image classification program that can execute highly accurate image classification processing.
  • the image processing apparatus according to the second embodiment has a processing function similar to that of the program generation apparatus 1 shown in FIG. 1, and a function for executing an image classification program by executing an image classification program generated by this processing function. With.
  • FIG. 2 is a diagram illustrating a hardware configuration example of the image processing apparatus according to the second embodiment.
  • the image processing apparatus 100 according to the second embodiment is realized as a computer as shown 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), 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.
  • 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 communication interface 107, and a network 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 communication interface 107, and a network 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 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 communication interface 107 transmits / receives data to / from a connected external device.
  • a camera 107 a is connected to the communication interface 107 as an external device, and the communication interface 107 transmits image data transmitted from the camera 107 a to the processor 101.
  • the network interface 108 transmits and receives data to and from other devices via the network 108a.
  • the processing functions of the image processing apparatus 100 can be realized.
  • the image processing apparatus 100 described above automatically generates an image classification program for classifying the input image into one of a plurality of classes by genetic programming.
  • Examples of image classification processing based on the generated image classification program include processing for determining whether or not a face appears in the input image, and determining whether or not a product or part shown in the input image is a non-defective product or a defective product. There is processing.
  • the processing realized by the image classification program includes a classifier generation process that generates a classifier by learning using a learning image, and a pre-process that generates feature information input to the classifier based on the learning image. .
  • a classifier generation process that generates a classifier by learning using a learning image
  • a pre-process that generates feature information input to the classifier based on the learning image.
  • the image processing apparatus 100 searches for an optimal combination of a classifier generation algorithm and a preprocessing algorithm by genetic programming. As a result, an image classification program that realizes processing of a classifier capable of highly accurate image classification is generated.
  • FIG. 3 is a diagram showing an example of the structure of an individual.
  • an individual handled in genetic programming is represented by a tree structure in which a program module is set as an element of each node.
  • Each tree structure representing an individual is divided into sections each including one or more adjacent hierarchies.
  • the tree structure has a C (Conversion) section, an F (Feature) section, a D (Data) section, a T (Type) section, from the leaf side toward the root side. It is divided into a P (Parameter) section and an L (Learning) section.
  • Each section corresponds to a processing stage of image classification, and a corresponding stage process is executed based on elements included in each section.
  • section C, section F, and section D are associated with preprocessing for generating data to be input to the discriminator.
  • the section C is associated with processing for converting an input image so as to be suitable for feature extraction using an image conversion filter.
  • the F section is associated with a process of extracting a feature amount from the image converted by the process of the C section using a feature extraction filter.
  • the D section is associated with a process for generating input data to be input to the classifier based on the feature amount extracted in the process of the F section.
  • T section is associated with the process of selecting the classifier type.
  • the P section is associated with a process for setting a learning parameter for generating a classifier by learning using a learning image.
  • the P section is divided into, for example, a Pa section and a Pr section.
  • the Pa interval is associated with processing for setting the absolute value of the learning parameter
  • the Pr interval is associated with processing for setting the relative value of the learning parameter.
  • the learning parameter for generating the classifier is determined by increasing / decreasing the absolute value set in the Pa interval by addition / subtraction or scaling using the relative value set in the Pr interval.
  • the L section is associated with processing for generating a classifier by learning using a learning image.
  • the number of nodes that can be set within a section and the structure between nodes differ from section to section.
  • the number of nodes on the most root side is the same as the number of nodes set on the most leaf side in section F.
  • the number of branches and the number of stages set from the root side node in the C section to the leaf side are, for example, a fixed number of maximum hierarchies (number of node stages) from the root side node in the C section to the most leaf side node. It is determined under the following conditions.
  • the number of nodes on the most root side is the same as the number of data that can be input to the program module set in the D section. Also, for example, a certain number of nodes or less are connected from the root side node to the leaf side.
  • the number of hierarchies is limited. For example, assume that a 2-input program module is set as an element of the D section, and the number of layers in the D section is limited to two or less. In this case, if the number of layers in the D section is 1, the number of nodes in the D section is 1, and the number of data inputs in the D section is 2. On the other hand, if the number of layers is 2, the number of nodes in the D section is 3, and the maximum number of data inputs in the D section is 4.
  • FIG. 4 is a diagram illustrating an example of elements in each section. In FIG. 4, for the convenience of explanation, the description order of the sections is different from that in FIG.
  • Program modules that can be set as elements in the nodes in the section are prepared individually for each section and stored in the element storage unit 150 in advance.
  • an element included in a certain section is selected from program modules corresponding to the section.
  • the element storage unit 150 stores image conversion filters 151a, 151b, 151c,... For converting input images as program modules corresponding to the C section.
  • image conversion filters 151a, 151b, 151c,... A Smooth filter, a Sobel filter, a Laplace filter, an And filter, a Sub filter, an Add filter, an Or filter, an Erode filter, a Dilate filter, a Threshold filter, and the like can be applied. It is.
  • the element storage unit 150 stores classifier type setting modules 154a, 154b, 154c,... For designating the type of classifier as program modules corresponding to the T section.
  • the element storage unit 150 stores classifier generation modules 155a, 155b, 155c,... For generating a classifier as program modules corresponding to the L section.
  • the changed element is a program module prepared in advance for the section to which the node belongs. For example, when an element in the C section is changed by mutation, the changed element is selected from the image conversion filters corresponding to the C section.
  • ⁇ ⁇ By such processing, the combination of processing algorithms in each section is optimized. For example, a combination of a processing algorithm for extracting a feature amount input to the classifier and a processing algorithm for generating a classifier is optimized. As a result, it is possible to select an appropriate classifier type and learning parameters for image classification, and to extract feature quantities suitable for input to the classifier. Therefore, an image classification program with high classification accuracy can be generated.
  • the P interval is divided into a Pa interval for setting the absolute value of the learning parameter and a Pr interval for setting the relative value.
  • the elements of the Pa section are selected from the absolute value setting modules corresponding to the program modules set in the T section or the L section.
  • the relative value setting module that is an element of the Pr section is a program module that adds or subtracts a different number to the absolute value of the learning parameter set by the element of the Pa section.
  • the relative value setting module is a program module that scales the set absolute value by multiplication using different coefficients.
  • learning parameters can be roughly set by the elements of the Pa section, and the learning parameters can be finely adjusted by the elements of the Pr section.
  • the range of numerical values set as learning parameters may differ. Therefore, it is sufficient to prepare only elements for setting numerical values within a range that can be set for the classifier set in the T section as elements for the Pa section. Therefore, it is not necessary to prepare a large amount of programs for setting the learning parameters in order to finely cover the range of numerical values that can be set for all types of classifiers, and the number of program modules can be reduced. . In addition, learning efficiency in genetic programming is improved.
  • T section it is possible to select from a plurality of types of classifiers other than SVM, or to select from a classifier of SVM and other types of classifiers. Also good.
  • FIG. 5 is a diagram showing an example of the data structure of the individual and output data.
  • the individual is expressed as, for example, tree structure data 200 indicating the contents of the tree structure.
  • the tree structure data 200 includes an image conversion filter structure 201, a feature extraction filter structure 202, a data generation module structure 203, classifier type setting module information 204, parameter setting module information 205, and classifier generation module information 206.
  • the output data 210 is information about the individual finally output by genetic programming.
  • the output data 210 includes the image conversion filter structure 201, the feature extraction filter structure 202, the data generation module structure 203, the classifier type setting module information 204, the parameter setting module information 205, and the classifier generation module information 206 related to the individual, Classifier information 207 is included.
  • the classifier information 207 includes information indicating a classifier generated by learning using a learning image.
  • the classifier information 207 is a program module that implements classifier processing.
  • the output data 210 may not include the classifier type setting module information 204 and the parameter setting module information 205. However, by including the classifier type setting module information 204 and the parameter setting module information 205 in the output data 210, it is possible to re-learn the classifier using a new learning image using the output data 210. Become.
  • the image classification processing unit 112 acquires data of an image captured by the camera 107a via the image acquisition unit 111.
  • the image classification processing unit 112 determines which class the acquired image data belongs to in accordance with an image classification program based on the output data stored in the output data storage unit 133.
  • the determination result is displayed on the display device 104a, for example.
  • the program generation unit 120 includes a GP (Genetic Programming) learning control unit 121, an image conversion unit 122, a feature extraction unit 123, an input data generation unit 124, a type setting unit 125, a parameter setting unit 126, a classifier generation unit 127, and a classification process. Part 128.
  • GP Genetic Programming
  • FIG. 7 is a flowchart illustrating an example of a program generation processing procedure.
  • the GP learning control unit 121 generates a plurality of initial individuals and stores information indicating the generated initial individuals in the individual group information storage unit 132.
  • an individual stored in the individual group information storage unit 132 is referred to as an “individual group”.
  • a node is basically set according to the conditions described in FIG. 3 in each section, and an element of each node is selected from program modules corresponding to the section to which the node belongs. Is set.
  • the initial individual is set by the following procedure, for example.
  • the GP learning control unit 121 selects an element to be set for each node included in each of the L section, the Pr section, the Pa section, and the T section.
  • the GP learning control unit 121 randomly selects an element to be set for a node in each section from among program modules prepared in association with the section.
  • the classifier generation module set to the node in the L section is uniquely determined by the classifier type setting module set to the node in the T section.
  • the element set in the node in the Pa section is randomly selected from the absolute value setting modules corresponding to the classifier setting module set in the node in the T section.
  • the GP learning control unit 121 randomly determines whether the number of layers in the D section is 1 or 2.
  • the number of hierarchies is 1, the number of nodes in the T section is 1.
  • the GP learning control unit 121 randomly selects an element to be set for the node from the input data generation module.
  • the number of hierarchies is 2 or more.
  • the GP learning control unit 121 randomly selects an element to be set for the node on the root side in the D section from the input data generation module.
  • the number of inputs of the selected input generation module is 1, one node is set on the leaf side, and when the number of inputs is 2, two nodes are set on the leaf side.
  • the GP learning control unit 121 randomly selects an element to be set for each set node from the input data generation module. By such processing, the number of inputs in the D section becomes any one of 1 to 4.
  • the GP learning control unit 121 sets an element of the F section.
  • the number of nodes in the F section is the same as the number of inputs in the D section.
  • the GP learning control unit 121 randomly selects an element to be set for each node in the F section from the feature extraction filter.
  • the GP learning control unit 121 sets elements of the C section.
  • the number of nodes on the root side of section C is the same as the number of nodes in section F.
  • the GP learning control unit 121 sets a node on each leaf side of the node on the root side of the C section, and randomly selects an element to be set for each node from the image conversion filter.
  • the number of inputs of the image conversion filter set for a certain node is 2
  • two nodes are set on the leaf side from that node.
  • the GP learning control unit 121 sets a randomly selected image conversion filter to a node on the leaf side of a node for which an element has been set, and further determines the number of nodes on the leaf side.
  • the GP learning control unit 121 for example, so that the maximum number of hierarchies from the node on the root side of the C section is a predetermined value or less and the number of nodes included in the C section is a predetermined value or less. Determine the node structure and the elements of each node.
  • Step S16 The GP learning control unit 121 determines whether all of the child individuals generated in Step S13 have been selected. If there is an unselected child individual, the GP learning control unit 121 advances the process to step S14 and selects one of the unselected child individuals. On the other hand, if all of the child individuals have been selected, the GP learning control unit 121 advances the process to step S17.
  • Step S18 The GP learning control unit 121 selects, from among the child individuals generated in Step S13, the child individual having the highest fitness as a child individual that survives. Furthermore, the GP learning control unit 121 selects one more individual to survive from the remaining child individuals. In this selection process, for example, an individual is selected with a probability corresponding to the fitness. The GP learning control unit 121 replaces the parent individual selected in step S12 among the individuals in the individual group with the two individuals to survive.
  • Step S19 The GP learning control unit 121 determines that the child individual having the highest fitness among the child individuals generated in Step S13 is the best individual, and stores output data related to the best individual in the output data storage unit 133. .
  • This output data also includes classifier information indicating the classifier generated in the process of step S15 for the best individual.
  • Step S21 The GP learning control unit 121 randomly selects a node from one of the two parent individuals.
  • Step S22 The GP learning control unit 121 selects a node in the same section as the node selected in Step S21 from the other parent individual. When there are a plurality of nodes in the section, the GP learning control unit 121 randomly selects one node from them.
  • Step S23 The GP learning control unit 121 selects the tree structure on the leaf side from the node selected in Step S21 from the tree structure of one parent individual and the tree structure of the other parent individual in Step S22.
  • the tree structure on the leaf side is exchanged with each other.
  • the GP learning control unit 121 also sets the tree structure of the T section, the Pa section, and the L section between the child individuals. Replace.
  • Step S33 The GP learning control unit 121 replaces the element set in the node selected in step S31 with the element selected in step S32. However, when the node selected in step S31 is any one of the T section, the Pa section, and the L section, the GP learning control unit 121 also performs elements other than the node selected in step S31 in steps S32 and S33. Replace. Specifically, the GP learning control unit 121 first replaces the elements in the steps of steps S32 and S33 for the nodes in the T section, and further replaces the nodes in the Pa section and the L section. The element of the node in the Pa section is selected from elements corresponding to the element newly selected in the T section. As the element of the node in the L section, an element corresponding to the element newly selected in the T section is selected.
  • FIGS. 10 to 11 are flowcharts showing an example of the procedure of the learning / fitness calculation process.
  • the processes in FIGS. 10 to 11 correspond to the process in step S15 in FIG.
  • the child individual used in the processes of FIGS. 10 to 11 is the child individual selected in step S14 of FIG. 10 to 11, as an example, it is assumed that the sample image storage unit 131 stores a plurality of pieces of learning image data and evaluation image data.
  • Step S51 The GP learning control unit 121 selects one of the learning images.
  • Step S52 The image conversion unit 122 executes image conversion processing on the learning image selected in step S51 according to the image conversion filter set in the node of the C section of the child individual.
  • Step S53 The feature extraction unit 123 extracts a feature amount based on the image converted in step S52 according to the feature extraction filter set in the node of the F section of the child individual.
  • Step S55 The input data generation unit 124 generates input data to be input to the classifier based on the feature amount extracted in step S53 according to the input data generation module set in the node of the D section of the child individual. To do.
  • step S61 in FIG. 11 The process of step S61 in FIG. 11 is executed.
  • the GP learning control unit 121 selects one of the evaluation images.
  • the image conversion unit 122 executes image conversion processing on the evaluation image selected in step S61 according to the image conversion filter set in the node of the C section of the child individual.
  • Step S63 The feature extraction unit 123 extracts a feature amount based on the image converted in step S62 according to the feature extraction filter set in the node of the F section of the child individual.
  • Step S65 The classification processing unit 128 determines which class the evaluation image selected in step S61 belongs to based on the input data generated in step S64 according to the classifier information generated in step S58. The classification process for determination is executed.
  • Step S66 The classification processing unit 128 compares the classification result obtained in the classification process in step S65 with the class indicated by the label added to the evaluation image selected in step S61, and the classification result is correct or incorrect. Determine whether.
  • Step S67 The GP learning control unit 121 determines whether all the images for evaluation have been selected. If there is an unselected learning image, the GP learning control unit 121 advances the process to step S61 and selects one of the unselected evaluation images. On the other hand, when all the images for evaluation have been selected, the GP learning control unit 121 advances the processing to step S68.
  • Step S68 The GP learning control unit 121 calculates a correct answer rate from the determination result in Step S66.
  • the GP learning control unit 121 calculates the fitness of the child individual based on the calculated accuracy rate.
  • the number of feature dimensions can be determined based on the input data generation module set in the D section of the child individual. In this way, by correcting the accuracy rate according to the penalty term, the superiority or inferiority of the learning result can be accurately evaluated, and an image classification program with high classification accuracy can be generated.
  • FIG. 12 to FIG. 14 are flowcharts showing an example of the learning / fitness calculation processing procedure when the cross-validation method is used.
  • the process in FIGS. 12 to 14 corresponds to the process in step S15 in FIG.
  • the child individual used in the processes of FIGS. 12 to 13 is the child individual selected in step S14 of FIG.
  • Step S71 The GP learning control unit 121 selects one of the sample images.
  • Step S72 The image conversion unit 122 executes image conversion processing on the sample image selected in step S71 according to the image conversion filter set in the node of the C section of the child individual.
  • Step S73 The feature extraction unit 123 extracts a feature amount based on the image converted in step S72 according to the feature extraction filter set in the node of the F section of the child individual.
  • Step S74 The GP learning control unit 121 determines whether all sample images have been selected. When there is an unselected sample image, the GP learning control unit 121 advances the processing to step S71 and selects one from the unselected sample images. On the other hand, when all the sample images have been selected, the GP learning control unit 121 advances the process to step S75.
  • Step S75 The input data generation unit 124 generates input data to be input to the classifier based on the feature amount extracted in step S73 according to the input data generation module set in the node of the D section of the child individual. To do.
  • the classifier generation unit 127 executes a learning process for generating a classifier according to the classifier generation module set in the node of the L section of the child individual.
  • the learning parameter set in step S77, the input data generated in step S75, and the label added to each learning image are used.
  • a classifier is generated by the learning process.
  • Step S81 The GP learning control unit 121 classifies the sample images into N groups each including the same number of images.
  • the GP learning control unit 121 determines (N ⁇ 1) groups of sample images among the classified groups as learning images, and determines the remaining one group of sample images as evaluation images.
  • Step S82 The GP learning control unit 121 identifies a feature amount based on the learning image determined in step S81 among the feature amounts extracted in step S73 of FIG.
  • the input data generation unit 124 generates input data to be input to the classifier based on the feature amount specified as the processing target, according to the input data generation module set in the node of the D section of the child individual.
  • the type setting unit 125 sets the type of the classifier according to the classifier type setting module set in the node of the T section of the child individual.
  • the parameter setting unit 126 sets the learning parameter set in the classifier according to the absolute value setting module set in the node of the Pa section of the child individual and the relative value setting module set in the node of the Pr section. Set.
  • the classifier generation unit 127 executes a learning process for generating a classifier according to the classifier generation module set in the node of the L section of the child individual.
  • the learning parameter set in step S84, the input data generated in step S82, and the label added to each learning image determined in step S81 are used.
  • a classifier is generated by the learning process.
  • Step S91 The GP learning control unit 121 selects one of the evaluation images determined in step S81 of FIG.
  • Step S92 The GP learning control unit 121 selects, as a processing target, a feature amount extracted based on the evaluation image selected in Step S91 among the feature amounts extracted in Step S73 of FIG.
  • the input data generation unit 124 generates input data to be input to the classifier based on the feature amount selected as the processing target in accordance with the input data generation module set in the node of the D section of the child individual.
  • Step S93 The classification processing unit 128 uses the classifier generated in step S85 of FIG. 13 to which class the evaluation image selected in step S91 is based on the input data generated in step S92. A classification process for determining whether or not the data belongs is executed.
  • the classification processing unit 128 compares the classification result obtained in the classification process in step S93 with the class indicated by the label added to the evaluation image selected in step S91, and the classification result is correct or incorrect. Determine whether.
  • Step S95 The GP learning control unit 121 determines whether all the images for evaluation have been selected. If there is an unselected evaluation image, the GP learning control unit 121 advances the processing to step S91 and selects one of the unselected evaluation images. On the other hand, when all the evaluation images have been selected, the GP learning control unit 121 advances the process to step S96.
  • Step S96 In step S81 of FIG. 13, there are N patterns as patterns that can be classified into groups of learning images and evaluation images.
  • the GP learning control unit 121 determines whether all these patterns have been processed. If there is a pattern that has not been processed, the GP learning control unit 121 advances the processing to step S81, and specifies a learning image and an evaluation image by a new pattern that has not been processed. On the other hand, if all patterns have been processed, the GP learning control unit 121 advances the process to step S97.
  • Step S97 The GP learning control unit 121 calculates a correct answer rate from the determination result in step S94.
  • the GP learning control unit 121 calculates the fitness of the child individual based on the calculated accuracy rate.
  • step S68 the GP learning control unit 121 corrects the calculated accuracy rate according to the penalty term in the same procedure as in step S68 in FIG. 11, and outputs the corrected value as the fitness. Also good.
  • FIG. 15 is a flowchart illustrating an example of an image classification processing procedure based on output data.
  • the image classification processing unit 112 performs the C section and the F section based on the image conversion filter structure 201, the feature extraction filter structure 202, and the data generation module structure 203 of the output data 210 stored in the output data storage unit 133. And an element is set to the node of D section.
  • the image classification processing unit 112 constructs a classifier based on the classifier information 207 of the output data 210. [Step S ⁇ b> 103] The image classification processing unit 112 acquires an image to be classified through the image acquisition unit 111. This image is, for example, an image captured by the camera 107a.
  • Step S104 The image conversion unit 122 executes an image conversion process on the acquired image according to the image conversion filter set in the node of the C section.
  • Step S105 The feature extraction unit 123 extracts a feature amount based on the image converted in step S104 according to the feature extraction filter set in the node of the F section.
  • Step S106 The input data generation unit 124 generates input data to be input to the classifier based on the feature amount extracted in step S105, according to the input data generation module set in the node of the D section.
  • the classification processing unit 128 uses a classifier based on the classifier information 207 of the output data 210 to determine which class the acquired image belongs to based on the input data generated in step S106.
  • the classification process is executed, and the classification result is output.
  • FIG. 16 is a flowchart illustrating an example of the relearning procedure of the classifier.
  • the GP learning control unit 121 includes the image conversion filter structure 201, the feature extraction filter structure 202, the data generation module structure 203, the classifier type setting module information 204 of the output data 210 stored in the output data storage unit 133, Based on the parameter setting module information 205 and the classifier generation module information 206, elements are set to nodes in the C section, F section, D section, T section, Pa section, Pr section, and L section.
  • the difference from step S101 in FIG. 15 is that the classifier type and learning parameters are also set based on the output data 210.
  • processing similar to steps S51 to S58 in FIG. 9 is executed using the newly prepared sample image as a learning image based on the elements set in step S121.
  • a label added to the newly prepared sample image is used.
  • the GP learning control unit 121 can control the program generation process so as to optimize only the elements of nodes in the T section, Pa section, Pr section, and L section.
  • predetermined elements are set in the nodes in the C section, the F section, and the D section.
  • the program generation process only the elements of the nodes in the T section, Pa section, Pr section, and L section are subject to evolution, and the elements of the nodes in the C section, F section, and D section are not changed. With such control, only the classifier generation algorithm can be optimized.
  • operation mode 1 that optimizes only the elements of the C section
  • operation mode 2 that optimizes only the elements of the nodes of the F section and the D section
  • T section the T section
  • Pa section the Pa section
  • Pr section the L section
  • operation mode 3 it is possible to switch to the operation mode 3 in which only the elements of the nodes are optimized. That is, in the operation mode 1, the learning image conversion processing algorithm can be optimized.
  • operation mode 2 it is possible to optimize a processing algorithm for generating input data to be input to the classifier based on the converted image.
  • operation mode 3 the classifier generation algorithm can be optimized.
  • FIG. 17 is a flowchart showing an example of a generation processing procedure of the image classification program in the modified example.
  • the same step numbers are assigned to the processing steps in which the same processing as in FIG. 7 is performed.
  • Step S11a The GP learning control unit 121 sets the operation mode 1.
  • Step S ⁇ b> 11 b The GP learning control unit 121 generates a plurality of initial individuals, and stores information indicating the generated initial individuals in the individual group information storage unit 132.
  • the difference from step S11 in FIG. 7 is that a predetermined element is set in a node in a section other than the C section for all individuals.
  • steps S12 to S17 shown in FIG. 7 are executed.
  • steps S12 to S17 shown in FIG. 7 are executed.
  • steps S12 to S17 shown in FIG. 7 are executed.
  • only elements of nodes in a specific section are targeted for evolution.
  • the operation mode 1 only the elements of the nodes in the C section are targeted for evolution
  • the operation mode 2 only the elements of the nodes in the F section and the D section are targeted for evolution
  • the operation mode 3 Only elements of nodes in the T interval, Pa interval, Pr interval, and L interval are subject to evolution.
  • step S17 when the maximum fitness among the fitness of the child individuals is equal to or less than the threshold th, the processing in step S18a is performed after the processing in step S18 is performed.
  • Step S18a The GP learning control unit 121 determines whether a condition for switching the operation mode is satisfied, and switches the operation mode according to the determination result.
  • the current operation mode is 1, the operation mode is switched to 2.
  • the current operation mode is 2, the operation mode is switched to 3. Thereafter, the processing after step S12 is executed again.
  • a method of switching the operation mode for example, a method of switching the operation mode when the increase in fitness is stagnant can be considered. Specifically, the GP learning control unit 121 switches the operation mode to the next operation mode when the increase rate of the maximum value of the fitness calculated in step S16 is equal to or less than a predetermined threshold. Thereby, the element of a node can be optimized sequentially for every section. As another method, the GP learning control unit 121 switches from the operation mode 1 to the operation mode 2 when the number of generations of the individual group reaches a predetermined number, and the number of generations reaches a predetermined number larger than that. Alternatively, the operation mode 2 may be switched to the operation mode 3.
  • the processing functions of the devices (the program generation device 1 and the image processing device 100) described in each of the above embodiments can be realized by a computer.
  • a program describing the processing contents of the functions that each device should have is provided, and the processing functions are realized on the computer by executing the program on the computer.
  • the program describing the processing contents can be recorded on a computer-readable recording medium.
  • the computer-readable recording medium include a magnetic storage device, an optical disk, a magneto-optical recording medium, and a semiconductor memory.
  • Examples of the magnetic storage device include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape.
  • Optical discs include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc-Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like.
  • Magneto-optical recording media include MO (Magneto-Optical disk).
  • a portable recording medium such as a DVD or CD-ROM in which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.
  • the computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. In addition, each time a program is transferred from a server computer connected via a network, the computer can sequentially execute processing according to the received program.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Multimedia (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

高精度な画像分類処理を実現する画像分類プログラムを生成する。 生成部(1a)は、それぞれ画像分類プログラムを表す木構造(11a,11b,11c,・・・)を生成する。各木構造は第1階層群(12a)と第2階層群(12b)とを有し、第1階層群(12a)のノードの要素は、それぞれ入力画像に対して前処理を施すための画像フィルタ(21a,21b,21c,・・・)の中から選択され、第2階層群(12b)のノードの要素は、第1階層群(12a)のノードに対して選択された要素の実行によって得られた情報を基に分類器を生成するための制御パラメータとして、それぞれ異なる値を設定するための設定プログラム(31a,31b,31c,・・・)の中から選択される。遺伝的処理部(1b)は、木構造(11a,11b,11c,・・・)に基づいて、遺伝的プログラミングによって適応度が所定の閾値を超える木構造を出力する。

Description

プログラム生成装置、プログラム生成方法および生成プログラム
 本発明は、プログラム生成装置、プログラム生成方法および生成プログラムに関する。
 画像に写っている物体がどのクラスに属するかを判定する画像処理は、画像分類と呼ばれる。画像分類の中でも2クラスに分類する画像処理は最も一般的であり、例えば、顔と非顔の2クラスに分類する顔画像認識は広く利用されている。
 一方、画像処理プログラムの生成に関しては、所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術がある。この技術は、入力画像と目標となる処理結果(例えば、目標画像)とを用いて、画像処理のための部分プログラム(例えば、画像フィルタのプログラム)を組み合わせて生成される画像処理プログラムを、遺伝的プログラミングによって最適化していくものである。
 そして、画像分類プログラムの生成においても遺伝的プログラミングを活用する技術が提案されている。この技術では、分類器に入力する特徴量群を計算する特徴量群算出部の前段に設けたフィルタ列が、進化的計算により最適化される。
特開2007-213480号公報
青木紳也、長尾智晴、「木構造画像変換の自動構築法ACTIT」、情報メディア学会誌Vol.53,No.6、1999年6月20日、p.890-892
 画像分類では、画像からどのような特徴量を抽出して用いるかという点と、得られた特徴量に基づいてどのような分類器を生成するかという点が、分類精度を高めるために重要である。しかし、これらの2点の両方の最適な組み合わせを探索するためには、専門家による高度な知識と多大な開発時間が必要であった。
 また、フィルタ列を進化的計算により最適化するという前述の技術では、分類器の生成については進化的計算による最適化の対象になっていない。
 1つの側面では、本発明は、高精度な画像分類処理を実現する画像分類プログラムを生成可能なプログラム生成装置、プログラム生成方法および生成プログラムを提供することを目的とする。
 1つの案では、生成部と遺伝的処理部とを有するプログラム生成装置が提供される。生成部は、それぞれ画像分類プログラムを表す複数の木構造を生成する。ここで、複数の木構造のそれぞれは、1以上の隣接する階層をそれぞれ含む第1階層群と第2階層群とを有し、第1階層群のノードの要素は、それぞれ入力画像に対して前処理を施すための複数の画像フィルタの中から選択され、第2階層群のノードの要素は、第1階層群のノードに対して選択された要素の実行によって得られた情報を基に分類器を生成するための制御パラメータとして、それぞれ異なる値を設定するための複数の設定プログラムの中から選択される。遺伝的処理部は、複数の木構造に基づいて、遺伝的プログラミングによって適応度が所定の閾値を超える木構造を出力する。
 また、1つの案では、上記のプログラム生成装置と同様の処理をコンピュータが実行するプログラム生成方法が提供される。
 さらに、1つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させる生成プログラムが提供される。
 1つの側面では、高精度な画像分類処理を実現する画像分類プログラムを生成できる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。 第2の実施の形態に係る画像処理装置のハードウェア構成例を示す図である。 個体の構造例を示す図である。 各区間の要素例を示す図である。 個体および出力データのデータ構造例を示す図である。 画像処理装置が備える処理機能の構成例を示すブロック図である。 プログラム生成処理手順の例を示すフローチャートである。 交叉処理手順の例を示すフローチャートである。 突然変異処理手順の例を示すフローチャートである。 学習・適応度算出処理の手順の例を示すフローチャート(その1)である。 学習・適応度算出処理の手順の例を示すフローチャート(その2)である。 交差検定法を用いた場合の学習・適応度算出処理の手順の例を示すフローチャート(その1)である。 交差検定法を用いた場合の学習・適応度算出処理の手順の例を示すフローチャート(その2)である。 交差検定法を用いた場合の学習・適応度算出処理の手順の例を示すフローチャート(その3)である。 出力データに基づく画像分類処理手順の例を示すフローチャートである。 分類器の再学習手順の例を示すフローチャートである。 変形例における画像分類プログラムの生成処理手順の例を示すフローチャートである。
 以下、本発明の実施の形態について図面を参照して説明する。
 〔第1の実施の形態〕
 図1は、第1の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。図1に示すプログラム生成装置1は、生成部1aと遺伝的処理部1bとを有する。生成部1aおよび遺伝的処理部1bの処理は、例えば、プログラム生成装置1が備えるプロセッサが所定のプログラムを実行することで実現される。
 生成部1aは、それぞれ画像分類プログラムを表す複数の木構造11a,11b,11c,・・・を生成する。画像分類プログラムは、入力画像が複数のクラスのどれに属するかを判定するためのプログラムである。また、複数の木構造11a,11b,11c,・・・のそれぞれは、1以上の隣接する階層をそれぞれ含む第1階層群12aと第2階層群12bを有する。
 第1階層群12aのノードの要素は、第1要素群20に含まれる複数の画像フィルタ21a,21b,21c,・・・の中から選択される。複数の画像フィルタ21a,21b,21c,・・・は、それぞれ入力画像に対して前処理を施すためのプログラムである。図1の例では、木構造11aの第1階層群12aにはノードN1~N4が含まれ、ノードN1~N4のそれぞれの要素が、複数の画像フィルタ21a,21b,21c,・・・の中から選択される。
 第2階層群12bのノードの要素は、第2要素群30に含まれる複数の設定プログラム31a,31b,31c,・・・の中から選択される。複数の設定プログラム31a,31b,31c,・・・はそれぞれ、第1階層群12aのノードに対して選択された要素の実行によって得られた情報を基に分類器を生成するための制御パラメータとして、それぞれ異なる値を設定するためのプログラムである。
 図1の例では、設定プログラム31a,31b,31cは、分類器を生成するためにそれぞれパラメータa,b,cを設定するためのプログラムである。また、木構造11aの第2階層群12bにはノードN5,N6が含まれ、ノードN5,N6のそれぞれの要素が、複数の設定プログラム31a,31b,31c,・・・の中から選択される。
 遺伝的処理部1bは、生成部1aにより生成された複数の木構造11a,11b,11c,・・・に基づいて、遺伝的プログラミングによって適応度が所定の閾値を超える木構造を出力する。
 例えば、遺伝的処理部1bは、複数の木構造11a,11b,11c,・・・が木構造群10に含まれる状態を起点として、次のような処理を実行する。遺伝的処理部1bは、木構造群10の中から選択した親の木構造に基づいて子の木構造を生成する。遺伝的処理部1bは、生成された子の木構造に基づく処理によって生成された分類器の分類正解率に基づいて、子の木構造の適応度を算出する。遺伝的処理部1bは、算出された適応度が上記の閾値以下である場合、木構造群10に含まれる木構造の1つを子の木構造と入れ替える。遺伝的処理部1bは、以上の処理を、子の木構造の適応度が上記の閾値を超えるまで繰り返し実行する。
 以上のプログラム生成装置1によれば、遺伝的プログラミングによって、第1階層群12aの各ノードの要素と第2階層群12bの各ノードの要素とがそれぞれ最適化される。これにより、前処理のアルゴリズムと分類器の生成アルゴリズムとの最適な組み合わせを見出すことができる。したがって、高精度な画像分類処理を実行可能な画像分類プログラムを生成することができる。
 〔第2の実施の形態〕
 次に、第2の実施の形態に係る画像処理装置について説明する。第2の実施の形態に係る画像処理装置は、図1に示したプログラム生成装置1と同様の処理機能と、この処理機能によって生成された画像分類プログラムを実行して画像分類処理を実行する機能とを備える。
 図2は、第2の実施の形態に係る画像処理装置のハードウェア構成例を示す図である。第2の実施の形態に係る画像処理装置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を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。
 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の画面に表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
 入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
 読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
 通信インタフェース107は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース107には、外部デバイスとしてカメラ107aが接続され、通信インタフェース107は、カメラ107aから送信された画像データをプロセッサ101に送信する。
 ネットワークインタフェース108は、ネットワーク108aを介して他の装置との間でデータの送受信を行う。
 以上のようなハードウェア構成によって、画像処理装置100の処理機能を実現することができる。
 上記の画像処理装置100は、入力画像を複数のクラスのうちの1つに分類するための画像分類プログラムを、遺伝的プログラミングによって自動的に生成する。生成された画像分類プログラムに基づく画像分類処理としては、例えば、入力画像に顔が写っているか否かを判定する処理や、入力画像に写っている製品や部品が良品か不良品かを判定する処理などがある。
 画像分類プログラムによって実現される処理には、学習画像を用いた学習によって分類器を生成する分類器生成処理と、分類器に入力する特徴情報を学習画像に基づいて生成する前処理とが含まれる。高精度な画像分類を実現する上で、学習画像からどのような特徴量を抽出して用いるかという点と、得られた特徴量に基づいてどのような分類器を生成するかという点の両方が重要である。画像処理装置100は、遺伝的プログラミングにより、分類器の生成アルゴリズムと前処理アルゴリズムの最適な組み合わせを探索する。これにより、高精度な画像分類が可能な分類器の処理を実現する画像分類プログラムが生成される。
 図3は、個体の構造例を示す図である。図3に示すように、遺伝的プログラミングにおいて取り扱われる個体は、各ノードの要素としてプログラムモジュールが設定された木構造によって表される。また、個体を表す木構造は、それぞれ1以上の隣接する階層を含む区間に区分される。本実施の形態では図3に例示するように、木構造は、そのリーフ側からルート側に向かってC(Conversion)区間、F(Feature)区間、D(Data)区間、T(Type)区間、P(Parameter)区間およびL(Learning)区間に区分される。
 各区間は、画像分類の処理段階に対応しており、各区間に含まれる要素に基づいて対応する段階の処理が実行される。例えば、C区間、F区間およびD区間は、識別器に入力するデータを生成するための前処理に対応づけられている。C区間は、画像変換フィルタを用いて、入力画像を特徴抽出に適するように変換する処理に対応づけられている。F区間は、C区間の処理で変換された画像から、特徴抽出フィルタを用いて特徴量を抽出する処理に対応づけられている。D区間は、F区間の処理で抽出された特徴量に基づいて、分類器に入力するための入力データを生成する処理に対応づけられている。
 T区間は、分類器の種類を選択する処理に対応づけられている。P区間は、学習画像を用いた学習によって分類器を生成するための学習パラメータを設定する処理に対応づけられている。P区間は、例えば、Pa区間とPr区間に分割されている。Pa区間は、学習パラメータの絶対値を設定する処理に対応づけられ、Pr区間は、学習パラメータの相対値を設定する処理に対応づけられている。Pa区間で設定された絶対値が、Pr区間で設定された相対値を用いた加減算やスケーリングなどによって増減されることで、分類器の生成のための学習パラメータが決定される。L区間は、学習画像を用いた学習によって分類器を生成する処理に対応づけられている。
 区間内に設定することが可能なノード数やノード間の構造は、区間ごとに異なる。例えば、C区間では、最もルート側のノード数は、F区間の最もリーフ側に設定されたノード数と同じになる。また、C区間のルート側ノードからリーフ側に設定されるノードの分岐数や段数は、例えば、C区間のルート側ノードと最もリーフ側のノードまでの最大の階層数(ノード段数)が一定数以下などの条件の下で決定される。
 F区間では、最もルート側のノード数は、D区間で設定されたプログラムモジュールに入力可能なデータ数と同じになる。また、例えば、ルート側ノードからリーフ側に、一定数以下のノードが接続される。
 D区間では、階層数の制限が設けられる。例えば、D区間の要素として、2入力のプログラムモジュールが設定されるものとし、D区間の階層数が2以下に制限されるものとする。この場合、D区間の階層数が1であれば、D区間のノード数は1となり、D区間のデータ入力数は2となる。一方、階層数が2であれば、D区間のノード数は3となり、D区間のデータ入力数は最大で4となる。
 T区間、Pa区間、Pr区間およびL区間では、1つのノードが設定される。なお、例えばPa区間やPr区間には、直列な2つ以上のノードが設定されてもよい。
 図4は、各区間の要素例を示す図である。なお、図4では、説明の都合上、区間の記載順を図3とは異なる順序としている。
 区間内のノードに要素として設定可能なプログラムモジュールは、区間ごとに個別に用意され、要素記憶部150にあらかじめ記憶される。初期個体の木構造が設定される際には、ある区間に含まれる要素は、その区間に対応するプログラムモジュールの中から選択される。
 図4に示すように、要素記憶部150には、C区間に対応するプログラムモジュールとして、それぞれ入力画像を変換するための画像変換フィルタ151a,151b,151c,・・・が記憶される。画像変換フィルタ151a,151b,151c,・・・の例としては、Smoothフィルタ、Sobelフィルタ、Laplaceフィルタ、Andフィルタ、Subフィルタ、Addフィルタ、Orフィルタ、Erodeフィルタ、Dilateフィルタ、Thresholdフィルタなどを適用可能である。
 また、要素記憶部150には、F区間に対応するプログラムモジュールとして、特徴量を抽出するための特徴抽出フィルタ152a,152b,152c,・・・が記憶される。特徴抽出フィルタ152a,152b,152c,・・・の例としては、平均輝度を算出するフィルタ、輝度ヒストグラムを算出するフィルタ、FFT(Fast Fourier Transformation)を実行するフィルタなどを適用可能である。また、領域分割数などの制御パラメータが異なる同じ種類のフィルタを適用することもできる。
 また、要素記憶部150には、D区間に対応するプログラムモジュールとして、分類器の入力データを生成するための入力データ生成モジュール153a,153b,153c,・・・が記憶される。入力データ生成モジュール153a,153b,153c,・・・の例としては、入力数がそれぞれ1,2のプログラムモジュールや、入力データの正規化、入力データの圧縮などを実行するプログラムモジュールを適用可能である。ここで、前述のように、D区間では階層数が可変となる。D区間の階層数と、D区間の要素に設定されるプログラムモジュールの入力数とが可変とされることで、特徴次元数を可変とした学習を行うことができる。
 また、要素記憶部150には、T区間に対応するプログラムモジュールとして、分類器の種類を指定するための分類器種類設定モジュール154a,154b,154c,・・・が記憶される。また、要素記憶部150には、L区間に対応するプログラムモジュールとして、分類器を生成するための分類器生成モジュール155a,155b,155c,・・・が記憶される。
 T区間とL区間との間では、設定可能なプログラムモジュールについて依存性がある。具体的には、分類器種類設定モジュール154a,154b,154c,・・・と分類器生成モジュール155a,155b,155c,・・・とは、一対一で対応づけられている。そして、一方の区間の要素が決定されると、他方の区間の要素が一意に決定される。例えば、T区間の要素として分類器種類設定モジュール154aが決定されると、L区間の要素として分類器生成モジュール155aが決定される。
 T区間およびL区間と、Pa区間との間でも、設定可能なプログラムモジュールについて依存性がある。要素記憶部150には、Pa区間に設定可能なプログラムモジュールとして、分類器種類設定モジュール(または分類器生成モジュール)のそれぞれに対応する複数の絶対値設定モジュールが記憶される。例えば、分類器種類設定モジュール154aに対応する絶対値設定モジュール156aa,156ab,156ac,・・・が、分類器種類設定モジュール154bに対応する絶対値設定モジュール156ba,156bb,156bc,・・・が、分類器種類設定モジュール154cに対応する絶対値設定モジュール156ca,156cb,156cc,・・・が、要素記憶部150に記憶される。そして、例えば、T区間の要素としてある分類器種類設定モジュールが決定された場合、Pa区間の要素としては、決定された分類器種類設定モジュールに対応する絶対値設定モジュールの中の1つが設定される。
 要素記憶部150には、Pr区間に対応するプログラムモジュールとして、学習パラメータの絶対値を増減して微調整するための相対値設定モジュール157a,157b,157c,・・・が記憶される。
 以上のように要素記憶部150に記憶されたプログラムモジュールが図3の木構造のノードに設定されることで、個体が生成される。画像処理装置100は、まず、個体群に含める複数の初期個体を生成した後、この個体群から選択した親個体を基に子個体を生成し、適応度の高い子個体を個体群内の親個体と入れ替える。画像処理装置100は、このような処理を繰り返し実行し、一定以上の適応度を有する個体を最良個体として出力する。
 このような処理において、親個体を進化させて子個体を生成する際には、親個体の1つ以上のノードの要素が変更される。親個体の進化のためにあるノードの要素が変更される場合には、変更後の要素は、そのノードが属する区間に対してあらかじめ用意されたプログラムモジュールとなる。例えば、突然変異によってC区間の要素を変更する場合、変更後の要素は、C区間に対応する画像変換フィルタの中から選択される。
 このような処理により、各区間での処理アルゴリズムの組み合わせが最適化される。例えば、分類器に入力する特徴量を抽出するための処理アルゴリズムと、分類器を生成するための処理アルゴリズムとの組み合わせが最適化される。その結果、画像分類のための適切な分類器の種類や学習パラメータが選択されるとともに、その分類器への入力に適した特徴量を抽出することが可能になる。したがって、分類精度の高い画像分類プログラムを生成することができる。
 ここで、絶対値設定モジュールと相対値設定モジュールについて補足説明する。P区間は、学習パラメータの絶対値を設定するためのPa区間と、相対値を設定するためのPr区間とに分割されている。上記のように、Pa区間の要素は、T区間またはL区間に設定されたプログラムモジュールに対応する絶対値設定モジュールの中から選択される。これに対して、Pr区間の要素である相対値設定モジュールは、Pa区間の要素によって設定された学習パラメータの絶対値に対して、それぞれ異なる数を加算または減算するプログラムモジュールである。あるいは、相対値設定モジュールは、設定された絶対値を、それぞれ異なる係数を用いた乗算によってスケーリングするプログラムモジュールである。
 このような構成とすることで、例えば、Pa区間の要素によって学習パラメータを大まかに設定し、Pr区間の要素によって学習パラメータを微調整することができる。分類器の種類によって、学習パラメータとして設定される数値の範囲は異なる場合がある。そのため、Pa区間の要素としては、T区間で設定された種類の分類器に設定し得る範囲内の数値を設定する要素だけを用意しておけばよくなる。したがって、すべての種類の分類器に設定し得る数値の範囲をきめ細かくカバーするために、学習パラメータの設定のためにプログラムを大量に用意しておく必要がなくなり、プログラムモジュールの数を減らすことができる。また、遺伝的プログラミングにおける学習効率も向上する。
 なお、分類器として例えばSVM(Support Vector Machine)が用いられる場合、T区間およびP区間の要素としては次のようなものを適用可能である。T区間に対応する分類器種類設定モジュール154a,154b,154c,・・・としては、使用されるカーネル関数を指定するプログラムモジュールを適用可能である。指定されるカーネル関数としては、例えば、LINEARカーネル、POLYカーネル、RBF(Radial Basis Function)カーネル、SIGMOIDカーネルなどを適用可能である。
 また、Pa区間およびPr区間に対応する絶対値設定モジュールとしては、学習パラメータとしてC,γの値を設定するプログラムモジュールを適用可能である。L区間に対応する分類器生成モジュール155a,155b,155c,・・・としては、T区間の要素によって指定されたカーネル関数を用いた分類器を生成するプログラムモジュールを適用可能である。
 また、T区間では、SVM以外の他の複数種類の分類器の中から選択できるようにしてもよいし、SVMの分類器と、他の複数種類の分類器との中から選択できるようにしてもよい。
 図5は、個体および出力データのデータ構造例を示す図である。個体は、例えば、木構造の内容を示す木構造データ200として表現される。木構造データ200は、画像変換フィルタ構造201、特徴抽出フィルタ構造202、データ生成モジュール構造203、分類器種類設定モジュール情報204、パラメータ設定モジュール情報205および分類器生成モジュール情報206を含む。
 画像変換フィルタ構造201は、C区間におけるノードの構成を示す情報と、各ノードに設定された画像変換フィルタの識別情報を含む。特徴抽出フィルタ構造202は、F区間におけるノードの構成を示す情報と、各ノードに設定された特徴抽出フィルタの識別情報を含む。データ生成モジュール構造203は、D区間におけるノードの構成を示す情報と、各ノードに設定された入力データ生成モジュールの識別情報を含む。
 分類器種類設定モジュール情報204は、T区間のノードに設定された分類器種類設定モジュールの識別情報を含む。パラメータ設定モジュール情報205は、Pa区間のノードに設定された絶対値設定モジュールの識別情報と、Pr区間のノードに設定された相対値設定モジュールの識別情報を含む。分類器生成モジュール情報206は、L区間のノードに設定された分類器生成モジュールの識別情報を含む。
 一方、出力データ210は、遺伝的プログラミングによって最終的に出力された個体に関する情報である。出力データ210は、その個体に関する画像変換フィルタ構造201、特徴抽出フィルタ構造202、データ生成モジュール構造203、分類器種類設定モジュール情報204、パラメータ設定モジュール情報205および分類器生成モジュール情報206に加えて、分類器情報207を含む。分類器情報207は、学習画像を用いた学習によって生成された分類器を示す情報を含む。例えば、分類器情報207は、分類器の処理を実現するプログラムモジュールである。
 なお、出力データ210は、画像変換フィルタ構造201、特徴抽出フィルタ構造202およびデータ生成モジュール構造203に基づいて要素記憶部150から抽出されたプログラムモジュールと、分類器情報207に基づくプログラムモジュールとを結合したプログラムの形式で出力されてもよい。
 なお、出力データ210は、分類器種類設定モジュール情報204とパラメータ設定モジュール情報205を含まなくてもよい。ただし、出力データ210に分類器種類設定モジュール情報204とパラメータ設定モジュール情報205を含めておくことで、出力データ210を用いて新たな学習画像を用いた分類器の再学習を行うことが可能になる。
 次に、画像処理装置100の詳細について説明する。
 図6は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置100は、画像取得部111、画像分類処理部112、プログラム生成部120、要素記憶部150、サンプル画像記憶部131、個体群情報記憶部132および出力データ記憶部133を有する。
 画像取得部111およびプログラム生成部120の処理は、例えば、画像処理装置100のプロセッサ101が所定のプログラムを実行することで実現される。また、画像分類処理部112の処理の一部は、出力データ記憶部133に記憶された出力データに基づく画像分類プログラムを、画像処理装置100のプロセッサ101が実行することで実現される。要素記憶部150、サンプル画像記憶部131、個体群情報記憶部132および出力データ記憶部133は、例えば、画像処理装置100のRAM102の記憶領域として実現される。
 画像取得部111は、撮像された画像のデータをカメラ107aから取得し、プログラム生成部120または画像分類処理部112に出力する。
 プログラム生成部120は、遺伝的プログラミングにより画像分類プログラムを生成し、生成された画像分類プログラムに対応する出力データを出力データ記憶部133に保存する。なお、プログラム生成部120の内部構成については後述する。
 画像分類処理部112は、カメラ107aによって撮像された画像のデータを、画像取得部111を介して取得する。画像分類処理部112は、出力データ記憶部133に記憶された出力データに基づく画像分類プログラムにしたがって、取得した画像のデータがどのクラスに属するかを判定する。判定結果は、例えば、表示装置104aに表示される。
 要素記憶部150は、プログラム生成部120によって生成される個体に組み込むことが可能な要素のデータを記憶する。
 サンプル画像記憶部131は、分類器の学習や評価のために利用される複数のサンプル画像のデータを記憶する。各サンプル画像には、そのサンプル画像が属するクラスを示すラベルが付加されている。サンプル画像としては、画像取得部111によってカメラ107aから取得された画像を用いることができる。
 個体群情報記憶部132は、プログラム生成部120によって生成された個体群のデータを記憶する。個体群に含まれる個体は、プログラム生成処理過程で随時更新される。
 出力データ記憶部133は、プログラム生成部120の処理によって最終的に出力された個体に関する情報を記憶する。
 プログラム生成部120は、GP(Genetic Programming)学習制御部121、画像変換部122、特徴抽出部123、入力データ生成部124、種類設定部125、パラメータ設定部126、分類器生成部127および分類処理部128を有する。
 GP学習制御部121は、遺伝的プログラミングによるプログラム生成処理全体の実行を制御する。例えば、GP学習制御部121は、初期個体の生成、個体の進化処理、適応度の算出などの処理を実行する。
 画像変換部122は、個体の木構造におけるC区間のノードに設定された画像変換フィルタにしたがって、入力画像に対する画像変換処理を実行する。
 特徴抽出部123は、個体の木構造におけるF区間のノードに設定された特徴抽出フィルタにしたがって、画像変換後の入力画像からの特徴量抽出処理を実行する。
 入力データ生成部124は、個体の木構造におけるD区間のノードに設定された入力データ生成モジュールにしたがって、分類器に入力する入力データを入力された特徴量に基づいて生成する。
 種類設定部125は、個体の木構造におけるT区間のノードに設定された分類器種類設定モジュールにしたがって、分類器の種類を設定する処理を実行する。
 パラメータ設定部126は、個体の木構造におけるPa区間のノードに設定された絶対値設定モジュールとPr区間のノードに設定された相対値設定モジュールにしたがって、分類器の学習パラメータを設定する処理を実行する。
 分類器生成部127は、個体の木構造におけるL区間のノードに設定された分類器生成モジュールにしたがい、パラメータ設定部126によって設定された制御パラメータを用いて、学習により分類器を生成する処理を実行する。
 分類処理部128は、分類器生成部127によって生成された分類器に対応し、評価画像がどのクラスに属するかを判定する。
 次に、画像処理装置100の処理についてフローチャートを用いて説明する。
 図7は、プログラム生成処理手順の例を示すフローチャートである。
 [ステップS11]GP学習制御部121は、複数の初期個体を生成し、生成した初期個体を示す情報を個体群情報記憶部132に格納する。以下、個体群情報記憶部132に格納される個体のことを「個体群」と呼ぶ。
 初期個体の生成手順としては、基本的に、各区間において図3で説明したような条件にしたがってノードが設定され、各ノードの要素が、ノードが属する区間に対応するプログラムモジュールの中から選択されて設定される。図4のような要素が用いられる場合、初期個体は、例えば、次のような手順で設定される。
 GP学習制御部121は、L区間、Pr区間、Pa区間、T区間にそれぞれ1つずつ含まれるノードに設定する要素を選択する。GP学習制御部121は、各区間のノードに設定する要素を、その区間に対応づけて用意されたプログラムモジュールの中からランダムに選択する。ただし、L区間のノードに設定される分類器生成モジュールは、T区間のノードに設定された分類器種類設定モジュールによって一意に決定される。また、Pa区間のノードに設定される要素は、T区間のノードに設定された分類器設定モジュールに対応する絶対値設定モジュールの中からランダムに選択される。
 また、Pa区間には複数階層のノードが設定されてもよい。その場合、ノードごとに絶対値設定モジュールが個別に用意され、各ノードで異なる種類の制御パラメータが設定されることが望ましい。また、Pa区間とPr区間の各ノード階層数を一致させ、Pa区間のノードごとにPr区間で制御パラメータの微調整が行われるようにすることもできる。
 次に、D区間の最大階層数が2の場合、GP学習制御部121は、D区間の階層数を1とするか2とするかを、ランダムに決定する。階層数が1の場合、T区間のノード数は1となる。GP学習制御部121は、そのノードに設定する要素を、入力データ生成モジュールの中からランダムに選択する。一方、階層数が2の場合、D区間のノード数は2以上となる。GP学習制御部121は、D区間におけるルート側のノードに設定する要素を、入力データ生成モジュールの中からランダムに選択する。選択された入力生成モジュールの入力数が1の場合、リーフ側には1つのノードが設定され、入力数が2の場合、リーフ側には2つのノードが設定される。GP学習制御部121は、設定された各ノードに設定する要素を、入力データ生成モジュールの中からランダムに選択する。このような処理により、D区間の入力数は1から4のいずれかとなる。
 次に、GP学習制御部121は、F区間の要素を設定する。F区間のノード数は、D区間の入力数と同じになる。GP学習制御部121は、F区間の各ノードに設定する要素を、特徴抽出フィルタの中からランダムに選択する。
 次に、GP学習制御部121は、C区間の要素を設定する。C区間のルート側のノード数は、F区間のノード数と同じになる。GP学習制御部121は、C区間のルート側のノードのそれぞれのリーフ側にノードを設定し、各ノードに設定する要素を、画像変換フィルタの中からランダムに選択する。あるノードに設定された画像変換フィルタの入力数が2の場合、そのノードからリーフ側に2つノードが設定される。GP学習制御部121は、要素を設定済みのノードよりリーフ側のノードに、ランダムに選択した画像変換フィルタを設定するとともに、さらにそのリーフ側のノードの数を決定していく。このようにして、GP学習制御部121は、例えば、C区間のルート側のノードからの最大階層数が所定値以下となり、かつ、C区間に含まれるノード数が所定値以下となるように、ノードの構造を決定するとともに、各ノードの要素を決定する。
 [ステップS12]GP学習制御部121は、個体群に含まれる個体の中から、2つの親個体をランダムに選択する。
 [ステップS13]GP学習制御部121は、選択した親個体を用いて2以上の所定数の子個体を生成する。例えば、GP学習制御部121は、選択された2つの親個体の間で交叉を行うことで、2つ以上の所定数の子個体を生成する。GP学習制御部121は、生成された各子個体のいずれかのノードに突然変異を発生させ、そのノードの要素を変更する。なお、交叉および突然変異の方法については、それぞれ図8、図9において詳しく説明する。
 [ステップS14]GP学習制御部121は、生成された子個体の1つを選択する。
 [ステップS15]GP学習制御部121は、選択した子個体に基づいて、学習による分類器の生成、および、生成された分類器についての適応度の算出を実行する。このステップS15の具体的な処理例については、図10~図14において説明する。
 [ステップS16]GP学習制御部121は、ステップS13で生成された子個体のすべてを選択済みかを判定する。GP学習制御部121は、未選択の子個体がある場合には、処理をステップS14に進め、未選択の子個体の中の1つを選択する。一方、GP学習制御部121は、子個体をすべて選択済みである場合、処理をステップS17に進める。
 [ステップS17]GP学習制御部121は、ステップS15で子個体ごとに算出された適応度のうちの最大適応度が、所定の閾値thより大きいかを判定する。GP学習制御部121は、最大適応度が閾値th以下の場合、処理をステップS18に進める。一方、GP学習制御部121は、最大適応度が閾値thより大きい場合、処理をステップS19に進める。
 [ステップS18]GP学習制御部121は、ステップS13で生成された子個体の中から、適応度が最も高い子個体を生存させる子個体として選択する。さらに、GP学習制御部121は、残りの子個体の中から生存させる個体をさらに1つ選択する。この選択処理では、例えば、適応度に応じた確率で個体が選択される。GP学習制御部121は、個体群の個体のうち、ステップS12で選択された親個体を、生存させる2つの個体に入れ替える。
 [ステップS19]GP学習制御部121は、ステップS13で生成された子個体のうち、適応度が最も高い子個体を最良個体と判定し、最良個体に関する出力データを出力データ記憶部133に保存する。この出力データには、最良個体についてのステップS15の処理過程で生成された分類器を示す分類器情報も含まれる。
 なお、ステップS14では子個体のみが選択の対象とされていたが、子個体だけでなくステップS12で選択された親個体も選択の対象とされてもよい。
 図8は、交叉処理手順の例を示すフローチャートである。図8の処理は、図7のステップS13において、2つの親個体から交叉処理によって2つの子個体を生成する場合の処理である。
 [ステップS21]GP学習制御部121は、2つの親個体のうち、一方の親個体からノードをランダムに選択する。
 [ステップS22]GP学習制御部121は、他方の親個体から、ステップS21で選択されたノードと同じ区間のノードを選択する。GP学習制御部121は、その区間にノードが複数存在する場合には、それらの中からランダムにノードを1つ選択する。
 [ステップS23]GP学習制御部121は、一方の親個体の木構造のうち、ステップS21で選択されたノードからリーフ側の木構造と、他方の親個体の木構造のうち、ステップS22で選択されたノードからリーフ側の木構造とを、互いに入れ替える。ただし、ステップS21,S22で選択されたノードがT区間、Pa区間、L区間のいずれかである場合、GP学習制御部121は、T区間、Pa区間およびL区間の木構造も子個体間で入れ替える。
 図9は、突然変異処理手順の例を示すフローチャートである。図9の処理は、図7のステップS13において、生成された子個体に突然変異を発生させる場合の処理である。
 [ステップS31]GP学習制御部121は、子個体からノードをランダムに選択する。
 [ステップS32]GP学習制御部121は、ステップS31で選択されたノードが属する区間を特定する。GP学習制御部121は、要素記憶部150に記憶された、特定した区間に対応する要素の中から、ステップS31で選択されたノードに現在設定されている要素以外の要素をランダムに選択する。
 [ステップS33]GP学習制御部121は、ステップS31で選択されたノードに設定されている要素を、ステップS32で選択された要素に入れ替える。
 ただし、ステップS31で選択されたノードがT区間、Pa区間、L区間のいずれかである場合、GP学習制御部121は、ステップS32,S33において、ステップS31で選択されたノード以外の要素についても入れ替えを行う。具体的には、GP学習制御部121は、まず、T区間のノードについてステップS32,S33の手順で要素の入れ替えを行い、さらに、Pa区間およびL区間のノードの入れ替えを行う。Pa区間のノードの要素は、T区間で新たに選択された要素に対応する要素の中から選択される。L区間のノードの要素は、T区間で新たに選択された要素に対応する要素が選択される。
 図10~図11は、学習・適応度算出処理の手順の例を示すフローチャートである。図10~図11の処理は、図7のステップS15の処理に対応する。図10~図11の処理で利用される子個体とは、図7のステップS14で選択された子個体である。なお、図10~図11では例として、サンプル画像記憶部131には、学習用画像のデータと評価用画像のデータとがそれぞれ複数記憶されているものとする。
 [ステップS51]GP学習制御部121は、学習用画像の中から1つ選択する。
 [ステップS52]画像変換部122は、子個体のC区間のノードに設定された画像変換フィルタにしたがって、ステップS51で選択された学習用画像に対する画像変換処理を実行する。
 [ステップS53]特徴抽出部123は、子個体のF区間のノードに設定された特徴抽出フィルタにしたがって、ステップS52で変換された画像に基づいて特徴量を抽出する。
 [ステップS54]GP学習制御部121は、すべての学習用画像を選択済みかを判定する。未選択の学習用画像がある場合、GP学習制御部121は、処理をステップS51に進め、未選択の学習用画像の中から1つ選択する。一方、すべての学習用画像を選択済みの場合、GP学習制御部121は、処理をステップS55に進める。
 [ステップS55]入力データ生成部124は、子個体のD区間のノードに設定された入力データ生成モジュールにしたがって、ステップS53で抽出された特徴量に基づいて、分類器に入力する入力データを生成する。
 [ステップS56]種類設定部125は、子個体のT区間のノードに設定された分類器種類設定モジュールにしたがって、分類器の種類を設定する。
 [ステップS57]パラメータ設定部126は、子個体のPa区間のノードに設定された絶対値設定モジュールと、Pr区間のノードに設定された相対値設定モジュールとにしたがって、分類器に設定する学習パラメータを設定する。
 [ステップS58]分類器生成部127は、子個体のL区間のノードに設定された分類器生成モジュールにしたがって、分類器生成のための学習処理を実行する。この学習処理では、ステップS57で設定された学習パラメータと、ステップS55で生成された入力データと、各学習画像に付加されたラベルとが利用される。学習処理により、分類器が生成される。実際には、生成された分類器を示す分類器情報が生成される。分類器情報は、例えば、分類器の処理を実現するプログラムモジュール、あるいは、分類器の処理を実現する関数などのプログラムモジュールに設定する制御パラメータである。
 次に、図11のステップS61の処理が実行される。
 [ステップS61]GP学習制御部121は、評価用画像の中から1つ選択する。
 [ステップS62]画像変換部122は、子個体のC区間のノードに設定された画像変換フィルタにしたがって、ステップS61で選択された評価用画像に対する画像変換処理を実行する。
 [ステップS63]特徴抽出部123は、子個体のF区間のノードに設定された特徴抽出フィルタにしたがって、ステップS62で変換された画像に基づいて特徴量を抽出する。
 [ステップS64]入力データ生成部124は、子個体のD区間のノードに設定された入力データ生成モジュールにしたがって、ステップS63で抽出された特徴量に基づいて、分類器に入力する入力データを生成する。
 [ステップS65]分類処理部128は、ステップS58で生成された分類器情報にしたがって、ステップS64で生成された入力データに基づいて、ステップS61で選択された評価用画像がどのクラスに属するかを判定する分類処理を実行する。
 [ステップS66]分類処理部128は、ステップS65の分類処理による分類結果と、ステップS61で選択された評価用画像に付加されたラベルが示すクラスとを比較して、分類結果が正解か不正解かを判定する。
 [ステップS67]GP学習制御部121は、すべての評価用画像を選択済みかを判定する。未選択の学習用画像がある場合、GP学習制御部121は、処理をステップS61に進め、未選択の評価用画像の中から1つ選択する。一方、すべての評価用画像を選択済みの場合、GP学習制御部121は、処理をステップS68に進める。
 [ステップS68]GP学習制御部121は、ステップS66での判定結果から正解率を算出する。GP学習制御部121は、算出された正解率に基づいて、子個体の適応度を算出する。
 このステップS68では、算出された正解率をペナルティ項に応じて補正した値が適応度として出力されてもよい。ペナルティ項としては、特徴次元数、木構造のサイズ(木構造に含まれるノード数またはノードの最大階層数)、SVMが用いられる場合のサポートベクトル数などを適用可能である。例えば、一般に、得られるデータと比較して分類器の複雑さが大きくなるほど、過学習が起こりやすくなる。そこで、GP学習制御部121は、例えば、特徴次元数が大きいほど、また、木構造のサイズが大きいほど、また、サポートベクトル数が大きいほど、正解率を小さくするように補正して適応度を算出する。なお、特徴次元数は、子個体のD区間に設定された入力データ生成モジュールに基づいて判別可能である。このように正解率をペナルティ項に応じて補正することで、学習結果の優劣を正確に評価でき、分類精度の高い画像分類プログラムを生成できる。
 なお、特徴次元数、木構造サイズ、サポートベクトル数の少なくとも1つが極端に小さくなった場合も、過学習の状態に陥って汎化性が低下することがある。このため、ペナルティ項による補正量は単調関数でなくてもよい。
 以上の図10~図11の処理では、学習用画像と評価用画像とが別々に用意されていた。これに対して、交差検定法を用いることで、学習用画像と評価用画像とを個別に用意せず、サンプル画像記憶部131に用意したサンプル画像をすべて用いて分類器の学習と評価とを実行することができる。以下、図12~図14に交差検定法を用いた場合の処理例を挙げる。
 図12~図14は、交差検定法を用いた場合の学習・適応度算出処理の手順の例を示すフローチャートである。図12~図14の処理は、図7のステップS15の処理に対応する。図12~図13の処理で利用される子個体とは、図7のステップS14で選択された子個体である。
 [ステップS71]GP学習制御部121は、サンプル画像の中から1つ選択する。
 [ステップS72]画像変換部122は、子個体のC区間のノードに設定された画像変換フィルタにしたがって、ステップS71で選択されたサンプル画像に対する画像変換処理を実行する。
 [ステップS73]特徴抽出部123は、子個体のF区間のノードに設定された特徴抽出フィルタにしたがって、ステップS72で変換された画像に基づいて特徴量を抽出する。
 [ステップS74]GP学習制御部121は、すべてのサンプル画像を選択済みかを判定する。未選択のサンプル画像がある場合、GP学習制御部121は、処理をステップS71に進め、未選択のサンプル画像の中から1つ選択する。一方、すべてのサンプル画像を選択済みの場合、GP学習制御部121は、処理をステップS75に進める。
 [ステップS75]入力データ生成部124は、子個体のD区間のノードに設定された入力データ生成モジュールにしたがって、ステップS73で抽出された特徴量に基づいて、分類器に入力する入力データを生成する。
 [ステップS76]種類設定部125は、子個体のT区間のノードに設定された分類器種類設定モジュールにしたがって、分類器の種類を設定する。
 [ステップS77]パラメータ設定部126は、子個体のPa区間のノードに設定された絶対値設定モジュールと、Pr区間のノードに設定された相対値設定モジュールとにしたがって、分類器に設定する学習パラメータを設定する。
 [ステップS78]分類器生成部127は、子個体のL区間のノードに設定された分類器生成モジュールにしたがって、分類器生成のための学習処理を実行する。この学習処理では、ステップS77で設定された学習パラメータと、ステップS75で生成された入力データと、各学習画像に付加されたラベルとが利用される。学習処理により、分類器が生成される。
 なお、このステップS78で生成される分類器は、子個体が図7のステップS19で最良個体として選択された場合に、出力データに含められる分類器である。このため、ステップS75~S78の処理は、上記のタイミングでは実行されずに、子個体が最良個体として選択された場合にステップS19において実行されてもよい。
 次に、図13のステップS81の処理が実行される。
 [ステップS81]GP学習制御部121は、サンプル画像を、それぞれ同じ数の画像を含むN個のグループに分類する。GP学習制御部121は、分類したグループのうち、(N-1)個のグループのサンプル画像を学習用画像に決定し、残りの1個のグループのサンプル画像を評価用画像に決定する。
 [ステップS82]GP学習制御部121は、図12のステップS73で抽出された特徴量のうち、ステップS81で決定された学習用画像に基づく特徴量を処理対象として特定する。入力データ生成部124は、子個体のD区間のノードに設定された入力データ生成モジュールにしたがって、処理対象として特定された特徴量に基づいて、分類器に入力する入力データを生成する。
 [ステップS83]種類設定部125は、子個体のT区間のノードに設定された分類器種類設定モジュールにしたがって、分類器の種類を設定する。
 [ステップS84]パラメータ設定部126は、子個体のPa区間のノードに設定された絶対値設定モジュールと、Pr区間のノードに設定された相対値設定モジュールとにしたがって、分類器に設定する学習パラメータを設定する。
 [ステップS85]分類器生成部127は、子個体のL区間のノードに設定された分類器生成モジュールにしたがって、分類器生成のための学習処理を実行する。この学習処理では、ステップS84で設定された学習パラメータと、ステップS82で生成された入力データと、ステップS81で決定された各学習用画像に付加されたラベルとが利用される。学習処理により、分類器が生成される。
 次に、図14のステップS91の処理が実行される。
 [ステップS91]GP学習制御部121は、図13のステップS81で決定された評価用画像の中から1つ選択する。
 [ステップS92]GP学習制御部121は、図12のステップS73で抽出された特徴量のうち、ステップS91で選択された評価用画像に基づいて抽出された特徴量を、処理対象として選択する。入力データ生成部124は、子個体のD区間のノードに設定された入力データ生成モジュールにしたがって、処理対象として選択された特徴量に基づいて、分類器に入力する入力データを生成する。
 [ステップS93]分類処理部128は、図13のステップS85で生成された分類器を用いて、ステップS92で生成された入力データに基づいて、ステップS91で選択された評価用画像がどのクラスに属するかを判定する分類処理を実行する。
 [ステップS94]分類処理部128は、ステップS93の分類処理による分類結果と、ステップS91で選択された評価用画像に付加されたラベルが示すクラスとを比較して、分類結果が正解か不正解かを判定する。
 [ステップS95]GP学習制御部121は、評価用画像をすべて選択済みかを判定する。未選択の評価用画像がある場合、GP学習制御部121は、処理をステップS91に進め、未選択の評価用画像の中から1つ選択する。一方、評価用画像をすべて選択済みである場合、GP学習制御部121は、処理をステップS96に進める。
 [ステップS96]図13のステップS81では、Nグループを学習用画像と評価用画像の各グループに分類することが可能なパターンとして、Nパターン存在する。GP学習制御部121は、これらのすべてのパターンについて処理済みかを判定する。処理済みでないパターンがある場合、GP学習制御部121は、処理をステップS81に進め、処理済みでない新たなパターンによって学習用画像と評価用画像とを特定する。一方、すべてのパターンについて処理済みの場合、GP学習制御部121は、処理をステップS97に進める。
 [ステップS97]GP学習制御部121は、ステップS94での判定結果から正解率を算出する。GP学習制御部121は、算出された正解率に基づいて、子個体の適応度を算出する。また、このステップS68では、GP学習制御部121は、図11のステップS68と同様の手順で、算出された正解率をペナルティ項に応じて補正し、補正後の値を適応度として出力してもよい。
 以上の図12~図14の処理によれば、図10~図11の処理と比較して、少ないサンプル画像を用いて分類精度の高い画像分類プログラムを生成することができる。
 図15は、出力データに基づく画像分類処理手順の例を示すフローチャートである。
 [ステップS101]画像分類処理部112は、出力データ記憶部133に記憶された出力データ210の画像変換フィルタ構造201、特徴抽出フィルタ構造202およびデータ生成モジュール構造203に基づいて、C区間、F区間およびD区間のノードに要素を設定する。
 [ステップS102]画像分類処理部112は、出力データ210の分類器情報207に基づいて、分類器を構築する。
 [ステップS103]画像分類処理部112は、分類処理対象の画像を、画像取得部111を通じて取得する。この画像は、例えば、カメラ107aによって撮像された画像である。
 [ステップS104]画像変換部122は、C区間のノードに設定された画像変換フィルタにしたがって、取得された画像に対する画像変換処理を実行する。
 [ステップS105]特徴抽出部123は、F区間のノードに設定された特徴抽出フィルタにしたがって、ステップS104で変換された画像に基づいて特徴量を抽出する。
 [ステップS106]入力データ生成部124は、D区間のノードに設定された入力データ生成モジュールにしたがって、ステップS105で抽出された特徴量に基づいて、分類器に入力する入力データを生成する。
 [ステップS107]分類処理部128は、出力データ210の分類器情報207に基づく分類器を用いて、ステップS106で生成された入力データに基づいて、取得された画像がどのクラスに属するかを判定する分類処理を実行し、分類結果を出力する。
 また、新たなサンプル画像が得られた場合には、それらのサンプル画像と出力データとを用いて分類器の再学習を実行することもできる。
 図16は、分類器の再学習手順の例を示すフローチャートである。
 [ステップS121]GP学習制御部121は、出力データ記憶部133に記憶された出力データ210の画像変換フィルタ構造201、特徴抽出フィルタ構造202、データ生成モジュール構造203、分類器種類設定モジュール情報204、パラメータ設定モジュール情報205および分類器生成モジュール情報206に基づいて、C区間、F区間、D区間、T区間、Pa区間、Pr区間およびL区間のノードに要素を設定する。なお、図15のステップS101との違いは、出力データ210に基づいて分類器の種類および学習パラメータの設定も行われる点である。
 以後、ステップS121で設定された要素に基づいて、新たに用意されたサンプル画像を学習画像として用いて、図9のステップS51~S58と同様の処理が実行される。なお、ステップS58の学習処理では、新たに用意されたサンプル画像に付加されたラベルが用いられる。
 [ステップS122]GP学習制御部121は、出力データ210の分類器情報207を、ステップS58で生成された分類器の情報に更新する。
 〔第2の実施の形態の変形例〕
 次に、第2の実施の形態に係る画像処理装置100の処理の一部を変形した変形例について説明する。なお、以下の変形例の説明では、第2の実施の形態に係る画像処理装置100の構成要素と同じ符号を用いて説明する。
 画像分類プログラムを生成する際には、特定の区間に属するノードの要素のみを遺伝的プログラミングによって最適化するように制御することもできる。例えば、GP学習制御部121は、T区間、Pa区間、Pr区間およびL区間のノードの要素だけを最適化するようにプログラム生成処理を制御することができる。この場合、個体群に含められる各初期個体では、C区間、F区間およびD区間の各ノードにはあらかじめ決められた要素が設定される。そして、プログラム生成処理中では、T区間、Pa区間、Pr区間およびL区間のノードの要素だけが進化の対象とされ、C区間、F区間およびD区間の各ノードの要素は変更されない。このような制御により、分類器の生成アルゴリズムだけを最適化することができる。
 また、特定の区間に属するノードの要素のみを最適化する処理は、例えば、適応度の算出に用いるペナルティ項を最適化するために利用することができる。例えば、ペナルティ項として用いられる特徴次元数を最適化するためには、画像特徴量に基づいて入力データを生成するまでの処理について遺伝的プログラミングによって最適化すればよい。具体的には、C区間、F区間およびD区間、あるいはF区間とD区間の各ノードの要素のみを最適化すればよい。また、ペナルティ項として用いられるSVMのサポートベクトル数を最適化するためには、分類器の生成の手順を最適化することが有効である。したがって、T区間、Pa区間、Pr区間およびL区間の各ノードの要素のみを最適化すればよい。
 さらに、それぞれ異なる区間のノードの要素だけを最適化する複数の動作モードを設け、これらの動作モードを所定の条件にしたがって切り替えることもできる。以下の変形例では、C区間の要素だけを最適化する動作モード1と、F区間およびD区間のノードの要素だけを最適化する動作モード2と、T区間、Pa区間、Pr区間およびL区間のノードの要素だけを最適化する動作モード3とを切り替え可能であるものとする。すなわち、動作モード1では、学習画像の変換処理のアルゴリズムを最適化できる。動作モード2では、変換された画像に基づいて分類器に入力する入力データを生成する処理のアルゴリズムを最適化できる。動作モード3では、分類器の生成アルゴリズムを最適化することができる。
 図17は、変形例における画像分類プログラムの生成処理手順の例を示すフローチャートである。なお、図17では、図7と同様の処理が行われる処理ステップには、同じステップ番号を付して示している。
 [ステップS11a]GP学習制御部121は、動作モード1に設定する。
 [ステップS11b]GP学習制御部121は、複数の初期個体を生成し、生成した初期個体を示す情報を個体群情報記憶部132に格納する。図7のステップS11との違いは、すべての個体について、C区間以外の区間のノードにはあらかじめ決められた要素が設定される点である。
 この後、図7に示したステップS12~S17の処理が実行される。ただし、ステップS13で子個体を生成する際、特定の区間のノードの要素だけが進化の対象とされる。具体的には、動作モード1ではC区間のノードの要素だけが進化の対象とされ、動作モード2では、F区間およびD区間のノードの要素だけが進化の対象とされ、動作モード3では、T区間、Pa区間、Pr区間およびL区間のノードの要素だけが進化の対象とされる。
 そして、ステップS17において、子個体の適応度のうちの最大適応度が閾値th以下である場合、ステップS18の処理が実行された後、ステップS18aの処理が実行される。
 [ステップS18a]GP学習制御部121は、動作モードを切り替えるための条件が満たされたかを判定し、その判定結果に応じて動作モードを切り替える。現在が動作モード1の場合、動作モード2に切り替えられ、現在が動作モード2の場合、動作モード3に切り替えられる。その後、ステップS12以後の処理が再度実行される。
 動作モードの切り替え方法としては、例えば、適応度の上昇が停滞した場合に動作モードを切り替える方法が考えられる。具体的には、GP学習制御部121は、ステップS16で算出された適応度の最大値の増加率が所定の閾値以下になった場合に、動作モードを次の動作モードに切り替える。これにより、区間ごとにノードの要素を順次最適化することができる。また、別の方法としては、GP学習制御部121は、個体群の世代数が所定数に達した場合に動作モード1から動作モード2に切り替え、世代数がそれより大きい所定数に達した場合に動作モード2から動作モード3に切り替えてもよい。
 なお、上記の各実施の形態に示した装置(プログラム生成装置1および画像処理装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc-Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
 プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
 プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
 上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 1 プログラム生成装置
 1a 生成部
 1b 遺伝的処理部
 10 木構造群
 11a,11b,11c,・・・ 木構造
 12a 第1階層群
 12b 第2階層群
 20 第1要素群
 21a,21b,21c,・・・ 画像フィルタ
 30 第2要素群
 31a,31b,31c,・・・ 設定プログラム

Claims (10)

  1.  それぞれ画像分類プログラムを表す複数の木構造を生成する生成部であって、前記複数の木構造のそれぞれは、1以上の隣接する階層をそれぞれ含む第1階層群と第2階層群とを有し、前記第1階層群のノードの要素は、それぞれ入力画像に対して前処理を施すための複数の画像フィルタの中から選択され、前記第2階層群のノードの要素は、前記第1階層群のノードに対して選択された要素の実行によって得られた情報を基に分類器を生成するための制御パラメータとして、それぞれ異なる値を設定するための複数の設定プログラムの中から選択される、前記生成部と、
     前記複数の木構造に基づいて、遺伝的プログラミングによって適応度が所定の閾値を超える木構造を出力する遺伝的処理部と、
     を有するプログラム生成装置。
  2.  前記複数の木構造のそれぞれは、第3階層群をさらに有し、
     前記第3階層群のノードの要素は、前記情報を基に生成される分類器の種類を設定するための複数の種類設定プログラムの中から選択される、
     請求項1記載のプログラム生成装置。
  3.  前記制御パラメータとしてそれぞれ異なる値を設定するための1以上の前記設定プログラムが、前記複数の種類設定プログラムのそれぞれに対応づけて記憶部に記憶され、
     前記第2階層群のノードの要素は、前記第3階層群のノードの要素として選択された前記種類設定プログラムに対応づけられた1以上の前記設定プログラムの中から選択される、
     請求項2記載のプログラム生成装置。
  4.  前記複数の木構造のそれぞれは、第4階層群をさらに有し、
     前記第4階層群のノードの要素は、前記第2階層群のノードとして選択された前記設定プログラムにしたがって設定される前記制御パラメータの値を、それぞれ異なる値によって補正するための複数の補正プログラムの中から選択される、
     請求項1乃至3のいずれか1項に記載のプログラム生成装置。
  5.  前記複数の画像フィルタのそれぞれは、前記入力画像に基づいて特徴量を抽出するためのプログラムであり、
     前記複数の木構造のそれぞれは、第5階層群をさらに有し、
     前記第5階層群のノードの要素は、前記第1階層群のノードの要素として選択された前記画像フィルタにしたがって抽出された特徴量に基づいて、前記第2階層群のノードの要素に基づく分類器の生成のために入力される入力データを生成するための複数のデータ生成プログラムの中から選択され、
     前記複数のデータ生成プログラムは、それぞれ異なる数の特徴量の入力を受けて前記入力データを生成するためのプログラムであり、前記第5階層群のノードの要素として選択された前記データ生成プログラムについての特徴量の入力数に応じて、前記第1階層群に含まれるノード数が変化する、
     請求項1乃至4のいずれか1項に記載のプログラム生成装置。
  6.  前記遺伝的処理部は、前記複数の木構造が木構造群に含まれる状態を起点として、前記木構造群の中から選択した親の木構造に基づいて子の木構造を生成し、前記子の木構造に基づく処理によって生成された分類器の分類正解率に基づいて前記子の木構造の適応度を算出し、算出された適応度が前記閾値以下である場合に前記木構造群に含まれる木構造の1つを前記子の木構造と入れ替える処理を、繰り返し実行する、
     請求項1乃至5のいずれか1項に記載のプログラム生成装置。
  7.  前記遺伝的処理部は、前記子の木構造におけるノードの構成または前記子の木構造に基づく処理によって生成された分類器に基づくペナルティ項に応じて前記分類正解率を補正した値を、前記子の木構造の適応度として算出する、
     請求項6記載のプログラム生成装置。
  8.  前記子の木構造を生成する際に前記第2階層群のノードの要素を固定したままにする第1の動作モードと、前記子の木構造を生成する際に前記第1階層群のノードの要素を固定したままにする第2の動作モードとを有し、
     前記遺伝的処理部は、前記子の木構造の適応度の増加率に基づいて前記第1の動作モードから前記第2の動作モードに切り替える、
     請求項6または7記載のプログラム生成装置。
  9.  コンピュータが、
     それぞれ画像分類プログラムを表す複数の木構造を生成する生成処理であって、前記複数の木構造のそれぞれは、1以上の隣接する階層をそれぞれ含む第1階層群と第2階層群とを有し、前記第1階層群のノードの要素は、それぞれ入力画像に対して前処理を施すための複数の画像フィルタの中から選択され、前記第2階層群のノードの要素は、前記第1階層群のノードに対して選択された要素の実行によって得られた情報を基に分類器を生成するための制御パラメータとして、それぞれ異なる値を設定するための複数の設定プログラムの中から選択される、前記生成処理を実行し、
     前記複数の木構造に基づいて、遺伝的プログラミングによって適応度が所定の閾値を超える木構造を出力する、
     プログラム生成方法。
  10.  コンピュータに、
     それぞれ画像分類プログラムを表す複数の木構造を生成する生成処理であって、前記複数の木構造のそれぞれは、1以上の隣接する階層をそれぞれ含む第1階層群と第2階層群とを有し、前記第1階層群のノードの要素は、それぞれ入力画像に対して前処理を施すための複数の画像フィルタの中から選択され、前記第2階層群のノードの要素は、前記第1階層群のノードに対して選択された要素の実行によって得られた情報を基に分類器を生成するための制御パラメータとして、それぞれ異なる値を設定するための複数の設定プログラムの中から選択される、前記生成処理を実行し、
     前記複数の木構造に基づいて、遺伝的プログラミングによって適応度が所定の閾値を超える木構造を出力する、
     処理を実行させる生成プログラム。
PCT/JP2015/079759 2015-10-22 2015-10-22 プログラム生成装置、プログラム生成方法および生成プログラム Ceased WO2017068675A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2015/079759 WO2017068675A1 (ja) 2015-10-22 2015-10-22 プログラム生成装置、プログラム生成方法および生成プログラム
CN201580083986.6A CN108140133B (zh) 2015-10-22 2015-10-22 程序生成装置、程序生成方法及记录介质
JP2017546333A JP6646234B2 (ja) 2015-10-22 2015-10-22 プログラム生成装置、プログラム生成方法および生成プログラム
US15/945,276 US11061687B2 (en) 2015-10-22 2018-04-04 Apparatus and method for program generation

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/945,276 Continuation US11061687B2 (en) 2015-10-22 2018-04-04 Apparatus and method for program generation

Publications (1)

Publication Number Publication Date
WO2017068675A1 true WO2017068675A1 (ja) 2017-04-27

Family

ID=58556784

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US11061687B2 (ja)
JP (1) JP6646234B2 (ja)
CN (1) CN108140133B (ja)
WO (1) WO2017068675A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019026104A1 (ja) 2017-07-31 2019-02-07 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
JP2019091249A (ja) * 2017-11-15 2019-06-13 オムロン株式会社 欠陥検査装置、欠陥検査方法、及びそのプログラム
WO2019171524A1 (ja) * 2018-03-08 2019-09-12 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
WO2020012523A1 (ja) 2018-07-09 2020-01-16 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
CN112154463A (zh) * 2018-05-18 2020-12-29 富士通株式会社 信息处理装置、信息处理方法以及信息处理程序
JP2021176070A (ja) * 2020-05-02 2021-11-04 Arithmer Inc 画像検査装置、画像検査方法及びプログラム
WO2022019312A1 (ja) * 2020-07-21 2022-01-27 株式会社アダコテック 情報処理システム、情報処理装置、情報処理方法及びプログラム
JP2024502030A (ja) * 2020-12-30 2024-01-17 ナチュラル コンピューテイション エルエルシー 遺伝的プログラミングを使用する自動特徴抽出

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018088804A1 (en) 2016-11-08 2018-05-17 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
JP6663873B2 (ja) * 2017-02-22 2020-03-13 株式会社日立製作所 プログラム自動生成システム及びプログラム自動生成方法
JP6852141B2 (ja) * 2018-11-29 2021-03-31 キヤノン株式会社 情報処理装置、撮像装置、情報処理装置の制御方法、および、プログラム
JP7404962B2 (ja) * 2020-03-24 2023-12-26 東洋製罐グループホールディングス株式会社 画像処理システム、及び画像処理プログラム
US12423659B2 (en) * 2020-05-05 2025-09-23 Planttagg, Inc. System and method for horticulture viability prediction and display
US11960864B2 (en) * 2021-09-27 2024-04-16 Microsoft Technology Licensing, Llc. Creating applications and templates based on different types of input content

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225752A (ja) * 1993-12-16 1995-08-22 Fujitsu Ltd 状態遷移の概念を導入した問題解決演算装置および方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052678A (en) 1993-12-16 2000-04-18 Fujitsu Limited Problem solving operation apparatus using a state transition
JP4599509B2 (ja) 2004-09-08 2010-12-15 独立行政法人理化学研究所 自己進化型パターン認識システム
JP4667912B2 (ja) 2005-03-09 2011-04-13 富士フイルム株式会社 判別器生成装置、判別器生成方法およびそのプログラム
KR100694473B1 (ko) * 2005-10-31 2007-03-12 한국전력공사 콘크리트 구조물의 내구성 향상을 위한 구체강화물질 및이의 제조방법
JP4660765B2 (ja) 2006-02-13 2011-03-30 国立大学法人横浜国立大学 進化型画像自動分類装置、フィルタ構造生成方法、及びプログラム
JP2012501029A (ja) * 2008-08-29 2012-01-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 3次元画像データの動的伝送のための方法及び装置
EP2343878B1 (en) * 2008-10-27 2016-05-25 Nippon Telegraph And Telephone Corporation Pixel prediction value generation procedure automatic generation method, image encoding method, image decoding method, devices using these methods, programs for these methods, and recording medium on which these programs are recorded
JP2010266983A (ja) 2009-05-13 2010-11-25 Sony Corp 情報処理装置及び方法、学習装置および方法、プログラム、並びに情報処理システム
US9355337B2 (en) * 2009-08-25 2016-05-31 Xerox Corporation Consistent hierarchical labeling of image and image regions
CN103679188A (zh) * 2012-09-12 2014-03-26 富士通株式会社 图像分类器生成方法和装置及图像分类方法和装置
US20150206069A1 (en) * 2014-01-17 2015-07-23 Matthew BEERS Machine learning-based patent quality metric
CN103942571B (zh) * 2014-03-04 2017-02-08 西安电子科技大学 一种基于遗传规划算法的图形图像分类方法
CN103903055B (zh) * 2014-03-21 2016-09-07 国家电网公司 基于无向图所有生成树的网络重构方法
CN104537382A (zh) * 2015-01-12 2015-04-22 杭州电子科技大学 基于遗传算法优化支持向量机的肌电信号步态识别方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225752A (ja) * 1993-12-16 1995-08-22 Fujitsu Ltd 状態遷移の概念を導入した問題解決演算装置および方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ATSUSHI SHIROMARU ET AL.: "Automatic Design of Image Recognition Algorithms using Genetic Programming", IEICE TECHNICAL REPORT, vol. 101, no. 363, 2001, pages 21 - 28, ISSN: 0913-5685 *
ATSUSHI SHIROMARU ET AL.: "Jinko Chino ni yoru Gazo Ninshiki System no Jido Seisei", IMAGE LAB, vol. 13, no. 8, 2002, pages 1 - 5, ISSN: 0915-6755 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019026104A1 (ja) 2017-07-31 2019-02-07 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
US11055571B2 (en) 2017-07-31 2021-07-06 Fujitsu Limited Information processing device, recording medium recording information processing program, and information processing method
JP2019091249A (ja) * 2017-11-15 2019-06-13 オムロン株式会社 欠陥検査装置、欠陥検査方法、及びそのプログラム
JP7004145B2 (ja) 2017-11-15 2022-01-21 オムロン株式会社 欠陥検査装置、欠陥検査方法、及びそのプログラム
JPWO2019171524A1 (ja) * 2018-03-08 2020-12-03 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
WO2019171524A1 (ja) * 2018-03-08 2019-09-12 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US11284038B2 (en) 2018-03-08 2022-03-22 Fujitsu Limited Information processing apparatus, information processing method, and computer-readable recording medium recording information processing program
CN112154463A (zh) * 2018-05-18 2020-12-29 富士通株式会社 信息处理装置、信息处理方法以及信息处理程序
CN112384892A (zh) * 2018-07-09 2021-02-19 富士通株式会社 信息处理装置、信息处理方法以及信息处理程序
WO2020012523A1 (ja) 2018-07-09 2020-01-16 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
EP3822872A4 (en) * 2018-07-09 2021-08-04 Fujitsu Limited INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING PROGRAM
JP2021176070A (ja) * 2020-05-02 2021-11-04 Arithmer Inc 画像検査装置、画像検査方法及びプログラム
WO2021225097A1 (ja) * 2020-05-02 2021-11-11 Arithmer株式会社 画像検査装置、画像検査方法及びプログラム
JP6989860B2 (ja) 2020-05-02 2022-01-12 Arithmer株式会社 画像検査装置、画像検査方法及びプログラム
WO2022019312A1 (ja) * 2020-07-21 2022-01-27 株式会社アダコテック 情報処理システム、情報処理装置、情報処理方法及びプログラム
JP2024502030A (ja) * 2020-12-30 2024-01-17 ナチュラル コンピューテイション エルエルシー 遺伝的プログラミングを使用する自動特徴抽出

Also Published As

Publication number Publication date
CN108140133A (zh) 2018-06-08
JP6646234B2 (ja) 2020-02-14
CN108140133B (zh) 2022-03-22
JPWO2017068675A1 (ja) 2018-08-16
US11061687B2 (en) 2021-07-13
US20180225125A1 (en) 2018-08-09

Similar Documents

Publication Publication Date Title
JP6646234B2 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
Chen et al. Geometric anchor correspondence mining with uncertainty modeling for universal domain adaptation
JP6798619B2 (ja) 情報処理装置、情報処理プログラム及び情報処理方法
EP3029614B1 (en) Parallel development and deployment for machine learning models
JP7028322B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Hadavandi et al. A novel Boosted-neural network ensemble for modeling multi-target regression problems
Liao et al. Similarity searching for defective wafer bin maps in semiconductor manufacturing
US11989656B2 (en) Search space exploration for deep learning
US11003989B2 (en) Non-convex optimization by gradient-accelerated simulated annealing
JP2019159836A (ja) 学習プログラム、学習方法および学習装置
CN108475425A (zh) 图像处理装置、图像处理方法及图像处理程序
WO2014118978A1 (ja) 学習方法、情報処理装置および学習プログラム
JP7206892B2 (ja) 画像検査装置、画像検査のための学習方法および画像検査プログラム
CN113343918A (zh) 一种电力设备识别方法、系统、介质及电子设备
CN115730234A (zh) 基于人工智能的用户行为预测方法、装置、设备及介质
JP7563495B2 (ja) 学習装置、学習方法、及び、プログラム
Fung et al. Model selection of anomaly detectors in the absence of labeled validation data
WO2019220608A1 (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN113792748B (zh) 基于特征提取和双支持向量机的糖尿病视网膜病变分类器创建方法及装置
JP2009070321A (ja) 文書分類装置、及び文書分類プログラム
JP2022089430A (ja) 画像処理システム、及び画像処理プログラム
US20240303543A1 (en) Model training method and model training apparatus
Chauhan et al. A Fine-Tuned ConvNextSmall Approach for Accurate Footwear Classification: Model Performance and Evaluation
WO2017056320A1 (ja) プログラム生成装置、プログラム生成方法および生成プログラム
Yadav et al. CSRBoost: Clustered Sampling with Resampling Boosting for Imbalanced Dataset Pattern Classification

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: 15906681

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017546333

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: 15906681

Country of ref document: EP

Kind code of ref document: A1