This application claims the benefit under 35 U.S.C. §119 of the filing date of Australian Patent Application No 2009251147, filed 23 Dec. 2009, hereby incorporated by reference in its entirety as if fully set forth herein.
The current invention relates generally to the assessment of the quality of printed documents, and particularly, to a system for detection of print defects on the printed medium.
There is a general need for measuring the output quality of a printing system. The results from such quality measurement may be used to fine-tune and configure the printing system parameters for improved performance. Traditionally, this has been performed in an offline fashion through manual inspection of the output print from the print system.
With ever increasing printing speeds and volume, the need for automatic real-time detection of print defects to maintain print quality has increased. Timely identification of print defects can allow virtually immediate corrective action such as re-printing to be taken, which in turn reduces waste in paper and ink or toner, while improving efficiency.
A number of automatic print defect detection systems have been developed. In some arrangements, these involve the use of an image acquisition device such as a CCD (charge-coupled device) camera to capture a scan image of a document printout (also referred to as an output print), the scan image then being compared to an image (referred to as the original image) of the original source input document. Discrepancies identified during the comparison can be flagged as print defects.
It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.
Disclosed are arrangements, referred to as Adaptive Print Verification (APV) arrangements, which dynamically adapt a mathematical model of the print mechanism to the relevant group of operating conditions in which the print mechanism operates, in order to determine an expected output print, which can then be compared to the actual output print to thereby detect print errors.
According to a first aspect of the present invention, there is provided a method for detecting print errors by printing an input source document to form an output print, which is then digitised to form a scan image. A set of parameters modelling characteristics of the print mechanism is determined, these being dependent upon operating conditions of the print mechanism. The actual operating condition data for the print mechanism is then determined, enabling values for the parameters to be calculated. The source document is rendered, taking into account the parameter values, to form an expected digital representation, which is then compared with the scan image to detect the print errors.
According to another aspect of the present invention, there is provided an apparatus for implementing the aforementioned method.
According to another aspect of the present invention, there is provided a computer readable medium having recorded thereon a computer program for implementing the method described above.
Other aspects of the invention are also disclosed.
One or more embodiments of the invention will now be described with reference to the following drawings, in which:
Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
It is to be noted that the discussions contained in the “Background” section and that above relating to prior art arrangements relate to discussions of devices which may form public knowledge through their use. Such discussions should not be interpreted as a representation by the present inventor(s) or the patent applicant that such devices in any way form part of the common general knowledge in the art.
An output print 163 of a print process 130 will not, in general, precisely reflect the associated source input document 166. This is because the print process 130, through which the source input document 166 is processed to produce the output print 163, introduces some changes to the source input document 166 by virtue of the physical characteristics of a print engine 329 which performs the print process 130. Furthermore, if the source input document 166 is compared with a scan image 164 of the output print 163, the physical characteristics of the scan process 140 also contribute changes to the source input document 166. These (cumulative) changes are referred to as expected differences from the source input document 166 because these differences can be attributed to the physical characteristics of the various processes through which the source input document 166 passes in producing the output print 163. However, there may also be further differences between, for example, the scan image 164 and the source input document 166, which are not accounted for by consideration of the physical characteristics of the print engine 329 performing the printing process 130, and the scanner process 140. Such further differences are referred to as unexpected differences, and these are amenable to corrective action. The unexpected differences are also referred to as “print defects”.
The disclosed Adaptive Print Verification (APV) arrangements discriminate between expected and unexpected differences by dynamically adapting to the operating condition of the print system. By generating an “expected print result” in accordance with the operating conditions, it is possible to check that the output meets expectations with a reduced danger of falsely detecting an otherwise expected change as a defect (known as “false positives”).
In one APV arrangement, the output print 163 produced by a print process 130 of the print system from a source document 166 is scanned to produce a digital representation 164 (hereinafter referred to as a scan image) of the output print 163. In order to detect print errors in the output print 163, a set of parameters which model characteristics of the print mechanism of the print system are firstly determined, and values for these parameters are determined based on operating condition data for at least a part of the print system. This operating condition data may be determined from the print system itself or from other sources, such as for example, external sensors adapted to measure environmental parameters such as the humidity and/or the temperature in which the print system is located. The value associated with each of the parameters is used to generate, by modifying a render 160 of the source document 166, an expected digital representation of the output print 163. The expected digital representation takes into account the physical characteristics of the print system, thereby effectively compensating for output errors associated with operating conditions of the print system (these output errors being expected differences). The generated expected digital representation is then compared to the scan image 164 of the output print 163 in order to detect unexpected differences (ie differences not attributable to the physical characteristics of the print system) these being identified as print errors in the output of the print system.
In another APV arrangement, the operating condition data is used to determine a comparison threshold value, and the generated expected digital representation is compared to the scan image 164 of the output print 163 in accordance with this comparison threshold value to detect the unexpected differences (ie the print errors) in the output of the print system by compensating for output errors associated with operating conditions of the print system.
The central processing unit 301 communicates with the four image forming units 302-305 by a data bus 312. Using the data bus 312, the central processing unit 301 can receive data from, and issue instructions to, (a) the image forming units 302-305, as well as (b) an input paper feed mechanism 316, (c) an output visual display and input controls 320, and (d) a memory 323 used to store information needed by the printer 300 during its operation. The central processing unit 301 also has a link or interface 322 to a device 321 that acts as a source of data to print. The data source 321 may, for example, be a personal computer, the Internet, a Local Area Network (LAN), or a scanner, etc., from which the central processing unit 301 receives electronic information to be printed, this electronic information being the source document 166 in
When the central processing unit 301 receives data to be printed, instructions are sent to an input paper feed mechanism 316. The input paper feed mechanism 316 takes a sheet of paper 319 from an input paper tray 315, and places the sheet of paper 319 on a transfer belt 313. The transfer belt 313 moves in the direction of an arrow 314 (from right to left horizontally in
For the case of a fused toner printer, the sheet of paper 319 then passes by a fuser unit 324 that affixes the colourants to the sheet of the paper 319. The image forming units and the fusing unit are collectively known as a print engine 329. The output print 163 of the print engine 329 can then be checked by a print verification unit 330 (also referred to as a print defect detector system). The sheet of paper 319 is then passed to a paper output tray 317 by an output paper feed mechanism 318.
The printer architecture in
As seen in
The print system 2001 includes a display controller 2007 (which is an expanded depiction of the output visual display and input controls 320), which is connected to a video display 2014, such as a liquid crystal display (LCD) panel or the like. The display controller 2007 is configured for displaying graphical images on the video display 2014 in accordance with instructions received from the embedded controller 2002, to which the display controller 2007 is connected.
The print system 2001 also includes user input devices 2013 (which is an expanded depiction of the output visual display and input controls 320) which are typically formed by keys, a keypad or like controls. In some implementations, the user input devices 2013 may include a touch sensitive panel physically associated with the display 2014 to collectively form a touch-screen. Such a touch-screen may thus operate as one form of graphical user interface (GUI) as opposed to a prompt or menu driven GUI typically used with keypad-display combinations. Other forms of user input devices may also be used, such as a microphone (not illustrated) for voice commands or a joystick/thumb wheel (not illustrated) for ease of navigation about menus.
As seen in
The print system 2001 also has a communications interface 2008 to permit coupling of the print system 2001 to a computer or communications network 2020 via a connection 2021. The connection 2021 may be wired or wireless. For example, the connection 2021 may be radio frequency or optical. An example of a wired connection includes Ethernet. Further, an example of wireless connection includes Bluetooth™ type local interconnection, Wi-Fi (including protocols based on the standards of the IEEE 802.11 family), Infrared Data Association (IrDa) and the like. The source device 321 may, as in the present example, be connected to the processor 301 via the network 2020.
The print system 2001 is configured to perform some or all of the APV sub-processes in the process 100 in
The APV methods described hereinafter may be implemented using the embedded controller 2002, where the processes of
The APV software application programs 2033 may be functionally distributed among the functional elements in the print system 2001, as shown in the example in
The print system 2001 of
The software 2033 of the embedded controller 2002 is typically stored in the non-volatile ROM 2060 of the internal storage module 323. The software 2033 stored in the ROM 2060 can be updated when required from a computer readable medium. The software 2033 can be loaded into and executed by the processor 301. In some instances, the processor 301 may execute software instructions that are located in RAM 2070. Software instructions may be loaded into the RAM 2070 by the processor 301 initiating a copy of one or more code modules from ROM 2060 into RAM 2070. Alternatively, the software instructions of one or more code modules may be pre-installed in a non-volatile region of RAM 2070 by a manufacturer. After one or more code modules have been located in RAM 2070, the processor 301 may execute software instructions of the one or more code modules.
The APV application program 2033 is typically pre-installed and stored in the ROM 2060 by a manufacturer, prior to distribution of the print system 2001. However, in some instances, the application programs 2033 may be supplied to the user encoded on one or more CD-ROM (not shown) and read via the portable memory interface 2006 of
The second part of the APV application programs 2033 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 2014 of
The processor 301 typically includes a number of functional modules including a control unit (CU) 2051, an arithmetic logic unit (ALU) 2052 and a local or internal memory comprising a set of registers 2054 which typically contain atomic data elements 2056, 2057, along with internal buffer or cache memory 2055. One or more internal buses 2059 interconnect these functional modules. The processor 301 typically also has one or more interfaces 2058 for communicating with external devices via system bus 2081, using a connection 2061.
The APV application program 2033 includes a sequence of instructions 2062 though 2063 that may include conditional branch and loop instructions. The program 2033 may also include data, which is used in execution of the program 2033. This data may be stored as part of the instruction or in a separate location 2064 within the ROM 2060 or RAM 2070.
In general, the processor 301 is given a set of instructions, which are executed therein. This set of instructions may be organised into blocks, which perform specific tasks or handle specific events that occur in the print system 2001. Typically, the APV application program 2033 waits for events and subsequently executes the block of code associated with that event. Events may be triggered in response to input from a user, via the user input devices 2013 of
The execution of a sequence of instructions is achieved in the processor 301 by repeated application of a fetch-execute cycle. The control unit 2051 of the processor 301 maintains a register called the program counter, which contains the address in ROM 2060 or RAM 2070 of the next instruction to be executed. At the start of the fetch execute cycle, the contents of the memory address indexed by the program counter is loaded into the control unit 2051. The instruction thus loaded controls the subsequent operation of the processor 301, causing for example, data to be loaded from ROM memory 2060 into processor registers 2054, the contents of a register to be arithmetically combined with the contents of another register, the contents of a register to be written to the location stored in another register and so on. At the end of the fetch execute cycle the program counter is updated to point to the next instruction in the system program code. Depending on the instruction just executed this may involve incrementing the address contained in the program counter or loading the program counter with a new address in order to achieve a branch operation.
Each step or sub-process in the processes of the APV methods described below is associated with one or more segments of the application program 2033, and is performed by repeated execution of a fetch-execute cycle in the processor 301 or similar programmatic operation of other independent processor blocks in the print system 2001.
In a rendering step 120 the source document 166 is rendered using a rasteriser (under control of the CPU 301 executing the APV software application 2033), by processing the PDL, to generate a two-dimensional bitmap image 160 of the source is document 166. This two dimensional bitmap version 160 of the source document 166 is referred to as the original image 160 hereinafter. In addition, the rasteriser can generate alignment information (also referred to as alignment hints) that can take the form of a list 162 of regions of the original image 160 with intrinsic alignment structure (referred to as “alignable” regions hereinafter). The rendered original image 160 and the associated list of alignable regions 162 are temporarily stored in the printer memory 323.
Upon completing processing in the step 120, the rendered original image 160 is sent to a colour printer process 130. The colour printer process 130 uses the print engine 329, and produces the output print 163 by forming a visible image on a print medium such as the paper sheet 319 using the print engine 329. The rendered original image 160 in the image memory is transferred in synchronism with (a) a sync signal and clock signal (not shown) required for operating the print engine 329, and (b) a transfer request (not shown) of a specific colour component signal or the like, via the bus 312. The rendered original image 160 together with the generated alignment data 162 is also sent (a) to the memory 2104 of the print verification unit 330 via the bus 312 and (b) the print verification unit I/O unit 2105, for use in a subsequent defect detection process 150.
The output print 163 (which is on the paper sheet 319 in the described example) that is generated by the colour print process 130 is scanned by an image capturing process 140 using, for example, the image capture system 2108. The image capturing system 2108 may be a colour line scanner for real-time imaging and processing. However, any image capturing device that is capable of digitising and producing high quality digital copy of printouts can be used.
In one APV arrangement as depicted in
Returning to
The process of detecting Harris corners is described in the following example. Given an A4 size document rendered at 300 dpi, the rasteriser process in the step 120 is generates the original image 160 with an approximate size of 2500 by 3500 pixels. The first step for detecting Harris corners is to determine the gradient or spatial derivatives of a grey-scale version of the original image 160 in both x and y directions, denoted as Ix and Iy. In practice, this can be approximated by converting the rendered document 160 to greyscale and applying the Sobel operator to the greyscale result. To convert the original image 160 to greyscale, if the original image 160 is an RGB image, the following method [1] can be used:
I
G
=R
y11
I
r
+R
y12
I
g
+R
y13
I
b [1]
where IG is the greyscale output image, Ir, Ig, and Ib are the Red, Green, and Blue image components, and the reflectivity constants are defined as Ry11=0.2990, Ry12=0.5870, and Ry13=0.1140.
An 8-bit (0 to 255) encoded CMYK original image 160 can be similarly converted to greyscale using the following simple approximation [2]:
I
G
=R
y11MAX(255−Ic−Ik,0)+Ry12MAX(255−Im−Ik,0)+Ry13MAX(255−Iy−Ik,0) [2]
Other conversions may be used if a higher accuracy is required, although it is generally sufficient in this step to use a fast approximation.
The Sobel operators use the following kernels [3]:
Edge detection is performed with the following operations [4]:
I
x
=S
x
*I
G
I
y
=S
y
*I
G [4]
where * is the convolution operator, IG is the greyscale image data, Sx,Sy are the kernels defined above, and Ix and Iy are images containing the strength of the edge in the x and y direction respectively. From Ix and Iy, three images are produced as follows [5]:
Ixx=Ix∘Ix
Ixy=Ix∘Iy
Iyy=Iy∘Iy [4]
where ∘ is a pixel-wise multiplication.
This allows a local structure matrix A to be calculated over a neighbourhood around each pixel, using the following relationship [6]:
where w(x, y) is a windowing function for spatial averaging over the neighbourhood. In a preferred APV arrangement w(x, y) can be implemented as a Gaussian filter with a standard deviation of 10 pixels. The next step is to form a “cornerness” image by determining the minimum eigenvalue of the local structure matrix at each pixel location. The cornerness image is a 2D map of the likelihood that each pixel is a corner. A pixel is classified as a corner pixel if it is the local maximum (that is, has a higher cornerness value than its 8 neighbours).
A list of all the corner points detected, Ccorners, together with the strength (cornerness) at that point is created. The list of corner points, Ccorners, is further filtered by deleting points which are within S pixels from another, stronger, corner point. In the current APV arrangement, S=64 is used.
The list of accepted corners, Cnew, is output to the defect detection step 150 as a list 162 of alignable regions for use in image alignment. Each entry in the list can be described by a data structure comprising three data fields for storing the x-coordinate of the centre of the region (corresponding to the location of the corner), the y-coordinate of the centre of the region, and the corner strength of the region.
Alternatively, other suitable methods for determining feature points in the original image 160 such as Gradient Structure Tensor or Scale-Invariant Feature Transform (SIFT) can also be used.
In another APV arrangement, the original image 160 is represented as a multi-scale image pyramid in the step 120, prior to determining the alignable regions 162. The image pyramid is a hierarchical structure composed of a sequence of copies of the original image 160 in which both sample density and resolution are decreased in regular steps. This approach allows image alignment to be performed at different resolutions, providing an efficient and effective method for handling output prints 163 on different paper sizes or printout scan images 164 at different resolutions.
Processing of the step 150 begins at a scanline strip retrieval step 210 where the memory buffer 2104 is filled with a strip of image data from the scan image 164 fed by the scanning step 140. In one APV arrangement example, the scan strip is optionally downsampled in a downsampling step 230 using a separable Burt-Adelson filter to reduce the amount of data to be processed, to thereby output a scan strip 235 which is a strip of the scan image 164.
Around the same time, a strip of the original image 160 at the corresponding resolution and location as the scan strip, is obtained in an original image strip and alignment data retrieval step 220. Furthermore, the list of corner points 162 generated during rendering in the step 120 for image alignment is passed to the step 220. Once the corresponding original image strip has been extracted in the step 220, a model of the print and capture process (hereafter referred to as a “print/scan model” or merely as a “model”) is applied at a model application step 225, which is described in more detail in regard to
Examples of printer operating conditions include the output of a sensor that detects the type of paper 319 held in the input tray 315, the output of a sensor that monitors the drum age (the number of pages printed using the current drum (not shown) in the image forming units 302-305, also known as the drum's “click count”), the output of a sensor that monitors the level and age of toner/ink in the reservoirs 307-310, the output of a sensor that measures the internal humidity inside the print engine 329, the output of a sensor that measures the internal temperature in the print system 300, the time since the last page was printed (also known as idle time), the time since the machine last performed a self-calibration, pages printed since last service, and so on. These operating conditions are measured by a number of operating condition detectors for use in the print process or to aid service technicians, implemented using a combination of sensors (eg, a toner level sensor for toner level notification in each of the toner reservoirs 307-310, a paper type sensor, or a temperature and humidity sensor), a clock (eg, to measure the time since the last print), and internal counters (eg, the number of pages printed since the last service). For example, if the toner level sensor indicates a low level of toner, the printer model is adapted in such a way that the rendered digital document would have an appearance that resembles a printed page with faint colours. Each of the models will now be described in more detail.
In the dot-gain model step 810, the image is adjusted to account for dot-gain. Dot-gain is the process by which the size of printed dots appears larger (known as positive dot-gain) or smaller (known as negative dot-gain) than the ideal size. For example,
In one implementation for an electrophotographic process, an approximate dot-gain model can be implemented as a non-linear filter on each subtractive colour channel (eg, C/M/Y/K channels) as depicted in [7] as follows:
I
d
=I+M∘(I*s∘K)) [7]
where I is the original image 160 for the colour being processed, K is the dot-gain kernel for the colour being processed, M is a mask image, and Id is the resulting dot-gained image. The mask image M is defined as a linearly scaled version of the original image 160 such that 1 is white (no ink/toner), and 0 is full coverage of ink/toner. An example dot-gain kernel 1000 which can be used for K is shown in
where d is the drum lifetime, and t is the idle time. Drum lifetime d is a value ranging between 0 (brand new) and 1 (due for replacement). A typical method for measuring the d factor counts the number of pages that have been printed using the colour of the given drum, and divides this by the expected lifetime in pages. The idle time t of the machine, measured in days, is also included in this model.
This is only one possible model for dot-gain which utilises some of the operating conditions 840, and the nature of dot-gain is dependant on the construction of the print engine 329.
In another implementation for an ink-jet system, a set of dot-gain kernels can be pre-calculated for each type of paper, and a constant scale factor s=1.0 can be used. The dot-gain of inkjet print systems can vary strongly with paper type. Particularly, plain is paper can show a high dot gain due to ink wicking within the paper. Conversely, photo papers (which are often coated with a transparent ink-carrying layer) can show a small but consistent dot-gain due to shadows cast by the ink on the opaque paper surface. Such pre-calculated models can be stored in the output checker memory 2104 and accessed according to the type of paper in the input tray 315.
Returning to
I
m
=I
d
*G
σ [8A]
where Gσ is a Gaussian kernel with standard deviation σ, as is known in the art. In one implementation, σ is chosen as σ=0.7+0.2d. It is also possible to apply this filter more efficiently using known separable Gaussian filtering methods.
Turning to a following colour model application step 830, it is noted that the desired colours of a document can be changed considerably by the process of printing and scanning. In order to detect only the significant differences between two images, it is useful to attempt to match their colours using the colour model step 830. The colour model process assumes that the colour of the original image 160 changes in a way which can be approximated using a simple model. In one APV arrangement, it is assumed that the colour undergoes an affine transformation. However, other suitable models can be used, e.g., a gamma correction model, or an nth order polynomial model.
If the colour undergoes an affine transformation, in the case of a CMYK source image captured as RGB, it is transformed according to the following equation [9]:
where (Rpred, Gpred, Bpred) are the predicted RGB values of the original image 160 after printing in the step 130 and scanning in the step 140 according to this predefined model, (Corig, Morig, Yorig Korig) are the CMYK values of the original image 160, and A and C are the affine transformation parameters.
Similarly, an RGB source image captured in RGB undergoes a simpler transformation as follows [10]:
In one implementation example, the parameters A, B and C, D are chosen from a list of pre-determined options. The choice may be made based on the operating conditions of paper type of the page 319, toner/ink types installed in the reservoirs 307-310, and the time which has elapsed since the printer last performed a self-calibration. The parameters A, B and C, D may be pre-determined for the given paper and toner combinations using known colour calibration methods.
Once the colour model step 830 has been processed, the model step 225 is complete and the resulting image is the expected image strip 227.
Returning to
The purpose of this step 240 is to establish pixel-to-pixel correspondence between the scan strip 235 and the expected image strip 227 prior to a comparison process in a step 270. It is noted that in order to perform real-time print defect detection, a fast and accurate image alignment method is desirable. A block based correlation technique where correlation is performed for every block in a regular grid is inefficient. Furthermore, the block based correlation does not take into account whether or not a block contains image structure that is intrinsically alignable. Inclusion of unreliable correlation results can affect the overall image alignment accuracy. The present APV arrangement example overcomes the above disadvantages of the block based correlation by employing a sparse image alignment technique that accurately estimates a geometrical transformation between the images using alignable regions. The alignment process 240 will be described in greater detail with reference to
In a following step 250, a test is performed by the processor 2106 as directed by the APV ASIC 2107 and/or the APV software application program 2103 to determine if any geometric errors indicating a misalignment condition (eg. excessive shift, skew, etc) were detected in the step 240 (the details of this test are described below with reference to
As a result of processing in the step 240, the two image strips are accurately zo aligned with pixel-to-pixel correspondence. The aligned image strips are further processed by the step 270, performed by the processor 2106 as directed by the APV ASIC 2107 and/or the APV software application program 2103, which compares the contents of the scan strip 235 and the expected image strip 227 to locate and identify print defects. The step 270 will be described in greater detail with reference to
Following the step 270, a check is made at a decision step 280 to determine if any print defects were detected in the step 270. If the result of step 280 is No, processing continues at a step 290. Otherwise processing continues at the step 295. The step 290 determines if there are any new scanlines from the scanner 2108 from the step 140 to be processed. If the result of the step 290 is Yes, processing continues at the step 210 where the existing strip in the buffer is rolled. That is, the top 64 scanlines are removed and the rest of the scanlines in the buffer are moved up by 64 lines, with the final 64 lines replaced by the newly acquired scanlines from the step 140. If the result of the step 290 is No, processing continues at the step 295, where the defect map 165 is updated. The step 295 concludes the detect defects step 150, and control returns to the step 170 in
Returning to
When evaluating a colour printer, such as a CMYK printer 300, it is desirable to also measure the alignment of different colour channels. For example, the C (cyan) channel of an output print 163 printed by the cyan image forming unit 302 may be several pixels offset from other channels produced by units 303-305 due to mechanical inaccuracy in the printer. This misregistration leads to noticeable visual defects in the output print 163, namely visible lines of white between objects of different colour, or colour fringing that should not be present. Detecting such errors is an important property of a print defect to detection system.
Colour registration errors can be detected by comparing the relative spatial transformations between the colour channels of the scan strip 235 and those of the expected image strip 227. This is achieved by first converting the input strips from the RGB colour space to CMYK. The alignment process of the step 240 is then performed is between each of the C, M, Y and K channels of the scan strip 235 and those of the expected image strip 227 in order to produce an affine transformation for each of the C, M, Y and K channels. Each transformation shows the misregistration of the corresponding colour channel relative to the other colour channels. These transformations may be supplied to a field engineer to allow physical correction of the misregistration problems, or alternately, they may be input to the printer for use in a correction circuit that digitally corrects for the printer colour channel misregistration.
Returning to
In an alternative APV arrangement, binary correlation may be used in place of phase correlation.
The output of the phase correlations is a set of displacement vectors D(n) that represents the transformation that is required to map the pixels of the expected image strip 227 to the scan image strip 235.
Processing in the step 470 determines a transformation from the displacement vectors. In one APV arrangement example, the transformation is an affine transformation with a set of linear transform parameters (b11, b12, b21, b22, Δx, Δy), that best relates the displacement vectors in the Cartesian coordinate system as follows [11]:
where (xn, yn) are alignable region centres and ({tilde over (x)}n, {tilde over (y)}n) are affine transformed points.
In addition, the points (xn, yn) are displaced by the displacement vectors D(n) to give the displaced points ({circumflex over (x)}n, ŷn) as follows [12]:
({circumflex over (x)}n, ŷn)=(xn,yn)+D(n) [12]
The best fitting affine transformation is determined by minimising the error between the displaced coordinates, ({circumflex over (x)}n, ŷn), and the affine transformed points ({tilde over (x)}n, {tilde over (y)}n) by is changing the affine transform parameters (b11, b12, b21, b22, Δx, Δy). The error functional to be minimised is the Euclidean norm measure E as follows [13]:
The minimising solution is as follows [14]:
With the following relationships [15]:
And the relationships [16]:
|M|=detM=−SSxySxy+2SxSxySy−SxxSySy−SxSxSyy+SSxxSyy [16]
where the sums are carried out over all displacement vectors with a peak confidence greater than a threshold Pmin. In one implementation, Pmin is 2.0.
Following the step 470, the set of linear transform parameters (b11, b12, b21, b22, Δx, Δy) is examined in a geometric error detection step 480 to identify geometric errors such as rotation, scaling, shearing and translation. The set of linear transform parameters (b11, b12, b21,b22, Δx, Δy) when considered without the translation is a 2×2 matrix as follows [17]:
which can be decomposed into individual transformations assuming a particular order of transformations as follows [18]:
where scaling is defined as follows [19]:
where sx and sy specify the scale factor along the x-axis and y-axis, respectively.
Shearing is defined as follows [20]:
where hx and hy specify the shear factor along the x-axis and y-axis, respectively.
Rotation is defined as follows [21]:
where θ specifies the angle of rotation.
The parameters sx, sy, hy, and θ can be computed from the above matrix coefficients by the following [22-25]:
s
x=√{square root over (b112+b212)} [22]
In one APV arrangement example, the maximum allowable horizontal or vertical displacement magnitude Δmax is 4 pixels for images at 300 dpi, and the acceptable scale factor range (smin,smax) is (0.98, 1.02), the maximum allowable shear factor magnitude hmax is 0.01, and the maximum allowable angle of rotation is 0.1 degree.
However, it will be apparent to those skilled in the art that suitable alternative parameters may be used without departing from the scope and spirit of the APV arrangements, such as allowing for greater translation or rotation.
If the derived transformation obtained in the step 470 satisfies the above affine transformation criteria, then the scan strip 235 is deemed to be free of geometric errors in a following decision step 490, and processing continues at an expected image to scan space mapping step 4100. Otherwise processing moves to an end step 4110 where the step 240 terminates and the process 150 in
In the step 4100, the set of registration parameters is used to map the expected image strip 227 to the scan image space. In particular, the RGB value at coordinate (xs, ys) in the transformed image strip is the same as the RGB value at coordinate (x, y) in the expected image strip 227, where coordinate (x, y) is determined by an inverse of is the linear transformation represented by the registration parameters as follows [26]:
For coordinates (x, y) that do not correspond to pixel positions, an interpolation scheme (bi-linear interpolation in one arrangement) is used to calculate the RGB value for that position from neighbouring values. Following the step 4100, processing terminates at the step 4110, and the process 150 in
In an alternative APV arrangement, in the step 4100 the set of registration parameters is used to map the scan image strip 235 to the original image coordinate space. As a result of the mapping in the step 4100, the expected image strip 227 and the scan image strip 235 are aligned.
Processing in the step 270 operates in a tile raster order, in which tiles are made available for processing from top-to-bottom and left-to-right one at a time. Beginning in a step 510, a Q by Q pixel tile is selected from each of the two strips 502, 235 with the tiles having corresponding positions in the respective strips. The two tiles, namely an aligned expected image tile 514 and a scan tile 516 are then processed by a following step 520. In one APV arrangement example, Q is 32 pixels.
The purpose of the comparison performance step 520, performed by the processor 2106 as directed by the APV ASIC 2107 and/or the APV software application 2103, is to examine a printed region to identify print defects. The step 520 is described in greater detail with reference to
D
RGB(p,q)=√{square root over ((pr−qr)2+(pg−qg)2+(pb−qb)2)}{square root over ((pr−qr)2+(pg−qg)2+(pb−qb)2)}{square root over ((pr−qr)2+(pg−qg)2+(pb−qb)2)} [27]
where pr, pg, pb are the red, green, and blue components of pixel p, and likewise components qr,qg, qb for pixel q. In an alternate implementation, the distance metric used is a Delta E metric, as is known in the art as follows [28]:
D
ΔE(p,q)=√{square root over ((pL*−qL*)2+(pa*−qa*)2+(pb*−qb*)2)}{square root over ((pL*−qL*)2+(pa*−qa*)2+(pb*−qb*)2)}{square root over ((pL*−qL*)2+(pa*−qa*)2+(pb*−qb*)2)} [28]
Delta E distance is defined using the L*a*b* colour space, which has a known conversion from the sRGB colour space. For simplicity, it is possible to make the approximation that the RGB values provided by most capture devices (such as the scanner 2108) are sRGB values.
The minimum distance between a scan pixel ps, at location x,y and nearby pixels in the aligned expected image pe, is determined using the chosen metric D according to the following formula [29]:
where KB is roughly half the neighbourhood size. In one implementation, KB is chosen as 1 pixel, giving a 3×3 neighbourhood.
In a next tile defect map updating step 630, a tile defect map is updated at location x,y based on the calculated value of Dmin. A pixel is determined to be defective if the Dmin value of the pixel is greater than a certain threshold, Ddefect. In one implementation using DΔE to calculate Dmin, Ddefect is set as 10. In the next decision step 640, if there are any more pixels left to process in the scan tile, the process returns to the step 610. If no pixels are left to process, the method 520 is completed at the final step 650 and control returns to a step 530 in
Details of an alternate embodiment of the system are shown in
D
defect=10+10(MAX(dc,dm,dy,dk))+Dpaper [30]
Where dc, dm, dy, dk are the drum age factors for the cyan, magenta, yellow, and black drums respectively, and Dpaper is a correction factor for the type of paper in use. This correction factor may be determined for a given sample paper type by measuring the Delta-E value between a standard white office paper and the sample paper type using, for example, a spectrophotometer.
The arrangements described are applicable to the computer and data processing industries and particularly industries in which printing is an important element.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive.
Number | Date | Country | Kind |
---|---|---|---|
2009251147 | Dec 2009 | AU | national |