# Patent

## Title
Generation of documents from images

## Abstract

A system for generating soft copy (digital) versions of hard copy documents uses images of the hard copy documents. The images may be captured using a device suitable for capturing images, like a camera phone. Once available, the images may be processed to improve their suitability for document generation. The images may then be processed to recognize and generate soft copy versions of the documents represented by the images.

## Background
BACKGROUND
Information contained in hard copy documents—for example, in magazine articles, printed photographs, books, newspapers, and so on—cannot easily be used in a digital environment—for example, with a desktop or laptop computer, a phone or personal digital assistant (PDA), or a data network like the Internet. While some documents can be scanned or otherwise digitized to create a soft copy or digital document, the use of present devices, like scanners or photocopy machines, can be difficult and time-consuming enough that many people choose instead to re-enter data contained in hard copy documents by hand.
SUMMARY
The following presents a simplified summary of the disclosure in order to provide a basic understanding to the reader. This summary is not an extensive overview of the disclosure and does not identify key or critical elements of the invention or delineate the scope of the invention. Its sole purpose is to present some concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.
Described herein are various technologies and techniques directed to generating soft copy (digital) documents using images of hard copy documents. More particularly, described herein are, among other things, systems, methods, and data structures that facilitate generation of soft copy documents from images.
Some implementations of the generation system described herein may include functionality for acquiring images, like, for example, a digital camera, including a mobile telephone that incorporates a camera. Once the necessary images have been acquired, the system may combine or improve the suitability of the images for later use through one or more techniques. The system may also determine the type of document or documents represented by the image or images. The system may recognize a variety of elements in the images, including text, tables, diagrams, and so on. Given multiple possibilities for recognized entities, the system may present a user with selectable choices, so the user can influence the nature of the elements that are recognized. Ultimately, the system may generate one or more types of soft copy documents, such as word processor documents, spreadsheets, and so on.



DESCRIPTION OF THE DRAWINGS
FIG. 1 is an illustration of an exemplary computing device in which the various technologies described herein may be implemented.
FIG. 2 is an illustration of an exemplary system in which generation of documents may be carried out.
FIG. 3 is an illustration of an exemplary operational flow that includes various operations that may be performed when generating documents.



DETAILED DESCRIPTION
Described herein are various technologies and techniques directed to generating soft copy (digital) documents using images of hard copy documents. More particularly, described herein are, among other things, systems, methods, and data structures that facilitate generation of soft copy documents from images.
With one embodiment, a user might take a number of photographs of a magazine article using a camera phone. The document generation system might then process the acquired digital images to, for example, remove shadows that could make document generation more difficult. The system might then combine the images to create a single composite image for each page of the magazine article, and then recognize elements in each image. In the case of a magazine article, the recognized elements might include text, graphics, tabular data, and photographs with captions. Using the recognized elements, the system might generate a single word processor document with multiple pages containing text, graphics, tables, and photographs. Furthermore, the recognized elements might be represented as distinct elements themselves, rather than just as text. For example, tabular data might be represented using a word processor table rather than just as text separated by white space.
Example Computing Environment
FIG. 1 and the related discussion are intended to provide a brief, general description of an exemplary computing environment in which the various technologies described herein may be implemented. Although not required, the technologies are described herein, at least in part, in the general context of computer-executable instructions, such as program modules that are executed by a controller, processor, personal computer, or other computing device, such as the computing device 100 illustrated in FIG. 1.
Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. Tasks performed by the program modules are described below with the aid of one or more block diagrams and operational flowcharts.
Those skilled in the art can implement the description, block diagrams, and flowcharts in the form of computer-executable instructions, which may be embodied in one or more forms of computer-readable media. As used herein, computer-readable media may be any media that can store or embody information that is encoded in a form that can be accessed and understood by a computer. Typical forms of computer-readable media include, without limitation, both volatile and nonvolatile memory, data storage devices, including removable and/or non-removable media, and communications media.
Communication media embodies computer-readable information in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communications media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
Turning now to FIG. 1, in its most basic configuration, the computing device 100 includes at least one processing unit 102 and memory 104. Depending on the exact configuration and type of computing device, the memory 104 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.), or some combination of the two. This most basic configuration is illustrated in FIG. 1 by dashed line 106. Additionally, the computing device 100 may also have additional features and functionality. For example, the computing device 100 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in FIG. 1 by the removable storage 108 and the non-removable storage 110.
The computing device 100 may also contain one or more communications connection(s) 112 that allow the computing device 100 to communicate with other devices. The computing device 100 may also have one or more input device(s) 114 such as keyboard, mouse, pen, voice input device, touch input device, image input device (like a camera or scanner), etc. One or more output device(s) 116 such as a display, speakers, printer, etc. may also be included in the computing device 100.
Those skilled in the art will appreciate that the technologies described herein may be practiced with computing devices other than the computing device 100 illustrated in FIG. 1. For example, and without limitation, the technologies described herein may likewise be practiced in hand-held devices including mobile telephones and PDAs, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
The technologies described herein may also be implemented in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
While described herein as being implemented in software, it will be appreciated that the technologies described herein may alternatively be implemented all or in part as hardware, firmware, or various combinations of software, hardware, and/or firmware.
Turning now to FIG. 2, illustrated therein is a system 200 in which generation of documents may be performed. Included in the system are a document generation system 210, an image acquisition module 220, an image processing module 225, an image creation module 230, an image feedback module 255, an element recognition module 245, a recognition choices module 250, a document type module 240, a document generation module 260, and a background module 235.
The document generation system 210 contains various modules, discussed below, that perform a variety of tasks to generate soft copy documents from digital images. It should be understood that while the document generation system 210 contains various modules, in one or more alternative implementations, a single module may perform more than one of the tasks associated with the modules in the system 210. For example, and without limitation, a single image module might perform the tasks associated with the image acquisition module 220, the image processing module 225, the image creation module 230 and the image feedback module 255. Similarly, in one or more alternative implementations, the modules may perform additional tasks not shown or discussed. Furthermore, in one or more alternative implementations, the modules may reside on more than one device or computer system. For example, and without limitation, the image acquisition module 220 and the image feedback module 255 might reside on one device, perhaps on a device with a camera, while the remaining modules reside on another device, perhaps on a device with a greater amount of computer processing ability. When more than one device is involved, the communication between the devices may be accomplished using a variety of methods, including by using a wireless connection of some kind, including Wi-Fi or cellular data such as GPRS, EV-DO, EDGE, HSDPA, or the like; by using a wired connection, including wired Ethernet, Firewire, and USB; or by any other communication mechanism with which computing devices may communicate. In addition, not all of the modules may be necessary to generate soft copy documents. For example, the document generation system may not provide feedback to the user while images are being acquired, and accordingly, the image feedback module 255 may not be required.
The image acquisition module 220 acquires one or more digital images of the hard copy document or documents from which the soft copy document or documents are to be generated. Generation of soft copy documents, including recognizing elements in images, requires sufficient resolution and image quality. Therefore, the number of images that must be acquired to generate documents depends generally on the resolution and quality of the images produced by the image acquisition module.
In some implementations, the image acquisition module 220 may include a digital camera. For example, the image acquisition module could be a mobile telephone with camera functionality, a PDA with camera functionality, or any other device that includes camera functionality. In the context of this application, “mobile telephone” should be understood to encompass any mobile device that includes telephony functionality, including devices traditionally known as mobile telephones, as well as PDAs, pagers, laptop computers, and the like, that include telephony functionality.
To acquire images, a user may take one or more photographs of each desired page or section of the hard copy document. Some camera devices may have sufficient resolution to enable element recognition with a single photograph of, say, a single page of the hard copy document. Other camera devices—including those included with many mobile telephones, and/or those without adjustable focus lenses —may generate a single image with insufficient detail to enable document generation. In such a case, the user may take multiple photographs, perhaps each of a different part of the hard copy document, so that all of the images, when considered together, provide enough detail to enable document generation. In general, it may be necessary for the captured images to display the text and other elements of the hard copy document in such detail that a person, while viewing the image, can read and understand the text and other elements. During testing, a camera with a resolution of two megapixels and an adjustable focus lens generated images of an 8.5′′×11′′ page sufficient for further use. In some implementations, cameras with lower resolutions and/or without adjustable focus lenses may require multiple images of the same page or section. Other modules, including the image processing module 225 and the image creation module 230, may further process the images acquired by the image acquisition module so that other modules, including the element recognition module 245 and the document type module 240, may perform their associated tasks.
In other implementations, the image acquisition module 220 may be an image scanner, photocopy machine, facsimile machine, or other device that can create digital images. For example, an image scanner or photocopy machine may generate digital images by scanning pages of a hard copy document. A facsimile machine may similarly generate an image from a transmitted or received facsimile document. Depending on the quality and level of detail of the images generated by the scanner or other device, more than one image may be required to enable document generation, similar to how multiple images may be required with some digital camera devices, as explained previously.
The image acquisition module 220 may also be a device that can acquire images originally created on another device. For example, the image acquisition module might comprise a computer connected to a digital camera via a USB cable or a computer connected over a network to another computer containing a library of images.
The image acquisition module may be used to acquire images of multiple pages or sections of the same hard copy document, or of different hard copy documents, independent of whether multiple images are acquired of the same page or section (for purposes of enabling document generation, as explained previously).
The image processing module 225 may perform various image enhancement processing operations on the images acquired using the image acquisition module 220. This processing may generally be directed toward improving the suitability of the images for document generation, including processing that increases the ability of or makes more efficient the operation of other modules, like the element recognition module 245 and the document type module 240.
In some implementations, including those where the image acquisition module 220 includes a digital camera, the images may have been created when the camera was not aligned correctly with the hard copy document. This misalignment may result in an image with “keystone effects,” which in this context are image artifacts where angles in the image are different from angles in the hard copy. The image processing module 225 may remove keystone effects, and thereby improve the operation of other modules in the system, including the element recognition module 245.
In the same or other implementations, parts of the images may be in shadow because of, for example, uneven lighting when the image was created. The image processing module 225 may remove or lessen shadows in the images to improve the operation of other modules in the system. Removing keystone effects and shadows in images may be accomplished using various methods.
The image processing module 225 may also perform other image processing that improves the quality of images for use in other modules of the system, as are recognized in the art. Furthermore, some image processing may operate with one or more of the other modules. For example, some processing may be more efficiently or successfully performed when working with the image creation module 230, discussed below, or with the composite images that may be generated by the image creation module.
The image creation module 230 creates a composite digital image that represents a page or section of the hard copy document, or the entirety of the hard copy document. In some instances, for example when multiple images are acquired, the image creation module may join or “stitch together” the acquired images to create a single composite image. For example, in an implementation where the image acquisition module 220 includes a digital camera, a user may have taken multiple photographs of a single hard copy page so that text and other elements are readable in the images generated by the camera. In such a case, the image creation module may identify and stitch together the images that make up the same page, creating a single composite image of the entire hard copy page. Joining or stitching together the acquired images may be accomplished using various methods.
If images of multiple hard copy pages or sections have been captured using the image acquisition module, the image creation module 230 may recognize the hard copy page or section with which the image is associated and generate multiple composite images, one for each hard copy page or section.
In cases where a single acquired image is sufficient to enable element recognition, the composite image created by the image creation module 230 may be the same as the single acquired image, or the same as the acquired image suitably processed by the image processing module 225. Alternatively, in such cases, the image creation module may not be necessary, and other modules in the system may work directly with the acquired or processed image.
In a preferred embodiment, the operation of the image creation module 230 may be performed without user input. However, in some implementations and with some images, the image creation module may not be able to correctly link an image with a composite image. In such a case, the image creation module may present to the user of the system multiple choices and enable the user to link the image with the composite image, for example, by specifying where in the composite image the particular image should be used, or with which composite image the particular image should be associated.
It should be understood that, unless noted or understood otherwise, the modules and other parts of the invention described herein may work with images acquired directly from the image acquisition module 220, images processed by the image processing module 225, or from one or more composite images generated by the image creation module 230.
The image feedback module 255 provides feedback to the user while images are being acquired. In some implementations, including those where the image acquisition module 220 includes a digital camera, the image feedback module may indicate that images of some portions of the hard copy document have not been acquired. For example, where the left side of a hard copy page has been captured but the right side has not, the image feedback module may indicate that the user must still take one or more photographs of the right side of the page.
The image feedback module may provide feedback in multiple ways. In some implementations, the image feedback module may show graphically, for example on an LCD screen that is part of a digital camera or camera phone, which parts of the hard copy page or section have not been captured at all, or have not been captured with sufficient resolution. It may do so by displaying shaded regions, overlaid “on top” of the image of the hard copy document, that show the portions of the hard copy document that should still be captured.
The document type module 240 identifies the type of hard copy document, or the type of different portions of the hard copy document. It may work with the element recognition module 245 to enable the element recognition module to better recognize text and elements, and to enable the document generation system 210 to more accurately recreate a soft copy document from a hard copy document.
The document type module 240 may use multiple features or patterns of the image, images, or composite image to identify the type of document, or the types of sections of the document. Recognized types could include, without limitation, some or all of the following: word processor documents; spreadsheets; presentation documents; and forms, including forms like facsimile transmittal forms and business cards, and user-defined forms, for example for use with surveys. For additional information different kinds of recognized elements, refer to the following discussion of the element recognition module 245.
The element recognition module 245 recognizes a wide variety of elements in the image or composite image. These elements can then be used by the document generation system 210 to generate a soft copy document containing some or all of the recognized elements.
In one embodiment, the element recognition module 245 may simply recognize text, perhaps by implementing one or more optical character recognition (OCR) algorithms.
In the same or other embodiments, the element recognition module 245 may recognize additional “super-elements,” aside from text. In this context, a “super-element” is an element that has some additional meaning or structure, beyond simple text. A super-element may be comprised, in whole or in part, of text, but is not solely comprised of text. Some examples of super-elements, without limitation, are images with metadata, such as images with captions; bulleted lists; equations; annotations; tables; charts; and forms.
In some cases, the element recognition module may recognize a super-element solely from the image data contained in the image or composite image. In some cases, the element recognition module may also use other information, including information generated by other modules, such as the document type module 240. For example and without limitation, and as explained in more detail below, if the document type module 240 identifies the images as containing slides in a presentation, the element recognition module may use this information to recognize text and graphics as elements common to presentations, like slides or charts, and not just as a series of unrelated text and images. As another example and again without limitation, if the document type module 240 identifies part of the image as a spreadsheet or table, the element recognition module may use this information to recognize numbers and text as part of a table, not just as a series of unrelated numbers, text, and white space.
The element recognition module 245 may recognize numerous super-elements in addition to text and simple images. The following paragraphs discuss some of these super-elements in detail.
Some possible super-elements are graphics or images that contain metadata. For example, the element recognition module 245 may recognize a graphic or image and a caption associated with the graphic or image. The recognized super-element in this case might be a captioned graphic. In this context, the recognized graphic or image is a part of the image used for soft copy document generation. For example, an image of a magazine page provided by the image acquisition module 220 might contain text as well as graphics or images, such as photographs printed on the magazine page. Some of the super-elements in this case might be the photographs on the magazine page, with any associated captions.
Another possible super-element might be a table or spreadsheet. Tables or spreadsheets might be recognized, for example and without limitation, in cases when images of a printed spreadsheet are used. They might also be recognized in other cases, such as when an image of a magazine page that contains tables is used. Where the element recognition module 245 identifies tables or spreadsheets, it may generate soft copy tables or spreadsheets, perhaps according to a user choice. For example, if a printed spreadsheet is photographed, the user may choose to generate a soft copy spreadsheet document. Alternatively, if a magazine page with tables is photographed, the user may choose to generate a soft copy word processor document with embedded tables. Beyond recognition of tables or spreadsheets, the element recognition module may be able to impute logic in the soft copy spreadsheet, table, or other element it generates. For example, a photograph of a spreadsheet with cells containing the numbers 1, 1, and 2 may not simply be recognized as a spreadsheet with three cells containing the literal values 1, 1, and 2. Instead, the third cell—the cell that contains 2—may be generated so that it contains a formula summing the previous two cells. For example, assuming the first two cells are named A1 and B1, the cells in the generated soft copy spreadsheet might contain 1, 1, and a formula like “=SUM(A1:B1)”.
Another possible super-element might be a portion of a form. In this context, a “form” is part of a document that contains some known fields or structure. Using these known fields or structure, the element recognition module 245 may be able to recognize specific elements of a hard copy document. When these specific elements are recognized, the document generation system 210 may use them to generate a soft copy document, like a word processor document. Recognized elements may also be used to, for example, update a database. The element recognition module may also have the ability to improve recognition accuracy by ignoring text or other markings outside the context of the known data on the form.
Forms may follow any format and contain any fields. Some examples of forms are facsimile transmittal forms, business cards, and the like, as well as custom or user-defined forms. In the case of a facsimile transmittal form, the element recognition module 245 may look specifically for fields such as “To,” “From, ” “Fax Number,” “Subject,” and so on. In the case of a business card, the element recognition module may look for text that contains the name of a person, the name of position (such as “President,”), the name of a company, and so on. In both examples, in addition to or in lieu of generating a soft copy document, a database—for example, a database of sent or received facsimiles, or a database of contacts like that maintained by personal organizer or customer relationship management software—may be updated with the data recognized in the hard copy document.
In addition, the element recognition module may provide the ability to recognize the fields or structure of custom or user-defined forms. In such a system, a user may provide a template that denotes information like the name and location of specified fields. The element recognition module 245 may use this template to recognize elements in associated hard copy documents. One situation in which this type of functionality may be useful is in digitizing survey information that exists in hard copy form. A survey company, for example, might print paper copies of a survey with elements like checkboxes, multiple choice questions, and free text entry questions. They might also create a template in a form required by the element recognition module which names the questions, specifies the format of the questions, and so on. Given this template, the element recognition module might then interpret images of completed hard copy survey forms and, perhaps in concert with the document generation module 260, for example, might update a database with the answers to the survey questions.
Many types of documents might also contain a number of different super-elements that do not, in and of themselves, exist as a single document. Like with other super-elements, these super-elements may be made part of the generated soft copy document in such a way that they can be manipulated in an application as a super-element. For example, the element recognition module 245 may recognize a set of text as a bulleted list and enable the document generation system to generate, for example, a word processor document that contains a bulleted list, rather than simply rows of text. When such a word processor document is edited in a word processor application, the word processor can manipulate the bulleted list as a bulleted list, instead of, for example, as rows of text preceded by a graphic that looks like a text bullet.
Similar to how a bulleted list is recognized and output in a generated soft copy document, the element recognition module 245 may also recognize other super-elements including, without limitation, equations and charts, in addition to other super-elements, like tables and spreadsheets, which can be embedded in a soft copy document.
In the case of a chart or graphic, it may be possible for the element recognition module 245 to impute additional meaning to the elements of the chart or graphic. For example, an image might contain an organizational chart that shows the reporting relationship of people in a company. This chart might be comprised of squares containing text and lines that join the squares. In some instances, the element recognition module might recognize this chart as a single atomic graphic and do no further recognition. In other instances, the element recognition module might recognize the chart as a drawing with squares, lines, and text, and enable the editing of the resulting soft copy drawing in, for example, an application with graphics editing functionality. In yet other instances, the element recognition module might recognize the chart as an organizational chart, and enable editing of the resulting soft copy chart in an application with specific functionality directed toward the creation and editing of organizational charts.
The element recognition module 245 may be able to recognize handwritten text or other figures. Such handwritten elements of the hard copy may be recognized as graphics or images and not further interpreted. In other instances, handwritten content may be recognized as text. In either case, the recognized super-element may be output as part of the generated document as an annotation or note, or as part of the document itself. For example, when the element recognition module interprets an image of a page of printed text with some handwritten notes, it may incorporate the recognized handwritten text into the document itself. In other cases, it may interpret the handwritten text but keep it separate from the main flow of the document—for example, by using “Note” or “Annotation” functionality in the generated soft copy document. Handwritten drawings may be maintained as graphics or images and not further interpreted, or may be interpreted, for example, in the same way a printed chart or other super-element is recognized.
Throughout the recognition of elements, the element recognition module 245 may maintain specific features of the recognized elements. For example, the element recognition module may recognize the following features of text, without limitation: font name, font style (bold, underline, and so on), font size, text color, and so on. For elements in general, the element recognition module may recognize features, again without limitation, like color and shape.
In some instances, the element recognition module 245 may not be able to recognize some elements automatically with some sufficient or defined level of certainty. In such instances, the recognition choices module 250 may be used to present the user with a choice between multiple possible elements. For example and without limitation, if the element recognition module determines that there is a 60% chance that particular element should be recognized as one element, and a 40% chance that the element should be recognized as another element, the recognition choices module may enable the user to choose between the two likely elements. In one implementation, the recognition choices module 250 may display a dialog that shows the relevant part of the image being processed by the element recognition module, as well as the elements that have been identified by the element recognition module as possible matches, perhaps with the most likely element selected by default. The user may then choose between the presented options, and the document generation system 210 may use the selected option to determine which element to include in the generated soft copy document.
If the document generation system 210 is used in a batch or automated fashion—for example, to generate soft copy documents from a large set of images—any operation of the recognition choices module 250 or, for that matter, any operation of a module that requires user input, may be automated so that no user input is required. In one implementation, in the case of element recognition, instead of using the recognition choices module, the most likely candidate element may be chosen automatically, even if there is only, for example, a 51% chance that the most likely candidate element is the correct element.
The background module 235 identifies and manipulates background images or data present in the images being processed. For example, each slide in a hard copy presentation with multiple slides might have the same background. The background module may identify this background so that it can be manipulated separately from the text or other elements in the foreground of the slide. For example, it might identify and remove any background image or images before using modules like the element recognition module, and may then add the background image or images to the generated soft copy document after element recognition is complete. When multiple images have the same background image or images, the background module may identify the background image or images by using multiple images, for, by example, deducing that similar elements occurring in all of the images are part of the background.
Given the operations of other modules, the document generation module 260 generates one or more soft copy documents, of one or more document formats. For example, the document generation module may generate one or more word processor documents, spreadsheet documents, presentation documents, text documents, portable document format documents, and so on. A word processor document may be, for example and without limitation, a Microsoft Word document, suitable for use in the Microsoft Word application, which is produced by Microsoft Corporation of Redmond, Wash. Such a word processor document might also be suitable for use in any other application which can view or edit Microsoft Word documents. A spreadsheet document may be, for example and without limitation, a Microsoft Excel document, suitable for use in the Microsoft Excel application, also produced by Microsoft Corporation of Redmond, Wash. Similarly, a presentation document may be a Microsoft PowerPoint document and a portable document format document might be a Portable Document Format (PDF) document, suitable for use with an Adobe Acrobat application, produced by Adobe Systems Corporation of San Jose, Calif.
The particular document format or formats used by the document generation module may be determined in various ways. For example, they may be determined automatically by the document generation system 210, or may be the result of user choice. In some implementations, the document generation system 210 may default to generating a word processor document when the recognized elements include text. In other implementations, the user may choose the type or types of documents to be generated.
The document generation module 260 may generate a single soft copy document with multiple pages, or multiple documents each with a single page, or multiple documents with one or more pages, depending on the nature of the images from which the documents are generated, user choice, or other input.
Generated soft copy documents may be the same as any other soft copy documents of the same particular format. Such documents may be manipulated, transmitted, or otherwise used in any manner, in the same fashion as soft copy documents generated, for example, from scratch using an appropriate application.
In addition to generating traditional soft copy documents, in some implementations the document generation module 260 might also take other actions with the information produced by the document generation system 210. For example, instead of or in addition to generating a word processor document, the document generation module might also update a database, send email, or take any other action based on the nature of the recognized information.
Turning now to FIG. 3, illustrated therein is an exemplary generalized operational flow 300 including various operations that may be performed when generating documents. The following description of FIG. 3 is made with reference to the system 200 of FIG. 2. However, it should be understood that the operational flow described with respect to FIG. 3 is not intended to be limited to be used with the elements of the system 200. In addition, it should be understood that, while the exemplary operational flow 300 indicates a particular order of operation execution, in one or more alternative implementations the operations may be ordered differently. Furthermore, while the exemplary operational flow contains multiple discrete steps, it should be recognized that in some implementations, some or all of these operations may be combined or executed contemporaneously.
As shown, in one implementation of operation 310, the image acquisition module 220 acquires one or more images of the hard copy document or documents from which the soft copy document or documents are to be generated. In some implementations, this operation involves taking one or more photographs of the hard copy document or documents. In other implementations, this operation involves scanning hard copy documents using a scanner, and so on. If the image acquisition module cannot acquire single images with sufficient quality for document generation, this operation may require acquiring multiple images of the hard copy document which may then be further manipulated in succeeding operations, like operation 314, where multiple images may be combined to form a single composite image.
In some implementations of operation 310, the image feedback module 255 may provide feedback to the user while images are acquired. For example, if a user takes multiple photographs of a single page of a hard copy document using a digital camera, the image feedback module may indicate to the user which parts of the hard copy page have not yet been photographed, or have not yet been photographed with sufficient detail to enable document generation.
In one implementation of operation 312, the image processing module 225 processes the images acquired in operation 310 to improve the quality of the images for use in generating soft copy documents. This image processing may include removal of keystone effects, removal or minimization of shadows, and so on. In other implementations, this operation may be performed using the composite image or images generated by operation 314—in such implementations, operation 312 may be performed after operation 314, or may be performed, at least in part, both before and after operation 314.
In one implementation of operation 314, the image creation module 230 may combine multiple images acquired during operation 310 into one or more composite images that better represent a page or section of a hard copy document. For example, when multiple images of a single page have been acquired in operation 310 to ensure that the resolution of the images is high enough to enable document generation, this operation may combine the images and create a single composite image. In instances where a single image acquired in operation 310 has sufficient resolution to enable document generation, this operation may generate a composite image that is the same as the acquired or the processed image. In an alternative embodiment, when a single image is sufficient for document generation, this operation may not be necessary and subsequent operations may work with the image acquired in the acquire images operation 310 or the process images operation 312. Further, unless otherwise noted, the composite image or images generated by this operation may be used interchangeably with images acquired in the acquire images operation 310, or processed by the process images operation 312.
In an implementation of operation 316, the background module 235 may use one or more images resulting from operations 310, 312, and 314 to identify background graphics, images, or other content. In at least one implementation, operation 316 may also remove the identified background from the images to be used by some subsequent operations, like the recognize elements operation 320. In such an implementation, the background may then be added to the soft copy documents, for example, in the add background operation 324.
In one implementation of operation 318, the document type module 240 may recognize the type of or types of hard copy documents or sections represented by the images. Information about the type or types of documents or sections may be used in subsequent operations, including, for example, the recognize elements operation 320.
In an implementation of operation 320, the element recognition module 245 recognizes text and other elements, including “super-elements,” all as explained previously with reference to the element recognition module 245. This operation may recognize, for example and without limitation, text, simple images, images with captions or other additional data, bulleted lists, equations, annotations, tables, spreadsheets, presentations, charts, forms, and so on.
In one implementation of operation 322, the recognition choices module 250 may present one or more choices to the user for elements which cannot be recognized automatically with some sufficient level of certainty, to enable the user to choose the most appropriate element. In other implementations, such as implementations where large numbers of hard copy documents are processed without human intervention, this operation may not be executed.
In an implementation of operation 324, background graphics, images, or other content that was identified and removed, for example in identify background operation 316, may be added by the background module 235 to the soft copy document or documents to be generated.
Finally, in one implementation of operation 326, the document generation module 260 may generate one or more soft copy documents using the information acquired in previous operations. As explained previously with reference to the document generation module 260, the generated soft copy documents may be of many forms. Furthermore, also as explained previously, the document generation module may also perform actions aside from generating traditional documents, including, for example, updating databases using the information identified in previous operations.
Although some particular implementations of systems and methods have been illustrated in the accompanying drawings and described in the foregoing Detailed Description, it will be understood that the systems and methods shown and described are not limited to the particular implementations described, but are capable of numerous rearrangements, modifications and substitutions without departing from the spirit set forth and defined by the following claims.

## Claims

1. A method for generating a soft copy document from a hard copy document, comprising:
acquiring via photographs taken by a user at least two images of a single page of the hard copy document;
providing feedback to the user indicating any parts of the single page not photographed and further indicating any of the at least two images that are of insufficient quality for generating the soft copy document;
processing the acquired images to be better suited for soft copy document generation;
combining the processed images resulting in a composite image that represents the single page of the hard copy document;
recognizing one or more particular text elements in the composite image;
identifying, by a document type module, one or more document types of the composite image, wherein the document type module is configured for identifying a plurality of document types including a word processor document type, a spreadsheet document type, a presentation document type, and form types of forms including business cards, facsimiles, and a form complying with a pre-defined template;
recognizing further particular text elements in the composite image according to characteristics of the identified one or more document types;
generating the soft copy document as at least one of the identified one or more document types, the soft copy document including the recognized one or more particular text elements and the recognized further particular text elements; and
wherein the method is performed by one or more computing devices.

2. The method of claim 1, wherein the processing step further comprises one or more of the following operations:
removing keystone effects from the two or more images; and
removing shadowing from the two or more images.

3. The method of claim 1, wherein the processing step further comprises increasing a resolution of at least one of the images.

4. The method of claim 1, wherein the recognizing particular elements step further comprises:
if a particular element cannot be identified with a defined level of certainty, presenting to a user one or more selectable choices for the particular element;
receiving a selected choice of the one or more selectable choices; and
recognizing the particular element as the selected choice.

5. The method of claim 1, further comprising:
identifying one or more background images in the composite image;
removing the background images before recognizing elements; and
adding the background images to the soft copy document after recognizing elements.

6. The method of claim 1, wherein the steps of processing the images, creating the composite image, recognizing elements, and generating the soft copy document are performed automatically without human intervention.

7. The method of claim 1, wherein the step of acquiring the images further comprises taking two or more photographs of the one or more hard copy documents using a digital camera.

8. The method of claim 7, wherein the digital camera further comprises a camera integrated with a mobile telephone.

9. The method of claim 1, wherein the step of acquiring the images further comprises scanning the one or more hard copy documents using a device with document scanning functionality.

10. A device, comprising:
a memory;
a document generation module implemented at least in part in the memory and configured for generating a soft copy document from a hard copy document;
an image acquisition module configured for acquiring via photographs taken by a user at least two images of a single page of the hard copy document;
an image feedback module configured for providing feedback to the user indicating any parts of the single page not photographed and further indicating any of the at least two images that are of insufficient quality for generating the soft copy document;
an image processing module configured for processing the acquired images to be better suited for soft copy document generation;
an image creation module configured for combining the processed images resulting in a composite image that represents the single page of the hard copy document;
a document type module configured for identifying one or more document types of the composite image, wherein the document type module is configured for identifying a plurality of document types including a word processor document type, a spreadsheet document type, a presentation document type, and form types of forms including business cards, facsimiles, and a form complying with a pre-defined template;
an element recognition module configured for recognizing one or more particular text elements in the composite image according to characteristics of the identified one or more document types; and
wherein at least one of the modules is configured to operate on the device.

11. The device of claim 10, wherein the device further comprises a mobile telephone.

12. The device of claim 10, wherein the image acquisition module is further configured to acquire images generated by a second device.

13. The device of claim 12, wherein the second device includes document scanning functionality.

14. The device of claim 10, further comprising an image feedback module configured to provide feedback to a user acquiring the images, said feedback indicating that an image of at least a portion of the hard copy document has not been satisfactorily acquired.

15. One or more data storage devices that are not signal or carrier wave comprising computer-executable instructions that, when executed by a computer, cause the computer to perform a method comprising:
acquiring via photographs taken by a user at least two images of a single page of a hard copy document;
providing feedback to the user indicating any parts of the single page not photographed and further indicating any of the at least two images that are of insufficient quality for generating the soft copy document;
processing the acquired images to be better suited for soft copy document generation;
combining the processed images resulting in a composite image that represents the single page of the hard copy document;
recognizing particular text elements in the composite image;
identifying, by a document type module, one or more document types of the composite image, wherein the document type module is configured for identifying a plurality of document types including a word processor document type, a spreadsheet document type, a presentation document type, and form types of forms including business cards, facsimiles, and a form complying with a pre-defined template;
recognizing further particular text elements in the composite image according to characteristics of the identified one or more document types; and
generating the soft copy document as at least one of the identified one or more document types, the generated soft copy document including the recognized particular text elements and the recognized further particular text elements.

16. The one or more data storage devices of claim 15, wherein the processing step further comprises one or more of the following operations:
removing keystone effects; and
removing shadowing.

17. The one or more data storage devices of claim 15, wherein the processing step further comprises increasing the resolution of at least one of the images.

18. The one or more data storage devices of claim 15, wherein the creating step further comprises joining two or more images to create the composite image.