WO2017126046A1 - 画像処理装置、画像処理方法および画像処理プログラム - Google Patents
画像処理装置、画像処理方法および画像処理プログラム Download PDFInfo
- Publication number
- WO2017126046A1 WO2017126046A1 PCT/JP2016/051519 JP2016051519W WO2017126046A1 WO 2017126046 A1 WO2017126046 A1 WO 2017126046A1 JP 2016051519 W JP2016051519 W JP 2016051519W WO 2017126046 A1 WO2017126046 A1 WO 2017126046A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image processing
- program
- image
- node
- processing program
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/776—Validation; Performance evaluation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
- G06F18/2111—Selection of the most significant subset of features by using evolutionary computational techniques, e.g. genetic algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Definitions
- the present invention relates to an image processing apparatus, an image processing method, and an image processing program.
- a technology that automatically generates an image processing program for executing desired image processing by genetic programming has attracted attention.
- This technology uses an input image and a target processing result (for example, a target image) to optimize an image processing program generated by combining partial programs for image processing by genetic programming. It is.
- This appearance inspection device performs an appearance inspection of an inspection object using the created algorithm, calculates an evaluation value based on the inspection result, and re-learns the algorithm depending on whether the evaluation value satisfies a predetermined condition. Determine the need.
- Image processing accuracy decreases. Therefore, when it is determined that the desired image processing accuracy cannot be maintained, the image processing program is re-learned by adding the input image captured by changing the imaging environment and the imaging target and the target processing result. Is called.
- image processing using the image processing program cannot be executed until a new image processing program is generated by relearning. For example, if an image processing program is used to align or inspect parts on a product production line, the production line must be stopped until a new image processing program is generated by relearning. Don't be. For this reason, the problem is how quickly the timing at which the relearning of the image processing program is required can be determined before the image processing accuracy significantly decreases.
- an object of the present invention is to provide an image processing apparatus, an image processing method, and an image processing program capable of detecting a sign of a decrease in image processing accuracy by an image processing program.
- an image processing apparatus having the following storage unit and calculation unit.
- the storage unit stores an image processing program having a tree structure in which a partial program is incorporated in each of a plurality of nodes.
- the arithmetic unit calculates a feature amount based on the processing result of each of the intermediate nodes excluding the terminal node among the plurality of nodes, each time performing image processing on the captured image captured by the imaging device according to the image processing program Then, the performance evaluation value of the image processing program is calculated based on the variation amount of the feature amount with time.
- an image processing method in which processing similar to that of the above-described image processing apparatus is executed by a computer. Furthermore, in one proposal, an image processing program that causes a computer to execute the same processing as that of the above-described image processing apparatus is provided.
- FIG. 1 is a diagram illustrating a configuration example and a processing example of an image processing apparatus according to a first embodiment. It is a figure which shows the hardware structural example of the image processing apparatus which concerns on 2nd Embodiment. It is a figure which shows the example of the regeneration timing of an image processing program. It is a graph shown about the transition of a recognition rate. It is a figure for demonstrating calculation of the parameter
- 14 is a flowchart illustrating an example of an image processing program and reference information generation processing procedure according to the third embodiment.
- 15 is a flowchart illustrating an example of a processing procedure when an image processing program is executed in the third embodiment. It is a block diagram which shows the structural example of the processing function of the program generation apparatus and image processing apparatus which concern on 4th Embodiment. It is a figure which shows the structural example of the image processing system which concerns on 5th Embodiment.
- FIG. 1 is a diagram illustrating a configuration example and a processing example of the image processing apparatus according to the first embodiment.
- the image processing apparatus 1 includes a storage unit 1a and a calculation unit 1b.
- the storage unit 1a is a storage device such as a RAM (Random Access Memory) or a HDD (Hard Disk Drive).
- the computing unit 1b is, for example, a processor.
- the image processing program 2 is stored in the storage unit 1a.
- the image processing program 2 has a tree structure in which a partial program is incorporated in each of a plurality of nodes.
- the image processing program 2 is generated using genetic programming. In the generation of the image processing program 2 using genetic programming, learning is performed using one or more sets of learning data each including an input image and target data. By learning, the structure of the nodes in the tree structure and the partial programs incorporated in each node are optimized.
- the image processing program 2 has nodes N1 to N4.
- the calculation unit 1b executes the image processing program 2 with the captured image 3 as an input, the following processing is executed.
- the captured image 3 is an image captured by an imaging device (not shown).
- processing for the captured image 3 input to the input terminal In is executed according to the partial program incorporated in the node N1, and a processing result 11 is output.
- processing for the processing result 11 is executed according to the partial program incorporated in the node N2, and the processing result 12 is output.
- processing is performed on the captured image 3 input to the input terminal In according to the partial program incorporated in the node N3, and the processing result 13 is output.
- processing for the processing results 12 and 13 is executed according to the partial program incorporated in the node N4.
- the node N4 is a terminal node, and the processing result at the node N4 is output from the output terminal Out.
- the calculation unit 1b executes the image processing program 2 with the captured image 3 acquired from an imaging device (not shown) as an input. Every time image processing is executed in accordance with the image processing program 2, the calculation unit 1b is based on the processing results 11 to 13 in the intermediate nodes excluding the terminal node among the nodes N1 to N4, that is, the nodes N1 to N3. 20 is calculated (step S1).
- the feature value 20 is calculated as a combination of node feature values calculated based on each of the processing results 11 to 13. For example, when the processing results 11 to 13 are obtained as images, the average luminance value in each image is calculated as the node feature amount. Further, for example, the node feature amount may be calculated by a different calculation method for each type of partial program incorporated in each intermediate node.
- the computing unit 1b calculates the performance evaluation value of the image processing program 2 based on the calculated variation amount of the feature amount 20 with time (step S2).
- the variation amount is calculated as, for example, the distance between the initial feature amount calculated at the time of generation of the image processing program 2 and the current feature amount 20.
- the variation range of the feature amount calculated when the image processing program 2 is executed the most recent predetermined number of times may be calculated as the variation amount.
- the image processing program 2 when the image processing program 2 is generated, learning is performed using learning data according to prediction of a change in the imaging environment and a change in the specification of the imaging target, so that the image processing program 2 with high robustness is performed. Is generated. However, when time elapses after the operation using the image processing program 2 is started, there may be a change in the imaging environment and a change in the specification of the imaging target that could not be predicted at the time of generation. In that case, the image processing accuracy by the image processing program 2 decreases. Here, the image processing accuracy indicates how close the processing result for the captured image is to the result desired by the user of the image processing program 2.
- the processing result at the intermediate node of the image processing program 2 is greatly affected by the change in the imaging environment and the state change of the imaging object as compared with the final processing result at the terminal node.
- the partial program included in the intermediate node includes a partial program for extracting features from the image in order to obtain the final result of image processing.
- the variation amount of the feature amount based on the processing result at the intermediate node a change in the imaging environment and a change in the state of the imaging target can be captured with sensitivity.
- 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.
- a RAM 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 109.
- the RAM 102 is used as a main storage device of the image processing apparatus 100.
- the RAM 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the processor 101.
- the RAM 102 stores various data necessary for processing by the processor 101.
- Peripheral devices connected to the bus 109 include an HDD 103, a graphic processing device 104, an input interface 105, a reading device 106, a communication interface 107, and a network interface 108.
- the HDD 103 is used as an auxiliary storage device of the image processing apparatus 100.
- the HDD 103 stores an OS program, application programs, and various data.
- As the auxiliary storage device other types of nonvolatile storage devices such as SSD (SolidSoState Drive) can be used.
- the graphic processing device 104 is connected to a display device 104a.
- the graphic processing device 104 displays an image on the screen of the display device 104a in accordance with an instruction from the processor 101.
- Examples of the display device include a liquid crystal display and an organic EL (ElectroLuminescence) display.
- the input device 105 a is connected to the input interface 105.
- the input interface 105 transmits a signal output from the input device 105a to the processor 101.
- Examples of the input device 105a include a keyboard and a pointing device.
- Examples of pointing devices include a mouse, a touch panel, a tablet, a touch pad, and a trackball.
- the portable recording medium 106a is detached from the reading device 106.
- the reading device 106 reads the data recorded on the portable recording medium 106 a and transmits it to the processor 101.
- Examples of the portable recording medium 106a include an optical disk, a magneto-optical disk, and a semiconductor memory.
- the communication interface 107 transmits / receives data to / from a connected external device.
- a camera 107 a is connected to the communication interface 107 as an external device, and the communication interface 107 transmits image data transmitted from the camera 107 a to the processor 101.
- the network interface 108 transmits and receives data to and from other devices via the network 108a.
- the processing functions of the image processing apparatus 100 can be realized.
- the image processing apparatus 100 has a function of generating an image processing program by genetic programming.
- an image processing program is defined by a tree structure, and a partial program is incorporated in each node.
- learning data including an input image and a target processing result (for example, a target image)
- the node structure in the tree structure and the partial program incorporated in each node are optimized.
- image processing realized by the image processing program includes, for example, edge detection, region detection, and template matching.
- image processes for example, an image in which a specific edge, a specific region, and a template image region in an input image are expressed by specific pixel values is output. In this case, such an output image is set as a target image included in the learning data.
- position information of a specific edge, a specific region, and a template image region in the input image may be output. In this case, the position information is the target data included in the learning data.
- a use of obtaining a desired effect by performing image processing on an image obtained by capturing a product in the FA (Factory Automation) field can be considered.
- image processing is performed on an image obtained by capturing the appearance of a product, and a part where a defect has occurred is extracted, a part where alignment is performed is extracted, and whether or not a specific part is mounted is determined. Conceivable.
- FIG. 3 is a diagram showing an example of the regeneration timing of the image processing program.
- a method for determining the timing at which the image processing program needs to be regenerated a method using image processing accuracy based on the final processing result of the image processing can be considered.
- FIG. 3 assuming that processing of detecting the position of a specific portion on the imaging target is assumed as an example of image processing, a recognition rate indicating a ratio of correctly detecting the position of the specific portion as an example of an index indicating image processing accuracy Indicates.
- the image processing program used in the manufacturing apparatus is also generated during the development period (period P1) of the manufacturing apparatus.
- a captured image 50a in which the parts 51 and 52 mounted on the product are captured is used as one of the input images of learning data.
- the positions of the edge 51a of the component 51 and the edge 52a of the component 52 in the captured image 50a are used as corresponding target data.
- period P2 the manufacture of the product using the manufacturing apparatus and the image processing program is started (period P2).
- the surrounding environment of the apparatus gradually changes, such as a change in illumination, and the recognition rate of the edges 51a and 52a gradually decreases along with the change.
- the recognition rate has decreased to an unacceptable level at timing T1.
- a captured image 50b in which the brightness of the components 51 and 52 is reduced due to a decrease in the amount of illumination light is captured at timing T1, and the positions of the edges 51a and 52a cannot be correctly detected from the captured image 50b.
- a learning image including a captured image for example, the captured image 50b
- the components 51 and 52 appear dark as an input image and learning data including the positions of the edges 51a and 52a in the captured image as target data
- the processing program is regenerated (period P3).
- the production of the product using the regenerated image processing program is resumed (period P4).
- a captured image obtained by capturing a product in which the attachment positions of the components 51 and 52 are changed for example, learning data including the captured image 50c as an input image and the positions of the edges 51a and 52a in the captured image as target data is added.
- learning data including the captured image 50c as an input image and the positions of the edges 51a and 52a in the captured image as target data is added.
- the image processing program is regenerated (period P5), and the manufacture of the product using the regenerated image processing program is resumed (period P6).
- FIG. 4 is a graph showing the transition of the recognition rate.
- the graph 61 in FIG. 4 shows the recognition rate when the reduction in image processing accuracy is determined from the recognition rate, which is an index based on the final result of image processing, as described in FIG. 3, and the image processing program is regenerated. An example of transition is shown. In the time axis direction, the period for regenerating the image program is not included. According to the graph 61, when the recognition rate decreases to a predetermined threshold, the image processing program is regenerated and the recognition rate is restored.
- the image processing apparatus 100 is based on the final result of the image processing when a change in the imaging environment or a change in the state of the imaging target occurs as shown in the graph 62. Based on a new index that changes more greatly than the index, the timing at which the image processing program needs to be regenerated is determined. By determining that the image processing program needs to be regenerated when such a new index greatly fluctuates, it is possible to start regenerating the image processing program before the accuracy of the image processing program significantly decreases. As a result, the image processing program can be updated without stopping the product manufacturing process using the image processing program.
- FIG. 5 is a diagram for explaining calculation of an index for evaluating the necessity of program regeneration.
- the image processing apparatus 100 calculates an index for evaluating the necessity of regenerating the image processing program based on the processing result at each intermediate node of the image processing program.
- An intermediate node of the image processing program includes many image filters for detecting features in the input image in order to obtain a final result of the image processing.
- the processing results of these image filters change sensitively to changes in the imaging environment and changes in the state of the imaging target. For this reason, by using an index based on the processing result at the intermediate node, it is possible to detect signs of deterioration in image processing accuracy at an early stage and start regenerating the image processing program.
- FIG. 5 shows an image processing program having nodes N11 to N31 as an example.
- image processing using this image processing program for example, when a captured image 61a in which the parts 62 and 63 are captured is input, the positions of the edge 62a of the part 62 and the edge 63a of the part 63 are detected.
- a straight line 62b corresponding to the edge 62a and a straight line 63b corresponding to the edge 63a are represented by specific luminance.
- the image processing apparatus 100 calculates the above index based on the processing result in each of the intermediate nodes (nodes N11 to N30) excluding the terminal node (node N31). To do.
- the processing results in each of the nodes N11 to N30 that are intermediate nodes are output as images.
- the processing result at the intermediate node is described as “intermediate processing result”, and when an image is output as the intermediate processing result, the image is described as “intermediate image”.
- the intermediate image 64 is output as the intermediate processing result at the node N15
- the intermediate image 65 is output as the intermediate processing result at the node N26
- the intermediate image 66 is output as the intermediate processing result at the node N29.
- the image processing apparatus 100 calculates an index for evaluating the necessity of regenerating the image processing program based on the intermediate processing result in each intermediate node.
- this index is referred to as “feature amount”.
- the image processing apparatus 100 calculates a “node feature amount” for each intermediate processing result based on each intermediate processing result.
- the feature amount is represented as a set of node feature amounts. If the number of intermediate nodes of the image processing program is m, the feature amount F can be expressed as (MF 1 , MF 2 ,..., MF m ).
- the node feature amount can be calculated as an average luminance in the intermediate image, for example. Further, for each type of partial program incorporated in the intermediate node, the node feature amount may be calculated by a different method based on the intermediate processing result. For example, the node feature amount may be calculated from the intermediate image by a calculation method as shown in FIG.
- FIG. 6 is a diagram illustrating an example of a node feature amount calculation method corresponding to the type of partial program.
- the partial program is a Smooth (smoothing) filter or an Inverse (gradation inversion) filter
- the node feature amount is calculated as an average luminance in the intermediate image.
- the node feature amount is calculated as the maximum value or the minimum value of the luminance in the intermediate image, or both.
- the node feature amount is the number or ratio of pixels having a positive pixel value among the pixels of the intermediate image, or the number or ratio of pixels having a negative difference value, or It is calculated as both.
- the node feature amount is calculated as the number or ratio of pixels in the intermediate image that have a pixel value greater than or equal to a predetermined value (for example, 255) greater than zero.
- the node feature amount is calculated as the number or ratio of pixels having a pixel value of 0 among the pixels of the intermediate image.
- the partial program is one of a threshold (threshold processing) filter, an And (logical product) filter, and an Or (logical sum) filter
- the node feature amount is one of the pixels of the intermediate image that is a binary image. It is calculated as the number or ratio of pixels having a value (for example, white pixels).
- the node feature amount is calculated as a reduction amount of a pixel (for example, a white pixel) having one pixel value among pixels of an intermediate image that is a binary image.
- the node feature amount is calculated as an increase amount of a pixel (for example, a white pixel) having one pixel value among pixels of an intermediate image that is a binary image.
- FIG. 7 is a diagram for explaining a process in the case of setting a divided area in the intermediate image.
- the intermediate image may be divided into a plurality of divided regions, and the node feature amount may be calculated for each divided region.
- the intermediate image is equally divided into three in the horizontal direction. Then, the node feature amount is calculated for each of the divided areas 64a, 64b, and 64c in the intermediate image 64 and the divided areas 66a, 66b, and 66c in the intermediate image 66. Further, the node feature amount may be calculated from any one divided region in the intermediate image.
- FIG. 8 is a diagram illustrating a first example of a change in node feature amount over time.
- FIG. 9 is a diagram illustrating a second example of a change in node feature amount with time.
- FIG. 8 shows changes in the node feature amount calculated based on the intermediate image output from the node N15 shown in FIG. Here, it is assumed that the node feature amount is calculated for each divided region obtained by equally dividing the intermediate image into three in the horizontal direction.
- the graph 71a shows the change of the node feature amount based on the left divided area (first area) in the intermediate image.
- the graph 71b shows a change in node feature amount based on an intermediate divided region (second region) in the intermediate image.
- the graph 71c shows the change of the node feature amount based on the right divided area (third area) in the intermediate image.
- FIG. 9 shows changes in the node feature amount calculated based on the intermediate image output from the node N29 shown in FIG.
- the graph 72a shows the change of the node feature amount based on the left divided area (first area) in the intermediate image.
- the graph 72b shows a change in node feature amount based on an intermediate divided region (second region) in the intermediate image.
- the graph 72c shows the change of the node feature amount based on the right divided area (third area) in the intermediate image.
- the node feature amount is calculated as an average luminance.
- the graph 70 shown in FIG. 8, FIG. 9 shows the transition of the recognition result which shows whether the specific area
- the recognition result “1” indicates that the recognition has been correctly performed, and the recognition result “0” indicates that the recognition has not been correctly performed.
- the specific area can be correctly recognized until the timing T11, but the specific area cannot be correctly recognized from the timing T11.
- the use of the node feature amount based on the second area than the first area and the third area can more accurately detect the timing at which the image processing program needs to be regenerated.
- the cause is considered to be that a specific area to be recognized is reflected in the second area. Therefore, the image processing apparatus 100 may calculate the node feature amount corresponding to each intermediate node only from the information of the second region of the intermediate image. As a result, it is possible to shorten the node feature amount calculation processing time without reducing the determination accuracy of the necessity for regeneration, and as a result, it is possible to shorten the time required to determine whether the image processing program needs to be regenerated.
- FIG. 10 is a block diagram illustrating a configuration example of processing functions included in the image processing apparatus.
- the image processing apparatus 100 includes a learning data storage unit 111, a partial program storage unit 112, a program storage unit 113, a reference information storage unit 114, an intermediate processing result storage unit 115, a captured image acquisition unit 121, a program generation unit 122, and reference information calculation.
- Unit 123, program execution unit 124, and determination processing unit 125 is a learning data storage unit 111, a partial program storage unit 112, a program storage unit 113, a reference information storage unit 114, an intermediate processing result storage unit 115, a captured image acquisition unit 121, a program generation unit 122, and reference information calculation.
- Unit 123, program execution unit 124, and determination processing unit 125 is a block diagram illustrating a configuration example of processing functions included in the image processing apparatus.
- the learning data storage unit 111, the partial program storage unit 112, the program storage unit 113, the reference information storage unit 114, and the intermediate processing result storage unit 115 are storage areas of a storage device included in the image processing apparatus 100 such as the RAM 102 or the HDD 103, for example. Realized. Each process of the captured image acquisition unit 121, the program generation unit 122, the reference information calculation unit 123, the program execution unit 124, and the determination processing unit 125 is performed, for example, by the processor 101 included in the image processing apparatus 100 executing a predetermined program. Realized.
- the learning data storage unit 111 stores learning data used when the image program is generated. Each learning data includes an input image and target data or target image that is a target when image processing is performed on the input image.
- the partial program storage unit 112 stores a plurality of types of partial programs that can be incorporated into each node of the image processing program having a tree structure.
- the program storage unit 113 stores an image processing program generated by genetic programming. Actually, the program storage unit 113 only needs to store the connection configuration of the nodes of the generated image processing program and the identification information of the partial program incorporated in each node.
- the reference information storage unit 114 stores various reference information used for determining whether or not the image processing program needs to be regenerated when the generated image processing program is executed.
- the intermediate processing result storage unit 115 stores the intermediate processing result output by the processing at each intermediate node when the generated image processing program is executed.
- the captured image acquisition unit 121 acquires a captured image captured by the camera 107a.
- the acquired captured image is used as an input image included in the learning data, for example.
- the captured image acquisition unit 121 acquires a captured image from the camera 107 a and outputs the captured image to the program execution unit 124 when the program execution unit 124 executes the generated image processing program.
- the program generation unit 122 uses the learning data stored in the learning data storage unit 111 to generate an image processing program by genetic programming. At the time of generation, the program generation unit 122 acquires a partial program to be incorporated into each node from the partial program storage unit 112. The program generation unit 122 stores information about the generated image processing program in the program storage unit 113.
- the reference information calculation unit 123 executes the generated image processing program using each learning data used when generating the image processing program, calculates the reference information based on the intermediate processing result in each intermediate node, It is stored in the reference information storage unit 114.
- the reference information is used to determine whether the image processing program needs to be regenerated when the generated image processing program is executed by the program execution unit 124.
- the reference information includes an initial feature amount and a threshold value.
- the program execution unit 124 constructs the generated image processing program based on information in the program storage unit 113, and executes the constructed image processing program with the captured image acquired by the captured image acquisition unit 121 as an input.
- the program execution unit 124 includes an intermediate processing result output unit 126.
- the intermediate processing result output unit 126 stores the intermediate processing result output from each intermediate node when the image processing program is executed in the intermediate processing result storage unit 115.
- the determination processing unit 125 calculates a feature amount based on the intermediate processing result stored in the intermediate processing result storage unit 115. The determination processing unit 125 determines whether it is necessary to regenerate the image processing program based on the calculated feature amount and the reference information stored in the reference information storage unit 114.
- FIG. 11 is a flowchart illustrating an example of an image processing program and reference information generation processing procedure.
- the program generation unit 122 sets learning data used when generating the image processing program. For example, when the image processing program is generated for the first time, the program generation unit 122 stores the captured image acquired by the captured image acquisition unit 121 in the learning data storage unit 111 as an input image of learning data in accordance with a user operation. . Further, the program generation unit 122 generates a target image or target data corresponding to the input image in accordance with a user operation, and stores the target image or target data in the learning data storage unit 111 in association with the input image. Thereby, one or more sets of learning data are stored in the learning data storage unit 111.
- the program generating unit 122 uses at least a part of the captured image used as the input image at the time of executing the program in the program executing unit 124 from the previous regeneration to the present time as the learning data. It is stored in the learning data storage unit 111 as an input image. In addition, the program generation unit 122 generates target images or target data corresponding to these input images in accordance with user operations, and stores them in the learning data storage unit 111 in association with the input images. As a result, new learning data is added to the learning data storage unit 111.
- the program generation unit 122 generates an image processing program by genetic programming using the learning data stored in the learning data storage unit 111.
- the program generation unit 122 stores information about the generated image processing program in the program storage unit 113.
- the reference information calculation unit 123 selects one of the learning data used in the program generation process in step S12.
- the reference information calculation unit 123 receives the input image of the selected learning data as an input, executes the generated image processing program, and calculates an intermediate processing result at each intermediate node of the image processing program.
- the reference information calculation unit 123 calculates a feature amount based on each calculated intermediate processing result. As described above, the feature amount is represented as a set of node feature amounts calculated based on the intermediate processing result in each intermediate node.
- Step S15 The reference information calculation unit 123 determines whether all learning data used in the program generation process has been processed. If there is unprocessed learning data, the process returns to step S13, and one unprocessed learning data is selected. On the other hand, when all the learning data has been processed, the process of step S16 is executed.
- the reference information calculation unit 123 calculates the initial feature amount F0 and the threshold value TH as reference information using the feature amount calculated based on each learning data, and stores it in the reference information storage unit 114.
- n sets of learning data are used in the program generation process of step S12, n sets of feature quantities are calculated at the time when step S16 is executed.
- the reference information calculation unit 123 calculates the average of these n sets of feature values as the initial feature value F0. Specifically, the reference information calculation unit 123 calculates an average value of node feature values for each intermediate node included in n sets of feature values. Assuming that the number of nodes of the image processing program is m, an initial feature quantity F0 including m average node feature quantities is calculated by this calculation.
- FIG. 6 when the node feature amount is calculated by a different method for each type of partial program incorporated in the intermediate node, each node feature amount is normalized and the average value is calculated. Calculated.
- the reference information calculation unit 123 calculates a numerical value indicating the degree of variation in the n sets of feature amounts as the threshold value TH. For example, the reference information calculation unit 123 calculates the distance between each of the n feature amounts and the initial feature amount F0. For example, the Euclidean distance or the Mahalanobis distance is calculated as the distance. The reference information calculation unit 123 calculates the average value AVE and standard deviation ⁇ of the calculated n distances. The reference information calculation unit 123 calculates an addition value of the average value AVE and the standard deviation ⁇ as the threshold value TH.
- FIG. 12 is a flowchart illustrating an example of a generation processing procedure of the image processing program.
- the process in FIG. 12 corresponds to the process in step S12 in FIG. [Step S121]
- the program generation unit 122 generates a plurality of initial individuals to be included in the population.
- a partial program is randomly selected from a plurality of types of partial programs stored in the partial program storage unit 112 and incorporated in each initial individual node.
- the program generation unit 122 randomly selects a certain number of parent individuals from the population. Hereinafter, it is assumed that two parent individuals are selected as an example.
- the program generation unit 122 performs an evolution process on the two selected parent individuals to generate two or more constant child individuals. In the evolution process, 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.
- Step S124 The program generation unit 122 calculates the fitness for each of the parent individual selected in Step S122 and the child individual generated in Step S123.
- image processing using each target individual is executed for each input image included in each learning data, and the target image or target data corresponding to the post-execution image is compared and applied. The degree is calculated.
- an average value of fitness obtained using each of the plurality of sets of learning data is calculated for each individual.
- the fitness of the initial individual included in the population may be calculated at the time when the population is generated in step S121. In this case, in step S124, only the fitness of the generated child individual is calculated.
- Step S125 The program generation unit 122 determines whether the fitness of one of the generated child individual and the original parent individual is greater than a predetermined threshold. If all fitness values are equal to or less than the threshold value, the process of step S126 is executed. When the fitness value of 1 or more is larger than the threshold value, the process of step S127 is executed.
- Step S126 The program generation unit 122 performs survival selection from the parent individual selected in Step S122 and the child individual generated in Step S123. For example, the individual with the maximum fitness value calculated is selected as the first surviving individual, and the second surviving individual is selected from the remaining individuals with a probability corresponding to the fitness value.
- the program generation unit 122 replaces the two individuals selected as parent individuals in step S122 among the individuals included in the population with the first surviving individual and the second surviving individual. As a result, the generation of the population is updated.
- Step S127 The program generation unit 122 selects an individual with the highest fitness as the best individual among the parent individual selected in Step S122 and the child individual generated in Step S123. The selected best individual becomes an optimized image processing program. The program generation unit 122 stores information representing the selected best individual in the program storage unit 113.
- FIG. 13 is a flowchart illustrating an example of a processing procedure when the generated image processing program is executed.
- the captured image acquisition unit 121 causes the camera 107a to capture an image and acquires the captured image from the camera 107a.
- the program execution unit 124 builds the generated image processing program based on the information in the program storage unit 113.
- the program execution unit 124 receives the captured image acquired by the captured image acquisition unit 121, executes the constructed image processing program, and outputs a final processing result.
- the intermediate processing result output unit 126 stores the intermediate processing result output from each intermediate node when the image processing program is executed in the intermediate processing result storage unit 115.
- the determination processing unit 125 calculates the feature amount F based on the intermediate processing result for each intermediate node stored in the intermediate processing result storage unit 115. In this calculation, the determination processing unit 125 calculates a node feature amount for each intermediate node based on the intermediate processing result. When the number of nodes is m, the feature amount F includes m node feature amounts.
- the determination processing unit 125 calculates a distance D1 between the calculated feature amount F and the initial feature amount F0 stored in the reference information storage unit 114.
- the distance D1 is calculated by the same method as step S16 in FIG. This distance D1 indicates the performance evaluation value of the image processing program.
- Step S25 The determination processing unit 125 compares the calculated distance D1 with the threshold value TH stored in the reference information storage unit 114. If the distance D1 is greater than the threshold value TH, the determination processing unit 125 determines that it is necessary to regenerate the image processing program, and executes the process of step S26. On the other hand, when the distance D1 is equal to or smaller than the threshold value TH, the determination processing unit 125 determines that it is not necessary to regenerate the image processing program and ends the processing.
- the determination processing unit 125 displays, for example, information indicating that the image processing program needs to be regenerated on the display device 104a. Then, the image processing program is regenerated by genetic programming. At this time, for example, the determination processing unit 125 stores, in the learning data storage unit 111, a captured image input when the program execution unit 124 executes the latest image processing program a plurality of times as an input image of new learning data. To do. Further, a target image or target data corresponding to a new input image is generated by processing according to a user operation, and stored in the learning data storage unit 111 in association with the input image. As a result, new learning data is added to the learning data storage unit 111. Then, the process shown in FIG. 11 is executed. In step S11 of FIG. 11, the program generation unit 122 sets the existing learning data and the added learning data as learning data to be used by program generation.
- FIG. 14 is a diagram illustrating a calculation example of the feature amount.
- the image processing program includes only two intermediate nodes, the first node and the second node.
- a graph 81 in FIG. 14 shows a distribution of feature amounts when an image processing program is generated by the program generation unit 122.
- the circles in the graph 81 indicate in the coordinate space of the node feature value of the first node and the node feature value of the second node for the feature values calculated when the image processing program is executed with each input image as an input. Indicates the position.
- an initial feature value F0 and a threshold value TH are calculated based on these feature values.
- the initial feature value F0 and the threshold value TH are calculated so that each feature value is included in a circle 83 whose center is the initial feature value F0 and whose radius is the threshold value TH.
- the graph 82 in FIG. 14 shows the distribution of feature amounts when the generated image processing program is executed by the program execution unit 124. Circles in the graph 82 indicate in the coordinate space of the node feature amount of the first node and the node feature amount of the second node, for the feature amounts calculated when the image processing program is executed with each individual captured image as an input. Indicates the position.
- the determination process in step S25 of FIG. 13 is equivalent to determining whether or not the position of the calculated feature amount in the coordinate space is included in the circle 83.
- the position of the feature amount is included in the circle 83, since the variation amount of the feature amount from the time of generating the program is within a certain range, it is determined that the change in the imaging environment and the state change of the imaging target are not large. Is done. In this case, it is determined that there is no need to regenerate the image processing program.
- the position of the feature amount is outside the range of the circle 83, the change amount of the feature amount from the time of generating the program deviates from a certain range. It is judged that it has become unacceptably large. In this case, it is determined that the image processing program needs to be regenerated.
- the image processing apparatus 100 every time the generated image processing program is executed, a sign of performance degradation of the image processing program is accurately captured, and the image processing accuracy is increased. It can be determined that the image processing program needs to be regenerated before it decreases. As a result, the image processing program can be regenerated by re-learning without stopping the operation using the image processing program.
- the image processing apparatus according to the third embodiment is obtained by modifying a part of the processing of the image processing apparatus 100 according to the second embodiment.
- FIG. 15 is a block diagram illustrating a configuration example of processing functions included in the image processing apparatus according to the third embodiment.
- the image processing apparatus 100a according to the third embodiment includes a reference information storage unit 114a, a reference information storage unit 114, an intermediate processing result storage unit 115, a reference information calculation unit 123, and a determination processing unit 125 in FIG.
- An intermediate processing result storage unit 115a, a reference information calculation unit 123a, and a determination processing unit 125a are provided.
- the reference information calculation unit 123a differs from the reference information calculation unit 123 of FIG. 10 in that only the threshold value TH is calculated as reference information, and the reference information storage unit 114a stores only the threshold value TH as reference information. Different from the information storage unit 114.
- the determination processing unit 125a stores the feature amount calculated when the image processing program is executed by the program execution unit 124 in the intermediate processing result storage unit 115a, and calculates the index D2 instead of the distance D1. This is different from the determination processing unit 125 of FIG.
- the intermediate processing result storage unit 115a further holds the feature amount calculated by the determination processing unit 125a when the image processing program is executed the latest p times by the program execution unit 124. Different from the storage unit 115 (p is an integer of 2 or more). That is, the intermediate processing result storage unit 115a holds p sets of feature values in addition to the intermediate processing result.
- FIG. 16 is a flowchart illustrating an example of an image processing program and reference information generation processing procedure according to the third embodiment.
- step S16 in the process of FIG. 11 is replaced with step S16a.
- the processing in steps S13 to S15 is executed by the reference information calculation unit 123a instead of the reference information calculation unit 123, but the processing content is the same.
- Step S16a The reference information calculation unit 123a calculates a threshold TH as reference information using the feature amount calculated based on each learning data, and stores the threshold TH in the reference information storage unit 114a.
- the method for calculating the threshold TH is the same as that in step S16 in FIG.
- FIG. 17 is a flowchart illustrating an example of a processing procedure when the image processing program is executed in the third embodiment.
- steps S23 to S25 in the process of FIG. 13 are replaced with steps S23a to S25a.
- step S22 the intermediate processing result is stored in the intermediate processing result storage unit 115a.
- Step S23a The determination processing unit 125a calculates the feature amount F based on the intermediate processing result for each intermediate node stored in the intermediate processing result storage unit 115a in the same procedure as in Step S23 of FIG.
- the feature amount F includes m node feature amounts.
- the determination processing unit 125a stores the calculated feature amount F in the intermediate processing result storage unit 115a. At this time, the determination processing unit 125a performs control so that only the p sets of feature values F calculated most recently are held in the intermediate processing result storage unit 115a.
- the determination processing unit 125a reads p sets of feature amounts F from the intermediate processing result storage unit 115a.
- the determination processing unit 125a calculates an index D2 indicating the degree of variation in the p sets of feature values F. This index D2 indicates the performance evaluation value of the image processing program.
- the index D2 is calculated by the same calculation method as the threshold value TH, for example. That is, the determination processing unit 125a first calculates an average feature amount that is an average of the p sets of feature amounts F. Specifically, the determination processing unit 125a calculates an average value of node feature values for each intermediate node included in the p sets of feature values. Assuming that the number of nodes of the image processing program is m, an average feature value including m average values of the node feature values is calculated by this calculation. In addition, as shown in FIG. 6, when the node feature amount is calculated by a different method for each type of partial program incorporated in the intermediate node, each node feature amount is normalized and the average value is calculated. Calculated.
- the reference information calculation unit 123a calculates the distance between each of the p sets of feature amounts and the average feature amount.
- the reference information calculation unit 123a calculates an average value and a standard deviation of the calculated n distances.
- the reference information calculation unit 123a calculates an addition value of the average value and the standard deviation as the index D2.
- Step S25a The determination processing unit 125a compares the calculated index D2 with the threshold value TH stored in the reference information storage unit 114. If the index D2 is greater than the threshold value TH, the determination processing unit 125a determines that the image processing program needs to be regenerated, and executes the process of step S26. On the other hand, when the index D2 is equal to or less than the threshold value TH, the determination processing unit 125a determines that it is not necessary to regenerate the image processing program and ends the processing.
- the magnitude of the change in the imaging environment or the change in the state of the imaging object is determined based on the variation amount of the feature amount F calculated when the most recent predetermined number of executions of the image processing program. Detected. Thereby, it is possible to accurately grasp the sign of the performance degradation of the image processing program and determine that it is necessary to regenerate the image processing program before the image processing accuracy greatly decreases.
- the image processing apparatus 100a calculates the index D2 using the feature amount F calculated when the image processing program is executed a predetermined number of times most recently.
- the image processing apparatus 100a may calculate the index D2 using the feature amount F calculated when the image processing program is executed within the latest fixed time. In this case, the number of feature amounts F used for calculating the index D2 is variable.
- FIG. 18 is a block diagram illustrating a configuration example of processing functions of the program generation device and the image processing device according to the fourth embodiment.
- the program generation device 200 and the image processing device 300 respectively have a program generation function and a program execution function included in the image processing device 100 according to the second embodiment.
- the same components as those in FIG. 10 are denoted by the same reference numerals.
- the program generation device 200 and the image processing device 300 can be realized as a computer having a hardware configuration as shown in FIG. 2, for example.
- the program generation device 200 includes a learning data storage unit 111, a partial program storage unit 112, a program generation unit 122, and a reference information calculation unit 123.
- the program generation unit 122 acquires the captured image via the captured image acquisition unit 121 of the image processing device 300, for example.
- the program generation unit 122 transmits the generated image processing program to the image processing apparatus 300 and stores it in the program storage unit 113 of the image processing apparatus 300.
- the reference information calculation unit 123 transmits the calculated reference information to the image processing apparatus 300 and stores it in the reference information storage unit 114 of the image processing apparatus 300.
- the image processing apparatus 300 includes a program storage unit 113, a reference information storage unit 114, an intermediate processing result storage unit 115, a captured image acquisition unit 121, a program execution unit 124, and a determination processing unit 125.
- a camera 107a is connected to the image processing apparatus 300, and the captured image acquisition unit 121 acquires a captured image from the camera 107a.
- the program generation device 200 includes a reference information calculation unit 123 a instead of the reference information calculation unit 123.
- the image processing apparatus 300 includes a reference information storage unit 114a, an intermediate processing result storage unit 115a, and a determination processing unit 125a instead of the reference information storage unit 114, the intermediate processing result storage unit 115, and the determination processing unit 125.
- FIG. 19 is a diagram illustrating a configuration example of an image processing system according to the fifth embodiment.
- the image processing system according to the fifth embodiment includes a plurality of terminal devices 410, 420, 430 and a server device 440.
- the terminal devices 410, 420, and 430 are connected to the server device 440 via the network 450. Further, cameras 411, 421, and 431 are connected to the terminal devices 410, 420, and 430, respectively.
- the terminal devices 410, 420, and 430 and the server device 440 can be realized as, for example, a computer having a hardware configuration as shown in FIG.
- each processing function of the image processing apparatus 100 according to the second embodiment or the image processing apparatus 100a according to the third embodiment can be realized.
- the server apparatus 440 includes the processing functions of the image processing apparatus 100 or the image processing apparatus 100a.
- the server device 440 acquires captured images captured by the cameras 411, 421, and 431 via the terminal devices 410, 420, and 430, respectively.
- the server device 440 individually executes the processing of the image processing device 100 or the image processing device 100a for each of the cameras 411, 421, and 431.
- the server apparatus 440 may execute the image processing program and the reference information generation process in common.
- the processing function of the program generation device 200 of FIG. 18 may be realized by the server device 440, and the processing function of the image processing device 300 may be realized by the terminal devices 410, 420, and 430.
- the processing function of the program generation device 200 may be realized individually for each of the terminal devices 410, 420, and 430, or may be realized in common. In the latter case, the image processing program and the reference information generated in common by the server device 440 are distributed to the terminal devices 410, 420, and 430.
- the processing functions of the devices are realized by a computer. be able to.
- a program describing the processing contents of the functions that each device should have is provided, and the processing functions are realized on the computer by executing the program on the computer.
- the program describing the processing contents can be recorded on a computer-readable recording medium.
- the computer-readable recording medium include a magnetic storage device, an optical disk, a magneto-optical recording medium, and a semiconductor memory.
- Examples of the magnetic storage device include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape.
- Optical discs include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc-Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like.
- Magneto-optical recording media include MO (Magneto-Optical disk).
- a portable recording medium such as a DVD or CD-ROM in which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.
- the computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. In addition, each time a program is transferred from a server computer connected via a network, the computer can sequentially execute processing according to the received program.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Physiology (AREA)
- Biomedical Technology (AREA)
- Genetics & Genomics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
画像処理プログラムによる画像処理精度の低下の兆候を検出する。 記憶部(1a)は、複数のノード(N1~N4)のそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラム(2)を記憶する。演算部(1b)は、画像処理プログラム(2)にしたがって、撮像装置によって撮像された撮像画像(3)に対する画像処理を実行するたびに、複数のノード(N1~N4)のうち終端ノードを除く中間ノードのそれぞれにおける処理結果(11~13)に基づいて特徴量(20)を算出する。演算部(1b)は、時間経過に伴う特徴量(20)の変動量に基づいて、画像処理プログラム(2)の性能評価値を算出する。
Description
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術が注目されている。この技術は、入力画像と目標となる処理結果(例えば、目標画像)とを用いて、画像処理のための部分プログラムを組み合わせて生成される画像処理プログラムを、遺伝的プログラミングによって最適化していくものである。
また、画像処理アルゴリズムの作成に関する技術の例として、次のような外観検査装置が提案されている。この外観検査装置は、作成したアルゴリズムを用いて検査対象物の外観検査を実施し、その検査結果に基づいて評価値を算出し、評価値が所定の条件を満足するかによってアルゴリズムの再学習の必要性を判断する。
青木紳也、長尾智晴、「木構造画像変換の自動構築法ACTIT」、情報メディア学会誌Vol.53,No.6、1999年6月20日、p.890-892
遺伝的プログラミングにより生成された画像処理プログラムを用いた画像処理の実行時においては、その画像処理対象の画像が撮像される環境や撮像対象物の仕様などの条件が変化していくのにしたがって、画像処理精度は低下していく。そのため、所望の画像処理精度が維持できないと判定された時点で、撮像環境や撮像対象物を変えて撮像した入力画像とその目標となる処理結果とを加えて、画像処理プログラムの再学習が行われる。
しかし、再学習により新たな画像処理プログラムが生成されるまでの間、画像処理プログラムを用いた画像処理を実行できない。例えば、製品の製造ライン上で部品の位置合わせや検査を行うために画像処理プログラムが用いられる場合、再学習により新たな画像処理プログラムが生成されるまで、製造ラインの運用を停止しなくてはならない。そのため、画像処理プログラムの再学習が必要となるタイミングを、画像処理精度が顕著に低下するよりどれだけ早く判定できるかが課題となる。
1つの側面では、本発明は、画像処理プログラムによる画像処理精度の低下の兆候を検出可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
1つの案では、次のような記憶部および演算部を有する画像処理装置が提供される。記憶部は、複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラムを記憶する。演算部は、画像処理プログラムにしたがって、撮像装置によって撮像された撮像画像に対する画像処理を実行するたびに、複数のノードのうち終端ノードを除く中間ノードのそれぞれにおける処理結果に基づいて特徴量を算出し、時間経過に伴う特徴量の変動量に基づいて、画像処理プログラムの性能評価値を算出する。
また、1つの案では、上記の画像処理装置と同様の処理がコンピュータによって実行される画像処理方法が提供される。
さらに、1つの案では、上記の画像処理装置と同様の処理をコンピュータに実行させる画像処理プログラムが提供される。
さらに、1つの案では、上記の画像処理装置と同様の処理をコンピュータに実行させる画像処理プログラムが提供される。
1つの側面では、画像処理プログラムによる画像処理精度の低下の兆候を検出できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
以下、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る画像処理装置の構成例および処理例を示す図である。画像処理装置1は、記憶部1aと演算部1bを有する。記憶部1aは、例えば、RAM(Random Access Memory)やHDD(Hard Disk Drive)などの記憶装置である。演算部1bは、例えば、プロセッサである。
[第1の実施の形態]
図1は、第1の実施の形態に係る画像処理装置の構成例および処理例を示す図である。画像処理装置1は、記憶部1aと演算部1bを有する。記憶部1aは、例えば、RAM(Random Access Memory)やHDD(Hard Disk Drive)などの記憶装置である。演算部1bは、例えば、プロセッサである。
記憶部1aには、画像処理プログラム2が記憶される。画像処理プログラム2は、複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす。また、画像処理プログラム2は、遺伝的プログラミングを用いて生成されたものである。遺伝的プログラミングを用いた画像処理プログラム2の生成では、それぞれが入力画像と目標データとを含む1組以上の学習データを用いて学習が行われる。学習により、木構造におけるノードの構造や各ノードに組み込まれる部分プログラムが最適化される。
図1の例では、画像処理プログラム2は、ノードN1~N4を有する。演算部1bが撮像画像3を入力として画像処理プログラム2を実行したとき、次のような処理が実行される。なお、撮像画像3は、図示しない撮像装置によって撮像された画像である。
ノードN1では、ノードN1に組み込まれた部分プログラムにしたがって、入力端子Inに入力された撮像画像3に対する処理が実行され、処理結果11が出力される。ノードN2では、ノードN2に組み込まれた部分プログラムにしたがって、処理結果11に対する処理が実行され、処理結果12が出力される。ノードN3では、ノードN3に組み込まれた部分プログラムにしたがって、入力端子Inに入力された撮像画像3に対する処理が実行され、処理結果13が出力される。ノードN4では、ノードN4に組み込まれた部分プログラムにしたがって、処理結果12,13に対する処理が実行される。ノードN4は終端ノードとなっており、ノードN4での処理結果は出力端子Outから出力される。
演算部1bは、図示しない撮像装置から取得された撮像画像3を入力として、画像処理プログラム2を実行する。演算部1bは、画像処理プログラム2にしたがって画像処理を実行するたびに、ノードN1~N4のうち終端ノードを除く中間ノード、すなわちノードN1~N3での処理結果11~13に基づいて、特徴量20を算出する(ステップS1)。
例えば、特徴量20は、処理結果11~13のそれぞれに基づいて算出されるノード特徴量の組み合わせとして算出される。例えば、処理結果11~13が画像として得られる場合、各画像における輝度の平均値が、それぞれノード特徴量として算出される。また、例えば、各中間ノードに組み込まれた部分プログラムの種類ごとに異なる計算方法でノード特徴量が算出されてもよい。
演算部1bは、算出された特徴量20の時間経過に伴う変動量に基づいて、画像処理プログラム2の性能評価値を算出する(ステップS2)。変動量は、例えば、画像処理プログラム2の生成時点で算出された初期特徴量と現在の特徴量20との距離として算出される。あるいは、画像処理プログラム2が直近の所定回数だけ実行されたときにそれぞれ算出された特徴量の変動幅が、変動量として算出されてもよい。
ここで、画像処理プログラム2の生成時においては、撮像環境の変化や撮像対象物の仕様の変化の予測に応じた学習データを用いて学習が行われることで、ロバスト性の高い画像処理プログラム2が生成される。しかし、画像処理プログラム2を用いた運用を開始してから時間が経過すると、その生成時には予測がつかなかったような撮像環境の変化や撮像対象物の仕様の変化が生じる場合がある。その場合、画像処理プログラム2による画像処理精度は低下していく。ここでいう画像処理精度とは、撮像画像に対する処理結果が、画像処理プログラム2のユーザが所望するような結果にどの程度近いかを示す。
画像処理精度の判定方法としては、撮像画像に対する画像処理プログラム2を用いた最終処理結果から判定する方法がある。しかし、最終処理結果から画像処理精度が低いと判定された時点で画像処理プログラム2の再生成が必要となるので、画像処理プログラム2を用いた運用を一時的に停止する必要が生じる。
これに対して、画像処理プログラム2の中間ノードでの処理結果には、終端ノードでの最終処理結果と比較して、撮像環境の変化や撮像対象物の状態変化が大きく影響する。これは、中間ノードに組み込まれる部分プログラムの中には、画像処理の最終結果を得るために画像から特徴を抽出するための部分プログラムが含まれ、抽出される特徴が撮像環境の変化や撮像対象物の状態変化によって大きく変動する可能性があるからである。このため、中間ノードでの処理結果に基づく特徴量の変動量を用いることで、撮像環境の変化や撮像対象物の状態変化が敏感に捉えられる。
すなわち、上記特徴量の変動量に基づいて算出される性能評価値を用いることで、画像処理プログラム2による画像処理精度が大きく低下する前に、その精度低下の兆候を検出して、画像処理プログラム2を再生成すべきであることを判定することができる。したがって、ある程度の画像処理精度を維持した状態で画像処理プログラム2を用いた運用を継続しながら、撮像環境の変化や撮像対象物の状態変化に対応した新たな学習データを追加して画像処理プログラム2を再生成することができる。
[第2の実施の形態]
次に、第2の実施の形態として、図1に示した画像処理装置1が備える判定機能に加え、遺伝的プログラミングを用いた画像処理プログラムの生成機能を備えた画像処理装置について説明する。
次に、第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を介して、RAM102と複数の周辺機器が接続されている。
RAM102は、画像処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
RAM102は、画像処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、読み取り装置106、通信インタフェース107およびネットワークインタフェース108がある。
HDD103は、画像処理装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aの画面に表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース107は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース107には、外部デバイスとしてカメラ107aが接続され、通信インタフェース107は、カメラ107aから送信された画像データをプロセッサ101に送信する。
ネットワークインタフェース108は、ネットワーク108aを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、画像処理装置100の処理機能を実現することができる。
以上のようなハードウェア構成によって、画像処理装置100の処理機能を実現することができる。
ところで、前述のように、画像処理装置100は、遺伝的プログラミングによって画像処理プログラムを生成する機能を有する。この生成処理では、画像処理プログラムが木構造によって定義され、各ノードに部分プログラムが組み込まれる。そして、入力画像と目標となる処理結果(例えば、目標画像)とを含む学習データを用いた学習により、木構造におけるノードの構造や各ノードに組み込まれる部分プログラムが最適化される。
また、画像処理プログラムによって実現される画像処理としては、例えば、エッジ検出、領域検出、テンプレートマッチングがある。これらの画像処理では、例えば、入力画像における特定のエッジ、特定の領域、テンプレート画像の領域が、特定の画素値で表された画像が出力される。この場合、このような出力画像が、学習データに含まれる目標画像とされる。また、上記の画像処理では、例えば、入力画像における特定のエッジ、特定の領域、テンプレート画像の領域の位置情報が出力されてもよい。この場合、位置情報が、学習データに含まれる目標データとされる。
このような画像処理プログラムの用途の例としては、FA(Factory Automation)分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出する、特定の部品が搭載されているか否かを判定するといった用途が考えられる。
このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理アルゴリズムの再構築の必要が生じる場合がある。このため、画像処理アルゴリズムの構築の容易性が求められている。また、照明条件の変化や被写体の形状変化、位置姿勢のバラツキなどの状態変化に対するロバスト性が高い画像処理アルゴリズムを構築することが求められている。
遺伝的プログラミングを利用することで、入力画像とこれに対応する目標データとをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境や撮像対象物の状態が異なる入力画像と目標データのペア(学習データ)を複数用意しておくことで、撮像環境の変化や撮像対象物の状態変化に対するロバスト性が高い画像処理アルゴリズムを自動生成することもできる。
ここで、図3は、画像処理プログラムの再生成タイミングの例を示す図である。画像処理プログラムの再生成が必要なタイミングを判定する方法としては、画像処理の最終処理結果に基づく画像処理精度を用いる方法が考えられる。図3では、画像処理の例として撮像対象物上の特定部分の位置を検出する処理を想定し、画像処理精度を示す指標の例として、特定部分の位置を正しく検出できた割合を示す認識率を示す。
例えば、ある製品を製造するための製造装置の開発が行われるとする。この場合、製造装置で用いられる画像処理プログラムも、製造装置の開発期間(期間P1)において生成される。画像処理プログラムの生成では、例えば、製品に搭載される部品51,52が写った撮像画像50aが、学習データの入力画像の1つとして用いられる。そして、撮像画像50aにおける部品51のエッジ51aおよび部品52のエッジ52aの各位置が、対応する目標データとして用いられる。
このようにして画像処理プログラムが生成され、製造装置も開発されると、製造装置および画像処理プログラムを用いた製品の製造が開始される(期間P2)。この期間P2において、例えば、照明の変化などの装置の周囲環境が徐々に変化していき、その変化に伴ってエッジ51a,52aの認識率が徐々に低下していったとする。そして、タイミングT1において認識率が許容できないほど低下したとする。例えば、タイミングT1において、照明の光量低下によって部品51,52の明るさが低下した撮像画像50bが撮像され、この撮像画像50bからエッジ51a,52aの位置を正しく検出できなかったとする。
この場合、部品51,52が暗く写った撮像画像(例えば撮像画像50b)を入力画像として含み、この撮像画像におけるエッジ51a,52aの位置を目標データとして含む学習データが追加された学習により、画像処理プログラムが再生成される(期間P3)。そして、再生成された画像処理プログラムを用いた製品の製造が再開される(期間P4)。
この後、例えば、タイミングT2において製品の仕様が変更され、部品51,52の取り付け角度が変更されたとする。そして、この変更により、認識率が許容できないほど低下したとする。例えば、この仕様変更後に撮像された撮像画像50cから、エッジ51a,52aの位置を正しく検出できなかったとする。
この場合、部品51,52の取り付け位置が変更された製品を撮像した撮像画像(例えば撮像画像50cを入力画像として含み、この撮像画像におけるエッジ51a,52aの位置を目標データとして含む学習データが追加された学習により、画像処理プログラムが再生成される(期間P5)。そして、再生成された画像処理プログラムを用いた製品の製造が再開される(期間P6)。
以上の図3の例のように、画像処理プログラムを用いた画像処理の最終結果から画像処理精度を判断して、画像処理プログラムの再生成が必要か否かを判定することが可能である。しかし、この方法では、実際に画像処理の出力に問題が生じた時点で画像処理プログラムの再生成が行われるので、新たな画像処理プログラムが生成されるまで画像処理プログラムの利用を停止する必要があるという問題がある。
図4は、認識率の遷移について示すグラフである。図4のグラフ61は、図3で説明したように画像処理の最終結果に基づく指標である認識率から画像処理精度の低下を判断し、画像処理プログラムの再生成を行った場合の認識率の遷移の例を示す。なお、時間軸方向においては画像プログラムの再生成の期間を含んでいない。グラフ61によれば、認識率が所定の閾値まで低下した場合に、画像処理プログラムが再生成され、認識率が回復している。
これに対して、第2の実施の形態に係る画像処理装置100は、グラフ62に示すように、撮像環境の変化や撮像対象物の状態変化が生じたときに、画像処理の最終結果に基づく指標より大きく変化するような新たな指標に基づいて、画像処理プログラムの再生成が必要なタイミングを判定する。このような新たな指標が大きく変動した場合に画像処理プログラムの再生成が必要と判定することで、画像処理プログラムの精度が大きく低下する前に画像処理プログラムの再生成を開始することができる。その結果、画像処理プログラムを用いて製品の製造工程を停止させずに、画像処理プログラムを更新することができる。
図5は、プログラム再生成の必要性を評価するための指標の算出について説明するための図である。第2の実施の形態に係る画像処理装置100は、画像処理プログラムの各中間ノードでの処理結果に基づいて、画像処理プログラムの再生成の必要性を評価するための指標を算出する。画像処理プログラムの中間ノードには、画像処理の最終結果を得るために入力画像内の特徴を検出するための画像フィルタが多く含まれる。これらの画像フィルタの処理結果は、撮像環境の変化や撮像対象物の状態変化に対して敏感に変化する。このため、中間ノードでの処理結果に基づく指標を用いることで、画像処理精度が劣化する兆候を早期に検知して、画像処理プログラムの再生成を開始できる。
図5では例として、ノードN11~N31を有する画像処理プログラムを示している。この画像処理プログラムを用いた画像処理では、例えば、部品62,63が写っている撮像画像61aが入力されたとき、部品62のエッジ62aと部品63のエッジ63aの各位置が検出される。例えば、撮像画像61aが入力されたときの出力画像61bには、エッジ62aに対応する直線62bと、エッジ63aに対応する直線63bとが特定の輝度で表される。
画像処理装置100は、図5のような画像処理プログラムを実行するたびに、終端ノード(ノードN31)を除く中間ノード(ノードN11~N30)のそれぞれにおける処理結果に基づいて、上記の指標を算出する。図5の例では、中間ノードであるノードN11~N30のそれぞれにおける処理結果は、画像として出力される。以下、中間ノードでの処理結果を「中間処理結果」と記載し、中間処理結果として画像が出力される場合、その画像を「中間画像」と記載する。例えば、ノードN15での中間処理結果として中間画像64が出力され、ノードN26での中間処理結果として中間画像65が出力され、ノードN29での中間処理結果として中間画像66が出力される。
画像処理装置100は、各中間ノードでの中間処理結果に基づいて、画像処理プログラムの再生成の必要性を評価するための指標を算出する。以下、この指標を「特徴量」と記載する。具体的には、画像処理装置100は、各中間処理結果に基づいて中間処理結果ごとに「ノード特徴量」を算出する。そして、特徴量は、ノード特徴量の集合として表される。画像処理プログラムの中間ノード数をm個とすると、特徴量Fは(MF1,MF2,・・・,MFm)と表すことができる。
各中間ノードで中間画像が出力される場合、ノード特徴量は、例えば、中間画像における平均輝度として算出することができる。また、中間ノードに組み込まれている部分プログラムの種類ごとに、中間処理結果を基に異なる方法でノード特徴量が算出されてもよい。例えば、次の図6に示すような算出方法で中間画像からノード特徴量が算出されてもよい。
図6は、部分プログラムの種類に応じたノード特徴量の算出方法の例を示す図である。
部分プログラムがSmooth(平滑化)フィルタまたはInverse(階調反転)フィルタの場合、ノード特徴量は、中間画像における平均輝度として算出される。
部分プログラムがSmooth(平滑化)フィルタまたはInverse(階調反転)フィルタの場合、ノード特徴量は、中間画像における平均輝度として算出される。
部分プログラムがSobel(1次微分)フィルタまたはLaplace(2次微分)フィルタの場合、ノード特徴量は、中間画像における輝度の最大値または最小値、またはその両方として算出される。
部分プログラムがSub(差分)フィルタの場合、ノード特徴量は、中間画像の画素のうち、画素値が正となる画素の数または割合、もしくは、差分値が負となる画素の数または割合、もしくはその両方として算出される。
部分プログラムがAdd(加算)フィルタの場合、ノード特徴量は、中間画像の画素のうち、画素値が0より大きい所定値(例えば255)以上となる画素の数または割合として算出される。
部分プログラムがDiff(差分の絶対値)フィルタの場合、ノード特徴量は、中間画像の画素のうち、画素値が0である画素の数または割合として算出される。
部分プログラムがThreshold(閾値処理)フィルタ、And(論理積)フィルタ、Or(論理和)フィルタのいずれかである場合、ノード特徴量は、2値画像である中間画像の画素のうち、一方の画素値を有する画素(例えば白画素)の数または割合として算出される。
部分プログラムがThreshold(閾値処理)フィルタ、And(論理積)フィルタ、Or(論理和)フィルタのいずれかである場合、ノード特徴量は、2値画像である中間画像の画素のうち、一方の画素値を有する画素(例えば白画素)の数または割合として算出される。
部分プログラムがErode(収縮)フィルタの場合、ノード特徴量は、2値画像である中間画像の画素のうち、一方の画素値を有する画素(例えば白画素)の減少量として算出される。
部分プログラムがDilate(膨張)フィルタの場合、ノード特徴量は、2値画像である中間画像の画素のうち、一方の画素値を有する画素(例えば白画素)の増加量として算出される。
これらの例のように、中間ノードに組み込まれている部分プログラムごとに異なる方法でノード特徴量を算出することで、撮像環境の変化や撮像対象物の状態変化をより正確に捉えることができる。その結果、画像処理プログラムの再生成タイミングの判定精度を向上させることができる。
図7は、中間画像に分割領域を設定する場合の処理について説明するための図である。図7に示すように、中間画像を複数の分割領域に分割し、分割領域ごとにノード特徴量が算出されてもよい。図7の例では、中間画像が横方向に3つに等分割されている。そして、中間画像64における分割領域64a,64b,64c、および中間画像66における分割領域66a,66b,66cのそれぞれについて、ノード特徴量が算出される。また、中間画像におけるいずれか1つの分割領域からノード特徴量が算出されてもよい。
図8は、時間経過に伴うノード特徴量の変化についての第1の例を示す図である。また、図9は、時間経過に伴うノード特徴量の変化についての第2の例を示す図である。
図8では、図7に示したノードN15から出力された中間画像を基に算出されたノード特徴量の変化を示している。ここでは、中間画像を横方向に3つに等分割して得られる分割領域ごとにノード特徴量を算出したものとする。グラフ71aは、中間画像のうち左側の分割領域(第1領域)に基づくノード特徴量の変化を示す。グラフ71bは、中間画像のうち中間の分割領域(第2領域)に基づくノード特徴量の変化を示す。グラフ71cは、中間画像のうち右側の分割領域(第3領域)に基づくノード特徴量の変化を示す。
図8では、図7に示したノードN15から出力された中間画像を基に算出されたノード特徴量の変化を示している。ここでは、中間画像を横方向に3つに等分割して得られる分割領域ごとにノード特徴量を算出したものとする。グラフ71aは、中間画像のうち左側の分割領域(第1領域)に基づくノード特徴量の変化を示す。グラフ71bは、中間画像のうち中間の分割領域(第2領域)に基づくノード特徴量の変化を示す。グラフ71cは、中間画像のうち右側の分割領域(第3領域)に基づくノード特徴量の変化を示す。
また、図9では、図7に示したノードN29から出力された中間画像を基に算出されたノード特徴量の変化を示している。グラフ72aは、中間画像のうち左側の分割領域(第1領域)に基づくノード特徴量の変化を示す。グラフ72bは、中間画像のうち中間の分割領域(第2領域)に基づくノード特徴量の変化を示す。グラフ72cは、中間画像のうち右側の分割領域(第3領域)に基づくノード特徴量の変化を示す。
なお、図8,図9のいずれにおいても、ノード特徴量は、平均輝度として算出されている。
また、図8,図9に示すグラフ70は、画像処理プログラムの実行により入力された撮像画像から特定の領域が正しく認識されたかを示す認識結果の遷移を示す。認識結果「1」は正しく認識できたことを示し、認識結果「0」は正しく認識できなかったことを示す。グラフ70によれば、タイミングT11までは特定の領域が正しく認識できていたが、タイミングT11からは特定の領域が正しく認識できなくなっている。
また、図8,図9に示すグラフ70は、画像処理プログラムの実行により入力された撮像画像から特定の領域が正しく認識されたかを示す認識結果の遷移を示す。認識結果「1」は正しく認識できたことを示し、認識結果「0」は正しく認識できなかったことを示す。グラフ70によれば、タイミングT11までは特定の領域が正しく認識できていたが、タイミングT11からは特定の領域が正しく認識できなくなっている。
グラフ71a~71cとグラフ70とを比較すると、特にグラフ71bでは、タイミングT11より早い段階からノード特徴量の低下が始まっていることがわかる。また、グラフ72a~72cとグラフ70とを比較すると、特にグラフ72bでは、タイミングT11より早い段階からノード特徴量の低下が始まっていることがわかる。したがって、時間結果に伴うノード特徴量の低下量を指標として用いることで、実際に画像処理精度が大きく低下するより前のタイミングで、画像処理プログラムの再生成が必要であることを判定することができる。
また、図8,図9によれば、第1領域や第3領域より第2領域に基づくノード特徴量を用いる方が、画像処理プログラムの再生成が必要なタイミングを正確に検知できることがわかる。この原因は、認識の対象とする特定の領域が第2領域に写っていることにあると考えられる。そこで、画像処理装置100は、各中間ノードに対応するノード特徴量を、中間画像の第2領域の情報のみから算出してもよい。これにより、再生成の必要性の判定精度を低下させることなく、ノード特徴量の算出処理時間を短縮でき、その結果、画像処理プログラムの再生成が必要かを判定するまでの時間を短縮できる。
中間画像に設定された分割領域のうちどの分割領域を用いてノード特徴量を算出するかは、認識の対象とする特定の領域が写っている可能性の高さから指定することができる。この指定は、例えば、製品の製造装置を管理する管理者の操作によって行うことができる。
次に、画像処理装置100の詳細について説明する。
図10は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置100は、学習データ記憶部111、部分プログラム記憶部112、プログラム記憶部113、基準情報記憶部114、中間処理結果記憶部115、撮像画像取得部121、プログラム生成部122、基準情報算出部123、プログラム実行部124および判定処理部125を有する。
図10は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置100は、学習データ記憶部111、部分プログラム記憶部112、プログラム記憶部113、基準情報記憶部114、中間処理結果記憶部115、撮像画像取得部121、プログラム生成部122、基準情報算出部123、プログラム実行部124および判定処理部125を有する。
学習データ記憶部111、部分プログラム記憶部112、プログラム記憶部113、基準情報記憶部114および中間処理結果記憶部115は、例えば、RAM102あるいはHDD103などの画像処理装置100が備える記憶装置の記憶領域として実現される。撮像画像取得部121、プログラム生成部122、基準情報算出部123、プログラム実行部124および判定処理部125の各処理は、例えば、画像処理装置100が備えるプロセッサ101が所定のプログラムを実行することで実現される。
学習データ記憶部111には、画像プログラムの生成時に利用される学習データが記憶される。各学習データには、入力画像と、入力画像に対して画像処理を施した場合の目標となる目標データまたは目標画像とが含まれる。
部分プログラム記憶部112は、木構造をなす画像処理プログラムの各ノードに組み込むことが可能な複数種類の部分プログラムが記憶される。
プログラム記憶部113には、遺伝的プログラミングによって生成された画像処理プログラムが記憶される。実際には、プログラム記憶部113には、生成された画像処理プログラムのノードの接続構成と、各ノードに組み込まれた部分プログラムの識別情報とが記憶されればよい。
プログラム記憶部113には、遺伝的プログラミングによって生成された画像処理プログラムが記憶される。実際には、プログラム記憶部113には、生成された画像処理プログラムのノードの接続構成と、各ノードに組み込まれた部分プログラムの識別情報とが記憶されればよい。
基準情報記憶部114には、生成された画像処理プログラムを実行した際に、画像処理プログラムの再生成が必要かを判定するために利用される各種の基準情報が記憶される。
中間処理結果記憶部115には、生成された画像処理プログラムを実行した際に、各中間ノードでの処理によって出力された中間処理結果が記憶される。
中間処理結果記憶部115には、生成された画像処理プログラムを実行した際に、各中間ノードでの処理によって出力された中間処理結果が記憶される。
撮像画像取得部121は、カメラ107aによって撮像された撮像画像を取得する。取得された撮像画像は、例えば、学習データに含まれる入力画像として利用される。また、撮像画像取得部121は、生成された画像処理プログラムをプログラム実行部124が実行する際に、カメラ107aから撮像画像を取得してプログラム実行部124に出力する。
プログラム生成部122は、学習データ記憶部111に記憶された学習データを用いて、遺伝的プログラミングによって画像処理プログラムを生成する。この生成時において、プログラム生成部122は、各ノードに組み込む部分プログラムを部分プログラム記憶部112から取得する。プログラム生成部122は、生成した画像処理プログラムについての情報をプログラム記憶部113に格納する。
基準情報算出部123は、画像処理プログラムの生成時に用いた各学習データを用いて、生成された画像処理プログラムを実行し、各中間ノードでの中間処理結果を基に基準情報を算出して、基準情報記憶部114に格納する。基準情報は、生成された画像処理プログラムがプログラム実行部124に実行された際に、画像処理プログラムの再生成が必要かを判定するために利用される。基準情報には、初期特徴量と閾値とがある。
プログラム実行部124は、プログラム記憶部113の情報に基づいて、生成された画像処理プログラムを構築し、撮像画像取得部121によって取得された撮像画像を入力として、構築された画像処理プログラムを実行する。また、プログラム実行部124は、中間処理結果出力部126を有する。中間処理結果出力部126は、画像処理プログラムの実行時に各中間ノードから出力された中間処理結果を、中間処理結果記憶部115に格納する。
判定処理部125は、中間処理結果記憶部115に格納された中間処理結果に基づいて特徴量を算出する。判定処理部125は、算出した特徴量と、基準情報記憶部114に格納された基準情報とに基づいて、画像処理プログラムの再生成が必要かを判定する。
次に、画像処理装置100の処理についてフローチャートを用いて説明する。
まず、図11は、画像処理プログラムおよび基準情報の生成処理手順の例を示すフローチャートである。
まず、図11は、画像処理プログラムおよび基準情報の生成処理手順の例を示すフローチャートである。
[ステップS11]プログラム生成部122は、画像処理プログラムの生成時に用いる学習データを設定する。例えば、画像処理プログラムの初回生成時には、プログラム生成部122は、ユーザの操作に応じて、撮像画像取得部121によって取得された撮像画像を、学習データの入力画像として学習データ記憶部111に格納する。また、プログラム生成部122は、入力画像に対応する目標画像または目標データを、ユーザの操作に応じて生成し、入力画像に対応づけて学習データ記憶部111に格納する。これにより、学習データ記憶部111には、1組以上の学習データが記憶される。
また、画像処理プログラムの再生成時には、プログラム生成部122は、前回の再生成から現在までにプログラム実行部124でのプログラム実行時に入力画像として利用された撮像画像の少なくとも一部を、学習データの入力画像として学習データ記憶部111に格納する。また、プログラム生成部122は、それらの入力画像に対応する目標画像または目標データを、ユーザの操作に応じて生成し、入力画像に対応づけて学習データ記憶部111に格納する。これにより、学習データ記憶部111には、新たな学習データが追加される。
[ステップS12]プログラム生成部122は、学習データ記憶部111に記憶された学習データを用いて、遺伝的プログラミングによって画像処理プログラムを生成する。プログラム生成部122は、生成した画像処理プログラムについての情報をプログラム記憶部113に格納する。
[ステップS13]基準情報算出部123は、ステップS12のプログラム生成処理において利用された学習データの中から、1つを選択する。
[ステップS14]基準情報算出部123は、選択した学習データの入力画像を入力として、生成した画像処理プログラムを実行し、画像処理プログラムの各中間ノードでの中間処理結果を算出する。基準情報算出部123は、算出した各中間処理結果に基づいて特徴量を算出する。前述のように、特徴量は、各中間ノードでの中間処理結果に基づいて算出されたノード特徴量の集合として表される。
[ステップS14]基準情報算出部123は、選択した学習データの入力画像を入力として、生成した画像処理プログラムを実行し、画像処理プログラムの各中間ノードでの中間処理結果を算出する。基準情報算出部123は、算出した各中間処理結果に基づいて特徴量を算出する。前述のように、特徴量は、各中間ノードでの中間処理結果に基づいて算出されたノード特徴量の集合として表される。
[ステップS15]基準情報算出部123は、プログラム生成処理において利用されたすべての学習データについて処理済みかを判定する。未処理の学習データがある場合、ステップS13に戻り、未処理の学習データが1つ選択される。一方、すべての学習データについて処理済みの場合、ステップS16の処理が実行される。
[ステップS16]基準情報算出部123は、各学習データに基づいて算出された特徴量を用いて、基準情報として初期特徴量F0と閾値THとを算出し、基準情報記憶部114に格納する。
ステップS12のプログラム生成処理でn組の学習データが利用されたとすると、ステップS16が実行される時点でn組の特徴量が算出されている。基準情報算出部123は、これらのn組の特徴量の平均を、初期特徴量F0として算出する。具体的には、基準情報算出部123は、n組の特徴量に含まれる中間ノードごとのノード特徴量の平均値を算出する。画像処理プログラムのノード数をmとすると、この演算により、ノード特徴量の平均値がm個含まれる初期特徴量F0が算出される。なお、図6に示したように中間ノードに組み込まれている部分プログラムの種類ごとに異なる方法でノード特徴量が算出された場合には、各ノード特徴量が正規化された上で平均値が算出される。
また、基準情報算出部123は、n組の特徴量のバラツキ度合いを示す数値を、閾値THとして算出する。例えば、基準情報算出部123は、n組の特徴量のそれぞれと初期特徴量F0との距離を算出する。距離としては、例えば、ユークリッド距離またはマハラノビス距離が算出される。基準情報算出部123は、算出されたn個の距離の平均値AVEと標準偏差σとを算出する。基準情報算出部123は、平均値AVEと標準偏差σとの加算値を、閾値THとして算出する。
図12は、画像処理プログラムの生成処理手順の例を示すフローチャートである。この図12の処理は、図11のステップS12の処理に対応する。
[ステップS121]プログラム生成部122は、母集団に含める複数の初期個体を生成する。各初期個体のノードには、部分プログラム記憶部112に記憶された複数種類の部分プログラムの中から部分プログラムがランダムに選択されて組み込まれる。
[ステップS121]プログラム生成部122は、母集団に含める複数の初期個体を生成する。各初期個体のノードには、部分プログラム記憶部112に記憶された複数種類の部分プログラムの中から部分プログラムがランダムに選択されて組み込まれる。
[ステップS122]プログラム生成部122は、母集団の中からランダムに一定数の親個体を選択する。以下、例として2つの親個体が選択されるものとする。
[ステップS123]プログラム生成部122は、選択された2つの親個体に対して進化過程の処理を施すことで、2以上の一定数の子個体を生成する。進化過程では、2つの親個体に対して交叉処理および突然変異処理が行われる。2つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、3つ以上の子個体が生成されてもよい。
[ステップS123]プログラム生成部122は、選択された2つの親個体に対して進化過程の処理を施すことで、2以上の一定数の子個体を生成する。進化過程では、2つの親個体に対して交叉処理および突然変異処理が行われる。2つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、3つ以上の子個体が生成されてもよい。
[ステップS124]プログラム生成部122は、ステップS122で選択された親個体、およびステップS123で生成された子個体のそれぞれについて、適応度を算出する。この処理では、対象の個体それぞれを用いた画像処理が、各学習データに含まれる各入力画像に対して実行され、実行後の画像と対応する目標画像または目標データとが比較されることで適応度が計算される。学習データが複数組存在する場合、個体それぞれについて、複数組の学習データをそれぞれ用いて得られた適応度の平均値が算出される。
なお、ステップS121で母集団が生成された時点で母集団に含まれる初期個体の適応度が算出されてもよい。この場合、ステップS124では、生成された子個体の適応度だけが算出される。
[ステップS125]プログラム生成部122は、生成された子個体および元の親個体のうちのいずれかの適応度が、所定の閾値より大きいかを判定する。すべての適応度が閾値以下である場合には、ステップS126の処理が実行される。1以上の適応度が閾値より大きい場合には、ステップS127の処理が実行される。
[ステップS126]プログラム生成部122は、ステップS122で選択された親個体、およびステップS123で生成された子個体の中から、生存選択を行う。例えば、算出された適応度が最大の個体が第1の生存個体として選択され、さらに残りの個体の中から、適応度に応じた確率で第2の生存個体が選択される。プログラム生成部122は、母集団に含まれる個体のうち、ステップS122で親個体として選択された2つの個体を、第1の生存個体および第2の生存個体に入れ替える。これにより、母集団の世代が更新される。
[ステップS127]プログラム生成部122は、ステップS122で選択された親個体、およびステップS123で生成された子個体のうち、適応度が最大の個体を最良個体として選択する。選択された最良個体が、最適化された画像処理プログラムとなる。プログラム生成部122は、選択された最良個体を表す情報をプログラム記憶部113に保存する。
図13は、生成された画像処理プログラムの実行時における処理手順の例を示すフローチャートである。
[ステップS21]撮像画像取得部121は、カメラ107aに画像を撮像させ、撮像画像をカメラ107aから取得する。
[ステップS21]撮像画像取得部121は、カメラ107aに画像を撮像させ、撮像画像をカメラ107aから取得する。
[ステップS22]プログラム実行部124は、プログラム記憶部113の情報に基づいて、生成された画像処理プログラムを構築する。プログラム実行部124は、撮像画像取得部121によって取得された撮像画像を入力として、構築された画像処理プログラムを実行し、最終処理結果を出力する。また、中間処理結果出力部126は、画像処理プログラムの実行時に各中間ノードから出力された中間処理結果を中間処理結果記憶部115に格納する。
[ステップS23]判定処理部125は、中間処理結果記憶部115に記憶された中間ノードごとの中間処理結果に基づいて、特徴量Fを算出する。この算出では、判定処理部125は、中間ノードごとに、中間処理結果に基づいてノード特徴量を算出する。ノード数がmの場合、特徴量Fにはm個のノード特徴量が含まれる。
[ステップS24]判定処理部125は、算出した特徴量Fと、基準情報記憶部114に記憶された初期特徴量F0との距離D1を算出する。距離D1は、図11のステップS16と同じ方法で計算される。この距離D1は、画像処理プログラムの性能評価値を示す。
[ステップS25]判定処理部125は、算出した距離D1と、基準情報記憶部114に記憶された閾値THとを比較する。判定処理部125は、距離D1が閾値THより大きい場合、画像処理プログラムの再生成が必要と判定して、ステップS26の処理を実行する。一方、判定処理部125は、距離D1が閾値TH以下の場合、画像処理プログラムの再生成が不要と判定して処理を終了する。
[ステップS26]判定処理部125は、例えば、画像処理プログラムの再生成が必要である旨を示す情報を表示装置104aに表示する。そして、遺伝的プログラミングによって画像処理プログラムが再生成される。このとき、判定処理部125は、例えば、プログラム実行部124が直近の複数回画像処理プログラムを実行したときに入力された撮像画像を、新たな学習データの入力画像として学習データ記憶部111に格納する。また、ユーザの操作に応じた処理により、新たな入力画像に対応する目標画像または目標データが生成され、入力画像に対応付けて学習データ記憶部111に格納される。これにより、学習データ記憶部111に新たな学習データが追加される。そして、図11に示した処理が実行される。図11のステップS11では、プログラム生成部122は、既存の学習データと追加された学習データとを、プログラム生成により利用する学習データに設定する。
図14は、特徴量の算出例を示す図である。この図14では、説明を簡単にするために、画像処理プログラムに第1ノードおよび第2ノードの2つの中間ノードのみ含まれるものとする。
図14のグラフ81は、プログラム生成部122によって画像処理プログラムが生成された際の特徴量の分布を示す。グラフ81における丸印は、それぞれ個別の入力画像を入力として画像処理プログラムを実行したときに算出された特徴量についての、第1ノードのノード特徴量と第2ノードのノード特徴量の座標空間における位置を示す。図11のステップS16では、これらの特徴量に基づいて初期特徴量F0と閾値THが算出される。グラフ81に示すように、初期特徴量F0を中心として閾値THを半径とする円83の中に上記各特徴量が含まれるように、初期特徴量F0と閾値THが算出される。
一方、図14のグラフ82は、生成された画像処理プログラムがプログラム実行部124によって実行された際の特徴量の分布を示す。グラフ82における丸印は、それぞれ個別の撮像画像を入力として画像処理プログラムを実行したときに算出された特徴量についての、第1ノードのノード特徴量と第2ノードのノード特徴量の座標空間における位置を示す。図13のステップS25の判定処理は、算出された特徴量の座標空間上の位置が円83に含まれるか否かを判定することと同等である。
特徴量の位置が円83に含まれる場合、プログラム生成時からの特徴量の変動量が一定の範囲内に収まっていることから、撮像環境の変化や撮像対象物の状態変化が大きくないと判断される。この場合、画像処理プログラムの再生成の必要がないと判定される。一方、特徴量の位置が円83の範囲外である場合、プログラム生成時からの特徴量の変動量が一定の範囲から逸脱していることから、撮像環境の変化または撮像対象物の状態変化が許容できないほど大きくなったと判断される。この場合、画像処理プログラムの再生成が必要であると判定される。
このように、第2の実施の形態に係る画像処理装置100によれば、生成された画像処理プログラムを実行するたびに、画像処理プログラムの性能低下の兆候を正確に捉え、画像処理精度が大きく低下する前に画像処理プログラムの再生成が必要であることを判定できる。その結果、画像処理プログラムを用いた運用を停止せずに、再学習により画像処理プログラムを生成し直すことができる。
[第3の実施の形態]
次に、第3の実施の形態に係る画像処理装置について説明する。第3の実施の形態に係る画像処理装置は、第2の実施の形態に係る画像処理装置100の処理の一部を変形したものである。
次に、第3の実施の形態に係る画像処理装置について説明する。第3の実施の形態に係る画像処理装置は、第2の実施の形態に係る画像処理装置100の処理の一部を変形したものである。
図15は、第3の実施の形態に係る画像処理装置が備える処理機能の構成例を示すブロック図である。図15では、図10と共通する構成要素には同じ符号を付して示している。第3の実施の形態に係る画像処理装置100aは、図10の基準情報記憶部114、中間処理結果記憶部115、基準情報算出部123、判定処理部125の代わりに、基準情報記憶部114a、中間処理結果記憶部115a、基準情報算出部123a、判定処理部125aを備える。
基準情報算出部123aは、基準情報として閾値THのみ算出する点で図10の基準情報算出部123とは異なり、基準情報記憶部114aは、基準情報として閾値THのみ記憶する点で図10の基準情報記憶部114とは異なる。判定処理部125aは、プログラム実行部124により画像処理プログラムが実行された際に算出した特徴量を、中間処理結果記憶部115aに格納する点と、距離D1の代わりに指標D2を算出する点で、図10の判定処理部125とは異なる。中間処理結果記憶部115aは、プログラム実行部124によって直近のp回、画像処理プログラムが実行された際に判定処理部125aによって算出された特徴量をさらに保持する点で、図10の中間処理結果記憶部115と異なる(なお、pは2以上の整数)。すなわち、中間処理結果記憶部115aは、中間処理結果に加え、p組の特徴量を保持する。
図16は、第3の実施の形態における画像処理プログラムおよび基準情報の生成処理手順の例を示すフローチャートである。この図16の処理では、図11の処理におけるステップS16がステップS16aに置き換えられている。なお、ステップS13~S15の処理は、基準情報算出部123の代わりに基準情報算出部123aによって実行されるが、その処理内容は同じである。
[ステップS16a]基準情報算出部123aは、各学習データに基づいて算出された特徴量を用いて、基準情報として閾値THを算出し、基準情報記憶部114aに格納する。閾値THの算出方法は、図11のステップS16と同様である。
図17は、第3の実施の形態における画像処理プログラムの実行時の処理手順の例を示すフローチャートである。この図17の処理は、図13の処理におけるステップS23~S25がステップS23a~S25aに置き換えられている。なお、ステップS22では、中間処理結果は中間処理結果記憶部115aに格納される。
[ステップS23a]判定処理部125aは、図13のステップS23と同様の手順で、中間処理結果記憶部115aに記憶された中間ノードごとの中間処理結果に基づいて、特徴量Fを算出する。中間ノードの数がmの場合、特徴量Fにはm個のノード特徴量が含まれる。判定処理部125aは、算出した特徴量Fを中間処理結果記憶部115aに保存する。このとき、判定処理部125aは、直近に算出されたp組の特徴量Fだけが中間処理結果記憶部115aに保持されるように制御する。
[ステップS24a]判定処理部125aは、中間処理結果記憶部115aからp組の特徴量Fを読み込む。判定処理部125aは、p組の特徴量Fのバラツキ度合いを示す指標D2を算出する。この指標D2は、画像処理プログラムの性能評価値を示す。
指標D2は、例えば、閾値THと同様の計算方法によって算出される。すなわち、判定処理部125aは、まず、p組の特徴量Fの平均である平均特徴量を算出する。具体的には、判定処理部125aは、p組の特徴量に含まれる中間ノードごとのノード特徴量の平均値を算出する。画像処理プログラムのノード数をmとすると、この演算により、ノード特徴量の平均値がm個含まれる平均特徴量が算出される。なお、図6に示したように中間ノードに組み込まれている部分プログラムの種類ごとに異なる方法でノード特徴量が算出された場合には、各ノード特徴量が正規化された上で平均値が算出される。次に、基準情報算出部123aは、p組の特徴量のそれぞれと平均特徴量との距離を算出する。基準情報算出部123aは、算出されたn個の距離の平均値と標準偏差とを算出する。基準情報算出部123aは、平均値と標準偏差との加算値を、指標D2として算出する。
[ステップS25a]判定処理部125aは、算出した指標D2と、基準情報記憶部114に記憶された閾値THとを比較する。判定処理部125aは、指標D2が閾値THより大きい場合、画像処理プログラムの再生成が必要と判定して、ステップS26の処理を実行する。一方、判定処理部125aは、指標D2が閾値TH以下の場合、画像処理プログラムの再生成が不要と判定して処理を終了する。
以上の画像処理装置100aによれば、直近の所定回数の画像処理プログラムの実行時にそれぞれ算出された特徴量Fの変動量に基づいて、撮像環境の変化や撮像対象物の状態変化の大きさが検出される。これにより、画像処理プログラムの性能低下の兆候を正確に捉え、画像処理精度が大きく低下する前に画像処理プログラムの再生成が必要であることを判定できる。
なお、上記の画像処理装置100aは、直近の所定回数の画像処理プログラムの実行時にそれぞれ算出された特徴量Fを用いて指標D2を算出した。しかし、他の例として、画像処理装置100aは、直近の一定時間内に画像処理プログラムを実行したときにそれぞれ算出された特徴量Fを用いて、指標D2を算出してもよい。この場合、指標D2の算出のために利用される特徴量Fの数は可変となる。
[第4の実施の形態]
第2の実施の形態に係る画像処理装置100、または第3の実施の形態に係る画像処理装置100aが備えるプログラム生成機能とプログラム実行機能は、それぞれ個別の装置が備えていてもよい。以下、そのようなシステムを第4の実施の形態として例示する。
第2の実施の形態に係る画像処理装置100、または第3の実施の形態に係る画像処理装置100aが備えるプログラム生成機能とプログラム実行機能は、それぞれ個別の装置が備えていてもよい。以下、そのようなシステムを第4の実施の形態として例示する。
図18は、第4の実施の形態に係るプログラム生成装置および画像処理装置の処理機能の構成例を示すブロック図である。この図18では、第2の実施の形態に係る画像処理装置100が備えるプログラム生成機能とプログラム実行機能を、それぞれプログラム生成装置200、画像処理装置300が備えるものとする。なお、図18では、図10と同じ構成要素には同じ符号を付している。また、プログラム生成装置200および画像処理装置300は、例えば、図2に示したようなハードウェア構成のコンピュータとして実現可能である。
プログラム生成装置200は、学習データ記憶部111、部分プログラム記憶部112、プログラム生成部122および基準情報算出部123を有する。ただし、プログラム生成部122は、学習データに入力画像として登録する撮像画像をカメラから取得する場合には、例えば、撮像画像を画像処理装置300の撮像画像取得部121を介して取得する。また、プログラム生成部122は、生成した画像処理プログラムを画像処理装置300に送信し、画像処理装置300のプログラム記憶部113に格納する。また、基準情報算出部123は、算出した基準情報を画像処理装置300に送信し、画像処理装置300の基準情報記憶部114に保存する。
画像処理装置300は、プログラム記憶部113、基準情報記憶部114、中間処理結果記憶部115、撮像画像取得部121、プログラム実行部124および判定処理部125を有する。なお、画像処理装置300にはカメラ107aが接続されており、撮像画像取得部121は、カメラ107aから撮像画像を取得する。
このような構成により、遺伝的プログラミングによる画像処理プログラムの生成および基準情報の算出が、プログラム生成装置200で実行される。そして、生成された画像処理プログラムの実行および画像処理プログラムを再生成すべきかの判定が、画像処理装置300で実行される。
なお、第3の実施の形態に係る画像処理装置100aが備えるプログラム生成機能とプログラム実行機能を、それぞれプログラム生成装置200、画像処理装置300が備える場合には、図18の構成は次のように変形される。プログラム生成装置200は、基準情報算出部123の代わりに基準情報算出部123aを備える。画像処理装置300は、基準情報記憶部114、中間処理結果記憶部115、判定処理部125の代わりに、基準情報記憶部114a、中間処理結果記憶部115a、判定処理部125aを備える。
[第5の実施の形態]
図19は、第5の実施の形態に係る画像処理システムの構成例を示す図である。第5の実施の形態に係る画像処理システムは、複数台の端末装置410,420,430とサーバ装置440とを有する。端末装置410,420,430は、ネットワーク450を介してサーバ装置440と接続されている。また、端末装置410,420,430には、カメラ411,421,431がそれぞれ接続されている。なお、端末装置410,420,430およびサーバ装置440は、例えば、図2に示したようなハードウェア構成のコンピュータとして実現可能である。
図19は、第5の実施の形態に係る画像処理システムの構成例を示す図である。第5の実施の形態に係る画像処理システムは、複数台の端末装置410,420,430とサーバ装置440とを有する。端末装置410,420,430は、ネットワーク450を介してサーバ装置440と接続されている。また、端末装置410,420,430には、カメラ411,421,431がそれぞれ接続されている。なお、端末装置410,420,430およびサーバ装置440は、例えば、図2に示したようなハードウェア構成のコンピュータとして実現可能である。
図19に示した構成の画像処理システムにおいて、第2の実施の形態に係る画像処理装置100または第3の実施の形態に係る画像処理装置100aの各処理機能を実現することができる。例えば、画像処理装置100または画像処理装置100aの処理機能を、サーバ装置440が備える。この場合、サーバ装置440は、カメラ411,421,431で撮像された撮像画像を、それぞれ端末装置410,420,430を介して取得する。また、サーバ装置440は、画像処理装置100または画像処理装置100aの処理を、カメラ411,421,431ごとに個別に実行する。あるいは、サーバ装置440は、画像処理プログラムおよび基準情報の生成処理については共通に実行してもよい。
また、他の例として、図18のプログラム生成装置200の処理機能がサーバ装置440で実現され、画像処理装置300の処理機能が端末装置410,420,430で実現されてもよい。この場合、例えば、プログラム生成装置200の処理機能は、端末装置410,420,430のそれぞれについて個別に実現されてもよいし、共通に実現されてもよい。後者の場合、サーバ装置440で共有に生成された画像処理プログラムと基準情報が、端末装置410,420,430に配信される。
なお、上記の各実施の形態に示した装置(画像処理装置1,100,100a,300、プログラム生成装置200、端末装置410,420,430、サーバ装置440)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc-Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
1 画像処理装置
1a 記憶部
1b 演算部
2 画像処理プログラム
3 撮像画像
11~13 処理結果
20 特徴量
1a 記憶部
1b 演算部
2 画像処理プログラム
3 撮像画像
11~13 処理結果
20 特徴量
Claims (8)
- 複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラムを記憶する記憶部と、
前記画像処理プログラムにしたがって、撮像装置によって撮像された撮像画像に対する画像処理を実行するたびに、前記複数のノードのうち終端ノードを除く中間ノードのそれぞれにおける処理結果に基づいて特徴量を算出し、時間経過に伴う前記特徴量の変動量に基づいて、前記画像処理プログラムの性能評価値を算出する演算部と、
を有する画像処理装置。 - 前記演算部は、前記性能評価値に基づいて、前記画像処理プログラムを遺伝的プログラミングによって再生成すべきかを判定する、
請求項1記載の画像処理装置。 - 前記演算部は、前記画像処理プログラムを遺伝的プログラミングによって生成する際に利用した入力画像に対して、前記画像処理プログラムにしたがって初期画像処理を施し、前記各中間ノードにおける処理結果に基づいて前記中間ノードごとにノード特徴量を算出し、前記ノード特徴量のバラツキ度合いを示す指標に基づいて閾値を算出し、
前記判定では、前記性能評価値と前記指標との比較に基づいて前記画像処理プログラムを再生成すべきかを判定する、
請求項2記載の画像処理装置。 - 前記演算部は、前記画像処理プログラムを遺伝的プログラミングによって生成する際に利用した入力画像に対して、前記画像処理プログラムにしたがって初期画像処理を施し、前記各中間ノードにおける処理結果に基づいて初期特徴量を算出し、
前記評価値の算出では、前記特徴量と前記初期特徴量との距離を前記性能評価値として算出する、
請求項1または2記載の画像処理装置。 - 前記評価値の算出では、直近の複数回数の前記画像処理の実行時にそれぞれ算出された前記特徴量のバラツキ度合いを示す指標を、前記性能評価値として算出する、
請求項1乃至3のいずれか1項に記載の画像処理装置。 - 前記特徴量の算出では、前記各中間ノードに組み込まれた前記部分プログラムの種類ごとに異なる算出方法で、前記中間ノードごとにノード特徴量を算出し、前記ノード特徴量に基づいて前記特徴量を算出する、
請求項1,2,4,5のいずれか1項に記載の画像処理装置。 - コンピュータが、
複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラムにしたがって、撮像装置によって撮像された撮像画像に対する画像処理を実行するたびに、前記複数のノードのうち終端ノードを除く中間ノードのそれぞれにおける処理結果に基づいて特徴量を算出し、
時間経過に伴う前記特徴量の変動量に基づいて、前記画像処理プログラムの性能評価値を算出する、
画像処理方法。 - コンピュータに、
複数のノードのそれぞれに部分プログラムが組み込まれた木構造をなす画像処理プログラムにしたがって、撮像装置によって撮像された撮像画像に対する画像処理を実行するたびに、前記複数のノードのうち終端ノードを除く中間ノードのそれぞれにおける処理結果に基づいて特徴量を算出し、
時間経過に伴う前記特徴量の変動量に基づいて、前記画像処理プログラムの性能評価値を算出する、
処理を実行させる画像処理プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017562208A JP6631641B2 (ja) | 2016-01-20 | 2016-01-20 | 画像処理装置、画像処理方法および画像処理プログラム |
CN201680079208.4A CN108475425B (zh) | 2016-01-20 | 2016-01-20 | 图像处理装置、图像处理方法及计算机可读取的记录介质 |
PCT/JP2016/051519 WO2017126046A1 (ja) | 2016-01-20 | 2016-01-20 | 画像処理装置、画像処理方法および画像処理プログラム |
US16/034,969 US11468261B2 (en) | 2016-01-20 | 2018-07-13 | Information processing apparatus, image processing method, and computer-readable recording medium recording image processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/051519 WO2017126046A1 (ja) | 2016-01-20 | 2016-01-20 | 画像処理装置、画像処理方法および画像処理プログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/034,969 Continuation US11468261B2 (en) | 2016-01-20 | 2018-07-13 | Information processing apparatus, image processing method, and computer-readable recording medium recording image processing program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017126046A1 true WO2017126046A1 (ja) | 2017-07-27 |
Family
ID=59362679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/051519 WO2017126046A1 (ja) | 2016-01-20 | 2016-01-20 | 画像処理装置、画像処理方法および画像処理プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11468261B2 (ja) |
JP (1) | JP6631641B2 (ja) |
CN (1) | CN108475425B (ja) |
WO (1) | WO2017126046A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020101900A (ja) * | 2018-12-20 | 2020-07-02 | 富士通株式会社 | 画像検査装置、画像検査のための学習方法および画像検査プログラム |
JP2020144755A (ja) * | 2019-03-08 | 2020-09-10 | 日立オートモティブシステムズ株式会社 | 演算装置 |
JPWO2020225902A1 (ja) * | 2019-05-09 | 2020-11-12 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6889510B2 (ja) * | 2018-11-28 | 2021-06-18 | 株式会社トラスト・テクノロジー | プログラミング装置、およびプログラム |
JP7238376B2 (ja) * | 2018-12-14 | 2023-03-14 | 富士通株式会社 | 情報処理システム及び情報処理システムの制御方法 |
CN110428399B (zh) * | 2019-07-05 | 2022-06-14 | 百度在线网络技术(北京)有限公司 | 用于检测图像的方法、装置、设备和存储介质 |
JP2021074360A (ja) * | 2019-11-12 | 2021-05-20 | 株式会社日立製作所 | 医用画像処理装置及び医用画像処理方法、医用画像処理プログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012203634A (ja) * | 2011-03-25 | 2012-10-22 | Toshiba Corp | 認識装置、方法及びプログラム |
JP5541426B1 (ja) * | 2012-08-10 | 2014-07-09 | コニカミノルタ株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
JP2015064625A (ja) * | 2013-09-24 | 2015-04-09 | 株式会社Screenホールディングス | 画像処理装置、画像処理方法およびプログラム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51100804A (en) | 1975-02-28 | 1976-09-06 | Chubu Rika Kk | Insatsuyoheibanno saiseishoriho oyobi saiseihin |
JP2001092972A (ja) * | 1999-09-24 | 2001-04-06 | Mamoru Minami | 画像認識方法 |
JP4827285B2 (ja) | 2000-09-04 | 2011-11-30 | 東京エレクトロン株式会社 | パターン認識方法、パターン認識装置及び記録媒体 |
CN100565556C (zh) * | 2004-05-14 | 2009-12-02 | 欧姆龙株式会社 | 特定被摄体检测装置 |
CN1989524A (zh) | 2004-07-26 | 2007-06-27 | 皇家飞利浦电子股份有限公司 | 用于自动确定可疑的物体边界的系统和方法 |
JP2006293820A (ja) * | 2005-04-13 | 2006-10-26 | Sharp Corp | 外観検査装置、外観検査方法およびコンピュータを外観検査装置として機能させるためのプログラム |
US20140321756A9 (en) * | 2008-05-27 | 2014-10-30 | Samsung Electronics Co., Ltd. | System and method for circling detection based on object trajectory |
BRPI0919870A2 (pt) * | 2008-10-27 | 2015-12-15 | Nippon Telegraph & Telephone | método para produção automática de procedimento de geração de valor de pixel predito, método de codificação de imagem, método de decodificação de imagem, aparelho para este fim programas para este fim e mídia de armazenamento que armazena os programas |
JP4678060B2 (ja) * | 2009-03-25 | 2011-04-27 | 株式会社ニコン | 撮像装置および画像処理プログラム |
JP5448758B2 (ja) * | 2009-11-30 | 2014-03-19 | キヤノン株式会社 | 情報処理装置、情報処理方法、情報処理システム、プログラム及びデータ構造 |
GB201215944D0 (en) * | 2012-09-06 | 2012-10-24 | Univ Manchester | Image processing apparatus and method for fittng a deformable shape model to an image using random forests |
JP6102947B2 (ja) * | 2012-12-28 | 2017-03-29 | 富士通株式会社 | 画像処理装置及び特徴検出方法 |
EP2806374B1 (en) * | 2013-05-24 | 2022-07-06 | Tata Consultancy Services Limited | Method and system for automatic selection of one or more image processing algorithm |
US9798751B2 (en) * | 2013-10-16 | 2017-10-24 | University Of Tennessee Research Foundation | Method and apparatus for constructing a neuroscience-inspired artificial neural network |
JP6344469B2 (ja) * | 2014-06-11 | 2018-06-20 | 富士通株式会社 | プログラム生成装置、プログラム生成方法およびプログラム |
CN106462401B (zh) * | 2014-06-19 | 2019-09-10 | 富士通株式会社 | 程序生成装置和程序生成方法 |
-
2016
- 2016-01-20 WO PCT/JP2016/051519 patent/WO2017126046A1/ja active Application Filing
- 2016-01-20 CN CN201680079208.4A patent/CN108475425B/zh active Active
- 2016-01-20 JP JP2017562208A patent/JP6631641B2/ja active Active
-
2018
- 2018-07-13 US US16/034,969 patent/US11468261B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012203634A (ja) * | 2011-03-25 | 2012-10-22 | Toshiba Corp | 認識装置、方法及びプログラム |
JP5541426B1 (ja) * | 2012-08-10 | 2014-07-09 | コニカミノルタ株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
JP2015064625A (ja) * | 2013-09-24 | 2015-04-09 | 株式会社Screenホールディングス | 画像処理装置、画像処理方法およびプログラム |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020101900A (ja) * | 2018-12-20 | 2020-07-02 | 富士通株式会社 | 画像検査装置、画像検査のための学習方法および画像検査プログラム |
JP7206892B2 (ja) | 2018-12-20 | 2023-01-18 | 富士通株式会社 | 画像検査装置、画像検査のための学習方法および画像検査プログラム |
JP2020144755A (ja) * | 2019-03-08 | 2020-09-10 | 日立オートモティブシステムズ株式会社 | 演算装置 |
WO2020183776A1 (ja) * | 2019-03-08 | 2020-09-17 | 日立オートモティブシステムズ株式会社 | 演算装置 |
JP7079745B2 (ja) | 2019-03-08 | 2022-06-02 | 日立Astemo株式会社 | 演算装置 |
JPWO2020225902A1 (ja) * | 2019-05-09 | 2020-11-12 | ||
WO2020225902A1 (ja) * | 2019-05-09 | 2020-11-12 | 日本電信電話株式会社 | 検知装置、検知方法および検知プログラム |
JP7173308B2 (ja) | 2019-05-09 | 2022-11-16 | 日本電信電話株式会社 | 検知装置、検知方法および検知プログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2017126046A1 (ja) | 2018-09-20 |
US20180322364A1 (en) | 2018-11-08 |
US11468261B2 (en) | 2022-10-11 |
CN108475425A (zh) | 2018-08-31 |
JP6631641B2 (ja) | 2020-01-15 |
CN108475425B (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017126046A1 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
US10867244B2 (en) | Method and apparatus for machine learning | |
TW202234236A (zh) | 用以最佳化邊緣網路中的資源之方法、系統、製品及設備 | |
JP6511986B2 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
JPWO2017068675A1 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
JP6015670B2 (ja) | 画像処理装置及び画像処理方法 | |
WO2019160003A1 (ja) | モデル学習装置、モデル学習方法、プログラム | |
US20180174072A1 (en) | Method and system for predicting future states of a datacenter | |
JP7268756B2 (ja) | 劣化抑制プログラム、劣化抑制方法および情報処理装置 | |
JP2024500904A (ja) | 人工知能でセキュリティ問題を自動修復するための技術 | |
US20190050740A1 (en) | Accelerated decision tree execution | |
KR101741248B1 (ko) | 복수의 변수를 이용한 인과관계 추정 방법 및 장치 | |
JP2018014107A (ja) | ヘテロジニアスシステムにおけるアプリケーション性能の近似計算 | |
US11688175B2 (en) | Methods and systems for the automated quality assurance of annotated images | |
JP2021119442A (ja) | 異常検知方法、異常検知装置、異常検知プログラムおよび学習方法 | |
TW202316215A (zh) | 用於工業機器的預測性維護 | |
JP2023142779A (ja) | 精度監視システム、精度監視方法、および、精度監視プログラム | |
US11348213B2 (en) | Multistage process model training | |
US10444860B2 (en) | Optical navigation device | |
JP5542727B2 (ja) | エラー訂正装置、エラー訂正方法及びエラー訂正プログラム | |
WO2017056320A1 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
US20240202910A1 (en) | Method and apparatus with semiconductor image processing | |
WO2024024263A1 (ja) | 検査装置及び方法 | |
US20240104908A1 (en) | Evaluation method | |
CN111930470A (zh) | 一种云平台下运行环境感知的虚拟机异常检测方法 |
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: 16886288 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017562208 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: 16886288 Country of ref document: EP Kind code of ref document: A1 |