The present disclosure relates to an inspection system capable of inspecting output results such as print products output in a print process, a method for controlling the inspection system, and a storage medium.
A print product output from a printing apparatus may have smudges due to, for example, color materials such as ink or toner adhering to unintended places. The print product may also have color losses because the color materials have not sufficiently adhered to places where an image is supposed to be formed and the colors appear lighter than intended at the places. Print defects such as smudges and color losses deteriorate the quality of the print product. In order to assure the quality of the print product, the print product is inspected for defects.
Visual inspection in which an inspector visually checks the print product for the presence or absence of defects requires a lot of time and cost. Thus, in recent years, there has been suggested an inspection system that automatically inspects the print product without depending on the visual check. Such an automatic inspection system uses an inspection method in which a printed image is scanned by a scanner and the scanned image is compared with a reference image. In the case of performing image inspection by comparing the scanned image and the reference image in this manner, it is important to perform high-accuracy alignment between the images because the alignment greatly affects the accuracy of the inspection.
As an alignment technique, there is known rigid alignment in which feature points are extracted and projection transformation is performed. However, the alignment by rigid transformation cannot correct local positional shifts due to irregular conveyance or stretch of paper. As a higher-accuracy alignment technique, there is known non-rigid alignment such as free-form deformations (FFD). Using non-rigid alignment enables correcting not only the shift and rotation of the image but also local scaling and local positional shifts. This achieves higher-accuracy alignment than the alignment by rigid transformation.
In the free-form alignment, a plurality of control points for controlling the shape of an image is arranged in a grid form on the image, and each of the control points is moved to deform the image. In the free-form alignment, to deform an inspection target image to align with a reference image, errors in the inspection target image are calculated and the positions of the control points are updated sequentially in directions where the errors become minimum.
Japanese Patent Application Laid-Open No. 2014-108349 discusses a technique for performing accurate, high-speed alignment using non-rigid alignment.
However, with the conventional alignment technique, if the pattern of an inspection target image and the pattern of a reference image do not overlap each other at the initial stage of alignment due to the degree of the shifts and the size of the pattern, the directions of the shifts may not be able to be calculated, so that the accuracy of the alignment may be lowered.
The present disclosure provides for improving accuracy of inspection of output results in a print process.
The present disclosure also provides a mechanism that enables alignment between a reference image and an inspection target image even if it is difficult to use a pattern or characters for the alignment between the images.
According to an aspect of the present disclosure, an inspection system that inspects an inspection image using a reference image includes an alignment unit configured to perform alignment between the reference image and the inspection image by sequentially using a plurality of ranges of interest that are different in size, and an inspection unit configured to inspect the reference image and the inspection image based on the alignment performed by the alignment unit.
Further features of the present disclosure will become apparent from the following description of embodiments with reference to the attached drawings.
Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. The following embodiments are not intended to limit the disclosure according to the claims. The embodiments include a plurality of features as described below. However, all of the features are not essential to the disclosure, and the features may be combined as appropriate. In the drawings, the same or similar components are denoted by the same reference numerals, and duplicated description thereof will be omitted.
A first embodiment of the present disclosure will be described in detail with reference to the drawings.
The server 101 generates print job data and transmits the generated print job data to the printing apparatus 102. The server 101 is communicably connected to a plurality of external apparatuses (not illustrated) via a network. The server 101 receives requests, such as a request for generating print job data, from these external apparatuses.
The printing apparatus 102 forms an image on a sheet based on the print job data received from the server 101. In the present embodiment, the printing apparatus 102 is configured to use an electrophotographic printing method. However, the present embodiment is not limited thereto. The printing apparatus 102 may be configured to use another printing method such as offset printing or inkjet printing. The printing apparatus 102 includes a sheet feed unit 103. Sheets are placed in advance by the user in the sheet feed unit 103. Based on the print job data received from the server 101, the printing apparatus 102 conveys the sheets placed in the sheet feed unit 103 one by one to a conveyance path 104, forms an image on one side or both sides of the sheet, and outputs the sheet with the image formed thereon, i.e., a print product to the inspection apparatus 105.
The inspection apparatus 105 includes a central processing unit (CPU) 106, a random access memory (RAM) 107, a read only memory (ROM) 108, a main storage unit 109, an image reading unit 110, a printing apparatus interface (I/F) 111, a general-purpose I/F 112, and a user interface (UI) panel 113. The CPU 106, the RAM 107, the ROM 108, the main storage unit 109, the image reading unit 110, the printing apparatus I/F 111, the general-purpose I/F 112, and the UI panel 113 are connected together via a main bus 114. The inspection apparatus 105 also includes a conveyance path 115 connected to the conveyance path 104 in the printing apparatus 102, and output trays 116 and 117.
The CPU 106 is a processor that controls an entire operation of the inspection apparatus 105. The RAM 107 functions as a main memory or a work area for the CPU 106. The ROM 108 stores a plurality of programs to be executed by the CPU 106. The main storage unit 109 stores applications to be executed by the CPU 106, data for use in image processing, and the like. The image reading unit 110 reads one side or both sides of a print product, which is an inspection target, output from the printing apparatus 102, and generates a scanned image of the print product. More specifically, the image reading unit 110 uses at least one reading sensor (not illustrated) provided near the conveyance path 115 to read one side or both sides of the print product being conveyed. The reading sensor may be provided only at a position corresponding to one side of the print product being conveyed, or may be provided at positions corresponding to both front and back sides of the print product being conveyed in order to simultaneously read both sides of the print product. In a configuration in which the reading sensor is provided only at the position corresponding to one side of the print product, the print product of which one side has been read is conveyed to a duplex conveyance path (not illustrated) in the conveyance path 115 and the print product is turned inside out, so that the reading sensor reads the other side.
The printing apparatus I/F 111 is connected to the printing apparatus 102 to synchronize processing timing of the print product between the printing apparatus 102 and the inspection apparatus 105, and also exchange operation status information with the printing apparatus 102. The general-purpose I/F 112 is a serial bus interface such as a Universal Serial Bus (USB) interface or Institute of Electrical and Electronics Engineers (IEEE) 1394 interface. For example, the user can connect a USB memory to the general-purpose I/F 112 to write data, such as a log, stored in the main storage unit 109 into the USB memory and carry the data, or to import data from the USB memory into the inspection apparatus 105. The UI panel 113 is a liquid crystal display (a display unit), for example. The UI panel 113 functions as a user interface of the inspection apparatus 105, and displays and presents the current status and settings to the user. The UI panel 113 is a touch panel-type liquid crystal display that can receive instructions from the user operating buttons displayed thereon.
In the inspection apparatus 105, the image reading unit 110 reads the print product, serving as the inspection target, output from the printing apparatus 102 and generates a scanned image of the print product (hereinafter referred to as an “inspection target image”). In the inspection apparatus 105, an image inspection module 205 in
The image acquisition module 201 acquires an inspection target image from the image reading unit 110. The image acquisition module 201 also acquires a reference image registered in advance as a correct answer image from the RAM 107 or the main storage unit 109. The inspection process selection module 202 selects a defect detection process based on information input by the user on a selection screen (not illustrated) displayed on the UI panel 113. On the selection screen, the user selects a defect type, for example. The inspection process selection module 202 selects a defect detection process for detecting the selected defect type from among a plurality of defect detection processes executable by the image inspection module 205. Examples of types of defects include a dot defect and a linear (streak) defect. The types of defects are not limited thereto and may include any type of defect such as image unevenness or a surficial defect. If no defect type is selected by the user, the inspection process selection module 202 selects the defect detection process set by default.
The alignment process module 203 executes an alignment process illustrated in
Referring to
In step S302, the CPU 106 causes the image acquisition module 201 to acquire a reference image from the RAM 107 or the main storage unit 109. In step S303, the CPU 106 causes the image acquisition module 201 to acquire an inspection target image from the image reading unit 110. Alternatively, in step S303, the CPU 106 may acquire an inspection target image generated in advance by the image reading unit 110 and stored in the main storage unit 109.
In step S304, the CPU 106 sets the defect detection process to be executed among at least one defect detection process selected by the inspection process selection module 202. For example, in step S304, the CPU 106 sets the defect detection process that is registered in advance as the process to be preferentially executed, or the defect detection process corresponding to the defect type selected first by the user.
In step S305, the CPU 106 executes the defect detection process illustrated in
If the CPU 106 determines that any of the selected defect detection processes has not been completed (NO in step S306), then in step S307, the CPU 106 sets the defect detection process to be executed among those having not been executed, and the inspection process returns to step S305.
If the CPU 106 determines that all the selected defect detection processes have been completed (YES in step S306), then in step S308, the CPU 106 causes the inspection result output module 206 to display, on the UI panel 113, a result display screen 401 illustrated in
Referring to
In step S503, the CPU 106 causes the image inspection module 205 to execute a filtering process for enhancing a specific shape on the difference image. For example,
If the defect detection process set in step S304 or S307 is the defect detection process for detecting linear defects in the sub-scanning direction, the filter illustrated in
In step S504, the CPU 106 causes the image inspection module 205 to execute a binarization process on the difference image subjected to the filtering process. Accordingly, an image (hereinafter referred to as a “binarized difference image”) is generated in which a pixel having a difference value exceeding the defect determination threshold has a pixel value of “1” and a pixel having a difference value equal to or lower than the defect determination threshold has a pixel value of “0”. In step S505, the CPU 106 causes the image inspection module 205 to use the binarized difference image to determine whether there is a pixel having a difference value exceeding the defect determination threshold.
If determining that there is no pixel having a difference value exceeding the defect determination threshold (NO in step S505), the CPU 106 determines that there is no defect and ends the defect detection process. If determining that there is a pixel having a difference value exceeding the defect determination threshold (YES in step S505), then in step S506, the CPU 106 causes the image inspection module 205 to store information about a detected defect in the RAM 107 or the main storage unit 109. More specifically, the CPU 106 causes the image inspection module 205 to store the type of the defect detection process in which the defect has been detected, and the coordinates of the defect in the RAM 107 or the main storage unit 109 in association with each other. The defect detection process is then ended.
The defect detection process in
In the present embodiment, the defect detection process for detecting dot defects and the defect detection process for detecting linear defects have been described as examples of the defect detection processes. However, the types of defect detection processes are not limited thereto. In other words, in the present embodiment, any defect detection process in which a defect desired by the user is detectable can be applied, and the types of defect detection processes are not particularly limited.
Referring to
In step S703, the alignment process module 203 sets the initial value of the number nh of control points for use in coordinate calculation, which is the value for determining a calculation range (described below). This value is set to be as large as possible for a reason to be described below. This is an example of setting the initial value for the calculation range.
In step S704, the alignment process module 203 sets the total value of update amounts, which is used to store amounts by which the control points are updated, to zero.
The alignment process module 203 repeats steps S705 to S708 (described below) to update the positions of the control points. The alignment process module 203 is an example of an update unit.
In step S705, the alignment process module 203 updates the pixels by using the initial value of the number nh of control points in
I′(x,y)=I(w(x,y,nh)) (1)
In the equation (1), w(x,y,nh) is a conversion equation for calculating the coordinates in the inspection target image I corresponding to the coordinates (x,y) in the aligned image I′. In the present embodiment, as the conversion equation, a free-form deformation (FFD) technique with a third B-spline is used. The range Dx,y,nh in
In step S706, the alignment process module 203 updates the positions of the control points. The update is performed using the following equation (2):
In the equation (2), μ denotes a weight coefficient, which may have a value such as 0.1 or may depend on the speed of updating the control points, and ∇c is expressed by the following equation (3):
In the equation (3), ∇c is the differential value of the sum of square of differences in pixel value between the aligned image I′ and the reference image T in the range Dl,m,nh of pixels near the control point at the coordinates pl,m in the aligned image I′ in
In other words, the equation (4) can be regarded as calculating the directions of the shifts of the pixels at the edge of the pattern in the range Dl,m,nh.
However, if the positions of patterns do not overlap due to large shifts or a small pattern size as in the case of patterns 1103 and 1104 in
Next, a concept of the present embodiment will be described with reference to
According to the present embodiment, in updating the control points, the range Dl,m,nh of pixels for use in calculation is initially set to a wide range. This is an example of a first range of interest, and will be described with reference to
In step S707, the alignment process module 203 determines whether to continue updating the positions of the pixels and the control points. In the present embodiment, this determination is made based on whether the maximum value of update amounts of the positions of all the control points is equal to or greater than a threshold. If the maximum value is equal to or greater than the threshold (YES in step S707), it can be determined that the control points still have room for moving, and thus the update is continued. If the maximum value is smaller than the threshold (NO in step S707), it can be determined that the control points can no longer move even when the positions are further updated, and thus the update is ended. Alternatively, the update may be continued the number of times specified in advance by the user.
If the update is determined to be continued, then in step S708, the alignment process module 203 adds the update amounts of all the control points to the total value of the update amounts. Then, the process returns to step S705 to update the pixels.
Upon completion of the update, in step S709, the alignment process module 203 (an update continuation unit) determines whether to change the calculation range (described below), based on whether the total value of the update amounts is equal to or greater than a threshold. If the total value is equal to or greater than the threshold (YES in step S709), the alignment process module 203 determines that there is still room for the update, and the process proceeds to step S710 to change the calculation range. If the total value is smaller than the threshold (NO in step S709), the alignment process module 203 determines that there is no longer room for the update, and does not change the calculation range. In this case, in step S711, the alignment process module 203 generates an aligned image using the updated control points, and the alignment process is ended.
In step S710, the alignment process module 203 (a calculation range change unit) narrows the range Dx,y,nh and the range Dl,m,nh in updating the pixels and the control points. In other words, this is an example of a second range of interest different from the first range of interest. If the calculation range is increased, a global positional shift can be determined, but the directions of local positional shifts near the control points are unable to be determined. On the other hand, narrowing the calculation range makes it possible to determine local positional shifts. Thus, in the present embodiment, first, global alignment is performed in a wide calculation range, so that patterns not overlapping are aligned to some degree. Next, the calculation range is narrowed to determine local positional shifts.
The wide calculation range is an example of the first range of interest with a first size, and the narrowed calculation range is an example of the second range of interest with a second size smaller than the first size.
However, if the calculation range is rapidly narrowed, insufficiently overlapping patterns are unable to be aligned. Thus, changing the calculation range and updating the control points are repeatedly performed to gradually narrow the calculation range. Accordingly, a gradual transition from global alignment to local alignment is made with increased accuracy. In the present embodiment, the calculation range is controlled by the number nh of control points. For example, each time the calculation range is changed, the number nh of control points is decreased to one fourth to halve one side of the calculation range. However, if the number nh of control points is 16, the calculation range is not changed. The process then returns to step S704 to set the total value of the update amounts to zero. The initial wide calculation range is an example of the first range of interest with the first size. The gradually narrowed calculation range is an example of the second range of interest with the second size smaller than the first size.
According to the above-described embodiment, first, a wide calculation range is set as an initial value to update the control points, so that global alignment is performed. Then, changing the calculation range to halve one side of the calculation range, and updating the control points are repeatedly performed. Accordingly, a gradual transition from global alignment to local alignment is made with increased accuracy. As a result, even if there are patterns not overlapping, a gradual transition from global alignment to local alignment is made, thereby enabling high-accuracy alignment.
In the above-described embodiment, whether to change the calculation range is determined based on whether the total value of the update amounts is equal to or greater than the threshold. However, because the calculation time is longer than that in general free-form alignment not involving changing the calculation range, the calculation range may be changed the number of times specified in advance by the user. For example, if the number of times of changing the calculation range is set to zero, the same alignment process as that in the general free-form alignment not involving changing the calculation range is performed, for example.
In the above-described embodiment, a case has been described where the number nh of control points is used as the value for determining the calculation range. However, the wider the calculation range, the longer the calculation time. In one or more embodiments, the calculation range can be determined by changing the number L×M of control points arranged on the inspection target image I (the scanned image of the print product). The calculation time taken to update the positions of the control points can be shortened by making the number of control points small at the initial stage.
In step S1302, the alignment process module 203 (an initial calculation range value setting unit) arranges Lh×Mh control points in a grid form on the inspection target image I (the scanned image of the print product). In step S1303, the alignment process module 203 sets the number nh (e.g., 16) of control points for use in coordinate calculation.
In step S1310, the alignment process module 203 (the calculation range change unit) changes the calculation range by changing the number Lh×Mh of control points arranged on the inspection target image I. Changing the number Lh×Mh of control points arranged on the inspection target image I changes the spacings between the control points. Thus, the calculation range can be changed even if the number nh of control points in the calculation range is fixed.
For example, each time this step is performed, each of the numbers Lh and Mh of control points is increased twice to halve one side of the calculation range. However, when the numbers Lh and Mh of control points are increased, the arrangement of the control points before the increase is to be carried on. Thus, the arrangement of the control points after the increase is determined using the following procedure. First, equally spaced grid points as many as the control points after the increase are prepared. Next, the grid points are moved using the control points before the increase. Then, the positions of the control points after the increase are calculated using z transformation or the like, based on the positions of the grid points before and after the movement.
According to the present embodiment, even if there are patterns not overlapping, a gradual transition from global alignment to local alignment is made, thereby enabling high-accuracy alignment. Further, in the present embodiment, the number of control points can be made small at the initial stage, so that it is possible to shorten the calculation time taken to update the positions of the control points.
As described above, the present embodiment discusses an inspection system that inspects an inspection target image (an inspection image) using a reference image and the inspection image. The inspection system 100 is an example of the inspection system.
As described above, the CPU 106 performs alignment between the reference image and the inspection image by sequentially using a plurality of ranges of interest that is different in size. Then, the CPU 106 inspects the reference image and the inspection image by performing the alignment.
The plurality of ranges of interest includes a first range of interest with a first size and a second range of interest with a second size smaller than the first size. The CPU 106 performs first alignment using the first range of interest. The CPU 106 further performs second alignment using the second range of interest after the first alignment. The CPU 106 performs the first alignment by updating positions of control points in the first range of interest. The CPU 106 performs the second alignment by updating positions of control points in the second range of interest after the first alignment. The control points are arranged in a grid form on the reference image and the inspection image. The CPU 106 updates the positions of the control points based on non-rigid deformation rules.
The image reading unit 110 has been described as an example of a reading unit that reads a print medium (a print product) to generate a scanned image of the print product. Examples of print media include paper, an electronic circuit board, a wood plate, and a plastic plate. The materials of print media are not limited to paper, and the shapes thereof are not limited to the square shape. Examples of print media also include a compact disc (CD) and a digital versatile disc (DVD). Print media may be any media on which patterns and/or characters are printed using an electrophotographic technique, an inkjet technique, or any other printing technique. The CPU 106 may set the scanned image as the inspection image and align the inspection image with the reference image.
The CPU 106 may perform the inspection based on the aligned image obtained by the CPU 106 and the reference image. The inspection may be performed by a CPU of another apparatus.
The CPU 106 sets, as the range of interest, an image range that is a calculation target range (a calculation range) in updating the positions of the plurality of control points. The CPU 106 performs (1) updating the positions of the plurality of control points in the range of interest, and (2) reducing the range of interest while maintaining the plurality of control points whose positions are updated.
The inspection system 100 may also have a mechanism that generates an aligned scanned image based on a plurality of control points including control points whose positions are updated by repeating the above (1) and (2). The CPU 106 may repeat the above (1) and (2) the number of times specified in advance by the user.
An embodiment of the present disclosure may be applied to a system including a plurality of devices such as a host computer, an interface device, a reader, and a printer, or may be applied to a single apparatus such as a copying machine or a facsimile machine.
According to an aspect of the present disclosure, it is possible to improve the accuracy of inspection of output results in a print process.
According to another aspect of the present disclosure, it is possible to provide a mechanism that enables alignment between a reference image and an inspection target image even if it is difficult to use a pattern or characters for the alignment between the images.
Embodiment(s) of the present disclosure can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
While the present disclosure has been described with reference to embodiments, it is to be understood that the disclosure is not limited to the disclosed embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of priority from Japanese Patent Application No. 2022-157627, filed Sep. 30, 2022, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2022-157627 | Sep 2022 | JP | national |