Patent Publication Number: US-9898808-B1

Title: Systems and methods for removing defects from images

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 15/213,554 filed on Jul. 19, 2016, and which is a continuation of U.S. patent application Ser. No. 13/917,256, filed on Jun. 13, 2013 now U.S. Pat. No. 9,401,011, which claims priority of U.S. Provisional Patent Application No. 61/659,303 filed on Jun. 13, 2012, each of which is incorporated herein by reference in their entirety. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to image processing, and more particularly, to computer methods and systems for removing defects from document images. 
     BACKGROUND OF THE INVENTION 
     The widespread adoption of multifunctional mobile communications devices by individuals and enterprises has made it possible to move many business functions into the mobile realm. For instance, banks provide users with mobile phone applications that allow the users to deposit checks by photographing the check and then sending the image to the bank through a wireless mobile communications interface. It would be worthwhile if users could use mobile technology to transfer other types of business documents as well. Unfortunately, this has proven difficult because images taken from mobile devices are not always of sufficient quality to allow recipients to extract data accurately therefrom. 
     Photographs taken from mobile devices typically have defects introduced by factors such as lighting, shadow, and the ability of the user to take a clean photo. Without correction, these defects negatively affect the accuracy of data extraction. Therefore, prior to performing data extraction, recipients of documents must remove defects. In the case of checks, this is not overly burdensome because checks are small and have a limited amount of information fields from which data requires extraction (e.g. name, account number, routing number, etc.) However, larger documents create problems of scale. Larger documents have more data to extract and correspondingly more defects to remove. Removing a large number of defects greatly increases the time and processing power needed to extract information from larger documents. This has made it impractical to use mobile devices as an efficient means of capturing documents for later information extraction. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       So that those having ordinary skill in the art, to which the present invention pertains, will more readily understand how to employ the novel system and methods of the present invention, certain illustrated embodiments thereof will be described in detail herein-below with reference to the drawings, wherein: 
         FIG. 1  is a system diagram for extracting and utilizing data from an image; 
         FIG. 2  is a flowchart that illustrates a process of extracting and utilizing data from an image; 
         FIG. 3  is a flowchart that illustrates removal of a defect from an image; 
         FIGS. 4A and 4B  illustrate preprocessing, including the extraction and dewarping of a document image; 
         FIGS. 5A and 5H  illustrate the division of the extracted and dewarped image of  FIG. 4  into bit planes; 
         FIGS. 6A and 6B  illustrate a target bit plane both before and after application of a Gaussian blur; and 
         FIGS. 7A and 7C  illustrate images of  FIGS. 4A and 4B  both before and after the application of the method of  FIG. 3  and the comparison thereof to a conventional defect removal technique. 
     
    
    
     A component or a feature that is common to more than one drawing is indicated with the same reference number in each of the drawings. 
     DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS 
     The present disclosure is directed to systems and methods for extracting and utilizing data from an image, including removal of defects from the image, in the below illustrated embodiments. It is to be appreciated the subject invention is described below more fully with reference to the accompanying drawings, in which an illustrated embodiment of the present invention is shown. The present invention is not limited in any way to the illustrated embodiment as the illustrated embodiment described below is merely exemplary of the invention, which can be embodied in various forms, as appreciated by one skilled in the art. Therefore, it is to be understood that any structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative for teaching one skilled in the art to variously employ the present invention. Furthermore, the terms and phrases used herein are not intended to be limiting but rather to provide an understandable description of the invention. 
     Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Although any methods and materials similar or equivalent to those described herein can also be used in the practice or testing of the present invention, exemplary methods and materials are now described. All publications mentioned herein are incorporated herein by reference to disclose and describe the methods and/or materials in connection with which the publications are cited. 
     It must be noted that as used herein and in the appended claims, the singular forms “a”, “an,” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a stimulus” includes a plurality of such stimuli and reference to “the signal” includes reference to one or more signals and equivalents thereof known to those skilled in the art, and so forth. 
     It is to be appreciated the embodiments of this invention as discussed below are preferably a software algorithm, program or code residing on computer useable medium having control logic for enabling execution on a machine having a computer processor. The machine typically includes memory storage configured to provide output from execution of the computer algorithm or program. As used herein, the term “software” is meant to be synonymous with any code or program that can be in a processor of a host computer, regardless of whether the implementation is in hardware, firmware or as a software computer product available on a disc, a memory storage device, or for download from a remote machine. The embodiments described herein include such software to implement the equations, relationships and algorithms described above. One skilled in the art will appreciate further features and advantages of the invention based on the above described embodiments. Accordingly, the invention is not to be limited by what has been particularly shown and described, except as indicated by the appended claims. All publications and references cited herein are expressly incorporated herein by reference in their entirety. 
     The methods described herein increase the efficiency of the removal of defects from document images by reorienting the conceptual framework within which an image is filtered. Rather than arbitrarily applying a filter to an entire landscape of a document image, the Applicants have created a methodology by which a document image is separated into regions of darkness and regions of light, or viewed alternatively, regions of darkness and regions of lack of darkness. Filtering is then adaptively applied to each region to remove defects. 
     In one embodiment, a computer implemented method for adaptive binarization to remove a defect from an image is provided. Image data is received. The image data is grouped in a plurality of components. In the plurality of components, at least a first data type and a second data type are identified. The plurality of components are processed to remove the at least one defect, wherein components belonging to the first data type are processed through employment of a first mode and components belonging to the second data type are processed through employment of a second mode. 
     In another embodiment, a computer implemented method to remove a defect from an image is provided. An image is received. The image is separated into a plurality of components. The components are analyzed to determine a target component, the target component being the image component that provides an optimal amount of information, relative to the image components, regarding the location of the defect in the image. The target component is analyzed to determine a positional boundary for the defect in the image. Binarization is performed on the image, wherein a first threshold values is used for data within the positional boundary and a second threshold value is used for data outside of the positional boundary. 
     In another embodiment, a computer implemented method to remove a defect from an image is provided. An image is received. Bit plane slicing is performed on the image to produce a plurality of bit planes. The bit planes are compared to identify a target bit plane, the target bit plane providing a positional boundary of the defect. Binarization is performed on the image to remove the defect. 
     In another embodiment, a computer implemented method to remove a defect from an image is provided. An image is received. The image is processed to separate the image into at least one defect region and at least one non-defect region. The image is binarized using a first threshold value within the defect region and a second threshold value within the non-defect region. 
     In another embodiment, a computer implemented method to remove a defect from an image is provided. Image data is received. The image data is processed to separate the image data into a plurality of image data subgroups. A subgroup identifying a defect in the image is selected. The subgroup identifying the defect is utilized to determine a position of the defect within the image data. The image data is binarized such that a first threshold value is used on data at the position and second threshold value is used elsewhere in the data. 
     Referring to  FIG. 1 , a hardware diagram depicting a system  100  in which the processes described herein can be executed is provided for exemplary purposes. In one example, system  100  includes at least one instance of an image capture device  102 . Exemplary embodiments of image capture device  102  include but are not limited to multifunction “smart phone”  104  including an image capture capability, such as a digital camera. In another example, the image capture device could be a stand-alone digital camera  106 . In another example, the image capture device  102  could be a standalone video camera (e.g. webcam)  108 . In another example, an image capture device  102  could be connected (e.g. wireless or wired) to a computing device, such as a tablet  110  or notebook  112  computer. 
     Referring further to  FIG. 1 , system  100  includes at least one instance of data extraction device  114 . Data extraction device  114  is a hardware and/or software component residing on a server or computer. In another example, data extraction device  114  is a hardware and/or software component residing on multiple servers. In another example, the data extraction device  114  is a hardware and/or software component residing on image capture device  102 . 
     It should be understood that image capture devices  102  each generally include at least one processor, at least one interface, and at least one memory device coupled via buses. Image capture devices  102  may be capable of being coupled together, coupled to peripheral devices, and input/output devices. Image capture devices  102  are represented in the drawings as standalone devices, but are not limited to such. Each can be coupled to other devices in a distributed processing environment. 
     It should further be noted that each image capture device  102  and data extraction device  114  may include or be coupled to input devices, such as keyboards, speech recognition systems, mouses, trackballs, joysticks, etc. It is also understood that image capture devices  102  and data extraction device  114  may include or be coupled to output devices, such as speakers, display devices and so forth to allow users to receive output of the processes described herein. Further, image capture devices  102  and data extraction device  114  may be connected to various peripheral devices. 
     Data extraction device  114  includes a defect removal engine  116 , a data recognition engine  117 , memory  118 , and a processor  119 . Defect removal engine  116  comprises hardware and/or software components programmed to perform defect removal as further set forth herein. Data recognition engine  117  in one example is an optical character recognition (“OCR”) engine or program that is utilized to perform optical character recognition on document images. In one embodiment, data recognition engine  117  performs optical character recognition on document images subsequent to their being sent to defect removal engine  116  for removal of defects from document images. 
     Defect removal engine  116  and data recognition engine  117  contain instructions for controlling processor  119  to execute the methods described herein. Examples of these methods are explained in further detail in the subsequent of exemplary embodiments section-below. The term “engine” is used herein to denote a functional operation that may be embodied either as a stand-alone component or as an integrated configuration of a plurality of subordinate components. Thus, defect removal engine  116  and data recognition engine  117  may be implemented as a single module or as a plurality of modules that operate in cooperation with one another. Moreover, although defect removal engine  116  and data recognition engine  117  are described herein as being implemented as software, they could be implemented in any of hardware (e.g. electronic circuitry), firmware, software, or a combination thereof. 
     Memory  118  is a computer-readable medium encoded with a computer program. Memory  118  stores data and instructions that are readable and executable by processor  119  for controlling the operation of processor  119 . Memory  118  may be implemented in a random access memory (RAM), volatile or non-volatile memory, solid state storage devices, magnetic devices, a hard drive, a read only memory (ROM), or a combination thereof. 
     Processor  119  is an electronic device configured of logic circuitry that responds to and executes instructions. The processor  119  could comprise more than one distinct processing device, for example to handle different functions within data extraction device  114 . Processor  119  outputs results of an execution of the methods described herein. Alternatively, processor  119  could direct the output to a remote device (not shown) via network  120 . 
     It is to be further appreciated that network  120  depicted in  FIG. 1  can include a local area network (LAN) and a wide area network (WAN), but may also include other networks such as a personal area network (PAN). Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. For instance, when used in a LAN networking environment, the system  100  is connected to the LAN through a network interface or adapter (not shown). When used in a WAN networking environment, the computing system environment typically includes a modem or other means for establishing communications over the WAN, such as the Internet. The modem, which may be internal or external, may be connected to a system bus via a user input interface, or via another appropriate mechanism. In a networked environment, program modules depicted relative to the system  100 , or portions thereof, may be stored in a remote memory storage device such as storage medium. It is to be appreciated that the illustrated network connections of  FIG. 1  are exemplary and other means of establishing a communications link between multiple computers may be used. 
     In one example, image capture devices  102  will include a thin client that will allow the user to take pictures of documents and send the documents to data extraction device  114 . Image capture devices  102  and data extraction device  114  communicate over network  120  through one or more communications interfaces  121 . Communications interfaces  121  may comprise either wired  122  or wireless  124  interfaces. Image capture devices  102  send document images to data extraction device  114  through one or more interfaces  121 . It should be noted, however, that images can also be sent directly or indirectly to the data extraction device  114 . For instance, an image could be sent to a cloud or filing sharing site from data extraction device  114  can retrieve the document image. In another example, the image could be provided to the data extraction device  114  through the use of storage media, such as a disc or a flash drive. 
     Finally, referring further to  FIG. 1 , system  100  includes one or more computing devices  126  that use the data and images extracted by data extraction device  114  for various business cases. An enterprise could use data extraction device  114  to extract data from documents and then automatically route images of the documents and data contained therein to the proper party in the enterprise for further processing. For example, customers of an insurance company could use image capture devices  102  to take images of documents, such as insurance declaration sheets and send the images to their insurance company. The insurance company could then use data extraction device  114  to extract certain information (e.g. name, coverage limits, policy number, etc.) from the declaration sheet. This information could then be used to automatically route the image of the declaration sheet to the correct party or file within the insurance company for further processing. 
     It should be understood that computing devices  126  each generally include at least one processor, at least one interface, and at least one memory device coupled via buses. Computing devices  126  may be capable of being coupled together, coupled to peripheral devices, and input/output devices. Computing devices  126  are represented in the drawings as standalone devices, but are not limited to such. Each can be coupled to other devices in a distributed processing environment. 
     Referring to  FIG. 2 , an exemplary flow diagram depicts a method  200  for extracting and utilizing data from an image. In step  202 , an image capture device  102  captures an image. In step  204 , the document image is sent to a data extraction device  114  over one or more interfaces  122 ,  124 . In step  206 , data extraction device  114  receives the image. Data extraction device  114  passes the image to defect removal engine  116 . In step  208 , defect removal engine  116  prepares the image for further processing. In one example, defect removal engine  116  prepares the document image for further processing by data recognition engine  117  by removing defects from the image. In one example, the defects are shadows contained in the image when the image capture device  102  captures the image. In another example, the defects are the result of defects within the object of the image (e.g. smudged ink on a document). 
     The cleaned image (i.e. image with defects removed) is sent to data recognition engine  118  in step  210 . Data recognition engine  117  then processes the cleaned image to extract data therein. In step  212  data recognition engine  117  sends the image and/or extracted data to computing devices  126  for further processing to support the business case within the enterprise. 
     Referring to  FIG. 3 , an exemplary flow diagram depicts a method  300  by which defect removal engine  116  removes defects from an image. In step  302 , defect removal engine  116  preprocesses an image. Referring to  FIGS. 4A and 4B , in one example, the image comprises a document image  402 . Due to the limitations of image capture devices  102 , document images taken from image capture devices do not appear flat (best shown in  FIG. 4A ). Further, such document images  402  sometimes include objects or background  404  in the periphery of image.  FIGS. 4A and 4B  depict a pre-processing technique in which document image  402  is processed to dewarp (i.e. make flat) and extract the image  402  from its background  404 . The result is designated as  406 . In addition, if necessary, preprocessing includes converting the image  402  to a grayscale image. In one example, the image  402  is converted to an 8 bit grayscale image. Furthermore, preprocessing may also include gray level plane extraction from a RGB color band wherein a given band is retrieved from image  402  and that particular band is an 8 bit grayscale image. 
     Referring now to  FIG. 3 , after preprocessing, the data comprising preprocessed image  406  is, in step  304 , grouped or divided into subgroups. In one example, these groupings or subgroupings are by formed by dividing the bit groupings for each pixel according to bit position. In one embodiment these groupings are formed through bit plane slicing. Referring to  FIGS. 5A to 5H , image  406  is divided into 8 bit planes. Bit Plane  0  ( FIG. 5A ) contains the most significant bit for each pixel in the image. Bit plane  1  ( FIG. 5B ) contains the next most significant bit for each pixel in the image  406 . Bit plane  2  ( FIG. 5C ) contains next most significant bit for each pixel in the image  406 . Bit plane  3  ( FIG. 5D ) contains the next most significant bit, after bit plane  2 , for each pixel in the image  406 . Bit plane  4  ( FIG. 5E ) contains the next significant bit, after bit plane  3 , for each pixel in the image and so forth. Bit planes  1 - 3  yield binarized versions of the image  406 , but with black blotches  502  and white blotches  504 . When compared to image  406 , blotches  502 ,  504  occur in areas where defects, in the form of shadows, are present, as light transitions to dark and vice versa. Therefore, method  300  separates the image  406  into areas of light and darkness or light and absence of light. 
     Referring now to  FIG. 3 , in step  306 , a target bit plane is selected from image  406 . The target bit plane is selected by identifying the bit plane that contains the most actionable information regarding the location of defects in the image  406 . For instance, it can be seen from  FIGS. 5A to 5H , that bit planes  0 - 2  ( FIGS. 5A to 5C ) provide little information about the location of defects within image  406 , because they show a minimal number of blotches whereas bit planes  4 - 7  ( FIGS. 5E to 5H ) provide too much information because they comprise blotches that are interspersed or collapsed together to the extent that are not recognizable. Accordingly, bit plane  3  ( FIG. 5D ) is selected as the target bit plane  506 . Put another way, bit planes  4 - 7  contain too much binary noise. Such that that binary noise would interfere with the extraction of defects from image  406 . Accordingly, step  306  involves selecting, as the target bit plane, the bit plane with an optimal amount of information regarding the positional boundaries of defects and a minimal amount of binary noise. 
     Referring further to  FIG. 3 , once target bit plane  506  is selected, a filtering operation is utilized, in step  308 , to remove text from the target bit plane  506 . Such filtering is worthwhile because edge detection will be performed in step  310 . Edge detection techniques are susceptible to noise and text can be confused with blotches  502 ,  504  when performing edge detection, and therefore provide inaccurate results as to the positional boundaries of blotches  502 ,  504 . 
     Referring to  FIGS. 6A and 6B , one exemplary filtering operation is that may be utilized in step  308  is edge boundary minimization. In one example, edge boundary minimization involves applying a Gaussian Blur to the target bit plane  506 . In another example, a Gaussian Blur is applied to target bit plane  506  and the result is then thresholded to binary color constraints. The result is an optimized image  602  in which the boundaries  603  between blotches  502 ,  504  are clearly defined and text is removed from the image. 
     Once optimized image  602  is created, an edge detection technique is performed on it, in step  310 , to identify the positional data regarding the location or boundaries of blotches  502 ,  504  within optimized image  603 , i.e., the location in image  602  where the discontinuities between light and shade occur. In one example, a technique utilizing adjacent similar color selection is utilized to detect the edges of blotches  502 ,  504 . Adjacent similar color selection selects a value for a pixel based on the value of adjacent pixels around it. Accordingly, pixels that are on the border of blotches  502  that are assigned a dark value, but are predominantly surrounded by pixels having a light value will be assigned as light. Conversely, pixels the border of blotches  504  that are assigned a light values, but are predominately surrounded by pixels having a dark value will be assigned a dark value. In this manner, the borders between blotches  502 ,  504  can be sharply defined. 
     Referring now to  FIG. 3 , in step  310 , the position data from the edge detection technique is used to adaptively filter image  406 . In one example, adaptive histogram binarization is used on blotches  502 ,  504  to remove defects. Adaptive histogram binarization uses a threshold value to determine whether a particular pixel should be designated light or dark. Pixels greater than the threshold value are designated light and pixels less than the threshold value are designated dark. In document image  406 , text data  508  will have the darkest value due to text generally being darker than shadow. Therefore, within the positional boundaries of the blotches  502 ,  504 , histogram binarization is performed using a lower threshold value than for the rest of the image. 
     Referring to  FIGS. 7A to 7C , image  406  is shown next to image  702 . Image  702  ( FIG. 7B ) is a version of image  406  ( FIG. 7A ) after a conventional non-adaptive histogram binarization technique is used. Image  702  was filtered using a single threshold value for the entire image  406 . Accordingly, image  702  contains a large defect  704  which obscures text. In contrast, image  706  ( FIG. 7C ) depicts image  406  after undergoing the defect removal process described in  FIG. 3 . In contrast, image  704  contains minimal defects and the text is not obscured. 
     The techniques described herein are exemplary, and should not be construed as implying any particular limitation on the present disclosure. It should be understood that various alternatives, combinations and modifications could be devised by those skilled in the art. For example, steps associated with the processes described herein can be performed in any order, unless otherwise specified or dictated by the steps themselves. The present disclosure is intended to embrace all such alternatives, modifications and variances that fall within the scope of the appended claims. 
     The terms “comprises” or “comprising” are to be interpreted as specifying the presence of the stated features, integers, steps or components, but not precluding the presence of one or more other features, integers, steps or components or groups thereof. 
     Although the systems and methods of the subject invention have been described with respect to the embodiments disclosed above, those skilled in the art will readily appreciate that changes and modifications may be made thereto without departing from the spirit and scope of the subject invention as defined by the appended claims.