systems and methods are described that facilitate identifying objects in a document (e.g., a pdf document) for automatic image enhancement (AIE). A pdf document is “chunked” or segmented into chunks, and boundaries between chunks are identified as real or imaginary. Chunks sharing imaginary boundaries are combined, while real boundaries are retained, to generate “de-chunked” objects. These objects are then classified, and an AIE application is executed on objects meeting pre-specified classification criteria. In this manner, objects of r which AIE is not desired are not subjected to the AIE application, thereby saving time and processing resources associated with enhancing the document.
|
1. A method of identifying foreground image objects in portable document format (pdf) documents for automatic image enhancement (AIE) comprising: segmenting objects in a pdf document into a plurality of chunks; analyzing boundaries between pairs of the plurality of chunks to determine whether each boundary of said boundaries is real or imaginary; de-chunking the objects by retaining real boundaries and combining chunks that share an imaginary boundary; and classifying the de-chunked objects to identify objects for AIE processing, wherein a boundary shared by at least two of said objects is defined as a real boundary.
19. An apparatus for selectively enhancing images in a portable document format (pdf) document, comprising: means for segmenting objects in a pdf document into a plurality of chunks; means for analyzing boundaries between pairs of the plurality of chunks to determine whether each boundary is real or imaginary; means for de-chunking the objects by retaining real boundaries and combining chunks that share an imaginary boundary, wherein a boundary shared by at least two of said objects is defined as a real boundary; means for classifying the de-chunked objects to identify objects for AIE processing and means for executing an automatic image enhancement (AIE) application on the identified objects.
10. A selective image enhancement system for portable document format (pdf) documents, comprising: a memory that stores a pdf document; and a processor that: executes chunk generation instructions stored in the memory to segment pdf objects into a plurality of chunks; generates a chunk id map, a chunk class map, and an image bitmap; executes a boundary classifier that determines whether boundaries between pairs of chunks are real or imaginary; executes chunk clustering instructions to combine chunks that share an imaginary boundary and retain real boundaries that define the pdf objects; executes an object classifier that classifies objects into different classes; wherein a boundary shared by at least two of said objects is defined as a real boundary, and identifies objects for automatic image enhancement (AIE) as a function of object class.
2. The method of
3. The method of
4. The method of
5. The method of
7. The method of
8. The method of
9. The method of
11. The system of
12. The system of
13. The system of
14. The system of
15. The system of
16. The system of
17. The system of
18. The system of
20. The apparatus of
21. The apparatus of
|
The subject application relates to image enhancement in a scanning or printing system. While the systems and methods described herein relate to image enhancement of portable document format (PDF) documents, it will be appreciated that the described techniques may find application in other printing systems, other image processing applications, and/or other scanning systems.
The use of automatic image enhancement (AIE) techniques in customer environments has exposed PDF workflow related problems that, at a generalized level, have a deleterious impact on the capabilities of print environment management software packages. These problems are common in end-user created PDF documents.
End-user created PDFs may be correct in the sense of describing the desired printed image with the PDF specification, but simultaneously incorrect in the sense of not codifying appropriate relationships between objects, thereby precluding comprehension of these relationships by systems processing the PDFs. As a result, sophisticated processing modules inside print environment management software packages, such as AIE, have incomplete PDF encoding to steer processing and are not aware of these relationships, which in turn leads to incorrect assumptions and decisions. This can result in gross image defects and artifacts.
The distinction between “PDF construct” and “human recognition” is gaining more and more relevance for printer/scanner manufacturers. Accordingly, more and more processing is required on the PDF components in order to maximize quality. Even more importantly, the processing has to be done in a fully automated, lights-out, manner.
Attempts to improve AIE for PDF documents have dealt exclusively with bitmaps (i.e., images, but not graphics). In a document containing both images and graphics, the graphical objects may touch each other. They may also touch image bitmaps. Conventional systems do not determine if the touching objects, including graphical objects, should be processed together or separately. Rather the bitmaps are stitched together based mainly on configuration conditions. Specifically, each bitmap needs to be rectangular, and so does the resulting stitched bitmap. Such systems are not capable of addressing non-rectangular objects (including non-rectangle images). Moreover, color consistency (e.g., whether the touching objects have similar color along the boundary) is not assessed. As a result, these systems stitch all objects into one large bitmap, which is undesirable. Moreover, these techniques stitch together objects that happen to have the same width and are neighboring each other.
Accordingly, there is an unmet need for systems and/or methods that facilitate mitigating problems associated with end-user generated PDFs with regard to AIE and object optimized rendering techniques while overcoming the aforementioned deficiencies.
In accordance with various aspects described herein, systems and methods are described that facilitate PDF de-chunking and object classification. For example, a method of identifying foreground image objects in portable document format (PDF) documents for automatic image enhancement (AIE) comprises segmenting objects in a PDF document into a plurality of chunks, analyzing boundaries between pairs of chunks to determine whether each boundary is real or imaginary, de-chunking the objects by retaining real boundaries and combining chunks that share an imaginary boundary, and classifying de-chunked objects to identify objects for AIE processing.
According to another feature described herein, a selective image enhancement system for portable document format (PDF) documents comprises a memory that stores a PDF document, and a processor that executes chunk generation instructions stored in the memory to segment PDF objects into a plurality of chunks. The processor further generates a chunk ID map, a chunk class map, and an image bitmap, and executes a boundary classifier that determines whether boundaries between pairs of chunks are real or imaginary. Additionally, the processor executes chunk clustering instructions to combine chunks that share an imaginary boundaries and retain real boundaries that define the PDF objects, executes an object classifier that classifies objects into different classes, and identifies objects for automatic image enhancement (AIE) as a function of object class.
Yet another feature relates to an apparatus for selectively enhancing images in a portable document format (PDF) document, comprising means for segmenting objects in a PDF document into a plurality of chunks, means for analyzing boundaries between pairs of chunks to determine whether each boundary is real or imaginary, and means for de-chunking the objects by retaining real boundaries and combining chunks that share an imaginary boundary. The apparatus further comprises means for classifying de-chunked objects to identify objects for AIE processing, and means for executing an automatic image enhancement (AIE) application on the identified objects.
The file of this patent contains at least one drawing executed in color. Copies of this patent with color drawing(s) will be provided by the Patent and Trademark Office upon request and payment of the necessary fee.
In accordance with various features described herein, systems and methods are described that facilitate image “de-chunking” or parsing, and classification in PDF documents. With reference to
At 12, the objects are classified as background or foreground, graphics or images, small or normal sized, etc. According to an example, each identified object size is compared to a predetermined object size, and, if the object size is below the predetermined threshold size, the object is classified as “small.” In one embodiment, the predetermined size is a function of a number of pixels in the object. In another embodiment, the predetermined threshold size is a function of the dimensions of the object (e.g., length, width, surface area, etc.).
The distinction between graphics and images can be made, for instance, by examining the chunks that compose the object. An object whose members are all IMAGE is classified as IMAGE, and an object whose members are all GRAPHICS is classified as GRAPHICS. Objects whose members include both IMAGE and GRAPHICS members are classified as MIXED. An object whose height and width (or surface area, or some other suitable metric(s)) do not exceed a predetermined threshold T4 is considered as SMALL.
The distinction between background and foreground objects can be made, for instance, by evaluating data seams at object boundaries, determining whether one object overlays another, etc.
At 14, objects that are determined to be foreground image objects of normal size, or foreground mixed objects of normal size, are identified for AIE processing. Objects that are classified as one or more of graphic objects, small objects, and/or background objects need not be subjected to AIE processing, which saves computational resources and time and prevents introducing artifacts. At 16, an AIE algorithm is executed on the identified objects.
The system 30 includes a processor 32 that executes, and a memory 34 that stores, computer-executable instructions and information for performing the various actions described herein with regard to PDF de-chunking and object classification. The system further optionally comprises a scanner/printer device 36 that scans hard copies of documents to generate PDF documents 38 or another suitable type of document. In another embodiment, the PDF documents 38 are generated (e.g., converted) from electronic documents by the processor 32 using a conversion application and stored to memory 34.
The de-chunking technique employed by the processor 32 comprises three procedures: chunk generation, boundary classification, and chunk clustering or de-chunking. The processor 32 decomposes the PDF documents 38 and executes a chunk generator component 40 (e.g., an algorithm or computer-executable instructions) to generate three bitmaps: a chunk identity (ID) map 42, a chunk class map 44, and an image bitmap 46.
In one embodiment, the image bitmap 46 is what normally results when a page is rendered. The image bitmap 46 has a width and height as indicated by values in the page description that control the page size. The dimensions of the image bitmap 46 (e.g., widths, heights, etc.) are determined by the page description and the resolution at which the page is rendered.
The chunk ID map 42 indicates the order in which objects are painted (e.g., printed or rendered) on the page with respect to a page display list (e.g., a content stream). Objects appearing early in the display list may be painted over by succeeding objects in the display list. One or more pixels in the chunk ID map may share a common ID value. To resolve ambiguity between such pixels, the chunk ID map 42 has the same width and height as the image bitmap 46 so that each bitmap pixel has a known chunk ID.
The chunk class map 44 indicates source object type for each pixel in the image bit map 46. Object types may be TEXT, PICTURE (including PDF raster), GRAPHICS (including PDF stroke, fill objects) etc. The TEXT objects may be discarded in the further analysis. The chunk class map 44 has the same width and height as the image bit map 46 so that the source object type and source object colorspace are known for each bitmap pixel.
From these three bitmaps, the boundaries between two touching chunks are identified and classified as real or imaginary by a boundary classifier 48 that is executed by the processor 32. Chunks that touch each other without a real boundary are merged into an object.
According to an example, if two chunks are generated from one object due to PDF generation, sudden changes are not expected when crossing their common boundary. Conversely, if the chunks originated from two objects, it is highly likely that there exists an edge (e.g., a data seam) between the two chunks. However, the above observations are only valid in a statistical sense, and hence may not always be true. In addition, noise and texture existing in the images, as well as edges in the vicinity of the boundary, may also contribute to ambiguity during boundary classification.
To resolve such ambiguity, a multi-resolution approach is adopted. In one embodiment, color differences are compared across the boundary at a low resolution, which is not sensitive to noise and texture. Edge location is detected at a high resolution, which provides spatial accuracy. A real boundary is declared only if both tests are positive. In addition, classification decision thresholds are adapted to a local noise level as well as chunk classes. The algorithm executed by the processor 32 is described more in detail as follows.
A “strength” is determined for each boundary pixel in the image. The boundary pixel (m,n) is defined to be a pixel with an ID such that either ID(m,n)≠ID(m+1,n) (for a vertical boundary), or ID(m,n)≠ID(m,n+1) (for a horizontal boundary), where ID(m,n) is the chunk ID of the boundary pixel. The decision is made at two resolutions: at the low resolution, the average colors of the neighboring areas are compared. More specifically, two windows are established at both sides of the boundary. The average colors in the windows, as well as the standard deviations of the L* components are calculated. The boundary is considered to be WEAK if the average color difference is smaller than a predetermined threshold T1, which is determined as a function of the chunk classes. As the graphics are usually almost noise free, T1 is much lower if either C(m,n)=GRAPHICS or C(m+1,n)=GRAPHICS (for a vertical boundary), or C(m,n+1)=GRAPHICS (for a horizontal boundary), where C(m,n) is the class of the boundary pixel (m,n) that is obtained from the class map. The threshold is higher if one of the pixels is classified as IMAGE. A further test at high resolution (e.g., pixel level) is performed if the window color difference exceeds the threshold T1. The color difference between (m,n) and (m+1,n) (for a vertical boundary), or between (m,n) and (m,n+1) (for a horizontal boundary) is compared to another predetermined threshold, T2. T2 is proportional to the local noise level, and is also class dependent.
In one embodiment, T2 is defined such that:
T2=a Min(σ1,ρ2)
where σ1 and σ2 are the standard deviations of L* components obtained for the windows, and a is a class-dependent factor (higher for IMAGE and lower for GRAPHICS). The strength for the boundary pixel is considered to be STRONG (or WEAK) if the color difference is higher (or lower) than T2.
The numbers of STRONG and WEAK boundary pixels are summed for the entire boundary between chunks i and j. If the number of STRONG pixels exceeds a predetermined percentage or predetermined threshold number T3, the boundary is considered real. Otherwise it is imaginary.
The processor executes a chunk clustering component 50 (e.g., an algorithm or set of computer-executable instructions to merge chunks into objects. In one example, the chunks are merged into objects according a procedure as described by the following pseudocode:
1.
Initialize chunk_classification [i] to −1, for i =1 to N, where N is the
number of chunks
2.
Initialize M (number of objects) to 0;
3.
For i=1 to N , do steps 4-22;
4.
If (chunk_classification[i] ≠ −1), goto step 3
5.
M = M+1; // start a new object
6.
chunk_classification [i] = M;
7.
K = 1;
8.
object[M]member[K] = i;
9.
No_new_member = TRUE;
10.
For j = 1 to N, do steps 11-18;
11.
If (chunk_classification[j] ≠ −1) goto step 10
12.
For k = 1 to K, do steps 13 -18;
13.
If (chunk [j] and chunk object[M]member[k] share an
imaginary boundary) do steps 14-18; // merge chunk j to
object M
14. chunk_classification[j] = M;
15. K = K+1;
16. object[M]member[K] = j;
17. No_new_member = FALSE;
18. goto step 10;
19.
if (No_new_member = TRUE) do steps 20-21; // found all
members for object M
20.
object[M]number_of_members = K;
21.
goto step 3;
22.
else goto step 9;//There are still new members for object M,
continue searching;
The above procedure yields an array “chunk_classification[i] for i=1 to N”, which specifies the object number the chunk is merged into. M is the number of objects. For each object m, a number “object[m]number_of_members” is specified, which contains the number of members for the object. An array “object[m]member” specifies the members of the object.
An object classifier 52 is executed to classify objects obtained from the above procedure as foreground or background, graphics or images or mixed, and small or normal sized. An object whose members are all IMAGE is classified as IMAGE, and an object whose members are all GRAPHICS is classified as GRAPHICS. Objects whose members include both IMAGE and GRAPHICS members are classified as MIXED. An object whose height and width (or surface area, or some other suitable metric(s)) do not exceed a predetermined threshold T4 is considered as SMALL.
In foreground/background classification, an object is classified to be the background if it satisfies two conditions: it has a large size (e.g. its height and width exceed a predetermined threshold T5); and it “contains” one or more other objects. The containment can be determined as follows: if the left border of object i is to the left side of the left border of object j, and the right border of object i is to the right side of the right border of object j, and the top border of object i is above the top border of object j, and the bottom border of object i is below the bottom border of object j, then object j is “contained” in object i.
In this manner, the system 30 identifies foreground image objects and mixed objects that exceed a predetermined size threshold T4, as suitable for AIE processing. The processor 32 then executes an AIE processing algorithm 54 to enhance these identified objects. Different AIE algorithms and/or parameters may be applied to image objects and mixed objects. AIE processing is not performed on objects that are non-image (e.g., graphics), below the size threshold T4, and/or background objects, thereby reducing AIE execution time, saving processing resources, and reducing image artifacts or defects that can occur when AIE is performed on such objects. The document can then be stored to memory 34, and/or printed, with the enhanced foreground images.
With regard to
When blocking or “splitting” images, a single input image is partitioned into multiple image objects inside the PDF specification.
In this manner, the described systems and methods group artificially generated chunks into more natural and reasonable objects while retaining the boundaries between the true objects.
It will be appreciated that various of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.
Fan, Zhigang, Farrell, Michael E., Eschbach, Reiner, Fuss, William A., Branciforte, Michael, Triplett, Roger L., Clark, Raymond J., Rumph, David E., Blurfrushan, Farzin
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5767978, | Jan 21 1997 | Xerox Corporation | Image segmentation system |
6411742, | May 16 2000 | Adobe Inc | Merging images to form a panoramic image |
7010152, | Jan 22 2002 | Canon Kabushiki Kaisha | Radiographic image composition and use |
7296257, | Aug 01 2002 | Timesys Corporation | Techniques for exception handling by rewriting dispatch table elements |
7420712, | May 28 2004 | Xerox Corporation | Systems and methods that alter electronic data based on availability of time |
7668351, | Jan 17 2003 | Kestrel Corporation | System and method for automation of morphological segmentation of bio-images |
8073263, | Jul 31 2006 | RICOH CO , LTD | Multi-classifier selection and monitoring for MMR-based image recognition |
20030185457, | |||
20040004641, | |||
20040008383, | |||
20050180628, | |||
20060023217, | |||
20060126932, | |||
20070103652, | |||
20070116366, | |||
20080199096, | |||
20080253622, | |||
20090013129, | |||
20090019246, | |||
20090177855, | |||
20090220120, | |||
20090290807, | |||
20100014776, | |||
20100021069, | |||
20100266214, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 10 2008 | FAN, ZHIGANG | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021271 | /0224 | |
Jul 10 2008 | CLARK, RAYMOND J | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021271 | /0224 | |
Jul 11 2008 | BRANCIFORTE, MICHAEL | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021271 | /0224 | |
Jul 11 2008 | FUSS, WILLIAM A | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021271 | /0224 | |
Jul 14 2008 | ESCHBACH, REINER | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021271 | /0224 | |
Jul 14 2008 | BLURFRUSHAN, FARZIN | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021271 | /0224 | |
Jul 15 2008 | FARRELL, MICHAEL E | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021271 | /0224 | |
Jul 16 2008 | TRIPLETT, ROGER L | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021271 | /0224 | |
Jul 20 2008 | RUMPH, DAVID E | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021271 | /0224 | |
Jul 22 2008 | Xerox Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jul 27 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 18 2021 | REM: Maintenance Fee Reminder Mailed. |
Apr 04 2022 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Feb 25 2017 | 4 years fee payment window open |
Aug 25 2017 | 6 months grace period start (w surcharge) |
Feb 25 2018 | patent expiry (for year 4) |
Feb 25 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 25 2021 | 8 years fee payment window open |
Aug 25 2021 | 6 months grace period start (w surcharge) |
Feb 25 2022 | patent expiry (for year 8) |
Feb 25 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 25 2025 | 12 years fee payment window open |
Aug 25 2025 | 6 months grace period start (w surcharge) |
Feb 25 2026 | patent expiry (for year 12) |
Feb 25 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |