Patent Description:
Entities with substantial printing demands typically use a production printer. A production printer is a high-speed printer used for volume printing, such as a continuous-forms printer that prints on a web of print media stored on a large roll. A production printer may include a localized print controller that manages the overall operation of the printer, and a marking engine (sometimes referred to as an "imaging engine" or a "print engine"). The marking engine includes one or more arrays of printheads.

Upon receiving a print job, the print controller rasterizes logical pages of the job (e.g., to create bitmaps representing each page of the job), and the marking engine operates individual printheads to mark the web based on the rasterized logical pages. Thus, the printer marks physical pages based on the digital information of the print job.

Each printhead includes many nozzles, and each nozzle may be utilized to print a different portion of a physical page of a print job. However, it is not uncommon for nozzles to become clogged, to experience jet-outs, or to encounter other issues that degrade overall print quality (e.g., printhead conditions). When one or more nozzles of a printhead eject ink in a manner that degrades print quality, it may be desirable to initiate maintenance actions on the print head. However, some degradations in print quality are visually acceptable to print shop operators, and do not result in a need for immediate maintenance.

Thus, print shop operators continue to experience a need for detecting printheads that are providing below-optimal print quality, and for determining whether or not a printhead with below-optimal print quality is in need of maintenance. <CIT> discloses a system enabling users/customers to receive an objective assessment of the performance of a printer. This is accomplished by comparing a quality score of an earlier-in-time image with a quality score of a later-in-time image. A processor analyzes each image based on several criteria and uses various image-analysis methods, to flag errors within an image. A numeric quality score, based on the number of errors, is provided to the user to objectively evaluate whether the printer has degraded or not. Thus, the user can objectively present an argument to a salesperson or manufacturer that the user is due a remedy. Thus, this document discloses the preamble of the independent claims <NUM>, <NUM> and <NUM>.

It is mentioned that isolation forests can be used for anomaly-detection techniques.

Embodiments described herein beneficially review print quality information for nozzles of a printhead, and then utilize an isolation forest to determine whether the degraded print quality has reached a point where maintenance should be performed on that printhead. By utilizing an isolation forest to identify nozzles that have a greatest amount of deviation from expected standards (e.g., a baseline level of performance, or the performance of other nozzles at the printer), the system is capable of rapidly detecting and reporting printheads with types of degraded print quality that are most likely to be noticeable. This beneficially enhances the ability of print shop operators to detect, and respond to, issues with print quality.

One embodiment is a system for identifying print quality at a printer. The system includes a memory that stores reference data for nozzles of a printer, and a controller. The controller is configured to acquire measurement data after operation of the nozzles, calculate differences between the reference data and the measurement data, apply the differences as an input to an isolation forest, operate the isolation forest to determine isolation values for the nozzles, identify nozzles having more than a threshold amount of deviation from the reference data based on the isolation values, and generate a report flagging the identified nozzles for maintenance.

A further embodiment is a non-transitory computer readable medium embodying programmed instructions which, when executed by a processor, are operable for performing a method of identifying print quality at a printer. The method includes storing reference data for nozzles of a printer, acquiring measurement data after operation of the nozzles, calculating differences between the reference data and the measurement data, applying the differences as an input to an isolation forest, operating the isolation forest to determine isolation values for the nozzles, identifying nozzles having more than a threshold amount of deviation from the reference data based on the isolation values, and generating a report flagging the identified nozzles for maintenance.

A further embodiment is a method for identifying print quality at a printer. The method includes storing reference data for nozzles of a printer, acquiring measurement data after operation of the nozzles, calculating differences between the reference data and the measurement data, applying the differences as an input to an isolation forest, operating the isolation forest to determine isolation values for the nozzles, identifying nozzles having more than a threshold amount of deviation from the reference data based on the isolation values, and generating a report flagging the identified nozzles for maintenance.

Other illustrative embodiments (e.g., methods and computer-readable media relating to the foregoing embodiments) may be described below.

Some embodiments of the present invention are now described, by way of example only, and with reference to the accompanying drawings.

<FIG> is a block diagram of a print quality detection system <NUM> in an illustrative embodiment. Print quality detection system <NUM> comprises any system, device, or component operable to review data for nozzles <NUM> of a printer <NUM>. In this embodiment, print quality detection system <NUM> has been enhanced to utilize an isolation forest in order in to select printheads or nozzles for receiving maintenance (e.g., cleaning, repair, re-alignment, replacement, compensation, etc.). In this embodiment, print quality detection system <NUM> includes print server <NUM>, which manages the operations of a printer <NUM> via a network <NUM>. The printer <NUM> marks print media <NUM> with a test pattern <NUM>, which is then imaged by an imaging device <NUM> for analysis. The print server <NUM> analyzes the image, and operates an isolation forest to identify nozzles <NUM> that are substantially deviated from their expected level of performance, and then flags corresponding printheads <NUM> for maintenance.

In this embodiment, print server <NUM> includes controller <NUM> and memory <NUM>. Controller <NUM> directs the operations of the print server <NUM>, for example by submitting print jobs, instructing printer <NUM> to print a test pattern <NUM>, instructing imaging device <NUM> to acquire an image of the test pattern <NUM>, and reviewing images taken by the imaging device <NUM> to determine print quality. Controller <NUM> may be implemented as custom circuitry, as a hardware processor executing programmed instructions, etc. Memory <NUM> may be implemented as Random Access Memory (RAM), a hard disk, a flash drive, and/or combinations thereof.

Memory <NUM> stores instructions for analyzing and interpreting images of test patterns <NUM> in order to determine print quality. In this embodiment, memory <NUM> includes isolation forest <NUM>, reference data <NUM> defining a baseline level of performance (e.g., print quality) for the printer <NUM>, and measurement data <NUM> defining the current level of print quality for the printer <NUM>. In one embodiment, the reference data <NUM> and the measurement data <NUM> measure a same set of variables/characteristics. In another embodiment, the reference data may correspond to a printer different than printer <NUM> with a technical benefit of allowing comparisons to achieve consistency between different printers.

The reference data <NUM> and measurement data <NUM> may comprise droplet data. As used herein, "droplet data" comprises data that quantifies characteristics (also referred to herein as "variables") of droplets <NUM> placed onto the page, and also includes data for locations where droplets <NUM> are intended for placement onto the page (e.g., in the event that a droplet is intended for ejection onto the page, but does not actually eject or reach the page). The characteristics may include X droplet position and Y droplet position (e.g., orthogonal coordinate positions) on the page, "color accuracy" (e.g., a quantifiable deviation from an intended color indicated by spectral analysis) or optical density (e.g., a quantifiable deviation from an intended optical density), and may even be reviewable to identify a number of alignment adjustment actions performed for a corresponding printhead or nozzle during an alignment sequence, a number of cleaning actions for a corresponding printhead or nozzle, etc. For example, droplet data for individual nozzles may be analyzed to detect a need for cleaning and alignment adjustment at a printhead <NUM>. Records of previously performed cleanings and alignments may then be made in a system log in memory <NUM>. Thus, historical detection of a need for cleaning and/or alignment adjustment may be found in droplet data, while a history of actual cleanings and/or alignment adjustments may be found in logs in memory <NUM>.

The reference data <NUM> and measurement data <NUM> may alternatively comprise information derived from, or initiated in response to evaluation of, droplet data. The reference data <NUM> and the measurement data <NUM> may comprise alignment data (e.g., indicating a number of alignment sequences, total actions, or actions per sequence, on a per-printhead basis) and/or cleaning data (e.g., indicating a number of cleaning actions per printhead) originating from printer <NUM>. Controller <NUM> uses these differences between reference data <NUM> and measurement data <NUM> as input to isolation forest <NUM> in order to draw conclusions regarding print performance for individual nozzles and/or print heads. In such embodiments, alignment data and/or cleaning data may be considered on a per-nozzle basis, or on a per-printhead basis (e.g., as derived from data for individual nozzles).

Print server <NUM> operates interface (I/F) <NUM> to communicate with printer <NUM> and imaging device <NUM> via network <NUM>. I/F <NUM> may comprise any suitable network interface, such as a wireless networking interface, ethernet interface, etc. Network <NUM> may comprise a private wired or wireless network (e.g., a Wireless Area Network (WAN), the Internet, etc..

Printer <NUM> may comprise a continuous-forms production printer or a cut-sheet printer. Printer <NUM> includes a printer controller <NUM>, which interprets print data within print jobs in order to generate instructions for ejecting ink onto print media <NUM>. For example, printer controller <NUM> may process data in a corresponding job ticket (e.g., a Job Definition Format (JDF) job ticket, and may rasterize print data in a Page Description Language (PDL) such as Portable Document Format (PDF) into one or more bitmaps for printing in one or more color planes.

Marking engine <NUM> includes multiple printheads <NUM>, and each printhead <NUM> includes multiple nozzles <NUM> (e.g., tens or hundreds of nozzles) which each controllably eject a droplet <NUM> of ink onto the print media <NUM>. In many embodiments, each printhead <NUM> marks a single color, and printheads <NUM> that mark the same color are grouped into color planes. In this embodiment, printer controller <NUM> instructs the marking engine <NUM> to print a test pattern <NUM> regularly, such as once per day, once per print job, or once per set number of pages. The test pattern <NUM> includes an arrangement of marks <NUM> created by droplets <NUM> from individual ones of the nozzles <NUM>. The test pattern <NUM> is designed so that the output from each nozzle <NUM> is capable of being independently distinguished from other nozzles <NUM> and quantified, when an image of the test pattern <NUM> is reviewed.

Imaging device <NUM> acquires images <NUM> of the test patterns <NUM> printed by the printer <NUM>, and may comprise an optical scanner, camera, or other device for generating an image <NUM> of each of the test patterns <NUM>, or portions thereof. In many embodiments, a resolution of the image <NUM> acquired by the imaging device <NUM> is set higher than a resolution of the test pattern <NUM>. This ensures that the test pattern <NUM> does not appear blurry within image <NUM>.

The particular arrangement, number, and configuration of components described herein is illustrative and non-limiting. By way of example, in further embodiments, reference data <NUM> is collected and stored on local hardware (e.g., a processor and memory) at printer <NUM>, and the inverse isolation scoring processes described herein with regard to <FIG> are processed on local hardware at printer <NUM> without network access.

Illustrative details of the operation of print quality detection system <NUM> will be discussed with regard to <FIG>. Assume, for this embodiment, that printer <NUM> has undergone an initial setup process, or is operating in what is considered an ideal or acceptable condition. That is, printer <NUM> is operating in a state which sets a baseline for print quality and performance.

<FIG> is a flowchart illustrating a method <NUM> for identifying print quality in an illustrative embodiment. The steps of method <NUM> are described with reference to print quality detection system <NUM> of <FIG>, but those skilled in the art will appreciate that method <NUM> may be performed in other systems. The steps of the flowcharts described herein are not all inclusive and may include other steps not shown. The steps described herein may also be performed in an alternative order.

In step <NUM>, controller <NUM> acquires reference data <NUM> for nozzles <NUM> of the printer <NUM>. In one embodiment, this comprises controller <NUM> instructing printer <NUM> to print one or more test patterns <NUM>, directing imaging device <NUM> to acquire images <NUM> of the test patterns <NUM>, analyzing the images <NUM> to associate droplets <NUM> with individual ones of nozzles <NUM> of the printer (e.g., droplet data may be mapped to corresponding nozzles or printheads according to print instructions of the printed test pattern) , determining characteristics (e.g., positions, shapes, colors, sizes, uniformity in optical density, etc.) of the droplets <NUM>, and storing the characteristics as reference data <NUM> in memory <NUM>. As used herein, a "characteristic" relating to droplet data comprises any quantifiable information relating to a specific droplet <NUM> of marking fluid applied by a nozzle <NUM>. In further embodiments, a characteristic comprises a count of actions relating to alignment and/or cleaning. In such embodiments, characteristics comprise quantifiable information relating to alignment or cleaning processes for the printer <NUM>. In further embodiments, controller <NUM> consults images <NUM> of one or more test patterns <NUM> that were printed by the printer <NUM> while the printer <NUM> was determined to be in a "best" or "reference" state for print quality, in order to acquire a set of reference data <NUM>.

The printer <NUM> continues to operate, for example, by printing incoming print jobs from print server <NUM>. After a predefined amount time (e.g., a predefined period of time such as a day, week, or month), or after a certain amount of production is performed (e.g., a number of linear feet or pages of print media, or a number of print jobs completed), it is desirable to determine whether or not the printer <NUM> is still printing at the desired level of print quality and performance.

In step <NUM>, controller <NUM> acquires measurement data <NUM> after operation of the nozzles <NUM>. In one embodiment, controller <NUM> directs the printer <NUM> to print another test pattern <NUM> for review. Controller <NUM> further analyzes one or more images <NUM> of the test pattern <NUM> in order to determine characteristics of the droplets <NUM> applied to the test pattern <NUM>, and/or to correlate individual droplets <NUM> with specific ones of nozzles <NUM>. In a further embodiment, measurement data <NUM> comprises a count of alignment actions and/or cleaning actions.

In step <NUM>, controller <NUM> calculates differences between the reference data <NUM> (which, e.g., define a baseline standard for droplet characteristics, such as droplet characteristics during a prior time period) and the measurement data <NUM> (which, e.g., defines droplet characteristics, such as current droplet characteristics). In one embodiment, controller <NUM> performs this operation on a characteristic-by-characteristic basis for each droplet <NUM>. In this manner, each characteristic of each droplet <NUM> in the measurement data <NUM> is capable of being quantifiably compared to each corresponding characteristic of each droplet <NUM> in the reference data <NUM>. The differences, for each characteristic for each droplet <NUM>, may therefore indicate how much each droplet <NUM> from each nozzle <NUM> the printer <NUM> has deviated from its baseline characteristics. In a further embodiment, the differences between the reference data <NUM> and the measurement data <NUM> comprise differences in counts of alignment actions and/or cleaning actions.

In step <NUM>, controller <NUM> applies the differences as input to an isolation forest <NUM> in memory <NUM>. In one embodiment, controller <NUM> operates the isolation forest <NUM> multiple times. Each time the isolation forest <NUM> is operated, controller <NUM> applies a new set of differences, for nozzles <NUM> that together correspond with a next one of printheads <NUM>. That is, the isolation forest <NUM> may be operated iteratively to score the nozzles <NUM> for one printhead <NUM> at a time. This enables controller <NUM> to quickly identify nozzles <NUM> within a printhead <NUM> that have notably deviated with respect to other nozzles <NUM> in the same printhead <NUM>, which may be particularly beneficial in helping to identify "twisted" printheads <NUM> having an angular deviation. In another embodiment, controller <NUM> applies differences for all nozzles <NUM>, across all printheads <NUM>, to the isolation forest <NUM>. In this scenario, the isolation forest <NUM> is operated to score the nozzles <NUM> for all printheads <NUM> at once.

In step <NUM>, the controller <NUM> operates the isolation forest <NUM> to determine isolation values for the nozzles <NUM>. The isolation forest <NUM> may be implemented as a program that takes N dimensions of input, wherein N is the number of characteristics for individual droplets <NUM> reported by both the reference data <NUM> and the measurement data <NUM>. The isolation forest <NUM> generates isolation values that indicate how likely a nozzle <NUM> is to be an outlier from other nozzles <NUM> in the group being processed by the isolation forest <NUM>. Thus, when nozzles <NUM> within a printhead <NUM> are being processed by the isolation forest <NUM>, those nozzles <NUM> are checked for deviation with respect to other nozzles <NUM> in the same printhead <NUM>. When nozzles <NUM> across the entirety of the printer <NUM> are being processed by the isolation forest <NUM>, then those nozzles <NUM> are checked for deviation with respect to all other nozzles <NUM> in the entire printer.

In one embodiment, the controller <NUM> operates the isolation forest <NUM> by iteratively selecting a variable (e.g., a characteristic) provided in the input, assigning a value to the variable, adding a partition at the value for the variable, and subdividing data points of the input into groups separated by partitions. The number of partitions added by the controller <NUM> before a single point of data (e.g., for a single droplet <NUM>) is "isolated" into a group consisting of only itself is known as an "isolation value. " Thus, a low isolation value indicates that a point of data is likely to be an outlier, while a high isolation value indicates that a point of data is not likely to be an outlier.

In step <NUM>, controller <NUM> identifies nozzles <NUM> having more than a threshold amount of deviation from the reference data <NUM> based on the isolation values. For example, the threshold may be defined as an isolation value, below which a corresponding nozzle <NUM> is considered in need of maintenance. In another example, the threshold may comprise an inverse isolation value, above which a nozzle <NUM> that ejected the droplet <NUM> is considered in need of maintenance. In one embodiment, the threshold comprises an inverse isolation value of one quarter, scaled on a range between zero and one.

In one embodiment, the isolation forest <NUM> is operated to determine isolation values for printheads <NUM> of the printer <NUM> based on isolation values for nozzles <NUM> contained by the printheads <NUM>. For example, an isolation value for a printhead <NUM> may be set to an average (e.g., mean) of isolation values for its nozzles <NUM>, median of isolation values for its nozzles <NUM>, a lowest isolation value for any of its nozzles <NUM>, etc..

In step <NUM>, controller <NUM> generates a report flagging the identified nozzles <NUM> for maintenance. In one embodiment, this comprises identifying printheads <NUM> having nozzles <NUM> identified for maintenance, and flagging those printheads <NUM> for maintenance. In a further embodiment, multiple thresholds exist, and the type of maintenance requested is adjusted based on which threshold is exceeded. For example, deviation greater than that defined by a first threshold may be reported as a need for cleaning and/or adjustment for a printhead <NUM>, while deviation greater than that defined by a second threshold may be reported as a need for replacement of the printhead <NUM>.

The controller <NUM> determines inverse isolation values for the nozzles <NUM> based on the isolation values. For example, controller <NUM> may re-scale the set of isolation values to a new range (e.g., a range between zero and one, or between zero and one hundred), and then invert the isolation values to create inverse isolation values. An inverse isolation value may be beneficial for print operators seeking to quantify print quality, as a larger inverse isolation value corresponds with a greater amount of deviation. Thus, controller <NUM> includes an aggregation of inverse isolation values in the report as a print quality metric.

Method <NUM> provides a technical benefit over prior methods for inspecting nozzles, because it rapidly identifies nozzles that are performing notably more poorly than their peers on the same printer <NUM> or printhead <NUM>. This in turn enables a print shop operator to rapidly identify and address nozzles <NUM> that are creating errors which are most likely to be noticeable, or that are subject to a great deal of cleaning and/or alignment. Furthermore, the use of an isolation forest <NUM> provides a technical benefit by emphasizing the presence of nozzles <NUM> having outlier amounts of deviation. Other statistical techniques, such as mean or median values, would mask the presence of such nozzles <NUM>.

<FIG> is a flowchart illustrating additional details of operating an isolation forest to identify print quality in an illustrative embodiment. Method <NUM> of <FIG> may be implemented, for example, in order to accomplish step <NUM> of method <NUM> of <FIG>.

Step <NUM> includes controller <NUM> selecting a variable. The variable selected is a dimension of input that varies between data points, and is indicative of print quality. For example, X deviation and Y deviation are variables, but a name or identifier for a nozzle <NUM> is not. In this case, a variable comprises any characteristic for which differences have been provided as input to the isolation forest <NUM>. This may be performed by controller <NUM> entirely randomly, as part of a weighted random process, etc. The number of variables that can be selected from is equal to the number of variables used as input to the isolation forest <NUM>.

Step <NUM> includes controller <NUM> assigning a value to the variable. This comprises choosing a value between the minimum and maximum value found for the variable in the input. For example, if data points used as input to the isolation forest range between values of two and five for the variable, then a value will be assigned between two and five.

Step <NUM> includes controller <NUM> adding a partition at the value for the variable. A partition has the potential to isolate data points in the input from each other. For example, a partition having a value of two for a variable may be used as an indicator to separate data points having a value of less than two from data points having a value of more than two for that variable.

Step <NUM> includes controller <NUM> subdividing the data points into groups separated by the partition. Controller <NUM> may subdivide data points into groups by determining whether each data point is above or below the value of the partition. This subdividing process takes into account all existing partitions. That is, controller <NUM> may subdivide groups that have already been created or separated by other partitions. As a part of this process, if a data point is subdivided into a group that consists only of itself, the controller <NUM> associates the current number of partitions with the data point. This number of partitions is the isolation value for the data point. This isolation value is then locked in place for the data point, and is not further altered for that data point as new partitions are added.

In step <NUM>, controller <NUM> determines whether each of the groups created by all of the partitions consist of a single data point. That is, if partitions have "fenced off" each data point in the input into a group of one, then the isolation forest <NUM> is ready to complete operation. Thus, in step <NUM>, controller <NUM> reports out a number of partitions for each data point that were used to fully isolate the data point into a group of one. If not all of the groups consist of a single data point, then processing returns to steps <NUM>-<NUM>, wherein another partition is added.

Utilizing an isolation forest <NUM> to identify outlier nozzles provides a substantial technical benefit, because isolation values for outliers are markedly different from isolation values for "typical" nozzles <NUM>. This enables a print shop operator to rapidly identify nozzles <NUM> that are not operating in an expected or normal manner. Hence, print shop operators are capable of responding swiftly in order to address such abnormalities (e.g., by cleaning or replacing a printhead <NUM>, etc.).

Stated in other words, isolation forest <NUM> advantageously does not compress or hide nozzles <NUM> that produce droplets <NUM> with outlier characteristics, but rather increase an amount of consideration provided to unusual data points relating to printheads <NUM> and nozzles <NUM>. This means that it becomes easier to detect low frequency, high degree abnormalities created by nozzles <NUM>.

<FIG> is a diagram <NUM> depicting operation of an isolation forest <NUM> on a small dataset in an illustrative embodiment. In this embodiment, the dataset includes data points <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Furthermore, in this embodiment, the dataset includes only two characteristics/variables: one for X deviation of a droplet <NUM> from a baseline, and one for Y deviation of a droplet <NUM> from a baseline. During operation of the isolation forest <NUM>, the controller <NUM> randomly determines whether to add a partition <NUM> for Y deviation, or a partition <NUM> for X deviation. The partition is placed at a random location between the highest and lowest amount of deviation within the dataset for the characteristic/variable. For example, if X deviation ranged between one and ten, then a partition <NUM> for X deviation may be placed at a random location between one and ten. Similarly, if Y deviation ranged between ten and fifty, then a partition <NUM> for Y deviation may be placed at a random location between ten and fifty.

After adding a new partition, controller <NUM> checks the dataset to determine if any data points have been "isolated" or otherwise separated from all other data points by partitions. If a data point has been separated from all other data points by partitions, then the controller <NUM> assigns the data point an isolation value equal to the number of partitions currently existing. The controller <NUM> then repeats adding partitions and checking for isolation until all data points have been isolated, or until a set number of partitions have been added.

In further embodiments, a larger or smaller number of characteristics/variables may be used as input to the isolation forest <NUM>. For example, characteristics that are highly indicative of changes in print quality may be used as input to the isolation forest <NUM>.

<FIG> is a table <NUM> depicting isolation values for data points in an illustrative embodiment. In this embodiment, the table <NUM> reports an isolation value for each data point. The isolation value is the number of randomly added partitions that had been added at the time that a corresponding data point was isolated. Data points that are outliers are separated from other data points by larger swaths of empty space, and therefore are isolated more quickly than data points which are clustered together. Hence, outlier data points have lower isolation values than data points clustered within the expected range of values for the dataset being considered.

<FIG> is a Graphical User Interface (GUI) <NUM> that reports print quality for a printer <NUM> in an illustrative embodiment. In this embodiment, controller <NUM> generates a GUI <NUM> after each alignment for a printer <NUM>. The report <NUM> of the GUI <NUM> includes an overall print quality metric <NUM>, which is reported as an inverse isolation value, ranged between zero and one hundred, and averaged across all printheads. The report <NUM> also includes a portion <NUM> which reports the nature of the reference data <NUM> used (e.g., whether the reference data <NUM> was from a prior calibration of the printer <NUM>, was determined from normal operations of the printer <NUM>, etc.), characteristics of the droplets <NUM> used as input to the isolation forest <NUM>, and a list of printheads <NUM> (and/or nozzles <NUM>) detected having more than a threshold amount of deviation from the reference data <NUM>, as determined by the isolation forest <NUM>.

<FIG> is a GUI <NUM> that depicts a number of alignment adjustment actions for printheads <NUM> per adjustment sequence. However, in further embodiments, a total number of alignment adjustment actions, or a total number of alignment adjustment sequences, are reported via GUI <NUM> to provide different insights into printhead performance. The number of alignment adjustment actions is organized by color plane <NUM>, and includes a block <NUM> for each printhead <NUM>. However, the count of alignment adjustments per adjustment sequence is normalized to the mean of other printheads <NUM> in the color plane <NUM>. Each block <NUM> is shaded based on whether the corresponding printhead <NUM> received a lesser, average, or greater number of alignment adjustment actions than other printheads <NUM> in the same color plane <NUM>. Specifically, blocks <NUM> represent printheads <NUM> having received a less than average number of alignment adjustment actions, blocks <NUM> represent printheads <NUM> having received an average number of alignment adjustment actions, and blocks <NUM> represent printheads <NUM> having received a greater than average number of alignment adjustment actions. In further embodiments, controller <NUM> applies the number of adjustment actions per printhead <NUM> as input to the isolation forest <NUM>, and shades the blocks <NUM> for corresponding printheads <NUM> based on inverse isolation values for those printheads <NUM>. In this manner, GUI <NUM> may provide data that complements data provided via the operation of method <NUM> of <FIG>.

Claim 1:
A system (<NUM>) for identifying print quality at a printer (<NUM>), the system (<NUM>) comprising:
a memory (<NUM>) that stores reference data for nozzles of a printer (<NUM>); and
a controller (<NUM>) configured to acquire measurement data after operation of the nozzles (<NUM>), calculate differences between the reference data and the measurement data, apply the differences as an input to an isolation forest, operate the isolation forest to determine isolation values for the nozzles (<NUM>), identify nozzles (<NUM>) having more than a threshold amount of deviation from the reference data based on the isolation values, and generate a report flagging the identified nozzles (<NUM>) for maintenance,
characterized in that
the controller is further configured to determine inverse isolation values for the nozzles (<NUM>) based on the isolation values, and to include an aggregation of the inverse isolation values in the report as a print quality metric.