WO2023157825A1 - コンピュータプログラム、および、処理装置 - Google Patents

コンピュータプログラム、および、処理装置 Download PDF

Info

Publication number
WO2023157825A1
WO2023157825A1 PCT/JP2023/004920 JP2023004920W WO2023157825A1 WO 2023157825 A1 WO2023157825 A1 WO 2023157825A1 JP 2023004920 W JP2023004920 W JP 2023004920W WO 2023157825 A1 WO2023157825 A1 WO 2023157825A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
image
feature
image data
maps
Prior art date
Application number
PCT/JP2023/004920
Other languages
English (en)
French (fr)
Inventor
雅敏 平野
Original Assignee
ブラザー工業株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ブラザー工業株式会社 filed Critical ブラザー工業株式会社
Publication of WO2023157825A1 publication Critical patent/WO2023157825A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis

Definitions

  • This specification relates to a computer program and a processing device that use a trained machine learning model that generates a feature map.
  • Anomaly detection using an image generation model which is a machine learning model that generates image data
  • a plurality of captured image data obtained by imaging a normal product are input to a trained CNN (Convolutional Neural Network), and for each of the plurality of captured image data A plurality of feature maps are generated. Then, based on a predetermined number of feature maps randomly selected from a plurality of feature maps, a matrix of Gaussian parameters representing features of normal products is generated.
  • a captured image obtained by imaging the product to be inspected is input to the CNN, a feature map is generated, and a feature vector indicating the features of the product to be inspected is generated based on the feature map.
  • Abnormality detection of the inspected product is performed using the matrix of normal products and the feature vector of the product to be inspected.
  • the feature map to be used is randomly selected when generating a matrix of Gaussian parameters that indicate normal product features. For this reason, there have been cases where it cannot be said that the feature vector to be used is properly determined.
  • Such a problem is not limited to product abnormality detection, but is a common problem in processing for evaluating differences between images.
  • This specification discloses a technique that can appropriately select a plurality of feature maps to be used for specific processing that evaluates differences between images.
  • a third process for generating second feature data for generating second feature data; and a difference between the first image and the second image using the first feature data and the second feature data for each of the plurality of selected patterns.
  • each of the plurality of selection patterns determined in the first processing is a pattern that selects less than (1/2)N of the use maps, and (m+1 )-th (m is an integer equal to or greater than 1) the first processing includes a plurality of the selection patterns determined in the m-th first processing and a plurality of patterns calculated in the m-th fifth processing
  • the (m+1)th first process (m is an integer equal to or greater than 1) includes a plurality of selection patterns determined in the mth first process, and the mth fifth process.
  • a plurality of selection patterns are determined by executing processing according to an evolutionary computation algorithm using the calculated evaluation values.
  • a specific selection pattern that is, less than N feature maps to be used for the specific process
  • the selection pattern determined for the first time is a pattern that selects less than (1/2)N used maps, the number of finally determined used maps can be suppressed.
  • FIG. 1 is a block diagram showing the configuration of an inspection system 1000; FIG. Explanatory drawing of the product 300.
  • FIG. 4 is a block diagram showing the configuration of a machine learning model DN;
  • FIG. 4 is a flowchart of examination preparation processing;
  • FIG. 4 is a diagram showing an example of an image used in the example;
  • 4 is a flowchart of selection pattern determination processing.
  • Explanatory drawing of chromosome data CR Explanatory drawing of the matrix and map used in the example.
  • FIG. 11 is an explanatory diagram of selection pattern determination processing according to a modification;
  • FIG. 1 is a block diagram showing the configuration of an inspection system 1000 of an embodiment.
  • An inspection system 1000 includes an inspection device 100 and an imaging device 400 .
  • the inspection device 100 and the imaging device 400 are communicably connected.
  • the inspection device 100 is, for example, a computer such as a personal computer.
  • the inspection apparatus 100 includes a CPU 110 as a controller of the inspection apparatus 100, a GPU 115, a volatile storage device 120 such as a RAM, a nonvolatile 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.
  • a display unit 140 such as a display and a communication unit 170 are provided.
  • the communication unit 170 includes a wired or wireless interface for communicably connecting to an external device such as the imaging device 400 .
  • the GPU (Graphics Processing Unit) 115 is a processor that performs computational processing for image processing such as three-dimensional graphics under the control of the CPU 110 . In the present embodiment, it is used to execute arithmetic processing of a machine learning model DN, which will be described later.
  • the volatile storage device 120 provides a buffer area for temporarily storing various intermediate data generated when the CPU 110 performs processing.
  • the nonvolatile storage device 130 stores a computer program PG for the inspection apparatus and image data groups RD and TD. Image data groups RD and TD will be described later.
  • the computer program PG includes, as a module, a computer program that allows the CPU 110 and GPU 115 to work together to realize the functions of the machine learning model DN, which will be described later.
  • the computer program PG is provided by the manufacturer of the inspection device 100, for example.
  • 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 in a DVD-ROM or the like.
  • the CPU 110 executes inspection processing and training 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 called captured image data) by optically capturing an image of the subject.
  • the captured image data is bitmap data representing an image including a plurality of pixels, and more specifically, RGB image data representing the color of each pixel using RGB values.
  • the RGB values are tone values of three color components (hereinafter also referred to as component values), that is, color values in the RGB color system including R, G, and B values.
  • the R value, G value, and B value are, for example, gradation values of a predetermined number of gradations (eg, 256).
  • the captured image data may be luminance image data representing the luminance of each pixel.
  • the imaging device 400 generates captured image data and transmits it to the inspection device 100 under the control of the inspection device 100 .
  • the imaging device 400 is used to capture an image of the product 300 to which the label LB is attached, which is the inspection target of the inspection process, and to generate captured image data representing the captured image.
  • FIG. 2 is an explanatory diagram of the product 300.
  • FIG. A perspective view of the product 300 is shown in FIG. 2(A).
  • the product 300 is a printer having a substantially rectangular parallelepiped housing 30 in this embodiment.
  • a rectangular label LB is affixed to a predetermined affixing position on the front surface 31 (+Y side surface) of the housing 30 .
  • a label LB is shown in FIG. 2(B).
  • the label LB includes, for example, a background B, characters TX and a mark MK indicating various information such as the brand logo of the manufacturer and the product, the model number, the lot number, and the like.
  • FIG. 3 is a block diagram showing the configuration of the machine learning model DN of the embodiment.
  • the machine learning model DN performs arithmetic processing on the input image data ID using a plurality of arithmetic parameters to generate a feature map fm (described later) corresponding to the input image data ID.
  • the machine learning model DN in FIG. 3(A) is an encoder that extracts features of the input image by executing dimension reduction processing on the input image data ID.
  • the machine learning model DN is, for example, a known model that is used as an image identification model that outputs image identification results.
  • a known model called ResNet18 is used for the machine learning model DN of this embodiment. This model is disclosed, for example, in the paper "K. He, X. Zhang, S. Ren, and J. Sun, "Deep Residual learning for image recognition," in ICML, 2016."
  • the machine learning model DN comprises multiple layers LY1 to LY4.
  • Each layer is a CNN (Convolutional Neural Network) including multiple convolutional layers.
  • Each convolutional layer performs a convolution with a filter of predetermined size to generate a feature map.
  • a bias is added to the calculated value of each convolution process, and then input to a predetermined activation function for conversion.
  • the feature map output from each convolution layer is input to the next processing layer (next convolution layer or layer).
  • a known function such as a so-called ReLU (Rectified Linear Unit) is used as the activation function.
  • the filter weights and biases used in the convolution process are computational parameters that are adjusted by the learning process.
  • the machine learning model DN of the present embodiment is a machine learning model that has been trained using a published calculation parameter set.
  • a trained machine learning model is a model that has undergone learning processing so as to classify a data set classified into 1000 classes of ImageNet.
  • the input image data ID is rectangular image data of a predetermined size, specifically 128 pixels ⁇ 128 pixels.
  • the input image data ID is bitmap data representing an image including a plurality of pixels, and is specifically RGB image data.
  • captured image data representing a captured image including the label LB described above is assumed as the input image data ID.
  • the first layer LY1 generates n1 feature maps fm1 (FIG. 3(B)).
  • the n1 feature maps fm1 are input to the second layer LY2.
  • Each feature map fm1 is, for example, image data of 32 pixels ⁇ 32 pixels.
  • the number n1 (also called the number of channels) of feature maps fm1 is 64, for example.
  • the second layer LY2 generates n2 feature maps fm2 (FIG. 3(B)).
  • the n2 feature maps fm2 are input to the third layer LY3.
  • Each feature map fm2 is, for example, image data of 16 pixels ⁇ 16 pixels.
  • the number of channels n2 of the feature map fm2 is 128, for example.
  • the third layer LY3 generates n3 feature maps fm3 (FIG. 3(B)).
  • the n3 feature maps fm3 are input to the fourth layer LY4.
  • Each feature map fm3 is, for example, image data of 8 pixels ⁇ 8 pixels.
  • the number of channels n3 of the feature map fm3 is 256, for example.
  • the fourth layer LY4 generates n4 feature maps fm4.
  • Each feature map fm4 is, for example, image data of 4 pixels ⁇ 4 pixels.
  • the n4 feature maps fm4 are not used for inspection preparation processing.
  • L usage maps Um (FIG. 3(D)) is determined. Also, in the inspection preparation process, a Gaussian matrix GM (described later) that indicates the characteristics of a normal label LB (hereinafter also referred to as a normal product) is generated using the L number of use maps Um. The inspection preparation process is executed prior to the inspection process, which will be described later.
  • FIG. 4 is a flowchart of inspection preparation processing.
  • the CPU 110 acquires K normal image data (normal image data group RD in FIG. 1) and M verification image data (verification image data group TD in FIG. 1) from the nonvolatile storage device 130.
  • the normal image data is image data representing a normal image of the label LB (hereinafter also referred to as a normal image DI1) that does not include an abnormality such as a defect.
  • the normal image data is generated, for example, by capturing an image of the label LB, which has been confirmed to be normal in advance, using the imaging device 400 .
  • the number K of acquired normal image data is an integer equal to or greater than 1, for example, about 10-100.
  • the plurality of pieces of normal image data preferably include image data having different characteristics such as brightness, degree of blurring, and amount of noise that vary due to variations that may occur in the captured image.
  • FIG. 5 is a diagram showing an example of an image used in this embodiment.
  • the normal image DI1 in FIG. 5A is an image showing the label LB1.
  • the code "LB1" is attached.
  • the label LB1 is a captured image of the actual label LB, and includes characters TX1 and marks MK1.
  • the K pieces of normal image data may include a plurality of captured image data obtained by capturing the same label LB multiple times, or a plurality of captured image data obtained by capturing a plurality of types of labels LB. Captured image data may also be included.
  • the M pieces of verification image data include, for example, multiple pieces of normal image data and multiple pieces of abnormal image data.
  • the abnormal image data is image data representing an image of the label LB including an abnormality such as a defect (hereinafter also referred to as an abnormal image DI2).
  • Abnormal image data is generated, for example, by capturing an image of a label LB that has been confirmed to include an abnormality in advance using the imaging device 400 .
  • the number M of acquired normal image data is an integer of 1 or more, for example, about 10-100.
  • the abnormal image DI2 in FIG. 5(B) is an image showing the label LB2.
  • the code "LB2" is attached.
  • the label LB2 is a captured image of the actual label LB, and includes characters TX2 and marks MK2.
  • Label LB2 further includes flaw df2 as an anomaly. Abnormalities are not limited to scratches, but include stains, chipped edges, and the like.
  • the M pieces of abnormal image data may include a plurality of captured image data obtained by capturing images of the same label LB a plurality of times, or a plurality of captured image data obtained by capturing images of a plurality of types of labels LB. Captured image data may also be included.
  • the CPU 110 inputs each normal image data as the input image data ID into the machine learning model DN to generate N feature maps fm (FIG. 3(B)).
  • N feature maps fm are generated for each of K normal image data, so that a total of (K ⁇ N) feature maps fm are generated.
  • the CPU 110 inputs each verification image data as the input image data ID into the machine learning model DN to generate N feature maps fm (FIG. 3(B)).
  • N feature maps fm are generated for each of M pieces of verification image data, so a total of (M ⁇ N) feature maps fm are generated.
  • the CPU 110 adjusts the size (the number of pixels in the vertical and horizontal directions) of the generated feature maps fm to make all the feature maps fm the same size.
  • the size of the feature map fm1 output from the first layer LY1 is the largest (FIG. 3(B)).
  • the CPU 110 performs a known enlargement process on the feature map fm2 output from the second layer LY2 to generate a feature map fm2r of the same size as the feature map fm1 (see FIG. 3 ( C)).
  • the CPU 110 performs enlargement processing on the feature map fm3 output from the third layer LY3 to generate a feature map fm3r of the same size as the feature map fm1 (FIG. 3(C)).
  • the selection pattern determination process is a process of determining L usage maps Um to be used for generating a feature matrix FM and a Gaussian matrix GM to be described later from among the N feature maps.
  • FIG. 6 is a flowchart of selection pattern determination processing.
  • the CPU 110 generates a plurality of first (first generation) chromosome data each representing a selection pattern.
  • Chromosome data CR is data composed of N pieces of genetic data Gd.
  • the N pieces of gene data Gd correspond one-to-one with the N pieces of feature maps fm.
  • N feature maps fm are assigned a number n (n is an integer from 1 to N), and the n-th feature map fm corresponds to the n-th gene data Gd constituting the chromosome data CR.
  • Each of the N genetic data Gd has a value indicating whether the corresponding feature map fm is the used map Um.
  • one piece of genetic data Gd is 2-bit data having a value of "0" or "1". "0” indicates that the corresponding feature map fm is not the used map Um, and "1" indicates that the corresponding feature map fm is the used map Um.
  • the number of first chromosome data CR is N in this embodiment.
  • FIG. 7A shows N pieces of first (first generation) chromosome data CR1 to CRN.
  • Each chromosome data CR for the first time shows a selection pattern in which only one use map Um is selected from N feature maps fm. Therefore, each piece of chromosome data CR for the first time includes one gene data Gd having a value of "1" and (N-1) gene data Gd having a value of "0".
  • the N selection patterns indicated by the first N chromosome data CR are different from each other in one selected use map Um. Therefore, each of the N feature maps fm is selected as the use map Um in one selection pattern and not selected as the use map Um in the other (N ⁇ 1) selection patterns.
  • the CPU 110 executes S220 to S280 for each of the N pieces of chromosome data CR. Processing for one piece of chromosome data CR will be described below.
  • the CPU 110 selects less than N usage maps Um from N usage maps Um based on the chromosome data CR.
  • the number of used maps Um to be selected is one, but in the second (second generation) and subsequent chromosome data CRs, the number of used maps Um to be selected is two or more. can also be
  • the CPU 110 generates the feature matrix FM of the normal image using the selected less than N use maps Um.
  • the normal image data indicates A feature matrix FM of the normal image is generated.
  • the feature matrix FM is a matrix whose elements are feature vectors V(i, j) that correspond one-to-one with each pixel of the feature map fm after size adjustment. (i, j) indicates the coordinates of the corresponding pixel in the feature map fm.
  • a feature vector is a vector whose elements are the values of pixels at coordinates (i, j) in the use map Um, which is less than N.
  • L (L is an integer less than N) used maps Um are selected
  • one feature vector is an L-dimensional vector (a vector with L elements) (FIG. 3(E)).
  • the normal image feature matrix FM is generated for each normal image (for each normal image data).
  • K feature matrices FM1 to FMK of normal images are generated for one chromosome data CR.
  • FIG. 8 is an explanatory diagram of the matrix and map used in this embodiment.
  • FIG. 8A shows an example of K feature matrices FM1 to FMK of a normal image.
  • the CPU 110 uses the K feature matrices FM1 to FMK of the normal image to generate the Gaussian matrix GM of the normal image.
  • the Gaussian matrix GM of the normal image is a matrix whose elements are Gaussian parameters that correspond one-to-one with each pixel of the feature map fm after size adjustment.
  • the Gaussian parameters corresponding to the pixel with coordinates (i,j) include the mean vector ⁇ (i,j) and the covariance matrix ⁇ (i,j).
  • the average vector ⁇ (i, j) is the average of the feature vectors V(i, j) of the K feature matrices FM1 to FMK of the normal image.
  • the covariance matrix ⁇ (i, j) is the covariance matrix of the feature vectors V(i, j) of the K feature matrices FM1 to FMK of the normal image.
  • One Gaussian matrix GM is generated for one chromosomal data CR (selection pattern of one usage map Um).
  • the CPU 110 uses the selected less than N use maps Um to generate the verification image feature matrix FM (FIG. 8(C)). Specifically, using a map Um selected from N size-adjusted feature maps fm (FIG. 3C) generated using one piece of verification image data, A feature matrix FM of the verification image is generated. Similar to the feature matrix FM of the normal image, the feature matrix FM of the verification image is a matrix whose elements are feature vectors V(i, j) corresponding to each pixel of the feature map fm after size adjustment one-to-one. be. In this embodiment, since the number of verification image data is M, M feature matrices FM of the verification image are generated for one chromosome data CR.
  • the CPU 110 generates an anomaly degree map AM for each verification image data.
  • the degree-of-abnormality map AM is image data of the same size as the size-adjusted feature map fm.
  • the value of each pixel in the anomaly map AM is the Mahalanobis distance.
  • the Mahalanobis distance D(i, j) at the coordinates (i, j) is the feature vector V(i, j) of the feature matrix FM of the verification image, the mean vector ⁇ (i, j) of the Gaussian matrix GM of the normal image and It is calculated using the covariance matrix ⁇ (i, j).
  • the Mahalanobis distance D(i,j) is a value that indicates the degree of difference between the K normal images and the verification image at coordinates (i,j). Therefore, it can be said that the Mahalanobis distance D(i, j) is a value indicating the degree of abnormality of the verification image at the coordinates (i, j).
  • M pieces of verification image data are used, so M pieces of abnormality degree maps AM are generated for one piece of chromosome data CR (selection pattern of one use map Um).
  • FIG. 5(C) shows an example of an ideal anomaly degree map AM that should be generated when the verification image is the anomaly image DI2 of FIG. 5(B).
  • the abnormal portion ap shown in black is a portion composed of abnormal pixels whose degree of abnormality (Mahalanobis distance) is equal to or greater than the threshold TH1.
  • the flaw df2 of the abnormal image DI2 of FIG. 5(B) appears as an abnormal portion ap.
  • the selection pattern determination process is a process of searching for chromosome data CR (selection pattern of use map Um) that can generate an ideal anomaly map AM such as the anomaly map AM of FIG. 5 (C). can say
  • the CPU 110 calculates the accuracy rate GR of abnormality detection. Specifically, the CPU 110 determines whether the verification image is a normal image or an abnormal image based on the abnormality degree map AM of each of the M pieces of verification image data. For example, the CPU 110 counts the number of abnormal pixels whose degree of abnormality is equal to or greater than the threshold TH1 among the plurality of pixels in the degree of abnormality map AM. The CPU 110 determines that the verification image corresponding to the abnormality degree map AM is an abnormal image when the number of abnormal pixels is equal to or greater than the threshold TH2, and determines that the verification image corresponding to the abnormality degree map AM is an abnormal image when the number of abnormal pixels is less than the threshold TH2. A verification image corresponding to the degree map AM is determined to be a normal image. Since it is known in advance whether each verification image is an abnormal image or a normal image, the CPU 110 calculates the accuracy rate GR of the determination result based on the abnormality degree map AM.
  • the CPU 110 executes the processes of S220 to S280 described above for each of the N pieces of chromosome data CR, thereby calculating the accuracy rate GR of abnormality detection for each of the N pieces of chromosome data CR.
  • the CPU 110 determines whether or not the conditions for terminating the process are satisfied.
  • the CPU 110 calculates the difference ⁇ GR between the accuracy rate GR of the current abnormality detection and the accuracy rate GR of the previous abnormality detection, and when the difference ⁇ GR becomes equal to or less than the threshold TH3, the end condition is judged to be satisfied.
  • the difference ⁇ GR is a value that indicates a change in the accuracy rate GR of abnormality detection.
  • the CPU 110 executes the generation alternation process on the N pieces of chromosome data CR of the current generation to generate the N pieces of chromosome data CR of the next generation.
  • the second generation chromosome data CR (FIG. 7(B)) is generated using the first generation N pieces of chromosome data CR (FIG. 7(A)).
  • Alteration of generation processing is processing according to a genetic algorithm. Alteration of generations is a process devised to imitate the reproductive activity of organisms, and is executed, for example, as follows.
  • the CPU 110 selects two parent chromosomal data from the N chromosomal data CR of the current generation.
  • accuracy rate GR of abnormality detection as fitness
  • chromosome data CR with high fitness is preferentially selected (survival of the fittest), and chromosome data CR with low fitness is difficult to select (natural selection)
  • Two chromosome data are selected. For example, two pieces of chromosome data are selected according to a roulette selection method in which a lottery is performed so that the higher the accuracy rate GR, the higher the selection probability.
  • the CPU 110 crosses the selected two chromosome data CR to generate one next-generation chromosome data CR.
  • p (where p is an integer equal to or greater than 1) crossover points are randomly determined in the chromosome data CR, and by combining the genetic data Gd of the two chromosome data CR using the crossover points as boundaries, one next generation of chromosome data CR is generated.
  • the position q of the crossover point is determined within the range of 1 to (N ⁇ 1).
  • the 1st to qth gene data Gd are set to the 1st to qth gene data Gd of the chromosome data CR of one parent, and the (q+1) to Nth gene data Gd are set to (q+1) of the chromosome data CR of the other parent. ) to N-th gene data Gd, one next-generation chromosome data CR is generated.
  • Crossover is also called "genetic recombination".
  • CPU 110 generates a mutation with a predetermined probability.
  • the chromosome data CR to be mutated with a predetermined probability is randomly selected from the next generation N chromosome data CR generated by the methods (1) and (2).
  • Gene data Gd to be mutated with a predetermined probability of R is randomly selected from a plurality of gene data Gd of the selected chromosomal data CR. The value of the selected genetic data Gd is changed.
  • the above methods (1) to (3) are examples, and other methods known as genetic algorithms may be used instead of the methods (1) to (3), or (1) to (3). May be employed with methods.
  • a ranking selection method or a tournament selection method may be adopted instead of the roulette selection method.
  • the ranking selection method ranks the chromosome data CR in descending order of fitness, determines the selection rate for each rank so that the higher the rank, the higher the selection rate, and selects the parent chromosome data CR according to the selection rate.
  • the tournament selection method is a method of randomly selecting a predetermined number (called a tournament size) of chromosome data CR, and selecting the chromosome data CR with the highest fitness among them as the parent chromosome data CR.
  • a uniform crossover method may be adopted instead of the one-point crossover method.
  • the uniform crossover method is a method of randomly determining which parent's genetic data Gd is to be adopted for each genetic data Gd.
  • a predetermined number of chromosome data CR with the highest fitness may be combined with an elite preservation strategy that unconditionally leaves them for the next generation.
  • the number of parent chromosome data CR used for crossover is not limited to two, and may be three or more. That is, one next generation chromosome data CR may be generated from three or more current generation chromosome data CRs.
  • the number of selected use maps Um (that is, the number of genetic data Gd having a value of "1") was one, but in the second and subsequent generations of the chromosome data CR, The number of selected use maps Um can be two or more (FIG. 7(B)). Then, it can be expected that the chromosomal data CR that selects an appropriate number of use maps Um will be generated with each successive generation.
  • the CPU 110 identifies the selection pattern of the used map Um with the highest accuracy rate GR. That is, the CPU 110 identifies the chromosome data CR with the highest accuracy rate GR from among the plurality of pieces of chromosome data CR generated so far. Then, the selection pattern of the usage map Um indicated by the chromosome data CR is specified.
  • L be the number of used maps Um selected in the identified chromosome data CR (L is an integer equal to or greater than 1 and less than N).
  • the selection pattern of the usage map Um identified in this step is the selection pattern that is finally determined.
  • the CPU 110 stores the Gaussian matrix GM of the normal image generated using the determined selection pattern as the Gaussian matrix GM to be used in the nonvolatile storage device. 130 to end the inspection preparation process.
  • FIG. 9 is a flowchart of the inspection process.
  • the inspection process is a process for inspecting whether the label LB to be inspected is an abnormal product including defects or a normal product without defects. Inspection processing is executed for each label LB.
  • the inspection process is started when a user (for example, an inspection operator) inputs a process start instruction to the inspection apparatus 100 via the operation unit 150 . For example, the user inputs an instruction to start inspection processing while the product 300 to which the label LB to be inspected is attached is placed at a predetermined position for imaging using the imaging device 400 .
  • the CPU 110 acquires captured image data representing a captured image including a label LB 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, captured image data representing, for example, the normal image DI1 in FIG. 5A and the abnormal image DI2 in FIG. 5B are acquired.
  • the CPU 110 generates N feature maps fm corresponding to the captured image data by inputting the acquired captured image data to the machine learning model DN as the input image data ID (FIG. 3B). .
  • the CPU 110 selects from among the N feature maps fm according to the selection pattern determined by the selection pattern determination process described above, the L number of use maps Um (FIG. 3(D)) to determine the product to be inspected. , the feature matrix FM is generated (FIG. 3(E)).
  • the CPU 110 uses the normal image Gaussian matrix GM (FIG. 8(B)) and the inspection product feature matrix FM (FIG. 3(E)) to generate an abnormality degree map AM.
  • the Gaussian matrix GM of the normal image is a Gaussian matrix GM generated using L usage maps Um selected according to the selection pattern determined by the selection pattern determination process.
  • This Gaussian matrix GM is stored in the non-volatile memory device 130 in S150 of the inspection preparation process (FIG. 4).
  • the method of generating the anomaly degree map AM is the same as the method of generating the anomaly degree map AM of the verification image in S260 of FIG. 6 described with reference to FIGS.
  • the abnormality degree map AM of FIG. 5(C) is generated.
  • the anomaly degree map AM it is possible to identify the position, size, and shape of defects such as scratches included in the captured image. If the captured image does not include a defect such as a scratch, the defect area is not identified in the abnormality degree map AM either.
  • the CPU 110 determines whether or not the number of abnormal pixels in the abnormality degree map AM is equal to or greater than the threshold TH2.
  • An abnormal pixel is a pixel whose degree of abnormality is equal to or greater than the threshold TH1, as described above.
  • the CPU 110 determines that the label LB to be inspected is a normal product. If the number of abnormal pixels is equal to or greater than the threshold TH2 (S540: YES), in S550 the CPU 110 determines that the label to be inspected is abnormal.
  • the CPU 110 displays the inspection result on the display unit 140 and ends the inspection process. In this manner, using the machine learning model DN, it is possible to accurately determine whether the label LB to be inspected is normal or abnormal.
  • the calculation formulas for the feature matrix FM, the Gaussian matrix GM, and the anomaly map AM are based on the Padim model 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://arxiv.org/abs/2011.08785”.
  • the machine learning model DN performs arithmetic processing (for example, convolution processing) on the input image data ID to generate N feature maps fm (FIG. 3B). Generate.
  • the CPU 110 executes a first process of determining a plurality of selection patterns (represented by chromosome data CR in this embodiment) (S210, S310 in FIG. 6). Each of the plurality of selection patterns is a pattern (FIG. 7) for selecting less than N used maps from N feature maps fm.
  • the CPU 110 generates a feature matrix FM representing features of the normal image using less than N number of use maps Um obtained by inputting normal image data into the machine learning model DN.
  • a second process is executed (S230 in FIG.
  • the CPU 110 uses less than N use maps Um obtained by inputting the verification image data into the machine learning model DN to generate a feature matrix FM representing the features of the verification image.
  • a third process is executed (S250 in FIG. 6).
  • the CPU 110 uses the feature matrix FM of the plurality of normal images and the feature matrix FM of the verification image to create an abnormality degree map AM that should indicate the difference between the normal image and the verification image. (S240, S260 in FIG. 6).
  • the CPU 110 executes a fifth process of calculating the accuracy rate GR, which is the evaluation value of the plurality of selection patterns, using the degree-of-abnormality map AM generated for each of the plurality of selection patterns (S280 in FIG.
  • the CPU 110 repeatedly executes the first process, the second process, the third process, the fourth process, and the fifth process, and is used for the inspection process (FIG. 9), which is a specific process for evaluating differences between images.
  • a particular selection pattern to be selected is determined (S290, S300, S310 of FIG. 6).
  • Each of the plurality of selection patterns determined in the first process (210 in FIG. 6) for the first time selects less than (1/2)N used maps Um (one used map Um in this embodiment). It is a pattern to do (FIG. 7(A)).
  • the (m+1)-th first process (m is an integer equal to or greater than 1), that is, the first process after the second time (S310 in FIG.
  • the (m+1)-th first process uses a plurality of selection patterns determined by the m-th first process and the evaluation value calculated by the m-th fifth process. , determine a plurality of selection patterns by performing a process according to an evolutionary computation algorithm.
  • specific selection patterns to be used in the inspection process that is, L feature maps to be used in the inspection process.
  • the selection pattern determined for the first time is a pattern for selecting less than (1/2)N used maps Um (one used map Um in this embodiment), the finally determined use The number L of maps can be suppressed.
  • the processing time of the inspection preparation process (FIG. 4) and the inspection process (FIG. 9) will become excessive.
  • the feature map fm reflecting features to be considered in the inspection process may differ depending on the object to be inspected (label LB in this embodiment). If the feature map fm reflecting the feature to be considered is not selected as the used map Um by random selection, the determination accuracy of the inspection process is degraded.
  • the normal image data and the verification image data of the object to be inspected can be used to determine an appropriate number of suitable maps Um to be used according to the object to be inspected. It is possible to improve the determination accuracy and reduce the processing time. For example, if a plurality of normal image data obtained by imaging one type of label LB is adopted as a plurality of normal image data, an appropriate number of appropriate number of images specialized for inspection of the one type of label LB can be used. A use map Um can be determined.
  • an appropriate number for general-purpose inspection that can inspect a plurality of types of label LB. can determine a suitable use map Um of .
  • a plurality of normal image data obtained by imaging other inspection objects (parts, products, etc.) in addition to the label LB are added to the plurality of normal image data, the label LB and other inspections can be performed.
  • a suitable number of suitable usage maps Um can be determined for more general inspections that can also inspect objects.
  • each of the plurality of selection patterns determined in the first process (S210 in FIG. 6) for the first time has less than (N/5) used maps Um (in this embodiment , one use map Um) (FIG. 7A).
  • (N/5) or more used maps Um are preferably selected
  • a selection pattern that selects less than (N/5) used maps Um is selected for the first time.
  • each of the plurality of selection patterns determined in the first process is a pattern for selecting one use map Um (see FIG. 7). (A)).
  • the processing according to the evolutionary computation algorithm can be started from selection patterns with a sufficiently small number of used maps Um, so that the number of finally determined feature maps can be reduced.
  • the plurality of selection patterns determined in the first process are N different one use map Um. It is a selection pattern (FIG. 7(A)).
  • a selection pattern FOG. 7(A)
  • all of the N feature maps fm are included in one of the selection patterns, so all of the N feature maps fm are evaluated in the selection pattern determination process.
  • less than N used maps Um to be used for inspection processing can be determined more appropriately.
  • the repetition end condition is a condition based on the change (difference ⁇ GR in this embodiment) of the evaluation value (accuracy rate GR in this embodiment) calculated in the fifth process a plurality of times. is.
  • the process can be terminated when the accuracy rate GR converges to a sufficiently high value. Therefore, it is possible to more appropriately determine less than N used maps Um to be used in the inspection process so as to achieve sufficient determination accuracy.
  • the anomaly degree map AM indicates the difference between the normal image and the verification image, the higher the accuracy rate GR. It can be said that it is an evaluation value that indicates the degree of indication. In addition, it can be said that the difference ⁇ GR is a value indicating a change to the extent that the abnormality degree map AM indicates the difference between the normal image and the verification image.
  • each of the plurality of selection patterns is represented by chromosome data including N pieces of gene data Gd that correspond one-to-one with the N feature maps fm (Fig. 7).
  • the processing according to the evolutionary algorithm follows the genetic algorithm with the accuracy rate GR, which is the evaluation value of the plurality of selection patterns, as fitness for the plurality of chromosome data CR indicating the plurality of selection patterns of the current generation.
  • This is a process of generating a plurality of pieces of chromosome data CR representing a plurality of selection patterns of the next generation by executing generation alternation processing (FIG. 7).
  • FOG. 7 generation alternation processing
  • the machine learning model DN comprises a plurality of layers LY1 to LY4 each generating a plurality of feature maps fm.
  • the N feature maps used in the inspection preparation process are feature maps fm1 to fm3 generated by some of the layers LY1 to LY3 of the plurality of layers LY1 to LY4 (FIG. 3(B)).
  • FIG. 3(B) it is possible to reduce the number of N feature maps fm that are candidates for the map to be used Um, thereby shortening the processing time of the inspection preparation process.
  • a plurality of normal image data representing normal objects are input to the machine learning model DN (110 in FIG. 4), and the use map Um used in the second process is generated and verified.
  • Verification image data representing the target object is input to the machine learning model DN (S120 in FIG. 4) to generate the use map Um used in the third process.
  • the machine learning model DN includes a CNN (Convolutional Neural Network) in which each of a plurality of layers LY1 to LY3 includes convolutional layers (FIG. 1).
  • the anomaly map AM is data indicating the difference between a normal object and an object to be inspected (Fig. 5(C)).
  • the accuracy rate GR calculated in the fifth process indicates the detection accuracy for detecting anomalies included in the object to be inspected based on the anomaly degree map AM.
  • the accuracy rate GR can also be said to be an abnormality detection rate. As a result, it is possible to appropriately determine less than N maps Um to be used for object anomaly detection.
  • the feature matrix FM of the normal image and the verification image is a feature vector V contains (i, j).
  • the feature vector V(i, j) of the feature matrix FM of the normal image is based on each of the less than N use maps Um obtained by inputting the normal image data and the verification image data into the machine learning model DN. (Fig. 3(E)).
  • the degree-of-abnormality map AM is a map indicating the Mahalanobis distance D(i, j) calculated for each unit area in the image ((D) in FIG. 8).
  • the Mahalanobis distance can accurately evaluate the difference between a plurality of normal images and one verification image. Therefore, in the selection pattern determination process, the accuracy rate GR of abnormality detection can be evaluated with high accuracy, so that less than N maps Um to be used for object abnormality detection can be appropriately determined.
  • the verification image data includes normal image data and abnormal image data.
  • the CPU 110 determines whether an image indicated by each of the normal image data and the abnormal image data is an abnormal image containing an abnormality based on an abnormality degree map AM generated for each of the normal image data and the abnormal image data. is determined, and the accuracy rate GR resulting from the determination is calculated as an evaluation value (S260 to S280 in FIG. 6).
  • each selection pattern chromosome data CR
  • can be appropriately evaluated based on the accuracy rate GR as a result of judging the verification image. can decide.
  • the normal image data in this embodiment is an example of first image data
  • the verification image data is an example of second image data
  • the feature matrix FM of the normal image is an example of first feature data
  • the feature matrix FM of the verification image is an example of second feature data.
  • the degree-of-abnormality map AM is an example of difference data
  • the accuracy rate GR is an example of an evaluation value.
  • the accuracy rate GR of the determination result as to whether the verification image is an abnormal image or a normal image is calculated as an evaluation value.
  • the accuracy rate of the determination result as to whether or not a plurality of pixels in the verification image are abnormal pixels may be calculated as the evaluation value.
  • FIG. 10 is an explanatory diagram of the selection pattern determination process of the modification.
  • a correct map CM is prepared in advance for each verification image.
  • the correct map CM is image data of the same size as the anomaly degree map AM, and is binary image data indicating whether each pixel of the correct map CM is an abnormal pixel or a normal pixel.
  • the correct map CM for example, the verification image and the correct map CM are superimposed, and the operator determines whether each pixel of the correct map CM is an abnormal pixel or a normal pixel. Created by determining the value of each pixel.
  • the correct map CM in FIG. 10A is a correct map created when the verification image is the abnormal image DI2 in FIG. 5B.
  • An abnormal portion apc of the correct map CM in FIG. 10A is a portion composed of abnormal pixels.
  • An abnormal portion apc of the correct map CM corresponds to the flaw df2 of the abnormal image DI2 in FIG. 5B.
  • a correct map (not shown) created when the verification image is the normal image DI1 in FIG. 5A is a correct map that does not include any abnormal pixels.
  • S270B and S280B of FIG. 10B are executed instead of S270 and S280 of FIG.
  • Other processes of the selection pattern determination process of the modification are the same as those in FIG.
  • the CPU 110 determines whether each pixel in the abnormality map AM is an abnormal pixel. Specifically, a pixel whose degree of abnormality is equal to or greater than the threshold TH1 is determined to be an abnormal pixel, and a pixel whose degree of abnormality is less than the threshold TH1 is determined to be a normal pixel.
  • the CPU 110 refers to the correct map CM to calculate the correct rate GRp of the determination result for each pixel of the abnormality degree map AM. Since the degree-of-abnormality map AM of FIG. 5(C) is an ideal degree-of-abnormality map as described above, it completely matches the correct map CM of FIG. 7(A). Therefore, in the abnormality degree map AM of FIG. 5C, there is no pixel that is erroneously determined to be a normal pixel, and there is no pixel that is erroneously determined to be an abnormal pixel. For this reason, the accuracy rate GRp of the abnormality degree map AM of FIG. 5(C) is 100%.
  • the CPU 110 uses the abnormality degree map AM to determine whether or not each unit area in the verification image (in this modification, each pixel of the feature map fm after size adjustment) contains an abnormality. Then, the accuracy rate GRp of the determination result may be calculated as an evaluation value. Even in this case, since each selection pattern (chromosome data CR) can be evaluated appropriately, it is possible to appropriately determine less than N maps Um to be used for object abnormality detection.
  • the end condition is based on the change in the accuracy rate GR (difference ⁇ GR in the above embodiment), which is an evaluation value indicating the difference between the normal image and the verification image in the abnormality degree map AM (for example, , threshold TH1).
  • the end condition may include that the change in the number of used maps Um selected in the selection pattern determination process becomes equal to or less than a reference (for example, a predetermined threshold).
  • the end condition may be that the change in the accuracy rate GR is below a standard and the change in the number of selected use maps Um is below a standard.
  • the termination condition may be that the change in the accuracy rate GR is below a standard or that the change in the number of used maps Um to be selected is below a standard. Alternatively, the termination condition may be only that the change in the number of selected use maps Um is equal to or less than a reference.
  • the end condition may be a condition that does not use the accuracy rate GR or the number of used maps Um, for example, that S220 to S280 in FIG. 6 are repeated a predetermined number of times.
  • a genetic algorithm is employed as an evolutionary computation algorithm.
  • an algorithm belonging to the evolutionary computation algorithm and different from the genetic algorithm may be employed.
  • a genetic programming algorithm that searches for a solution to a combinatorial optimization problem by expressing selection patterns using a graph structure such as a tree structure may be employed.
  • Evolutionary strategies and evolutionary programming which are algorithms that are developed with a focus on the mechanism of biological evolution and can be used to search for solutions to combinatorial optimization problems, like genetic algorithms, may also be employed.
  • the number of used maps Um selected in the first chromosome data CR is one.
  • the number of used maps Um selected in the first chromosome data CR may be two or more.
  • the number of used maps Um selected in the first chromosome data CR may be set to an arbitrary number sufficiently smaller than the predetermined number (for example, 2 to 10). In this case, the processing time for selection pattern determination processing can be reduced.
  • the number of used maps Um selected in the first chromosome data CR may be larger than (1/5) of the number N of feature maps fm that are candidates for the used map Um.
  • the N feature maps fm that are candidates for the used map Um are the feature maps fm output from the layers LY1 to LY3 of the machine learning model DN.
  • the feature map fm that is a candidate for the used map Um may be all or part of the feature map fm output by the machine learning model DN.
  • the feature maps fm that are candidates for the used map Um may be the feature maps fm output from the layers LY1 to LY4, or the feature maps fm from the layers LY1 and LY2.
  • the specific configuration of the above embodiment is an example and can be changed as appropriate.
  • the difference data indicating the difference between the normal image and the verification image the abnormality degree map AM whose elements are the Mahalanobis distances is employed.
  • the difference data may be data generated using other techniques.
  • the difference data may be a map whose elements are Euclidean distances between the average vector ⁇ (i, j) of the normal image and the feature vector V(i, j) of the verification image.
  • the machine learning model DN in the above example is an example and is not limited to this.
  • any image identification model such as VGG16 and VGG19 can be used as the machine learning model DN.
  • a known learned autoencoder for example, a normal autoencoder, VQ-VAE (Vector Quantized Variational Auto Encoder), VAE (Variational Autoencoder) may be used. good.
  • the selection pattern determination process in FIG. 6 is executed using N feature maps fm output by one or more layers included in the model. I wish I could.
  • the method of determining the use map Um by the selection pattern determination process is used for abnormality detection. Not limited to this, it can be used for various processes of evaluating the difference between the first image and the second image.
  • the method of this embodiment is used for processing to detect the presence or absence of an intruder in images from surveillance cameras, and processing to detect changes over time and movements of objects based on differences between current and past images. good too.
  • the inspection preparation process and the inspection process are executed by the inspection apparatus 100 of FIG.
  • the inspection preparation process and the inspection process may be performed by separate devices.
  • the Gaussian matrix GM of the normal image generated by the inspection preparation process is stored in the storage device of the apparatus that executes the inspection process.
  • all or part of the inspection preparation process and inspection 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 for performing the inspection process and the computer program for performing the inspection preparation process may be different computer programs.
  • part of the configuration implemented by hardware may be replaced with software, or conversely, part or all of the configuration implemented by software may be replaced with hardware. You may do so.
  • all or part of the test preparation process and test process may be executed by a hardware circuit such as an ASIC (Application Specific Integrated Circuit).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

画像間の差異を評価する特定処理に用いるべき複数個の特徴マップを適切に選択する。 N個の特徴マップを生成する機械学習モデルを用いる処理装置は、N個の特徴マップの中から使用マップを選択する複数個の選択パターンを決定し、選択パターンのそれぞれについて、使用マップを用いて、第1画像の特徴を示す第1特徴データと第2画像の特徴を示す第2特徴データを生成し、選択パターンのそれぞれについて、第1特徴データと第2特徴データとを用いて、第1画像と第2画像との差異を示すべき差異データを生成し、差異データを用いて評価値を算出する。処理装置は、これらの処理を繰り返し実行することによって、画像間の差異を評価する特定処理に用いるべき特定の選択パターンを決定する。選択パターンは、前回の選択パターンと、前回の選択パターンの評価値と、を用いて、進化計算アルゴリズムに従う処理を実行することによって決定される。

Description

コンピュータプログラム、および、処理装置
 本明細書は、特徴マップを生成する学習済みの機械学習モデルを用いるコンピュータプログラム、および、処理装置に関する。
 画像データを生成する機械学習モデルである画像生成モデルを用いた異常検出が知られている。非特許文献1に開示された技術では、正常な製品を撮像して得られる複数個の撮像画像データが学習済みのCNN(Convolutional Neural Network)に入力されて、複数個の撮像画像データのそれぞれについて複数個の特徴マップが生成される。そして、複数個の特徴マップからランダムで選択される所定個数の特徴マップに基づいて正常な製品の特徴を示すガウシアンパラメータのマトリクスが生成される。検査時には、検査対象の製品を撮像して得られる撮像画像がCNNに入力されて、特徴マップが生成され、該特徴マップに基づいて検査品の特徴を示す特徴ベクトルが生成される。正常な製品のマトリクスと、検査対象の製品の特徴ベクトルと、を用いて、検査品の異常検出が行われる。
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
 しかしながら、上記技術では、正常な製品の特徴を示すガウシアンパラメータのマトリクスを生成する際に、用いるべき特徴マップはランダムに選択されている。このために、用いるべき特徴ベクトルが適切に決定されているとは言えない場合があった。このような課題は、製品の異常検出に限らず、画像間の差異を評価する処理において共通する課題であった。
 本明細書は、画像間の差異を評価する特定処理に用いるべき複数個の特徴マップを適切に選択できる技術を開示する。
 本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
[適用例1]入力される画像データに対して演算処理を実行してN個(Nは3以上の整数)の特徴マップを生成する学習済みの機械学習モデルを用いるコンピュータプログラムであって、複数個の選択パターンを決定する第1処理であって、複数個の前記選択パターンのそれぞれは、N個の特徴マップの中から、N個未満の使用マップを選択するパターンである、前記第1処理と、複数個の前記選択パターンのそれぞれについて、第1画像を示す第1画像データを前記機械学習モデルに入力することによって得られるN個未満の前記使用マップを用いて、前記第1画像の特徴を示す第1特徴データを生成する第2処理と、
 複数個の前記選択パターンのそれぞれについて、第2画像を示す第2画像データを前記機械学習モデルに入力することによって得られるN個未満の前記使用マップを用いて、前記第2画像の特徴を示す第2特徴データを生成する第3処理と、複数個の前記選択パターンのそれぞれについて、前記第1特徴データと前記第2特徴データとを用いて、前記第1画像と前記第2画像との差異を示すべき差異データを生成する第4処理と、複数個の前記選択パターンのそれぞれについて生成される前記差異データを用いて複数個の前記選択パターンの評価値を算出する第5処理と、をコンピュータに実行させ、前記第1処理と前記第2処理と前記第3処理と前記第4処理と前記第5処理と、を繰り返し実行することによって、画像間の差異を評価する特定処理に用いるべき特定の前記選択パターンを決定し、1回目の前記第1処理にて決定される複数個の前記選択パターンのそれぞれは、(1/2)N未満の前記使用マップを選択するパターンであり、(m+1)回目(mは1以上の整数)の前記第1処理は、m回目の前記第1処理にて決定される複数個の前記選択パターンと、m回目の前記第5処理にて算出される複数個の前記選択パターンの前記評価値と、を用いて、進化計算アルゴリズムに従う処理を実行することによって、複数個の前記選択パターンを決定する、コンピュータプログラム。
 上記構成によれば、(m+1)回目(mは1以上の整数)の第1処理は、m回目の第1処理にて決定される複数個の選択パターンと、m回目の第5処理にて算出される評価値と、を用いて、進化計算アルゴリズムに従う処理を実行することによって、複数個の選択パターンを決定する。この結果、第1~第5処理を繰り返すことで、画像間の差異を評価する特定処理に用いるべき特定の選択パターン(すなわち、特定処理に用いるべきN個未満の特徴マップ)を適切に決定することができる。また、1回目に決定される選択パターンは、(1/2)N未満の使用マップを選択するパターンであるので、最終的に決定される使用マップの個数を抑制できる。
 なお、本明細書に開示される技術は、他の種々の形態で実現することが可能であり、例えば、機械学習モデルのトレーニング方法、検査装置、検査方法、これらの装置および方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
検査システム1000の構成を示すブロック図。 製品300の説明図。 機械学習モデルDNの構成を示すブロック図。 検査準備処理のフローチャート。 実施例で用いられる画像の一例を示す図。 選択パターン決定処理のフローチャート。 染色体データCRの説明図。 実施例で用いられるマトリクスおよびマップの説明図。 検査処理のフローチャート。 変形例の選択パターン決定処理の説明図。
A.実施例
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次元グラフィックスなどの画像処理のための計算処理を行うプロセッサである。本実施例では、後述する機械学習モデルDNの演算処理を実行するために利用される。
 揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、検査装置用のコンピュータプログラムPGと画像データ群RD、TDとが格納されている。画像データ群RD、TDについては、後述する。
 コンピュータプログラムPGは、後述する機械学習モデルDNの機能をCPU110とGPU115とが協働して実現させるコンピュータプログラムをモジュールとして含んでいる。コンピュータプログラムPGは、例えば、検査装置100の製造者によって提供される。コンピュータプログラムPGは、例えば、サーバからダウンロードされる形態で提供されても良く、DVD-ROMなどに格納される形態で提供されてもよい。CPU110は、コンピュータプログラムPGを実行することにより、後述する検査処理やトレーニング処理を実行する。
 撮像装置400は、光学的に被写体を撮像することによって被写体を表す画像データ(撮像画像データとも呼ぶ)を生成するデジタルカメラである。撮像画像データは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、RGB値によって画素ごとの色を表すRGB画像データである。RGB値は、3個の色成分の階調値(以下、成分値とも呼ぶ)、すなわち、R値、G値、B値を含むRGB表色系の色値である。R値、G値、B値は、例えば、所定の階調数(例えば、256)の階調値である。撮像画像データは、画素ごとの輝度を表す輝度画像データであっても良い。
 撮像装置400は、検査装置100の制御に従って、撮像画像データを生成し、検査装置100に送信する。本実施例では、撮像装置400は、検査処理の検査対象であるラベルLBが貼付された製品300を撮像して、撮像画像を示す撮像画像データを生成するために用いられる。
 図2は、製品300の説明図である。図2(A)には、製品300の斜視図が示されている。製品300は、本実施例では、略直方体の筐体30を有するプリンタである。製造工程において、筐体30の前面31(+Y側の面)には、矩形のラベルLBが所定の貼付位置に貼付される。
 図2(B)には、ラベルLBが示されている。ラベルLBは、例えば、背景Bと、製造者や製品のブランドロゴ、型番、ロット番号等の各種の情報を示す文字TXやマークMKと、を含んでいる。
A-2.機械学習モデルDNの構成
 機械学習モデルDNの構成について説明する。図3は、実施例の機械学習モデルDNの構成を示すブロック図である。機械学習モデルDNは、入力画像データIDに対して、複数個の演算パラメータを用いて、演算処理を実行して、入力画像データIDに対応する特徴マップfm(後述)を生成する。
 図3(A)の機械学習モデルDNは、入力画像データIDに対して次元削減処理を実行して、入力された画像の特徴を抽出するエンコーダである。機械学習モデルDNは、例えば、画像の識別結果を出力する画像識別モデルとして利用される公知のモデルである。本実施例の機械学習モデルDNには、ResNet18と呼ばれる公知のモデルが用いられている。このモデルは、例えば、論文「K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” in ICML, 2016.」に開示されている。
 機械学習モデルDNは、複数のレイヤLY1~LY4を備えている。各レイヤは、複数個の畳込層を含むCNN(Convolutional Neural Network)である。各畳込層は、所定サイズのフィルタを用いて畳込処理(convolution)を実行して特徴マップを生成する。各畳込処理の算出値は、バイアスが加算されたうえで、所定の活性化関数に入力されて変換される。各畳込層から出力される特徴マップは次の処理層(次の畳込層やレイヤ)に入力される。活性化関数には、いわゆるReLU(Rectified Linear Unit)等の公知の関数が用いられる。
 畳込処理に用いられるフィルタの重みおよびバイアスとは、学習処理によって調整される演算パラメータである。本実施例の機械学習モデルDNは、公開された演算パラメータセットを用いた学習済みの機械学習モデルである。例えば、学習済みの機械学習モデルは、ImageNetの1000クラスに分類されたデータセットを分類するように学習処理が実行されたモデルである。
 本実施例では、入力画像データIDは、所定のサイズ、具体的には、128画素×128画素の矩形の画像データである。入力画像データIDは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、RGB画像データである。後述するように、本実施例では、上述したラベルLBを含む撮像画像を示す撮像画像データが入力画像データIDとして想定されている。
 第1レイヤLY1は、n1個の特徴マップfm1(図3(B))を生成する。該n1個の特徴マップfm1は、第2レイヤLY2に入力される。各特徴マップfm1は、例えば、32画素×32画素の画像データである。特徴マップfm1の個数n1(チャンネル数とも呼ぶ)は、例えば、64である。
 第2レイヤLY2は、n2個の特徴マップfm2(図3(B))を生成する。該n2個の特徴マップfm2は、第3レイヤLY3に入力される。各特徴マップfm2は、例えば、16画素×16画素の画像データである。特徴マップfm2のチャンネル数n2は、例えば、128である。
 第3レイヤLY3は、n3個の特徴マップfm3(図3(B))を生成する。該n3個の特徴マップfm3は、第4レイヤLY4に入力される。各特徴マップfm3は、例えば、8画素×8画素の画像データである。特徴マップfm3のチャンネル数n3は、例えば、256である。
 第4レイヤLY4は、n4個の特徴マップfm4を生成する。各特徴マップfm4は、例えば、4画素×4画素の画像データである。n4個の特徴マップfm4は、検査準備処理には用いられない。本実施例では、合計でN個(Nは3以上の整数)の特徴マップfm1~fm3を用いて後述する検査準備処理が実行される(N=n1+n2+n3、本実施例では、N=448)。
A-3.検査準備処理
 検査準備処理では、機械学習モデルDNを用いて生成されるN個の特徴マップfm(図3(B)、(C))の中から、使用すべきL個の使用マップUm(図3(D))が決定される。また、検査準備処理では、L個の使用マップUmを用いて、正常なラベルLB(以下、正常品とも呼ぶ)の特徴を示すガウシアンマトリクスGM(後述)が生成される。検査準備処理は、後述する検査処理に先立って実行される。図4は、検査準備処理のフローチャートである。
 S100では、CPU110は、不揮発性記憶装置130からK個の正常画像データ(図1の正常画像データ群RD)とM個の検証画像データ(図1の検証画像データ群TD)とを取得する。
 正常画像データは、欠陥などの異常を含まない正常なラベルLBの画像(以下、正常画像DI1とも呼ぶ)を示す画像データである。正常画像データは、例えば、予め正常であることが確認済みのラベルLBを、撮像装置400を用いて撮像することによって生成される。取得される正常画像データの個数Kは、1以上の整数、例えば、10~100程度である。複数個の正常画像データは、撮像画像において発生し得るバラツキに起因して変動する特性、例えば、明度、ぼけの程度、ノイズ量が異なる画像データを含んでいることが好ましい。
 図5は、本実施例で用いられる画像の一例を示す図である。図5(A)の正常画像DI1は、ラベルLB1を示す画像である。このように正常画像DI1に示されるラベルを、実物のラベルLBと区別するために符号「LB1」を付す。ラベルLB1は、実物のラベルLBを撮像した撮像画像であり、文字TX1とマークMK1とを含む。K個の正常画像データは、同一のラベルLBを複数回に亘って撮像して得られる複数個の撮像画像データを含んでも良いし、複数種類のラベルLBをそれぞれ撮像して得られる複数個の撮像画像データを含んでも良い。
 M個の検証画像データは、例えば、複数個の正常画像データと、複数個の異常画像データと、を含んでいる。異常画像データは、欠陥などの異常を含むラベルLBの画像(以下、異常画像DI2とも呼ぶ)を示す画像データである。異常画像データは、例えば、予め異常を含むことが確認済みのラベルLBを、撮像装置400を用いて撮像することによって生成される。取得される正常画像データの個数Mは、1以上の整数、例えば、10~100程度である。
 図5(B)の異常画像DI2は、ラベルLB2を示す画像である。このように異常画像DI2に示されるラベルを、実物のラベルLBと区別するために符号「LB2」を付す。ラベルLB2は、実物のラベルLBを撮像した撮像画像であり、文字TX2とマークMK2とを含む。ラベルLB2は、さらに、異常としてのキズdf2を含む。異常はキズに限らず、汚れ、端部の欠けなどを含む。M個の異常画像データは、同一のラベルLBを複数回に亘って撮像して得られる複数個の撮像画像データを含んでも良いし、複数種類のラベルLBをそれぞれ撮像して得られる複数個の撮像画像データを含んでも良い。
 S110では、CPU110は、各正常画像データを、入力画像データIDとして、機械学習モデルDNに入力して、N個の特徴マップfmを生成する(図3(B))。本実施例では、K個の正常画像データのそれぞれについて、N個の特徴マップfmが生成されるので、合計で(K×N)個の特徴マップfmが生成される。
 S120では、CPU110は、各検証画像データを、入力画像データIDとして、機械学習モデルDNに入力して、N個の特徴マップfmを生成する(図3(B))。本実施例では、M個の検証画像データのそれぞれについて、N個の特徴マップfmが生成されるので、合計で(M×N)個の特徴マップfmが生成される。
 S130では、CPU110は、生成済みの特徴マップfmのサイズ(縦方向および横方向の画素数)を調整して、全ての特徴マップfmのサイズを同じにする。本実施例では、N個の特徴マップfmのうち、第1レイヤLY1から出力される特徴マップfm1のサイズが最も大きい(図3(B))。このために、本実施例では、CPU110は、第2レイヤLY2から出力される特徴マップfm2に公知の拡大処理を実行して、特徴マップfm1と同じサイズの特徴マップfm2rを生成する(図3(C))。同様に、CPU110は、第3レイヤLY3から出力される特徴マップfm3に拡大処理を実行して、特徴マップfm1と同じサイズの特徴マップfm3rを生成する(図3(C))。
 S140では、CPU110は、選択パターン決定処理を実行する。選択パターン決定処理は、N個の特徴マップの中から、後述する特徴マトリクスFMやガウシアンマトリクスGMの生成に用いるべきL個の使用マップUmを決定する処理である。
 図6は、選択パターン決定処理のフローチャートである。S210では、CPU110は、それぞれが選択パターンを示す複数個の1回目(第1世代)の染色体データを生成する。選択パターンは、上述したN個(本実施例ではN=488)の特徴マップfmの中からN未満の使用マップUmを選択するパターンである。
 選択パターンは、後述するように遺伝的アルゴリズムに従う処理を行うために、染色体データCRによって表現される。図7は、染色体データCRの説明図である。染色体データCRは、N個の遺伝子データGdから成るデータである。N個の遺伝子データGdは、N個の特徴マップfmと一対一で対応している。例えば、N個の特徴マップfmには番号n(nは1~Nの整数)が付され、n番の特徴マップfmは、染色体データCRを構成するn番目の遺伝子データGdと対応している。N個の遺伝子データGdのそれぞれは、対応する特徴マップfmが使用マップUmであるか否かを示す値を有する。例えば、1つの遺伝子データGdは、「0」または「1」の値を取る2ビットデータである。「0」は、対応する特徴マップfmが使用マップUmでないことを示し、「1」は、対応する特徴マップfmが使用マップUmであることを示す。
 1回目の染色体データCRの個数は、本実施例では、N個である。図7(A)には、N個の1回目(第1世代)の染色体データCR1~CRNが図示されている。1回目の各染色体データCRは、N個の特徴マップfmの中から、1個だけ使用マップUmを選択する選択パターンを示す。したがって、1回目の各染色体データCRは、「1」の値を取る1個の遺伝子データGdと、「0」の値を取る(N-1)個の遺伝子データGdと、を含む。1回目のN個の染色体データCRによって示されるN個の選択パターンは、選択される1個の使用マップUmが互いに異なっている。したがって、N個の特徴マップfmのそれぞれが、1個の選択パターンにおいて使用マップUmとして選択され、他の(N-1)個の選択パターンにおいて使用マップUmとして選択されない。
 N個の染色体データCRが生成されると、CPU110は、N個の染色体データCRのそれぞれについて、S220~S280を実行する。以下では、1個の染色体データCRについての処理を説明する。
 S220では、CPU110は、染色体データCRに基づいて、N個の使用マップUmの中から、N未満の使用マップUmを選択する。1回目の染色体データCRでは、選択すべき使用マップUmの数は1個であるが、2回目(第2世代)以降の染色体データCRでは、選択すべき使用マップUmの個数は、2個以上にもなり得る。
 S230では、CPU110は、選択されたN未満の使用マップUmを用いて、正常画像の特徴マトリクスFMを生成する。具体的には、1つの正常画像データを用いて生成されたN個のサイズ調整後の特徴マップfm(図3(C))から選択された使用マップUmを用いて、該正常画像データによって示される正常画像の特徴マトリクスFMが生成される。特徴マトリクスFMは、サイズ調整後の特徴マップfmの各画素と一対一で対応する特徴ベクトルV(i、j)を要素とするマトリクスである。(i、j)は、特徴マップfmの対応する画素の座標を示す。特徴ベクトルは、N未満の使用マップUmにおける座標(i、j)の画素の値を要素とするベクトルである。図3(D)に示すように、仮にL個(LはN未満の整数)の使用マップUmが選択されるとすると、1つの特徴ベクトルは、L次元のベクトル(要素数がLのベクトル)である(図3(E))。
 ここで、正常画像の特徴マトリクスFMは、正常画像ごと(正常画像データごと)に生成される。本実施例では、正常画像データの個数はK個であるから、1つの染色体データCRに対して、正常画像のK個の特徴マトリクスFM1~FMKが生成される。図8は、本実施例で用いられるマトリクスおよびマップの説明図である。図8(A)には、正常画像のK個の特徴マトリクスFM1~FMKの一例が図示されている。
 S240では、CPU110は、正常画像のK個の特徴マトリクスFM1~FMKを用いて、正常画像のガウシアンマトリクスGMを生成する。正常画像のガウシアンマトリクスGMは、サイズ調整後の特徴マップfmの各画素と一対一で対応するガウシアンパラメータを要素とするマトリクスである。座標(i、j)の画素に対応するガウシアンパラメータは、平均ベクトルμ(i、j)と、共分散行列Σ(i、j)と、を含む。平均ベクトルμ(i、j)は、正常画像のK個の特徴マトリクスFM1~FMKの特徴ベクトルV(i、j)の平均である。共分散行列Σ(i、j)は、正常画像のK個の特徴マトリクスFM1~FMKの特徴ベクトルV(i、j)の共分散行列である。1つの染色体データCR(1つの使用マップUmの選択パターン)に対して、1つのガウシアンマトリクスGMが生成される。
 S250では、CPU110は、選択されたN未満の使用マップUmを用いて、検証画像の特徴マトリクスFM(図8(C))を生成する。具体的には、1つの検証画像データを用いて生成されたN個のサイズ調整後の特徴マップfm(図3(C))から選択された使用マップUmを用いて、該検証画像データによって示される検証画像の特徴マトリクスFMが生成される。検証画像の特徴マトリクスFMは、上述した正常画像の特徴マトリクスFMと同様に、サイズ調整後の特徴マップfmの各画素と一対一で対応する特徴ベクトルV(i、j)を要素とするマトリクスである。本実施例では、検証画像データの個数はM個であるから、1つの染色体データCRに対して、検証画像のM個の特徴マトリクスFMが生成される。
 S260では、CPU110は、検証画像データごとに、異常度マップAMを生成する。異常度マップAMは、サイズ調整後の特徴マップfmと同じサイズの画像データである。異常度マップAMの各画素の値は、マハラノビス距離である。座標(i、j)におけるマハラノビス距離D(i、j)は、検証画像の特徴マトリクスFMの特徴ベクトルV(i、j)と、正常画像のガウシアンマトリクスGMの平均ベクトルμ(i、j)および共分散行列Σ(i、j)と、を用いて、算出される。マハラノビス距離D(i、j)は、座標(i、j)におけるK個の正常画像と検証画像との間の差異の程度を示す値である。このために、マハラノビス距離D(i、j)は、座標(i、j)における検証画像の異常度を示す値であると、言うことができる。
 本実施例では、M個の検証画像データが用いられるので、1つの染色体データCR(1つの使用マップUmの選択パターン)に対して、M個の異常度マップAMが生成される。
 図5(C)は、検証画像が図5(B)の異常画像DI2である場合に生成されるべき理想的な異常度マップAMの例が示されている。図5(C)の異常度マップAMにおいて、黒で示す異常部apは、異常度(マハラノビス距離)が閾値TH1以上である異常画素で構成される部分である。図5(C)の異常度マップAMにおいて、図5(B)の異常画像DI2のキズdf2が、異常部apとして現れている。選択パターン決定処理は、図5(C)の異常度マップAMのような理想的な異常度マップAMを生成できるような染色体データCR(使用マップUmの選択パターン)を探索する処理である、と言うことができる。
 S280では、CPU110は、異常検出の正解率GRを算出する。具体的には、CPU110は、M個の検証画像データのそれぞれの異常度マップAMに基づいて検証画像が正常画像であるか異常画像であるかを判定する。例えば、CPU110は、異常度マップAMの複数個の画素のうち、異常度が閾値TH1以上である異常画素の個数をカウントする。CPU110は、該異常画素の個数が閾値TH2以上である場合に、異常度マップAMに対応する検証画像は異常画像であると判定し、該異常画素の個数が閾値TH2未満である場合に、異常度マップAMに対応する検証画像は正常画像であると判定する。各検証画像が異常画像であるか正常画像であるかは、予め解っているので、CPU110は、異常度マップAMに基づく判定結果の正解率GRを算出する。
 CPU110は、以上説明したS220~S280の処理を、N個の染色体データCRのそれぞれについて実行することで、N個の染色体データCRのそれぞれについて、異常検出の正解率GRを算出する。
 S290では、CPU110は、処理の終了条件が満たされたか否かを判断する。本実施例では、CPU110は、今回の異常検出の正解率GRと、前回の異常検出の正解率GRと、の差分ΔGRを算出し、差分ΔGRが閾値TH3以下になった場合に、終了条件が満たされたと判断する。差分ΔGRは、異常検出の正解率GRの変化を示す値である。
 終了条件が満たされない場合には(S290:NO)、S310にて、CPU110は、現行世代のN個の染色体データCRに対して世代交代処理を実行して、次世代のN個の染色体データCRを生成する。例えば、最初のS310では、第1世代のN個の染色体データCR(図7(A))を用いて、第2世代の染色体データCR(図7(B))が生成される。世代交代処理は、遺伝的アルゴリズムに従う処理である。世代交代処理は、生物の生殖活を模倣して考案された処理であり、例えば、以下のように実行される。
(1)CPU110は、現行世代のN個の染色体データCRから親となる2個の染色体データを選択する。
 異常検出の正解率GRを適応度として用いて、適応度が高い染色体データCRが優先的に選択され(適者生存)、適応度が低い染色体データCRは選択され難い(自然淘汰)選択ルールに従って、2個の染色体データが選択される。例えば、正解率GRが高いほど選択確率が高くなるように抽選を行うルーレット選択方式に従って2個の染色体データが選択される。
(2)CPU110は、選択された2個の染色体データCRを交叉して、1個の次世代の染色体データCRを生成する。例えば、染色体データCRにおいてp個(pは1以上の整数)の交叉点がランダムに決定され、交叉点を境界として2個の染色体データCRの遺伝子データGdを組み合わせることで、1個の次世代の染色体データCRが生成される。例えば、1個の交叉点を用いる1点交叉の場合には、1~(N-1)の範囲で交叉点の位置qが決定される。そして、1~q番目の遺伝子データGdを一方の親の染色体データCRの1~q番目の遺伝子データGdとし、(q+1)~N番目の遺伝子データGdを他方の親の染色体データCRの(q+1)~N番目の遺伝子データGdとする1個の次世代の染色体データCRが生成される。交叉は、「遺伝子組み換え」とも呼ばれる。
(3)CPU110は、所定の確率で突然変異を発生させる。例えば、(1)、(2)の方法で生成された次世代のN個の染色体データCRのうち、所定の確率で突然変異させる染色体データCRがランダムに選択される。選択された染色体データCRの複数個の遺伝子データGdからR所定の確率で突然変異させる遺伝子データGdがランダムに選択される。選択された遺伝子データGdの値が変更される。
 なお、上記(1)~(3)の方法は一例であり、遺伝的アルゴリズムとして知られる他の手法が(1)~(3)の方法に代えて、または、(1)~(3)の方法とともに採用されて良い。例えば、ルーレット選択方式に代えて、ランキング選択方式やトーナメント選択方式が採用されても良い。ランキング選択方式は、適応度が高い順に染色体データCRに順位を付け、順位が高いほど選択率が高くなるように順位ごとに選択率を決定し、該選択率に従って親となる染色体データCRを選択する方式である。トーナメント選択方式は、所定の個数(トーナメントサイズと呼ばれる)の染色体データCRをランダムに選択し、その中で最も適応度が高い染色体データCRを親となる染色体データCRとして選択する方式である。また、1点交叉方式に代えて、一様交叉方式が採用されても良い。一様交叉方式は、遺伝子データGdごとに、どちらの親の遺伝子データGdを採用するかをランダムに決定する方式である。
 また、適応度が最も高い所定個数の染色体データCRは、無条件に次世代に残すエリート保存戦略が組み合わせられても良い。また、交叉に用いる親の染色体データCRの個数は、2に限らず、3以上であっても良い。すなわち、3以上の現行世代の染色体データCRから1つの次世代の染色体データCRが生成されても良い。
 なお、1回目の染色体データCRでは、選択される使用マップUmの個数(すなわち、値「1」を有する遺伝子データGdの個数)は1個であったが、2世代以降の染色体データCRでは、選択される使用マップUmの個数は、2以上になり得る(図7(B))。そして、世代を重ねるごとに、適切な個数の使用マップUmを選択する染色体データCRが生成されることが期待できる。
 次世代のN個の染色体データCRが生成されると、CPU110は、S220に処理を戻す。これによって、次世代のN個の染色体データCRのそれぞれについて、S220~S280が実行される。
 終了条件が満たされる場合には(S290:YES)、S300にて、CPU110は、最も正解率GRが高い使用マップUmの選択パターンを特定する。すなわち、CPU110は、これまでに生成された複数個の染色体データCRの中から、最も正解率GRが高い染色体データCRを特定する。そして、該染色体データCRによって示される使用マップUmの選択パターンが特定される。特定された染色体データCRにて選択される使用マップUmの個数をL(Lは1以上N未満の整数)とする。本ステップにて特定された使用マップUmの選択パターンが、最終的に決定される選択パターンである。
 選択パターン決定処理が終了されると、図4のS150にて、CPU110は、決定された選択パターンを用いて生成された正常画像のガウシアンマトリクスGMを、使用すべきガウシアンマトリクスGMとして不揮発性記憶装置130に保存して、検査準備処理を終了する。
A-4.検査処理
 図9は、検査処理のフローチャートである。検査処理は、検査すべきラベルLBが欠陥等を含む異常品であるか、欠陥等を含まない正常品であるかを検査する処理である。検査処理は、ラベルLBごとに実行される。検査処理は、ユーザ(例えば、検査の作業者)が処理の開始指示を、操作部150を介して検査装置100に入力した場合に、開始される。例えば、ユーザは、検査すべきラベルLBが貼り付けられた製品300を、撮像装置400を用いて撮像するための所定の位置に配置した状態で、検査処理の開始指示を入力する。
 S500では、CPU110は、検査すべきラベルLB(以下、検査品とも呼ぶ)を含む撮像画像を示す撮像画像データを取得する。例えば、CPU110は、撮像装置400に撮像指示を送信して、撮像装置400に撮像画像データを生成させ、撮像装置400から撮像画像データを取得する。この結果、例えば、上述した図5(A)の正常画像DI1や図5(B)の異常画像DI2を示す撮像画像データが取得される。
 S510では、CPU110は、取得された撮像画像データを、入力画像データIDとして機械学習モデルDNに入力することによって、撮像画像データに対応するN個の特徴マップfmを生成する(図3(B)。
 S520では、CPU110は、N個の特徴マップfmのうち、上述した選択パターン決定処理によって決定された選択パターンに従って選択されるL個の使用マップUm(図3(D))を用いて、検査品の特徴マトリクスFMを生成する(図3(E))。
 S530では、CPU110は、正常画像のガウシアンマトリクスGM(図8(B))と、検査品の特徴マトリクスFM(図3(E))とを用いて、異常度マップAMを生成する。ここで、正常画像のガウシアンマトリクスGMは、選択パターン決定処理によって決定された選択パターンに従って選択されるL個の使用マップUmを用いて生成されたガウシアンマトリクスGMである。このガウシアンマトリクスGMは、検査準備処理(図4)のS150にて、不揮発性記憶装置130に保存されている。異常度マップAMの生成方法は、図8(B)~(D)を参照して説明した図6のS260における検証画像の異常度マップAMの生成方法と同じである。例えば、検査品の撮像画像データによって示される撮像画像が、図5(B)の異常画像DI2である場合には、図5(C)の異常度マップAMが生成される。異常度マップAMを参照することで、撮像画像に含まれるキズなどの欠陥の位置、大きさ、形状を特定することができる。撮像画像にキズなどの欠陥が含まれない場合には、異常度マップAMにおいても、欠陥の領域は特定されない。
 S540では、CPU110は、異常度マップAMにおける異常画素の個数が閾値TH2以上であるか否かを判断する。異常画素は、上述のように異常度が閾値TH1以上の画素である。異常画素の個数が閾値TH2未満である場合には(S540:NO)、S560にて、CPU110は、検査すべきラベルLBは正常品であると判定する。異常画素の個数が閾値TH2以上である場合には(S540:YES)、S550にて、CPU110は、検査すべきラベルは異常品であると判定する。S570では、CPU110は、検査結果を表示部140に表示して、検査処理を終了する。このように機械学習モデルDNを用いて、検査すべきラベルLBが正常品であるか異常品であるかを精度良く判定することができる。
 なお、特徴マトリクスFM、ガウシアンマトリクスGM、異常度マップAMの算出式は、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」に開示されている。
 以上説明した本実施例によれば、機械学習モデルDNは、入力画像データIDに対して演算処理(例えば、畳込処理)を実行してN個の特徴マップfm(図3(B))を生成する。CPU110は、複数個の選択パターン(本実施例では、染色体データCRによって表現される)を決定する第1処理を実行する(図6のS210、S310)。複数個の選択パターンのそれぞれは、N個の特徴マップfmの中から、N個未満の使用マップを選択するパターン(図7)である。CPU110は、複数個の選択パターンのそれぞれについて、正常画像データを機械学習モデルDNに入力することによって得られるN個未満の使用マップUmを用いて、正常画像の特徴を示す特徴マトリクスFMを生成する第2処理を実行する(図6のS230)。CPU110は、複数個の選択パターンのそれぞれについて、検証画像データを機械学習モデルDNに入力することによって得られるN個未満の使用マップUmを用いて、検証画像の特徴を示す特徴マトリクスFMを生成する第3処理を実行する(図6のS250)。CPU110は、複数個の選択パターンのそれぞれについて、複数個の正常画像の特徴マトリクスFMと、検証画像の特徴マトリクスFMと、を用いて、正常画像と検証画像との差異を示すべき異常度マップAMを生成する第4処理を実行する(図6のS240、S260)。CPU110は、複数個の選択パターンのそれぞれについて生成される異常度マップAMを用いて複数個の選択パターンの評価値である正解率GRを算出する第5処理を実行する(図6のS280)。CPU110は、第1処理と第2処理と第3処理と第4処理と第5処理と、を繰り返し実行することによって、画像間の差異を評価する特定処理である検査処理(図9)に用いるべき特定の選択パターンを決定する(図6のS290、S300、S310)。1回目の第1処理(図6の210)にて決定される複数個の選択パターンのそれぞれは、(1/2)N未満の使用マップUm(本実施例では1つの使用マップUm)を選択するパターンである(図7(A))。(m+1)回目(mは1以上の整数)の第1処理、すなわち、2回目以降の第1処理(図6のS310)は、m回目の第1処理にて決定される複数個の選択パターンと、m回目の第5処理にて算出される複数個の選択パターンの評価値である正解率GRと、を用いて、進化計算アルゴリズム(本実施例では遺伝的アルゴリズム)に従う処理を実行することによって、複数個の選択パターンを決定する。
 このように、(m+1)回目の第1処理は、m回目の第1処理にて決定される複数個の選択パターンと、m回目の第5処理にて算出される評価値と、を用いて、進化計算アルゴリズムに従う処理を実行することによって、複数個の選択パターンを決定する。この結果、第1~第5処理を繰り返すことで、検査処理に用いるべき特定の選択パターン(すなわち、検査処理に用いるべきL個の特徴マップ)を適切に決定することができる。また、1回目に決定される選択パターンは、(1/2)N未満の使用マップUm(本実施例では1個の使用マップUm)を選択するパターンであるので、最終的に決定される使用マップの個数Lを抑制できる。例えば、1回目に決定される選択パターン(第1世代の染色体データCR)にて、選択される使用マップUmの個数が過度に多い場合には、最終的に決定される使用マップの個数Lも過度に多くなる可能性が高く、検査準備処理(図4)や検査処理(図9)の処理時間が過大になる可能性がある。本実施例では、検査処理における判定精度を十分に高くすることができ、かつ、処理時間が過大にならないような適切な個数の適切な使用マップUmを決定することができる。したがって、検査処理の判定精度の向上と処理時間の低減を図ることができる。
 例えば、N個の特徴マップfmから、所定個数の使用マップUmをランダムで選択する場合には、必ずしも適切な使用マップUmが適切な個数だけ選択できない場合がある。この場合には、検査処理の判定精度が十分に向上できない可能性や、検査処理の処理時間が十分に低減できない可能性がある。例えば、検査対象の物体(本実施例ではラベルLB)によって、検査処理において考慮されるべき特徴が反映される特徴マップfmは異なり得る。ランダムな選択によって、考慮されるべき特徴が反映されている特徴マップfmが使用マップUmとして選択されない場合には、検査処理の判定精度は低下する。また、ランダムな選択によって、考慮される必要がない特徴のみが反映されている特徴マップfmが使用マップUmとして選択される場合には、判定精度の向上は見込めないにも拘わらずに、検査処理の処理時間が長くなる。本実施例によれば、検査対象の物体の正常画像データおよび検証画像データを用いて、検査対象の物体に応じた適切な個数の適切な使用マップUmを決定できるので、検査処理の検査処理の判定精度の向上と処理時間の低減を図ることができる。例えば、複数個の正常画像データに、1種類のラベルLBを撮像して得られる複数個の正常画像データを採用すれば、該1種類のラベルLBの検査に特化した適切な個数の適切な使用マップUmを決定できる。また、複数個の正常画像データに、複数種類のラベルLBを撮像して得られる複数個の正常画像データを採用すれば、複数種類のラベルLBを検査できる汎用的な検査のための適切な個数の適切な使用マップUmを決定できる。さらには、複数個の正常画像データに、ラベルLBに加えて他の検査対象(部品や製品など)を撮像して得られる複数個の正常画像データを加えれば、ラベルLBに加えて他の検査対象の検査も可能なより汎用的な検査のための適切な個数の適切な使用マップUmを決定できる。
 さらに、本実施例によれば、1回目の第1処理(図6のS210)にて決定される複数個の選択パターンのそれぞれは、(N/5)未満の使用マップUm(本実施例では、1個の使用マップUm)を選択するパターンである(図7(A))。この結果、例えば、(N/5)以上の使用マップUmが選択されることが好ましいと想定される場合には、(N/5)未満の使用マップUmを選択する選択パターンを1回目の選択パターンとすることで、最終的に適切な個数の使用マップUmを選択する選択パターンを決定できる。
 さらに、本実施例によれば、1回目の第1処理(図6のS210)にて決定される複数個の選択パターンのそれぞれは、1個の使用マップUmを選択するパターンである(図7(A))。この結果、使用マップUmの個数が十分に少ない選択パターンから、進化計算アルゴリズムに従う処理が始められるので、最終的に決定される特徴マップの個数を少なくし得る。
 さらに、本実施例によれば、1回目の第1処理にて決定される(図6のS210)にて決定される複数個の選択パターンは、1個の使用マップUmが互いに異なるN個の選択パターンである(図7(A))。この結果、N個の特徴マップfmの全てが、いずれかの選択パターンに含まれるので、N個の特徴マップfmの全てが、選択パターン決定処理において評価される。この結果、検査処理に用いるべきN個未満の使用マップUmをより適切に決定することができる。
 さらに、本実施例によれば、繰り返しの終了条件は、複数回の第5処理にて算出される評価値(本実施例では正解率GR)の変化(本実施例では差分ΔGR)に基づく条件である。この結果、例えば、正解率GRが十分に高い値に収束した段階で処理を終了できる。したがって、十分な判定精度を実現できるように、検査処理に用いるべきN個未満の使用マップUmをより適切に決定することができる。
 なお、異常度マップAMが、正常画像と検証画像との差異を正しく示しているほど、正解率GRが高くなるので、正解率GRは、異常度マップAMが正常画像と検証画像との差異を示す程度を示す評価値である、と言うことができる。また、差分ΔGRは、異常度マップAMが正常画像と検証画像との差異を示す程度の変化を示す値である、と言うことができる。
 さらに、本実施例によれば、複数個の選択パターンのそれぞれは、N個の特徴マップfmと一対一で対応するN個の遺伝子データGdを含む染色体データによって表現される(図7)。そして、進化的アルゴリズムに従う処理は、現行世代の複数個の選択パターンを示す複数個の染色体データCRに対して、複数個の選択パターンの評価値である正解率GRを適応度として遺伝的アルゴリズムに従う世代交代処理を実行することによって、次世代の複数個の選択パターンを示す複数個の染色体データCRを生成する処理である(図7)。この結果、遺伝的アルゴリズムを用いて、高い正解率GRを実現できる適切な使用マップUmを決定することができる。遺伝的アルゴリズムは、生物の進化の仕組みを利用して効率的に組み合わせ最適化問題の最適解を探索できる。例えば、全ての組み合わせを検討する場合と比較して、処理時間を大幅に短縮できる。したがって、検査処理に用いるべきN個未満の使用マップUmをより効率良く決定することができる。
 さらに、本実施例によれば、機械学習モデルDNは、それぞれが複数個の特徴マップfmを生成する複数個のレイヤLY1~LY4を備える。検査準備処理にて用いられるN個の特徴マップは、複数個のレイヤLY1~LY4のうちの一部のレイヤLY1~LY3によって生成される特徴マップfm1~fm3である(図3(B))。この結果、使用マップUmの候補となるN個の特徴マップfmの個数を低減できるので、検査準備処理の処理時間を短くすることができる。
 さらに、本実施例によれば、正常な物体を示す複数個の正常画像データが機械学習モデルDNに入力されて(図4の110)、第2処理で用いられる使用マップUmが生成され、検証対象の物体を示す検証画像データが機械学習モデルDNに入力されて(図4のS120)、第3処理で用いられる使用マップUmが生成される。機械学習モデルDNは、複数個のレイヤLY1~LY3のそれぞれが畳込層を含むCNN(Convolutional Neural Network)を含む(図1)。異常度マップAMは、正常な物体と検査対象の物体との差異を示すデータである(図5(C))。第5処理にて算出される正解率GRは、検査対象の物体に含まれる異常を異常度マップAMに基づいて検出する検出精度を示す。正解率GRは、異常検出率とも言うことができる。この結果、物体の異常検出を行うためのN個未満の使用マップUmを適切に決定することができる。
 さらに、本実施例によれば、正常画像や検証画像の特徴マトリクスFMは、画像内の単位領域ごと(本実施例では、サイズ調整後の特徴マップfmの画素ごと)に算出される特徴ベクトルV(i、j)を含む。正常画像の特徴マトリクスFMの特徴ベクトルV(i、j)は、正常画像データや検証画像データを機械学習モデルDNに入力することによって得られるN個未満の使用マップUmのそれぞれに基づく値を要素とするベクトルである(図3(E))。異常度マップAMは、画像内の前記単位領域ごとに算出されるマハラノビス距離D(i、j)を示すマップである(図8(D))。マハラノビス距離は、複数個の正常画像と、1つの検証画像と、の差異を精度良く評価できる。したがって、選択パターン決定処理において、異常検出の正解率GRを精度良く評価できるので、物体の異常検出を行うためのN個未満の使用マップUmを適切に決定することができる。
 さらに、本実施例によれば、検証画像データは、正常画像データと、異常画像データと、を含む。CPU110は、正常画像データと異常画像データとのそれぞれについて生成される異常度マップAMに基づいて、正常画像データと異常画像データとのそれぞれによって示される画像が異常を含む異常画像であるか否かを判定し、判定の結果の正解率GRを評価値として算出する(図6のS260~S280)。この結果、検証画像を判定した結果の正解率GRに基づいて、各選択パターン(染色体データCR)を適切に評価できるので、物体の異常検出を行うためのN個未満の使用マップUmを適切に決定することができる。
 以上の説明から解るように、本実施例の正常画像データは、第1画像データの例であり、検証画像データは、第2画像データの例である。正常画像の特徴マトリクスFMは、第1特徴データの例であり、検証画像の特徴マトリクスFMは、第2特徴データの例である。異常度マップAMは、差異データの例であり、正解率GRは、評価値の例である。
B.変形例
(1)上記実施例では、検証画像が異常画像であるか正常画像であるかの判定結果の正解率GRが、評価値として算出されている。これに限らず、検証画像の複数個の画素が異常画素であるか否かの判定結果の正解率が評価値として算出されても良い。
 図10は、変形例の選択パターン決定処理の説明図である。この変形例では、各検証画像について、正解マップCMが予め準備される。正解マップCMは、異常度マップAMと同じサイズの画像データであり、正解マップCMの各画素が異常画素であるか正常画素であるか示す二値画像データである。正解マップCMは、例えば、検証画像と正解マップCMとを重ねて、オペレータが正解マップCMの各画素が異常画素であるか正常画素であるかを判定し、判定結果に基づいて正解マップCMの各画素の値を決定することによって作成される。図10(A)の正解マップCMは、検証画像が図5(B)の異常画像DI2である場合に作成される正解マップである。図10(A)の正解マップCMの異常部apcは、異常画素で構成される部分である。正解マップCMの異常部apcは、図5(B)の異常画像DI2のキズdf2に対応している。検証画像が図5(A)の正常画像DI1である場合に作成される正解マップ(図示省略)は、異常画素が含まれない正解マップである。
 この変形例の選択パターン決定処理では、図6のS270、S280に代えて、図10(B)のS270B、S280Bが実行される。変形例の選択パターン決定処理の他の処理は、図6と同一である。
 S270Bでは、CPU110は、異常度マップAMの画素ごとに異常画素であるか否かを判定する。具体的には、異常度が閾値TH1以上である画素は、異常画素であると判定され、異常度が閾値TH1未満である画素は、正常画素であると判定される。
 S280Bでは、CPU110は、正解マップCMを参照して、異常度マップAMの画素ごとの判定結果の正解率GRpを算出する。図5(C)の異常度マップAMは、上述したように理想的な異常度マップであるので、図7(A)の正解マップCMと完全に一致している。したがって、図5(C)の異常度マップAMには、誤って正常画素であると判定される画素はなく、誤って異常画素であると判定される画素はない。このために、図5(C)の異常度マップAMの正解率GRpは100%である。
 このように、CPU110は、異常度マップAMを用いて、検証画像内の単位領域(本変形例ではサイズ調整後の特徴マップfmの画素ごと)ごとに単位領域が異常を含むか否かを判定し、該判定の結果の正解率GRpを評価値として算出しても良い。この場合であっても、各選択パターン(染色体データCR)を適切に評価できるので、物体の異常検出を行うためのN個未満の使用マップUmを適切に決定することができる。
(2)上記実施例では、終了条件は、異常度マップAMが正常画像と検証画像との差異を示す程度の評価値である正解率GRの変化(上記実施例では差分ΔGR)が基準(例えば、閾値TH1)以下になることである。これに加えて、終了条件は、選択パターン決定処理にて選択される使用マップUmの個数の変化が基準(例えば、所定の閾値)以下になることを含んでも良い。正解率GRが収束した場合、すなわち、使用マップUmの個数がさらに増加しても正解率GRの増加が望めない場合には、選択される使用マップUmの個数も収束すると考えられる。
 終了条件は、正解率GRの変化が基準以下であり、かつ、選択される使用マップUmの個数の変化が基準以下であることであっても良い。終了条件は、正解率GRの変化が基準以下であること、または、選択される使用マップUmの個数の変化が基準以下であることであっても良い。また、終了条件は、選択される使用マップUmの個数の変化が基準以下であることのみであっても良い。終了条件が満たされた時点で、十分な正解率GRが得られていない場合には、例えば、使用する複数個の正常画像データを変更して、再度、検査準備処理を実行しても良い。
 また、終了条件は、正解率GRや使用マップUmの個数を用いない条件、例えば、所定回数だけ図6のS220~S280が繰り返されたことであっても良い。
(3)上記実施例では、進化計算アルゴリズムとして、遺伝的アルゴリズムが採用されている。これに代えて、進化計算アルゴリズムに属するアルゴリズムであって、遺伝的アルゴリズムとは異なるアルゴリズムが採用されても良い。例えば、選択パターンをツリー構造などのグラフ構造を用いて表現して組み合わせ最適化問題の解を探索する遺伝的プログラミングのアルゴリズムが採用されても良い。また、遺伝的アルゴリズムと同様に生物の進化の仕組みに着目して開発され、組み合わせ最適化問題の解の探索に利用できるアルゴリズムである進化戦略や進化的プログラミングが採用されても良い。
(4)上記実施例では、1回目の染色体データCRにて選択される使用マップUmの個数は、1である。これに代えて、1回目の染色体データCRにて選択される使用マップUmの個数は、2以上であっても良い。例えば、十分な正解率GRを得るために必要な使用マップUmの個数が所定数以上(例えば、数10以上)であることが経験的に解っている場合がある。この場合には、1回目の染色体データCRにて選択される使用マップUmの個数は、該所定数より十分に少ない任意の個数(例えば、2~10個)に設定されても良い。この場合には、選択パターン決定処理の処理時間を低減することができる。また、1回目の染色体データCRにて選択される使用マップUmの個数は、使用マップUmの候補となる特徴マップfmの個数Nの(1/5)よりも多くても良い。
(5)上記実施例では、使用マップUmの候補となるN個の特徴マップfmは、機械学習モデルDNのレイヤLY1~LY3から出力される特徴マップfmである。これに限らず、使用マップUmの候補となる特徴マップfmは、機械学習モデルDNによって出力される特徴マップfmの全部または他の一部であっても良い。例えば、使用マップUmの候補となる特徴マップfmは、レイヤLY1~LY4から出力される特徴マップfmであっても良いし、レイヤLY1、LY2から特徴マップfmであっても良い。
(6)上記実施例の具体的な構成は、一例であり、適宜に変更可能である。例えば、上記実施例では、正常画像と検証画像との差異を示す差異データとして、マハラノビス距離を要素とする異常度マップAMが採用されている。差異データは、他の手法を用いて生成されるデータであっても良い。例えば、差異データは、正常画像の平均ベクトルμ(i、j)と、検証画像の特徴ベクトルV(i、j)と、のユークリッド距離を要素とするマップであっても良い。
 また、上記実施例の機械学習モデルDNは、一例であり、これに限られない。例えば、機械学習モデルDNとしては、例えば、任意の画像識別モデル、例えば、VGG16、VGG19が用いられ得る。また、上記各実施例の機械学習モデルDNとしては、公知の学習済みのオートエンコーダ、例えば、通常のオートエンコーダ、VQ-VAE(Vector Quantized Variational Auto Encoder)、VAE(Variational Autoencoder)が用いられても良い。いずれの機械学習モデルDNが用いられる場合であっても、例えば、該モデルに含まれる1以上のレイヤによって出力される、N個の特徴マップfmを用いて、図6の選択パターン決定処理が実行されれば良い。
(7)上記実施例では、選択パターン決定処理によって使用マップUmを決定する手法は、異常検出のために用いられる。これに限らず、第1画像と第2画像との差異を評価する様々な処理に用いられ得る。例えば、監視カメラの画像において侵入者の有無を検出する処理や、現在と過去の画像との差異に基づいて物体の経時変化や動作を検出する処理などに、本実施例の手法が用いられてもよい。
(8)上記実施例では、検査準備処理と検査処理とは、図1の検査装置100によって実行されている。これに代えて、検査準備処理と検査処理とは、それぞれ、別の装置によって実行されても良い。この場合には、例えば、検査準備処理によって生成された正常画像のガウシアンマトリクスGMは、検査処理を実行する装置の記憶装置に格納される。また、検査準備処理と検査処理との全部または一部は、ネットワークを介して互いに通信可能な複数個の計算機(例えば、いわゆるクラウドサーバ)によって実行されても良い。また、検査処理を行うコンピュータプログラムと、検査準備処理を行うコンピュータプログラムとは、異なるコンピュータプログラムであっても良い。
(9)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、検査準備処理と検査処理との全部または一部は、ASIC(Application Specific Integrated Circuit)等のハードウェア回路によって実行されてよい。
 以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
 1000…検査システム,100…検査装置,110…CPU,120…揮発性記憶装置,130…不揮発性記憶装置,140…表示部,150…操作部,170…通信部,30…筐体,300…製品,400…撮像装置,AM…異常度マップ,CM…正解マップ,GM…ガウシアンマトリクス,FM…特徴マトリクス,CR…染色体データ,DI1…正常画像,DI2…異常画像,DN…機械学習モデル,Gd…遺伝子データ,LB…ラベル,PG…コンピュータプログラム,fm…特徴マップ

Claims (13)

  1.  入力される画像データに対して演算処理を実行してN個(Nは3以上の整数)の特徴マップを生成する学習済みの機械学習モデルを用いるコンピュータプログラムであって、
     複数個の選択パターンを決定する第1処理であって、複数個の前記選択パターンのそれぞれは、N個の特徴マップの中から、N個未満の使用マップを選択するパターンである、前記第1処理と、
     複数個の前記選択パターンのそれぞれについて、第1画像を示す第1画像データを前記機械学習モデルに入力することによって得られるN個未満の前記使用マップを用いて、前記第1画像の特徴を示す第1特徴データを生成する第2処理と、
     複数個の前記選択パターンのそれぞれについて、第2画像を示す第2画像データを前記機械学習モデルに入力することによって得られるN個未満の前記使用マップを用いて、前記第2画像の特徴を示す第2特徴データを生成する第3処理と、
     複数個の前記選択パターンのそれぞれについて、前記第1特徴データと前記第2特徴データとを用いて、前記第1画像と前記第2画像との差異を示すべき差異データを生成する第4処理と、
     複数個の前記選択パターンのそれぞれについて生成される前記差異データを用いて複数個の前記選択パターンの評価値を算出する第5処理と、
     をコンピュータに実行させ、
     前記第1処理と前記第2処理と前記第3処理と前記第4処理と前記第5処理と、を繰り返し実行することによって、画像間の差異を評価する特定処理に用いるべき特定の前記選択パターンを決定し、
     1回目の前記第1処理にて決定される複数個の前記選択パターンのそれぞれは、(1/2)N未満の前記使用マップを選択するパターンであり、
     (m+1)回目(mは1以上の整数)の前記第1処理は、m回目の前記第1処理にて決定される複数個の前記選択パターンと、m回目の前記第5処理にて算出される複数個の前記選択パターンの前記評価値と、を用いて、進化計算アルゴリズムに従う処理を実行することによって、複数個の前記選択パターンを決定する、コンピュータプログラム。
  2.  請求項1に記載のコンピュータプログラムであって、
     1回目の前記第1処理にて決定される複数個の前記選択パターンのそれぞれは、(N/5)未満の前記使用マップを選択するパターンである、コンピュータプログラム。
  3.  請求項2に記載のコンピュータプログラムであって、
     1回目の前記第1処理にて決定される複数個の前記選択パターンのそれぞれは、1個の前記使用マップを選択するパターンである、コンピュータプログラム。
  4.  請求項3に記載のコンピュータプログラムであって、
     1回目の前記第1処理にて決定される複数個の前記選択パターンは、1個の前記使用マップが互いに異なるN個の選択パターンである、コンピュータプログラム。
  5.  請求項1~4のいずれかに記載のコンピュータプログラムであって、
     前記第1処理と前記第2処理と前記第3処理と前記第4処理と前記第5処理との繰り返しは、所定の終了条件が満たされる場合に終了され、
     前記終了条件は、複数回の前記第5処理にて算出される前記評価値の変化に基づく条件である、コンピュータプログラム。
  6.  請求項5に記載のコンピュータプログラムであって、
     前記終了条件は、前記差異データが前記差異を示す程度の変化が基準以下になることと、前記選択パターンにて選択される前記使用マップの個数の変化が基準以下になることと、の少なくとも一方を含む、コンピュータプログラム。
  7.  請求項1~6のいずれかに記載のコンピュータプログラムであって、
     複数個の前記選択パターンのそれぞれは、N個の前記特徴マップと一対一で対応するN個の遺伝子データを含む染色体データであってN個の遺伝子データのそれぞれが前記使用マップであるか否かを示す値を有する前記染色体データによって表現され、
     前記進化計算アルゴリズムに従う処理は、m回目の第1処理にて決定される複数個の前記選択パターンを示す複数個の前記染色体データに対して、複数個の前記選択パターンの前記評価値を適応度として遺伝的アルゴリズムに従う世代交代処理を実行することによって、次世代の複数個の前記選択パターンを示す複数個の前記染色体データを生成する処理である、コンピュータプログラム。
  8.  請求項1~7のいずれかに記載のコンピュータプログラムであって、
     前記機械学習モデルは、それぞれが複数個の特徴マップを生成する複数個のレイヤを備え、
     N個の前記特徴マップは、複数個の前記レイヤのうちの一部のレイヤによって生成される特徴マップである、コンピュータプログラム。
  9.  請求項8に記載のコンピュータプログラムであって、
     前記第1画像データは、正常な物体を示す複数個の画像データであり、
     前記第2画像データは、検証対象の前記物体を示す画像データであり、
     前記機械学習モデルは、複数個の前記レイヤのそれぞれが畳込層を含むCNN(Convolutional Neural Network)を含み、
     前記差異データは、正常な前記物体と検査対象の前記物体との差異を示すデータであり、
     前記評価値は、検査対象の前記物体に含まれる異常を前記差異データに基づいて検出する検出精度を示す異常検出率である、コンピュータプログラム。
  10.  請求項9に記載のコンピュータプログラムであって、
     前記第1特徴データは、複数個の前記第1画像データのそれぞれについて、画像内の単位領域ごとに算出される第1特徴ベクトルを含み、
     前記第1特徴ベクトルは、前記第1画像データを前記機械学習モデルに入力することによって得られるN個未満の前記使用マップのそれぞれに基づく値を要素とするベクトルであり、
     前記第2特徴データは、前記複数個の第2画像データのそれぞれについて、画像内の単位領域ごとに算出される第2特徴ベクトルを含み、
     前記第2特徴ベクトルは、前記第2画像データを前記機械学習モデルに入力することによって得られるN個未満の前記使用マップのそれぞれに基づく値を要素とするベクトルであり、
     前記差異データは、画像内の前記単位領域ごとに算出されるマハラノビス距離を示すマップであり、
     前記マハラノビス距離は、複数個の前記第1特徴ベクトルの平均ベクトルおよび共分散行列と、前記第2特徴ベクトルと、を用いて算出される、コンピュータプログラム。
  11.  請求項9または10に記載のコンピュータプログラムであって、
     前記第2画像データは、正常な前記物体を示す正常画像データと、異常を含む前記物体を示す異常画像データと、を含み、
     前記第3処理は、前記正常画像データと前記異常画像データとのそれぞれについて、前記第2特徴データを生成し、
     前記第4処理は、前記正常画像データと前記異常画像データとのそれぞれについて、前記差異データを生成し、
     前記第5処理は、
      前記正常画像データと前記異常画像データとのそれぞれについて生成される前記差異データに基づいて、前記正常画像データと前記異常画像データとのそれぞれによって示される画像が異常を含むか否かを判定し、
      前記判定の結果の正解率を前記評価値として算出する、コンピュータプログラム。
  12.  請求項9または10に記載のコンピュータプログラムであって、
     前記第4処理は、前記第2画像内の単位領域ごとに異常度を示すデータを前記差異データとして生成し、
     前記第5処理は、
      前記差異データを用いて、前記第2画像内の単位領域ごとに前記単位領域が異常を含むか否かを判定し、
      前記判定の結果の正解率を前記評価値として算出する、コンピュータプログラム。
  13.  入力される画像データに対して演算処理を実行してN個(Nは3以上の整数)の特徴マップを生成する学習済みの機械学習モデルを用いる処理装置であって、
     複数個の選択パターンを決定する第1処理であって、複数個の前記選択パターンのそれぞれは、N個の特徴マップの中から、N個未満の使用マップを選択するパターンである、前記第1処理を実行する第1処理部と、
     複数個の前記選択パターンのそれぞれについて、第1画像を示す第1画像データを前記機械学習モデルに入力することによって得られるN個未満の前記使用マップを用いて、前記第1画像の特徴を示す第1特徴データを生成する第2処理を実行する第2処理部と、
     複数個の前記選択パターンのそれぞれについて、第2画像を示す第2画像データを前記機械学習モデルに入力することによって得られるN個未満の前記使用マップを用いて、前記第2画像の特徴を示す第2特徴データを生成する第3処理を実行する第3処理部と、
     複数個の前記選択パターンのそれぞれについて、前記第1特徴データと前記第2特徴データとを用いて、前記第1画像と前記第2画像との差異を示すべき差異データを生成する第4処理を実行する第4処理部と、
     複数個の前記選択パターンのそれぞれについて生成される前記差異データを用いて複数個の前記選択パターンの評価値を算出する第5処理を実行する第5処理部と、
     を備え、
     前記第1処理と前記第2処理と前記第3処理と前記第4処理と前記第5処理と、を繰り返し実行することによって、画像間の差異を評価する特定処理に用いるべき特定の前記選択パターンを決定し、
     1回目の前記第1処理にて決定される複数個の前記選択パターンのそれぞれは、(1/2)N未満の前記使用マップを選択するパターンであり、
     (m+1)回目(mは1以上の整数)の前記第1処理は、m回目の前記第1処理にて決定される複数個の前記選択パターンと、m回目の前記第5処理にて算出される複数個の前記選択パターンの前記評価値と、を用いて、進化計算アルゴリズムに従う処理を実行することによって、複数個の前記選択パターンを決定する、処理装置。
                                            
PCT/JP2023/004920 2022-02-18 2023-02-14 コンピュータプログラム、および、処理装置 WO2023157825A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022024329A JP2023121084A (ja) 2022-02-18 2022-02-18 コンピュータプログラム、および、処理装置
JP2022-024329 2022-02-18

Publications (1)

Publication Number Publication Date
WO2023157825A1 true WO2023157825A1 (ja) 2023-08-24

Family

ID=87578254

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/004920 WO2023157825A1 (ja) 2022-02-18 2023-02-14 コンピュータプログラム、および、処理装置

Country Status (2)

Country Link
JP (1) JP2023121084A (ja)
WO (1) WO2023157825A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016092779A1 (en) * 2014-12-12 2016-06-16 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and program
JP2020128877A (ja) * 2019-02-07 2020-08-27 株式会社明電舎 線状体の異常検出装置及び異常検出方法
JP2021105758A (ja) * 2019-12-26 2021-07-26 株式会社Rutilea 物品検査装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016092779A1 (en) * 2014-12-12 2016-06-16 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and program
JP2020128877A (ja) * 2019-02-07 2020-08-27 株式会社明電舎 線状体の異常検出装置及び異常検出方法
JP2021105758A (ja) * 2019-12-26 2021-07-26 株式会社Rutilea 物品検査装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SUGANUMA MASANORI, DAIKI TSUCHIYA, SHINICHI SHIRAKAWA, TOMOHARU NAGAO: "Image classification by hierarchical feature construction using genetic programming", IEICE TECHNICAL REPORT, vol. 116, no. 121, 27 June 2016 (2016-06-27), pages 25 - 30, XP093085784, ISSN: 0913-5685 *

Also Published As

Publication number Publication date
JP2023121084A (ja) 2023-08-30

Similar Documents

Publication Publication Date Title
US10769261B2 (en) User image verification
JP6669453B2 (ja) 画像分類装置および画像分類方法
US11468266B2 (en) Target identification in large image data
CN105427275A (zh) 大田环境麦穗计数方法及装置
US20170280130A1 (en) 2d video analysis for 3d modeling
CN110930356B (zh) 一种工业二维码无参考质量评估系统及方法
JP4728444B2 (ja) 異常領域検出装置および異常領域検出方法
JP6584250B2 (ja) 画像分類方法、分類器の構成方法および画像分類装置
CN111712769A (zh) 用于设定照明条件的方法、装置、系统及程序以及存储介质
US20180082115A1 (en) Methods of detecting moire artifacts
JP2009026326A (ja) 集団学習装置及び方法
CN116740728B (zh) 一种用于晶圆读码器动态获取方法和系统
Almero et al. Genetic algorithm-based dark channel prior parameters selection for single underwater image dehazing
CN116228684A (zh) 一种电池壳体外观缺陷图像处理方法及装置
CN115170548A (zh) 基于无监督学习的皮革缺陷自动检测方法及装置
CN115546139A (zh) 一种基于机器视觉的缺陷检测方法、装置及电子设备
WO2023157825A1 (ja) コンピュータプログラム、および、処理装置
CN115860026A (zh) 条码检测方法、装置、条码检测设备和可读存储介质
CN114119970B (zh) 目标跟踪方法及装置
Kuo et al. A labor-efficient gan-based model generation scheme for deep-learning defect inspection among dense beans in coffee industry
JP2022089430A (ja) 画像処理システム、及び画像処理プログラム
CN115471725A (zh) 用于异常检测的图像处理方法及设备和神经网络构建方法
CN112164035B (zh) 基于图像的缺陷检测方法、装置、电子设备及存储介质
WO2023074565A1 (ja) 機械学習モデル、コンピュータプログラム、および、方法
CN116310276B (zh) 目标检测方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23756350

Country of ref document: EP

Kind code of ref document: A1