WO2023238702A1 - コンピュータプログラム、処理方法、および、処理装置 - Google Patents
コンピュータプログラム、処理方法、および、処理装置 Download PDFInfo
- Publication number
- WO2023238702A1 WO2023238702A1 PCT/JP2023/019670 JP2023019670W WO2023238702A1 WO 2023238702 A1 WO2023238702 A1 WO 2023238702A1 JP 2023019670 W JP2023019670 W JP 2023019670W WO 2023238702 A1 WO2023238702 A1 WO 2023238702A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image data
- image
- mask
- label
- mask image
- Prior art date
Links
- 238000004590 computer program Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 title claims description 101
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000000034 method Methods 0.000 claims abstract description 104
- 230000008569 process Effects 0.000 claims abstract description 85
- 230000006870 function Effects 0.000 claims abstract description 33
- 238000010801 machine learning Methods 0.000 claims abstract description 21
- 230000007423 decrease Effects 0.000 claims abstract description 12
- 238000012549 training Methods 0.000 claims description 83
- 230000003287 optical effect Effects 0.000 claims description 11
- 230000008859 change Effects 0.000 abstract description 3
- 238000007689 inspection Methods 0.000 description 35
- 239000013256 coordination polymer Substances 0.000 description 29
- 238000012795 verification Methods 0.000 description 27
- 238000012360 testing method Methods 0.000 description 19
- 239000000463 material Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 238000003384 imaging method Methods 0.000 description 15
- 238000002360 preparation method Methods 0.000 description 15
- 230000002159 abnormal effect Effects 0.000 description 13
- 238000003860 storage Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 11
- 230000007547 defect Effects 0.000 description 9
- 238000009499 grossing Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 238000005286 illumination Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 239000002184 metal Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 101100165202 Caenorhabditis elegans bbs-1 gene Proteins 0.000 description 1
- 101100165205 Caenorhabditis elegans bbs-2 gene Proteins 0.000 description 1
- HIZCTWCPHWUPFU-UHFFFAOYSA-N Glycerol tribenzoate Chemical compound C=1C=CC=CC=1C(=O)OCC(OC(=O)C=1C=CC=CC=1)COC(=O)C1=CC=CC=C1 HIZCTWCPHWUPFU-UHFFFAOYSA-N 0.000 description 1
- 239000006002 Pepper Substances 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009958 sewing Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- 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/72—Data preparation, e.g. statistical preprocessing of image or video features
Definitions
- the present specification relates to a computer program, a processing method, and a processing device for executing specific processing using a machine learning model.
- Patent Document 1 discloses a technique that generates a large amount of face images using 3DCG model data and performs machine learning on a face classifier using the face images.
- illumination parameters such as the irradiation direction and the intensity of the light source are determined, and a facial image is generated based on the illumination parameters.
- This specification discloses a new technique that reduces the burden of preparing image data for input into a machine learning model.
- a first generation function that generates mask image data representing a two-dimensional mask image including the acquisition function and a plurality of pixels corresponding to the plurality of pixels of the target image, which is a two-dimensional image.
- the values of a plurality of pixels of the mask image indicate brightness defined according to a specific variation pattern, and the specific variation pattern is a pattern in which the brightness decreases as the distance from a specific position increases in a specific direction.
- the adjustment process includes the second generation function, which is a process of adjusting the brightness of a plurality of pixels in the target image based on the values of corresponding pixels in the mask image, and the input image data.
- a specific processing function that executes a specific process using a machine learning model, the specific process including a process of generating output data by inputting the input image data to the machine learning model.
- a computer program that makes a computer realize functions.
- input image data to be input to a machine learning model is generated using two-dimensional target image data and two-dimensional mask image data.
- input image data can be easily generated. Therefore, for example, compared to the case of using three-dimensional CG data, the burden of preparing input image data to be input to a machine learning model can be reduced.
- the technology disclosed in this specification can be realized in various other forms, such as processing methods, processing devices, machine learning model training methods, training devices, and these devices and methods. It can be realized in the form of a computer program for realizing it, a recording medium on which the computer program is recorded, and the like.
- FIG. 1 is a block diagram showing the configuration of an inspection system 1000 according to the present embodiment.
- An explanatory diagram of a product 300 Flowchart of inspection preparation processing. Flowchart of training image data generation processing. The figure which shows an example of the image used in test preparation processing. Flowchart of light source addition processing. The figure which shows an example of light source parameter table PT.
- An explanatory diagram of a mask image An explanatory diagram of the image generation model GN.
- Flowchart of inspection processing Flowchart of inspection processing. An explanatory diagram of mask images MIB and MIC in a modified example.
- FIG. 1 is a block diagram showing the configuration of an inspection system 1000 of this embodiment.
- Inspection system 1000 includes a processing device 100 and an imaging device 400.
- the processing device 100 and the imaging device 400 are communicably connected.
- the processing device 100 is, for example, a computer such as a personal computer.
- the processing device 100 includes a CPU 110 as a controller of the processing device 100, a GPU 115, a volatile storage device 120 such as a RAM, a non-volatile storage device 130 such as a hard disk drive, an operation unit 150 such as a mouse and a keyboard, and a liquid crystal display. It includes a display section 140 such as a display, and a communication section 170.
- the communication unit 170 includes a wired or wireless interface for communicably connecting to an external device, for example, the imaging device 400.
- a GPU (Graphics Processing Unit) 115 is a processor that performs calculation processing for image processing such as three-dimensional graphics under the control of the CPU 110. In this embodiment, it is used to execute arithmetic processing of the image generation model GN, which will be described later.
- the volatile storage device 120 provides a buffer area that temporarily stores various intermediate data generated when the CPU 110 performs processing.
- the nonvolatile storage device 130 stores a computer program PG, a light source parameter table PT, and draft image data RD.
- the light source parameter table PT and the draft image data RD are used in training image data generation processing to be described later.
- the light source parameter table PT and the draft image data RD will be described later.
- the computer program PG includes, as a module, a computer program that causes the CPU 110 and the GPU 115 to cooperate to realize the functions of the image generation model GN, which will be described later.
- the computer program PG is provided, for example, by the manufacturer of the processing device 100.
- the computer program PG may be provided, for example, in the form of being downloaded from a server, or may be provided in the form of being stored on a DVD-ROM or the like.
- the CPU 110 executes inspection processing and inspection preparation processing, which will be described later, by executing the computer program PG.
- the imaging device 400 is a digital camera that generates image data representing a subject (also referred to as captured image data) by capturing an image of the subject using a two-dimensional image sensor.
- the captured image data is bitmap data that represents an image including a plurality of pixels, and specifically, is RGB image data that represents the color of each pixel using RGB values.
- the RGB value is a color value of the RGB color system including gradation values of three color components (hereinafter also referred to as component values), that is, an R value, a G value, and a B value.
- the R value, G value, and B value are, for example, gradation values of a predetermined number of gradations (for example, 256).
- the captured image data may be brightness image data representing the brightness of each pixel.
- An image represented by RGB image data is a two-dimensional image composed of a plurality of pixels arranged in a two-dimensional coordinate space in the vertical and horizontal directions.
- the imaging device 400 generates captured image data and transmits it to the processing device 100 under the control of the processing device 100.
- the imaging device 400 is used to capture an image of the product 300 to which the label L is attached, which is the inspection target of the inspection process, and to generate captured image data representing a captured image for inspection.
- the imaging device 400 may be used to generate the material image data described above.
- FIG. 2 is an explanatory diagram of the product 300.
- FIG. 2(A) shows a perspective view of the product 300.
- the product 300 is a printer having a casing 30 having a substantially rectangular parallelepiped shape.
- a rectangular label L is attached to the front surface 31 (+Y side surface) of the housing 30 at a predetermined attachment position.
- the label L includes, for example, a background B, and characters TX and marks MK indicating various information such as a manufacturer's or product's brand logo, model number, and lot number.
- FIG. 3 is a flowchart of the test preparation process.
- the training image data generation process is a process of generating training image data, which is image data used for training a machine learning model, using the draft image data RD.
- FIG. 4 is a flowchart of training image data generation processing.
- FIG. 5 is a diagram showing an example of an image used in the test preparation process.
- FIG. 5A shows an example of RI indicated by the draft image data RD.
- the master image RI is an image showing the label BL.
- the label shown in the draft image RI is given the symbol "BL" to distinguish it from the actual label L.
- the label BL is a CG (computer graphics) image representing the actual label L.
- the draft image data RD is bitmap data similar to the captured image data, and in this embodiment is RGB image data.
- the draft image data RD is data used to create the label L.
- the label L is created by printing the master image RI indicated by the master image data RD on a label sheet.
- the draft image RI of this embodiment may be adjusted to a size different from the size for printing.
- the size (the number of pixels in the vertical and horizontal directions) of the master image RI is adjusted to 70% to 80% of the size of the input image of the image generation model GN.
- the CPU 110 executes smoothing processing on the draft image data RD.
- Smoothing processing is processing for smoothing an image.
- the smoothing process blurs the edges in the image.
- the smoothing process uses, for example, a Gaussian filter.
- the standard deviation ⁇ which is a parameter of the Gaussian filter, is randomly determined within the range of 0 to 3. This makes it possible to vary the degree of blurring of edges.
- smoothing processing using a Laplacian filter or a median filter may be used.
- the noise addition process is a process of adding to the image, for example, noise that follows a normal distribution, such as noise that is generated by normal distribution random numbers generated by parameters with an average of 0 and a variance of 10 for all pixels.
- Rotation processing is processing for rotating an image at a specific rotation angle.
- the specific rotation angle is determined randomly within the range of -3 degrees to +3 degrees, for example.
- a positive rotation angle indicates clockwise rotation
- a negative rotation angle indicates counterclockwise rotation.
- the rotation is performed, for example, around the center of gravity of the draft image DI1.
- the draft image data RD that has undergone the image processing in S210 to S220 is hereinafter also referred to as label image data.
- the image represented by the draft image data RD subjected to the image processing in S210 to S220 is hereinafter also referred to as the label image LI.
- FIG. 5(B) shows an example of the label image LI.
- These image processes and the light source addition process described later are processes for adjusting the master image RI, which is a CG image, into an image that looks like a photographed label. Due to the rotation process described above, gaps nt are created between the four sides of the label image LI and the four sides of the label BL2. The area of the gap nt is filled with pixels of a predetermined color, for example, white.
- the CPU 110 generates background image data indicating the background image BI.
- FIG. 5(D) shows an example of the background image BI.
- the background image BI of this embodiment is an image obtained by adding noise to a monochrome image having a background color different from the color of the label BL2 of the label image LI.
- the background color is randomly determined, for example, in a predetermined color range having a different hue from the color of the label BL2.
- noise to be added for example, noise following a normal distribution or salt-and-pepper noise is used, as in the noise addition process described above.
- the size of the background image BI (the number of pixels in the vertical and horizontal directions) is the size of the input image of the image generation model GN.
- the background image data is RGB image data like the label image data.
- the light source addition process is a process for expressing a state in which an object in an image is irradiated with light from a predetermined light source.
- FIG. 6 is a flowchart of the light source addition process.
- the CPU 110 determines whether to set light source parameters.
- the light source parameters are light source parameters for expressing light irradiation in a pseudo manner.
- the first light source addition process since there is no set light source parameter, it is determined that the light source parameter must be set.
- the second and subsequent light source addition processes when changing the set light source parameters, it is determined that the light source parameters are set, and when the set light source parameters are not to be changed, it is determined that the light source parameters are not set.
- the light source parameters are changed, for example, about once every predetermined number of times (for example, several times to several tens of times).
- the light source parameters include the coordinates (Xc, Yc) of the center CP, the initial radius Rs, the difference radius Rd, the initial label brightness bls, the difference label brightness bld, the initial background brightness bbs, and the difference background brightness bbd. include.
- the coordinates (Xc, Yc) of the center CP are, for example, randomly determined to be the coordinates of one point within the background image BI to be generated.
- the initial radius Rs and the difference radius Rd are, for example, randomly determined to values within a predetermined range (for example, a range of 5 to 30% of the width of the label image LI).
- the initial label brightness bls, differential label brightness bld, initial background brightness bbs, and differential background brightness bbd are determined with reference to the light source parameter table PT (FIG. 1).
- FIG. 7 is a diagram showing an example of the light source parameter table PT.
- the light source parameter table PT includes a label table PT1 and a background table PT2.
- initial label brightness bls and differential label brightness bld are recorded in association with each of multiple types of label materials (in the example of FIG. 7, metal A, plastic A, and paper A). has been done.
- initial background brightness bbs and differential background brightness bbd are recorded in association with each of multiple types of background materials (in the example of FIG. 7, metal B, plastic B, and paper B). has been done.
- the initial label brightness bls, differential label brightness bld, initial background brightness bbs, and differential background brightness bbd are determined according to the optical properties (characteristics of reflection, absorption, transmission, etc.) of the material. For example, the reflection intensity of metal is higher than that of plastic, and the reflection intensity of plastic is higher than that of paper. For this reason, the initial label brightness bls and differential label brightness bld of metal are higher than the initial label brightness bls and differential label brightness bld of plastic, and the initial label brightness bls and differential label brightness bld of plastic are higher than the initial label brightness bls and differential label brightness bld of paper.
- the materials assumed to be the material of the label and the material of the subject constituting the background are different, and the optical properties of these materials are also different.
- the brightness corresponding to the optical characteristics of the label and background materials can be adjusted in the label mask image LMI and background mask image BMI, which will be described later. Fluctuation patterns can be realized.
- the CPU 110 randomly selects one material from among the plurality of label materials, refers to the label table PT1, and determines the initial label brightness bls and differential label brightness bld associated with the selected material. are determined as the light source parameters to be set.
- the CPU 110 randomly selects one material from among the plurality of background materials, refers to the background table PT2, and determines the initial background brightness bbs and differential background brightness bbd associated with the selected material. are determined as the light source parameters to be set.
- FIG. 8 is an explanatory diagram of a mask image.
- FIG. 8(A) shows a conceptual diagram of a mask image.
- the mask image MI in FIG. 8A represents, for example, light emitted from a single light source such as a light bulb.
- the data indicating the mask image MI is brightness data indicating the brightness of each pixel.
- the mask image MI is defined by a plurality of circles C1 to C7 having a set center CP.
- the radius of the smallest circle C1 is the initial radius Rs, which is one of the light source parameters.
- the mask image MI is divided into areas A01 to A67 by these circles C1 to C7.
- the area A01 is an area within the circle C1 including the center CP.
- Area An(n+1) is an area between circle Cn and circle C(n+1).
- the areas A01 to A67 have different brightness depending on the area.
- the brightness of area A01 is the initial brightness.
- the brightness of the area An(n+1) is the value obtained by subtracting the difference brightness from the brightness of the area A(n-1)n adjacent to the inside.
- the initial brightness is the initial background brightness bbs in the background mask image BMI (described later), and is the initial label brightness bls in the label mask image LMI (described later).
- the background brightness is a differential background brightness bbd in the background mask image BMI (described later), and is a differential label brightness bld in the label mask image LMI (described later).
- the brightness of the areas A01 to A67 is set such that the brightness of the area A01 including the center CP is the highest, and the brightness gradually decreases as the area is farther away from the center CP. That is, the mask image MI (background mask image BMI or label mask image LMI) of this embodiment is brightest near the center CP, and gradually becomes darker as it moves away from the center CP.
- the brightness of the mask image MI of this embodiment decreases as it moves away from a specific position (center CP in this embodiment) in a specific direction (radial direction of circles C1 to C7 in this embodiment). It shows the brightness defined according to the variation pattern.
- FIG. 8(B) shows an example of the background mask image BMI.
- the size of the background mask image BMI is the same size as the background image BI described above.
- the CPU 110 forms the mask image MI of FIG. 8A within an image of the same size as the background image BI so that the center CP is located at the coordinates (Xc, Yc) determined as the light source parameters.
- background mask image data indicating the background mask image BMI of FIG. 8(B) is generated.
- the image within the rectangular area BA in FIG. 8(A) corresponds to the background mask image BMI in FIG. 8(B).
- the CPU 110 acquires the background mask image data used in the previous light source addition process from the memory (nonvolatile storage device 130 or volatile storage device 120) in S315. do. That is, when the light source parameters are not changed, the mask image data used in the previous light source addition process is reused.
- a label partial area LPA is determined within the background mask image BMI.
- the label partial area LPA is an area having the same size as the label image LI described above (FIG. 5(B)).
- the label partial area LPA is randomly determined within the background mask image BMI such that the entire label partial area LPA is located within the background mask image BMI.
- the CPU 110 cuts out the image within the label partial area LPA from the background mask image BMI. As a result, cutout image data indicating the cutout image TMI is generated.
- FIG. 8(C) shows the cutout image TMI.
- the CPU 110 uses the cutout image data to generate label mask image data indicating the label mask image LMI.
- the values (brightness) of pixels in areas A01 to A67 in the cutout image TMI are calculated from values based on the initial background brightness bbs and the differential background brightness bbd to the initial label brightness bls and the differential label brightness bld. Replace with a value based on .
- the center CP and the arrangement of the regions A01 to A67 in the label mask image LMI are the same as the cutout image TMI, but the brightness of the regions A01 to A67 in the label mask image LMI is the same as the cutout image TMI. It is different from the output image TMI.
- the background mask image BMI and the label mask image LMI differ in the initial brightness and differential brightness, which are part of the light source parameters. and the extent to which the brightness decreases with increasing distance from the center CP). That is, the label mask image LMI shows the brightness defined according to the first variation pattern, and the background mask image BMI shows the brightness defined according to the second variation pattern different from the first variation pattern.
- both the label mask image LMI and the background mask image BMI are composed of a plurality of pixels arranged in a two-dimensional coordinate space in the vertical and horizontal directions, similarly to the label image LI and the background mask image BMI. This is a two-dimensional image.
- the CPU 110 executes mask processing using background image data indicating the background image BI (FIG. 5(D)) and background mask image data indicating the background mask image BMI (FIG. 8(B)). do.
- processed background image data indicating the masked background image BIs is generated. Since the background image BI and the background mask image BMI have the same size, the plurality of pixels in the background image BI and the plurality of pixels in the background mask image BMI have a one-to-one correspondence.
- FIG. 5(E) shows an example of the masked background image BIs.
- the masked background image BIs is an image that pseudo-expresses a state in which the background image BI is irradiated with light from a light source.
- the CPU 110 executes mask processing using the label image data representing the label image LI (FIG. 5(B)) and the label mask image data representing the label mask image LMI (FIG. 8(D)). do.
- processed label image data indicating the masked label image LIs is generated. Since the label image LI and the label mask image LMI have the same size, the plurality of pixels in the label image LI and the plurality of pixels in the label mask image LMI have a one-to-one correspondence.
- FIG. 5(C) shows an example of the masked label image LIs.
- the mask-processed label image LIs becomes an image that pseudo-expresses a state in which the label image LI is irradiated with light from a light source.
- the mask processing of this embodiment is a process of adjusting the brightness of multiple pixels in the image to be processed based on the values (Vb and Vl) of the corresponding pixels in the mask image. be.
- the CPU 110 In the compositing process, the CPU 110 generates an alpha channel, which is information that defines the opacity ⁇ , for each of the plurality of pixels of the masked label image LIs.
- the opacity ⁇ of the pixels forming the label BL2 of the label image LIs (FIG. 5(C)) is set to 1 (100%), and the opacity ⁇ of the pixels forming the gap nt is set to 0 (0%).
- the CPU 110 selects a background image that overlaps with the pixels (pixels whose opacity ⁇ is set to 1) forming the label BL2 of the label image LIs. Identify pixels on BIs. The CPU 110 replaces the values of the plurality of pixels of the identified background image BIs with the values of the plurality of corresponding pixels of the label image LIs.
- S318 in FIG. 6 is a process for determining the combining position of the label image LIs with respect to the background image BIs.
- training image data indicating a training image SI (FIG. 5(F)) in which the background image BIs and the label image LIs are combined, with the background image BIs as the background and the label image LIs (label BL2) as the foreground, is created. generated.
- the training image SI is an image that is a pseudo representation of a captured image obtained by capturing the label L and the background illuminated with light from a light source.
- the CPU 110 saves (stores) the generated training image data in the nonvolatile storage device 130.
- the CPU 110 determines whether a predetermined number (for example, hundreds to tens of thousands) of training image data has been generated. If the predetermined number of training image data have not been generated (S255: NO), the CPU 110 returns to S210. If the predetermined number of training image data have been generated (S255: YES), the CPU 110 ends the training image data generation process.
- a predetermined number for example, hundreds to tens of thousands
- FIG. 9 is an explanatory diagram of the image generation model GN.
- FIG. 9(A) is a schematic diagram showing an example of the configuration of the image generation model GN.
- the image generation model GN is a so-called autoencoder, and includes an encoder Ve and a decoder Vd.
- the encoder Ve performs dimension reduction processing on the input image data IIg representing the image of the object, and extracts the features of the input image represented by the input image data IIg (for example, the training image SI in FIG. 5(F)). Extract and generate feature data.
- the encoder Ve has p convolutional layers Ve21 to Ve2p (m is an integer greater than or equal to 1). Immediately after each convolutional layer is a pooling layer (eg, a max-pooling layer). The activation function of each of the p convolutional layers is, for example, ReLU.
- the decoder Vd performs dimension restoration processing on the feature data to generate output image data OIg.
- the output image data OIg represents an image reconstructed based on the feature data.
- the image size of the output image data OIg and the color components of the color values of each pixel are the same as those of the input image data IIg.
- the decoder Vd has q (q is an integer greater than or equal to 1) convolutional layers Vd21-Vd2q.
- An upsampling layer is provided immediately after each of the remaining convolutional layers except for the last convolutional layer Vd2q.
- the activation function of the final convolutional layer Vd2q is a function suitable for generating the output image data OIg (for example, a Sigmoid function or a Tanh function).
- the activation function of each of the other convolutional layers is, for example, ReLU.
- the convolution layers Ve21-Ve2p and Vd21-Vd2q execute processing including convolution processing and bias addition processing on input data. These convolutional layers each have calculation parameters including multiple weights and multiple biases of multiple filters used in convolution processing.
- FIG. 9(B) is a flowchart of the training process for the image generation model GN.
- a plurality of calculation parameters used for calculation of the image generation model GN including a plurality of calculation parameters used for calculation of each of the convolutional layers Ve21-Ve2p and Vd21-Vd2q) are adjusted.
- a plurality of calculation parameters are set to initial values such as random values.
- the CPU 110 acquires a batch size of training image data from the nonvolatile storage device 130.
- the CPU 110 inputs the plurality of training image data to the image generation model GN, and generates the plurality of output image data OIg corresponding to the plurality of training image data.
- the CPU 110 calculates a loss value using the plurality of training image data and the plurality of output image data OIg corresponding to the plurality of training image data. Specifically, the CPU 110 calculates an evaluation value indicating the difference between the training image data and the corresponding output image data OIg for each training image data.
- the loss value is, for example, the sum of cross-entropy errors of component values for each pixel and each color component. Other known loss functions for calculating a loss value according to the difference between component values, such as a squared error or an absolute error, may be used to calculate the loss value.
- the CPU 110 uses the calculated loss value to adjust a plurality of calculation parameters of the image generation model GN. Specifically, CPU 110 adjusts the calculation parameters according to a predetermined algorithm so that the sum of loss values calculated for each training image data becomes small.
- a predetermined algorithm for example, an algorithm using error backpropagation method and gradient descent method is used.
- the CPU 110 determines whether the training end condition is satisfied. Similar to S450 in FIG. 9(B), the training end conditions include various conditions, such as the loss value becoming less than the reference value, the amount of change in the loss value becoming less than the reference value, and S540. The number of times the adjustment of the calculation parameters has been repeated is equal to or greater than a predetermined number.
- the CPU 110 If the training termination condition is not met (S550: NO), the CPU 110 returns to S510 and continues the training. If the training termination condition is met (S550: YES), the CPU 110 stores the trained image generation model GN data including the adjusted calculation parameters in the nonvolatile storage device 130 in S560. Then, the training process ends.
- the output image data OIg generated by the trained image generation model GN represents a reproduced image (not shown) in which the features of the training image SI as an input image are reconstructed and reproduced. For this reason, the output image data OIg generated by the trained image generation model GN is also called reproduced image data indicating a reproduced image.
- the reproduced image is an image that is substantially similar to the input image (for example, the training image SI).
- the trained image generation model GN is trained to reconstruct only the features of the training image SI that indicate the normal label L. For this reason, when input image data indicating a label image containing defects such as scratches or dirt (described later) is input to the trained image generation model GN, the reproduced image data generated is an image of a normal label. can be expected to show. In other words, whether image data indicating a normal label or image data indicating an abnormal label including a defect is input to the image generation model GN, the reproduced image will be a reproduction of a normal label. It becomes an image.
- FIG. 10 is a flowchart of inspection processing.
- FIG. 11 is an explanatory diagram of the inspection process.
- the inspection process is a process of inspecting whether the label L to be inspected is an abnormal product containing defects or the like or a normal product containing no defects or the like.
- the inspection process is executed for each label L.
- the inspection process is started when a user (for example, an inspection operator) inputs a process start instruction to the processing device 100 via the operation unit 150. For example, the user inputs an instruction to start the inspection process while placing the product 300 to which the label L to be inspected is attached at a predetermined position for imaging using the imaging device 400.
- the CPU 110 acquires captured image data indicating a captured image including a TI indicating a label L to be inspected (hereinafter also referred to as an inspection item). For example, the CPU 110 transmits an imaging instruction to the imaging device 400, causes the imaging device 400 to generate captured image data, and acquires the captured image data from the imaging device 400. As a result, for example, captured image data representing the captured image FI in FIG. 11(A) is acquired.
- the captured image FI is an image showing the front surface F31 of the product and the label FL affixed on the front surface F31. In order to distinguish the front face and label of the product shown in the captured image FI from the front face 31 and label L (FIG. 2) of the actual product, the front face F31, Label it FL.
- the label FL within the label FL may include defects such as scratches.
- the CPU 110 identifies a label area LA, which is a part of the captured image FI and includes the label FL. Any method for specifying the label area LA may be employed. To specify the label area LA, a method using an object detection model such as YOLO may be used, or a known method such as pattern matching may be used. The label area LA may be specified by the operator specifying the label area LA within the captured image FI.
- the CPU 110 uses the captured image data to generate verification image data indicating the verification image TI. Specifically, CPU 110 cuts out label area LA from captured image FI and generates verification image data indicating verification image TI. CPU 110 executes a size adjustment process to enlarge or reduce verification image TI as necessary, and adjusts the size of verification image TI to the size of the input image of image generation model GN.
- Verification images TI in FIGS. 11B and 11C show images within the label area LA (that is, images of the label FL). Note that the label FLa of the verification image TIa in FIG. 11(B) is a normal product and does not include defects such as scratches.
- the label FLb of the verification image TIb in FIG. 11(C) is an abnormal product and includes a linear flaw df.
- the CPU 110 inputs the verification image data to the trained image generation model GN, and generates reproduction image data corresponding to the verification image data.
- the reproduced image indicated by the reproduced image data is an image that reproduces the label FL of the input verification image TI.
- the generated reproduced image will be similar to verification image TIa in FIG. The result is an image that does not contain defects.
- the CPU 110 uses the verification image data and the reproduction image data to generate difference image data indicating the difference image DI. For example, the CPU 110 calculates the difference value (v1-v2) between the pixel component value v1 of the verification image TI and the pixel component value v2 of the corresponding reproduction image, and sets the difference value to a value in the range of 0 to 1. Normalize to value. The CPU 110 calculates the difference value for each pixel and each color component, and generates difference image data using the difference value as the color value of the pixel.
- the difference image DIa in FIG. 11(D) is a difference image generated when the input image is the verification image TIa showing a normal product in FIG. 11(B).
- the difference image DIa does not include defects such as scratches.
- the difference image DIb in FIG. 11(E) is a difference image generated when the input image is the verification image TIb showing an abnormal product in FIG. 11(C).
- the difference image DIb includes a flaw dfd corresponding to the flaw df included in the verification image TIb.
- the CPU 110 uses the difference image data to identify abnormal pixels included in the difference image DI.
- the abnormal pixel is, for example, a pixel in which at least one component value of RGB values is equal to or greater than the threshold value TH1 among the plurality of pixels included in the difference image DI.
- the difference image DIa in FIG. 11(D) is the processing target
- no abnormal pixels are identified.
- the difference image DIb in FIG. 11E is the processing target
- a plurality of pixels forming the flaw dfd are identified as abnormal pixels.
- the CPU 110 determines whether the number of abnormal pixels identified in the difference image DI is greater than or equal to the threshold TH2. If the number of abnormal pixels is less than the threshold TH2 (S940: NO), in S950, the CPU 110 determines that the label as the inspection item is a normal item. If the number of abnormal pixels is equal to or greater than the threshold TH2 (S940: YES), in S945 the CPU 110 determines that the label as the inspection item is an abnormal item. In S955, the CPU 110 displays the test results on the display unit 140 and ends the test process. In this way, using the image generation model GN, it is possible to determine whether the inspected item is a normal item or an abnormal item.
- the CPU 110 obtains, as target image data, label image data indicating the label image LI (FIG. 5(B)) including the label BL2 and background image data (FIG. 4). S205-S230).
- the CPU 110 generates mask image data (in this embodiment, label mask image data and background label image data) (S310 and S325 in FIG. 6).
- the CPU 110 performs mask processing (S330 in FIG. 6) using mask image data (label mask image data and background label image data in this embodiment) on target image data (label image data and background image data in this embodiment). , S335) (S330, S335 in FIG. 6, S245 in FIG. 4) to generate training image data to be used as input image data IIg to the image generation model GN.
- the CPU 110 executes training processing using the training image data and the image generation model GN (S20 in FIG. 3, FIG. 9(B)).
- training image data can be easily generated.
- image data expressing the state of illumination by a light source is generated using three-dimensional CG data
- it is necessary to prepare image data to be input to a machine learning model such as the image generation model GN. can reduce the burden of Therefore, the burden for training the image generation model GN can be reduced.
- the training image data for the image generation model GN includes a variety of image data that pseudo-represents captured images captured under various illuminations. .
- various training image data can be easily generated by performing mask processing while randomly changing light source parameters.
- the brightness variation pattern expressed in the background mask image BMI and the label mask image LMI has brightness for each area A01 to A67 determined using a plurality of circles C1 to C7 including the center CP.
- This is a pattern that defines the width (FIGS. 8(A) to (D)).
- the target image data of this example includes label image data indicating a label image LI including the label BL2, and background image data indicating a background image BI that should be located outside the label in the training image SI.
- the CPU 110 generates, as mask image data, label mask image data indicating a label mask image LMI for a label region (region corresponding to the label image LI) where the label BL is located in the training image SI, and a background region (where the background is located).
- Background mask image data indicating the background mask image BMI for the area corresponding to the background image BI (S325, S310 in FIG. 6) is generated.
- the CPU 110 performs mask processing (S330, S335) using the label mask image data and the background mask image data on the target image data to generate training image data.
- the brightness of the label BL2 and the brightness of the background can be adjusted separately in the training image SI.
- the brightness fluctuation pattern in the label mask image LMI is a pattern corresponding to the optical characteristics of the label L
- the brightness fluctuation pattern in the background mask image BMI is a pattern corresponding to the optical characteristics of the subject forming the background. It is.
- the brightness of the label and the brightness of the background can be adjusted separately in the training image SI according to the optical characteristics of the label and the background.
- the label mask image LMI is generated by cutting out the image in the label partial area LPA corresponding to the area where the label image LI is synthesized with the background image BI from the background mask image BMI. (FIGS. 8B to 8D, S320 and S325 in FIG. 6). It can be seen that if the arrangement of the label partial area LPA with respect to the background image BI changes, the generated label mask image LMI also changes. As can be seen from this, different label mask images LMI are generated depending on the arrangement of the label BL2 (the position and angle of the label BL) in the training image SI. As a result, the brightness of the label BL2 can be appropriately adjusted by mask processing according to the arrangement of the label BL2 in the generated training image SI. Therefore, it is possible to generate a training image SI that pseudo-represents the imaged label more appropriately.
- the CPU 110 generates background mask image data indicating the background mask image BMI corresponding to the entire training image SI to be generated (S310 in FIG. 6). Using the background mask image data, the CPU 110 generates cutout mask image data indicating a cutout mask image corresponding to the label partial area LPA in the background mask image BMI (S320 in FIG. 6). The CPU 110 uses the cutout mask image data to generate label mask image data indicating the label mask image LMI. As a result, different label mask image data can be easily generated depending on the arrangement of the labels BL2 in the training image SI.
- the CPU 110 repeatedly executes the image processing of S210 to S220 in FIG. 4 using randomly determined parameters (S255 in FIG. Generate image data. Then, the CPU 110 generates a plurality of different training image data using the plurality of label image data. At this time, the CPU 110 reuses the previous background mask image data without changing the background mask image data in the light source addition process (S315 in FIG. 6). That is, the CPU 110 performs mask processing using one common background mask image data on a plurality of pieces of label image data to generate a plurality of pieces of training image data. As a result, a plurality of pieces of training image data can be generated using one common background mask image data, so that the processing load for generating a plurality of pieces of training image data can be reduced.
- the label image data is generated using the master image data RD (S205 to S220 in FIG. 4). That is, the label image data used to generate the training image data is image data based on the draft image data RD used to actually generate the label L. As a result, for example, a plurality of various label image data can be easily generated based on the draft image data RD, so that the burden of generating various training image data can be further reduced.
- the label image data and background image data of this embodiment are all examples of target image data
- the training image data is an example of input image data
- the label mask image data is an example of first mask image data
- the background mask image data is an example of second mask image data
- the training process for the image generation model GN is an example of specific processing.
- FIG. 12 is an explanatory diagram of mask images MIB and MIC of a modified example.
- the coordinates of the center CP, the initial width Ws, the initial height Hs, the differential width Wd, the differential height Hd, and the inclination angle ⁇ a are set.
- the mask image MIB is defined by a plurality of squares SQ1 to SQ7 having a set center CP.
- the width and height of the smallest rectangle SQ1 are the initial width Ws and the initial height Hs.
- the width of the rectangle SQn (n is an integer between 2 and 7) is the sum of the initial width Ws and ⁇ (n-1) ⁇ Wd ⁇ .
- the difference width Wd is the difference between the width of the square SQ(n+1) and the width of the square SQn.
- the height of the square SQn (n is an integer between 2 and 7) is the sum of the initial height Hs and ⁇ (n-1) ⁇ Hd ⁇ . That is, the differential height Hd is the difference between the height of the square SQ(n+1) and the height of the square SQn.
- the inclination angle ⁇ a is the angle between the lower side of the quadrangle SQ1 and the horizontal direction of the image.
- the mask image MIA is divided into areas SA01 to SA67 by these squares SQ1 to SQ7.
- Area SA01 is an area within quadrilateral SQ1 including center CP.
- Area SAn(n+1) is an area between quadrangle SQn and quadrangle SQ(n+1).
- Areas SA01 to A67 have different brightness for each area.
- the brightness of area SA01 is the initial brightness.
- the brightness of the area ASn(n+1) is the value obtained by subtracting the difference brightness from the brightness of the area A(n-1)n adjacent to the inside.
- the brightness of the areas SA01 to A67 is set such that the brightness of the area SA01 including the center CP is the highest, and the brightness gradually decreases as the area is farther away from the center CP.
- the mask image MI in FIG. 12(A) is brightest near the center CP, and gradually becomes darker as it moves away from the center CP in four directions perpendicular to each side of the square SQ1. In this way, the mask image MI of this embodiment becomes brighter as it moves away from a specific position (center CP in this embodiment) in a specific direction (in this embodiment, four directions perpendicular to each side of quadrilateral SQ1).
- the brightness is defined according to a variation pattern in which the brightness decreases. For example, a portion within the rectangular area BA in FIG. 12(A) is used as the background mask image in this modification.
- the light source parameters include the coordinates of the center CP, the initial interval Ds, the difference interval Dd, the tilt angle ⁇ b, and the initial brightness (initial label brightness and initial background brightness). , differential brightness (initial label brightness and initial background brightness) are set.
- the mask image MIC is defined by a plurality of lines L11 to L17 and L21 to L27 that are parallel to each other.
- the mask image MIB is divided into areas LA11 to LA17 and LA22 to LA27 by these lines L11 to L17 and L21 to L27.
- the interval between the two lines L11 and L21 that divide the region L11 including the center CP is the initial interval Ds.
- the distance between the two lines that divide the other areas LA12 to LA17 and LA22 to LA27 is the difference distance Dd.
- the inclination angle ⁇ b is an angle between a direction perpendicular to the plurality of lines L11 to L17 and L21 to L27 and the horizontal direction of the image.
- the brightness of area LA11 is the initial brightness.
- the brightness of the other areas is the value obtained by subtracting the difference brightness from the brightness of the area adjacent to the center CP side.
- the brightness of the areas LA11 to LA17 and LA22 to LA27 is set such that the brightness of the area LA1 including the center CP is the highest, and the brightness gradually decreases as the area is further away from the center CP. Ru. That is, the mask image MI in FIG. 12(B) is brightest near the center CP, and gradually becomes darker as it moves away from the center CP in a direction perpendicular to the line L11.
- the brightness of the mask image MI of this embodiment decreases as it moves away from a specific position (center CP in this embodiment) in a specific direction (in this embodiment, a direction perpendicular to region L11). It shows the brightness defined according to the variation pattern. For example, a portion within the rectangular area BA in FIG. 12(B) is used as the background mask image in this modification.
- These mask images MIA and MIB represent, for example, light emitted from a rod-shaped light source such as a rod-shaped fluorescent lamp.
- the mask image may be different from the mask images MI, MIA, and MIB shown in FIGS. 8 and 12 above.
- the mask image may include an area divided by a plurality of pentagons or ellipses, or may include an area divided by a more complex shape such as a star shape.
- the CPU 110 obtains background image data and label image data as target image data, and performs mask processing using separate mask image data for each of the background image data and label image data.
- the process is executed to generate processed background image data and processed label image data.
- the CPU 110 then synthesizes the processed background image data and the processed label image data to generate training image data.
- the CPU 110 obtains one target image data representing one image including a background and a label, and performs mask processing on the one target image data using one mask image data.
- the training image data may be generated using the following methods.
- a mask image represented by one mask image data may be an image generated using different light source parameters for the area corresponding to the background and the area corresponding to the label. good.
- the mask image may be an image generated using one set of light source parameters without distinguishing between the background and the label.
- the CPU 110 performs rotation processing, smoothing processing, and noise addition processing on the master image RI to generate the label image LI, and then performs mask processing on the label image LI. (S210 to S240 in FIG. 4).
- the CPU 110 combines the background image BI with the original image RI at a predetermined angle and position, and then performs mask processing using background mask image data on the background area of the combined image, and further , mask processing using label mask image data may be performed on the master image RI.
- the label partial area LPA is set at the angle and position where the master image RI is combined.
- label mask image data can be generated according to the angle and position at which the original image RI is combined.
- the CPU 110 may generate training image data by performing a smoothing process or a noise addition process on the entire masked composite image or a portion of the master image RI.
- the light source parameters for generating background mask image data are changed every time a predetermined number of training image data are generated (S300 to S315 in FIG. 6).
- the light source parameters may be changed each time training image data is generated.
- the label image data is generated using the master image data RD.
- the label image data may be captured image data obtained by photographing the label L using the imaging device 400. Even in this case, by performing mask processing on the label image data, label image data indicating a plurality of various labels can be generated from one piece of label image data.
- the training image data of the above embodiment is used for training processing of the image generation model GN.
- the training image data is not limited to this, and may be used, for example, in training processing of an object detection model for identifying a label region in which a label in an image is located.
- an object detection model called YOLO (You only look once) may be used as the object detection model, or an object detection model such as SSD, R-CNN, Fast R-CNN, Faster may be used.
- Other models may also be used, such as R-CNN and Mask R-CNN.
- the image generation model GN in the above embodiment is not limited to a normal autoencoder, but may also be a VQ-VAE (Vector Quantized Variational Auto Encoder), a VAE (Variational Autoencoder), or a so-called GAN (Generative Auto Encoder). It may also be an image generation model included in Adversarial Networks).
- VQ-VAE Vector Quantized Variational Auto Encoder
- VAE Vector Quantized Variational Auto Encoder
- GAN Generic Auto Encoder
- the CPU 110 uses the verification image data and the reproduced image data to generate difference image data, and uses the difference image data to execute the label inspection ( S920 to S950 in FIG. 10).
- the label inspection method is not limited to this, and other methods may be used.
- the CPU 110 may perform label inspection using a method called PaDiM.
- PaDiM method for example, the CPU 110 inputs verification image data to the encoder Ve of the image generation model GN, and generates feature data of the verification image data. Then, the CPU 110 executes the label inspection by calculating the Mahalanobis distance between the feature data of the verification image data and the feature data of the image data of the plurality of normal labels.
- the feature data of the image data of a plurality of normal labels is generated in advance, for example, by inputting the image data of a plurality of normal labels to the encoder Ve of the image generation model GN in the inspection preparation process.
- the PaDiM method is described, for example, in the paper “T. Defard, A. Setkov, A. Loesch, and R. Audigier, “Padim: a patch distribution modeling framework for anomaly detection and localization”, arXiv:2011.08785(2020), https: Published on 17 Nov 2020.
- a plurality of image data generated as training image data for the image generation model GN in this embodiment are used as image data of a plurality of normal labels. It's okay. That is, in the above embodiment, the generated input image data is training image data, and the specific processing executed using the input image data is training processing, but is not limited to this.
- the specific processing performed using the input image data may be a process of generating feature data of image data of a plurality of normal labels when the PaDiM method is used.
- an image identification model such as ResNet, VGG16, or VGG19 may be used instead of the image generation model GN.
- the object to be inspected is not limited to a label affixed to a product (eg, a multifunction device, sewing machine, cutting machine, mobile terminal, etc.), but may be any object.
- the object to be inspected may be, for example, a label image printed on a product.
- the object to be inspected may be the product itself, or any part of the product, such as a tag, accessory, part, stamp, etc. attached to the product.
- the machine learning model trained using the training image data of this embodiment may be used for a purpose other than object inspection processing.
- the training image data of this embodiment is generated for multiple types of labels to train an image identification model
- the image identification model may be used, for example, to identify the type of label. .
- test preparation process and the test process are executed by the processing device 100 shown in FIG.
- the test preparation process and the test process may be executed by separate devices.
- the image generation model GN trained by the test preparation process is stored in the storage device of the device that executes the test process.
- all or part of the test preparation process and the test process may be executed by a plurality of computers (for example, a so-called cloud server) that can communicate with each other via a network.
- the computer program that performs the test processing and the computer program that performs the test preparation process may be different computer programs.
- part of the configuration realized by hardware may be replaced with software, or conversely, part or all of the configuration realized by software may be replaced by hardware. You can do it like this.
- all or part of the test preparation process and the test process may be executed by a hardware circuit such as an ASIC (Application Specific Integrated Circuit).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
機械学習モデルに入力するための画像データを準備するための負担を軽減する。 コンピュータプログラムは、物体を含む対象画像を示す対象画像データを取得する機能と、マスク画像を示すマスク画像データを生成する機能と、対象画像データに対して、マスク画像データを用いる調整処理含む処理を実行して、入力画像を示す入力画像データを生成する機能と、入力画像データと機械学習モデルとを用いて特定処理を実行する機能と、を実現させる。マスク画像は、特定の変動パターンに従って規定される明るさを示す。特定の変動パターンは、特定の位置から特定方向に離れるに連れて明るさが低下するパターンである。調整処理は、対象画像内の画素の明るさをマスク画像の対応する画素の値に基づいて調整する処理である。特定処理は、入力画像データを機械学習モデルに入力することによって出力データを生成する処理を含む。
Description
本明細書は、機械学習モデルを用いて特定処理を実行するためのコンピュータプログラム、処理方法、および、処理装置に関する。
特許文献1には、3DCGモデルデータを用いて大量の顔画像を生成し、該顔画像を用いて顔識別器を機械学習する技術が開示されている。この技術では、照射方向、光源の強度などの照明パラメータを決定し、該照明パラメータに基づいて顔画像が生成される。
しかしながら、上記技術では、3DCGモデルデータを準備する必要があり、また、3DCGモデルデータを用いる処理は相応の処理時間を要する。このために、上記技術を実行する負担は、必ずしも軽いとは言えなかった。
本明細書は、機械学習モデルに入力するための画像データを準備するための負担を軽減する新たな技術を開示する。
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
[適用例1]コンピュータプログラムであって、物体を含む対象画像を示す対象画像データを取得する取得機能であって、前記対象画像は、2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である、前記取得機能と、前記対象画像の複数個の画素に対応する複数個の画素を含む2次元のマスク画像を示すマスク画像データを生成する第1生成機能であって、前記マスク画像の複数個の画素の値は、特定の変動パターンに従って規定される明るさを示し、前記特定の変動パターンは、特定の位置から特定方向に離れるに連れて前記明るさが低下するパターンである、前記第1生成機能と、前記対象画像データに対して、前記マスク画像データを用いる調整処理を含む処理を実行して、入力画像を示す入力画像データを生成する第2生成機能であって、前記調整処理は、前記対象画像内の複数個の画素の明るさを前記マスク画像の対応する画素の値に基づいて調整する処理である、前記第2生成機能と、前記入力画像データと機械学習モデルとを用いて特定処理を実行する特定処理機能であって、前記特定処理は、前記入力画像データを前記機械学習モデルに入力することによって出力データを生成する処理を含む、前記特定処理機能と、をコンピュータに実現させる、コンピュータプログラム。
上記構成によれば、2次元の対象画像データと、2次元のマスク画像データと、を用いて、機械学習モデルに入力するための入力画像データが生成される。この結果、入力画像データを容易に生成し得る。したがって、例えば、3次元のCGデータを用いる場合と比較して、機械学習モデルに入力するための入力画像データを準備するための負担を軽減することができる。
なお、本明細書に開示される技術は、他の種々の形態で実現することが可能であり、例えば、処理方法、処理装置、機械学習モデルの訓練方法、訓練装置、これらの装置および方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
A.実施例
A-1.検査装置の構成
次に、実施の形態を実施例に基づき説明する。図1は、本実施例の検査システム1000の構成を示すブロック図である。検査システム1000は、処理装置100と、撮像装置400と、を含んでいる。処理装置100と撮像装置400とは、通信可能に接続されている。
A-1.検査装置の構成
次に、実施の形態を実施例に基づき説明する。図1は、本実施例の検査システム1000の構成を示すブロック図である。検査システム1000は、処理装置100と、撮像装置400と、を含んでいる。処理装置100と撮像装置400とは、通信可能に接続されている。
処理装置100は、例えば、パーソナルコンピュータなどの計算機である。処理装置100は、処理装置100のコントローラとしてのCPU110と、GPU115と、RAMなどの揮発性記憶装置120と、ハードディスクドライブなどの不揮発性記憶装置130と、マウスやキーボードなどの操作部150と、液晶ディスプレイなどの表示部140と、通信部170と、を備えている。通信部170は、外部機器、例えば、撮像装置400と通信可能に接続するための有線または無線のインタフェースを含む。
GPU(Graphics Processing Unit)115は、CPU110の制御に従って、3次元グラフィックスなどの画像処理のための計算処理を行うプロセッサである。本実施例では、後述する画像生成モデルGNの演算処理を実行するために利用される。
揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、コンピュータプログラムPGと、光源パラメータテーブルPTと、版下画像データRDと、が格納されている。光源パラメータテーブルPTと版下画像データRDとは、後述する訓練画像データ生成処理において用いられる。光源パラメータテーブルPTと版下画像データRDについては後述する。
コンピュータプログラムPGは、後述する画像生成モデルGNの機能をCPU110とGPU115とが協働して実現させるコンピュータプログラムをモジュールとして含んでいる。コンピュータプログラムPGは、例えば、処理装置100の製造者によって提供される。コンピュータプログラムPGは、例えば、サーバからダウンロードされる形態で提供されても良く、DVD-ROMなどに格納される形態で提供されてもよい。CPU110は、コンピュータプログラムPGを実行することにより、後述する検査処理や検査準備処理を実行する。
撮像装置400は、二次元イメージセンサを用いて被写体を撮像することによって被写体を表す画像データ(撮像画像データとも呼ぶ)を生成するデジタルカメラである。撮像画像データは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、RGB値によって画素ごとの色を表すRGB画像データである。RGB値は、3個の色成分の階調値(以下、成分値とも呼ぶ)、すなわち、R値、G値、B値を含むRGB表色系の色値である。R値、G値、B値は、例えば、所定の階調数(例えば、256)の階調値である。撮像画像データは、画素ごとの輝度を表す輝度画像データであっても良い。RGB画像データによって示される画像は、縦方向および横方向の2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である。
撮像装置400は、処理装置100の制御に従って、撮像画像データを生成し、処理装置100に送信する。本実施例では、撮像装置400は、検査処理の検査対象であるラベルLが貼付された製品300を撮像して、検査用の撮像画像を示す撮像画像データを生成するために用いられる。撮像装置400は、上述した素材画像データを生成するために用いられても良い。
図2は、製品300の説明図である。図2(A)には、製品300の斜視図が示されている。製品300は、本実施例では、略直方体の筐体30を有するプリンタである。製造工程において、筐体30の前面31(+Y側の面)には、矩形のラベルLが所定の貼付位置に貼付される。
図2(B)には、ラベルLが示されている。ラベルLは、例えば、背景Bと、製造者や製品のブランドロゴ、型番、ロット番号等の各種の情報を示す文字TXやマークMKと、を含んでいる。
A-2.検査準備処理
検査準備処理は、ラベルLを検査する検査処理(後述)に先立って実行される。検査準備処理では、検査処理にて用いられる画像生成モデルGNの訓練が行われる。図3は、検査準備処理のフローチャートである。
検査準備処理は、ラベルLを検査する検査処理(後述)に先立って実行される。検査準備処理では、検査処理にて用いられる画像生成モデルGNの訓練が行われる。図3は、検査準備処理のフローチャートである。
S10では、CPU110は、訓練画像データ生成処理を実行する。訓練画像データ生成処理は、版下画像データRDを用いて、機械学習モデルの訓練に用いられる画像データである訓練画像データを生成する処理である。図4は、訓練画像データ生成処理のフローチャートである。
S205では、CPU110は、不揮発性記憶装置130から版下画像データRDを取得する。図5は、検査準備処理にて用いられる画像の一例を示す図である。図5(A)には、版下画像データRDによって示されるRIが例示されている。版下画像RIは、ラベルBLを示す画像である。版下画像RIに示されるラベルを、実物のラベルLと区別するために符号「BL」を付す。ラベルBLは、実物のラベルLを表現したCG(コンピュータグラフィックス)画像である。版下画像データRDは、撮像画像データと同様のビットマップデータ、本実施例では、RGB画像データである。版下画像データRDは、ラベルLの作成に用いられるデータである。例えば、ラベルLは、ラベル用のシートに版下画像データRDによって示される版下画像RIを印刷することによって作成される。ただし、本実施例の版下画像RIは、印刷用のサイズとは異なるサイズに調整されていても良い。本実施例では、版下画像RIのサイズ(縦方向および横方向の画素数)は、画像生成モデルGNの入力画像のサイズの70%~80%のサイズに調整されている。
S210では、CPU110は、版下画像データRDに対して、平滑化処理を実行する。平滑化処理は、画像を平滑化する処理である。平滑化処理によって、画像内のエッジがぼける。平滑化処理には、例えば、ガウシアンフィルタを用いる平滑化処理が用いられる。例えば、ガウシアンフィルタのパラメータである標準偏差σは、0~3の範囲内でランダムに決定される。これによって、エッジのぼけ方にバラツキを持たせることができる。なお、変形例では、ラプラシアンフィルタやメディアンフィルタを用いる平滑化処理が用いられても良い。
S215では、CPU110は、平滑化処理済みの版下画像データRDに対して、ノイズ付加処理を実行する。ノイズ付加処理は、画像に対して、例えば、正規分布に従うノイズであり、例えば全ての画素に対して平均0、分散10のパラメータによって生成される正規分布乱数によるノイズを付加する処理である。
S220では、CPU110は、ノイズ付加処理済みの版下画像データRDに対して回転処理を実行する。回転処理は、特定の回転角度で画像を回転させる処理である。特定の回転角度は、例えば、-3度~+3度の範囲内でランダムに決定される。例えば、正の回転角度は時計回りの回転を示し、負の回転角度は反時計回りの回転を示す。回転は、例えば、版下画像DI1の重心を中心として実行される。
S210~S220の画像処理済みの版下画像データRDを、以下では、ラベル画像データとも呼ぶ。そして、S210~S220の画像処理済みの版下画像データRDによって示される画像を、以下では、ラベル画像LIとも呼ぶ。図5(B)には、ラベル画像LIの一例が示されている。これらの画像処理と、後述する光源追加処理は、CG画像である版下画像RIを、撮影されたラベルのような見栄えの画像に調整するための処理である。上述した回転処理によって、ラベル画像LIの4辺と、ラベルBL2の4辺と、の間には、隙間ntが生じている。隙間ntの領域は、所定の色、例えば、白色の画素によって埋められている。
S230では、CPU110は、背景画像BIを示す背景画像データを生成する。図5(D)には、背景画像BIの一例が示されている。本実施例の背景画像BIは、ラベル画像LIのラベルBL2の色とは異なる背景色を有する単色の画像に、ノイズを付加した画像である。背景色は、例えば、ラベルBL2の色とは異なる色相を有する所定の色範囲において、ランダムに決定される。付加されるノイズには、例えば、上述したノイズ付加処理と同様に、正規分布に従うノイズ、あるいは、ごま塩ノイズが用いられる。背景画像BIのサイズ(縦方向および横方向の画素数)は、画像生成モデルGNの入力画像のサイズである。背景画像データは、ラベル画像データと同様にRGB画像データである。
S240では、CPU110は、ラベル画像データに対して光源追加処理を実行する。光源追加処理は、画像内のオブジェクトが所定の光源から光の照射を受けている状態を表現するための処理である。図6は、光源追加処理のフローチャートである。
S300では、CPU110は、光源パラメータを設定するか否かを判断する。光源パラメータは、疑似的に光の照射を表現するための光源のパラメータである。初回の光源追加処理では、設定済みの光源パラメータがないので、必ず光源パラメータを設定すると判断される。2回目以降の光源追加処理では、設定済みの光源パラメータを変更する場合に、光源パラメータを設定すると判断され、設定済みの光源パラメータを変更しない場合に、光源パラメータを設定しないと判断される。光源パラメータの変更は、例えば、所定回数(例えば、数回~数10回)に一度程度の割合で行われる。
光源パラメータを設定すると判断される場合には(S300:YES)、CPU110は、S305にて、光源パラメータを新たに設定する。光源パラメータは、中心CPの座標(Xc、Yc)と、初期半径Rsと、差分半径Rdと、初期ラベル明度blsと、差分ラベル明度bldと、初期背景明度bbsと、差分背景明度bbdと、を含む。
中心CPの座標(Xc、Yc)は、例えば、生成すべき背景画像BI内の1つの点の座標にランダムに決定される。初期半径Rsと差分半径Rdとは、例えば、所定範囲(例えば、ラベル画像LIの幅の5~30%の範囲)内の値にランダムに決定される。
初期ラベル明度blsと、差分ラベル明度bldと、初期背景明度bbsと、差分背景明度bbdとは、光源パラメータテーブルPT(図1)を参照して決定される。図7は、光源パラメータテーブルPTの一例を示す図である。光源パラメータテーブルPTは、ラベル用テーブルPT1と、背景用テーブルPT2と、を含んでいる。
ラベル用テーブルPT1には、複数種類のラベルの素材(図7の例では、金属A、プラスチックA、紙A)のそれぞれに対応付けて、初期ラベル明度blsと、差分ラベル明度bldと、が記録されている。背景用テーブルPT2には、複数種類の背景の素材(図7の例では、金属B、プラスチックB、紙B)のそれぞれに対応付けて、初期背景明度bbsと、差分背景明度bbdと、が記録されている。
初期ラベル明度bls、差分ラベル明度bld、初期背景明度bbs、差分背景明度bbdは、素材の光学特性(反射、吸収、透過などの特性)に応じて決定されている。例えば、金属の反射強度は、プラスチックの反射強度より高く、プラスチックの反射強度は、紙の反射強度より高い。このために、金属の初期ラベル明度blsや差分ラベル明度bldは、プラスチックの初期ラベル明度blsや差分ラベル明度bldより高く、プラスチックの初期ラベル明度blsや差分ラベル明度bldは、紙の初期ラベル明度blsや差分ラベル明度bldより高く設定されている(bls_1>bls_2>bls_3、bld_1>bld_2>bld_3)。初期背景明度bbs、差分背景明度bbdについても同様である(bbs_1>bbs_2>bbs_3、bbd_1>bbd_2>bbd_3)。このように、ラベルの素材や背景を構成する被写体の素材(例えば、製品300の前面31の素材)として想定される素材は異なるところ、これらの素材の光学特性も互いに異なる。本実施例では、ラベルや背景の素材の光学特性に対応する光源パラメータを用いることで、後述するラベルマスク画像LMIや背景マスク画像BMIにおいて、ラベルや背景の素材の光学特性に対応する明るさの変動パターンを実現できる。
CPU110は、複数個のラベルの素材の中から、1個の素材をランダムに選択し、ラベル用テーブルPT1を参照して、選択された素材に対応付けられた初期ラベル明度blsと差分ラベル明度bldとを、設定すべき光源パラメータとして決定する。CPU110は、複数個の背景の素材の中から、1個の素材をランダムに選択し、背景用テーブルPT2を参照して、選択された素材に対応付けられた初期背景明度bbsと差分背景明度bbdとを、設定すべき光源パラメータとして決定する。
S310では、CPU110は、設定された光源パラメータを用いて、背景マスク画像データを生成する。図8は、マスク画像の説明図である。図8(A)には、マスク画像の概念図が示されている。図8(A)のマスク画像MIは、例えば、電球などの1点の光源から照射される光を表現している。マスク画像MIを示すデータは、画素ごとに明度を示す明度データである。マスク画像MIは、設定された中心CPを有する複数個の円C1~C7によって規定される。最小の円C1の半径は、光源パラメータの1つである初期半径Rsである。図8(A)の円Cn(nは2以上7以下の整数)の半径は、初期半径Rsと、{(n-1)×Rd}と、の和である。すなわち、差分半径Rdは、円C(n+1)の半径と、円Cnの半径と、の差である。
これらの円C1~C7によって、マスク画像MIは、領域A01~A67に区分される。領域A01は、中心CPを含む円C1内の領域である。領域An(n+1)は、円Cnと円C(n+1)との間の領域である。領域A01~A67は、領域ごとに明度が異なる。領域A01の明度は、初期明度である。領域An(n+1)の明度は、内側に接する領域A(n-1)nの明度から差分明度を減算した値である。初期明度は、背景マスク画像BMI(後述)では、初期背景明度bbsであり、ラベルマスク画像LMI(後述)では、初期ラベル明度blsである。背景明度は、背景マスク画像BMI(後述)では、差分背景明度bbdであり、ラベルマスク画像LMI(後述)では、差分ラベル明度bldである。以上の説明から解るように、領域A01~A67の明度は、中心CPを含む領域A01の明度が最も高く、中心CPから離れた領域ほど明度が段階的に低くなるように設定される。すなわち、本実施例のマスク画像MI(背景マスク画像BMIやラベルマスク画像LMI)は、中心CPの近傍が最も明るく、中心CPから離れるほど段階的に暗くなる。このように、本実施例のマスク画像MIは、特定の位置(本実施例では、中心CP)から特定方向(本実施例では円C1~C7の半径方向)に離れるに連れて明るさが低下する変動パターンに従って規定される明るさを示している。
図8(B)には、背景マスク画像BMIの一例が示されている。背景マスク画像BMIのサイズは、上述した背景画像BIと同じサイズである。CPU110は、光源パラメータとして決定された座標(Xc、Yc)に中心CPが位置するように、背景画像BIと同じサイズの画像内に、図8(A)のマスク画像MIを形成する。これによって、図8(B)の背景マスク画像BMIを示す背景マスク画像データを生成する。換言すれば、図8(A)に示すマスク画像MIのうち、図8(A)の矩形領域BA内の画像が、図8(B)の背景マスク画像BMIに相当する。
光源パラメータを設定しない場合には(S300:NO)、CPU110は、S315にて前回の光源追加処理にて使用した背景マスク画像データをメモリ(不揮発性記憶装置130または揮発性記憶装置120)から取得する。すなわち、光源パラメータを変更しない場合には、前回の光源追加処理にて使用されたマスク画像データが再利用される。
S318では、背景マスク画像BMI内に、ラベル部分領域LPAを決定する。ラベル部分領域LPAは、上述した(図5(B))ラベル画像LIと同じサイズの領域である。ラベル部分領域LPAは、ラベル部分領域LPAの全体が背景マスク画像BMI内に位置するように、背景マスク画像BMI内にランダムに決定される。
S320では、CPU110は、背景マスク画像BMIからラベル部分領域LPA内の画像を切り出す。これによって、切出画像TMIを示す切出画像データが生成される。図8(C)には、切出画像TMIが図示されている。
S325では、CPU110は、切出画像データを用いて、ラベルマスク画像LMIを示すラベルマスク画像データを生成する。具体的には、切出画像TMI内の領域A01~A67内の画素の値(明度)を、初期背景明度bbsと差分背景明度bbdとに基づく値から、初期ラベル明度blsと差分ラベル明度bldとに基づく値に置換する。図8(D)に示すように、ラベルマスク画像LMIにおける中心CPおよび領域A01~A67の配置は、切出画像TMIと同じであるが、ラベルマスク画像LMIにおける領域A01~A67の明度は、切出画像TMIとは異なっている。このように、背景マスク画像BMIとラベルマスク画像LMIとでは、光源パラメータのうちの一部である初期明度と差分明度とが異なっているので、明るさの変動パターン(例えば、中心CP近傍の明度や、中心CPから離れるに従って明度が低下する程度)が異なっている。すなわち、ラベルマスク画像LMIは、第1変動パターンに従って規定される明るさを示し、背景マスク画像BMIは、第1変動パターンとは異なる第2変動パターンに従って規定される明るさを示している。
ラベルマスク画像データおよび背景マスク画像データは、いずれも明度を画素ごとに示すビットマップデータである。このために、ラベルマスク画像LMIおよび背景マスク画像BMIは、いずれも、ラベル画像LIおよび背景マスク画像BMIと同様に、縦方向および横方向の2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である。
S330では、CPU110は、背景画像BI(図5(D))を示す背景画像データと、背景マスク画像BMI(図8(B))を示す背景マスク画像データと、を用いて、マスク処理を実行する。これよって、マスク処理済みの背景画像BIsを示す処理済背景画像データが生成される。背景画像BIと背景マスク画像BMIとはサイズが同じであるので、背景画像BI内の複数個の画素と、背景マスク画像BMI内の複数個の画素と、は、一対一で対応している。マスク処理前の背景画像BIの画素の値(RGB値)を(Rb、Gb、Bb)とし、背景マスク画像BMIの対応する画素の値(明度)をVbとすると、マスク処理済みの背景画像BIsの画素の値(Rbs、Gbs、Bbs)は、以下の式によって示される。ここで、(Rb、Gb、Bb)、Vbは、いずれも0~1の範囲の値を取るものとする。
Rbs=1-(1-Rb)(1-Vb)
Gbs=1-(1-Gb)(1-Vb)
Bbs=1-(1-Bb)(1-Vb)
Rbs=1-(1-Rb)(1-Vb)
Gbs=1-(1-Gb)(1-Vb)
Bbs=1-(1-Bb)(1-Vb)
図5(E)には、マスク処理済みの背景画像BIsの一例が図示されている。マスク処理済みの背景画像BIsは、背景画像BIに光源から光が照射された状態を疑似的に表現した画像になる。
S335では、CPU110は、ラベル画像LI(図5(B))を示すラベル画像データと、ラベルマスク画像LMI(図8(D))を示すラベルマスク画像データと、を用いて、マスク処理を実行する。これよって、マスク処理済みのラベル画像LIsを示す処理済ラベル画像データが生成される。ラベル画像LIとラベルマスク画像LMIとはサイズが同じであるので、ラベル画像LI内の複数個の画素と、ラベルマスク画像LMI内の複数個の画素と、は、一対一で対応している。マスク処理前のラベル画像LIの画素の値(RGB値)を(Rl、Gl、Bl)とし、ラベルマスク画像LMIの対応する画素の値(明度)をVlとすると、マスク処理済みのラベル画像LIsの画素の値(Rls、Gls、Bls)は、以下の式によって示される。ここで、(Rl、Gl、Bl)、Vlは、いずれも0~1の範囲の値を取るものとする。
Rls=1-(1-Rl)(1-Vl)
Gls=1-(1-Gl)(1-Vl)
Bls=1-(1-Bl)(1-Vl)
Rls=1-(1-Rl)(1-Vl)
Gls=1-(1-Gl)(1-Vl)
Bls=1-(1-Bl)(1-Vl)
図5(C)には、マスク処理済みのラベル画像LIsの一例が図示されている。マスク処理済みのラベル画像LIsは、ラベル画像LIに光源から光が照射された状態を疑似的に表現した画像になる。上記の式から解るように、本実施例のマスク処理は、処理対象の画像内の複数個の画素の明るさをマスク画像の対応する画素の値(VbやVl)に基づいて調整する処理である。
図4のS240の光源追加処理後のS245では、CPU110は、処理済背景画像データと処理済ラベル画像データとを合成する合成処理を実行して、訓練画像SIb(合成画像)を示す訓練画像データを生成する。
合成処理では、CPU110は、マスク処理済みのラベル画像LIsの複数個の画素のそれぞれについて、不透明度αを規定する情報であるアルファチャンネルを生成する。ラベル画像LIs(図5(C))のラベルBL2を構成する画素の不透明度αは、1(100%)に設定され、隙間ntを構成する画素の不透明度αは、0(0%)に設定される。
CPU110は、マスク処理済みの背景画像BIs上の合成位置にラベル画像LIsを配置した場合に、ラベル画像LIsのラベルBL2を構成する画素(不透明度αが1に設定された画素)と重なる背景画像BIs上の画素を特定する。CPU110は、特定された背景画像BIsの複数個の画素の値を、ラベル画像LIsの対応する複数個の画素の値に置換する。
なお、背景画像BIsに対するラベル画像LIsの合成位置は、図6のS318にて、背景マスク画像BMI内に決定されたラベル部分領域LPAの位置である。したがって、図6のS318は、背景画像BIsに対するラベル画像LIsの合成位置を決定する処理である、とも言うことができる。
合成処理によって、背景画像BIsを背景とし、ラベル画像LIs(ラベルBL2)を前景として、背景画像BIsとラベル画像LIsとが合成された訓練画像SI(図5(F))を示す訓練画像データが生成される。訓練画像SIは、光源から光が照射された状態のラベルLと背景とを撮像して得られる撮像画像を疑似的に表現した画像になる。
S250では、CPU110は、生成された訓練画像データを不揮発性記憶装置130に保存(格納)する。S255では、CPU110は、所定数(例えば、数百~数万)の訓練画像データが生成されたか否かを判断する。所定数の訓練画像データが生成されていない場合には(S255:NO)、CPU110は、S210に戻る。所定数の訓練画像データが生成された場合には(S255:YES)、CPU110は、訓練画像データ生成処理を終了する。
図3のS10の訓練画像データ生成処理後のS20では、CPU110は、画像生成モデルGNの訓練処理を実行する。以下では、画像生成モデルGNの概要と訓練処理とを説明する。
図9は、画像生成モデルGNの説明図である。図9(A)は、画像生成モデルGNの構成の例を示す概略図である。本実施例では、画像生成モデルGNは、いわゆるオートエンコーダであり、エンコーダVeと、デコーダVdと、を備えている。
エンコーダVeは、オブジェクトの画像を表す入力画像データIIgに対して次元削減処理を実行して、入力画像データIIgによって表される入力画像(例えば、図5(F)の訓練画像SI)の特徴を抽出して特徴データを生成する。本実施例では、エンコーダVeは、p個(mは1以上の整数)の畳込層Ve21-Ve2pを有している。各畳込層の直後には、プーリング層が設けられる(例えば、最大プーリング層)。p個の畳込層のそれぞれの活性化関数は、例えば、ReLUである。
デコーダVdは、特徴データに対して次元復元処理を実行して、出力画像データOIgを生成する。出力画像データOIgは、特徴データに基づいて再構成された画像を表している。出力画像データOIgの画像サイズと各画素の色値の色成分とは、入力画像データIIgのものと同じである。
本実施例では、デコーダVdは、q個(qは1以上の整数)の畳込層Vd21-Vd2qを有している。最後の畳込層Vd2qを除いた残りの畳込層のそれぞれの直後には、アップサンプリング層が設けられる。最後の畳込層Vd2qの活性化関数は、出力画像データOIgの生成に適した関数(例えば、Sigmoid関数、または、Tanh関数)である。他の畳込層のそれぞれの活性化関数は、例えば、ReLUである。
畳込層Ve21-Ve2p、Vd21-Vd2qは、入力されるデータに対して、畳込処理とバイアスの加算処理とを含む処理を実行する。これらの畳込層は、畳込処理に用いられる複数のフィルタの複数の重みと複数のバイアスとを含む演算パラメータを、それぞれ有している。
次に、画像生成モデルGNの訓練処理(図3のS20)について説明する。図9(B)は、画像生成モデルGNの訓練処理のフローチャートである。訓練によって、画像生成モデルGNの演算に用いられる複数の演算パラメータ(畳込層Ve21-Ve2p、Vd21-Vd2qのそれぞれの演算に用いられる複数の演算パラメータを含む)が、調整される。訓練処理前は、複数の演算パラメータは、乱数値などの初期値に設定されている。
S510では、CPU110は、不揮発性記憶装置130からバッチサイズ分の複数個の訓練画像データを取得する。S520では、CPU110は、複数個の訓練画像データを画像生成モデルGNに入力し、複数個の訓練画像データに対応する複数個の出力画像データOIgを生成する。
S530では、CPU110は、複数個の訓練画像データと、複数個の訓練画像データに対応する複数個の出力画像データOIgと、を用いて、損失値を算出する。具体的には、CPU110は、訓練画像データと、対応する出力画像データOIgと、の間の差分を示す評価値を、訓練画像データごとに算出する。損失値は、例えば、画素毎、色成分毎の成分値の交差エントロピー誤差の合計値である。損失値の算出には、成分値の差分に応じた損失値を算出するための他の公知の損失関数、例えば、二乗誤差、絶対誤差が用いられても良い。
S540では、CPU110は、算出された損失値を用いて、画像生成モデルGNの複数の演算パラメータを調整する。具体的には、CPU110は、訓練画像データごとに算出される損失値の合計が小さくなるように、所定のアルゴリズムに従って演算パラメータを調整する。所定のアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズムが用いられる。
S550では、CPU110は、訓練終了条件が満たされるか否かを判断する。訓練終了条件は、図9(B)のS450と同様に、種々の条件、例えば、損失値が基準値以下になったことや、損失値の変化量が基準値以下になったことや、S540の演算パラメータの調整が繰り返された回数が所定数以上になったこと、が用いられる。
訓練の終了条件が満たされない場合には(S550:NO)、CPU110は、S510に戻って、訓練を継続する。訓練の終了条件が満たされた場合には(S550:YES)、CPU110は、S560にて、調整済の演算パラメータを含む訓練済みの画像生成モデルGNのデータを、不揮発性記憶装置130に格納して、訓練処理を終了する。
訓練済みの画像生成モデルGNによって生成される出力画像データOIgは、入力画像としての訓練画像SIの特徴を再構成して再現した再現画像(図示省略)を示す。このために、訓練済みの画像生成モデルGNによって生成される出力画像データOIgを、再現画像を示す再現画像データとも呼ぶ。再現画像は、入力画像(例えば、訓練画像SI)とほぼ同様の画像である。なお、訓練済みの画像生成モデルGNは、正常なラベルLを示す訓練画像SIの特徴のみを再構成するように訓練される。このために、キズや汚れなどの欠陥を含むラベルの画像(後述)を示す入力画像データが訓練済みの画像生成モデルGNに入力される場合に生成される再現画像データは、正常なラベルの画像を示すことが期待できる。換言すれば、画像生成モデルGNに、正常なラベルを示す画像データが入力される場合も、欠陥を含む異常なラベルを示す画像データが入力される場合も、再現画像は、正常なラベル再現した画像になる。
A-3.検査処理
図10は、検査処理のフローチャートである。図11は、検査処理の説明図である。検査処理は、検査対象のラベルLが欠陥等を含む異常品であるか、欠陥等を含まない正常品であるかを検査する処理である。検査処理は、ラベルLごとに実行される。検査処理は、ユーザ(例えば、検査の作業者)が処理の開始指示を、操作部150を介して処理装置100に入力した場合に、開始される。例えば、ユーザは、検査すべきラベルLが貼り付けられた製品300を、撮像装置400を用いて撮像するための所定の位置に配置した状態で、検査処理の開始指示を入力する。
図10は、検査処理のフローチャートである。図11は、検査処理の説明図である。検査処理は、検査対象のラベルLが欠陥等を含む異常品であるか、欠陥等を含まない正常品であるかを検査する処理である。検査処理は、ラベルLごとに実行される。検査処理は、ユーザ(例えば、検査の作業者)が処理の開始指示を、操作部150を介して処理装置100に入力した場合に、開始される。例えば、ユーザは、検査すべきラベルLが貼り付けられた製品300を、撮像装置400を用いて撮像するための所定の位置に配置した状態で、検査処理の開始指示を入力する。
S900では、CPU110は、検査すべきラベルL(以下、検査品とも呼ぶ)を示すTI含む撮像画像を示す撮像画像データを取得する。例えば、CPU110は、撮像装置400に撮像指示を送信して、撮像装置400に撮像画像データを生成させ、撮像装置400から撮像画像データを取得する。この結果、例えば、図11(A)の撮像画像FIを示す撮像画像データが取得される。撮像画像FIは、製品の前面F31と、前面F31上に貼付されたラベルFLとを示す画像である。このように撮像画像FIに示される製品の前面およびラベルを、実物の前面31およびラベルL(図2)と区別するために符号の先頭に「F」を付した符号を用いて、前面F31、ラベルFLとする。ラベルFL内のラベルFLは、キズなどの欠陥を含む場合もある。
S905では、CPU110は、撮像画像FI内の一部の領域であり、ラベルFLを含む領域であるラベル領域LAを特定する。ラベル領域LAの特定方法な任意の方法が採用される。ラベル領域LAの特定には、YOLOなどの物体検出モデルを用いる手法が用いられても良いし、パターンマッチングなどの公知の手法が用いられても良い。ラベル領域LAの特定は、オペレータが撮像画像FI内のラベル領域LAを指定することによって行われても良い。
S910では、CPU110は、撮像画像データを用いて、検証画像TIを示す検証画像データを生成する。具体的には、CPU110は、撮像画像FIからラベル領域LAを切り出して、検証画像TIを示す検証画像データを生成する。CPU110は、必要に応じて検証画像TIを拡大または縮小するサイズ調整処理を実行して、検証画像TIのサイズを画像生成モデルGNの入力画像のサイズに調整する。図11(B)、(C)の検証画像TIは、ラベル領域LA内の画像(すなわち、ラベルFLの画像)を示している。なお、図11(B)の検証画像TIaのラベルFLaは、正常品であり、キズなどの欠陥を含んでいない。図11(C)の検証画像TIbのラベルFLbは、異常品であり、線状のキズdfを含んでいる。
S915では、CPU110は、検証画像データを、訓練済みの画像生成モデルGNに入力し、検証画像データに対応する再現画像データを生成する。再現画像データによって示される再現画像は、上述したように、入力された検証画像TIのラベルFLを再現した画像である。例えば、入力された検証画像TIが図11(B)、(C)の検証画像TIa、TIbのいずれであっても、生成される再現画像は、図11(B)の検証画像TIaのように欠陥を含まない画像になる。
S920では、CPU110は、検証画像データと再現画像データとを用いて、差分画像DIを示す差分画像データを生成する。例えば、CPU110は、検証画像TIの画素の成分値v1と、対応する再現画像の画素の成分値v2と、の差分値(v1-v2)を算出し、該差分値を0~1の範囲の値に正規化する。CPU110は、画素ごと、色成分ごとに、当該差分値を算出し、該差分値を画素の色値とする差分画像データを生成する。
図11(D)、(E)には、差分画像DIの一例が示されている。図11(D)の差分画像DIaは、入力画像が図11(B)の正常品を示す検証画像TIaである場合に生成される差分画像である。差分画像DIaは、キズなどの欠陥を含まない。図11(E)の差分画像DIbは、入力画像が図11(C)の異常品を示す検証画像TIbである場合に生成される差分画像である。差分画像DIbは、検証画像TIbに含まれるキズdfに対応するキズdfdを含んでいる。このために、差分画像DIを参照することで、例えば、検証画像TIに含まれる欠陥の有無、位置、大きさ、形状を特定することができる。
S925では、CPU110は、差分画像データを用いて、差分画像DIに含まれる異常画素を特定する。異常画素は、例えば、差分画像DIに含まれる複数個の画素のうち、RGB値の少なくとも1つの成分値が閾値TH1以上である画素である。例えば、図11(D)の差分画像DIaが処理対象である場合には、異常画素は特定されない。図11(E)の差分画像DIbが処理対象である場合には、キズdfdを構成する複数個の画素が異常画素として特定される。
S940では、CPU110は、差分画像DIにおいて特定された異常画素の個数が閾値TH2以上であるか否かを判断する。異常画素の個数が閾値TH2未満である場合には(S940:NO)、S950にて、CPU110は、検査品としてのラベルは正常品であると判定する。異常画素の個数が閾値TH2以上である場合には(S940:YES)、S945にて、CPU110は、検査品としてのラベルは異常品であると判定する。S955では、CPU110は、検査結果を表示部140に表示して、検査処理を終了する。このように画像生成モデルGNを用いて、検査品が正常品であるか異常品であるかを判定することができる。
以上説明した本実施例によれば、CPU110は、対象画像データとして、ラベルBL2を含むラベル画像LI(図5(B))を示すラベル画像データと背景画像データと、を取得する(図4のS205~S230)。CPU110は、マスク画像データ(本実施例ではラベルマスク画像データと背景ラベル画像データ)を生成する(図6のS310、S325)。CPU110は、対象画像データ(本実施例ではラベル画像データと背景画像データ)に対して、マスク画像データ(本実施例ではラベルマスク画像データと背景ラベル画像データ)を用いるマスク処理(図6のS330、S335)を含む処理(図6のS330、S335、図4のS245)実行して、画像生成モデルGNへの入力画像データIIgとして用いられる訓練画像データを生成する。CPU110は、訓練画像データと画像生成モデルGNとを用いて訓練処理を実行する(図3のS20、図9(B))。この結果、訓練画像データを容易に生成し得る。例えば、3次元のCGデータを用いて光源が照射された状態を表現する画像データを生成する場合と比較して、画像生成モデルGNなどの機械学習モデルに入力するための画像データを準備するための負担を軽減することができる。したがって、画像生成モデルGNの訓練処理のための負担を軽減することができる。
また、画像生成モデルGN用の訓練画像データは、画像生成モデルGNを適切に訓練するために、多様な照明下で撮像された撮像画像を疑似的に表現した多様な画像データを含むことが好ましい。これによって、検査処理において、多様な照明下で撮像された撮像画像データに基づく検証画像データが画像生成モデルGNに入力された場合に、適切な再現画像データを生成できるように、画像生成モデルGNを訓練できる。本実施例では、例えば、光源パラメータをランダムに変更しながら、マスク処理を実行することで、多様な訓練画像データを容易に生成することができる。
本実施例において、背景マスク画像BMIやラベルマスク画像LMIに表現される明るさの変動パターンは、中心CPを含む複数個の円C1~C7を用いて決定される領域A01~領域A67ごとに明るさを規定するパターンである(図8(A)~(D))。このように、単純な形状に基づいてマスク画像データが生成されるので、例えば、複雑な形状のマスク画像データを生成する場合と比較してマスク画像データを生成する処理の負荷を軽減し得る。
さらに、本実施例の対象画像データは、ラベルBL2を含むラベル画像LIを示すラベル画像データと、訓練画像SIにおいてラベルの外側に位置すべき背景画像BIを示す背景画像データと、を含んでいる。CPU110は、マスク画像データとして、訓練画像SIにおいてラベルBLが位置するラベル領域(ラベル画像LIに対応する領域)のためのラベルマスク画像LMIを示すラベルマスク画像データと、背景が位置する背景領域(背景画像BIに対応する領域)のための背景マスク画像BMIを示す背景マスク画像データと、を生成する(図6のS325、S310)。CPU110は、対象画像データに対して、ラベルマスク画像データと背景マスク画像データとを用いるマスク処理(S330、S335)を実行して、訓練画像データを生成する。この結果、本実施例では、訓練画像SIにおいて、ラベルBL2の明るさと背景の明るさとをそれぞれ別個に調整することができる。
さらに、本実施例によれば、上述したように、ラベルの素材や背景を構成する被写体の素材(例えば、製品300の前面31の素材)として想定される素材ごとに異なる光源パラメータ(初期明度や差分明度)を用いている。すなわち、ラベルマスク画像LMIにおける明るさの変動パターンは、ラベルLの光学特性に対応するパターンであり、背景マスク画像BMIにおける明るさの変動パターンは、背景を構成する被写体の光学特性に対応するパターンである。この結果、ラベルや背景の光学特性に応じて、訓練画像SIにおいてラベルの明るさと背景の明るさとをそれぞれ別個に調整することができる。
さらに、本実施例によれば、背景画像BIに対してラベル画像LIが合成される領域に対応するラベル部分領域LPA内の画像を、背景マスク画像BMIから切り出すことで、ラベルマスク画像LMIが生成されている(図8(B)~(D)、図6のS320、S325)。背景画像BIに対するラベル部分領域LPAの配置が変動すれば、生成されるラベルマスク画像LMIも異なることが解る。このことから解るように、訓練画像SI内におけるラベルBL2の配置(ラベルBLの位置や角度)に応じて異なるラベルマスク画像LMIが生成される。この結果、生成される訓練画像SIにおけるラベルBL2の配置に応じて、ラベルBL2の明るさをマスク処理によって適切に調整することができる。したがって、撮像されたラベルを疑似的により適切に表現した訓練画像SIを生成できる。
さらに、本実施例によれば、CPU110は、生成すべき訓練画像SIの全体に対応する背景マスク画像BMIを示す背景マスク画像データを生成する(図6のS310)。CPU110は、背景マスク画像データを用いて、背景マスク画像BMIのうちのラベル部分領域LPAに対応する切出マスク画像を示す切出マスク画像データを生成する(図6のS320)。CPU110は、切出マスク画像データを用いて、ラベルマスク画像LMIを示すラベルマスク画像データを生成する。この結果、訓練画像SIにおけるラベルBL2における配置に応じて異なるラベルマスク画像データを容易に生成できる。
さらに、本実施例によれば、CPU110は、図4のS210~S220の画像処理をランダムに決定されるパラメータを用いて繰り返し実行する(図4のS255等)ことで、互いに異なる複数個のラベル画像データを生成する。そして、CPU110は、複数個のラベル画像データを用いて、複数個の互いに異なる訓練画像データを生成する。その際に、CPU110は、光源追加処理において、背景マスク画像データを変更することなく、前回の背景マスク画像データを再利用する(図6のS315)。すなわち、CPU110は、複数個のラベル画像データに対して、共通の1つの背景マスク画像データを用いるマスク処理を実行して、複数個の訓練画像データを生成する。この結果、共通の1つの背景マスク画像データを用いて、複数個の訓練画像データを生成できるので、複数個の訓練画像データを生成するための処理負荷を軽減することができる。
さらに、本実施例では、ラベル画像データは、版下画像データRDを用いて生成される(図4のS205~S220)。すなわち、訓練画像データの生成に用いられるラベル画像データは、実際にラベルLの作成に用いられる版下画像データRDに基づく画像データである。この結果、例えば、複数個の多様なラベル画像データを、版下画像データRDに基づいて容易に生成できるので、多様な訓練画像データを生成するための負担をさらに軽減することができる。
以上の説明から解るように、本実施例のラベル画像データと背景画像データとの全体は、対象画像データの例であり、訓練画像データは、入力画像データの例である。また、ラベルマスク画像データは、第1マスク画像データの例であり、背景マスク画像データは、第2マスク画像データの例である。また、画像生成モデルGNの訓練処理は、特定処理の例である。
B.変形例
(1)上記実施例の光源追加処理で用いられるマスク画像MI(背景マスク画像BMIおよびラベルマスク画像LMI)は、円C1~C7によって明るさの変動パターンが規定されている(図8(A)~(D))。これに代えて、他の態様のマスク画像が用いられても良い。図12は、変形例のマスク画像MIB、MICの説明図である。
(1)上記実施例の光源追加処理で用いられるマスク画像MI(背景マスク画像BMIおよびラベルマスク画像LMI)は、円C1~C7によって明るさの変動パターンが規定されている(図8(A)~(D))。これに代えて、他の態様のマスク画像が用いられても良い。図12は、変形例のマスク画像MIB、MICの説明図である。
図12(A)のマスク画像MIBでは、例えば、光源パラメータとして、中心CPの座標と、初期幅Wsと、初期高さHsと、差分幅Wdと、差分高さHdと、傾斜角θaと、初期明度(初期ラベル明度と初期背景明度)と、差分明度(初期ラベル明度と初期背景明度)とが、設定される。マスク画像MIBは、設定された中心CPを有する複数個の四角形SQ1~SQ7によって規定される。最小の四角形SQ1の幅および高さは、初期幅Wsおよび初期高さHsである。四角形SQn(nは2以上7以下の整数)の幅は、初期幅Wsと、{(n-1)×Wd}と、の和である。すなわち、差分幅Wdは、四角形SQ(n+1)の幅と、四角形SQnの幅と、の差である。四角形SQn(nは2以上7以下の整数)の高さは、初期高さHsと、{(n-1)×Hd}と、の和である。すなわち、差分高さHdは、四角形SQ(n+1)の高さと、四角形SQnの高さと、の差である。傾斜角θaは、四角形SQ1の下辺と、画像の横方向と、の間の角度である。
これらの四角形SQ1~SQ7によって、マスク画像MIAは、領域SA01~SA67に区分される。領域SA01は、中心CPを含む四角形SQ1内の領域である。領域SAn(n+1)は、四角形SQnと四角形SQ(n+1)との間の領域である。領域SA01~A67は、領域ごとに明度が異なる。領域SA01の明度は、初期明度である。領域ASn(n+1)の明度は、内側に接する領域A(n-1)nの明度から差分明度を減算した値である。以上の説明から解るように、領域SA01~A67の明度は、中心CPを含む領域SA01の明度が最も高く、中心CPから離れた領域ほど明度が段階的に低くなるように設定される。すなわち、図12(A)のマスク画像MIは、中心CPの近傍が最も明るく、中心CPから四角形SQ1の各辺と垂直な4方向に離れるほど段階的に暗くなる。このように、本実施例のマスク画像MIは、特定の位置(本実施例では、中心CP)から特定方向(本実施例では四角形SQ1の各辺と垂直な4方向)に離れるに連れて明るさが低下する変動パターンに従って規定される明るさを示している。例えば、図12(A)の矩形領域BA内の部分が、本変形例の背景マスク画像として用いられる。
図12(B)のマスク画像MIBでは、例えば、光源パラメータとして、中心CPの座標と、初期間隔Dsと、差分間隔Ddと、傾斜角θbと、初期明度(初期ラベル明度と初期背景明度)と、差分明度(初期ラベル明度と初期背景明度)とが、設定される。マスク画像MICは、互いに平行な複数本の線L11~L17、L21~L27と、によって規定される。これらの線L11~L17、L21~L27と、によって、マスク画像MIBは、領域LA11~LA17、LA22~LA27に区分される。中心CPを含む領域L11を区分する2本の線L11、L21の間隔は、初期間隔Dsである。他の領域LA12~LA17、LA22~LA27を区分する2本の線の間隔は、差分間隔Ddである。傾斜角θbは、複数本の線L11~L17、L21~L27と垂直な方向と、画像の横方向と、の間の角度である。
領域LA11~LA17では、領域ごとに明度が異なり、領域LA22~LA27では、領域ごとに明度が異なる。領域LA11の明度は、初期明度である。他の領域の明度は、中心CP側に接する領域の明度から差分明度を減算した値である。以上の説明から解るように、領域LA11~LA17、LA22~LA27の明度は、中心CPを含む領域LA1の明度が最も高く、中心CPから離れた領域ほど明度が段階的に低くなるように設定される。すなわち、図12(B)のマスク画像MIは、中心CPの近傍が最も明るく、中心CPから線L11と垂直な方向に離れるほど段階的に暗くなる。このように、本実施例のマスク画像MIは、特定の位置(本実施例では、中心CP)から特定方向(本実施例では領域L11と垂直な方向)に離れるに連れて明るさが低下する変動パターンに従って規定される明るさを示している。例えば、図12(B)の矩形領域BA内の部分が、本変形例の背景マスク画像として用いられる。これらマスク画像MIA、MIBは、例えば、棒状の蛍光灯などの棒状の光源から照射される光を表現している。
また、マスク画像は、上記図8および図12のマスク画像MI、MIA、MIBとは、異なっていても良い。例えば、マスク画像は、複数個の五角形や楕円で区分される領域を含んでもよいし、星形などのより複雑な形状で区分される領域を含んでも良い。
(2)上記実施例では、CPU110は、対象画像データとして、背景画像データとラベル画像データとを取得し、背景画像データとラベル画像データとのそれぞれに別個のマスク画像データを用いてマスク処理を実行して、処理済背景画像データと処理済ラベル画像データと、を生成する。そして、CPU110は、処理済背景画像データと処理済ラベル画像データと、を合成して、訓練画像データを生成している。これに代えて、CPU110は、背景とラベルとを含む1つの画像を示す1つの対象画像データを取得し、1つの対象画像データに対して、1つのマスク画像データを用いてマスク処理を実行して、訓練画像データを生成しても良い。この場合には、例えば、1つのマスク画像データによって示されるマスク画像は、背景に対応する領域と、ラベルに対応する領域と、のそれぞれで異なる光源パラメータを用いて生成された画像であっても良い。あるいは、マスク画像は、背景とラベルとを区別することなく、1組の光源パラメータを用いて生成された画像であっても良い。
(3)上記実施例では、CPU110は、版下画像RIに回転処理や平滑化処理やノイズ付加処理を実行してラベル画像LIを生成した後に、該ラベル画像LIにマスク処理を実行している(図4のS210~S240)。これに代えて、CPU110は、背景画像BIに版下画像RIを所定の角度および位置に合成した後に、合成画像の背景領域に対して、背景マスク画像データを用いたマスク処理を実行し、さらに、版下画像RIに対して、ラベルマスク画像データを用いたマスク処理を実行しても良い。この場合には、例えば、背景マスク画像BMIからラベル部分領域LPAを切り出す際に、版下画像RIが合成された角度および位置にラベル部分領域LPAが設定される。これによって、版下画像RIが合成された角度および位置に応じたラベルマスク画像データが生成できる。CPU110は、マスク処理済みの合成画像の全体もしくは版下画像RIの部分に、平滑化処理やノイズ付加処理を実行して、訓練画像データを生成しても良い。
(4)上記実施例では、背景マスク画像データを生成する光源パラメータを、所定個数の訓練画像データを生成するごとに変更している(図6のS300~S315)。これに代えて、光源パラメータは、訓練画像データを生成する度に毎回変更されても良い。
(5)上記実施例では、ラベル画像データは、版下画像データRDを用いて生成されている。これに代えて、ラベル画像データは、撮像装置400を用いてラベルLを撮影して得られる撮像画像データであっても良い。この場合であっても、該ラベル画像データに対してマスク処理を実行することで、1個のラベル画像データから多様な複数個のラベルを示すラベル画像データを生成できる。
(6)上記実施例の訓練画像データは、画像生成モデルGNの訓練処理に用いられている。これに限らず、訓練画像データは、例えば、画像内のラベルが位置するラベル領域を特定するための物体検出モデルの訓練処理に用いられても良い。物体検出モデルには、例えば、例えば、物体検出モデルには、例えば、YOLO(You only look once)と呼ばれるオブジェクト検出モデルが用いられても良いし、SSD、R-CNN、Fast R-CNN, Faster R-CNN、Mask R-CNNなどの、他のモデルが用いられても良い。
(7)上記実施例の画像生成モデルGNは、例えば、通常のオートエンコーダに限らず、VQ-VAE(Vector Quantized Variational Auto Encoder)、VAE(Variational Autoencoder)であっても良いし、いわゆるGAN(Generative Adversarial Networks)に含まれる画像生成モデルであっても良い。
(8)上記実施例の検査処理では、CPU110は、検証画像データと再現画像データとを用いて、差分画像データを生成し、該差分画像データを用いて、ラベルの検査を実行している(図10のS920~S950)。これに限らず、ラベルの検査方法は他の方法が用いられても良い。例えば、CPU110は、PaDiMと呼ばれる手法を用いて、ラベルの検査を実行しても良い。PaDiMの手法では、例えば、CPU110は、画像生成モデルGNのエンコーダVeに検証画像データを入力して、検証画像データの特徴データを生成する。そして、CPU110は、検証画像データの特徴データと、複数個の正常なラベルの画像データの特徴データと、の間のマハラノビス距離を算出することで、ラベルの検査を実行する。複数個の正常なラベルの画像データの特徴データは、例えば、検査準備処理にて、画像生成モデルGNのエンコーダVeに複数個の正常なラベルの画像データを入力することで、予め生成される。PaDiMの手法は、例えば、論文「T. Defard, A. Setkov, A. Loesch, and R. Audigier, “Padim: a patch distribution modeling framework for anomaly detection and localization”,arXiv:2011.08785(2020),https://arxiv.org/abs/2011.08785,投稿日17 Nov 2020」に開示されている。
そして、PaDiMの手法が用いられる場合には、複数個の正常なラベルの画像データとして、本実施例にて画像生成モデルGNのための訓練画像データとして生成される複数個の画像データが用いられても良い。すなわち、上記実施例では、生成される入力画像データは訓練画像データであり、該入力画像データを用いて実行される特定処理は、訓練処理であるが、これに限られない。例えば、該入力画像データを用いて実行される特定処理は、PaDiMの手法が用いられる場合に、複数個の正常なラベルの画像データの特徴データを生成する処理であっても良い。
なお、PaDiMの手法が用いられる場合には、画像生成モデルGNに代えて、ResNet、VGG16、VGG19などの画像識別モデルが用いられても良い。
(9)検査対象の物体は、製品(例えば、複合機、ミシン、カッティングマシン、携帯端末など)に貼られるラベルに限らず、任意の物であってよい。検査対象の物体は、例えば、対、製品に印刷されるラベル画像であってよい。また、検査対象の物体は、製品そのものであっても良いし、製品に取り付けられる札、付属品、部品、刻印など、製品の任意の一部分であってよい。
(10)また、本実施例の訓練画像データを用いて訓練された機械学習モデルは、物体の検査処理とは異なる目的で使用されても良い。例えば、本実施例の訓練画像データを複数種類のラベルについて生成して、画像識別モデルを訓練する場合には、該画像識別モデルは、例えば、ラベルの種類を識別するために用いられても良い。
(11)上記実施例では、検査準備処理と検査処理とは、図1の処理装置100によって実行されている。これに代えて、検査準備処理と検査処理とは、それぞれ、別の装置によって実行されても良い。この場合には、例えば、検査準備処理によって訓練された画像生成モデルGNは、検査処理を実行する装置の記憶装置に格納される。また、検査準備処理と検査処理との全部または一部は、ネットワークを介して互いに通信可能な複数個の計算機(例えば、いわゆるクラウドサーバ)によって実行されても良い。また、検査処理を行うコンピュータプログラムと、検査準備処理を行うコンピュータプログラムとは、異なるコンピュータプログラムであっても良い。
(12)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、検査準備処理と検査処理との全部または一部は、ASIC(Application Specific Integrated Circuit)等のハードウェア回路によって実行されてよい。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
1000…検査システム,100…処理装置,110…CPU,120…揮発性記憶装置,130…不揮発性記憶装置,140…表示部,150…操作部,170…通信部,300…製品,400…撮像装置,BI…背景画像,BMI…背景マスク画像,DI…差分画像,FI…撮像画像,GN…画像生成モデル,IIg…入力画像データ,LI…ラベル画像,LMI…ラベルマスク画像,OIg…出力画像データ,PG…コンピュータプログラム,PT…光源パラメータテーブル,PT1…ラベル用テーブル,PT2…背景用テーブル,RD…版下画像データ,RI…版下画像,TI…検証画像
Claims (12)
- コンピュータプログラムであって、
物体を含む対象画像を示す対象画像データを取得する取得機能であって、前記対象画像は、2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である、前記取得機能と、
前記対象画像の複数個の画素に対応する複数個の画素を含む2次元のマスク画像を示すマスク画像データを生成する第1生成機能であって、前記マスク画像の複数個の画素の値は、特定の変動パターンに従って規定される明るさを示し、前記特定の変動パターンは、特定の位置から特定方向に離れるに連れて前記明るさが低下するパターンである、前記第1生成機能と、
前記対象画像データに対して、前記マスク画像データを用いる調整処理を含む処理を実行して、入力画像を示す入力画像データを生成する第2生成機能であって、前記調整処理は、前記対象画像内の複数個の画素の明るさを前記マスク画像の対応する画素の値に基づいて調整する処理である、前記第2生成機能と、
前記入力画像データと機械学習モデルとを用いて特定処理を実行する特定処理機能であって、前記特定処理は、前記入力画像データを前記機械学習モデルに入力することによって出力データを生成する処理を含む、前記特定処理機能と、
をコンピュータに実現させる、コンピュータプログラム。 - 請求項1に記載のコンピュータプログラムであって、
前記特定の変動パターンは、前記特定の位置を含む複数個の円または多角形を用いて決定される領域ごとに明るさを規定するパターンである、コンピュータプログラム。 - 請求項1に記載のコンピュータプログラムであって、
生成すべき前記入力画像は、前記物体と、前記物体の外側に位置する背景と、を含み、
前記第1生成機能は、前記マスク画像データとして、前記物体が位置する物体領域のための第1マスク画像を示す第1マスク画像データと、前記背景が位置する背景領域のための第2マスク画像を示す第2マスク画像データと、を生成し、
前記第2生成機能は、前記対象画像データに対して、前記第1マスク画像データと前記第2マスク画像データとを用いる前記調整処理を実行して、前記入力画像データを生成し、
前記第1マスク画像データは、第1変動パターンに従って規定される明るさを示し、
前記第2マスク画像データは、前記第1変動パターンとは異なる第2変動パターンに従って規定される明るさを示す、コンピュータプログラム。 - 請求項3に記載のコンピュータプログラムであって、
前記物体の光学特性と前記背景を構成する被写体の光学特性とは互いに異なり、
前記第1変動パターンは、前記物体の光学特性に対応するパターンであり、
前記第2変動パターンは、前記背景を構成する被写体の光学特性に対応するパターンである、コンピュータプログラム。 - 請求項3に記載のコンピュータプログラムであって、
前記第1生成機能は、生成すべき前記入力画像内の前記物体の配置に応じて異なる前記第1マスク画像データを生成する、コンピュータプログラム。 - 請求項5に記載のコンピュータプログラムであって、
前記第1生成機能は、生成すべき前記入力画像内の前記物体の位置と角度との少なくとも1つに応じて異なる前記第1マスク画像データを生成する、コンピュータプログラム。 - 請求項3に記載のコンピュータプログラムであって、
前記第1生成機能は、
前記入力画像の全体に対応する前記第2マスク画像を示す前記第2マスク画像データを生成し、
前記第2マスク画像データを用いて、前記第2マスク画像のうちの前記物体領域に対応する部分画像を示す部分画像データを生成し、
前記部分画像データを用いて、前記第1マスク画像データを生成する、コンピュータプログラム。 - 請求項3に記載のコンピュータプログラムであって、
前記取得機能は、複数個の前記対象画像データを取得し、
前記第2生成機能は、複数個の前記対象画像データに対して、共通の1つの前記第2マスク画像データを用いる前記調整処理を実行して、複数個の前記入力画像データを生成する、コンピュータプログラム。 - 請求項1に記載のコンピュータプログラムであって、
前記対象画像データは、前記物体を示す元画像データであって前記物体の作成に用いられる前記元画像データに基づく画像データである、コンピュータプログラム。 - 請求項1に記載のコンピュータプログラムであって、
前記特定処理は、複数個の前記入力画像データを用いて、前記機械学習モデルを訓練する訓練処理である、コンピュータプログラム。 - 処理方法であって、
物体を含む対象画像を示す対象画像データを取得する取得工程であって、前記対象画像は、2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である、前記取得工程と、
前記対象画像の複数個の画素に対応する複数個の画素を含む2次元のマスク画像を示すマスク画像データを生成する第1生成工程であって、前記マスク画像の複数個の画素の値は、特定の変動パターンに従って規定される明るさを示し、前記特定の変動パターンは、特定の位置から特定方向に離れるに連れて前記明るさが低下するパターンである、前記第1生成工程と、
前記対象画像データに対して、前記マスク画像データを用いる調整処理を含む処理を実行して、入力画像を示す入力画像データを生成する第2生成工程であって、前記調整処理は、前記対象画像内の複数個の画素の明るさを前記マスク画像の対応する画素の値に基づいて調整する処理である、前記第2生成工程と、
前記入力画像データと機械学習モデルとを用いて特定処理を実行する特定処理工程であって、前記特定処理は、前記入力画像データを前記機械学習モデルに入力することによって出力データを生成する処理を含む、前記特定処理工程と、
を備える、処理方法。 - 処理装置であって、
物体を含む対象画像を示す対象画像データを取得する取得部であって、前記対象画像は、2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である、前記取得部と、
前記対象画像の複数個の画素に対応する複数個の画素を含む2次元のマスク画像を示すマスク画像データを生成する第1生成部であって、前記マスク画像の複数個の画素の値は、特定の変動パターンに従って規定される明るさを示し、前記特定の変動パターンは、特定の位置から特定方向に離れるに連れて前記明るさが低下するパターンである、前記第1生成部と、
前記対象画像データに対して、前記マスク画像データを用いる調整処理を含む処理を実行して、入力画像を示す入力画像データを生成する第2生成部であって、前記調整処理は、前記対象画像内の複数個の画素の明るさを前記マスク画像の対応する画素の値に基づいて調整する処理である、前記第2生成部と、
前記入力画像データと機械学習モデルとを用いて特定処理を実行する特定処理部であって、前記特定処理は、前記入力画像データを前記機械学習モデルに入力することによって出力データを生成する処理を含む、前記特定処理部と、
を備える、処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022-092607 | 2022-06-07 | ||
JP2022092607A JP2023179333A (ja) | 2022-06-07 | 2022-06-07 | コンピュータプログラム、処理方法、および、処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023238702A1 true WO2023238702A1 (ja) | 2023-12-14 |
Family
ID=89118185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2023/019670 WO2023238702A1 (ja) | 2022-06-07 | 2023-05-26 | コンピュータプログラム、処理方法、および、処理装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023179333A (ja) |
WO (1) | WO2023238702A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020021228A (ja) * | 2018-07-31 | 2020-02-06 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP2021005266A (ja) * | 2019-06-27 | 2021-01-14 | 株式会社Screenホールディングス | 画像判別モデル構築方法、画像判別モデル、および画像判別方法 |
JP2022026456A (ja) * | 2020-07-31 | 2022-02-10 | 富士通株式会社 | 選別プログラム、選別方法、および情報処理装置 |
-
2022
- 2022-06-07 JP JP2022092607A patent/JP2023179333A/ja active Pending
-
2023
- 2023-05-26 WO PCT/JP2023/019670 patent/WO2023238702A1/ja unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020021228A (ja) * | 2018-07-31 | 2020-02-06 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP2021005266A (ja) * | 2019-06-27 | 2021-01-14 | 株式会社Screenホールディングス | 画像判別モデル構築方法、画像判別モデル、および画像判別方法 |
JP2022026456A (ja) * | 2020-07-31 | 2022-02-10 | 富士通株式会社 | 選別プログラム、選別方法、および情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2023179333A (ja) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4452497B2 (ja) | ノイズを考慮してデジタルイメージを修正する方法およびシステム | |
WO2021027759A1 (en) | Facial image processing | |
US9773302B2 (en) | Three-dimensional object model tagging | |
CN113269862B (zh) | 场景自适应的精细三维人脸重建方法、系统、电子设备 | |
Herzog et al. | NoRM: No‐reference image quality metric for realistic image synthesis | |
US11508107B2 (en) | Additional developments to the automatic rig creation process | |
KR100681320B1 (ko) | 헬름홀츠 교환조건으로부터 유도되는 편미분 방정식의레벨셋 풀이 방법을 이용한 물체의 3차원 형상 모델링 방법 | |
CN109712223B (zh) | 一种基于纹理合成的三维模型自动上色方法 | |
JP2018205123A (ja) | 画像検査システムの性能調整のための検査用画像を生成する画像生成装置及び画像生成方法 | |
CN114746904A (zh) | 三维人脸重建 | |
CN109636890B (zh) | 纹理融合方法和装置、电子设备、存储介质、产品 | |
US20170032580A1 (en) | Edge preserving color smoothing of 3d models | |
US20110175900A1 (en) | System and method for mesoscopic geometry modulation | |
CN115861156A (zh) | 缺陷检测方法、装置、计算机设备和存储介质 | |
Wang et al. | Single Underwater Image Enhancement Based on $ L_ {P} $-Norm Decomposition | |
CN111311720B (zh) | 一种纹理图像的处理方法和装置 | |
KR102327304B1 (ko) | 깊이영상 카메라로부터 획득된 3d 영상의 품질 향상 방법 | |
US8629883B2 (en) | Method and system for generating online cartoon outputs | |
WO2023238702A1 (ja) | コンピュータプログラム、処理方法、および、処理装置 | |
KR102559691B1 (ko) | 뉴럴 렌더링 기반 형상 색상 통합 3d 메시 복원 방법 및 장치 | |
KR20180034237A (ko) | 화상 처리장치, 화상 처리방법, 기억매체 및 프로그램 | |
Narayan et al. | Optimized color models for high-quality 3d scanning | |
JP7387029B2 (ja) | ソフトレイヤ化および深度認識インペインティングを用いた単画像3d写真技術 | |
CN115457206A (zh) | 三维模型生成方法、装置、设备及存储介质 | |
JP2023067464A (ja) | 画像生成モデル、および、画像生成モデルのトレーニング方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23819684 Country of ref document: EP Kind code of ref document: A1 |