US20020186883A1 - System and method for dynamically switching optical character recognition packages - Google Patents
System and method for dynamically switching optical character recognition packages Download PDFInfo
- Publication number
- US20020186883A1 US20020186883A1 US10/099,605 US9960502A US2002186883A1 US 20020186883 A1 US20020186883 A1 US 20020186883A1 US 9960502 A US9960502 A US 9960502A US 2002186883 A1 US2002186883 A1 US 2002186883A1
- Authority
- US
- United States
- Prior art keywords
- ocr
- user
- scanning
- packages
- parameter values
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/24—Character recognition characterised by the processing or recognition method
- G06V30/242—Division of the character sequences into groups prior to recognition; Selection of dictionaries
- G06V30/244—Division of the character sequences into groups prior to recognition; Selection of dictionaries using graphical properties, e.g. alphabet type or font
- G06V30/2445—Alphabet recognition, e.g. Latin, Kanji or Katakana
Definitions
- the present invention generally relates to computer systems and, in particular, to a system and method for dynamically changing which optical character recognition (OCR) package is used to analyze an image captured by an optical scanner.
- OCR optical character recognition
- OCR scanning systems create electronic or software copies of textual documents.
- each OCR scanning system includes a scanning device that captures an image of a document.
- Software referred to as an “OCR package,” associated with the scanning system is then executed to analyze the captured image in order to interpret the text of the scanned document.
- OCR package Software, referred to as an “OCR package,” associated with the scanning system is then executed to analyze the captured image in order to interpret the text of the scanned document.
- OCR package Software, referred to as an “OCR package,” associated with the scanning system is then executed to analyze the captured image in order to interpret the text of the scanned document.
- OCR package Software, referred to as an “OCR package,” associated with the scanning system is then executed to analyze the captured image in order to interpret the text of the scanned document.
- a software copy of the text is created which can be stored and manipulated according to conventional processing techniques.
- the OCR package In order to improve performance of the scanning system, it is desirable for the OCR package to be specifically tailored to the language of the scanned document. For example, the characters and words used by different languages (e.g., English, French, Spanish, etc.) are often different. Therefore, to achieve the best results, one OCR package specifically tailored for documents written in the English language should be used to interpret the image of an English language document, and another OCR specifically tailored for French should be used to interpret the image of a French language document.
- languages e.g., English, French, Spanish, etc.
- OCR scanning systems do not provide the capability of dynamically switching which OCR packages are used to analyze and interpret the documents scanned by the OCR scanning system.
- most conventional OCR scanning systems are initialized to use a particular OCR package. Some systems allow the user to select a particular OCR package at initialization while other systems are automatically initialized to use a default OCR package. These conventional systems utilize the OCR package selected during initialization to analyze and interpret each document scanned by the system. If the user wishes to utilize a different OCR package after initialization, the user is usually required to reinstall the scanning application along with the different OCR package so that the system may be initialized or otherwise configured to use the different OCR package.
- a system and method for dynamically switching OCR packages used to analyze and interpret the text of scanned documents utilizes a memory device, a registry, a scanning application, a processor, and a scanning device.
- the scanning device is configured to capture an image of a document in response to a scan command from the scanning application.
- the scanning application locally stores a set of current parameter values indicating the location in the memory device of the OCR package that should be used to currently analyze and interpret images produced by the scanning device. If the scanning application receives a message to update the current parameter values, the scanning application retrieves new parameter values from the registry and stores these values in the memory device as the current parameter values.
- the scanning application receives a message to initiate a document scan, the scanning application transmits the scan command to the scanning device and retrieves the current parameter values from the memory device.
- the processor uses these retrieved parameter values to locate code defining an OCR package. Once the OCR package is located, the processor executes the OCR package to analyze and interpret the image produced by the scanning device.
- An OCR utility is also disclosed.
- the OCR utility is configured to interface with a user to determine when the user would like to select a new OCR package. When the user would like to select a new OCR package, the OCR utility updates the registry then transmits an update notification to the scanning application.
- the present invention can also be viewed as providing a method for electronically scanning images of text documents into memory.
- the method can be broadly conceptualized by the following steps: providing a scanning device; providing a plurality of optical character recognition (OCR) packages to analyze images captured by the scanning device; capturing an image of a document via the scanning device; enabling a user to dynamically select one of the plurality of OCR packages; indicating which of a plurality of OCR packages is selected by the user; and analyzing the image with said OCR package that is indicated as being selected by the user in the indicating step.
- OCR optical character recognition
- FIG. 1 is a block diagram illustrating an embodiment of an optical character recognition (OCR) scanning system.
- OCR optical character recognition
- FIG. 2 is a block diagram illustrating an embodiment of a computer system employing the OCR-scanning system of FIG. 1.
- FIG. 3 is a flow chart illustrating the architecture and functionality of the scanning application of FIG. 1.
- FIG. 4 is a flow chart illustrating the architecture and functionality of the OCR utility of FIG. 1.
- FIG. 5 is a flow chart illustrating a process implemented by the system depicted in FIG. 1.
- FIG. 6 is a flow chart illustrating the initialization of the scanning application and the registry depicted in FIG. 1.
- OCR scanning system that may be quickly and easily configured to apply one of a number of different OCR packages is illustrated and described below.
- the improved OCR scanning system has the flexibility to permit the scanning of documents written in multiple languages, with greater accuracy and efficiency than systems that apply a single OCR methodology to the image of a scanned document.
- FIG. 1 depicts an optical character recognition (OCR) scanning system 20 in accordance with the present invention.
- the system 20 includes a scanning application 24 , a scanning device 25 , an OCR utility 27 , a registry 28 , and a plurality of OCR packages 29 .
- the scanning device 25 is designed to capture an image of a document, and the OCR packages 29 are configured to analyze and interpret the text of the captured image.
- the registry 28 indicates which of the OCR packages 29 should be used to currently analyze and interpret the images of scanned documents.
- the scanning application 24 is configured to control the process of scanning and interpreting the text of a document
- the OCR utility 27 is configured to control the process of switching which OCR package 29 is utilized to interpret the scanned documents.
- the scanning application 24 , the OCR utility 27 , and the OCR packages 29 can be implemented in software, hardware, or a combination thereof.
- the scanning application 24 , the OCR utility 27 and the OCR packages 29 along with their associated methodology are implemented in software and stored in computer memory 31 of a computer system 30 .
- the scanning application 24 , the OCR utility 27 , and the OCR packages 29 when implemented in software, can be stored and transported on any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions.
- a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
- the computer readable medium can be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium.
- the computer-readable medium would include the following: an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a random-access memory (RAM) (magnetic), a read-only memory (ROM) (magnetic), an erasable-programmable read-only memory (EPROM or Flash memory) (magnetic), an optical fiber (optical), and a portable compact disc read-only memory (CDROM) (optical).
- an electrical connection electronic having one or more wires
- a portable computer diskette magnetic
- RAM random-access memory
- ROM read-only memory
- EPROM or Flash memory erasable-programmable read-only memory
- CDROM portable compact disc read-only memory
- the computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in a computer memory.
- the scanning application 24 , the OCR utility 27 , and the OCR packages 29 may be magnetically stored and transported on a conventional portable computer diskette(s).
- the computer system 30 of FIG. 2 comprises one or more conventional processing elements 32 , such as a digital signal processor (DSP), that communicate to and drive the other elements within the system 30 via a local interface 33 , which can include one or more buses.
- DSP digital signal processor
- an input device 34 for example, a keyboard or a mouse, can be used to input data from a user of the system 30
- screen display 35 or a printer 36 can be used to output data to the user.
- a disk storage mechanism 37 can be connected to the local interface 33 to transfer data to and from a nonvolatile disk(s) (e.g., magnetic, optical, etc.).
- the local interface 33 can be connected to a registry 28 that, as known in the art, includes information regarding operation of the computer system 30 .
- the system 30 can be connected to a network interface 41 that allows the system 30 to exchange data with a network 43 .
- system 30 can be connected to scanning device 25 , which is a well-known device configured to capture an electronic image of a document.
- FIG. 3 depicts the architecture and functionality of the scanning application 24 .
- the scanning application 24 is configured to retrieve OCR-parameter values from registry 28 during initialization of the scanning application 24 .
- the retrieved OCR-parameter values indicate the location in memory of a particular OCR package 29 .
- each OCR package 29 is configured to analyze an image captured by the scanning device 25 in order to interpret the text included in the image.
- each OCR package 29 is usually tailored to a particular language, such as English, Spanish or French, for example, and therefore is configured differently than other OCR packages 29 .
- the registry 28 is designed to indicate which set of OCR-parameter values is current via utilization of a pointer or some other suitable structure and/or technique. The selection of the current OCR-parameter values will be discussed in further detail below.
- the scanning application 24 retrieves OCR-parameter values from the registry 28 , the scanning application 24 is configured to determine which set of OCR-parameter values is indicated as current by the registry 28 and to retrieve the current OCR-parameter values.
- the scanning application 24 After retrieving the current OCR-parameter values from registry 28 , the scanning application 24 is designed to store the current OCR-parameter values in memory 31 , as shown by block 65 of FIG. 3. Then, the scanning application 24 is designed to wait for a notification to either initiate a document scan or to update the OCR package 29 used to scan documents, as shown by blocks 71 and 73 of FIG. 3.
- the scanning application 24 is designed to update the current OCR-parameter values stored in memory 31 by repeating blocks 61 and 65 , as shown by FIG. 3. Therefore, the scanning application 24 is designed to retrieve new OCR-parameter values and to store these new OCR-parameter values in memory 31 in response to the notification to update the OCR-parameter values.
- the new OCR-parameter values correspond to the OCR-parameter values indicated as current by the registry 28 when the scanning application 24 retrieves the new OCR-parameter values.
- the scanning application 24 is designed to instruct the scanning device 25 to capture an image, as shown by block 74 .
- the scanning application 24 is designed to retrieve the OCR-parameter values that were most recently stored in memory 31 in block 65 (i.e., the current OCR-parameter values).
- the OCR package 29 at the location in memory 31 defined by the current OCR-parameter values retrieved in block 76 is then executed to interpret and define the text included in the captured image, as depicted by block 79 . Thereafter, the data produced by the execution of the OCR package 29 (i.e., the data defining the text of the captured image) can be stored and manipulated as desired according to techniques well known in the art.
- the architecture and functionality of the OCR utility 27 is shown by FIG. 4. As shown by blocks 83 and 85 , the OCR utility 27 , through techniques known in the art, is designed to utilize user interfaces (e.g., input device 34 and display 35 ) to determine whether a user wishes to select a new OCR package 29 .
- user interfaces e.g., input device 34 and display 35
- the OCR utility 27 determines that the user wishes to select a new OCR package 29 , then the OCR utility 27 is first designed to update the registry 28 , as shown by block 88 .
- the OCR utility 27 is designed to change which set of OCR-parameter values are indicated as current by the registry 28 so that the OCR-parameter values corresponding with the OCR package 29 (i.e., defining the location in memory of the OCR package 29 ) currently selected by the user are indicated by the registry 28 as current.
- the OCR utility 27 is configured to transmit a notification to the scanning application 24 to notify the scanning application 24 of the selection of the new OCR package 29 .
- the scanning application 24 updates the current OCR-parameter values stored in memory 31 , as described above.
- scanning device 25 , scanning application 24 , and OCR utility 27 are initially installed on the computer system 30 , as shown by block 101 . Furthermore, at least one OCR package 29 is installed in block 101 , although it is possible to install the OCR package(s) 29 at other times.
- code defining the scanning application 24 , OCR utility 27 , and OCR package 29 is stored in memory 31 . In this regard, the code can be read from a disk(s) located in the disk storage device 37 , through techniques known in the art.
- the scanning application 24 and registry 28 are initialized, as shown by block 103 .
- the registry 28 includes information pertaining to the operation of the system 30 .
- This information includes the OCR-parameter values (i.e., values indicating the location in memory 31 of an OCR package 29 , associated with each OCR package 29 installed on the system 30 .
- the registry 28 is initialized by indicating which set of OCR-parameter values is current, as depicted by block 104 (FIG. 6).
- a pointer can be defined that points to the OCR-parameter values that are selected as current.
- the current OCR-parameter values can be selected during initialization based on default standards or on inputs received from the user.
- the OCR-parameter values indicated by the registry 28 as current can be changed, as desired.
- the scanning application 24 is initialized by reading the current OCR-parameter values from the registry 28 and storing these values in memory 31 , as shown by block 105 and 107 (FIG. 6).
- a user may specify via input device 34 to initiate a document scan.
- the current OCR-parameter values selected during initialization define the location of an English language OCR package 29 and that the user wishes to scan an English language document. Since the current OCR-parameter values correspond to an English language OCR package 29 , the current OCR-parameter values do not need to be updated before the user requests a document scan. Therefore, the user enters a request via input device 34 to scan the document, and the input device 34 transmits a scan message to the scanning application 24 indicating that a document is ready to be scanned.
- the scanning application 24 instructs the scanning device 25 to capture an image of the document, as shown by blocks 73 and 74 . Then, in block 76 , the scanning application 24 retrieves the current OCR-parameter values stored in memory 31 . These values indicate the location in memory 31 of the currently selected OCR package 29 (i.e., the English language OCR package 29 in this example) and are used in block 79 by the processing element 32 (FIG. 2) to execute the code defined by the data located at this location. During execution, the OCR package 29 interprets the text of the scanned document by analyzing an image of the document through techniques known in the art. Once the text is interpreted and defined in data, the text can be manipulated, stored, and/or printed through techniques known in the art.
- the user desires to scan a document written in the French language. Since the currently selected OCR package 29 (i.e., the English language OCR package 29 in this example) does not correspond with the language of the document to be scanned, the selected OCR package 29 should be changed. In this regard, the user via input device 34 indicates that the selected OCR package 29 should be a French language OCR package 29 .
- the OCR utility 27 updates the registry 28 such that the registry 28 now indicates that another set of OCR-parameter values is labeled as current, as shown by blocks 71 and 88 .
- the registry 29 is updated such that a set of OCR-parameter values defining the location of a French language OCR package 29 are indicated as current.
- the OCR utility 27 transmits an update message to the scanning application 24 in block 91 to update the current OCR-parameter values (i.e., to change the OCR package 29 used to analyze and interpret images).
- the scanning application 24 in blocks 61 and 65 retrieves the OCR-parameter values indicated by the registry 28 as current and stores these values in memory 31 as the current OCR-parameter values.
- these OCR-parameter values indicate the location in memory 31 of the French language OCR package 29 .
- the scanning application 24 instructs the scanning device 25 to capture an image of the document, as depicted by block 74 .
- the scanning application 24 in block 76 retrieves the current OCR-parameter values stored in memory 31 (i.e., the OCR-parameter values defining the location in memory 31 of the French language OCR package 29 in the example described above), and the code located at the location in memory 31 defined by these OCR-parameter values is executed, as shown by block 79 .
- the execution of this code results in an analysis and interpretation of the text of the scanned document. Once the text is interpreted, it can be defined in data and manipulated, stored, and/or printed through conventional techniques.
- OCR packages 29 can be utilized to scan and interpret documents without rebooting the system 30 or reinstalling the scanning application 24 along with a new OCR package 29 .
- a user can dynamically change which OCR package 29 is used to scan a document, thereby increasing the efficiency of the system 30 .
- the OCR utility 27 can then determine whether the currently selected OCR package 29 is suitable for analyzing the document. If the currently selected OCR package 29 is suitable, then the scanning application 24 may begin the described operation. However, if the currently selected OCR package is not suitable, then the selection of the current OCR package 29 is changed according to the techniques described above.
- the following is an example of code that may be used to implement a portion of the functionality of the scanning application 24 .
- the following code gives the scanning application 24 the capability of detecting a notification to update which OCR package 29 is currently selected and of updating the current OCR-parameter values stored in memory 31 in response to the notification.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Character Discrimination (AREA)
- Character Input (AREA)
Abstract
Description
- The present application is a continuation-in-part and claims the benefit of co-pending U.S. utility patent application entitled, “System and Method for Dynamically Switching OCR Packages,” issued Ser. No. 09/263,190, and filed Mar. 5, 1999, which is hereby incorporated by reference in its entirety.
- The present invention generally relates to computer systems and, in particular, to a system and method for dynamically changing which optical character recognition (OCR) package is used to analyze an image captured by an optical scanner.
- Optical character recognition (OCR) scanning systems create electronic or software copies of textual documents. In this regard, each OCR scanning system includes a scanning device that captures an image of a document. Software, referred to as an “OCR package,” associated with the scanning system is then executed to analyze the captured image in order to interpret the text of the scanned document. Once the text is determined by the OCR package, a software copy of the text is created which can be stored and manipulated according to conventional processing techniques. U.S. Pat. No. 5,212,739 entitled, “Noise Tolerant Optical Character Recognition System,” which is incorporated herein by reference, describes an OCR system capable of analyzing a scanned image to create a software copy of the text included within the scanned image.
- In order to improve performance of the scanning system, it is desirable for the OCR package to be specifically tailored to the language of the scanned document. For example, the characters and words used by different languages (e.g., English, French, Spanish, etc.) are often different. Therefore, to achieve the best results, one OCR package specifically tailored for documents written in the English language should be used to interpret the image of an English language document, and another OCR specifically tailored for French should be used to interpret the image of a French language document.
- Unfortunately, most OCR scanning systems do not provide the capability of dynamically switching which OCR packages are used to analyze and interpret the documents scanned by the OCR scanning system. In this regard, most conventional OCR scanning systems are initialized to use a particular OCR package. Some systems allow the user to select a particular OCR package at initialization while other systems are automatically initialized to use a default OCR package. These conventional systems utilize the OCR package selected during initialization to analyze and interpret each document scanned by the system. If the user wishes to utilize a different OCR package after initialization, the user is usually required to reinstall the scanning application along with the different OCR package so that the system may be initialized or otherwise configured to use the different OCR package.
- As a result, significant delays are experienced when the user needs to scan a document with an OCR scanning system that has not been initialized to use the proper OCR package for analyzing the document. Thus, an unaddressed need exists in the industry for providing a system and method for efficiently switching the OCR package used to analyze and interpret the text of a scanned document.
- A system and method for dynamically switching OCR packages used to analyze and interpret the text of scanned documents is invented and disclosed. The system utilizes a memory device, a registry, a scanning application, a processor, and a scanning device. The scanning device is configured to capture an image of a document in response to a scan command from the scanning application. The scanning application locally stores a set of current parameter values indicating the location in the memory device of the OCR package that should be used to currently analyze and interpret images produced by the scanning device. If the scanning application receives a message to update the current parameter values, the scanning application retrieves new parameter values from the registry and stores these values in the memory device as the current parameter values. If the scanning application receives a message to initiate a document scan, the scanning application transmits the scan command to the scanning device and retrieves the current parameter values from the memory device. The processor uses these retrieved parameter values to locate code defining an OCR package. Once the OCR package is located, the processor executes the OCR package to analyze and interpret the image produced by the scanning device.
- An OCR utility is also disclosed. The OCR utility is configured to interface with a user to determine when the user would like to select a new OCR package. When the user would like to select a new OCR package, the OCR utility updates the registry then transmits an update notification to the scanning application.
- The present invention can also be viewed as providing a method for electronically scanning images of text documents into memory. Briefly described, the method can be broadly conceptualized by the following steps: providing a scanning device; providing a plurality of optical character recognition (OCR) packages to analyze images captured by the scanning device; capturing an image of a document via the scanning device; enabling a user to dynamically select one of the plurality of OCR packages; indicating which of a plurality of OCR packages is selected by the user; and analyzing the image with said OCR package that is indicated as being selected by the user in the indicating step.
- Other features and advantages of the present invention will become apparent to one skilled in the art upon examination of the following detailed description, when read in conjunction with the accompanying drawings. It is intended that all such features are included within the scope of the present invention, as is defined by the
- The invention can be better understood with reference to the following drawings. The elements of the drawings are not necessarily to scale relative to each other, emphasis instead is placed upon clearly illustrating the principles of the invention. Furthermore, like reference numerals designate corresponding parts throughout the several views.
- FIG. 1 is a block diagram illustrating an embodiment of an optical character recognition (OCR) scanning system.
- FIG. 2 is a block diagram illustrating an embodiment of a computer system employing the OCR-scanning system of FIG. 1.
- FIG. 3 is a flow chart illustrating the architecture and functionality of the scanning application of FIG. 1.
- FIG. 4 is a flow chart illustrating the architecture and functionality of the OCR utility of FIG. 1.
- FIG. 5 is a flow chart illustrating a process implemented by the system depicted in FIG. 1.
- FIG. 6 is a flow chart illustrating the initialization of the scanning application and the registry depicted in FIG. 1.
- An improved optical character recognition (OCR) scanning system that may be quickly and easily configured to apply one of a number of different OCR packages is illustrated and described below. The improved OCR scanning system has the flexibility to permit the scanning of documents written in multiple languages, with greater accuracy and efficiency than systems that apply a single OCR methodology to the image of a scanned document.
- FIG. 1 depicts an optical character recognition (OCR)
scanning system 20 in accordance with the present invention. As shown by FIG. 1, thesystem 20 includes ascanning application 24, ascanning device 25, anOCR utility 27, aregistry 28, and a plurality ofOCR packages 29. Thescanning device 25 is designed to capture an image of a document, and theOCR packages 29 are configured to analyze and interpret the text of the captured image. Theregistry 28 indicates which of theOCR packages 29 should be used to currently analyze and interpret the images of scanned documents. Thescanning application 24 is configured to control the process of scanning and interpreting the text of a document, and theOCR utility 27 is configured to control the process of switching whichOCR package 29 is utilized to interpret the scanned documents. - The
scanning application 24, the OCRutility 27, and theOCR packages 29 can be implemented in software, hardware, or a combination thereof. In the preferred embodiment, as illustrated by way of example in FIG. 2, thescanning application 24, the OCRutility 27 and theOCR packages 29 along with their associated methodology are implemented in software and stored incomputer memory 31 of acomputer system 30. - Note that the
scanning application 24, theOCR utility 27, and theOCR packages 29, when implemented in software, can be stored and transported on any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer readable medium can be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a random-access memory (RAM) (magnetic), a read-only memory (ROM) (magnetic), an erasable-programmable read-only memory (EPROM or Flash memory) (magnetic), an optical fiber (optical), and a portable compact disc read-only memory (CDROM) (optical). Note that the computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in a computer memory. As an example, thescanning application 24, theOCR utility 27, and theOCR packages 29 may be magnetically stored and transported on a conventional portable computer diskette(s). - The
computer system 30 of FIG. 2 comprises one or moreconventional processing elements 32, such as a digital signal processor (DSP), that communicate to and drive the other elements within thesystem 30 via alocal interface 33, which can include one or more buses. Furthermore, aninput device 34, for example, a keyboard or a mouse, can be used to input data from a user of thesystem 30, andscreen display 35 or aprinter 36 can be used to output data to the user. Adisk storage mechanism 37 can be connected to thelocal interface 33 to transfer data to and from a nonvolatile disk(s) (e.g., magnetic, optical, etc.). In addition, thelocal interface 33 can be connected to aregistry 28 that, as known in the art, includes information regarding operation of thecomputer system 30. Thesystem 30 can be connected to anetwork interface 41 that allows thesystem 30 to exchange data with anetwork 43. Furthermore,system 30 can be connected to scanningdevice 25, which is a well-known device configured to capture an electronic image of a document. - FIG. 3 depicts the architecture and functionality of the
scanning application 24. As shown byblock 61 of FIG. 3, thescanning application 24 is configured to retrieve OCR-parameter values fromregistry 28 during initialization of thescanning application 24. The retrieved OCR-parameter values indicate the location in memory of aparticular OCR package 29. As known in the art, eachOCR package 29 is configured to analyze an image captured by thescanning device 25 in order to interpret the text included in the image. As described above in the Background section, eachOCR package 29 is usually tailored to a particular language, such as English, Spanish or French, for example, and therefore is configured differently than other OCR packages 29. - The
registry 28 is designed to indicate which set of OCR-parameter values is current via utilization of a pointer or some other suitable structure and/or technique. The selection of the current OCR-parameter values will be discussed in further detail below. When thescanning application 24 retrieves OCR-parameter values from theregistry 28, thescanning application 24 is configured to determine which set of OCR-parameter values is indicated as current by theregistry 28 and to retrieve the current OCR-parameter values. - After retrieving the current OCR-parameter values from
registry 28, thescanning application 24 is designed to store the current OCR-parameter values inmemory 31, as shown byblock 65 of FIG. 3. Then, thescanning application 24 is designed to wait for a notification to either initiate a document scan or to update theOCR package 29 used to scan documents, as shown by 71 and 73 of FIG. 3.blocks - If a notification to update the
OCR package 29 is received or detected, then thescanning application 24 is designed to update the current OCR-parameter values stored inmemory 31 by repeating 61 and 65, as shown by FIG. 3. Therefore, theblocks scanning application 24 is designed to retrieve new OCR-parameter values and to store these new OCR-parameter values inmemory 31 in response to the notification to update the OCR-parameter values. The new OCR-parameter values correspond to the OCR-parameter values indicated as current by theregistry 28 when thescanning application 24 retrieves the new OCR-parameter values. - However, if a notification to initiate a document scan is received or detected, then the
scanning application 24 is designed to instruct thescanning device 25 to capture an image, as shown byblock 74. Once the image is captured, thescanning application 24, as shown byblock 76, is designed to retrieve the OCR-parameter values that were most recently stored inmemory 31 in block 65 (i.e., the current OCR-parameter values). TheOCR package 29 at the location inmemory 31 defined by the current OCR-parameter values retrieved inblock 76 is then executed to interpret and define the text included in the captured image, as depicted byblock 79. Thereafter, the data produced by the execution of the OCR package 29 (i.e., the data defining the text of the captured image) can be stored and manipulated as desired according to techniques well known in the art. - The architecture and functionality of the
OCR utility 27 is shown by FIG. 4. As shown byblocks 83 and 85, theOCR utility 27, through techniques known in the art, is designed to utilize user interfaces (e.g.,input device 34 and display 35) to determine whether a user wishes to select anew OCR package 29. - If the
OCR utility 27 determines that the user wishes to select anew OCR package 29, then theOCR utility 27 is first designed to update theregistry 28, as shown byblock 88. In this regard, theOCR utility 27 is designed to change which set of OCR-parameter values are indicated as current by theregistry 28 so that the OCR-parameter values corresponding with the OCR package 29 (i.e., defining the location in memory of the OCR package 29) currently selected by the user are indicated by theregistry 28 as current. Then, as depicted byblock 91, theOCR utility 27 is configured to transmit a notification to thescanning application 24 to notify thescanning application 24 of the selection of thenew OCR package 29. In response, thescanning application 24 updates the current OCR-parameter values stored inmemory 31, as described above. - The preferred use and operation of the
system 20 and associated methodology are described below. Referring to FIG. 5,scanning device 25, scanningapplication 24, andOCR utility 27 are initially installed on thecomputer system 30, as shown byblock 101. Furthermore, at least oneOCR package 29 is installed inblock 101, although it is possible to install the OCR package(s) 29 at other times. To install thescanning application 24,OCR utility 27, andOCR package 29, code defining thescanning application 24,OCR utility 27, andOCR package 29 is stored inmemory 31. In this regard, the code can be read from a disk(s) located in thedisk storage device 37, through techniques known in the art. - Next, the
scanning application 24 andregistry 28 are initialized, as shown byblock 103. As known in the art, theregistry 28 includes information pertaining to the operation of thesystem 30. This information includes the OCR-parameter values (i.e., values indicating the location inmemory 31 of anOCR package 29, associated with eachOCR package 29 installed on thesystem 30. Theregistry 28 is initialized by indicating which set of OCR-parameter values is current, as depicted by block 104 (FIG. 6). For example, a pointer can be defined that points to the OCR-parameter values that are selected as current. The current OCR-parameter values can be selected during initialization based on default standards or on inputs received from the user. As will be discussed in further detail below, the OCR-parameter values indicated by theregistry 28 as current can be changed, as desired. Once theregistry 28 is initialized, thescanning application 24 is initialized by reading the current OCR-parameter values from theregistry 28 and storing these values inmemory 31, as shown byblock 105 and 107 (FIG. 6). - After initialization, a user may specify via
input device 34 to initiate a document scan. For example, assume that the current OCR-parameter values selected during initialization define the location of an Englishlanguage OCR package 29 and that the user wishes to scan an English language document. Since the current OCR-parameter values correspond to an Englishlanguage OCR package 29, the current OCR-parameter values do not need to be updated before the user requests a document scan. Therefore, the user enters a request viainput device 34 to scan the document, and theinput device 34 transmits a scan message to thescanning application 24 indicating that a document is ready to be scanned. - In response, the
scanning application 24 instructs thescanning device 25 to capture an image of the document, as shown by 73 and 74. Then, inblocks block 76, thescanning application 24 retrieves the current OCR-parameter values stored inmemory 31. These values indicate the location inmemory 31 of the currently selected OCR package 29 (i.e., the Englishlanguage OCR package 29 in this example) and are used inblock 79 by the processing element 32 (FIG. 2) to execute the code defined by the data located at this location. During execution, theOCR package 29 interprets the text of the scanned document by analyzing an image of the document through techniques known in the art. Once the text is interpreted and defined in data, the text can be manipulated, stored, and/or printed through techniques known in the art. - Assume now that the user desires to scan a document written in the French language. Since the currently selected OCR package 29 (i.e., the English
language OCR package 29 in this example) does not correspond with the language of the document to be scanned, the selectedOCR package 29 should be changed. In this regard, the user viainput device 34 indicates that the selectedOCR package 29 should be a Frenchlanguage OCR package 29. In response, theOCR utility 27 updates theregistry 28 such that theregistry 28 now indicates that another set of OCR-parameter values is labeled as current, as shown by 71 and 88. In particular, theblocks registry 29 is updated such that a set of OCR-parameter values defining the location of a Frenchlanguage OCR package 29 are indicated as current. - Once the
registry 28 is updated, theOCR utility 27 transmits an update message to thescanning application 24 inblock 91 to update the current OCR-parameter values (i.e., to change theOCR package 29 used to analyze and interpret images). In response, thescanning application 24 in 61 and 65 retrieves the OCR-parameter values indicated by theblocks registry 28 as current and stores these values inmemory 31 as the current OCR-parameter values. In the example described above, these OCR-parameter values indicate the location inmemory 31 of the Frenchlanguage OCR package 29. - Next, after the user indicates that the French document is ready to be scanned and a scan message is detected by the
scanning application 24, thescanning application 24 instructs thescanning device 25 to capture an image of the document, as depicted byblock 74. Then, thescanning application 24 inblock 76 retrieves the current OCR-parameter values stored in memory 31 (i.e., the OCR-parameter values defining the location inmemory 31 of the Frenchlanguage OCR package 29 in the example described above), and the code located at the location inmemory 31 defined by these OCR-parameter values is executed, as shown byblock 79. The execution of this code results in an analysis and interpretation of the text of the scanned document. Once the text is interpreted, it can be defined in data and manipulated, stored, and/or printed through conventional techniques. - As a result, different OCR packages 29 can be utilized to scan and interpret documents without rebooting the
system 30 or reinstalling thescanning application 24 along with anew OCR package 29. In other words, a user can dynamically change whichOCR package 29 is used to scan a document, thereby increasing the efficiency of thesystem 30. - It should be noted that it is not necessary for the user to request a change to the
current OCR package 29 used by thesystem 20. In this regard, it is possible for a user to merely specify that a document is ready to be scanned and the language of the document. TheOCR utility 27 can then determine whether the currently selectedOCR package 29 is suitable for analyzing the document. If the currently selectedOCR package 29 is suitable, then thescanning application 24 may begin the described operation. However, if the currently selected OCR package is not suitable, then the selection of thecurrent OCR package 29 is changed according to the techniques described above. - The following is an example of code that may be used to implement a portion of the functionality of the
scanning application 24. In this regard, the following code gives thescanning application 24 the capability of detecting a notification to update whichOCR package 29 is currently selected and of updating the current OCR-parameter values stored inmemory 31 in response to the notification.LRESULT CMainFrame::OnOCRUpdate(WPARAM wParam, LPARAM lParam) { // Load Strategy Settings HKEY regkey; LONG retcode = RegOpenKeyEx (HKEY_LOCAL_MACHINE, “Software\\Hewlett-Packard\\ScanJet\\IST\\1.1\\”, 0, KEY_QUERY_VALUE, ®key); If (retcode == ERROR_SUCCESS) { ESTRATEGY Strategy; char OCRPath[500]; DWORD Size = sizeof (OCRPath); If (RegQueryValueEx (regkey, “OCR Path”, NULL, NULL, (UINT8*) OCRPath, &Size) == ERROR_SUCCESS) { REAL_FILE *pOCRfile = new REAL_FILE; { pOCRFile−>SetName (OCRPath); }}}} - In concluding the detailed description, it should be noted that it will be obvious to those skilled in the art that many variations and modifications may be made to the preferred embodiment without substantially departing from the principles of the present invention. All such variations and modifications are intended to be included within the scope of the present invention, as set forth in the following claims.
Claims (16)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/099,605 US20020186883A1 (en) | 1999-03-05 | 2002-03-14 | System and method for dynamically switching optical character recognition packages |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US26319099A | 1999-03-05 | 1999-03-05 | |
| US10/099,605 US20020186883A1 (en) | 1999-03-05 | 2002-03-14 | System and method for dynamically switching optical character recognition packages |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US26319099A Continuation-In-Part | 1999-03-05 | 1999-03-05 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20020186883A1 true US20020186883A1 (en) | 2002-12-12 |
Family
ID=23000768
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US09/263,190 Expired - Fee Related US6567547B1 (en) | 1999-03-05 | 1999-03-05 | System and method for dynamically switching OCR packages |
| US10/099,605 Abandoned US20020186883A1 (en) | 1999-03-05 | 2002-03-14 | System and method for dynamically switching optical character recognition packages |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US09/263,190 Expired - Fee Related US6567547B1 (en) | 1999-03-05 | 1999-03-05 | System and method for dynamically switching OCR packages |
Country Status (2)
| Country | Link |
|---|---|
| US (2) | US6567547B1 (en) |
| EP (1) | EP1037162A3 (en) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060072823A1 (en) * | 2004-10-04 | 2006-04-06 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
| US20070216651A1 (en) * | 2004-03-23 | 2007-09-20 | Sanjay Patel | Human-to-Computer Interfaces |
| US20080266263A1 (en) * | 2005-03-23 | 2008-10-30 | Keypoint Technologies (Uk) Limited | Human-To-Mobile Interfaces |
| US20090055732A1 (en) * | 2005-03-23 | 2009-02-26 | Keypoint Technologies (Uk) Limited | Human-to-mobile interfaces |
| US20150070724A1 (en) * | 2013-09-12 | 2015-03-12 | Ricoh Company, Limited | Information processing system and information processing method |
| US9330086B2 (en) | 2012-10-10 | 2016-05-03 | Motorola Solutions, Inc. | Method and apparatus for identifying a language used in a document and performing OCR recognition based on the language identified |
| US10192127B1 (en) | 2017-07-24 | 2019-01-29 | Bank Of America Corporation | System for dynamic optical character recognition tuning |
| US10346702B2 (en) | 2017-07-24 | 2019-07-09 | Bank Of America Corporation | Image data capture and conversion |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2003100641A1 (en) * | 2002-05-28 | 2003-12-04 | Toshiba Corporation | System and method for generating and transferring image data |
| JP4016996B2 (en) * | 2005-04-19 | 2007-12-05 | コニカミノルタビジネステクノロジーズ株式会社 | Image processing system, image processing apparatus, and image processing program |
| US9141607B1 (en) * | 2007-05-30 | 2015-09-22 | Google Inc. | Determining optical character recognition parameters |
| US8983190B2 (en) | 2013-08-13 | 2015-03-17 | Bank Of America Corporation | Dynamic service configuration during OCR capture |
| US9514376B2 (en) * | 2014-04-29 | 2016-12-06 | Google Inc. | Techniques for distributed optical character recognition and distributed machine language translation |
| US9514377B2 (en) * | 2014-04-29 | 2016-12-06 | Google Inc. | Techniques for distributed optical character recognition and distributed machine language translation |
| JP6655331B2 (en) * | 2015-09-24 | 2020-02-26 | Dynabook株式会社 | Electronic equipment and methods |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0664631B2 (en) | 1987-09-09 | 1994-08-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Character recognition device |
| US5016173A (en) * | 1989-04-13 | 1991-05-14 | Vanguard Imaging Ltd. | Apparatus and method for monitoring visually accessible surfaces of the body |
| US5101436A (en) * | 1990-05-11 | 1992-03-31 | Optigraphics Corporation | Hybrid image editor |
| US5212739A (en) | 1990-10-17 | 1993-05-18 | Hewlett-Packard Company | Noise tolerant optical character recognition system |
| US5237627A (en) | 1991-06-27 | 1993-08-17 | Hewlett-Packard Company | Noise tolerant optical character recognition system |
| US5901255A (en) | 1992-02-07 | 1999-05-04 | Canon Kabushiki Kaisha | Pattern recognition method and apparatus capable of selecting another one of plural pattern recognition modes in response to a number of rejects of recognition-processed pattern segments |
| JP3213197B2 (en) * | 1994-04-20 | 2001-10-02 | キヤノン株式会社 | Image processing apparatus and control method thereof |
-
1999
- 1999-03-05 US US09/263,190 patent/US6567547B1/en not_active Expired - Fee Related
-
2000
- 2000-02-18 EP EP00301277A patent/EP1037162A3/en not_active Withdrawn
-
2002
- 2002-03-14 US US10/099,605 patent/US20020186883A1/en not_active Abandoned
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070216651A1 (en) * | 2004-03-23 | 2007-09-20 | Sanjay Patel | Human-to-Computer Interfaces |
| US9678580B2 (en) * | 2004-03-23 | 2017-06-13 | Keypoint Technologies (UK) Limted | Human-to-computer interfaces |
| US20060072823A1 (en) * | 2004-10-04 | 2006-04-06 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
| US8224131B2 (en) * | 2004-10-04 | 2012-07-17 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
| US20080266263A1 (en) * | 2005-03-23 | 2008-10-30 | Keypoint Technologies (Uk) Limited | Human-To-Mobile Interfaces |
| US20090055732A1 (en) * | 2005-03-23 | 2009-02-26 | Keypoint Technologies (Uk) Limited | Human-to-mobile interfaces |
| US9798717B2 (en) | 2005-03-23 | 2017-10-24 | Keypoint Technologies (Uk) Limited | Human-to-mobile interfaces |
| US10365727B2 (en) | 2005-03-23 | 2019-07-30 | Keypoint Technologies (Uk) Limited | Human-to-mobile interfaces |
| US9330086B2 (en) | 2012-10-10 | 2016-05-03 | Motorola Solutions, Inc. | Method and apparatus for identifying a language used in a document and performing OCR recognition based on the language identified |
| US20150070724A1 (en) * | 2013-09-12 | 2015-03-12 | Ricoh Company, Limited | Information processing system and information processing method |
| US10192127B1 (en) | 2017-07-24 | 2019-01-29 | Bank Of America Corporation | System for dynamic optical character recognition tuning |
| US10346702B2 (en) | 2017-07-24 | 2019-07-09 | Bank Of America Corporation | Image data capture and conversion |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1037162A2 (en) | 2000-09-20 |
| EP1037162A3 (en) | 2002-05-22 |
| US6567547B1 (en) | 2003-05-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6567547B1 (en) | System and method for dynamically switching OCR packages | |
| US6947162B2 (en) | Systems and methods for converting the format of information | |
| US6662186B1 (en) | System and method for a data propagation file format | |
| US6006329A (en) | Detection of computer viruses spanning multiple data streams | |
| US20060294176A1 (en) | Customizable information processing apparatus | |
| AU634431B2 (en) | Japanese emulator | |
| US20030037302A1 (en) | Systems and methods for automatically converting document file formats | |
| CN101192153B (en) | Method and apparatus for obtaining user interface information from executable program code | |
| CN1164704A (en) | Emulating delayed exception on digital computer having corresponding precise exception mechanism | |
| US20070070443A1 (en) | Host device having extraction function of text and extraction method thereof | |
| US20080024834A1 (en) | Information registration apparatus for registering information onto registering destination on network and method thereof | |
| US7420701B2 (en) | Systems and methods for providing automatic language switching | |
| CN107832023B (en) | Information processing apparatus, method and storage medium | |
| US7369704B2 (en) | Image processing apparatus, image processing system, and image processing method | |
| US5572631A (en) | Common font rasterizer available to multiple printer personalities | |
| US20020073003A1 (en) | Disbursement tracking system | |
| US8218187B2 (en) | Method and apparatus for automatic language switching for an imaging device | |
| US5339409A (en) | Image storage/search apparatus for merging image and related key codes when match found between key code and specific character code of image | |
| CN113791745B (en) | Printing method, system and medium for multi-type files | |
| JP3689441B2 (en) | Electronic filing device and electronic filing method | |
| JP3610194B2 (en) | Print control apparatus, print control method, and storage medium storing computer-readable program | |
| JP2001282482A (en) | Data processing device and data processing method | |
| JP2003076996A (en) | Data processor and data processing program | |
| JPH06214793A (en) | Program prefetch method | |
| JP2002091957A (en) | Editing device and editing program storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: HEWLETT-PACKARD COMPANY, COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ROMAN, EDGAR M.;REEL/FRAME:013119/0439 Effective date: 20020509 |
|
| AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:013776/0928 Effective date: 20030131 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., COLORAD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:013776/0928 Effective date: 20030131 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.,COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:013776/0928 Effective date: 20030131 |
|
| AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492 Effective date: 20030926 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.,TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492 Effective date: 20030926 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |