System and method for performing optical character recognition on documents

By segmenting large documents and using parallel processing with cloud-based OCR nodes, the system addresses inefficiencies in OCR, reducing processing time and improving efficiency and accuracy for large document batches.

JP2026136092APending Publication Date: 2026-08-25KYOCERA DOCUMENT SOLUTIONS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2026018079
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-02-13
Filing Date
2026-02-05
Publication Date
2026-08-25

AI Technical Summary

Technical Problem

Existing document management systems face inefficiencies in Optical Character Recognition (OCR) processing, particularly for large documents, leading to prolonged waiting times due to sequential processing, which current methods fail to address without human intervention.

Method used

A method and system that divide large documents into smaller segments, insert markers for order, process these segments in parallel, and reassemble them post-processing, using cloud-based OCR nodes as needed to manage workload efficiently.

Benefits of technology

Significantly reduces OCR processing time for large documents by parallel processing and dynamic resource allocation, ensuring efficient and accurate conversion to searchable formats.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026136092000001_ABST
    Figure 2026136092000001_ABST
Patent Text Reader

Abstract

This invention provides a system and method for optimizing OCR (Optical Character Recognition) processing of uploaded documents. [Solution] The system and method classify uploaded documents into large and small documents based on their file size compared to a predetermined file size threshold. Small documents are sent to at least one OCR node for processing. Large documents are divided into multiple segmented small document files and then sent to at least one OCR node for processing. Markers are inserted into each of the multiple segmented small documents. The multiple segmented small documents are combined based on the inserted markers to reconstruct the original large document.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a system and method for managing uploaded documents. In particular, the present invention relates to a system that can divide a large document into a plurality of small documents in order to execute OCR processing in parallel, and then aggregate the plurality of small documents back into the original large document to improve the performance of OCR.

Background Art

[0002] Optical Character Recognition (OCR) is a technology that converts a scanned image of text printed on paper, for example, into an electronic document such as a machine-readable PDF. When performing OCR on a plurality of scanned documents uploaded at once, since the plurality of documents are processed sequentially, the waiting time of the user can become long. This is because, in the case of a relatively large document, it takes more time to execute OCR than for a relatively small document.

Summary of the Invention

Problems to be Solved by the Invention

[0003] Therefore, the present disclosure aims to improve the efficiency and accuracy of the performance of OCR for documents, particularly for a large number of loaded documents. At present, there is no document management system and method that can solve this problem without human intervention.

Means for Solving the Problems

[0004] A method for improving the optical character recognition (OCR) performance of uploaded documents is disclosed. The method involves dividing a document whose file size is greater than a predetermined file size threshold into multiple segmented document files, the file size of which is calculated according to the number of pages and resolution of the document, and inserting markers into the multiple segmented document files, each marker defining the position or order of the segmented document files that originally existed within the document. The method further includes sending the multiple segmented smaller document files to at least one OCR node to perform OCR processing on the multiple segmented smaller document files, and after the OCR is completed, concatenating all of the multiple segmented document files to restore the document according to the markers. The restored document is a searchable document.

[0005] In the method described above, the predetermined file size threshold is determined based on the upper limit of the number of pages and the upper limit of the resolution.

[0006] The above method further involves classifying multiple documents into large documents and small documents, where large documents have a file size greater than a file size threshold, and small documents have a file size less than a file size threshold.

[0007] In the method described above, the markers for each of the multiple segmented document files are stored in a memory cache and discarded after the OCR execution is complete. All of the multiple segmented document files are then combined to reconstruct the document.

[0008] The above method further includes monitoring newly received documents, calculating the file size of newly received documents, splitting received documents whose file size exceeds a file size threshold into multiple segmented document files, marking the multiple segmented document files using markers, and sending the received documents in the form of multiple segmented document files within the OCR job queue.

[0009] Furthermore, the above method includes sending documents and multiple segmented document files whose file size is below a file size threshold to an OCR job queue, monitoring the OCR job queue to determine whether the total file size of all document files sent to the OCR job queue has reached the maximum file size that at least one OCR node can handle, and assigning at least one additional OCR node to perform OCR on all document files sent to the OCR job queue. Monitoring is performed periodically or on demand.

[0010] The methods described above may also include redirecting jobs in a job queue to different OCR nodes, or requesting additional OCR nodes from cloud-based OCR node resources.

[0011] The above method further involves requesting additional OCR nodes from cloud-based OCR node resources.

[0012] In the method described above, the maximum file size that at least one OCR node can handle is predetermined.

[0013] Another method for improving the performance of optical character recognition (OCR) for multiple documents is also disclosed. This method includes classifying multiple documents by comparing the file size of the multiple documents with a predetermined file size threshold; dividing the documents into multiple segmented document files if the file size of the documents is greater than the predetermined file size threshold; inserting markers into each of the multiple segmented document files; sending the multiple segmented document files to at least one OCR node for OCR processing of the multiple segmented document files; and, after the OCR execution is complete, concatenating all of the multiple segmented document files to reconstruct the document according to the markers. The file size of the uploaded multiple documents is calculated based on the number of pages and resolution, and the file size threshold is determined by the upper limit of the number of pages and the upper limit of the resolution. The markers define the position and order of the individual segmented document files within the document.

[0014] In this method, each of the number of markers in the split document files is stored in a memory cache and discarded after the OCR is completed and all of the split document files have been combined to restore the document. The file size is calculated based on the number of pages.

[0015] This method further includes monitoring newly received documents, calculating the file size of newly received documents, splitting received documents that exceed a file size threshold into multiple segmented document files, marking each segmented document file with a marker, and sending the received document in the form of multiple segmented document files within the OCR job queue.

[0016] This method further includes sending documents no larger than multiple segmented document files and document files whose file size is below a file size threshold to an OCR job queue, monitoring the OCR job queue, determining whether the total file size of all document files sent to the OCR job queue has reached the maximum file size that at least one OCR node can handle, and assigning at least one additional OCR node to perform OCR on all document files sent to the OCR job queue.

[0017] This method further involves redirecting jobs in the job queue to different OCR nodes and requesting additional OCR nodes from cloud-based OCR node resources.

[0018] A system for performing OCR (Optical Character Recognition) on documents uploaded in batches is further disclosed. The system includes a database for storing multiple uploaded documents and a management device that can access the multiple uploaded documents stored in the database. The management device includes a processor, and the database further stores media-readable instructions. When an instruction is executed, the processor performs the following actions if the document's file size is greater than a file size threshold: splitting the document into multiple segmented document files; inserting markers into the multiple segmented document files; sending the multiple segmented document files to at least one OCR node; performing OCR on the multiple segmented document files simultaneously; and, after the OCR is completed, concatenating all of the post-OCR segmented document files to reconstruct the document according to the markers. The document's file size is calculated based on the number of pages and resolution of the document, and the file size threshold is determined based on the upper limit of the number of pages and the upper limit of the resolution. Furthermore, the markers define the location and order of the multiple segmented document files that originally existed within the document.

[0019] In the system described above, the processor is further configured to send multiple segmented document files and documents whose file size is not greater than a file size threshold to the OCR job queue, monitor the OCR job queue, determine whether the total file size of all document files sent to the OCR job queue has reached the maximum file size that at least one OCR node can handle, allocate at least one additional OCR node, and perform OCR on all document files sent to the OCR job queue.

[0020] The processor in the above system is further configured to redirect jobs in the job queue to different OCR nodes or to request additional OCR nodes from cloud-based OCR node resources. [Brief explanation of the drawing]

[0021] [Figure 1] Figure 1 shows a block diagram of the document management system according to the disclosed embodiment. [Figure 2] Figure 2 shows an exemplary system for processing documents unloaded for OCR execution according to the disclosed embodiment. [Figure 3] Figure 3 shows a flowchart illustrating how to perform OCR processing on an uploaded document according to the disclosed embodiment. [Figure 4] Figure 4 shows a flowchart illustrating how to determine and adjust the number of OCR nodes required to perform OCR according to one disclosed embodiment. [Figure 5] Figure 5 shows a flowchart illustrating how to manage the OCR performance of incoming documents according to the disclosed embodiment. [Figure 6] Figure 6 shows a flowchart illustrating a method for allocating OCR nodes based on OCR processing time according to the disclosed embodiment. [Figure 7]FIG. 7 shows a flowchart illustrating a method for managing the OCR performance of uploaded documents according to the disclosed embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0022] Next, specific embodiments according to the present disclosure will be described in detail. Examples of these embodiments are shown in the accompanying drawings. Specific details are described to facilitate understanding of the present disclosure. Although the embodiments are described in relation to the drawings, it should be understood that the following description is not intended to limit the present disclosure to any one embodiment. On the contrary, the following description is intended to cover alternatives, modifications, and / or equivalents that may be included within the spirit and scope of the appended claims.

[0023] The disclosed embodiments provide a document management system and method for improving the efficiency of performing OCR (Optical Character Recognition) on a plurality of uploaded documents. OCR is a technology that scans a document and converts it from a non-searchable format to a searchable format. The OCR process is asynchronous, and the time taken to process each uploaded document varies depending on the file size and the resolution (DPI) of the content. For large-sized or high-resolution files, especially when a large number of files are queued for OCR processing, the processing may take a long time. To avoid the potential long processing time caused by large-sized documents, in the disclosed embodiments, before sending the document to an OCR node that executes the processing, the large document may be split into several segmented small document files. The several segmented small document files can be processed in parallel at a plurality of OCR nodes. A marker can be inserted or embedded in each of the several segmented small documents, whereby, after the OCR processing, the several segmented small document files can be combined based on the embedded markers to restore the original document in a searchable format. The disclosed embodiments significantly shorten the processing time of large documents.

[0024] The disclosed embodiments further provide a document management system and method that monitors the number of incoming files and scales up OCR resources using an auto-scaling mechanism. If usage patterns are predictable based on industry segments, periodicity, and / or seasonality, OCR resources can be pre-scaled up or down to optimize OCR processing. The system and method according to the disclosed embodiments further classify uploaded documents based on their file size and resolution and prioritize OCR resources before sending them to at least one OCR node for processing.

[0025] The disclosed embodiments pre-set file size thresholds used to determine whether an uploaded document is a large document. The file size of a document is determined by the number of pages (i.e., page count) and the resolution of the uploaded document. Therefore, the file size threshold is determined based on the number of pages and resolution of the uploaded document. For illustrative purposes, the threshold parameter for page count (i.e., page limit) may be 10 pages, and the threshold parameter for resolution (i.e., resolution limit) may be 300 dpi. Therefore, if the number of pages in a document's file size exceeds 10 pages and the document's resolution exceeds 300 dpi, the document is considered a large document and is split into smaller document files. The formula for calculating the number of document files that can be split from a large document is the rounded-up value of n = [(number of pages * dpi) / (page limit * dpi limit)]. For example, an uploaded document with 20 pages and 300 dpi may be split into 2 document files, and a document with 20 pages and 600 dpi may be split into 4 document files, and so on.

[0026] By splitting a large document into multiple segmented smaller document files and performing OCR on the multiple document files instead of a sequence of the large and small documents, the processing time for performing OCR on a bulk of uploaded documents can be significantly reduced. The disclosed embodiment splits a document larger than a file size threshold into multiple segmented smaller document files and inserts or embeds markers into the multiple segmented document files. Each marker indicates the location and / or order of each segmented document file within the same large document. After all the segmented document files have been processed by the OCR node, the multiple segmented document files are merged together based on the embedded markers to restore the original document in a searchable PDF format. The markers may be identifiers, indexes, or metadata that can be stored in a memory cache. The markers are then deleted when the large document or all large documents have been fully processed or reset by the user.

[0027] The disclosed embodiments may also calculate or estimate the total file size of document files received into the OCR job queue in order to determine the number of OCR nodes required to process the currently existing document files stored in the OCR job queue. In addition to calculating or estimating the total file size, the disclosed embodiments may further predict or estimate the total OCR processing time for these document files stored in the OCR job queue to determine the number of OCR nodes required to OCR process all of these document files.

[0028] Figure 1 shows a block diagram of the document management system 100 according to the disclosed embodiment. The document management system 100 receives and processes a bulk of uploaded or incoming unsearchable documents 120 before sending them to the OCR node resource for OCR execution.

[0029] The document management system 100 includes a processor 102 connected to memory 110 by a data bus 115. Memory 110 includes instructions 118. Instructions 118 can constitute code that, when read by the processor 102, configures the system 100 to perform the operations disclosed herein. The system 100 also includes a database 104 that stores file size thresholds 112 used by the processor 102 to determine the category of uploaded documents 120. As previously stated, the file size thresholds 112 are predetermined based on the number of pages and resolution of uploaded or received documents. The processor 102 is configured to determine the file size of uploaded documents 120 and classify them based on the file size thresholds 112. Uploaded documents with a page count and / or resolution exceeding the file size thresholds 112 are classified as large documents. In this case, the large document is divided into several segmented smaller documents, each with a file size less than the file size thresholds 112. These multiple segmented smaller documents are sent to at least one OCR node in the form of document files for processing. Documents whose file size is not greater than the file size threshold 112 are classified as small documents. Small documents may not be split and may be sent as a document file to at least one OCR for processing. Multiple segmented small documents and small document files may be sent to the OCR job queue 124.

[0030] When a large document is divided into numerous segmented smaller documents, the processor 102 is further configured to generate markers 116 indicating the position and / or order of the number of segmented smaller documents in the original large document, and to insert or embed the markers 116 into the corresponding segmented smaller documents. The markers 116 are used to aggregate the number of segmented smaller documents back into the original large document after all of the smaller documents have been processed by OCR. All markers 116 belonging to the same large document are stored together in the memory cache 106 and deleted after the aggregation of the same large document is complete.

[0031] The processor 102 may be coupled to an OCR node resource 108. The OCR node resource 108 can be multiple cloud-based available OCR nodes that can be stored in database 104 or a separate database (not shown). The OCR job queue 124 may be coupled to multiple OCR node resources 108. Upon receiving a control signal from the processor 102, the OCR node resource 108 may assign at least one OCR node, such as OCR-1, OCR-2, ..., OCR-N, and execute the OCR process. The OCR node resource 108 may also assign more OCR nodes or reduce the number of OCR nodes based on OCR processing thresholds 113 and OCR processing time thresholds 114 stored in database 104. The OCR processing thresholds 113 and OCR processing time thresholds 114 are used by the processor 102 to determine the workload of the OCR node resource 108. The OCR processing threshold 113 is a predetermined maximum total file size of document files that a single OCR node can process within a given period of time. In this embodiment, the processor 102 may calculate the total file size of the document files sent to the OCR job queue 124 and compare the calculated total file size with the OCR processing threshold 113. If the total file size of the document files in the OCR job queue 124 exceeds the OCR processing threshold 113, that is, if the first OCR node, such as OCR-1, reaches the maximum file size that it can process within a predetermined period, the processor 102 may control the OCR node resource 108 to allocate at least one additional OCR node, such as OCR-2, to perform OCR on the overloaded document files in the OCR job queue 124 that exceed the processable threshold.

[0032] The processor 102 may also monitor the total file size of document files received in the OCR job queue 124 after a preset period to determine whether the current total file size is still greater than the OCR processing threshold 113. If the total file size is not greater than the OCR processing threshold 113, the processor 102 can control the OCR node resources 108 to reduce the number of OCR nodes. Since faster OCR processing time is preferable when batches of documents are uploaded to the system 100 simultaneously, such a method can improve OCR performance by processing much more efficiently. In some embodiments, the first OCR node and at least one additional OCR node can run OCR in parallel on document files to further improve the total OCR processing time.

[0033] The workload of the OCR node resource 108 can also be determined by the OCR processing time threshold 114. The OCR processing time threshold 114 is preferably a predetermined maximum processing time for a single OCR node to process document files sent to the OCR job queue 124. In this embodiment, the processor 102 can predict or estimate the total processing time required to perform OCR on all document files received in the OCR job queue 124 and compare it to the OCR processing time threshold 114. If the predicted or estimated total processing time is greater than the OCR processing time threshold, the processor 102 controls the OCR node resource 108 to allocate at least one additional OCR node to assist with OCR processing on some document files. Similarly, the processor 102 can monitor the total processing time of document files received in the OCR job queue 124 after a preset time to determine whether the current total processing time is still greater than the OCR processing time threshold 114. Once the current total processing time is no longer greater than the OCR processing time threshold 114, the processor 102 can control the OCR node resource 108 to reduce the number of OCR nodes.

[0034] According to the disclosed embodiment, the OCR nodes are released when the current batch of document files is being processed. The processor 102 also monitors the pipeline 122 of uploaded or received documents 120 and calculates the total file size of the uploaded and received documents so that it can maintain, upscale, or downscale the number of OCR nodes until the OCR nodes are no longer needed.

[0035] The OCR node resource 108 processes the document files received by the OCR job queue 124 to generate searchable document files 126. These searchable document files may be PDF files, which have the same content as the original document files but are in a searchable format. As described above, some of the searchable document files are split from at least one large document. Therefore, before saving these split searchable document files to the storage device 128, the processor 102 concatenates or aggregates these split searchable document files to reconstruct each large document based on markers 116 embedded in the document files. Details of the reconstruction of the large document are further explained in Figure 2.

[0036] Since the classification of uploaded documents and the segmentation of large documents are performed before the uploaded documents are sent to the OCR node resource 108 for processing, the time required to perform OCR on uploaded documents can be significantly reduced. Furthermore, the disclosed embodiment monitors the pipeline 122 for incoming documents and classifies the incoming documents in order to predict the number of OCR nodes required for the incoming documents, in addition to the uploaded documents 120 that are currently being processed.

[0037] Figure 2 shows an exemplary system 200 for processing documents unloaded for OCR execution according to the disclosed embodiment. Figure 2 shows that a large document 202 is pre-processed before being sent to the OCR node and post-processed after OCR execution to restore the original content. Note that Figure 2 does not show how to determine whether an uploaded document is a large or small document, as classification will be further explained in Figures 3, 5, and 7.

[0038] Generally, the large document 202 shown in Figure 2 is a document with a file size exceeding the file size threshold 112, and the small document 212 is a document with a file size less than or equal to the file size threshold 112. Simply put, only one large document 202 and one small document 212 are shown in Figure 2. Both the large document 202 and the small document 212 are in a non-searchable format.

[0039] The small document 212 is sent directly to at least one OCR node 230 for OCR processing to generate a searchable small document file 225. However, the large document 202 is first divided into a number of segmented small document files 202, 204, 206, and 208. Markers 214, 216, and 218 are inserted or embedded in each of the segmented small document files. The markers can be metadata, identifiers, or indexes indicating the location and / or order of the segmented small document file within the large document 202. Markers 214, 216, and 218 may be stored in a memory cache (106 in Figure 1) and deleted after the large document 202 is restored or reset by the user. The number of divided small document files are then sent to the OCR node 230 for processing. The OCR node 230 performs OCR processing on the multiple segmented small document files to generate searchable PDF files 224, 226, and 228. Next, based on the markers 214, 216, and 218 embedded in the multiple divided small document files 204, 206, and 208, the multiple divided small document files 204, 206, and 208 are concatenated back together to restore the large document in a searchable format. Both the original large document 232 restored in a searchable format and the searchable small document files 225 are stored in the storage device 128 for future use.

[0040] Figure 3 shows a flowchart 300 illustrating a method for OCR processing an uploaded document according to the disclosed embodiment. For simplicity, the same components described above with reference to Figures 1 and 2 are given the same reference numerals. The uploaded or received document 120 is a non-searchable document. For example, the uploaded or received document 120 may be a non-searchable scanned PDF file.

[0041] Step 302 is performed by determining the file size of the uploaded or received document 120. As described above, the file size of each document 120 can be determined by the page count (number of pages) and resolution of each document 120.

[0042] Step 304 is performed by comparing the file size of the uploaded document with the file size threshold 112. If the answer is "NO", the compared uploaded document is classified as a small document and sent to at least one OCR node for OCR processing, as shown in step 312. The OCR processing generates a searchable small document file 316.

[0043] However, if the answer to step 304 is Yes, the compared documents are classified as a large document. Therefore, step 306 is performed by dividing or separating the large document into a number of segmented smaller document files. Meanwhile, step 308 is performed by generating and inserting or embedding a number of markers corresponding to the number of segmented smaller document files. The markers define the location and order of the number of segmented smaller document files within the large document. Step 310 is performed by storing all markers in the memory cache 106. Markers belonging to the same large document are stored together in the memory cache 106.

[0044] Next, step 312 is performed by sending the number of segmented small document files to at least one OCR node for processing. The number of segmented small document files and the small document files defined in step 306 are sent to the OCR job queue (i.e., OCR job queue 124 in Figure 1).

[0045] In some embodiments, method 300 can determine whether a single OCR node is sufficient to process the OCR of all document files sent to the OCR job queue 124. In this case, flowchart 300 proceeds to flowchart 400 in Figure 4.

[0046] Figure 4 shows a flowchart 400 illustrating a method for determining and adjusting the number of OCR nodes required to perform OCR according to one disclosed embodiment. In this embodiment, the determination and adjustment of the number of OCR nodes is based on the total file size of all document files received in the OCR job queue 124. However, the disclosed embodiment is not limited to file size alone. The determination and adjustment of the number of OCR nodes may also depend on the total processing time of all document files received in the OCR job queue 124. The latter embodiment is illustrated in Figure 6 below.

[0047] Step 402 is performed by calculating the total file size of the document files received in the OCR job queue 124, i.e., the total size of the document files for OCR processing.

[0048] Step 404 is performed by determining whether the total file size of the document files exceeds the OCR processing threshold 113. As illustrated in Figure 1, the OCR processing threshold 113 is a predetermined maximum total file size of document files that a single OCR node can process within a given period of time. If the answer to step 404 is "NO", then only a single OCR node is sufficient to perform OCR on all document files received in the OCR job queue 124. Step 406 is then performed by assigning a single OCR to the OCR execution.

[0049] If the answer to step 404 is YES, it means that a single OCR node is insufficient to perform OCR on all document files received in OCR job queue 124. Therefore, step 408 is performed by assigning multiple OCR nodes to OCR execution.

[0050] After an appropriate number of OCR nodes are allocated, step 410 performs OCR on all document files in the OCR job queue 124 to generate multiple searchable document files.

[0051] Returning to Figure 3, after all document files in the OCR job queue 124 have been processed by at least one OCR node and multiple searchable document files have been generated, step 314 is performed by concatenating all segmented smaller document files belonging to the same large document based on the location and order of the smaller document files defined by the markers embedded within them, thereby restoring the same large document in a searchable format.

[0052] Step 318 is performed by storing the recovered searchable large document and searchable small document 316 in the storage device 128 for further use. After all segmented small document files have been OCR processed and the small document files have been concatenated and restored to the original document from which they were split, in step 320 the markers stored in the memory cache 106 are deleted.

[0053] According to the disclosed embodiments, the system and method can not only efficiently and quickly perform OCR processing on batches of uploaded documents, but can also monitor incoming documents to predict the workload of the OCR node resource 108 and adjust the allocation of available OCR nodes. The prediction of incoming workload may depend on industry segments, cyclical nature, and / or seasonality applicable to all existing and new clients. The prediction of incoming workload may also depend on the file size of the incoming documents and / or the estimated OCR processing time for performing OCR on all incoming documents.

[0054] Figure 5 shows a flowchart 500 illustrating a method for managing the OCR performance of incoming documents according to the disclosed embodiment. The embodiment in Figure 5 further considers existing uploaded documents to determine the workload and number of OCR nodes required to perform OCR on both incoming documents and existing uploaded documents. However, an alternative embodiment is also possible in which flowchart 500 considers only incoming documents.

[0055] In flowchart 500, step 502 is performed by monitoring pipeline 122 for incoming documents. Monitoring of pipeline 122 can be performed periodically or as needed.

[0056] Step 504 is performed by estimating or calculating the file size of the incoming document. Step 506 is performed by referencing the file sizes of uploaded documents already sent to the OCR job queue 124 to obtain the total file size of incoming and uploaded documents in the OCR job queue 124.

[0057] Next, step 508 may be performed by predicting the sum of the file sizes of multiple document files in the OCR job queue 124 and the document files to be received. Subsequently, step 510 is performed by determining whether the total file size is greater than the file size threshold 112. If the answer is NO, i.e., the workload of the currently used OCR nodes is not high, step 512 is performed by maintaining the same number of OCR nodes as currently used. If the answer is YES, indicating that the workload of the currently used OCR nodes is high, step 514 is performed by allocating at least one additional OCR node.

[0058] Note that the flowchart 500 in Figure 5 allows for monitoring incoming documents periodically or on demand to scale up and down the required number of OCR nodes, thereby providing a more efficient and cost-effective method.

[0059] After the required number of OCR nodes have been allocated, step 516 is performed by running OCR on the document files received in the OCR job queue 124. As shown in Figure 3, after the OCR execution is complete, the method in Figure 5 concatenates all the segmented small document files, as shown in steps 314 to 320 of Figure 3, to reconstruct the original large document based on the markers inserted into the small document files.

[0060] In addition to the total file size of document files received in the OCR job queue 124, the determination of the workload of the OCR node may also depend on the OCR processing time of the document files in the OCR job queue 124, as in the embodiment shown in Figure 6.

[0061] Figure 6 shows a flowchart 600 illustrating how to allocate OCR nodes based on OCR processing time according to the disclosed embodiment. Flowchart 600 begins with receiving the uploaded and / or received document 120.

[0062] Step 602 is performed by determining the file size of each of the uploaded / received documents 120. As defined, the file size is determined based on the number of pages and resolution of each document.

[0063] Step 604 is performed by determining whether the file size of the uploaded / received document is greater than the file size threshold 112. For documents whose file size is not greater than the file size threshold 112 (i.e., step NO), step 606 is performed by sending these documents to the OCR job queue 124. These documents are classified as small documents. Documents whose file size exceeds the file size threshold 112 (i.e., YES in step 604) are classified as large documents and may require preprocessing at least before being sent to the OCR node for processing.

[0064] Therefore, step 608 is performed by dividing or separating each of the large documents into multiple segmented smaller document files. Step 608 is further performed by generating and inserting markers corresponding to the number of segmented smaller document files. Each marker indicates the location and order of each segmented smaller document file within the large document to which it belongs. All markers are stored in the memory cache 106 for further use.

[0065] Step 610 is performed by sending the segmented small document files to the OCR job queue 124.

[0066] Next, step 612 is performed by predicting the total OCR processing time for all document files, including small document files and segmented small document files, that are received in the OCR job queue 124.

[0067] Step 614 is performed by determining whether the total processing time is greater than the OCR processing time threshold 114. If the answer is NO, the flowchart 600 proceeds to step 618, where OCR is performed on the document files in the OCR job queue 124. If the answer is YES, it indicates that the workload on the OCR node resource 108 is high, and step 616 is performed by allocating at least one additional OCR node to perform OCR processing on all document files in the OCR job queue 124.

[0068] The remaining steps in flowchart 600 are the same as steps 314-320 in Figure 3. For simplicity, their explanations are omitted.

[0069] When there are multiple OCR nodes used to perform OCR, it is preferable that segmented smaller document files belonging to the same large document be sent to different OCR nodes for parallel processing. Processing segmented smaller document files in parallel with the same large document further improves the processing time of the large document. However, when only a single OCR node is used, all small document files and segmented small document files are sent to that single OCR node for processing. In this case, if the segmented small document files are queued at the top of the job queue, the client will experience longer waiting times because, after OCR execution, the segmented small document files need to be combined with other segmented small document files belonging to the same large document. If the segmented small document files are not queued in order, it will take even longer to reconstruct the original large document. To avoid this, the disclosed embodiment can prioritize the document files sent to the OCR job queue 124. In the disclosed embodiment, small document files (i.e., small document 204 in Figure 2) are prioritized over segmented small document files, and small document files with smaller file sizes are prioritized over small document files with larger file sizes. In some embodiments, segmented small document files are processed on a first-come, first-served basis, or small document files are processed using segmented small document files.

[0070] The flowcharts 200, 300, 400, 500, and 600 described above may be executed by the processor 102 of system 100 in Figure 1, triggered by the execution of instruction 118 in memory 110, but are not limited to these. Any analog and / or digital circuits capable of executing the flowcharts in Figures 2-6 may also be used in the disclosed embodiments.

[0071] Figure 7 shows a flowchart 700 illustrating how to manage the OCR performance of uploaded documents according to the disclosed embodiment. The flowchart 700 illustrates the process of classifying uploaded and received documents, determining the number of OCR nodes required to perform OCR, prioritizing uploaded and received documents, and concatenating segmented smaller documents to reconstruct the original larger document.

[0072] Step 702 is performed by classifying uploaded and received documents, such as document 120 in Figure 1. The classification of uploaded and received documents is based on comparison with a file size threshold 112. After the classification step (step 702), uploaded and received documents are classified as large documents 202 and small documents 204. As mentioned above, large documents 202 are documents whose file size is greater than the file size threshold 112, and small documents 204 are documents whose file size is not greater than the file size threshold 112. Small documents 204 are sent to the OCR job queue 124 as small document files without preprocessing. Large documents 202 are processed in step 704.

[0073] Step 704 is performed by splitting each of the large documents 202 into multiple segmented smaller document files and inserting markers into the multiple segmented smaller document files. The markers may be identifiers, indexes, or metadata indicating the location and order of the segmented smaller document files in the original large document. All segmented smaller document files are then sent to the OCR job queue 124.

[0074] Step 706 is performed by determining the number of OCR nodes required to process the document files sent to the OCR job queue 124. As previously mentioned, the criteria may be to compare the total file size of the document files in the OCR job queue 124 with a predetermined OCR processing threshold, such as the OCR processing threshold 113, or to compare the estimated total OCR processing time for the document files in the OCR job queue 124 with a predetermined OCR processing time threshold, such as the OCR processing time threshold 114. These procedures are illustrated in Figures 1, 5, and 6.

[0075] Next, step 708 is performed by assigning at least one OCR node based on the comparison results obtained in step 706.

[0076] Before performing OCR on the document files, step 710 is performed by assigning priorities to the document files received in the OCR job queue 124. Priority assignments may be pre-configured and stored in a priority list (not shown) stored in the database 104 of system 100. The priority list may also be configured based on the individual requirements of the system 100's clients / users. In the exemplary embodiment of Figure 7, the priority level of the document files is set before performing OCR, but is not limited to this. Furthermore, the priorities described in steps 710, 722, and 724 below are merely examples of basic rules. Priority levels can be configured according to the requirements of each user / client of system 100.

[0077] Step 710 is performed by assigning or applying priorities to document files received in the OCR job queue 124. According to the disclosed embodiments, smaller document files (i.e., document files with a file size less than or equal to the file size threshold 112) may be assigned a higher priority. Among a group of small document files, smaller document files may be assigned a higher priority. Thus, step 712 is performed by processing the small document files first before processing the segmented small documents. Step 714 is performed by processing the segmented document files in a first-in-first-out (FIFO) or first-come, first-served manner. In some embodiments, the OCR node may alternate between processing a first predetermined number of small document files and a second predetermined number of segmented small document files until all document files in the OCR job queue 124 have been processed. This method ensures that processing of small document files is not delayed by processing the segmented small document files first. Since segmented small document files are split from one or more large documents, after multiple segmented small document files are processed using OCR, the multiple segmented small documents are combined to reconstruct the original large document to which the multiple segmented small documents belong, and this process can take some time. In contrast, small document files can be processed as standalone documents. After OCR processing, as shown in step 720, the small document files are immediately converted into searchable documents.

[0078] When multiple OCR nodes are used to perform OCR processing, flowchart 700 allows multiple segmented smaller document files belonging to the same large document to be sent to different OCR nodes for processing, if possible, as shown in step 724. In this way, multiple segmented smaller document files belonging to the same large document can be OCR processed in parallel or substantially simultaneously, further reducing the processing time for the same large document. After all document files in the OCR job queue 124 have been processed by at least one OCR node and converted into searchable segmented smaller document files, step 716 is performed by concatenating the searchable segmented smaller document files based on markers embedded in the smaller document files, as shown in step 718, to restore the original larger document from which the segmented smaller documents were divided.

[0079] Finally, step 722 is performed by saving the searchable large document generated in step 718 and the searchable small document generated in step 720 to the storage device 128.

[0080] As those skilled in the art will understand, the exemplary embodiments relating to this disclosure can be embodied as systems, methods, or computer program products. Accordingly, the exemplary embodiments relating to this disclosure can take the form of hardware embodiments as a whole, software embodiments as a whole (such as firmware, resident software, or microcode), or embodiments combining software and hardware aspects, all of which may be commonly referred to herein as “circuits,” “modules,” or “systems.” Furthermore, the exemplary embodiments relating to this disclosure can take the form of computer program products embodied on any tangible medium having computer-usable program code embodied on a medium.

[0081] Any combination of one or more computer-usable or computer-readable media may be used. Computer-usable or computer-readable media may, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, devices, or propagation media. More specific examples (a non-exhaustive list) of computer-readable media include electrical connections with one or more wires, portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), rewritable non-volatile memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, transmission media such as those supporting the Internet or intranet, or magnetic storage devices. It should be noted that since programs are electronically captured, for example, via optical scanning of paper or other media, and compiled, interpreted, or otherwise processed in an appropriate manner as needed, and stored in computer memory, computer-usable or computer-readable media may also be paper or other appropriate media on which the program is printed.

[0082] Computer program code for performing the operations of the exemplary embodiments described herein may be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java®, Smalltalk, C++, etc., and conventional procedural programming languages ​​such as the C programming language or similar programming languages. The program code can run entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer, partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or it may be connected to an external computer (for example, via the Internet using an Internet service provider).

[0083] The exemplary embodiments relating to this disclosure will be described with reference to flowcharts and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of this disclosure. It can be understood that each block in a flowchart and / or block diagram, and combinations of blocks in a flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so as to generate a machine such that instructions executed via the processor of the computer or other programmable data processing device generate means for performing the functions / operations specified in the flowchart and / or block diagram blocks.

[0084] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a particular logical function. In some alternative embodiments, the functions described in a block may occur outside the order shown in the figure. For example, two blocks shown consecutively may actually be executed substantially simultaneously depending on the related functions, or the blocks may sometimes be executed in reverse order. Furthermore, each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented by a special-purpose hardware-based system or a combination of special-purpose hardware and computer instructions that perform a specified function or operation.

[0085] The terms used herein are for the sole purpose of describing specific embodiments and are not intended to limit the invention. As used herein, singular expressions may also be intended to include plural forms unless the context explicitly indicates otherwise. As used herein, the term “includes” identifies the presence of a described feature, integer, step, operation, element, or component, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or any group thereof.

[0086] Embodiments can be implemented as a computer process, a computer system, or a manufactured article such as a computer program product on a computer-readable medium. The computer program product may be a computer storage medium readable by a computer system and encoding computer program instructions for executing a computer process. When accessed, the instructions allow a processor to enable other components to perform the functions described above.

[0087] All means or processes and corresponding structures, materials, actions, and equivalents of functional elements in the following claims are intended to include any structures, materials, or actions for performing a function in combination with elements of other claims, and are specifically claimed. The description of the exemplary embodiments in this disclosure is presented for illustrative and explanatory purposes, but the disclosed forms are not intended to be exhaustive or limiting of the invention. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention. The embodiments have been selected and described to best illustrate the principles and practical applications of the invention, and to enable those skilled in the art to understand the exemplary embodiments in this disclosure with various modifications suitable for specific intended applications.

[0088] One or more parts of the disclosed network or system may be distributed across one or more printing systems coupled to a network capable of exchanging information and data. Various functions and components of the printing system may be distributed across multiple client computer platforms or configured to perform tasks as part of a distributed system. These components may be executable code, intermediate code, or interpretable code that communicates over the network using protocols. Components may have specific addresses or other designators to identify them within the network.

[0089] It may be apparent to those skilled in the art that various modifications can be made to the disclosed embodiments without departing from the spirit or scope of the exemplary embodiments relating to this disclosure. Accordingly, the exemplary embodiments relating to this disclosure may include the modifications and variations disclosed above, insofar as these modifications fall within the scope of the claims and their equivalents. [Explanation of Symbols]

[0090] 100 Systems 102 processors 104 Databases 106 memory cache 108 OCR node resources 110 memory

Claims

1. A method for improving the performance of optical character recognition (OCR) for multiple documents, A step of dividing a document whose file size is larger than a predetermined file size threshold into multiple segmented document files, wherein the file size is calculated according to the number of pages and resolution of the document; A step of inserting markers into a plurality of the segmented document files, wherein each of the markers defines the position or order of each of the segmented document files within the document; The steps include sending the multiple segmented document files to at least one OCR node that performs OCR on the multiple segmented document files, After the OCR execution is completed, the step is to concatenate all of the multiple segmented document files and restore the document according to the markers, wherein the restored document is a searchable document. Methods that include...

2. The method according to claim 1, wherein the predetermined file size threshold is determined based on an upper limit on the number of pages and an upper limit on the resolution.

3. The process further includes the step of classifying the aforementioned multiple documents into large documents and small documents, The large document has a file size greater than the predetermined file size threshold, and the small document has a file size less than or equal to the predetermined file size threshold. The method according to claim 1.

4. The method according to claim 1, wherein each of the markers in the plurality of segmented document files is stored in a memory cache and discarded after the OCR execution is completed and all of the plurality of segmented document files have been combined into the restored document.

5. Steps to monitor newly received documents, The steps include: calculating the file size of the newly received document, A step of dividing an incoming document whose file size exceeds a predetermined file size threshold into a plurality of segmented document files, wherein each of the plurality of segmented document files is marked using the marker, The steps include sending the received document in the form of multiple segmented document files within the OCR job queue, The method according to claim 1, further comprising:

6. The method according to claim 5, wherein the monitoring step is performed periodically or on request.

7. The method according to claim 1, further comprising: sending a document whose file size is not greater than a predetermined file size threshold and a plurality of the segmented document files to an OCR job queue; monitoring the OCR job queue to determine whether the total file size of all document files sent to the OCR job queue has reached the maximum file size that at least one OCR node can handle; and assigning at least one additional OCR node to perform the OCR on all the document files sent to the OCR job queue.

8. The method according to claim 7, further comprising the step of redirecting the jobs in the job queue to different OCR nodes.

9. The method according to claim 7, further comprising the step of requesting additional OCR nodes from cloud-based OCR node resources.

10. The method according to claim 7, wherein the maximum file size that the at least one OCR node can execute is predetermined.

11. A method for improving the performance of optical character recognition (OCR) for multiple documents, The steps include classifying multiple documents by comparing the file sizes of the multiple documents with a predetermined file size threshold, The steps include: dividing a document into multiple segmented document files if the file size of the document exceeds a predetermined file size threshold; A step of inserting a marker into each of several segmented document files, wherein the marker defines the position and order of the individual segmented document files in the document; The steps include sending the multiple segmented document files to at least one OCR node in order to perform OCR on the multiple segmented document files simultaneously, After the OCR execution is completed, the step of concatenating all of the multiple segmented document files based on the markers to restore the document, Methods that include...

12. The method according to claim 11, wherein each of the markers in the plurality of segmented document files is stored in a memory cache and discarded after the OCR execution is completed and all of the plurality of segmented document files are combined to restore the document.

13. The method according to claim 11, wherein the file size is calculated based on the page count.

14. The method according to claim 11, Steps to monitor newly received documents, The steps include calculating the file size of the newly received document, A step of dividing an incoming document whose file size exceeds a file size threshold into multiple segmented document files, wherein each of the segmented document files is marked using a marker, The steps include sending documents received in the form of multiple segmented document files within an OCR job queue, Methods that include...

15. The method according to claim 11, further comprising the steps of: sending a document whose file size is not greater than the file size threshold and a plurality of the segmented document files to an OCR job queue; monitoring the OCR job queue; determining whether the total file size of all document files sent to the OCR job queue has reached the maximum file size that at least one OCR node can handle; and assigning at least one additional OCR node to perform the OCR on all document files sent in the OCR job queue.

16. The method according to claim 15, further comprising the step of redirecting the jobs in the job queue to different OCR nodes.

17. The method according to claim 15, further comprising the step of requesting additional OCR nodes from cloud-based OCR node resources.

18. A system that performs optical character recognition (OCR) on documents uploaded in bulk, A database that stores multiple uploaded documents, A management device capable of accessing a plurality of uploaded documents stored in the database, comprising a processor, wherein the database includes instructions read by a medium, which, when executed, cause the processor to perform the following: If the file size of a document exceeds the file size threshold, the document is divided into multiple segmented document files, the file size of which is calculated based on the document's page count and resolution, and the file size threshold is determined based on the upper limit of the page count and the upper limit of the resolution. Markers are inserted into multiple segmented document files, with each marker defining the location and order of individual segmented document files within the document. Send multiple segmented document files to at least one OCR node and perform OCR on multiple segmented document files simultaneously. After the OCR process is complete, all of the segmented document files after OCR processing are concatenated, and the document is restored according to the markers. system.

19. The system according to claim 18, further configured to send documents whose file size is not greater than the file size threshold and a plurality of the segmented document files to an OCR job queue, monitor the OCR job queue, determine whether the total file size of all document files sent to the OCR job queue has reached the maximum file size that at least one OCR node can handle, and allocate at least one additional OCR node to perform the OCR on all document files sent in the OCR job queue.

20. The system according to claim 19, wherein the processor is further configured to redirect jobs in the job queue to different OCR nodes or to request additional OCR nodes from cloud-based OCR node resources.